由于本项目需要用到opencv开源库,需要用到opencv来打开摄像头和利用opencv来对图像进行处理,首先介绍一下如何在vs中搭建opencv的环境,首先分享一下opencv的库文件。
链接:https://pan.baidu.com/s/1zzwdTsjYsJ64lZB4FnRzgQ
提取码:bkbn
里面主要分成三级目录,bin文件夹主要用来存放dll文件和生成的exe文件
,lib文件夹用来存放动态库文件,src文件夹用来存放头文件和源文件。
然后就可以配置opencv的环境了。
首先修改生成文件的目录
然后修改头文件的目录
再修改动态库文件的目录
最后利用以下代码进行运行可以执行的话就说明opencv环境配置成功了。
#include#include #include using namespace cv; int main(int argc, char *argv[]) { Mat image = imread("1.png"); namedWindow("img"); imshow("img", image); waitKey(0); return 0; }
再介绍一下如何遍历Mat对象,opencv中的图片数据试用Mat对象来进行存储的,所以可以通过创建Mat对象来进行遍历对象 。
首先利用Mat mat(3000, 4000, CV_8UC3);创建3000*4000的rgb图像。
然后 利用 int es = mat.elemSize();获取元素的大小即通道值(RGB即为3),再利用int size = mat.cols * mat.rows * es;行*列*元素值获取所有的像素点,最后通过遍历修改每个像素的值实现遍历。具体代码如下。
#include#include #include using namespace cv; int main(int argc, char *argv[]) { //创建3000*4000的图片对象 Mat mat(3000, 4000, CV_8UC3); int es = mat.elemSize(); int size = mat.cols * mat.rows * es; for (int i = 0;i < size;i += es) { mat.data[i] = 255;//B mat.data[i+1] = 0;//G mat.data[i+2] = 0;//R } namedWindow("img"); imshow("img", mat); waitKey(0); return 0; }
通过以上的代码最后会生成一个3000*4000的纯蓝色图片。



