cv2.getPerspectiveTransform 透视变换函数解析

简介

透视变换(Perspective Transformation)是将成像投影到一个新的视平面(Viewing Plane),也称作投影映射(Projective Mapping)。如图,通过透视变换ABC变换到A’B’C’。

函数解析

cv2.getPerspectiveTransform(src, dst)

参数说明:
src:源图像中待测矩形的四点坐标
sdt:目标图像中矩形的四点坐标

cv2.warpPerspective(src,M,dsize,dst,flags,borderMode,borderValue)

参数说明:

  • src:输入图像
  • M:变换矩阵
  • dsize:目标图像shape
  • flags:插值方式,interpolation方法INTER_LINEAR或INTER_NEAREST
  • borderMode:
    边界补偿方式,BORDER_CONSTANTorBORDER_REPLICATE
  • borderValue:边界补偿大小,常值,默认为0
  • cv2.perspectiveTransform(src, m)

    参数说明:

  • src:输入的2通道或者3通道的图片
  • m:变换矩阵
  • 区别

    warpPerspective适用于图像。perspectiveTransform适用于一组点。

    使用举例

    def warpImg(img, points, w, h, inv=False):
        pts1 = np.float32(points)  # 第一个点在左上角,将图片转化为float32类型  目标图像中矩形的四点坐标
        pts2 = np.float32([[0, 0], [w, 0], [0, h], [w, h]])  # 源图像中待测矩形的四点坐标
        if inv:
            matrix = cv2.getPerspectiveTransform(pts2, pts1)
            # 第一个参数为源图像中待测矩形的四点坐标,第二个参数为目标图像中矩形的四点坐标
        else:
            matrix = cv2.getPerspectiveTransform(pts1, pts2)
        imgWarp = cv2.warpPerspective(img, matrix, (w, h))
        return imgWarp
    

    来源:TommyZiAng

    物联沃分享整理
    物联沃-IOTWORD物联网 » cv2.getPerspectiveTransform 透视变换函数解析

    发表评论