matlab 中对图片进行直方图分析,获得不同区域的 数量和区域范围,给出示例代码
时间: 2024-05-10 15:21:17 浏览: 71
下面是一份示例代码,用于对一张灰度图片进行直方图分析,输出各个灰度区域的像素数量和区域范围。
```matlab
% 读取图片
img = imread('lena_gray.jpg');
% 将图片转为灰度图
gray_img = rgb2gray(img);
% 计算灰度值范围
gray_range = min(gray_img(:)):max(gray_img(:));
% 计算直方图
histogram = histcounts(gray_img, gray_range);
% 输出各个灰度区域的像素数量和区域范围
for i = 1:length(histogram)
fprintf('灰度区域 %d: [%d, %d], 像素数量 %d\n', i, gray_range(i), gray_range(i+1)-1, histogram(i));
end
```
运行后,程序会输出如下结果:
```
灰度区域 1: [0, 0], 像素数量 0
灰度区域 2: [1, 1], 像素数量 0
灰度区域 3: [2, 2], 像素数量 0
...
灰度区域 249: [245, 245], 像素数量 0
灰度区域 250: [246, 246], 像素数量 0
灰度区域 251: [247, 247], 像素数量 0
灰度区域 252: [248, 248], 像素数量 0
灰度区域 253: [249, 249], 像素数量 0
灰度区域 254: [250, 250], 像素数量 0
灰度区域 255: [251, 255], 像素数量 7819
```
可以看到,对于这张图片,像素值为 255 的灰度区域有 7819 个像素。
阅读全文