使用MATLAB分离图像颜色

时间:2011-12-23 07:58:25

标签: matlab

我刚开始尝试MATLAB Project。我曾经把红色,绿色和蓝色分开。 这是我的功能:

function x = colorsep(b) %
n = 256; % color is from 0->255, so it has 256
a = imread('peppers.png');


b=im2uint8(a);
x=figure; % create picture to put the image


subplot(2,2,1); %(2 rows, 2column, cell ti 1)
imshow(b),title('Full Color');


colorlist = {'Red','Green','Blue'};


gr = 0:1/(n-1):1;


for k=1:3

    cMap = zeros(n,3);
    cMap(:,k) = gr;
    subplot(2,2,k+1);
    imshow(ind2rgb(b(:,:,k),cMap)); %ind2r = index to rgb
    title(colorlist{k});
end
end    

现在我要分三种颜色(粉红色,黄色,橙色),我该怎么办?有人知道吗?非常感谢。

1 个答案:

答案 0 :(得分:4)

问题不正确。计算机中的图像由3个颜色通道组成

  • 红色
  • 绿色

你在这里做的是显示单个通道,其颜色图对应于它。 顺便说一句,色彩图是不可靠的,你可以像那样(更自然)

显示它
function colorsep() %
    a = imread('peppers.png');
    colorlist = {'R','G','B'};    
    subplot(2,2,1);
    imshow(a);
    for k=1:3
        subplot(2,2,k+1);
        imshow( a(:,:,k));
        title(colorlist{k});
    end
end

enter image description here

如果要在另一个颜色空间中分隔它,首先应将其转换为另一个颜色空间 - 如LAB,然后单独显示通道。

如果要查找所有“粉红色”,“黄色”对象,则应进行分割,并检查对象的颜色。

请说明你想要的是什么。