matlab直方图均衡化处理
时间: 2023-11-13 19:55:48 浏览: 108
好的,针对您的问题,我可以给出以下步骤:
1. 读取图像并转换为灰度图像
2. 计算灰度图像的直方图
3. 计算累积分布函数(CDF)
4. 根据CDF计算新的像素值
5. 将新的像素值映射回原图像
下面是 MATLAB 代码实现:
```matlab
% 读取图像并转换为灰度图像
img = imread('image.jpg');
gray_img = rgb2gray(img);
% 计算灰度图像的直方图
histogram = imhist(gray_img);
% 计算累积分布函数(CDF)
cdf = cumsum(histogram) / numel(gray_img);
% 根据CDF计算新的像素值
new_pixel_values = round(255 * cdf);
% 将新的像素值映射回原图像
eq_img = uint8(new_pixel_values(double(gray_img)+1));
% 显示原图像和均衡化后的图像
subplot(1,2,1), imshow(gray_img), title('Original Image');
subplot(1,2,2), imshow(eq_img), title('Equalized Image');
```
阅读全文