数字图像处理学习笔记3

第三章 图像基本运算(1) 附实验

3.1概述

图像处理是建立在各种算法基础上的处理方法。

  1. 点运算
  2. 代数运算
  3. 逻辑运算
  4. 几何运算

3.2点运算

点运算实际上是对图像中每个像素点的灰度值按照一定的映射关系进行运算,得到一副新的图像。

例如,将图像A中所有点的灰度值都加上1,就是一个点运算。

点运算又被称为对比度增强或灰度变换GST

①点运算可以扩展图像中我们所关注的部分信息的对比度,使之占据的灰度级范围的更大一部分(看得更清),叫做对比度增强。

②变换灰度的单位,灰度等价可以代表光学密度的等步长增量。

包括:

  1. 线性点运算
  2. 非线性点运算

线性点运算

输入图像A的灰度值经过线性运算后得到目标图像的灰度值,或者说是指输入图像的灰度级与目标图像的灰度级呈线性关系。

例如 输出点的灰度值s=a*r+b

r是输入点的灰度值,a和b则是系数。

当a=1,b=0时,像素点灰度值不变,是对输入图像的复制。

当a=1,b!=1时,则是使所有点的像素值上移或下移,使其看起来更暗或更亮。

当a>1,输出图像对比度增大。

当a<1,输出图像对比度降低。

当a<0,原图像中暗的区域变亮,亮的区域变暗。

非线性点运算

一般有对数变换幂次变换

对数变换:s = c log(1 + r)

在这里插入图片描述

对数变换可以将输入的一个小范围的灰度值映射到较大范围的输出值。

在r很小时,同样的△r对应着较大的△s。

幂次变换:s = c * r ^ γ

在这里插入图片描述

当γ<1时,幂次变换会把输入窄带暗值映射到宽带输出值。

当γ>1时,幂次变换会把输入窄带亮值映射到宽带输出值。

变换效果将在实验中展示

3.3代数运算与逻辑运算

代数运算是指两幅或多幅输入图像之间进行点对点的加、减、乘、除运算得到输出图像的过程。如果记输入图像为A(x,y)和B(x,y),输出图像为C(x,y),则有如下四种形式:

C(x , y) = A(x , y) + B(x , y)

C(x , y) = A(x , y) - B(x , y)

C(x , y) = A(x , y) * B(x , y)

C(x , y) = A(x , y) / B(x , y)

加法运算

加法运算通常用于平均值降噪等多种场合。

当图像噪声可以用一个独立分布的随机模型表示和描述时,利用求平均值方法降低噪声信号、提高信噪比就非常有效。
在求平均值的过程中,图像的静止部分不变,而由于图像的随机噪声是随机的,各不相同的噪声图案积累得很慢,因此可以通过多幅图像求平均值来降低随机噪声的影响。

在这里插入图片描述
在这里插入图片描述

减法运算

将同一景物在不同时间拍摄的图像或同一景物在不同波段的图像相减,也叫做差影法。

利用图像之间的差值信息,可以用于指导动态监测、运动目标的监测与跟踪、图像背景的消除与目标识别等。

乘法运算

简单的乘法运算可用来改变图像的灰度级,实现灰度级变换

乘法运算也可用来遮挡图像的某些部分,其典型应用是用于获的掩模图像。对于需要保留下来的区域,掩模图像的值为1,而在需要被抑制掉的区域,掩模图像的值为0。

除法运算

简单的除法运算用于改变图像的灰度级,典型的应用时比值图像处理。

逻辑运算有与、或、非等,主要是针对二值图像进行处理。

3.4几何运算

改变像素位置进行的图像形状的改变,称为几何变换。

一般的定义是

在这里插入图片描述

输入图像f(u,v)从u-v坐标系变换为x-y坐标系,输出图像g(x,y)。

几何变换可以分为图像的位置变换(平移、镜像、旋转)、形状变换(放大、缩小)及图像的复合变换等。

一个几何运算需要两个独立的算法:

  1. 一个用来描述每个像素如何从初始位置移动到终止位置,即每个像素的运动。
  2. 还需要一个算法用于灰度级的插值。这是因为,在一般情况下,输入图像的位置坐标为整数,而输出图像的位置坐标为非整数,反过来也是如此,此时进行灰度级的插值来提高图像的质量。

图像的平移

初始坐标为(x0,y0)的点经过平移(△x, △y) 后,其坐标变为(x1,y1),则这两点之间存在以下关系:

在这里插入图片描述

在这里插入图片描述

对于平移后的新图像中的有些像素点在原图中没有对应点的,即新图中的这些点按照公式逆推所得到的点超出原图像的范围,可以直接将它的像素值统一设置为0或255。

如果新图像与原始图像的空间尺寸相同,某像素点不在新图像中,则说明原始图像中有某些像素点被移除了显示区域。

图像的镜像

图像的镜像是指原始图像相对于某一参照面旋转180°的图像,也叫对称变换,可以分为水平对称、垂直对称等,对称变换后,图像的宽和高不变。

