一、实验任务与要求
1、用 matlab 编写空间域点处理操作处理给定的几幅图像,要求:
- 使用 imread 读取当前工作目录下的图像
- 设计点处理操作并用代码实现处理
- 用 imnshow 显示处理后的图像
- 用 imwrite 保存处理后的图像
2、提交内容:m文件 + 实验报告。实验报告需包括以下内容:
- 各图像存在什么质量问题?
- 需要如何操作才可以改善图像质量?
- 根据上述的认识选择了何种点处理操作?
- 点处理操作中有哪些参数需要重点关注,这些参数的作用是什么?
二、实验报告
图像1:
1、图像存在的质量问题及操作?
图片看起来白蒙蒙的,可以增强一下对比度。
2、选择的点处理操作?
通过幂律变换增强对比度:s=cr^γ
3、实现代码:
f=imread('C:\Users\Lenovo\Desktop\aerialview-washedout.tif'); %读取图像
f=im2double(f); %将图像转换为双精度
f1=power(f,2.0); %gamma=2.0
f2=power(f,3.0); %gamma=3.0
f3=power(f,4.0); %gamma=4.0
subplot(2,2,1);
imshow(f);title('原图'); %显示原图
subplot(2,2,2);
imshow(f1);title('gamma=2.0'); %显示处理后图片
subplot(2,2,3);
imshow(f2);title('gamma=3.0');
subplot(2,2,4);
imshow(f3);title('gamma=4.0');
imwrite(f3,'C:\Users\Lenovo\Desktop\gamma4.tif'); %保存图像
4、效果:
可以看出当 γ=3.0 时效果较好 。
也可以通过 imadjust(I,[low_in high_in],[low_out high_out],gamma) 函数处理。
f1=imadjust(f,[0 1],[0 1],3.0); %gamma=3.0
5、重点关注的参数?
处理过程中需要注意 γ 的取值,当 γ<1 对比度降低;当 γ>1 对比度增强,根据需要调整 γ 的值。
6、直方图均衡化增强对比度
除点处理操作外还可以通过直方图均衡化增强对比度,使用 adapthisteq() 和 histeq() 函数:
图像二:
1、图像存在的质量问题及操作?
图片主体突出不明确,可以突出图中植物根部的灰度范围。
2、选择的点处理操作?
通过分段线性变换实现灰度级分层,突出特定灰度范围内的亮度。可以使用 imadjust(I,[low_in high_in],[low_out high_out],gamma) 函数。
3、实现代码:
f=imread('C:\Users\Lenovo\Desktop\angiogram-aortic-kidney.tif'); %读取图像
subplot(2,2,1);
imshow(f);title('原始图像');
f1=imadjust(f,[0.3 0.7],[0 1]); %调整灰度1.0
subplot(2,2,2);
imshow(f1);title('1.0');
f2=imadjust(f,[0.5 0.8],[0 1]); %调整灰度2.0
subplot(2,2,3);
imshow(f2);title('2.0');
f3=imadjust(f,[0.5 0.8],[0.1 0.9]); %调整灰度3.0
subplot(2,2,4);
imshow(f3);title('3.0');
imwrite(f3,'C:\Users\Lenovo\Desktop\f1.tif'); %保存修改后图片
4、效果:
可以看出 low_in=0.5,high_in=0.8,low_out=0.1,high_out=0.9,gamma=1.0 时效果较好 。
5、重点关注的参数?
处理过程中需要注意 low_in 和 high_in,low_out 和 high_out,以及 gamma 的取值。imadjust(I,[low_in high_in],[low_out high_out],gamma) 中低于 low_in 的灰度值会映射成 low_out,高于 high_in 的灰度值会映射成 high_out。实际应用中根据需要突出灰度值的范围调整数值。