就简单的抄了一个显示获取相机的程序,但是现在只能正常获取电脑本身摄像头的图像并显示,不能显示外接的摄像机的图像,但是可以读取到那个相机
void CmyCameraCalibrationDlg::OnBnClickedOpen()
{
// TODO: 在此添加控件通知处理程序代码
// TODO: 在此添加控件通知处理程序代码
Capture = cvCreateCameraCapture(200); //
if (Capture==0)
{
MessageBox(_T("无法连接摄像头!!!"));
return;
}
frame = cvQueryFrame(Capture); //从摄像头或者文件中抓取并返回一帧
pDC = GetDlgItem(IDC_STATIC_PIC1)->GetDC();//GetDlgItem(IDC_PIC_STATIC)意思为获取显示控件的句柄(句柄就是指针),获取显示控件的DC
GetDlgItem(IDC_STATIC_PIC1)->GetClientRect(&rect);
hDC = pDC->GetSafeHdc();//获取显示控件的句柄
CvvImage m_CvvImage;
m_CvvImage.CopyOf(frame, 1); //复制该帧图像
m_CvvImage.DrawToHDC(hDC, &rect); //显示到设备的矩形框内
ReleaseDC(pDC);
SetTimer(1, 25, NULL); //定时器,定时时间和帧率一致
}
void CmyCameraCalibrationDlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
pDC = GetDlgItem(IDC_STATIC_PIC1)->GetDC();//GetDlgItem(IDC_PIC_STATIC)意思为获取显示控件的句柄(句柄就是指针),获取显示控件的DC
GetDlgItem(IDC_STATIC_PIC1)->GetClientRect(&rect);
hDC = pDC->GetSafeHdc();//获取显示控件的句柄
frame = cvQueryFrame(Capture); //从摄像头或者文件中抓取并返回一帧
CvvImage m_CvvImage;
m_CvvImage.CopyOf(frame, 1); //复制该帧图像
m_CvvImage.DrawToHDC(hDC, &rect); //显示到设备的矩形框内
CDialogEx::OnTimer(nIDEvent);
}
void CmyCameraCalibrationDlg::OnBnClickedOpen()
{
// TODO: 在此添加控件通知处理程序代码
// TODO: 在此添加控件通知处理程序代码
Capture = cvCreateCameraCapture(200); //
if (Capture==0)
{
MessageBox(_T("无法连接摄像头!!!"));
return;
}
frame = cvQueryFrame(Capture); //从摄像头或者文件中抓取并返回一帧
pDC = GetDlgItem(IDC_STATIC_PIC1)->GetDC();//GetDlgItem(IDC_PIC_STATIC)意思为获取显示控件的句柄(句柄就是指针),获取显示控件的DC
GetDlgItem(IDC_STATIC_PIC1)->GetClientRect(&rect);
hDC = pDC->GetSafeHdc();//获取显示控件的句柄
CvvImage m_CvvImage;
m_CvvImage.CopyOf(frame, 1); //复制该帧图像
m_CvvImage.DrawToHDC(hDC, &rect); //显示到设备的矩形框内
ReleaseDC(pDC);
SetTimer(1, 25, NULL); //定时器,定时时间和帧率一致
}
void CmyCameraCalibrationDlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
pDC = GetDlgItem(IDC_STATIC_PIC1)->GetDC();//GetDlgItem(IDC_PIC_STATIC)意思为获取显示控件的句柄(句柄就是指针),获取显示控件的DC
GetDlgItem(IDC_STATIC_PIC1)->GetClientRect(&rect);
hDC = pDC->GetSafeHdc();//获取显示控件的句柄
frame = cvQueryFrame(Capture); //从摄像头或者文件中抓取并返回一帧
CvvImage m_CvvImage;
m_CvvImage.CopyOf(frame, 1); //复制该帧图像
m_CvvImage.DrawToHDC(hDC, &rect); //显示到设备的矩形框内
CDialogEx::OnTimer(nIDEvent);
}