Hobject转化 Mat IPLimage Bitmap 其他的格式文件【只转头文件】

问题由来:在mfc halcon混合编程中,发现halcon::readimage() 函数读取图片(8位8M/bmp)至少200ms,当然24位 32位bmp 倍数所消耗的时间倍数上涨。那么有没有什么方法加快读取速度?目前发现一个亲测可行的方式: 

1、通过 DIBAPI 读取图片,下载可转到点击打开链接,赚点积分微笑

2、获取所读读片的图像数据的首地址,注意非结构头地址

3、通过halcon算子GenImage1Extern or GenImage3Extern转为hobject


以下为从硬盘读取8位bmp,并转为halcon灰度图示意,24位相似,网上这方面资源较多,不在赘述。

[html]  view plain  copy
  1. <span style="white-space:pre;"> </span>HObject ho_Image;  
  2.     CFile file;  
  3.     file.Open(threadParameter->m_path,CFile::modeRead|CFile::modeNoTruncate);  
  4.     HDIB hDIB = ReadDIBFile(file);//加载bmp图片  
  5.     file.Close();  
  6.     LPSTR lpbi = (LPSTR)::GlobalLock((HGLOBAL)hDIB);//通过非连续内存片段的句柄获取指针,具体百度GlobalAlloc  
  7.     LPSTR pimage =  FindDIBBits(lpbi);  
  8.     GenImage1Extern(&ho_Image, "byte", (Hlong)DIBWidth(lpbi), (Hlong)DIBHeight(lpbi), (Hlong)pimage, NULL);//转换关键函数,开发文档里说的很详细  

猜你喜欢

转载自blog.csdn.net/u013928315/article/details/80238381