仍然需要帮助,答案不是我要找的东西!
我需要一个函数来获取图像每个通道(R、G、B)的平均灰度
ave = getAverageGreyScale(image)
ave必须返回一个包含 3 个元素的向量。每一个都有一个通道的平均灰度(R,G,B):
[ abc ]
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 的 3 维矩阵,您只需使用:
ave=squeeze(mean(image,3)); %#compute the average value for each pixel along the third dimension
平均值是亮度的粗略估计,但更好的方法是首先将每个颜色平面乘以不同的系数,因为红色、绿色和蓝色不等于亮度。标准系数是:
因此,您的代码将如下所示:
ave=image(:,:,1)*0.3 + image(:,:,2)*0.59 + image(:,:,3)*0.11