#include "opencv/cv.h"
#include "opencv/highgui.h"
#include "stdio.h"
#include "iostream"
using namespace cv;
using namespace std;
int main()
{
Mat src = imread("test.jpg");
Mat dst;
transpose(src, dst);
Mat dst2;
flip(dst, dst2, 1); // flip by y axis 是沿着y坐标轴旋转,而不是整体的旋转,以下类似
Mat dst3;
flip(dst, dst3, 0); // flip by x axis
Mat dst4;
flip(dst, dst4, -1); // flip by both axises
imshow("原图像", src);
imshow("左旋90度,镜像", dst); //左旋90,镜像
imshow("右旋90度", dst2); //右旋90°
imshow("左旋90度", dst3); //左旋90°
imshow("右旋90度,镜像", dst4); //右旋90°,镜像
cvWaitKey();
return 0;
}
主要用到这两个函数,这两个函数搭配使用达到旋转图像的效果。
transpose(src, dst); // 此函数是转置、(即将图像逆时针旋转90度,然后再关于x轴对称)
flip(srcImage, srcImage, 0); //此函数是绕x轴旋转180, 也就是关于x轴对称
flip(srcImage, srcImage, 1); //此函数是绕y轴旋转180, 也就是关于y轴对称
flip(srcImage, srcImage, -1); //此函数关于原点对称