直方图均衡化图像增强matlab
时间: 2023-10-24 10:35:04 浏览: 109
以下是在MATLAB中进行直方图均衡化图像增强的步骤:
1. 读取要增强的图像文件(可以使用imread函数)。
2. 将图像转换为灰度图像(如果原始图像不是灰度图像)。
3. 计算图像的直方图(可以使用imhist函数)。
4. 计算累积直方图(可以使用cumsum函数)。
5. 将累积直方图归一化到[0,1]范围内。
6. 使用归一化的累积直方图对灰度图像进行映射(可以使用interp1函数)。
7. 将映射后的图像转换为uint8类型(可以使用uint8函数)。
8. 显示原始图像和增强后的图像(可以使用imshow函数)。
以下是一个示例代码:
% 读取图像
img = imread('lena.jpg');
% 转换为灰度图像
gray_img = rgb2gray(img);
% 计算直方图
histogram = imhist(gray_img);
% 计算累积直方图
cumulative_histogram = cumsum(histogram);
% 归一化累积直方图
normalized_cumulative_histogram = cumulative_histogram / numel(gray_img);
% 对灰度图像进行映射
mapped_img = interp1(linspace(0, 1, 256), normalized_cumulative_histogram, double(gray_img(:)) / 255);
mapped_img = uint8(mapped_img * 255);
% 显示原始图像和增强后的图像
subplot(1, 2, 1);
imshow(gray_img);
title('Original Image');
subplot(1, 2, 2);
imshow(mapped_img);
title('Enhanced Image');
阅读全文