我要在一张包含另一种血细胞的图像中检测到白细胞,但是通过细胞的颜色可以分辨出差异,白细胞有更浓的紫色,可以在下面的图像中看到。
我要用什么颜色的方法使用RGB/HSV?为什么?!
样本图像:

发布于 2015-05-04 17:42:35
通常,在做出这样的决定时,我只需快速绘制不同的频道和颜色空间,看看我发现了什么。从高质量的图像开始总比从低质量的图像开始,并尝试用大量的处理来修复它更好。
在这种特殊情况下,我会使用HSV。但与大多数颜色分割不同,我实际上会使用饱和通道来分割图像。细胞几乎相同的色调,所以使用色调通道将是非常困难的。
色调,(在完全饱和和完全亮度下)很难分化细胞

饱和巨大反差

绿色频道,其实也显示了很大的对比(这让我很惊讶)

红色和蓝色通道很难真正区分细胞。
现在我们有两个候选人代表饱和或绿色通道,我们问谁更容易处理?由于任何HSV工作涉及到我们转换RGB图像,我们可以忽略它,所以明确的选择是简单地使用RGB图像的绿色通道进行分割。
编辑
由于您没有包含语言标记,所以我想附加一些我刚刚编写的Matlab代码。它在所有4种颜色空间中显示一幅图像,这样您就可以迅速做出使用哪种颜色的明智决定。它模拟matlabs阈值机颜色空间选择窗口
function ViewColorSpaces(rgb_image)
% ViewColorSpaces(rgb_image)
% displays an RGB image in 4 different color spaces. RGB, HSV, YCbCr,CIELab
% each of the 3 channels are shown for each colorspace
% the display mimcs the New matlab color thresholder window
% http://www.mathworks.com/help/images/image-segmentation-using-the-color-thesholder-app.html
hsvim = rgb2hsv(rgb_image);
yuvim = rgb2ycbcr(rgb_image);
%cielab colorspace
cform = makecform('srgb2lab');
cieim = applycform(rgb_image,cform);
figure();
%rgb
subplot(3,4,1);imshow(rgb_image(:,:,1));title(sprintf('RGB Space\n\nred'))
subplot(3,4,5);imshow(rgb_image(:,:,2));title('green')
subplot(3,4,9);imshow(rgb_image(:,:,3));title('blue')
%hsv
subplot(3,4,2);imshow(hsvim(:,:,1));title(sprintf('HSV Space\n\nhue'))
subplot(3,4,6);imshow(hsvim(:,:,2));title('saturation')
subplot(3,4,10);imshow(hsvim(:,:,3));title('brightness')
%ycbcr / yuv
subplot(3,4,3);imshow(yuvim(:,:,1));title(sprintf('YCbCr Space\n\nLuminance'))
subplot(3,4,7);imshow(yuvim(:,:,2));title('blue difference')
subplot(3,4,11);imshow(yuvim(:,:,3));title('red difference')
%CIElab
subplot(3,4,4);imshow(cieim(:,:,1));title(sprintf('CIELab Space\n\nLightness'))
subplot(3,4,8);imshow(cieim(:,:,2));title('green red')
subplot(3,4,12);imshow(cieim(:,:,3));title('yellow blue')
end你可以这样称呼它
rgbim = imread('http://i.stack.imgur.com/gd62B.jpg');
ViewColorSpaces(rgbim)显示是这样的

发布于 2015-05-04 07:25:53
DIP和CV中的,这总是一个有效的问题
但是它没有通用的答案,因为每个任务都是独一无二的,所以要使用更适合它的东西。要正确选择,您需要了解每种方法的优缺点,以下是一些总结:
- [finding horizont in high altitude photo](https://stackoverflow.com/q/22187205/2521214)
- [Compare RGB colors](https://stackoverflow.com/q/28270103/2521214)看一看:
- [HSV histogram](https://stackoverflow.com/a/29286584/2521214)在HSV中看到不同的颜色分离。基于颜色的图像分割在HSV上容易实现。您不能直接对HSV颜色进行算术处理,而是需要转换为RGB并返回。
https://stackoverflow.com/questions/30022377
复制相似问题