对图像进行诸如缩放、旋转、仿射变换和透视变换等操作。翻译地址。
缩放
通过函数cv2.resize() 函数实现,主要是插值方法的选择:cv2.INTER_AREA用于缩小图像,cv2.INTER_CUBIC和cv2.INTER_LINEAR用于放大图像时使用。
平移
利用变换矩阵实现对x和y方向的平移,通过cv2.warpAffine()函数进行变换。
旋转
利用变换矩阵获得变换后的图像,其中。变换矩阵通过函数cv2.getRotationMatrix2D(center, angle, scale)获得,其中第二个参数为图片逆时针旋转的角度。变换操作仍通过函数cv2.warpAffine()执行。
仿射变换
特点:平行线输出还是平行线。利用 cv2.getAffineTransform()函数对不在同一直线上的3个点(可构成平面)到目标图上对应点的对应关系构建变换矩阵,然后利用函数cv2.warpAffine()进行变换操作。
透视变换
特点:直线在目标图上仍为直线。利用cv2.getPerspectiveTransform()函数对原图中的4个点(其中3个共线)到目标图点的关系构建变换矩阵,变换函数为cv2.warpPerspective()
仿射变换 | 透视变换 |
ps:仿射变换矩阵为2*3的矩阵,透视变换为3*3的矩阵。
参考文献: