Halcon12 HObject与VC++ OpenCV Mat相互转换
2017-09-29 10:40
148 查看
// 转换函数 HObject Mat2HObject(Mat& image) { HObject Hobj=HObject(); int hgt=image.rows; int wid=image.cols; int i; // CV_8UC3 if(image.type() == CV_8UC3) { vector<Mat> imgchannel; split(image,imgchannel); Mat imgB=imgchannel[0]; Mat imgG=imgchannel[1]; Mat imgR=imgchannel[2]; uchar* dataR=new uchar[hgt*wid]; uchar* dataG=new uchar[hgt*wid]; uchar* dataB=new uchar[hgt*wid]; for(i=0;i<hgt;i++) { memcpy(dataR+wid*i,imgR.data+imgR.step*i,wid); memcpy(dataG+wid*i,imgG.data+imgG.step*i,wid); memcpy(dataB+wid*i,imgB.data+imgB.step*i,wid); } GenImage3(&Hobj,"byte",wid,hgt,(Hlong)dataR,(Hlong)dataG,(Hlong)dataB); delete []dataR; delete []dataG; delete []dataB; dataR=NULL; dataG=NULL; dataB=NULL; } // CV_8UCU1 else if(image.type() == CV_8UC1) { uchar* data=new uchar[hgt*wid]; for(i=0;i<hgt;i++) memcpy(data+wid*i,image.data+image.step*i,wid); GenImage1(&Hobj,"byte",wid,hgt,(Hlong)data); delete[] data; data=NULL; } return Hobj; } Mat HObject2Mat(HObject Hobj) { HTuple htCh=HTuple(); HTuple cType; Mat Image; ConvertImageType(Hobj,&Hobj,"byte"); CountChannels(Hobj,&htCh); HTuple wid; HTuple hgt; int W,H; if(htCh[0].I()==1) { HTuple ptr; GetImagePointer1(Hobj,&ptr,&cType,&wid,&hgt); W=(Hlong)wid; H=(Hlong)hgt; Image.create(H,W,CV_8UC1); uchar* pdata=(uchar*)ptr[0].I(); memcpy(Image.data,pdata,W*H); } else if(htCh[0].I()==3) { HTuple ptrR, ptrG, ptrB; GetImagePointer3(Hobj,&ptrR,&ptrG,&ptrB,&cType,&wid,&hgt); W=(Hlong)wid; H=(Hlong)hgt; Image.create(H,W,CV_8UC3); vector<Mat> vecM(3); vecM[2].create(H,W,CV_8UC1); vecM[1].create(H,W,CV_8UC1); vecM[0].create(H,W,CV_8UC1); uchar* pr=(uchar*)ptrR[0].I(); uchar* pg=(uchar*)ptrG[0].I(); uchar* pb=(uchar*)ptrB[0].I(); memcpy(vecM[2].data,pr,W*H); memcpy(vecM[1].data,pg,W*H); memcpy(vecM[0].data,pb,W*H); merge(vecM,Image); } return Image; }
相关文章推荐
- Halcon12 HObject与VC++ OpenCV Mat相互转换
- Halcon12 HObject与VC++ OpenCV Mat相互转换
- OpenCV的Mat和Halcon的HObject类型互相转换
- 美国电厂热平衡类计算Thermoflow.Pro.v19.0+PLS-CADD v12.3电力软件GateCycle 6.1.1/halcon 12
- OpenCV数据格式转换成Halcon数据格式HObject
- HALCON12学习笔记(一)
- vs2017上配置HALCON 12
- .net 中Bitmap和Halcon中HObject的相互转换
- Halcon 里Hobject 转HImage
- C#(VS2010)调用HALCON12
- Halcon12新特性之VS可视化调试插件
- OpenCV的Mat和Halcon的HObject类型互相转换
- Halcon12安装步骤
- VS2010下 使用HALCON12 的库
- HALCON12学习笔记(二)
- VS2010/MFC 配置Halcon12 并显示图片
- 图像处理番外篇: 在VS2010下 使用HALCON12 的库
- Halcon 里Hobject 转HImage c++风格的
- Halcon对象Hobject转换为.net对象Bitmap
- 【Halcon】图像BYTE数据生成 Mat 格式和 Hobject 格式