matlab图像增强实现灰度线性变换
时间: 2023-12-06 09:04:20 浏览: 90
以下是在MATLAB中实现灰度线性变换的代码示例:
1. 显示原始图像,并求其原始图像的直方图
```matlab
% 读取图像
img = imread('example.jpg');
% 显示原始图像
subplot(2,2,1);
imshow(img);
title('Original Image');
% 显示原始图像的直方图
subplot(2,2,2);
imhist(img);
title('Histogram of Original Image');
```
2. 通过一维线性函数增强对比度
```matlab
% 灰度线性变换
a = 1.5; % 线性函数的斜率
b = 50; % 线性函数的截距
img_enhanced = a * double(img) + b;
% 显示增强后的图像
subplot(2,2,3);
imshow(uint8(img_enhanced));
title('Enhanced Image');
% 显示增强后的图像的直方图
subplot(2,2,4);
imhist(uint8(img_enhanced));
title('Histogram of Enhanced Image');
```
3. 分段线性变换
```matlab
% 分段线性变换
img_double = double(img);
img_enhanced = zeros(size(img_double));
for i = 1:size(img_double, 1)
for j = 1:size(img_double, 2)
if img_double(i,j) < 100
img_enhanced(i,j) = 0.5 * img_double(i,j);
elseif img_double(i,j) < 200
img_enhanced(i,j) = 2 * img_double(i,j) - 100;
else
img_enhanced(i,j) = 0.5 * img_double(i,j) + 100;
end
end
end
% 显示增强后的图像
figure;
subplot(2,2,1);
imshow(uint8(img_enhanced));
title('Enhanced Image');
% 显示增强后的图像的直方图
subplot(2,2,2);
imhist(uint8(img_enhanced));
title('Histogram of Enhanced Image');
```
阅读全文