在Matlab中绘制灰度图像直方图时,我们可以不使用imhist函数,而是通过手动设置bins的数量来实现。具体步骤如下:
- 读取灰度图像:使用
imread
函数加载图像。 - 定义bin数目:指定需要的bin的数量,这个数目会决定直方图的细致程度。
- 计算像素值分布:使用
histc
函数计算每个灰度级别出现的次数。 - 绘制直方图:使用
bar
函数绘制直方图。
代码示例如下:
img = imread('image.png');
img_gray = rgb2gray(img); % 如果是彩色图像,需要转换为灰度图像
bins = 10; % 定义bins的数量
[counts, edges] = histcounts(img_gray, bins);
bar(edges(1:end-1), counts, 'histc');
title('自定义灰度直方图');
xlabel('灰度级');
ylabel('像素数');
通过上述方法,我们可以灵活地调整灰度级的数目,绘制出自定义的直方图。