图像处理-图像锐化 实验报告

实验报告

课程名:图像处理创新实验

内容:图像锐化

学生姓名                                          

专业班级                                          

学      号                                            

指导教师                  常化文             

实验日期       2022 10 25      

一、实验目的

        掌握matlab环境下,函数(function)文件的编写方法;熟悉并了解图像处理中空域滤波的概念,通过实际操作掌握滤波器的生成和基本的滤波操作;理解图像锐化的实现方法和步骤,理解图像锐化的基本理论。

二、实验内容

        步骤1:用手机给自己拍一张美照(必须是本人照片);

        步骤2:将你的照片放到计算机内;

        步骤3:启动Matlab,并通过imread(); 读取该照片,然后通过imshow()进行显示。如果图片过大,可以通过imresize(A,m)进行缩小,其中A为图像,m为尺寸变化系数,比如可设为0.2,尺寸为原来的五分之一;

        步骤 4:利用rgb2gray()函数将图像转换为灰度图像;

        步骤5:利用一种平滑滤波器,F,如9*9的均值滤波器或高斯滤波器,通过new_im = filter2(F, im)对图像进行滤波;

        步骤6:利用double()将原图像类型转换为浮点型,然后按照“原图像 + 原图像 - 平滑图像”的模式,进行计算;

        步骤7:利用uint8()或mat2gray()将得到的结果图像,进行类型转换,并将原图像和锐化后的图像一同显示在窗口中;

        步骤8:利用一种边缘滤波器,FF,如sobel、prewitt等,通过new_im = filter2(FF, im)对图像进行滤波;

        步骤9:利用double()将原图像类型转换为浮点型,然后按照“原图像 + 边缘图像”的模式,进行计算;

        步骤10:利用uint8()或mat2gray()将得到的结果图像,进行类型转换,并将原图像和锐化后的图像一同显示在窗口中;

        注意:锐化操作的代码需形成函数文件(.m后缀),文件名为姓名的汉语拼音,如zhangsan.m,参考原型如下:

        function out_im = zhangsan(input_im)

三、实验过程及结果

1. 在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)

3. 利用一种平滑滤波器,F,如9*9的均值滤波器或高斯滤波器,通过new_im = filter2(F, 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等,通过new_im = filter2(FF, im)对图像进行滤波;然后利用double()将原图像类型转换为浮点型,按照“原图像 + 边缘图像”的模式,进行计算;并将原图像和锐化后的图像一同显示在窗口中。

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()函数将图像转换为灰度图像;

        2.然后使用边缘滤波器对灰度图像进行滤波(均值滤波器与高斯滤波器对图像进行滤波的效果较好),得到灰度图像的较为模糊的平滑图像;

        3.使用原图减去滤波结果图,得到突出边缘轮廓的高频图;

        4.最后,将原图加上突出边缘轮廓的高频图,即可得到锐化结果图。观察锐化结果图可以看出:锐化后的图像轮廓比原图像的轮廓清晰且锐化结果图清晰度更高。

        锐化图像的实现过程2:

        1.首先利用grb2gray()函数将图像转换为灰度图像;

        2.然后使用边缘滤波器对灰度图像进行滤波(均值滤波器与高斯滤波器对图像进行滤波的效果较好),得到灰度图像的较为模糊的平滑图像;

        3.原图+滤波结果图,即可得到锐化结果图。

  • 16
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值