近期在研究OpenCv对摄像头的调用。现将代码贴出,供大家批评指正。

1、申明

#include"./opencv2/opencv.hpp"#ifdef _DEBUG#pragma comment(lib,"opencv_core249d.lib")
#pragma comment(lib,"opencv_highgui249d.lib")#else#pragma comment(lib,"opencv_core249.lib")
#pragma comment(lib,"opencv_highgui249.lib")#endifusing namespace cv;class COpencvCameraCtrl :public CCameraBase
{
public:VideoCapture vc;
public:COpencvCameraCtrl(void);~COpencvCameraCtrl(void);public:BOOL OpenCamera( HWND win, CString strVid, CString strPid );     //打开摄像头BOOL PhotoPic( CString strSaveFile );void CloseCamera();
};

2、打开摄像头

//打开摄像头
BOOL COpencvCameraCtrl::OpenCamera(HWND win, CString strVid, CString strPid)
{InitCameraWin( win );vid = strVid;pid = strPid;nIndex = GetCameraIndexInOs( vid, pid );if( nIndex < 0 ){return FALSE;}if( !vc.open( nIndex ) ){return FALSE;}vc.set( CV_CAP_PROP_FRAME_WIDTH, nWidth );vc.set( CV_CAP_PROP_FRAME_HEIGHT, nHight );   if( !vc.isOpened() ){bOpen = false;return FALSE;}bOpen = true;    return TRUE;
}

3、关闭摄像头

//关闭摄像头
void COpencvCameraCtrl::CloseCamera()
{if( vc.isOpened() ){vc.release();}
}

4、拍照而且保存到本地

//拍摄摄像头
BOOL COpencvCameraCtrl::PhotoPic( CString strSaveFile )
{Mat frame;vc >> frame;vc >> frame;if( !frame.data ){return FALSE;}//设置图像质量vector<int> compression_params;compression_params.push_back( IMWRITE_JPEG_QUALITY );compression_params.push_back( 75 );imwrite( strSaveFile.GetBuffer(0), frame, compression_params );strSaveFile.ReleaseBuffer(); return TRUE;
}

须要说明的是:每次从摄像头获取数据到Mat,须要运行两次

Mat frame;vc >> frame;vc >> frame;if( !frame.data ){return FALSE;}

假设只运行一次,会出现两个问题:

A、假设打开摄像头马上调用拍照保存,第一次会失败,获取不到数据

B、每次拍摄保存的图片是上一次的图片

OpenCv调用摄像头拍照代码相关推荐

  1. Python:opencv库实现调用摄像头拍照并保存到本地

    导入 opencv-python库,复制代码即可运行 import cv2def picture_shoot(image_name='img.png', image_path=r'E:/') -> ...

  2. Python进阶,使用 opencv 调用摄像头进行拍照

             opencv 支持 Python 版本的模块叫作 opencv-p hon ,可直接使用 pip install opencv-python 令进行安装,但常常会因为网络等问题导致失 ...

  3. Python+opencv调用摄像头实现拍照并保存

    Python+opencv调用摄像头实现拍照并保存 安装 OpenCV库 详细源码 注意事项 安装 OpenCV库 pip install opencv-python 详细源码 调用外接摄像头实现拍照 ...

  4. python调用摄像头人脸识别代码_利用face_recognition,dlib与OpenCV调用摄像头进行人脸识别...

    用已经搭建好 face_recognition,dlib 环境来进行人脸识别 未搭建好环境请参考: 使用opencv 调用摄像头 import face_recognition import cv2 ...

  5. 硬触发控制相机拍照matlab代码,使用matlab调用摄像头拍照并发到邮箱

    之前在网上看到有用matlab调用摄像头的,也有用matlab发送电子邮件的,所以突发奇想,何不将这两者结合起来,即使用matlab先调用摄像头拍照,再将照片发到邮箱里面,如果能将程序编译成exe文件 ...

  6. JAVA 调用摄像头 拍照 实现人脸识别

    JAVA 调用摄像头 拍照 实现人脸识别 今天想试试百度的api 实现一下近年的热点,人脸识别,虽然咱不会,百度会呀,还免费给我无限用呀. 注册百度云账号等:略. Java中调用摄像头,网上搜到两种方 ...

  7. python打开摄像头获取图片_Python基于opencv调用摄像头获取个人图片的实现方法

    接触图像领域的应该对于opencv都不会感到陌生,这个应该算是功能十分强劲的一个算法库了,当然了,使用起来也是很方便的,之前使用Windows7的时候出现多该库难以安装成功的情况,现在这个问题就不存在 ...

  8. Ionic系列——调用摄像头拍照和选择图库照片功能的实现

    2019独角兽企业重金招聘Python工程师标准>>> 1.需求描述 最近要做一个功能就是调用摄像头拍照,然后上传照片的功能,或者直接打开图库选择照片然后上传. 2.准备 ①.添加插 ...

  9. android: 调用摄像头拍照

    很多应用程序都可能会使用到调用摄像头拍照的功能,比如说程序里需要上传一张图片 作为用户的头像,这时打开摄像头拍张照是最简单快捷的.下面就让我们通过一个例子来学 习一下,如何才能在应用程序里调用手机的摄 ...

最新文章

  1. 例题5-8 Unixls命令(Unix ls,UVa400)
  2. Machine Learning | (6) Scikit-learn的分类器算法-性能评估
  3. pythonbreak可以跳出递归吗_怎样强制退出递归函数
  4. MATLAB在温室中的应用,基于MATLAB的日光温室内气温的图形显示方法与流程
  5. esp32树莓派_用 ESP32 制造炫彩 LED 球
  6. ionic 状态栏显示异常 statusBar
  7. cnn对网络数据预处理_CNN中的数据预处理和网络构建
  8. php有几种数据结构,PHP数据结构有几种_后端开发
  9. 2019-11-26 https://raw.githubusercontent.com和谐/gfwlist/gfwlist/master/gfwlist.txt
  10. 将Object对象转成 json串
  11. 二叉树的非递归遍历算法
  12. python处理点云数据_点云数据处理知识讲解
  13. android horizontalscrollview属性,Android 实例讲解HorizontalScrollView实现左右滑动
  14. Unity 灯光设置——灯光类型
  15. 网络安全威胁的主要内容
  16. 结合深度学习检测心脏 智能戒指体积小又准确
  17. 运动补偿和运动估计总结(MEMC)
  18. npm ERR! code ENOENTnpm ERR! syscall open
  19. 数据结构与算法分析——第1~2章考试题
  20. 计算机编程入门课件,PPT课件大学计算机基础编程入门.ppt

热门文章

  1. OpenCV中cvWaitKey()函数注意事项
  2. Windows消息机制详解-5
  3. QgridLayout例子,在qlayout添加button实例(添加窗体过程类似)
  4. win32汇编基础概念
  5. C/C++函数调用的几种方式总结
  6. mycat mysql端口多少_mycat 9066管理端口 常用命令
  7. gitlab 构建tag_Gitlab详细操作
  8. led内部结构_科普PCB,DPC,陶瓷PCB对于LED封装有哪些差异? - led显示屏_高清led显示屏价格_led显示屏生产厂家...
  9. 计算机网络在实践教学,高职计算机网络技术实践教学研究
  10. 汉字笔画动图怎么做_“快乐学写字”之五:新笔画及生字间架结构形象化解说(课文1—4)...