ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

实现基于OpenCv的图像增广

2021-11-08 13:06:59  阅读:295  来源: 互联网

标签:src 函数 增广 原图片 flip OpenCv 图像 include 翻转


        

目录

图像翻转


OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉机器学习软件库,可以运行在LinuxWindowsAndroidMac OS操作系统上。它轻量级而且高效——由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

        OpenCV用C++语言编写,它具有C ++,PythonJavaMATLAB接口,并支持Windows,Linux,Android和Mac OS,OpenCV主要倾向于实时视觉应用,并在可用时利用MMX和SSE指令, 如今也提供对于C#、Ch、Ruby,GO的支持。

        使用vs2017配置Opencv,为了方便函数的调用和实现,在项目中总共需要建立三个文件,在主函数中实现读原图片文件、输出原图片、函数调用的操作,在头文件中设置一个类,包含需要实现的函数的声明,在另外一个文件中存放函数的定义。

        下面这是包含主函数的文件,函数名为main.cpp

#include<opencv2/opencv.hpp>
#include<iostream>
#include<quickopencv.h>//项目中的头文件



using namespace cv;
using namespace std;
int main(int argc, char** argv){
	Mat src = imread("D:\\Hc_study\\opencv_picture\\9.jpg");//读入原图片
	if (src.empty()) {
		printf("could not load image......\n");
		return -1;
	}
	
	imshow("输入窗口", src);//输出原图片

	quickdemo qd;
	qd.flip_demo(src);//函数调用

	waitKey(0);
	destroyAllWindows();
	return 0;
	}

 下面这是项目的头文件,可以在pubic后面写要实现的函数的声明,函数名为quickopencv.h

#pragma once

#include<opencv2/opencv.hpp>

using namespace cv;

class quickdemo {
public:
	
};

下面这个文件存放函数的定义,函数名为quick.cpp

#include<quickopencv.h>
#include<iostream>
#include<opencv2/opencv.hpp>
using namespace std;

图像翻转

实现方法

flip(InputArray src, OutputArray dst, int flipCode)函数

参数:src,输入矩阵;

          dst,翻转后矩阵,类型与src一致;

          flipCode,翻转模式,flipCode==0垂直翻转(沿X轴翻转),flipCode>0水平翻转(沿Y轴翻转),flipCode<0水平垂直翻转(先沿X轴翻转,再沿Y轴翻转,等价于旋转180°) 

代码

在quickopencv.h文件中public后面添加下面语句

void flip_demo(Mat &image);

在quick.cpp中添加下面函数

void quickdemo::flip_demo(Mat &image) {
	Mat dst;
	flip(image, dst, 1);//实现左右翻转
	imshow("图片翻转", dst);
}

 运行结果如下,左边是翻转之后的结果,右边是原图片

标签:src,函数,增广,原图片,flip,OpenCv,图像,include,翻转
来源: https://blog.csdn.net/m0_50027531/article/details/121205351

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有