VS2017使用AVX2指令集opencv4.5.5函数warpaffine带参数WARP_INVERSE_MAP效果的例程
时间: 2024-02-27 16:55:28 浏览: 67
以下是使用AVX2指令集和OpenCV 4.5.5函数warpAffine带参数WARP_INVERSE_MAP的例程:
```cpp
#include <opencv2/opencv.hpp>
#include <opencv2/core/avx2.hpp>
#include <opencv2/imgcodecs.hpp>
#include <iostream>
int main()
{
cv::Mat img = cv::imread("test.jpg");
if (img.empty())
{
std::cout << "Failed to read image!" << std::endl;
return -1;
}
cv::Mat M = cv::getRotationMatrix2D(cv::Point2f(img.cols / 2, img.rows / 2), 45, 1);
cv::Mat dst;
cv::tickMeter tm;
tm.start();
cv::warpAffine(img, dst, M, img.size(), cv::WARP_INVERSE_MAP | cv::INTER_LINEAR, cv::BORDER_REPLICATE);
tm.stop();
std::cout << "Time: " << tm.getTimeMilli() << " ms" << std::endl;
cv::imshow("Original", img);
cv::imshow("Rotated", dst);
cv::waitKey();
return 0;
}
```
在编译时,请确保已启用AVX2指令集。在Visual Studio 2017中,可以使用以下命令行参数进行编译:
```
/Qvec-report:2 /arch:AVX2
```
这将启用AVX2指令集,并生成有关向量化的报告。
阅读全文