用opencv操作高清摄像头

本文详细介绍了如何通过C++接口获取摄像头内容、初始化摄像头、调整分辨率、设置定时器及展示图像的过程。重点阐述了使用IplImage进行图像处理与显示的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


1、  添加相关的参数

CvCapture*m_Video;//获取摄像头

IplImage* m_frame;//当前摄像头的内容

bool isOpenCa;//是否打开了摄像头

2、  记得在析构函数中销毁生成的对象

if(isOpenCa == TRUE)

                   cvReleaseCapture(&m_Video);

3、  初始化打开摄像头的操作

GetDlgItem(IDC_MODEL_START)->SetWindowText(_T("关闭"));

m_Video = cvCreateCameraCapture(1);//打开摄像头

if (!m_Video) {

           AfxMessageBox("请先打开摄像头");

           return;

}

isOpenCa = TRUE;

cvSetCaptureProperty(m_Video,CV_CAP_PROP_FRAME_WIDTH , 1280);

cvSetCaptureProperty(m_Video,CV_CAP_PROP_FRAME_HEIGHT, 1024);

         SetTimer(1,100,NULL);//设置定时器

4、  添加定时器

m_frame =cvQueryFrame(m_Video);//m_Frame是IplImage指针类型

if (m_frame == NULL)

           cvReleaseCapture(&m_Video);

ShowImage(m_frame, IDC_MODEL_CUT);

         CDialogEx::OnTimer(nIDEvent);

5、  showImage()代码

voidModelAcquire::ShowImage( IplImage* img, UINT ID )     // ID 是Picture Control控件的ID号

{

// 获得显示控件的 DC

CDC* pDC = GetDlgItem(ID) ->GetDC();

// 获取 HDC(设备句柄) 来进行绘图操作

HDC hDC = pDC->GetSafeHdc();                                

 

CRect rect;

GetDlgItem(ID)->GetClientRect( &rect );

//复制图片

CvvImage cimg;

cimg.CopyOf(img);

// 将图片绘制到显示控件的指定区域内

cimg.DrawToHDC(hDC, &rect);     

ReleaseDC(pDC);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值