按颜色隔离像素

时间:2014-02-04 16:36:54

标签: image matlab colors pixels

我是matlab的新手,并试图自学。

我的第一个任务是尝试拍摄图像并将一个图像中的颜色值与另一个图像进行比较。为了做到这一点,我需要收集某些阈值之间的所有R,G,B值并相应地将它们放在一个向量中。我现在的问题是你如何通过一个图像并隔离,例如,R值介于[0,31],G值介于[0,31]和B值介于[0,31]之间的像素?

鉴于图像X,我知道如何在图像中找到强度,但在寻找颜色时,我感到茫然。如果我需要进一步解释,请告诉我。

由于

编辑:图像是2D .jpegs(不知道是否有帮助)

1 个答案:

答案 0 :(得分:2)

首先,将您的jpeg图像读入Matlab 3D数组(前两个维度表示位置,第三个维度表示R,G,B):

X = imread('image.jpg');

然后:

index = find(X(:,:,1)<=31 & X(:,:,2)<=31 & X(:,:,3)<=31);
R = X(index);
G = X(index + size(X,1)*size(X,2));
B = X(index + 2*size(X,1)*size(X,2));

做你想要的。它使用linear indexing的概念。