社区
C++ 语言
帖子详情
关于用camerads.cpp中的OpenCamera打开摄像头的问题
mashimaro1225
2012-08-26 11:30:22
由于用OpenCV的cvCreateCameraCapture打开摄像头时,用某些摄像头无法正常成像。所以后来采用了camerads里面的方法。但是,在调用OpenCamera时,如果该摄像头已经开启,程序会挂掉。
请问,在用OpneCamera()方法打开摄像头之前,怎么判断要打开的摄像头是否已经开启了呢?
...全文
266
1
打赏
收藏
关于用camerads.cpp中的OpenCamera打开摄像头的问题
由于用OpenCV的cvCreateCameraCapture打开摄像头时,用某些摄像头无法正常成像。所以后来采用了camerads里面的方法。但是,在调用OpenCamera时,如果该摄像头已经开启,程序会挂掉。 请问,在用OpneCamera()方法打开摄像头之前,怎么判断要打开的摄像头是否已经开启了呢?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
open
cv
中
使用directshow库解决
open
cv黑屏
问题
使用说明: // 1. 将
Camer
aDS
.h
Camer
aDS
.
cpp
以及目录DirectShow复制到你的项目
中
// 2. 菜单 Project->Settings->Settings for:(All configurations)->C/C++->Category(Preprocessor)->Additional include directories // 设置为 DirectShow/Include // 3. 菜单 Project->Settings->Settings for:(All configurations)->Link->Category(Input)->Additional library directories // 设置为 DirectShow/Lib
mfc
中
使用
open
cv获取
摄像头
视频并显示
一、使用DirectShow获取
摄像头
视频 DirectShow在Visual Studio 2005开发环境下的使用说明: 1.将
Camer
aDS
.h
Camer
aDS
.
cpp
复制到你的项目
中
; 2.将DirectShow复制到你的
open
cv根目录下,菜单 工具->选项->项目和解决方案->vc++目录,把..(你的
open
cv安装目录)/DirectShow/Include添加到“包含文件”
中
; 3.菜单 工具->选项->项目和解决方案->vc++目录,把..(你的
open
cv安装目录)/DirectShow/Lib添加到“库文件”下面。 获取摄像视频: 利用
Camer
aDS
的
Open
Camer
a
函数
打开
摄像头
,利用QueryFrame获取每一帧。 二、使用CvvImage类显示
摄像头
视频
open
cv的较高版本
中
没有CvvImage类,因此需要手动添加这个类的头文件CvvImage.h和代码文件CvvImage.
cpp
。 mfc界面添加一个picture控件,ID为IDC_VIEW1。 在对话框头文件
中
定义如下变量: CRect rect1; CStatic* pStc1; CDC* pDC1; HDC hDC1; 在对话框源文件OnInitDialog
中
初始化变量: pStc1=(CStatic *)GetDlgItem(IDC_VIEW1); pStc1->GetClientRect(&rect1;); pDC1=pStc1->GetDC(); hDC1=pDC1->GetSafeHdc(); 显示视频: CvvImage m_CvvImage; m_CvvImage.CopyOf(frame,frame->nChannels); //frame是视频帧 m_CvvImage.DrawToHDC(dlg->hDC1, &dlg;->rect1); 附件
中
包含所有必需的文件。
利用通用型USB
摄像头
进行人脸检测
1. 功能概述 利用普通的USB
摄像头
获取动态图像实时的检测出图像
中
的人脸并用红框框出。 2. 程序清单 1)
Camer
aDS
.
cpp
bool C
Camer
aDS
::
Open
Camer
a
(int nCamID, bool bDisplayProperties=true, int nWidth=320, int nHeight=240);
打开
摄像头
,nCamID指定
打开
哪个
摄像头
,取值可以为0,1,2,... bDisplayProperties指示是否自动弹出
摄像头
属性页 nWidth和nHeight设置的
摄像头
的宽和高,如果
摄像头
不支持所设定的宽度和高度,则返回false void Close
Camer
a
(); 关闭
摄像头
,析构函数会自动调用这个函数 static int
Camer
a
Count(); 返回
摄像头
的数目 可以不用创建C
Camer
aDS
实例,采用int c=C
Camer
aDS
::
Camer
a
Count();得到结果。 static int C
Camer
aDS
::
Camer
a
Name(int nCamID, char* sName, int nBufferSize); 根据
摄像头
的编号返回
摄像头
的名字 nCamID:
摄像头
编号 sName: 用于存放
摄像头
名字的数组 nBufferSize: sName的大小 可以不用创建C
Camer
aDS
实例,采用C
Camer
aDS
::
Camer
a
Name();得到结果。 int GetWidth(); 返回图像宽度 int GetHeight(); 返回图像高度 IplImage * QueryFrame(); 抓取一帧,返回的IplImage不可手动释放! 返回图像数据的为RGB模式的Top-down(第一个字节为左上角像素),即IplImage::origin=0(IPL_ORIGIN_TL) 2)haarcascade.
cpp
CvHaarClassifierCascade* load_object_detector( const char* cascade_path ); 用于从文件
中
装载训练好的利用哈尔特征的级联分类器(网上下的) cascade_path:文件路径
mfc
中
使用
open
cv获取
摄像头
视频并显示.docx
mfc
中
使用
open
cv获取
摄像头
视频并显示.docx
在VS2010下配置directshow和
open
cv
无需安装庞大的directx等软件,只需几个文档配置
C++ 语言
65,186
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章