码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • C#处理医学影像(四):基于Stitcher算法拼接人体全景脊柱骨骼影像


    在拍摄脊柱或胸片时,经常会遇到因设备高度不够需要分段拍摄的情况,

    对于影像科诊断查阅影像时希望将分段影像合并成一张影像,有助于更直观的观察病灶,

    以下图为例的两个分段影像:

         

    我们使用OpenCVSharp中的Stitcher类的Stitch方法,导入两张图像并拼接:

     但结果却失败了,返回错误结果:ERR_NEED_MORE_IMGS,是由于医学影像的特征点匹配不够,导致无法确定对接点。

    一幅图中总存在着一些独特的像素点,这些点我们可以认为就是这幅图的特征,即为特征点

    获取一幅图中存在的一些独特的像素点,需要解决两个问题:

    • 解决尺度不变性问题,不同大小的图片获取到的特征是一样的
    • 提取到的特征点要稳定,能被精确定位 


     

    可参考本系列文章:C#处理医学影像(三):基于漫水边界自动选取病灶范围的实现思路

     

    根据算法原理得到如下结果:

     

    Sobel算子:

    根据算法原理得到如下结果:

     

    其中直观区别是canny算子计算的结果清晰,但不连续,容易受噪点影响,而sobel算子线条相对柔和,连续性强。

     

    ⑤背景降噪

    进行一次手动背景降噪,使得展现的无用边缘更少,结果更清晰:

     

    经过上述的一系列处理步骤后我们再次合并拼接:

    复制代码
                Mat srcImg1 = imgList1[0];
                        Mat srcImg2 = imgList1[1];
                      
    
                        Mat[] images = new Mat[] { srcImg1, srcImg2};
    
                        Stitcher stitcher = Stitcher.Create(Stitcher.Mode.Panorama);
                        Mat pano = new Mat();
                        var status = stitcher.Stitch(images, pano);
                        if (status != Stitcher.Status.OK)
                        {
                            ShowMsg.Box("拼接异常(" + status.ToString() + "),请重试。", BoxType.Msg, 120, this);
                            return;
                        }
    复制代码

    得到了正确的结果:

     

     

    C#开发PACS、RIS、3D医学影像处理系统系列教程 目录整理:

    菜鸟入门篇

    PACS客户端:

    C#开发PACS医学影像处理系统(一):开发背景和功能预览

    C#开发PACS医学影像处理系统(二):界面布局之菜单栏

    C#开发PACS医学影像处理系统(三):界面布局之工具栏

    C#开发PACS医学影像处理系统(四):界面布局之状态栏

    C#开发PACS医学影像处理系统(五):查询病人信息列表

    C#开发PACS医学影像处理系统(六):加载Dicom影像

    C#开发PACS医学影像处理系统(七):读取影像Dicom信息

    C#开发PACS医学影像处理系统(八):单元格变换

    C#开发PACS医学影像处理系统(九):序列控件与拖拽

    C#开发PACS医学影像处理系统(十):Dicom影像下载策略与算法

    C#开发PACS医学影像处理系统(十一):Dicom影像挂片协议

    C#开发PACS医学影像处理系统(十二):绘图处理之图形标记

    C#开发PACS医学影像处理系统(十三):绘图处理之病灶测量

    C#开发PACS医学影像处理系统(十四):处理Dicom影像窗宽窗位

    C#开发PACS医学影像处理系统(十五):Dicom影像交叉定位线算法

    C#开发PACS医学影像处理系统(十六):2D处理之影像平移和缩放

    C#开发PACS医学影像处理系统(十七):2D处理之影像旋转和翻转

    C#开发PACS医学影像处理系统(十八):Dicom使用LUT色彩增强和反色

    C#开发PACS医学影像处理系统(十九):Dicom影像放大镜

    医学影像三维篇

    PACS三维处理医学图像:

    C#开发PACS医学影像三维重建(一):使用VTK重建3D影像

    C#开发PACS医学影像三维重建(二):使用VTK进行体绘制

    C#开发PACS医学影像三维重建(三):纹理映射与颜色传输

    C#开发PACS医学影像三维重建(四):3D网格平滑效果

    C#开发PACS医学影像三维重建(五):基于梯度透明的组织漫游

    C#开发PACS医学影像三维重建(六):三维光源与阴影效果

    C#开发PACS医学影像三维重建(七):空间测量与标注

    C#开发PACS医学影像三维重建(八):VR体绘制

    C#开发PACS医学影像三维重建(九):MPR三视图切面重建

    C#开发PACS医学影像三维重建(十):MIP最小密度投影

    C#开发PACS医学影像三维重建(十一):CPR曲面重建

    C#开发PACS医学影像三维重建(十二):VE虚拟内镜技术

    C#开发PACS医学影像三维重建(十三):基于人体CT值从皮肤渐变到骨骼的梯度透明思路

    C#开发PACS医学影像三维重建(十四):基于能量模型算法将曲面牙床展开至二维平面

    熟手进阶篇

    医学影像算法:

    C#处理医学影像(一):基于Hessian矩阵的血管肺纹理骨骼增强对比

    C#处理医学影像(二):基于Hessian矩阵的医学影像增强与窗宽窗位

    C#处理医学影像(三):基于漫水边界自动选取病灶范围的实现思路

    C#处理医学影像(四):基于Stitcher算法拼接人体全景脊柱骨骼影像

     

    胶片打印:

    C#开发医学影像胶片打印系统(一):万能花式布局的实现思路

    C#开发医学影像胶片打印系统(二):胶片打印机通讯

    C#开发医学影像胶片打印系统(三):Pacs二维功能在排版中的应用

    登峰造极篇

    C#开发基于Python人工智能的肺结节自动检测

    C#开发基于Python人工智能的脊柱侧弯曲率算法

    C#开发基于Python机器学习的医学影像骨骼仿真动画

    C#开发基于Python机器学习的术后恢复模拟

    C#开发基于U3D的VR眼镜设备虚拟人体三维重建

    C#开发基于全息投影的裸眼3D医学影像显示技术

    医疗影像软件产品友情链接

    PACS介绍首页

    PACS使用视频教程

    医疗软件产品中心

    免费下载使用本教程PACS软件

  • 相关阅读:
    《洛谷深入浅出基础篇》P1551亲戚——集合——并查集P1551亲戚
    生成rdma-core deb文件在ubuntu22.04
    【JavaEE】Servlet API 详解(HttpServletResponse类方法演示、实现自动刷新、实现自动重定向)
    项目启动脚本解析
    CSS渐变色理论与分类、文字渐变色方案、炸裂渐变色方案以及主流专业渐变色工具网站推荐
    tauri vue vite elemrntui
    vue+python把woff字体文件中的字体全部读取出来
    书客护眼落地灯销量火爆,售罄、补货、又断货、再补货!又成断货王!
    XJ+Nreal 高精度地图+Nreal眼镜SDK到发布APK至眼镜中
    计算性能的提升之混合式编程(MXNet)
  • 原文地址:https://www.cnblogs.com/Uncle-Joker/p/17373754.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号