仍然需要帮助,答案不是我正在寻找的东西!
我需要一个函数来得到图像的每个通道(R,G,B)的平均灰度
ave = getAverageGreyScale(image)
ave必须返回包含3个元素的vector。每个通道(R,G,B)的平均灰度:
[a b c]
a = R的平均灰度
b =的平均灰度G
c = B的平均灰度
还需要帮助!有人能帮我一下吗?
提前感谢!
我想你是在找
function [Ravg, Gavg, Bavg] = getAverageRGBValues(I)
Ravg = mean(mean(I(:, :, 1)));
Gavg = mean(mean(I(:, :, 2)));
Bavg = mean(mean(I(:, :, 3)));
假设I是一个rows x cols x 3
矩阵(这是你从,例如,imread
)。
澄清后编辑:
你需要沿着维度1 &2、用途:
ave = mean(mean(image,2),1);
原始回答:
如果你的图像是一个三维矩阵,最后一个维度长度为3,你可以简单地使用:
ave=squeeze(mean(image,3)); %#compute the average value for each pixel along the third dimension
平均值是亮度的粗略估计,但更好的方法是首先将每个颜色平面乘以不同的系数,因为红、绿、蓝不等于亮度。标准系数为:
- 0.3为红色
- 绿色 0.59
- 蓝色0.11
ave=image(:,:,1)*0.3 + image(:,:,2)*0.59 + image(:,:,3)*0.11