cv2.warpPerspective()+cv2.getPerspectiveTransform()透视变换

定义

  • cv2.warpPerspective(img,matric,size)
  • cv2.getPerspectiveTransform(pts1,pts2)

用法

对于透视变换,需要一个3*3的变换矩阵,在变换前后直线还是直线。需要在原图上找到4个点以及

他们在输出图上对应的位置。注意,这四个点任意三个都不能共线,变换矩阵可由opencv提供的

cv2.getPerspectiveTransform()函数构建,然后传给函数cv2.warpPerspective()

cv2.warpPerspective(img,matric,size)
函数作用透视变换
img输入图像
matrix变换矩阵,可由cv2.getPerspectiveTransform()获得
size输出图像的大小,格式为(宽(列),高(行))
cv2.getPerspectiveTransform(pts1,pts2)
函数作用构建变换矩阵
pts1原图像四个点的坐标
pts2原图像四个点在变换后相应的坐标

示例

import cv2 
import numpy as np
from matplotlib import pyplot as plt

img=cv2.imread('D:/2.png') 
rows,cols,ch = img.shape 
pts1 = np.float32([[56,65],[368,52],[28,387],[389,390]])
pts2 = np.float32([[0,0],[300,0],[0,300],[300,300]]) 

M=cv2.getPerspectiveTransform(pts1,pts2)
dst=cv2.warpPerspective(img,M,(300,300))  

plt.subplot(121),plt.imshow(img),plt.title('Input')
plt.subplot(122),plt.imshow(dst),plt.title('output')
plt.show()

效果图

  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值