视频捕获窗口问题
//============创建视频捕捉窗口
HWND hwndParent=::FindWindow(NULL,"服务器端");
HWND videohwnd = capCreateCaptureWindow ("My Own Capture Window",WS_CHILD | WS_VISIBLE , 0, 0, 160,120,hwndParent,IDD_STELEVISE_DIALOG);
其中我的对话框ID是IDD_STELEVISE_DIALOG,标题Caption是服务器端.为什么我运行时,显示的是黑屏呢?
[解决办法]
看看有没有创建成功,如果成功了,有没有视频流?
[解决办法]
#include "stdafx.h"
#pragma warning(disable : 4996)
#pragma comment( lib, "cxcore210.lib" )
#pragma comment( lib, "highgui210.lib" )
#include <cxcore.h>
#include <highgui.h>
void main(int argc, char *argv[])
{
CvCapture* capture = 0;//视频流捕获
if(argc == 1 || (argc == 2 && strlen(argv[1]) == 1 && isdigit(argv[1][0])))
capture = cvCaptureFromCAM(argc == 2 ? argv[1][0] - '0' : 0);//从摄像头获得视频流
else if( argc == 2 )
capture = cvCaptureFromAVI(argv[1]);//从文件获得视频流
if(!capture)
return;
IplImage *current_frame_rgb = cvCreateImage(cvSize(320, 240), IPL_DEPTH_16U, 3);
cvNamedWindow("Window 0", 0);
while(capture)
{
current_frame_rgb = cvQueryFrame(capture);//获得一帧图象
cvShowImage("Window 0",current_frame_rgb);
if(cvWaitKey(1)==27)//等待ESC键
break;
}
cvDestroyAllWindows();
}
[解决办法]
有视频流就是收到数据了,但是没有解码成功,所以查看解码部分的代码吧;
[解决办法]
先看看hwndParent是否存在,是不是窗口句柄
我担心FindWindow(NULL,"服务器端");使用有问题