图像处理工具箱的HSV平均值和SD

5个视图(过去30天)
雅各布·西哈安
雅各布·西哈安 2020年4月30日
我刚接触Matlab,这只是我的第一周。我试图计算所有图像像素的平均色调以及标准偏差。这同样适用于饱和度和值。
我的代码是:
rgbImage=imread('001.jpg');
hsv=rgb2hsv(RGB图像);
h=hsv(:,:,1);%色调图像。
s=hsv(:,:,2);%饱和图像。
v=hsv(:,:,3);%值(强度)图像。
平均值h=平均值(h);
显示(平均值)
我的输出显示列,但我正在寻找所有图像像素的平均值,据我所知,表(代表平均值)似乎显示了每个像素的平均色调。

公认的答案

纪尧姆
纪尧姆 2020年4月30日
编辑:纪尧姆 2020年4月30日
的意思是 与matlab中的许多函数一样,它沿着矩阵的第一个非标量维进行运算 H 是二维矩阵,因此第一个非标量维度是行和 的意思是 提供跨行的平均值(因此是每列的平均值)。
如果您使用的是相当现代的matlab版本(2018b或更高版本),您可以告诉mean立即在所有维度上运行:
平均值h=平均值(h,“全部”);
在旧版本中,您可以调用 的意思是 两次:
平均值h=平均值(平均值(h));%首先获取行的平均值,然后获取列的平均值
但要注意,它不适用于非线性函数,例如 性病 . 相反,您可以重塑矩阵,使其只有一个维度:
平均值h=平均值(h(:);%重塑为一列,然后取平均值
或者使用 意思2 函数,该函数提供2D图像所有像素的平均值:
平均值h=平均值2(h);
我推荐第一个(“全部”选项)或第三个选项(使用 (:) )对于旧版本。

更多答案(0)

社区寻宝

在MATLAB Central中查找宝藏,了解社区如何帮助您!

开始打猎吧!