在fbc_cv库中,提供了对图像进行任意角度旋转的函数rotate,其实内部也是调用了仿射变换函数warpAffine。如果图像仅是进行90度倍数的旋转,是没有必要用warpAffine函数的。这里通过transpose和flip函数实现对图像进行顺时针90度、180度、270度的旋转。
用fbc::transpose、fbc::flip和cv::transpose、cv::flip实现的结果是完全一致的。
通过fbc_cv库实现如下:
- #include "test_rotate90.hpp"
- #include <opencv2/opencv.hpp>
- #include <transpose.hpp>
- #include <flip.hpp>
-
- int test_rotate90()
- {
- cv::Mat matSrc = cv::imread("E:/GitCode/OpenCV_Test/test_images/1.jpg", 1);
- if (!matSrc.data) {
- std::cout << "read image fail" << std::endl;
- return -1;
- }
-
- int width = matSrc.cols;
- int height = matSrc.rows;
-
- fbc::Mat_<uchar, 3> mat1(height, width, matSrc.data);
-