OpenCV简介

OpenCV 的全称是 Open Source Computer Vision Library ,是一个跨平台的计算机视觉库。OpenCV 是由英特尔公司发起并参与开发,以 BSD 许可证授权发行,可以在商业和研究领域中免费使用。OpenCV 可用于开发实时的图像处理、计算机视觉以及模式识别程序。

OpenCV 的 CV 模块包含基本的图像处理函数和高级的计算机视觉算法。 ML 是机器学习库,包含一些基于统计的分类和聚类工具。HighGUI 包含图像和视频输入 / 输出的函数。CXCore 包含 OpenCV 的一些基本数据结构和相关函数。

环境部署

本人学习的是win10+opencv4+vs2019环境下,具体环境部署请查阅网络教程,请注意 由于新版本opencv有TBB异常报错BUG,故暂不采用最新的版本

测试代码

#include <opencv2/opencv.hpp>
#include <stdio.h>
#include <cstring>

using namespace std;
using namespace cv;

int main()
{
	Mat src = imread("E:/test/1626160913(1).png");
	if (src.empty())
	{
		cout << "ERROR!";
		return 0;
	}
	namedWindow("input", WINDOW_AUTOSIZE);
	imshow("input", src);
	waitKey(0);
	destroyAllWindows();
	return 0;
}

图像的加载显示与保存

图像的加载与主要依赖于以下几个API

imread函数(两个参数,“路径名称”,flag)

imread用于创造一个Mat(二维矩阵)对象,从本地路径中读取一个图片,如果读取失败,创建的Mat对象将会是NULL,注意:路径应该要是完整的路径,或者说是绝对路径。
flag用来指代需要读取什么类型的图像进来,这是预处理好的

Mat src = imread("E:/test/1626160913(1).png");

常用的flag有:
IMREAD_GRAYSCALE(加载灰度图)
IMREAD_ANYDEPTH
IMREAD_UNCHANGED(存在透明通道,不要改变我的通道数)
IMREAD_COLOR(HSV图和BGR图)

imshow函数(两个参数,“显示出来窗口的名称”,要传入进去的Mat对象)

一般以waitkey(0)来搭配,否则图片就一闪而过
只支持显示8位图像及浮点数的图像

	imshow("input", src);
	waitKey(0);

namedWindows函数(两个参数,“窗口名称”,flag)

	namedWindow("input", WINDOW_FREERATIO);
	imshow("input", src);

注意:这一个函数最重要的是窗口函数,这个窗口名字应该要与imshow上面对应的名字一致,这样才会在形成的windows中显示。

简单图像色彩空间转化及图像保存

cvtcolor函数

可以用来转化图像的类型,当我们需要一些比较特殊的图像类型的时候,比如说HSV或者BGR,都可以直接通过此API进行变换。具体用法示例
三个参数,包括图像入口,图像出口,图像加工方式

	cvtColor(src, hsv, COLOR_BGR2HSV);
	cvtColor(src, gray, COLOR_BGR2GRAY);

imwirte函数

三个参数(“保存路径”,保存的mat对象,)

	imwrite("E:/test/save.jpg", hsv);
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