导航:首页 > 网络连接 > mfc实现连接网络摄像头

mfc实现连接网络摄像头

发布时间:2023-02-03 07:48:04

‘壹’ 使用MFC获取USB摄像头图像保存并在单窗口指定位置显示

openCV采集摄像图片并保存

我用代码
#include "cv.h"
#include "highgui.h"
void main()
{
CvCapture* capture;
capture=cvCreateCameraCapture(0);
assert(capture!=NULL);
IplImage* frame;
cvNamedWindow("camera",1);
while(1)
{
frame=cvQueryFrame(capture);
if(!frame)
break;
cvShowImage("camera",frame);
if(cvWaitKey(33)>=0)
break;
}
cvReleaseImage(&frame);
cvDestroyWindow("camera");
}

连接摄像获取数据保存作图片呢(jpg)
一个界面显示摄像头采集的视频就可以了?用MFC拖一个PICTURE控件上去,另外再加几句代码就行。。我这边有个,但是不知道仍哪里了。。。就几个函数。

‘贰’ MFC 开启远程摄像头怎么把看到的内容传回本地

要通过网络协议 或者是摄像头厂家的SDK(厂家封装的网络协议)

‘叁’ mfc capDriverConnect函数连接摄像头进行拍照,但是调用此函数总提示连接视频源对话框

连接非返回bool类型-1 0表示成功了

‘肆’ 如何用DirectShow在MFC中作摄像头捕获程序

现在在vc上采集视频常用的方法有三:vfw,directshow,opencv

你是要进行图像处理的话推荐opencv(具体参考:于仕琪,opencv教程基础篇中的例3-6,稍作修改,估计就能用于你的工程)

下面贴出我自己编的一个小工程:如有疑问,E-mail:[email protected]
进行opencv的预备操作你要看那本书和逛opencv中文网

如有问题可以和我讨论(我也是菜鸟,刚为解决了这个问题窃喜不已)。
1.新建mfc对话框工程,在其中添加一个picture控件,除了ID以外什么都不用改

2.在对话框头文件(没有Dlg那个)中添加(最好是在“#include "resource.h" // main symbols之后”):
#include "cxcore.h"
#include "cvcam.h"
#include "windows.h"
#include "cv.h"
#include "highgui.h"
3.在工程-》设置-》选择所有配置-》link(连接)-》对象/库模块-》中添加:
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib cxcore.lib cv.lib ml.lib cvaux.lib highgui.lib cvcam.lib

4.在需要触发摄像头显示的地方添加:
void CVideomfcDlg::OnButton1()
{
// TODO: Add your control notification handler code here

int ncams = cvcamGetCamerasCount( );//返回可以访问的摄像头数目
HWND MyWin=::GetDlgItem(m_hWnd,IDC_VIDEO); //获得控件句柄(IDC_VIDEO就是图片控件)
cvcamSetProperty(0, CVCAM_PROP_ENABLE, CVCAMTRUE); //选择第一个摄像头
int width=240;
int height=240;

cvcamSetProperty(0,CVCAM_PROP_WINDOW, &MyWin); // Selects a window for
cvcamSetProperty(0,CVCAM_RNDWIDTH, &width);
cvcamSetProperty(0,CVCAM_RNDHEIGHT, &height);
cvcamSetProperty(0, CVCAM_PROP_CALLBACK, callback1);
//回调函数将处理每一帧

cvcamInit( );
cvcamStart( );

}
5.改变显示的图像序列大小,在窗口属性设定了以后,添加如下代码:
int width=320; //这个就是需要显示的窗口大小
int height=240; //根据自己需要选择
cvcamSetProperty(0,CVCAM_RNDWIDTH, &width);
cvcamSetProperty(0,CVCAM_RNDHEIGHT, &height);

6.在对话框类中添加callback成员函数(注意,在添加函数的时候,一定要选择static,不选的话你就自己郁闷去吧,反正我是为了这个郁闷了2个礼拜)
void CVideomfcDlg::callback1(IplImage *image)
{

IplImage* image1 = image;
int i,j;

assert (image);
//获取当前系统时间
SYSTEMTIME st2=;
GetLocalTime(&st2);
char sss[18]=; //这个是用来存储所要保存的图片名的,用的是一个笨办法,先定义,再修改其中的数组值。

sss[7]=st2.wHour/10+48; //获取系统当前小时
sss[8]=st2.wHour%10+48;

sss[9]=st2.wMinute/10+48; //获取系统当前分钟
sss[10]=st2.wMinute%10+48;

sss[11]=st2.wSecond/10+48; //获取系统当前秒
sss[12]=st2.wSecond%10+48;

cvSaveImage(sss,image1); //使用系统当前时间为名称(XXXXXX.jpg)存储图片
}
还需要在c盘根目录下建立一个叫1的文件夹保存图片。

‘伍’ 如何用mfc调用电脑上摄像头并显示在屏幕上

vc++就能做 ,一步一步根本说不清楚,首先你要完成 摄像头显示这个功能,然后就是数学方面的人脸识别的方法了,(其中包括人脸的矫正,和一些复杂区域的保留。)我曾经做过,不过代码让我给整丢了,当时我做了4天的时间,做程序记得要一步一步来 一个功能一个功能实现,完了再将功能拼接在一起,这才是面向对象的编程思想。

‘陆’ MFC控制外设 举个例子:怎么通过MFC怎么控制摄像头,是不是和键盘一样有消息相应函数啊或者有自己类封装

mfc没有封装视频捕获的api函数,可以通过调用相应函数来实现。
参考
http://blog.csdn.net/byxdaz/article/details/4352778
另外,可通过DirectShow或OpenCV实现。具体资料自己搜吧

‘柒’ 关于MFC读取摄像头

你用的CCD摄像头是USB么?同时有几个USB摄像头存在?
检查一下cvCaptureFromCAM的参数是否正确。
还有就是不要对cvCapture 进行设置。试试先用默认设置试试看看能不能捕捉。

‘捌’ MFC opencv 关于摄像头的菜鸟问题!

你看看你开辟的动态内存,全部释放了没有?还有pFrame pFrame释放了没有,可能是内存占满就就容易死机

阅读全文

与mfc实现连接网络摄像头相关的资料

热点内容
不管到哪里都有网络 浏览:573
2015网络安全事件 浏览:996
七天网络系统如何扫描试卷 浏览:544
tp隐藏wifi后无法添加网络 浏览:867
oppo手机为什么总是无网络 浏览:936
电信信号满格但网络不好 浏览:539
网络电视干扰手机信号 浏览:282
绿联多功能扩展坞怎样连接网络设置 浏览:137
卧室里如何开通网络端口 浏览:342
无线桥接网络错误 浏览:795
路由器挑网络运营商 浏览:796
快手连接网络的安全证书是哪个 浏览:657
网络考试和成人高考含金量哪个高 浏览:256
长虹至尊8核网络播放器如何重置 浏览:914
联通号码上网怎么设置网络 浏览:209
苹果手机能打电话但是没有网络怎么回事 浏览:75
网络人气主播有哪些特点 浏览:590
忘记了网络密码该如何找 浏览:418
已知网络地址和掩码如何划分子网 浏览:884
孩子玩手机网络沉迷怎么办 浏览:599

友情链接