【发布时间】:2019-02-02 18:27:59
【问题描述】:
我目前有这样的数字病理图像:
首先我使用以下代码将图像转换为灰度:
img=imread('DigitalPathology8.png');
figure;
imshow(img)
hsv=rgb2hsv(img);
s=hsv(:,:,2);
虽然我尝试使用以下代码将此灰度图像二值化:
bw = imbinarize(s,'global');
figure
subplot(2,1,1)
imshow(s)
subplot(2,1,2)
imshow(bw)
我得到了这样的图像: 我的代码有什么问题?当我将相同的算法应用于其他图像时: 我可以得到只有蓝色单元格是白色的二值化图像,包括背景在内的其他单元格是黑色的。因此,在将相同的代码应用于我提到的第一张图像后,我也期望得到相同的结果。 有人可以帮我吗?
【问题讨论】:
-
您要检测的单元格很少,因此阈值选择算法无法按您的意愿工作。在任何情况下,取决于 IHC 染色比苏木精更饱和不是最好的方法。查看污点分离(Google 中的“颜色反卷积”,这是一个用词不当,但很好)。
-
感谢克里斯的建议!但我还是想问为什么它在第二张病理图像上效果很好?
-
那里有更多的染色细胞。阈值寻找一个有意义地分离图像中灰度值的值。如果染色细胞太少,此过程将选择较低的阈值,以便有更多的白色输出像素。
标签: image matlab image-processing grayscale hsv