opencv透视变换cvWarpPerspective实例

本文通过使用OpenCV库,演示了如何根据四个指定的点计算透视变换矩阵,并应用该矩阵到图像上,实现从源图像到目标图像的透视效果转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
根据四个点计算透视变换矩阵warp_mat,原图src根据变换矩阵warp_mat计算得到dst变换图像
*/
#include "stdafx.h"
#include<cv.h>
#include <highgui.h>
#include <math.h>
int main()
{
CvPoint2D32f srcTri[4], dstTri[4];
CvMat*       warp_mat = cvCreateMat (3, 3, CV_32FC1);
IplImage*    src = NULL;
IplImage*    dst = NULL;


src = cvLoadImage ("D:\\VCcodes\\00OpenCv\\Image&Video\\公路.bmp", 1);
dst = cvCloneImage (src);
dst->origin = src->origin;
cvZero (dst);


srcTri[0].x = 216;
srcTri[0].y = 0;
srcTri[1].x = 378;
srcTri[1].y = 0;
srcTri[2].x = 0;
srcTri[2].y = src->height - 1;
srcTri[3].x = src->width - 1;
srcTri[3].y = 198;


dstTri[0].x = 0;
dstTri[0].y = 0;
dstTri[1].x = src->width-1;
dstTri[1].y = 0;
dstTri[2].x = 0;
dstTri[2].y = src->height - 1;
dstTri[3].x = src->width-1;
dstTri[3].y = 198;


cvGetPerspectiveTransform (srcTri, dstTri, warp_mat);
cvWarpPerspective (src, dst, warp_mat);


cvNamedWindow("src", 1);
cvShowImage("src", src);
cvNamedWindow ("Affine_Transform", 1);
cvShowImage ("Affine_Transform", dst);


cvWaitKey (0);


cvReleaseImage (&src);
cvReleaseImage (&dst);
cvReleaseMat (&warp_mat);


return 0;

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值