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