家园宗旨: 诚邀八方志同道合之友, 共谋一隅传道受业之善!
作者简介:
上期我们简单介绍了电子图片在Matlab中的读取及数据存储形式,电子图片的本质可以看成多通道的数值矩阵,通过矩阵索引可以获取图片任意区域的信息,可对其进行修改等操作。本期内容我们将介绍一些常用的图像处理功能。首先是图像的缩放操作,可以通过 imresize函数实现图像宽、高方向上尺寸的改变,如对图像进行2倍放大,即可按如下操作:
需要注意的是,该函数默认使用双三次插值算法,并且默认开启抗锯齿功能,如使用默认参数对图像进行处理时,得到的结果可能opencv库得到的结果不同。另外当图像是由浮点数构成时,默认的双三次插值可能会使插值后的图像中出现负值,当进行对输出值域有要求的深度学习任务时,需要注意默认参数设置是否能够满足需求。该函数另有最近邻插值、双线性插值方法。
接下来介绍一下图片的旋转操作,可以通过
imrotate函数实现在像素平面内任意角度的旋转,基本操作方式如下:
该函数的旋转方式为以矩阵的中心为旋转中心,默认的旋转方向为逆时针。当旋转角度不等于90的整数倍时,输出图像的方式可选择剪裁成与原图像相同尺寸、或扩大输出图像尺寸以保证所有像素都被保留;并且此时图像需进行插值处理,默认的插值方式为最近邻,可选算法包括线性及三次插值。
最后介绍图像的平移操作,可以通过imtranslate函数实现,基本操作方式如下:
该函数可以实现像素方向任意距离的平移操作,平移后可自定义填充区域的数值;并可设置输出图片的尺寸是否保留原图像大小。
- 未完,待续 -
作者 | 王业伟