Python使用OpenCV仿射变换实例

本文介绍了Python中使用OpenCV进行图像仿射变换,包括平移、缩放、旋转和三点定位计算仿射变换矩阵。通过cv2.getAffineTransform()和cv2.warpAffine()实现图像的平移、缩放和旋转。此外,还探讨了三维透视变换,利用getPerspectiveTransform()和warpPerspective()进行四点定位的变换。

图像img的像素为534*300,img.shape = (300, 534, 3)。

需要引入:

import cv2 as cv
import numpy as np

img.shape得到的(300, 534, 3),前者300是高度,y轴的值,后者534是宽度,x轴的值,这一点有些不同。

图像的xy轴,是以图像左上角顶点为(0, 0)原点,类似于css。从顶点沿宽度向右是x正轴,沿高度向下是y正轴。

一、平移变换

cv2.warpAffine()   仿射变换(从二维坐标到二维坐标之间的线性变换,且保持二维图形的“平直性”和“平行性”。仿射变换可以通过一系列的原子变换的复合来实现,包括平移,缩放,翻转,旋转和剪切)
    参数:
        img: 图像对象
        M:2*3 transformation matrix (转变矩阵)
        dsize:输出矩阵的大小,注意格式为(cols,rows)  即width对应cols,height对应rows
        flags:可选,插值算法标识符,有默认值INTER_LINEAR,
               如果插值算法为WARP_INVERSE_MAP, warpAffine函数使用如下矩阵进行图像转dst(x,y)=src(M11*x+M12*y+M13,M21*x+M22*y+M23)
        borderMode:可选, 边界像素模式,有默认值BORDER_CONSTANT 
        borderValue:可选,边界取值,有默认值Scalar()即0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值