图像的透视变换

## 图像的透视变换

透视变换时按照物体成像投影规律进行变换,即将透视物体重新投影到新的成像平面。在透视变换中,透视前的图像和透视后的图像之间的变换关系可以用一个3✖3的矩阵表示,该矩阵可以通过两幅图像中4个对应点的坐标求取,因此透视变换又称作“四点变换”。

计算透视变换矩阵

getPerspevtiveTransform()

Mat cv::getPerspectiveTransform	(	InputArray 	src,
	InputArray 	dst,
	int 	solveMethod = DECOMP_LU 
)	
  • src[]:原图像中的4个像素坐标
  • dst[]:没目标图像的4个像素坐标
  • solveMethod:选择计算透视变换矩阵方法的标志,可以选择的参数即含义如下给出
参数标志简记作用
DECOMP_LU0最佳主轴元素的高斯消元法
DECOMP_SVD1奇异值分解法
DECOMP_EIG2特征值分解法
DECOMP_CHOLESKY4Cholesky 值分解法
DECOMP_QR8QR 值分解法
DECOMP_NORMAL16使用正规方程式,可以与其他标志一起使用

透视变换函数

warpPerspective()

void cv::warpPerspective(	
    InputArray 	src,
    OutputArray 	dst,
    InputArray 	M,
    Size 	dsize,
    int 	flags = INTER_LINEAR,
    int 	borderMode = BORDER_CONSTANT,
    const Scalar & 	borderValue = Scalar() 
)	
  • src:输入图像
  • dst:透视变换后输出图像
  • M:3✖3矩阵
  • dsize:输出图像的尺寸
  • flags:插值法标志
  • bordermode:像素边界外推法标志
  • borderValue:填充边界使用的数值,默认情况下为0

代码

#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;

int main()
{
	Mat img = imread("E:/Aha/学习/OpenCV/learnOpenCV4-master/data/noobcvqr.png");
	
	Point2f src_point[4];
	Point2f dst_point[4];
	// 通过 imgwatch 查看二维码四个点
	//			upr			upl				downr		downl
	// befor	p1(93, 374)	p2(508, 380)	p3(1, 624)	p4(627,627)	
	// end		p1(00, 00)	p2(627, 0)		p3(0, 627)	p4(627,627)
	src_point[0] = Point2f(93.0, 374.0);
	src_point[1] = Point2f(508.0, 380.0);
	src_point[2] = Point2f(1.0, 624.0);
	src_point[3] = Point2f(627.0, 627.0);

	dst_point[0] = Point2f(0.0, 0.0);
	dst_point[1] = Point2f(627.0, 0.0);
	dst_point[2] = Point2f(0.0, 627.0);
	dst_point[3] = Point2f(627.0, 627.0);
	imshow("好久不见", img);
	Mat rotation, img_warp;
	rotation = getPerspectiveTransform(src_point, dst_point);
	warpPerspective(img, img_warp, rotation, img.size());
	imshow("不忘初心", img_warp);

	waitKey(0);
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值