MFC+OPENCV保存通过FPGA输入的MT9V034的视频流


UINT DisPlayRaw(LPVOID params)
{
	
	CUsbhostDlg *dlg = (CUsbhostDlg *) params;
	CClientDC dc(dlg->GetDlgItem(IDC_STATIC_PICTURE));
	CDC *pDC;
	CRect rect;	
	CWnd *pWnd = dlg->GetDlgItem(IDC_STATIC_PICTURE);
 	pWnd->GetClientRect(&rect);
 	pDC = pWnd->GetDC();	
	//+
    
	//-
	BITMAPINFOHEADER *bmpInfoHeader=(BITMAPINFOHEADER*)dlg->m_inforheader;
	SetStretchBltMode(pDC->m_hDC,HALFTONE);//防止自适应窗口图像显示失真
	
	//+
	CvVideoWriter * writer;
	writer=cvCreateVideoWriter("video.avi",CV_FOURCC('M', 'J', 'P', 'G'),15, cvSize(752,480));

	
	//-
	while(dlg->bshow)
	{
		if(dlg->m_display)
		{
			criticalSection.Lock();
			if(dlg->raw2rgb_flag == true)		
				dlg->bayer2rgb24_bingo(dlg -> m_cRGB, dlg->m_cRaw, IMG_HSIZE, IMG_VSIZE);		
			else
				dlg->gray2rgb24_bingo(dlg -> m_cRGB, dlg->m_cRaw, IMG_HSIZE, IMG_VSIZE);
			//dlg->OnBnClickedCheck1();
			criticalSection.Unlock(); 


			//+
			IplImage* image1 = cvCreateImageHeader(cvSize(752,480), IPL_DEPTH_8U, 3); 
			image1->origin = ~image1->origin; 
			cvSetData(image1,dlg -> m_cRGB,752*3);
			n=cvWriteFrame(writer,image1);
			//-
			StretchDIBits(pDC->m_hDC,rect.left, rect.top, rect.left+IMG_HSIZE, rect.top+IMG_VSIZE, 0, 0, 
				IMG_HSIZE, IMG_VSIZE, dlg->m_cRGB, (BITMAPINFO*)bmpInfoHeader, BI_RGB, SRCCOPY);	
			dlg->m_display = false;
			//Sleep(1);	///1000 = 1S
		}


		//+
	 
		//-
	}
	cvReleaseVideoWriter(&writer);
	return true;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值