一、目标
学习flip()函数,对图像进行垂直镜像和水平镜像。
二、函数说明
函数原型:
void flip(InputArray src, OutputArray dst, int flipCode);
第一个参数:原图像
第二个参数:目标图像
第三个参数:fipCode=0水平翻转;fipCode=1垂直翻转;fipCode=-1水平垂直翻转。
三、程序代码
#include "cv.h" // OpenCV 文件头
#include "highgui.h"
#include "cvaux.h"
#include "cxcore.h"
#include "opencv2/opencv.hpp"
#include "opencv2/imgproc.hpp"
#include <iostream>
#include <string>
using namespace cv;
using namespace std;
int main()
{
string imageName("C:\\Users\\lidabao\\Desktop\\Lena.bmp"); // 图片在电脑中的绝对地址
Mat image, resImage;//Mat是OpenCV最基本的数据结构,这是定义一个图像矩阵类型
image = imread(imageName.c_str(), IMREAD_COLOR);//读入图片数据
namedWindow("原图", WINDOW_AUTOSIZE); // 创建一个窗口
imshow("原图", image); // 在窗口中显示图片
flip(image, resImage, 1);
namedWindow("垂直翻转", WINDOW_AUTOSIZE); // 创建一个窗口
imshow("垂直翻转", resImage); // 在窗口中显示图片
flip(image, resImage, 0);
namedWindow("水平翻转", WINDOW_AUTOSIZE); // 创建一个窗口
imshow("水平翻转", resImage); // 在窗口中显示图片
flip(image, resImage, -1);
namedWindow("水平垂直翻转", WINDOW_AUTOSIZE); // 创建一个窗口
imshow("水平垂直翻转", resImage); // 在窗口中显示图片
waitKey(0); // 等待一次按键,程序结束
return 0;
}
四、解释
fipCode=0
flip(image, resImage, 0);
namedWindow("水平翻转", WINDOW_AUTOSIZE); // 创建一个窗口
imshow("水平翻转", resImage); // 在窗口中显示图片
水平翻转
fipCode=1
flip(image, resImage, 1);
namedWindow("垂直翻转", WINDOW_AUTOSIZE); // 创建一个窗口
imshow("垂直翻转", resImage); // 在窗口中显示图片
垂直翻转
fipCode=-1
flip(image, resImage, -1);
namedWindow("水平垂直翻转", WINDOW_AUTOSIZE); // 创建一个窗口
imshow("水平垂直翻转", resImage); // 在窗口中显示图片
水平垂直翻转
五、结果
六、注意
正确的使用flip函数
正确的配置opencv