OpenCV学习笔记(一):使用opencv读取摄像头并…
2018-06-17 20:48:49来源:未知 阅读 ()
初学OpenCV,淘宝80左右买了个480P的usb工业摄像头,迫不及待地接上笔记本,
——嚯,比显示屏上面自带雪花的摄像头好多了
再up2开发板上跑最简单的OpenCV摄像头捕获例程,也是正常显示。然而当再接上笔记本用visual studio跑的时候,自带摄像头正常,而usb摄像头却报错
OpenCV Error: Assertion failed
查资料也查不出个所以然来(VS和OpenCV都是刚摸几天- -)。
最初以为是usb摄像头的device编号不匹配,去查获取device编号的方法,网上的结果复杂至极令小白我毫无头绪。
没办法一步一步来吧。然后发现问题似乎出在imshow()这一行。大概是摄像头从打开到正常传输数据速度不够快,最初imshow()都不到数据,就直接报错了。偶然查到Mat::empty()可以判断是否为空,于是把这个判断加在imshow()之前,果然成功运行。
另外发现VideoCapture这一行,插入USB摄像头后dev随机分配,电脑重新启动前都是按这个dev编号。在下次开机后可能就和这次编号又不同了,需要注意。
#include "stdafx.h" #include <opencv2\opencv.hpp> using namespace cv; using namespace std; int main() { Mat frame; //读取视频或摄像头 VideoCapture capture(0); while (true) { capture >> frame; if(!frame.empty()){ imshow("window",frame); } // imshow("读取视频", frame); if(waitKey(30) == 27) //延时30
break;
} return 0; }
需要加入按键保存当前帧,可以插入以下代码:
if (waitKey(30) == 'p') { sprintf(image_name, "..\\img\\%s%d%s", "image", ++num, ".jpg"); imwrite(image_name, frame); }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 如何0基础学习C/C++? 2020-06-06
- OpenCV开发笔记(五十九):红胖子8分钟带你深入了解分水岭 2020-05-24
- vtk学习记录(三)——初识vtkRenderer 2020-05-16
- opencv-12-高斯滤波-双边滤波(附C++代码实现) 2020-05-10
- 算法笔记刷题6 ( PAT 1003我要通过 ) 2020-05-08
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash