基本思想:对图像进行仿射处理
#include <opencv2/opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main() {
Point2f srcTriangle[3];
Point2f dstTriangle[3];
Mat dstImage_warp_rotate;
Mat srcImage = imread("/home/ubuntu/CLionProjects/test/1.jpg");
Mat dstImage_warp;
srcTriangle[0] = Point2f(0, 110);
srcTriangle[1] = Point2f(523, 520);
srcTriangle[2] = Point2f(122, 37);
dstTriangle[0] = Point2f(33, 613);
dstTriangle[1] = Point2f(433, 141);
dstTriangle[2] = Point2f(143, 115);
Mat warpMat = getAffineTransform(srcTriangle, dstTriangle);
warpAffine(srcImage, dstImage_warp, warpMat, dstImage_warp.size());
imshow("仿射变换", dstImage_warp);
waitKey(0);
return 0;
}