opencvsharp Mat 与 halcon Hobject 图像格式相互转化

本文介绍了如何在OpencvSharp的Mat格式和Halcon的Hobject格式之间进行图像转换,包括灰度图和彩图的转换方法。作者强调了在将Mat转换为byte[]时的优化策略,通过行内内存复制提高速度,避免逐点循环的低效。这些转换在深度学习工业应用中具有实际价值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        上次讲了bitmap 与hobject 格式的转换。这次讲一下 Mat 与hobject 格式转化方法。这种功能应该比较少有人会用到。因我主要做深度学习工业应用,我常用的图像库是opencv, 而自动化AOI部门主要用halcon,为了对接方便,我就研究了 这个内容。

        关键点是如何将Mat 转为byte[],由于Mat 是非连续存储的,无法直接将Mat 转为数组,所以我采用一行一行循环的方式,为了提高速度,行内我采用内存复制的方式。如果采用逐点循环的方式,速度会比较慢。

         这个功能还是比较有用的,有次我看到opencv 群里面有个人到处询问如何将Mat 转为数组,但没人理他。

        

1.灰度图转换之Mat -> hobject

 public void Mat2HObjectBpp8(Mat mat, out HObject image)
        {
            int ImageWidth = mat.Width;
            int ImageHeight = mat.Height;
            int channel = mat.Channels();
            long size = ImageWidth * ImageHeight * channel;
            int col_byte_num = ImageWidth * channel;

            byte[] rgbValues = new byte[size];
            //IntPtr imgptr = System.Runtime.InteropServices.Marshal.AllocHGlobal(rgbValues.Length);
            unsafe
            {
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值