自动设置参考色的问题
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)
之后您将需要应用一些形态过滤器来改进蒙版。
我试图从图像中分割出蓝色细胞,
我发现使用颜色距离法非常有效,但是我只能手动设置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)
之后您将需要应用一些形态过滤器来改进蒙版。