matlab灰度图像均衡化
时间: 2023-12-09 07:36:31 浏览: 142
灰度图像均衡化是一种常见的图像增强方法,可以使图像的对比度增强,细节更加清晰。在Matlab中,可以使用自定义函数或者工具箱函数实现灰度图像均衡化。
下面是使用自定义函数实现灰度图像均衡化的示例代码:
```matlab
function [output] = hisro(input)
% 自定义直方图均衡化函数
% input: 输入图像
% output: 输出图像
% 计算输入图像的直方图
hist = imhist(input);
% 计算直方图的累积分布函数
cdf = cumsum(hist) / numel(input);
% 计算映射表
map = uint8(255 * cdf);
% 应用映射表
output = map(input + 1);
end
```
使用上述自定义函数,可以对灰度图像进行直方图均衡化。具体步骤如下:
1. 读取灰度图像
```matlab
A = imread('lena_gray_256.tif');
```
2. 对灰度图像进行灰度变换,将灰度值调整到[0, 0.5]之间
```matlab
B = imadjust(A, [0, 1], [0, 0.5]);
```
3. 对灰度图像进行直方图均衡化
```matlab
C = hisro(B);
```
4. 显示原始图像、灰度变换图像和直方图均衡化图像
```matlab
figure;
subplot(1, 3, 1); imshow(A); title('原始图像');
subplot(1, 3, 2); imshow(B); title('灰度变换图像');
subplot(1, 3, 3); imshow(C); title('直方图均衡化图像');
```
阅读全文