Opencv视觉处理(C++)语法学习(1) 环境部署与读取图片显示图片的基本函数
OpenCV简介OpenCV 的全称是 Open Source Computer Vision Library ,是一个跨平台的计算机视觉库。OpenCV 是由英特尔公司发起并参与开发,以 BSD 许可证授权发行,可以在商业和研究领域中免费使用。OpenCV 可用于开发实时的图像处理、计算机视觉以及模式识别程序。OpenCV 的 CV 模块包含基本的图像处理函数和高级的计算机视觉算法。 ML 是机
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);
更多推荐
所有评论(0)