在Matlab中绘制灰度图像直方图时,我们可以不使用imhist函数,而是通过手动设置bins的数量来实现。具体步骤如下:

  1. 读取灰度图像:使用imread函数加载图像。
  2. 定义bin数目:指定需要的bin的数量,这个数目会决定直方图的细致程度。
  3. 计算像素值分布:使用histc函数计算每个灰度级别出现的次数。
  4. 绘制直方图:使用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('像素数');

通过上述方法,我们可以灵活地调整灰度级的数目,绘制出自定义的直方图。