图像处理-图像锐化 实验报告
实验报告
课程名:图像处理创新实验
内容:图像锐化
学生姓名 ________
专业班级 ________
学 号 ____________
指导教师 常 化文 __
实验日期 ______2022 年 __10 月 __25 日 __________
一、实验目的
熟练掌握MATLAB环境下函数文件(function)文件的具体编写规范与技术要点;
深入理解图像处理中空域滤波原理,并通过动手实践完成相关算法设计与应用;
详细学习并深入理解图像锐化的实现方法及其步骤。
二、实验内容
步骤1:用手机给自己拍一张美照(必须是本人照片);
步骤2:将你的照片放到计算机内;
步骤3:启动Matlab后加载并读取该图像文件。随后使用imshow()函数将其显示出来。如果图片较大则调用imresize(A m)对其进行缩放处理其中A表示待处理的图像变量名m代表缩放的比例因子例如可以选择一个缩放因子m设置成0.2这样可以使图片尺寸缩减至原来的五分之一大小
步骤 4:利用rgb2gray()函数将图像转换为灰度图像;
步骤5:利用一种 平滑滤波器 ,F,如9*9的均值滤波器或高斯滤波器,通过new_im = filter2(F, im)对图像进行滤波;
步骤6:通过double()函数实现原始图像数据类型的转译;随后按照‘原始图象 + 原始图象 - 平滑图象’的方式进行处理。
步骤6:通过double()函数实现原始图像数据类型的转译;随后按照‘原始图象 + 原始图象 - 平滑图象’的方式进行处理。
在第7步中:通过调用函数`uint8()或mat2gray()`来对获取到的结果图像进行处理,并完成类型转换过程;同时将原始图像及其锐化版本同时展示在同一个窗口中。
步骤8:采用一种 边缘滤波器 ,如sobel、prewitt等;
步骤9:通过调用double()函数将原图像类型转换为浮点型后,并按照‘**原图像 +******边缘图像 ’的方式进行计算;
步骤10:通过使用uint8()或mat2gray()函数完成类型转换过程,并在同一窗口中同时展示原始图像与经锐化的图像;
提示:进行锐化的代码必须作为独立的函数文件处理,并在文件后缀处标明(.m),同时确保文件名称采用用户姓名的拼音表示法。例如参考程序可命名为zhangsan.m等。
function out_im = zhangsan(input_im)
三、实验过程及结果
利用MATLAB平台调用imread函数获取指定照片,并使用imshow函数对其进行展示;其中,通过执行imresize(A,m)指令实现图片的按比例缩放并填充空缺部分。

x = imread('jean.jpg'); % 读取图片
imshow(x); % 显示图片
smallx = imresize(x, 0.05); % 缩小图片
figure, imshow(smallx); % figure:生成新的图片窗口,不覆盖原窗口
2. 利用rgb2gray()函数将图像转换为灰度图像;

x = imread('jean.jpg'); % 读取图片
smallx = imresize(x, 0.05); % 缩小图片
imshow(smallx);
gx = rgb2gray(smallx); % 转换为灰度图像
f1 = fspecial('average', 5); % 生成均值滤波器
gx1 = filter2(f1, gx); % 二位数字滤波器
figure, imshow(uint8(gx1)); % 强制转换为uint8(0-255)
采用一种平滑滤波器F进行图像处理(例如选择9×9均值滤波器或高斯滤波器),通过调用filter2函数来应用滤波器F于原始图像im以生成new_im;随后将处理后的图像数据转换为uint8格式,并将其与原始图像一同展示在指定窗口中。

