用MATLAB编制一个对图像进行直方图均衡化处理的程序
时间: 2024-10-27 08:07:18 浏览: 76
在MATLAB中,直方图均衡化是一种常见的图像增强技术,用于改善图像的对比度。以下是编写一个简单直方图均衡化的MATLAB程序示例:
```matlab
% 加载图像
img = imread('your_image.jpg'); % 替换 'your_image.jpg' 为你要处理的图片文件名
% 计算原图像的灰度直方图
histogram = imhist(img, 256); % 256表示灰度级范围
% 创建累计分布函数 (CDF)
cdf = cumsum(histogram(:)) / sum(histogram);
% 使用线性插值计算新的像素值
new_img = interp1(linspace(0, 1, size(img, 1)), linspace(0, 255, size(img, 1)), img(:), cdf);
% 转回图像矩阵并显示结果
new_img = uint8(new_img);
imshow(new_img);
title('Histogram Equalized Image');
% 直方图对比
figure;
subplot(1, 2, 1), histogram, title('Original Image Histogram');
subplot(1, 2, 2), histogram(new_img), title('Equalized Image Histogram');
% 提供的帮助信息
disp('Program completed. Press any key to exit.');
pause
```
在这个程序中,首先读取图像,然后计算其灰度直方图。接着,生成累积分布函数,并通过插值将原始像素映射到新的灰度值上,完成直方图均衡化。最后,显示处理后的图像以及直方图对比。
阅读全文