void Copcv2Dlg::DrawPicToHDC(IplImage *img, UINT ID)
{
CDC *pDC = GetDlgItem(ID)->GetDC();
HDC hDC= pDC->GetSafeHdc();
CRect rect;
GetDlgItem(ID)->GetClientRect(&rect);
CvvImage cimg;
cimg.CopyOf( img ); // 复制图片
cimg.DrawToHDC( hDC, &rect ); // 将图片绘制到显示控件的指定区域内
ReleaseDC( pDC );
}
void Copcv2Dlg::OnBnClickedOpencam()
{
pCapture = cvCaptureFromCAM(0);
if(!pCapture)
{
MessageBox("camear open error!");
ExitProcess(0);
}
SetTimer(1,33,NULL);
}
void Copcv2Dlg::OnTimer(UINT_PTR nIDEvent)
{
image = cvQueryFrame(pCapture);
DrawPicToHDC(image, IDC_STATIC_PIC);
CDialogEx::OnTimer(nIDEvent);
}
摄像头正常打开,但是读取不到图像是怎么回事?
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/core/core.hpp>
using namespace cv;
int main()
{
VideoCapture cap(0);
if(!cap.isOpened())
{
return -1;
}
Mat frame;
Mat edges;
bool stop = false;
while(!stop)
{
cap>>frame;
imshow("test",edges);
if(waitKey(30) >=0)
stop = true;
}
return 0;
}