logo资料库

利用halcon及水星SDK开发控制相机.docx

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
1. 注册 halcon 窗口:         CRect rt; GetDlgItem(IDC_IMAGESHOW)->GetClientRect(&rt); SetCheck("~father"); OpenWindow(0,0,rt.Width(),rt.Height(),(Hlong)GetDlgItem(IDC_IMAGESHOW)- >GetSafeHwnd(),"visible","",&m_htWindowHandle); SetCheck("father"); SetPart(m_htWindowHandle,0,0,(Hlong)m_pCamera.m_nImageHeight,(Hlong)m_pCamera.m_n ImageWidth); 2. 在回调里进行 bayer 格式转换得到图像,并且 发送 mfc 自定义消息:  ::PostMessage(pDlg->GetSafeHwnd(), WM_DISP, NULL,NULL); 3. 在消息函数里面,将图像转换为 halcon 的图像格式 Hobject,并进行显示: {  try        HObject ho_Image; if(m_pCamera.m_bIsColor==true) { //int width = m_pCamera.m_nImageWidth; //int height = m_pCamera.m_nImageWid GenImageInterleaved(&ho_Image, (Hlong)m_pCamera.m_pImgBuf, "bgr", (int)m_pCamera.m_nImageWidth, (int)m_pCamera.m_nImageHeight, 0, "byte", (int)m_pCamera.m_nImageWidth, (int)m_pCamera.m_nImageHeight, 0, 0, -1, 0); } else { (int)m_pCamera.m_nImageHeight,(Hlong)m_pCamera.m_pImgBuf); GenImage1(&ho_Image, "byte", (int)m_pCamera.m_nImageWidth, } HObject ho_Image1, ho_GrayImage, ho_region; Rgb1ToGray(ho_Image, &ho_GrayImage); Threshold(ho_GrayImage, &ho_region, 125, 255); DispObj(ho_GrayImage, m_htWindowHandle); } catch(HException& HDevExpDefaultException) { HTuple hv_Exception,hv_ErrMsg; HDevExpDefaultException.ToHTuple(&hv_Exception);                  
    } HException::GetExceptionData(hv_Exception,"error_msg",&hv_ErrMsg); TRACE("%s\n\r",(CString)hv_ErrMsg.S()); // AfxMessageBox((CString)hv_ErrMsg.S());
我不懂为什么这么多人喜欢用 HImage,我没用过。我把相机 buffer 转成 halcon 图像对象是这 样处理的: HOperatorSet.GenEmptyObj(out ImageTemp); ImageTemp.Dispose(); //把图像数据生成 halcon 图像 //pData:图像数据地址; if (!m_Cam.m_bIsColor) { //如果是黑白相机, HOperatorSet.GenImage1(out ImageTemp, "byte", m_Cam.m_nImageWidth, m_Cam.m_nImageHeight, (HTuple)pData); } else //如果相机是彩色,需要把 pixel format 改成 RGB8Packed 并保存 { HOperatorSet.GenImageInterleaved(out ImageTemp, (HTuple)pData, "rgb", m_Cam.m_nImageWidth,m_Cam.m_nImageHeight, 0, "byte",0, 0, 0, 0, 8, 0); }
分享到:
收藏