一、本例中将要用到的主要函数:
Mat cv::getPerspectiveTransform(const Point2f src[], const Point2f dst[]);
void warpPerspective( InputArray src, OutputArray dst,
InputArray M, Size dsize,
int flags = INTER_LINEAR,
int borderMode = BORDER_CONSTANT,
const Scalar& borderValue = Scalar());
二、代码实例:
#include<opencv.hpp>
int main()
{
//读取图片
cv::Mat src = cv::imread("C:\\Users\\Asus\\Pictures\\Saved Pictures\\20150608184903105.png", 1);
cv::Mat dst;//效果图将在后面赋给dst
cv::Mat matrix = cv::Mat(3, 3, CV_32FC1);//3*3 32浮点 单通道矩阵
cv::Point2f src_start[4];//声明二维数组src_start
cv::Point2f dst_goal[4];//声明二维数组dst_goal
//对二维数组进行赋值
//
//这里是将原图四个顶点的坐标赋给二维数组src_start(原图为矩形,有四个顶点)
src_start[0].x = 0;
src_start[0].y = 0;
src_start[1].x = src.cols - 1;//src.cols意为原图的列数
src_start[1].y = 0;
src_start[2].x = 0;
src_start[2].y = src.rows - 1;//sr