//仿射变换
void affineChange()
{
Mat src = imread("src.jpg", CV_LOAD_IMAGE_COLOR);
//只需三个点
vector<Point2f> srcPointA;
vector<Point2f> dstPointA;
srcPointA.push_back(Point2f(0, 0));
srcPointA.push_back(Point2f(0, src.rows));
srcPointA.push_back(Point2f(src.cols, 0));
dstPointA.push_back(Point2f(src.cols * 0.1, src.rows * 0.1));
dstPointA.push_back(Point2f(src.cols * 0.2, src.rows * 0.7));
dstPointA.push_back(Point2f(src.cols * 0.7, src.rows * 0.2));
Mat m4;
//获取放射变换矩阵
m4 = getAffineTransform(srcPointA, dstPointA);
Mat resultImgA;
//进行仿射变换
warpAffine(src, resultImgA, m4, src.size());
cv::imshow("truth image", src);
cv::imshow("affine image", resultImgA);
waitKey(0);
}
opencv仿射变换
最新推荐文章于 2024-01-04 10:22:11 发布