图像处理 – 我应该使用HSV / HSB还是RGB?为什么?

前端之家收集整理的这篇文章主要介绍了图像处理 – 我应该使用HSV / HSB还是RGB?为什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我必须在含有另一种血细胞的图像中检测白细胞,但可以通过细胞的颜色来区分,白细胞有更浓的紫色,可以在下图中看到.

我使用RGB / HSV的颜色方法是什么?为什么?!

样本图片

解决方法

通常在做出这样的决定时,我只需快速绘制不同的通道和颜色空间,看看我发现了什么.从高质量的图像开始总是比从低图像开始更好并尝试通过大量处理来修复它

在这个特定的情况下,我会使用HSV.但与大多数颜色分割不同,我实际上会使用饱和通道来分割图像.细胞几乎是相同的Hue,因此使用色调通道将非常困难.

色调(完全饱和和全亮度)非常难以区分细胞

饱和度巨大的对比

绿色通道,实际上也显示了很多对比度(让我感到惊讶)

红色和蓝色通道很难真正区分细胞.

现在我们有两个候选表示饱和度或绿色通道,我们问哪个更容易使用?由于任何HSV工作涉及我们转换RGB图像,我们可以忽略它,因此明确的选择是简单地使用RGB图像的绿色通道进行分割.

编辑

因为你没有包含语言标签,所以我想附上我刚写的一些Matlab代码.它在所有4个颜色空间中显示图像,因此您可以快速做出明智的决定.它模仿matlabs Color Thresholder色彩空间选择窗口

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,5);imshow(rgb_image(:,2));title('green')
    subplot(3,9);imshow(rgb_image(:,3));title('blue')

    %hsv
    subplot(3,2);imshow(hsvim(:,1));title(sprintf('HSV Space\n\nhue'))
    subplot(3,6);imshow(hsvim(:,2));title('saturation')
    subplot(3,10);imshow(hsvim(:,3));title('brightness')

    %ycbcr / yuv
    subplot(3,3);imshow(yuvim(:,1));title(sprintf('YCbCr Space\n\nLuminance'))
    subplot(3,7);imshow(yuvim(:,2));title('blue difference')
    subplot(3,11);imshow(yuvim(:,3));title('red difference')

    %CIElab
    subplot(3,4);imshow(cieim(:,1));title(sprintf('CIELab Space\n\nLightness'))
    subplot(3,8);imshow(cieim(:,2));title('green red')
    subplot(3,12);imshow(cieim(:,3));title('yellow blue')

end

你可以这样称呼它

rgbim = imread('http://i.stack.imgur.com/gd62B.jpg');
ViewColorSpaces(rgbim)

显示就是这个

猜你在找的CSS相关文章