用MATLAB得到图片的归一化直方图
时间: 2024-10-18 22:06:47 浏览: 32
归一化直方图:与直方图相同,但面积和为1。-matlab开发
在MATLAB中,获取图片的归一化直方图通常涉及以下几个步骤:
1. **读取图片**:首先需要使用`imread`函数加载图像,例如 `img = imread('your_image.jpg')`。
2. **计算直方图**:然后使用`imhist`函数计算原始图像的灰度值直方图,比如`histData = imhist(img, [0 256])`,这里假设图像为8位灰度图像,范围从0到255。
3. **归一化**:`histData`是一个包含每个灰度级出现次数的一维数组。为了将其归一化,可以对数据进行除法操作,使其总和为1,即`normalizedHist = histData / sum(histData)`。
4. **绘制直方图**:最后,使用`bar`或`imagesc`等函数将归一化的直方图可视化,如`bar(normalizedHist)`。
完整代码示例:
```matlab
% 加载图像
img = imread('your_image.jpg');
% 计算直方图
histData = imhist(img, [0 256]);
% 归一化直方图
normalizedHist = histData ./ sum(histData);
% 绘制归一化直方图
bar(normalizedHist);
xlabel('灰度级别');
ylabel('频率(占比)');
title('图片的归一化直方图');
```
阅读全文