opencv加速运算warpAffine带参数WARP_INVERSE_MAP例程C++
时间: 2023-07-08 11:05:55 浏览: 120
下面是一个使用OpenCV库中warpAffine函数进行图像变换的C++代码示例。该示例使用WARP_INVERSE_MAP参数来加速运算。
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
// 读取图片
Mat img = imread("image.jpg");
// 定义变换矩阵
Mat M(2, 3, CV_32FC1);
M.at<float>(0, 0) = 0.5;
M.at<float>(0, 1) = 0;
M.at<float>(0, 2) = img.cols / 4.f;
M.at<float>(1, 0) = 0;
M.at<float>(1, 1) = 0.5;
M.at<float>(1, 2) = img.rows / 4.f;
// 定义输出图像
Mat dst = Mat::zeros(img.size(), img.type());
// 使用WARP_INVERSE_MAP参数加速运算
warpAffine(img, dst, M, img.size(), WARP_INVERSE_MAP);
// 显示结果
imshow("Input", img);
imshow("Output", dst);
waitKey(0);
return 0;
}
```
在上述代码中,我们首先读取一张图片,然后定义了一个2x3的变换矩阵M,该矩阵将原图像缩小到50%,并将其移动到右下角。接着,我们定义了输出图像dst,并使用warpAffine函数将原图像img进行变换并输出到dst中。最后,我们显示了原图像和输出图像,并等待用户按下任意键退出程序。
需要注意的是,我们在调用warpAffine函数时使用了WARP_INVERSE_MAP参数,这将会加速运算并提高程序的效率。
阅读全文
相关推荐
















