图像的几何操作

1 仿射变换函数

cv2.warpAffine(src, M, dsize, flags, boderMode, borderValue)

src —— 输入图像

M —— 变换矩阵。一般反映平移或旋转的关系,为InputArray类型的2×3的变换矩阵。

dsize —— 输出图像的大小。

flags —— 插值方法的组合(int 类型!)flages表示插值方式,默认为 flags=cv2.INTER_LINEAR,表示线性插值,此外还有:cv2.INTER_NEAREST(最近邻插值)cv2.INTER_AREA (区域插值)cv2.INTER_CUBIC(三次样条插值)cv2.INTER_LANCZOS4(Lanczos插值)

borderMode —— 边界像素模式(int 类型!)

borderValue —— (重点!)边界填充值; 默认情况下为0。

2 图像平移

将图像中所有的点按照指定的平移量水平或者垂直移动。

3 图像缩放

下采样:

缩小图像称为下采样(subsampled)或降采样(downsampled)

上采样:

放大图像称为上采样(upsampling),主要目的得到更高分辨率图像。

图像缩放:

图像缩放是指图像大小按照指定的比例进行放大或者缩小。

函数  cv2.resize(src,dsize=None,fx,fy,interpolation)

scr:原图

dsize:输出图像尺寸,与比例因子二选一

fx:沿水平轴的比例因子

fy:沿垂直轴的比例因子

interpolation:插值方法,默认为cv2.INTER_NEAREST

4 图像旋转

变换矩阵函数:cv2.getRotationMatrix2D(center, angle, scale)

参数:

center:图片的旋转中心

angle:旋转角度

scale:缩放比例,0.5表示缩小一半正为逆时针,负值为顺时针

5 仿射变换

通过仿射变换对图片进行旋转、平移、缩放等操作以达到数据增强的效果

线性变换从几何直观上来看有两个要点:

变换前是直线,变换后依然是直线

直线的比例保持不变

函数:

仿射变换的函数原型如下:

M = cv2.getAffineTransform(pos1,pos2)

pos1表示变换前的位置

pos2表示变换后的位置

5 透视变换

本质是将图像投影到一个新的视平面。

函数:

M = cv2.getPerspectiveTransform(pos1, pos2)

pos1表示透视变换前的4个点对应位置

pos2表示透视变换后的4个点对应位置

cv2.warpPerspective(src,M,(cols,rows))

src表示原始图像

M表示透视变换矩阵

(rows,cols)表示变换后的图像大小,rows表示行数,cols表示列数

6 翻转

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 图像几何变换 1.图像仿射变换 图像仿射变换又称为图像仿射映射,是指在几何中,一个向量空间进行一次线性变换并接上一...
    lk311阅读 447评论 0赞 0
  • 变换 opencv 提供了两个转换函数,cv2.warpAffine 和 cv2.warpPerspective,...
    sumpig阅读 1,106评论 0赞 0
  • 几何变换是指将一幅图像映射到另一副图像内的操作,根据映射关系的不同,有缩放、翻转、仿射变换、透视、重映射等。 1....
    长歌行夜一阅读 752评论 0赞 1
  • 1. 图像配准的基本概念 Image registration 是指同一目标的两幅或者两幅以上的图像在空间位置的对...
    阿阿阿阿毛阅读 6,464评论 0赞 2
  • 渐变的面目拼图要我怎么拼? 我是疲乏了还是投降了? 不是不允许自己坠落, 我没有滴水不进的保护膜。 就是害怕变得面...
    闷热当乘凉阅读 4,643评论 0赞 13

友情链接更多精彩内容