上一篇文章介绍了MATLAB图像几何运算中的图像缩放操作。本文介绍了其余的几何操作,如图像旋转(imrotate())、图像裁剪(imcrop())、图像平移、图像镜像等。
在MATLAB图像处理工具箱中,提供了imrotate()函数来实现图像旋转。该函数的调用格式如下:b=imrotate (a,angle): a表示要处理的图像;Angle是一个数字,表示旋转角度;如果是正的,逆时针旋转;如果为负,顺时针旋转;
B=imrotate(A,angle,method):参数法表示旋转过程中使用的插值方法,如最近邻插值(' nearest ')、双线性插值('双线性')、三次核插值('立方')等。
B=imrotate(A,angle,method,bbox):参数bbox有两个值。当它是' crop '时,意味着旋转后的图像将被剪切,以保持与原始图像相同的大小;当它为“松散”时,不执行切割,这是默认值。
对于要处理的图像,有时我们只关心图像的一部分,而不是整个图像。因此,在MATLAB图像处理工具箱中提供了imcrop()函数来实现图像裁剪。该函数的调用格式如下:I=imcrop:程序运行时,等待鼠标选中图像的矩形区域进行切割。
I2=imcrop(I),X2=imcrop(X,map):剪切输入图像。
I=imcrop(h):剪切一个句柄值为h的对象,它可能代表一个图形、轴、图像等。
I2=imcrop(I,rect):非人机交互,按指定范围进行裁剪,rect=[xmin ymin width height],分别代表矩形框左下角的横坐标和纵坐标、矩形宽度和矩形高度。
[I2 rect]=imcrop(…),[X,Y,I2,rect]=imcrop(…):返回用户交互剪切时矩形剪切框的参数。
在MATLAB的图像处理工具箱中,没有实现图像平移和图像镜像的函数,有我自己的代码来完成这两个操作。图像平移意味着图像上的所有点以相同的偏移量向同一方向(沿X轴和Y轴)移动。
镜像反射镜包括水平反射镜、垂直反射镜和对角反射镜。水平镜像是镜像图像的左半部分和右半部分;竖镜是镜像图像的上半部和下半部;对角镜是先横后竖,或先竖后横的镜像。
下面,通过一个例子详细讲解数字图像几何运算的方法:代码:
显示效果:
图1
图2
图3
最后,感谢大家耐心阅读!