试图分割出肺部区域,我遇到了很多麻烦。传入的图像是这样的:(这本质上是jpg转换,每个像素为8位。)
image - Matlab中的肺分割-LMLPHP

I = dicomread('000019.dcm');
I8 = uint8(I / 256);
B = im2bw(I8, 0.007);
segmented = imclearborder(B);

上面的脚本生成:
image - Matlab中的肺分割-LMLPHP

Q-1

我也对整个白内层的黑色部分感兴趣。我几天前已经开始matlab,所以还不太了解如何做。如果您不清楚我想要哪种输出,请告诉我-我将上传图片。但是我认为没有必要。

Q-2

B = im2bw(I8, 0.007);中,为什么我需要给一个如此低的阈值?阈值较高时,一切都是白色或黑色。我已经阅读了文档,据我了解,值小于0.007的像素标记为黑色,而上面的所有像素均为白色。是因为我的16到8位转换吗?

最佳答案

我使用ImageJ快速完成的另一个自动解决方案(MatLab中有相同的算法):

  • 在您选择的色彩空间中使用Huang或Li自动阈值化(所有这些都起作用)
  • 使用disk类型的结构元素打开(删除小组件)
  • 连接的组件标签。
  • 删除触摸图像边框的组件。
  • 填充孔。

  • 这样您将获得干净的结果。

    10-08 11:58