C# Bitmap 与 halcon Hobject 图像格式互相转换

这篇博客分享了如何在C#中使用Halcon库将彩色和灰度Bitmap图像转换为Hobject,以及如何将Hobject转换回Bitmap。作者详细介绍了两种不同版本Halcon的转换方法,并提供了完整的代码示例,适用于需要在Halcon和Bitmap间进行图像数据交换的场景。

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

        一直用opencv 做图像处理,最近接触到了halcon,发现使用halcon 实在太方便了。halcon 的代码可直接导出为C# 代码。由于我只是用halcon  实现图像算法功能,图像的显示还是用bitmap 格式,所以不可避免的要实现 bimtap 和hobject 互相转化的功能。

        百度搜集的转换资料并不完整,经过几天的仔细研究,终于全部搞通。现分享出来,供有需要的同学参考。

1.彩色bitmap 转 彩色 Hobject

public void Bitmap2HObjectBpp24(Bitmap bmp, out HObject image)
        {
            try
            {
                Rectangle rect = new Rectangle(0, 0, bmp.Width, bmp.Height);

                BitmapData srcBmpData = bmp.LockBits(rect, ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb);
                HOperatorSet.GenImageInterleaved(out image, srcBmpData.Scan0, "bgr", bmp.Width, bmp.Height, 0, "byte", 0, 0, 0, 0, -1, 0);
                bmp.UnlockBits(srcBmpData);

            }
            catch (Exception ex)
            {
                image = null;
            }
        }

2. 8位灰度bitmap 转 Hobject 

 public void Bitmap2HObjectBpp8(Bitmap bmp, out HObject image)
        {
            try
            {
                Rectangle rect = new Rectangle(0, 0, bmp.Width, bmp.Height);

                BitmapData srcBmpData = bmp.LockBits(rect, ImageLockMode.ReadOnly, PixelFormat.Format8bppIndexed);

                HOperatorSet.GenImage1(out image, "byte", bmp.Width, bmp.Height, srcBmpData.Scan0);
                bmp.UnlockBits(srcBmpData);
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值