HObject与Mat相互转换C++源代码 比原来的效率提升至少三倍

HObject与Mat相互转换C++源代码比原来的效率提升至少三倍_mat转hobject,hobject转mat-C++文档类资源-CSDN下载

之前上传过源代码了,全写在main函数中,有些人看代码只看一小部分就下结论说是和别人的一模一样,下面单独提取出来

void rgb3_to_interleaved(HObject ho_ImageRGB, HObject *ho_ImageInterleaved);//关键函数声明

    HObject  ho_Image, ho_ImageInterleaved, ho_ImageRGB;

	// Local control variables
	HTuple  hv_Pointer, hv_Pointer1, hv_TypeRGB, hv_Width, hv_Height;
	HTuple  hv_WindowHandle, Width, Height;
	HTuple  hv_T1, hv_T2, hv_T;

下面是完成HObject转Mat:

    ReadImage(&ho_Image, "D:/Desktop/绿牌.jpg");
	CountSeconds(&hv_T1);
	rgb3_to_interleaved(ho_Image, &ho_ImageInterleaved);
	GetImagePointer1(ho_ImageInterleaved, &hv_Pointer, &hv_TypeRGB, &hv_Width, &hv_Height);
	GenImageInterleaved(&ho_ImageRGB, hv_Pointer, "bgr", hv_Width / 3, hv_Height, -1,
		"byte", 0, 0, 0, 0, -1, 0);

	rgb3_to_interleaved(ho_ImageRGB, &ho_ImageInterleaved);
	GetImagePointer1(ho_ImageInterleaved, &hv_Pointer1, &hv_TypeRGB, &hv_Width, &hv_Height);

	Mat img(hv_Height, hv_Width / 3, CV_8UC3, (uchar*)hv_Pointer1.L());
	CountSeconds(&hv_T2);
	hv_T = hv_T2 - hv_T1;
	cout << hv_T.D() << endl;

 下面代码完成Mat 转HObject

    Mat img2 = imread("D:\\Desktop\\绿牌.jpg");
	imshow("mat2", img2);
	HObject hob;
	CountSeconds(&hv_T1);
	GenImageInterleaved(&hob, (Hlong)img2.data, "bgr", hv_Width / 3, hv_Height, -1,
		"byte", 0, 0, 0, 0, -1, 0);
	CountSeconds(&hv_T2);
	hv_T = hv_T2 - hv_T1;
	cout << hv_T.D() << endl;

本人亲测比HObject Mat2HObject(Mat& image)快4倍 比Mat HObject2Mat(HObject Hobj)快7倍

测试环境是大学时买的二手笔记本型号不记得了已经很久没用过了,CPU I7五代低功耗版本

有朋友说转换时间0.6秒,不知道是这两个方法还是HObject Mat2HObject(Mat& image)和Mat HObject2Mat(HObject Hobj)

引用对比:Halcon12 HObject与VC++ OpenCV Mat相互转换_韦德隆东强的博客-CSDN博客_halcon 转mat

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值