做图像处理的同学经常需要将一张彩色图片转换成灰度图片,其中就少不了对灰度值的统计,尤其是对图像的边缘进行操作时,那么有哪些函数可以方便我们对灰度图像中的某一灰度值进行统计呢?
首先,就是常用的unique函数,因为图像读入电脑中就以矩阵的形式表示,所以对图像的处理也就是对矩阵的处理,不过使用这个函数有些稍微复杂,代码如下:
% 导入灰度图像
I = imread('cameraman.tif');
% 使用unique函数返回排序后的灰度值及对应位置
[I_u,Ia,Ic] = unique(I);
% 统计灰度值分布
I_counts = accumarray(Ic,1);
value_counts = [I_u, I_counts];
% 需查找的灰度值
Gray = 100;
% 返回其出现的频数
Hg = I_counts(I_u == Gray);
当然,matlab中还有一个针对图像处理的函数,就是imhist函数,可以直接对图像的灰度值及频数进行统计,代码如下:
% 导入图像
I = imread('cameraman.tif');
% 使用imhist函数返回灰度值分布及频数
[H,D] = imhist(I);
% 待查找的灰度值
Gray = 100;
% 返回对应的频数
Hb = H(D==Gray);
好了,本期就先讲到这。
本文介绍了在Matlab中如何统计灰度图像的灰度值出现次数。通过使用unique函数和imhist函数,可以方便地对灰度图像进行处理,获取灰度值及其对应的频数。


被折叠的 条评论
为什么被折叠?



