对图像进行翻转或旋转可以使用cv::flip()函数,可以实现将一个二维矩阵沿X轴、Y轴或者同时沿XY轴翻转。函数原型如下:
C++: void flip(InputArray src, OutputArray dst, int flipCode)
参数介绍:
src: 即输入矩阵
dst: 即输出矩阵
flipCode: 旋转码,即控制函数对矩阵进行怎样的旋转。当参数flipCode=0时,将对矩阵沿X轴方向翻转;当flipCode>0时,将对矩阵沿Y轴方向翻转;当flipCode<0时,将对矩阵沿XY轴方向翻转。
下面,我们给出一段测试代码,代码中实现了将矩阵沿X轴方向旋转。
#include <iostream>
#include <opencv2/opencv.hpp> using namespace std;
using namespace cv; int main()
{
Mat img = imread("D:/Media/Image/lena.jpg", CV_LOAD_IMAGE_ANYCOLOR);
imshow("Input", img); cv::flip(img, img, );
imshow("Flip", img);
waitKey(); return ;
}
当然,我们也可以将flipCode分别改为1(沿Y轴旋转)和-1(沿XY轴旋转),最终这3中旋转效果如下所示:
Fig 1 原始图像 Fig 2 沿Y轴翻转后
Fig 3 沿X轴翻转后 Fig 4 沿XY轴翻转后