C++学习之OpenCV入门篇,看这一篇就足够了。通俗讲解,小白教学。

前言:先说说OpenCv到底是个啥?以前只知道是一个开源的代码库,没有具体涉及。因为本人现从事智能安防行业开发,接触到了这个开源库,逼得我不学不行。OpenCV全称Open Source Computer Vision Library即开源计算机视觉库,简称是OpenCV也是很奇葩了。开源的代名词就是强大,所以OpenCV的强大性是我没有预料的到的,并且可以在Linux、windows、Android、Mac OS上面。主要用来处理图像,充当机器的眼睛,极大推动了智能时代的发展。

一、下载安装环境

资源可以从官网下载,但是这个官网下载巨慢,*下载较快。想省事的可以下载这个,https://pan.baidu.com/s/1EpwRfkO260OFfZoXIyAOIg 提取码:cd7d 。这个是CV14版本,对应visual studio2015,但是VS2017、VS2019也可使用,配置教程网上一抓一大把,不做赘述。

二、举个栗子学习一下。

图像转换、压缩、

#include "stdafx.h"
#include "opencv2/core.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/highgui.hpp"
#include "opencv2/videoio.hpp"
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
	cout << "Built with OpenCV " << CV_VERSION << endl;
	Mat image = imread("xinyuan.jpg");//见注1 
	imshow("原始图像", image);//见注2
	resize(image, image, Size(360, 202));//见注3
	imwrite("D:\\xinyuan.jpg", image);//见注4
	imshow("缩小图像", image);
	cvtColor(image, image, CV_RGB2GRAY);//见注5
	imshow("灰度图像", image);
	waitKey(0);//见注6

}

输出结果:

原始图像

C++学习之OpenCV入门篇,看这一篇就足够了。通俗讲解,小白教学。

压缩图像

C++学习之OpenCV入门篇,看这一篇就足够了。通俗讲解,小白教学。

灰度图像

C++学习之OpenCV入门篇,看这一篇就足够了。通俗讲解,小白教学。

几点注释,大佬绕行。

注1:imread函数,从指定路径下读取图片。imread函数读取的是图片的每个像素点的数值,得到一个数字矩阵,这个数字矩阵,就存放在Mat类型的所定义的变量image中。点进去就可以看到Mat是一个类。定义了多个构造函数。Mat具体使用方法请点击我的另外一篇博客(点击这里)。

注2:imshow就是输出文件到屏幕,第一个参数为输出框的名字,第二个为待输出的图像。

注3:resize函数是更改图片的大小,第一个参数是输入源数组,第二个是输出数组,第三个是更改大小的数值。resizet具体使用方法请点击我的另外一篇博客(点击这里)。

注4:这是输出图片到特定的路径***意第一个参数的路径也要在双引号里面。具体使用方法请点击我的另外一篇博客(点击这里

注5:cvtColor函数是图片类型转换函数,第三个参数CV_RGB2GRAY就是把RGB彩色数值转换为GRAY灰度黑白数值。

注6:waitkey等待按键按下。参数为空和0均表示等待时间无限长,在等待时间内,有按键按下,退出显示。注意此处是对着HighGUI界面也就是imshow的显示界面才能起作用,对着命令框是不起作用的