水平镜像

在这里插入图片描述

垂直镜像

在这里插入图片描述

图像的旋转

一般情况下图像的旋转变换是指以图像的中心为原点,将图像上的所有像素都旋转同一个角度的变换。

设原始图像的任意点A(x0,y0)经旋转角度β以后到新的位置A(x,y)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

以原始图像的点(1,1)为例,旋转以后,均为小数,经舍入后为(1,0),产生了位置误差。
因此,图像旋转之后,可能会出现一些空白点,需要对这些空白点进行灰度级的插值处理,否则影响旋转后的图像质量。

图像的缩放

数字图像的全比例缩放是指将给定的图像在x方向和y方向按相同的比例a 缩放,从而获得一幅新的图像,又称为全比例缩放

在这里插入图片描述
在这里插入图片描述

若比例缩放所产生的图像中的像素在原图像中没有相对应的像素点时,就需要进行灰度级的插值运算,一般有以下两种插值处理方法。

  1. 直接赋值为和它最相近的像素灰度值,这种方法称为最近邻插值法,该方法简单、计算量小,但很可能会产生马赛克现象。
  2. 通过其他数学插值算法来计算相应像素点的灰度值,这类方法处理效果好,但运算量会有所增加。

如果一个输出像素映射到四个输入像素之间,则其灰度值由灰度重采样算法决定。

最近邻法:在待求象素的四邻象素中,将距离待求象素最近的邻象素灰度赋给待求象素

双线性内插法:利用待求象素四个邻域像素的灰度在两个方向上作线性内插。

3.5实验 图像基本运算

实验内容

(1)对图像进行线性点运算。

(2)对图像比例放大1.5倍,比例缩小0.7倍,非比例放大到600x700像素,非比例缩小到300x400像素。

(3)对图像旋转30度、60度、90度、135度和180度。

实验步骤

程序(1)
I=imread('lenagray.jpg');
I_Point_1=1.5*I+50;
I_Point_2=0.3*I+50;
I_Point_3=-1*I+50;
 
 
figure;
subplot(2,2,1);
imshow(I);
xlabel('原图');

subplot(2,2,2);
imshow(I_Point_1);
xlabel('a=1.5,b=50');

subplot(2,2,3);
imshow(I_Point_2);
xlabel('a=0.3,b=50');

subplot(2,2,4);
imshow(I_Point_3);
xlabel('a=-1,b=50');

程序(2)

I=imread('lenagray.jpg');
I_size_1=imresize(I,1.5);
I_size_2=imresize(I,0.7);
I_size_3=imresize(I,[600,700]);
I_size_4=imresize(I,[300,400]);
 
figure;
subplot(2,3,1);
imshow(I);
xlabel('原图');

subplot(2,3,2);
imshow(I_size_1);
xlabel('1.5倍');

subplot(2,3,3);
imshow(I_size_2);
xlabel('0.7倍');

subplot(2,3,4);
imshow(I_size_3);
xlabel('600x700');

subplot(2,3,5);
imshow(I_size_4);
xlabel('300x400');

程序(3)
I=imread('lenagray.jpg');
I_rotate_1=imrotate(I,30,'bilinear');
I_rotate_2=imrotate(I,60,'bilinear');
I_rotate_3=imrotate(I,90,'bilinear');
I_rotate_4=imrotate(I,135,'bilinear');
I_rotate_5=imrotate(I,180,'bilinear');
 
figure;
subplot(2,3,1);
imshow(I);
xlabel('原图');

subplot(2,3,2);
imshow(I_rotate_1);
xlabel('旋转30度');

subplot(2,3,3);
imshow(I_rotate_2);
xlabel('旋转60度');

subplot(2,3,4);
imshow(I_rotate_3);
xlabel('旋转90度');

subplot(2,3,5);
imshow(I_rotate_4);
xlabel('旋转135度');

subplot(2,3,6);
imshow(I_rotate_5);
xlabel('旋转180度');

实验结论

实验(1)报告:从图中可以看出,在线性点运算中,当a>1时,输出的图像对比度增加;当a<1时,输出的图像对比度降低;当a<0时,暗区域变亮,亮区域变暗,但是由于变换之后各个像素点灰度值过低,导致图片看起来全部都是黑色。

实验(2)报告:在将图像等比例放大和缩小之中,a>1,图像被放大;a<1,图像被缩小。从图像的整体看起来,等比例的放大和缩小不会引起图片的变形。而非比例放大和缩小直接指定最后输出图片的分辨率,会使缩放之后的图像产生几何畸变。

实验(3)报告:在一般情况下,图像的旋转是指以图像的中心为原点,将图像上所有像素都旋转同一个角度的变换,图像经过旋转之后,图像的位置发生了改变。例如在旋转30、60、135度时,旋转之后的图像中出现了黑色不显示的区域。另外由于数字图像的坐标是整数,图像旋转之后,可能引起图像部分像素点的局部改变,这时图像的大小也会发生变化。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值