用matlab实现对图像直方图均衡
时间: 2023-08-26 18:27:20 浏览: 81
用matlab 实现基于直方图均衡化的彩色图像增强.docx
好的,我可以为您提供一个基本的Matlab代码实现直方图均衡化的方法:
```matlab
% 读取图像
img = imread('lena.jpg');
% 将图像转换为灰度图像
gray_img = rgb2gray(img);
% 计算灰度图像直方图
hist = imhist(gray_img);
% 计算累积分布函数
cdf = cumsum(hist)/(size(gray_img,1)*size(gray_img,2));
% 计算直方图均衡化后的像素值
eq_pixels = round(255*cdf(double(gray_img)+1));
% 生成新的图像
eq_img = uint8(eq_pixels);
% 显示原始图像和直方图均衡化后的图像
subplot(1,2,1),imshow(gray_img);title('Original Image');
subplot(1,2,2),imshow(eq_img);title('Equalized Image');
```
在上述代码中,我们首先使用`imread`函数读取了名为lena.jpg的图像。接着,我们将该图像转换为灰度图像,并计算了灰度图像的直方图。然后,我们计算了累积分布函数,并使用它来计算直方图均衡化后的像素值。最后,我们将新像素值重新整形为图像,并将原始图像和直方图均衡化后的图像显示在同一窗口中。
希望这可以帮助到您!
阅读全文