在matlab中逐个像素地检查图像中的特定rgb值

时间:2012-06-06 12:00:44

标签: image matlab matrix pixel

我想从MATLAB中的文件夹中读取RGB图像(.jpg),扫描图像的每个像素并检查它是否具有特定颜色(例如,如果它是紫罗兰:R 128,G 0, B 255)并计数有多少像素具有这种特定的颜色。

你有什么想法吗?

1 个答案:

答案 0 :(得分:2)

假设图像被加载到名为A的变量中:

 pixelMask =  A(:,:,1) == 128 & A(:,:,2) == 0 & A(:,:,3) == 255;
 count = nnz(pixelMask);

另一种方法是使用bxsfun和单例扩展:

 pixel = cat(3,128,0,255);
 S = all(bsxfun(@eq, A, pixel), 3);
 count = nnz(S);