Пример #1
0
LRESULT CMainFrame::OnSnapChange(WPARAM wParam, LPARAM lParam)
{
	HVSTATUS status = STATUS_OK;
	
	CView *pView		= GetActiveView();		//获取当前VIEW视图
	CDC *pDC			= pView->GetDC();		//得到VIEW的DC
	
	//	将原始图像数据进行Bayer转换,转换后为24位。
	ConvertBayer2Rgb(m_pImageBuffer,m_pRawBuffer,Width,Height,ConvertType,m_pLutR,m_pLutG,m_pLutB,true,Layout);
    //同时将原始数据进行上下翻转	
  	Resize();
   
    //在视图客户区显示图像
	StretchDIBits(pDC->GetSafeHdc(),
					0,						
					0,
					Width/2,					//显窗口宽度
					Height/2,					//显示窗口高度
					0,
					0,
					Width/2,					//图像宽度
					Height/2,					//图像高度
					DisplayBuffer,			//图像缓冲区
					m_pBmpInfo,				//BMP图像描述信息
					DIB_RGB_COLORS,
					SRCCOPY
					);	
	
    
	pView->ReleaseDC(pDC);
	
	return 1;
}
Пример #2
0
IplImage* HV_Camera::HV_QueryFrame()
{
	IplImage*  Pimage;
	HVSTATUS status = STATUS_OK;
	CString strMsg;
	

	//只定义一个缓冲区来保存图象数据
	BYTE *ppBuf[1];
	ppBuf[0] = m_pRawBuffer;
	
	status = HVSnapShot(m_hhv, ppBuf, 1);	
	if (STATUS_OK < status  || status < STATUS_INTERNAL_ERROR)
	{
		CString str="";
		str.Format("Error : 0x%08x",status);
		::MessageBox(NULL, str , "Error", MB_ICONWARNING | MB_OK);   
	}else{
			HV_VERIFY(status);
	}
		
	
	//	将原始图像数据进行Bayer转换,转换后为24位。
	//同时将原始数据进行上下翻转
	ConvertBayer2Rgb(m_pImageBuffer,m_pRawBuffer,Width,Height,ConvertType,
									m_pLutR,m_pLutG,m_pLutB,true,m_Layout);
	Pimage = Byte2IplImg(m_pImageBuffer, Width ,Height );

	return Pimage;


}
Пример #3
0
/****************************************************************************

说明      将内存m_pImageBuffer 转换 Mat

****************************************************************************/
cv::Mat  HV_Camera::getmat()
{
	ConvertBayer2Rgb(m_pImageBuffer,m_pRawBuffer,Width,Height,ConvertType,
									m_pLutR,m_pLutG,m_pLutB,false,m_Layout);
	IplImage*  Pimage;
	Pimage = Byte2IplImg(m_pImageBuffer, Width ,Height );
	cv::Mat mat(Pimage);
	return mat;
}
Пример #4
0
/****************************************************************************

说明      将内存m_pImageBuffer 转换 CImage

****************************************************************************/
int HV_Camera::getcimage(ATL::CImage &CI)
{
	ConvertBayer2Rgb(m_pImageBuffer,m_pRawBuffer,Width,Height,ConvertType,
									m_pLutR,m_pLutG,m_pLutB,false,m_Layout);
	CI.Create( Width , -Height, 8*3);// If Height is negative, the bitmap is a top-down DIB and its origin is the upper left corner.
	
	uchar *pImg=(uchar *)CI.GetBits();//得到CImage数据区地址

	memcpy(pImg,m_pImageBuffer,Width*Height*3);
	//int step=CI.GetPitch();
	//for(int i=0;i<Height;i++)
	//{
	//	//pS=imgShow.ptr<uchar>(i);
	//	for(int j=0;j<Width;j++)
	//	{
	//		for(int k=0;k<3;k++)
	//			*(pImg+i*step+j*3+k)=m_pImageBuffer[i*(step)+j*3+k];
	//	}
	//}
	return 1;
}