没有加速
时间: 2023-10-01 19:03:16 浏览: 31
如果你的OpenCV库支持SSE2指令集,并且你使用的编译器开启了SSE2指令集优化,那么上述代码应该已经使用了SSE2加速。但是,如果你想确认代码中是否真的使用了SSE2指令集,可以使用OpenCV提供的CPU功能检测函数来检测。示例代码如下:
```cpp
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
// 检测CPU指令集支持情况
cout << "SSE2 supported: " << checkHardwareSupport(CV_CPU_SSE2) << endl;
// 读取图像
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;
}
```
在上述代码中,`checkHardwareSupport`函数用于检测CPU是否支持SSE2指令集,如果返回值为1,则表示支持,否则表示不支持。