164.
165. //当数据格式为12位时,位数转换为2-9 166. case GX_PIXEL_FORMAT_MONO10: 167. //将12位格式的图像转换为8位格式
168. DxRaw16toRaw8(m_pBufferRaw, m_pBufferRaw8, m_nImageWidth,
m_nImageHeight, DX_BIT_2_9); 169.
170. //将转换完成后的8位图转换为RGB图,以供显示
171. DxRaw8toRGB24(m_pBufferRaw8, m_pBufferRGB, m_nImageWidth,
m_nImageHeight, RAW2RGB_NEIGHBOUR, (DX_PIXEL_COLOR_FILTER)NONE, TRUE); 172. break; 173.
174. //当数据格式为8位时,将8位图转换为RGB图,以供显示 175. case GX_PIXEL_FORMAT_MONO8:
176. DxRaw8toRGB24(m_pBufferRaw, m_pBufferRGB, m_nImageWidth,
m_nImageHeight, RAW2RGB_NEIGHBOUR, (DX_PIXEL_COLOR_FILTER)NONE, TRUE); 177. break; 178. 179. default:
180. //m_objDrawImg.Leave(); 181. return; 182. } 183.
184. m_objDrawImg.Leave(); 185. } 186.
187. //图像回调处理函数
188. void __stdcall MERCamera::OnFrameCallbackFun(GX_FRAME_CALLBACK_PARAM*
pFrame) 189. {
190. MERCamera *pDlg = (MERCamera*)(pFrame->pUserParam); 191. if (pFrame->status == 0) 192. {
193. //图像获取成功 194. //对图像进行处理...
195. // cout<<\
196. pDlg->DrawImage((BYTE*)pFrame->pImgBuf, pFrame->nImgSize); 197. } 198. return; 199. } 200.
201. void MERCamera::DrawImage(BYTE *pImageBuf, int nImageSize) 202. { 203.
204. cv::namedWindow(\
205. cv::Mat img(Size(2592,1944),CV_8U,pImageBuf ); 206. flip(img,img,-1);
207. cv::imshow(\208. cv::waitKey(30); 209. 210. } 211.