MATLAB图像的最常用RGB值

时间:2014-11-02 06:36:52

标签: matlab

在MATLAB中:
我有一个类似地图的图像,由几种不同的颜色组成。我需要知道哪种颜色最常出现。
使用imread()我已将图像保存为3D矩阵,我需要找到最常用的像素值(r,g,b)。
我尝试了mode(),但它似乎不适用于3D矩阵。

谢谢

2 个答案:

答案 0 :(得分:1)

使用rgb2ind将图像转换为索引图,然后您可以找到最常用的索引并获得相应的颜色

rgbImg = imread('my_img.png');
[idx map] = rgb2ind( rgbImg, 1e-6, 'nodither'); %// consider changing tolerance here
m = mode( idx );
frequentRGB = map(m, : );

答案 1 :(得分:0)

这样做

im=imread (image);
Im1=im (:,:,1)*100+im (:,:,2)*10+im (:,:,3);
MostFrequent=mode (im1 (:));
MfR=MostFrequent/100;
MfG=(MostFrequent-MfR*100)/10;

我希望你能够将3d点转换为1d然后再计算RGB值。