前言:先说说OpenCv到底是个啥?以前只知道是一个开源的代码库,没有具体涉及。OpenCV全称Open Source Computer Vision Library即开源计算机视觉库,简称是OpenCV也是很奇葩了。开源的代名词就是强大,所以OpenCV的强大性是我没有预料的到的,并且可以在Linux、windows、Android、Mac OS上面。主要用来处理图像,充当机器的眼睛,极大推动了智能时代的发展。
一、下载安装环境
资源可以从官网下载,但是这个官网下载巨慢
二、举个栗子学习一下。
图像转换、压缩、
#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
}
输出结果:
原始图像
压缩图像
灰度图像
几点注释,大佬绕行。
注1:imread函数,从指定路径下读取图片。imread函数读取的是图片的每个像素点的数值,得到一个数字矩阵,这个数字矩阵,就存放在Mat类型的所定义的变量image中。点进去就可以看到Mat是一个类。定义了多个构造函数。
注2:imshow就是输出文件到屏幕,第一个参数为输出框的名字,第二个为待输出的图像。
注3:resize函数是更改图片的大小,第一个参数是输入源数组,第二个是输出数组,第三个是更改大小的数值。
注4:这是输出图片到特定的路径下,注意第一个参数的路径也要在双引号里面。
注5:cvtColor函数是图片类型转换函数,第三个参数CV_RGB2GRAY就是把RGB彩色数值转换为GRAY灰度黑白数值。
注6:waitkey等待按键按下。参数为空和0均表示等待时间无限长,在等待时间内,有按键按下,退出显示。注意此处是对着HighGUI界面也就是imshow的显示界面才能起作用,对着命令框是不起作用的。