超声图像模拟

CT图像模拟超声图像


       最近,因项目前期数据需求,需要将CT图像模拟生成超声图像,那么第一个问题来了,好好的CT图像为什么要模拟生成超声图像呢?超声成像模拟是利用已有的三维医学影像(如CT图像)数据,模拟生成超声成像过程得到虚拟超声成像技术 ,可以广泛应用于超声引导手术、图像处理、超声培训等。如果需要利用神经网络处理超声图像,那么前期的数据增强是不是可以这么做呢?当然这只是我的臆想,比如说利用U-Net(2D或3D),FCN与Mask-RCNN进行分割?哎呀,跑题了。

       由于才开始看这方面的文章,了解不深,查了部分资料或论文如下:

       a.《Fast and Automatic Ultrasound Simulation from CT Images》

       b.《基于CT体数据的超声图像实时模拟方法》

       c.《基于CT的超声成像模拟》

       d.《Medical Image Synthesis with Context-Aware Generative Adversarial Networks》

       e.《Real-Time Simulation of Medical Ultrasound from CT Images》

      原本看到前两篇论文,以为找到了救命稻草,结果找不到源码,就按照作者所给公式自己编写,才发现仅仅几个公式根本无法到达预期效果。所以又查阅了很多文献,了解到一个Field_II方法,直接百度Field II或者点击Field II即可。

超声图像模拟_第1张图片

接下来,我以kidney_phantom_example为例,记下了其调试的详细过程:

(1)首先,下载源代码

超声图像模拟_第2张图片

下载之后得到的源码,Field_II_ver_3_24_windows_gcc解压后如下:

超声图像模拟_第3张图片

(2)下载kidney_phantom_example代码:

超声图像模拟_第4张图片

解压后得到的代码为:

超声图像模拟_第5张图片

(3)代码都准备好了,接下来是如何操作运行了?请见操作教程,这里以kidney_phantom_example为例:

超声图像模拟_第6张图片

1)将代码导入到matlab中,运行make_scatterers.m,得到pht_data.mat,结果如下:

超声图像模拟_第7张图片

2)为了简洁,添加六行代码,如下:

超声图像模拟_第8张图片

这时候运行,你会发现,报错了!!!为什么??

超声图像模拟_第9张图片

怎么办?怎么办?怎么办?初始化!!!

3)初始化,运行field_init,如下:

超声图像模拟_第10张图片

超声图像模拟_第11张图片

4)现在运行sim_kidney.m文件:

超声图像模拟_第12张图片

看到这个结果,心里是不是很畅快?没错,这说明代码已经跑通啦!!!

(4)注意,这个迭代的速度特别慢,没生成一个rf_lni.mat文件需要10min,没错,真的是10分钟。一共需要生成128个,一共要21.3小时。啥意思,一张CT图像,需要经过21小时才能模拟生成一张与之对应的超声图像!!!我当时震惊到了,先看看效果:

超声图像模拟_第13张图片

超声图像模拟_第14张图片

效果也并不是太好,马马虎虎。那么为什么当时不选择用并行加速呢?从代码的结构可以看出,for i=1:128  。。。 end,每次迭代之间相互独立,完全可以并行加速!

小结:kidney_phantom_example运行的过程如下:

超声图像模拟_第15张图片


参考网址

1、https://blog.csdn.net/qq_34018578/article/details/73027207

2、https://blog.csdn.net/qq_34018578/article/details/74772103#comments

你可能感兴趣的:(数字图像处理,matlab编程常识,机器学习)