x = imread('jean.jpg'); % 读取图片
smallx = imresize(x, 0.05);
gx = rgb2gray(smallx);
f1 = fspecial('average', [9 9]); % 1、9*9均值滤波器
gx1 = filter2(f1, gx);
f2 = fspecial('gaussian', [9 9]); % 2、高斯滤波器
gx2 = filter2(f2, gx);
f3 = fspecial('laplacian'); % 3、拉普拉斯滤波器
gx3 = filter2(f3, gx);
f4 = fspecial('sobel'); % 4、sobel滤波器
gx4 = filter2(f4, gx);
f5 = fspecial('prewitt'); % 5、prewitt滤波器
gx5 = filter2(f5, gx);
subplot(2, 3, 1);imshow(smallx); title('缩小至原来的0.05倍');
subplot(2, 3, 2);imshow(uint8(gx1)); title('1、9*9均值滤波器');
subplot(2, 3, 3);imshow(uint8(gx2)); title('2、9*9高斯滤波器');
subplot(2, 3, 4);imshow(uint8(gx3)); title('3、拉普拉斯滤波器');
subplot(2, 3, 5);imshow(uint8(gx4)); title('4、sobel滤波器');
subplot(2, 3, 6);imshow(uint8(gx5)); title('5、prewitt滤波器');
4. 通过调用double()函数将原始图片的数据格式转换为浮点型数据格式之后, 遵循'原始图片为基础, 原始图片减去平滑后的图片'的原则执行运算; 接着, 应用uint8()函数对运算结果进行数据类型的转换, 最后在图形界面中同时展示原始图片与经锐化处理后的对比效果

x = imread('jean.jpg'); % 读取图片
smallx = imresize(x, 0.05);
gx = rgb2gray(smallx);
sharpx = luweixing(gx, 5);
F = fspecial('average', [9 9]); % 1、9*9均值滤波器
y = filter2(F, gx);
xy = double(gx) - y; % 进行数据转换
subplot(2, 2, 1);imshow(gx); title('灰度图像');
subplot(2, 2, 2);imshow(uint8(y), []); title('1、利用滤波器,对图像进行滤波');
subplot(2, 2, 3);imshow(uint8(xy), []); title('2、高频图,突出边缘轮廓');
subplot(2, 2, 4);imshow(uint8(sharpx)); title('3、锐化结果图');
5. 采用一种边缘检测滤波器FF(例如sobel或prewitt滤波器)对目标图像im施加filter2(FF, im)作用以完成滤波过程;随后将原始图像转换为浮点型数据,并按照原始图像与其边缘图叠加的方式计算所需参数;最后,在窗口中同时展示原始图像及其锐化版本。

x = imread('jean.jpg');
smallx = imresize(x, 0.05);
gx = rgb2gray(smallx);
sharpx = luweixing(gx);
imshow(uint8(sharpx));
F2 = fspecial('prewitt');
y2 = filter2(F2, gx); % 反映边缘结构情况
sharpx2 = double(gx) + y2; % 原图像+边缘图像
subplot(2, 2, 1);imshow(gx); title('灰度图像');
subplot(2, 2, 2);imshow(uint8(y2), []); title('利用滤波器,对图像进行滤波');
subplot(2, 2, 3);imshow(uint8(sharpx)); title('锐化方案1、使用“平滑滤波器”');
subplot(2, 2, 4);imshow(uint8(sharpx2)); title('锐化方案2、原图+边缘图');
函数文件:
% 输入图像,输出锐化结果
function X = luweixing( im, Size ) % 灰度图像作为形参
F = fspecial('prewitt');
y = filter2(F, im);
xy = double(im) - y; % 进行数据转换
X = double(im) + xy; % 原图+轮廓:清晰度更高
end
四、分析与思考
本次实验让我掌握了Matlab中函数的应用及其函数文件创建的方法。深入理解了图像处理中的空域滤波概念,并且在实践中学习了如何生成滤波器以及执行基本滤波操作。透彻掌握了一切关于图像锐化的实施方法与步骤以及其背后的理论基础。
锐化图像的实现过程1:
1.首先利用grb2gray()函数将图像转换为灰度图像;
然后采用边缘检测滤镜对灰度图实施过滤(均值和高斯过滤器在去噪方面表现出色),从而获得一个显著地模糊化且具有软化外观的灰度图。
3.使用原图减去滤波结果图,得到突出边缘轮廓的高频图;
- 最后,在原图像上叠加具有突出边缘轮廓的高频图像即可得到锐化结果图。通过观察锐化结果图可以看出,在处理后的图像中边界细节更加分明,并且处理后的清晰度较之前有所提升。
锐化图像的实现过程2:
1.首先利用grb2gray()函数将图像转换为灰度图像;
随后,在灰度图像上应用边缘检测算法进行处理(基于均值和高斯滤波器的处理效果较为理想),从而获得较为模糊且平滑的灰度图像
3.原图+滤波结果图,即可得到锐化结果图。
