请用matlab写代码 实现功能读取数字图像显示直方图 完成直方图规定化
时间: 2024-05-01 21:18:04 浏览: 93
好的,下面是matlab代码实现功能读取数字图像显示直方图完成直方图规定化。
读取数字图像并显示直方图:
```
% 读取数字图像
img = imread('image.jpg');
% 显示图像
imshow(img);
% 显示灰度直方图
grayImg = rgb2gray(img);
imhist(grayImg);
```
直方图规定化:
```
% 读取参考图像
refImg = imread('reference.jpg');
% 将图像转换为灰度图像
grayRefImg = rgb2gray(refImg);
% 计算参考图像的灰度直方图
refHist = imhist(grayRefImg);
% 计算原始图像的灰度直方图
grayImg = rgb2gray(img);
imgHist = imhist(grayImg);
% 计算原始图像和参考图像的累计分布函数
refCdf = cumsum(refHist) / numel(grayRefImg);
imgCdf = cumsum(imgHist) / numel(grayImg);
% 初始化输出图像
outImg = zeros(size(grayImg));
% 进行直方图规定化
for i = 1 : numel(grayImg)
[~, index] = min(abs(imgCdf(i) - refCdf));
outImg(i) = index - 1;
end
% 显示直方图规定化结果
imshow(outImg);
```
希望能够帮助到您,如有不懂的地方可以继续咨询我。
阅读全文