今天一起来看一下如何对图像做旋转和镜像处理,同样, OpenCV也提供了相应的接口,让我们一起来学习一下喽。
旋转:
void rotate(InputArray src, OutputArray dst, int rotateCode);
说明:
src:源图像
dst: 目标图像
rotateCode:旋转的方式
{
ROTATE_90_CLOCKWISE = 0, //顺时针旋转90度
ROTATE_180 = 1, //顺时针旋转180度
ROTATE_90_COUNTERCLOCKWISE = 2, //顺时针旋转270度
}
镜像:
void flip(InputArray src, OutputArray dst, int flipCode);
说明:
src : 源图像
dst:目标图像
flipCode:镜像的方式
{
0:围绕x轴做镜像
1:围绕y轴做镜像
-1:同时围绕x轴y轴做镜像
}
代码演示
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char *argv[])
{
Mat img = imread("2.jpg");
Mat rot;
Mat fl;
cv::rotate(img, rot, ROTATE_90_CLOCKWISE);
cv::flip(img, fl, 1);
namedWindow("rotate");
namedWindow("flip");
namedWindow("src");
imshow("rotate", rot);
imshow("flip", fl);
imshow("src", img);
waitKey(0);
return 0;
}
效果
原图
顺时针旋转90
y轴镜像
这里只针对顺时针旋转90度以及围绕y轴做镜像做了演示,其他方式感兴趣的可以自己尝试加深印象。
如有不对之处,烦请指正;如有疑问之处,我们一起学习解决。
---阿飞