在matlab中计算RGB图像中的非灰色像素数

时间:2014-05-11 12:50:11

标签: image matlab image-processing rgb

我有一张只有黑白方块的RGB图像。我想在此图像中将数字计算为非灰色像素。我是matlab的新手。我想检查图像的质量,因为它应该只包含黑白像素。实际上我没有扭曲这个图像,因为出现了一些彩色条纹。我想知道引入了多少颜色来检查图像的质量。

2 个答案:

答案 0 :(得分:0)

使用matlab获取图像中特定像素值的计数。

图像是RGBA< 512x512x4 uint8>当读入matlab时(尽管我们可以忽略alpha通道)。

像这样的东西

count = sum(im(:, :, 1) == 255 & im(:, :, 3) == 255 & im(:, :, 3) == 255);

将为您提供此类像素的计数。如果需要,将sum替换为find以获取这些像素的索引。

答案 1 :(得分:0)

  

如果一个像素的R,G,B成分全部相同,则称其为灰色。

使用此逻辑

%// checking for equality of R,G,B values
B = any(diff(im,[],3),3);  %// selecting only non-gray pixels
count = sum(B(:));         %// Number of non-gray pixels

PS:此答案是根据thisthis答案量身定制的。