opencv加速warpAffine算子C++例程
时间: 2023-06-28 12:09:07 浏览: 97
以下是使用OpenCV加速warpAffine算子的C++示例代码:
```cpp
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat src = imread("input.jpg"); //读入图片
if (src.empty()) return -1;
Point2f src_pts[3] = { Point2f(0,0), Point2f(src.cols - 1, 0), Point2f(0, src.rows - 1) };//原图三个点
Point2f dst_pts[3] = { Point2f(50,50), Point2f(src.cols - 100, 100), Point2f(80, src.rows - 150) };//目标图三个点
Mat warp_mat = getAffineTransform(src_pts, dst_pts);//计算仿射变换矩阵
Mat dst;
warpAffine(src, dst, warp_mat, src.size());//应用仿射变换矩阵
imshow("src", src);
imshow("dst", dst);
waitKey(0);
return 0;
}
```
在这个示例中,我们首先使用`imread`函数读入输入图像。然后定义了一个原图三个点和一个目标图三个点,并使用`getAffineTransform`函数计算仿射变换矩阵。最后,我们使用`warpAffine`函数应用仿射变换矩阵将原图转换为目标图,并使用`imshow`函数显示原图和目标图。
值得注意的是,`warpAffine`函数是使用OpenCV加速的,因此在处理大型图像时可以提高性能。
阅读全文