【1】图像转换方法C#Byte数组转Halcon的Hobject

        private void Dispose(ref HObject image)
        {
            if (image != null && image.Key != IntPtr.Zero)
            {
                image.Dispose();
            }
        }
        private HObject BytetoHobject(byte[] rawValues, int width, int height)
        {
            HObject red = null, green = null, blue = null;
            Bitmap bmp = null;
            try
            {
                bmp = new Bitmap(width, height, PixelFormat.Format24bppRgb);
                BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0, width, height),         ImageLockMode.WriteOnly, PixelFormat.Format24bppRgb);    获取图像参数  

                IntPtr iptr =bmpData.Scan0;  // 获取bmpData的内存起始位置  
                System.Runtime.InteropServices.Marshal.Copy(rawValues, 0, iptr, width * height * 3);
                HOperatorSet.GenImageInterleaved(out HObject image, (HTuple)iptr, "rgb", width, height, 0, "byte", 0, 0, 0, 0, -1, 0);
                bmp.UnlockBits(bmpData);
                bmp.Dispose();
                HOperatorSet.Decompose3(image,out  red,out  green,out  blue);
                image.Dispose();
                HOperatorSet.Compose3(blue,green,red,out image);
              
                //HOperatorSet.WriteImage(image,"png",0,"bmp");
                return image;
            }
            catch (Exception e)
            {
                return null;
            }
            finally
            {
                Dispose(ref red);
                Dispose(ref green);
                Dispose(ref blue);
                if (bmp != null)
                {
                    bmp.Dispose();
                }
            }
        }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值