关于VC封装DLL, 图像传递的方法

大家都会想要把HALCON使用VC编写算法封装成DLL(别人VB, Delphi, C#调用),  所以总结Halcon和VC DLL图像数据怎么传递的。注意各种开发语言处理过程,图像都应转成BMP格式8或24位图像,只有bitmap才可以把像素分解成R, G, B,GRAY四中8位图格式,相信这种处理方式才是标准的和可拓展,即可使用halcon处理,同时可以编写自己的算法。 


//建议不要使用halcon自带图像采集算子, 采集图像(Hdevelop开发除外), 最好使用相机供应商提供SDK来开发, 这样程序才可把控,灵活调试。 



//1. 头文件定义 
unsigned char  * PHalconImage  ;  //全局图像数据变量int Img_width ;               //全局变量图像宽 
int Img_height ;             //全局变量图像宽 

//2. VC图像数据传递函数,外部传入图像缓冲数据参数 Imgbuf, 图像宽WIDTH, 图像高WIDTHHAL_PROCESS_API bool Hal_Read_Imagebuf(unsigned char  * Imgbuf, int WIDTH, int HEIGHT) 
{ try 
 {   Img_width =WIDTH; 
 Img_height = HEIGHT; 

 if ( Imgbuf == NULL ) return false; 

 if (PHalconImage != NULL) 
 { delete [] PHalconImage; 
 } 

 PHalconImage = new unsigned char[Img_width * Img_height]; 

 /*注意hancon只处理8位图像, 所以Imgbuf必须是8位的数据图像,                (注意24位图像处理需要分解三个8位R ,G,  B缓冲区,利用halcon算子gen_image3合成 
                 数据处理方式一样)*/ int i, j;   
 for (i=0; i< Img_height; i++) { 
 for (j=0; j< Img_width ; j++) { 
 PHalconImage[i * Img_width + j ] = Imgbuf[i * Img_width + j];  } 
 } } 

    catch(...) 
 { return false; 
 } return true; 


//3. halcon获取很简单 
 gen_image1(&Image, "byte", (HTuple)Img_width, (HTuple)Img_height, (long)PHalconImage); 


//4. 其它就halcon处理image方式一致

转自:http://www.ihalcon.com/read-1745.html?desc=1

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值