Halcon12 HObject与VC++ OpenCV Mat相互转换

网上大多是Halcon10 Hobject的例子,今天终于研究成功,贴出代码,欢迎批评指正

//	转换函数
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 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 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;
}


你可能感兴趣的:(图像,opencv)