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)
参数说明:
边界补偿方式,BORDER_CONSTANTorBORDER_REPLICATE
cv2.perspectiveTransform(src, 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