opencv455通过getRotationMatrix2D创建变换矩阵使用SSE2加速warpAffine并带参数WARP_INVERSE_MAP C++
时间: 2024-01-11 22:02:44 浏览: 124
image_video_rotation.md
好的,下面是使用C++的示例代码:
```cpp
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
// 读取图像
Mat img = imread("test.jpg");
// 旋转中心
Point2f center(img.cols / 2, img.rows / 2);
// 旋转角度
double angle = 45;
// 缩放比例
double scale = 1;
// 获得旋转矩阵
Mat M = getRotationMatrix2D(center, angle, scale);
// 使用SSE2加速warpAffine并带参数WARP_INVERSE_MAP
int flags = INTER_LINEAR + WARP_INVERSE_MAP;
Mat dst;
warpAffine(img, dst, M, img.size(), flags, BORDER_CONSTANT, Scalar(0, 0, 0));
// 显示结果
imshow("img", img);
imshow("dst", dst);
waitKey(0);
destroyAllWindows();
return 0;
}
```
在上述代码中,`Mat`类型表示图像矩阵,`Point2f`类型表示二维坐标点,`Scalar`类型表示颜色值。`getRotationMatrix2D`函数用于创建旋转矩阵,`warpAffine`函数用于对图像进行旋转操作,并使用SSE2进行加速,最后将旋转后的图像进行显示。
阅读全文