使用matlab怎么实现直方图均衡化
时间: 2024-06-14 12:03:53 浏览: 124
直方图均衡化是一种用于增强图像对比度的方法,它通过重新分布图像的像素值来实现。下面是使用Matlab实现直方图均衡化的示例代码:
```matlab
% 读取图像
img = imread('image.jpg');
% 将图像转换为灰度图像
gray_img = rgb2gray(img);
% 计算图像的直方图
histogram = imhist(gray_img);
% 计算累积分布函数
cdf = cumsum(histogram) / numel(gray_img);
% 对图像进行直方图均衡化
equalized_img = cdf(double(gray_img) + 1);
% 显示原始图像和均衡化后的图像
subplot(1, 2, 1);
imshow(gray_img);
title('原始图像');
subplot(1, 2, 2);
imshow(equalized_img);
title('直方图均衡化后的图像');
```
这段代码首先读取图像,然后将图像转换为灰度图像。接下来,计算图像的直方图,并计算累积分布函数。最后,将累积分布函数应用于原始图像的像素值,得到均衡化后的图像。最后,使用subplot函数将原始图像和均衡化后的图像显示在同一窗口中。
阅读全文