自动设置参考色的问题

Problems in automatically set reference color

我试图从图像中分割出蓝色细胞,

我发现使用颜色距离法非常有效,但是我只能手动设置RGB中的参考色。由于要做批处理,需要自动select参考颜色,请问有什么好的解决办法吗?

我想针对这个问题提出两种非常基本的图像处理方法。也许其中之一对您有用。

加载输入图像:

cells = imread('cells.png');

方法 #1

Select输入图像的蓝色通道:

cellsBlue = cells(:, :, 3);
imshow(cellsBlue)

做一些阈值处理。一个非常简单的版本可以是:

cellsSegm = cellsBlue < 100;
imshow(cellsSegm)

之后您将需要应用一些形态过滤器来改进蒙版。

方法 #2

将输入图像转换为 HSV 颜色 space:

cellsHSV = rgb2hsv(cells);
imshow(cellsHSV)

SelectHSV图像的"saturation"通道:

cellsSat = cellsHSV(:, :, 2);
imshow(cellsSat)

做一些阈值处理。一个非常简单的版本可能是(注意,HSV 值是 0 到 1 之间的双精度值):

cellsSegm = cellsSat > 0.5;
imshow(cellsSegm)

之后您将需要应用一些形态过滤器来改进蒙版。