一、原理
图像矫正的原理是透视变换,下面来介绍一下透视变换的概念。
透视变换(Perspective Transform)基于一个4对点的映射关系(4个源点到4个目标点),通过这些点之间的映射,可以计算一个变换矩阵(3x3)。利用该矩阵对图像进行变换,实现畸变矫正。
二、代码
import cv2
import numpy as np#读取一张彩色图
img=cv2.imread('./3.png.')#获取透视矩阵
# 1.找到原图的四个点,可以手动设置,也可以在后面学完轮廓后筛选自动获取
points1=np.float32([[175,142],[621,35],[89,491],[652,546]])# 2.设置原图中的四个点在目标图中的位置
points2=np.array([[0,0],[img.shape[1],0],[0,img.shape[0]],[img.shape[1],img.shape[0]]],dtype=np.float32)#获取矩阵
M=cv2.getPerspectiveTransform(points1,points2)#进行透视变换
img_p=cv2.warpPerspective(img,M,(img.shape[1],img.shape[0]))cv2.imshow('img',img)
cv2.imshow('img_p',img_p)
cv2.waitKey(0)