栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

音视频开发系列(5):opencv基础

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

音视频开发系列(5):opencv基础

由于本项目需要用到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的纯蓝色图片。

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/931359.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号