点击上方“3D视觉工坊”,选择“星标”
干货第一时间送达
作者丨卡拉肖克-X
来源丨OpenCV学堂
编辑丨极市平台
导读
一位友好人士做的B站OpenCV4.x C++ 快速入门30讲视频课程的笔记总结!
01 环境搭建环境配置了一个早上,到10.48分配置完毕,有点难受。还好最后显示出第一张图片。
#include #includeusingnamespacestd; usingnamespace cv; int main() { Mat src = imread("D:/images/011.jpg",IMREAD_GRAYSCALE);//读取进来的数据以矩阵的形势,第二个参数代表显示一张灰度图像。 if (src.empty()) { printf("could not load image");//如果图片不存在 将无法读取,打印到终端。 } //超过屏幕的图像无法显示时候调用此函数。 namedWindow("输入窗口", WINDOW_FREERATIO);//创建了一个新窗口,参数1表示名称,第二个参数代表一个自由的比例 imshow("输入窗口", src);//表示显示在新创建的输入窗口上,第一个参数表示窗口名称,src表示数据对象Mat waitKey(0);//执行到这句,程序阻塞。参数表示延时时间。单位ms destroyAllWindows();//销毁前面创建的显示窗口 return0; }
第一节课介绍了如何读取第一张图片,并且显示出来,通过调用imread函数读取照片,再调用imshow显示图片到窗口。同时,讲述了如何打印灰度图像,图片读取失败的处理方式,代码注释详细介绍了每条语句的意思。
02 显示图象1、色彩空间转换函数 cvtColor 2、图像的保存
#include using namespace cv; class QuickDemo //创建一个QuickDemo对象 { public: void colorSpace_Demo(Mat &imge); //定义一个类,里面包含输入一个图片,对图片操作 }; #include void QuickDemo::colorSpace_Demo(Mat &image) { Mat gray, hsv;//定义2个矩阵类的图像gray和hsv, cvtColor(image,hsv,COLOR_BGR2HSV);//图像转换函数,可以把image转成hsv,第三个参数是转成的类型 cvtColor(image,gray,COLOR_BGR2GRAY);//图像转换函数,可以把image转成hsv,第三个参数是转成的类型 imshow("HSV",hsv); imshow("灰度",gray); imwrite("D:/hsv.jpg",hsv);//保存图片,前面是保存图的地址,后面是保存图的名称 imwrite("D:/gray.jpg",gray); } #include #include#include using namespace std; using namespace cv; int main() { Mat src = imread("D:/images/1.jpg",IMREAD_ANYCOLOR);//B,G,R实际上0-255三色。3通道 //读取进来的数据以矩阵的形势,第二个参数代表显示一张灰度图像。 if (src.empty()) { printf("could not load image");//如果图片不存在 将无法读取,打印到终端。 return-1; } //超过屏幕的图像无法显示时候调用此函数。 namedWindow("输入窗口", WINDOW_FREERATIO);//创建了一个新窗口,参数1表示名称,第二个参数代表一个自由的比例 imshow("输入窗口", src);//表示显示在新创建的输入窗口上,第一个参数表示窗口名称,src表示数据对象Mat //在主函数中调用之前创建的类对象 QuickDemo qd; qd.colorSpace_Demo(src); waitKey(0);//执行到这句,程序阻塞。参数表示延时时间。单位ms destroyAllWindows();//销毁前面创建的显示窗口 return0; }
这节主要介绍了创建一个类对象,然后通过类对象调用函数,在main主函数中进行调用实现类对象中的功能,比如转换成HSV类型图片和GRAY类型图片,最后通过imwrite函数进行图像的保存。
03 图像对象的创建与赋值1、怎么操作mat 2、怎么访问每一个像素点 3、怎么创建一个空图或者mat
void QuickDemo::mat_creation_demo(Mat &image) { Mat m1, m2; m1 = image.clone(); image.copyTo(m2); //创建空白图像 Mat m3 = Mat::ones(Size(400, 400), CV_8UC3);//创建8*8的CV8位的无符号的n通道的unsigned char //ones&zeros是初始化的方法 m3 = Scalar(255, 0, 0);//给三个通道都赋值127 ,单通道赋值方法 m3 = 127; //m3初始为蓝色 //数据的宽度和长度是由通道数决定的。 //std::cout << "width:"<关注打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?
立即登录/注册


微信扫码登录