Halcon视觉之家-Halcon视觉技术论坛

 找回密码
 会员注册

QQ登录

只需一步,快速开始

扫一扫,微信登录

查看: 5501|回复: 3

[资料] Halcon 和 C# 联合编程 - 图像变量的相互转换(HObject、HImage、B...

[复制链接]

该用户从未签到

4

主题

16

帖子

468

积分

Rank: 2Rank: 2

积分
468
发表于 2019-1-17 11:23:25 | 显示全部楼层 |阅读模式

51Halcon诚邀您的加入,专注于机器视觉开发与应用技术,我们一直都在努力!

您需要 登录 才可以下载或查看,没有账号?会员注册

x
下面代码是我在搜索 get_image_pointer1 过程中得到,给我带来了一些灵感。

/// <summary>
/// 灰度图像变量 HObject -> Bitmap
/// 原文:https://blog.csdn.net/bingbingxie1/article/details/83344704
/// </summary>
public static Bitmap HObject2Bitmap(HObject ho)
{
    try
    {
        HTuple type, width, height, pointer;
        //HOperatorSet.AccessChannel(ho, out ho, 1);
        HOperatorSet.GetImagePointer1(ho, out pointer, out type, out width, out height);
        //himg.GetImagePointer1(out type, out width, out height);

        Bitmap bmp = new Bitmap(width.I, height.I, PixelFormat.Format8bppIndexed);
        ColorPalette pal = bmp.Palette;
        for (int i = 0; i <= 255; i++)
        {
            pal.Entries[i] = Color.FromArgb(255, i, i, i);
        }
        bmp.Palette = pal;
        BitmapData bitmapData = bmp.LockBits(new Rectangle(0, 0, width, height), ImageLockMode.WriteOnly, PixelFormat.Format8bppIndexed);
        int PixelSize = Bitmap.GetPixelFormatSize(bitmapData.PixelFormat) / 8;
        int stride = bitmapData.Stride;
        int ptr = bitmapData.Scan0.ToInt32();
        for (int i = 0; i < height; i++)
        {
            CopyMemory(ptr, pointer, width * PixelSize);
            pointer += width;
            ptr += bitmapData.Stride;
        }

        bmp.UnlockBits(bitmapData);
        return bmp;
    }
    catch (Exception exc)
    {
        return null;
    }
}
/// <summary>
/// 灰度图像变量 HObject -> HImage
/// 原文:https://blog.csdn.net/pudongdong/article/details/53574742
/// </summary>
public HImage HObject2HImage(Hobject hobject)
{
    HImage image;
    HTuple type, width, height, pointer;
    gHOperatorSet.GetImagePointer1(ho, out pointer, out type, out width, out height);
    image.GenImage1(type, width, height, pointer);
    return image;
}

评分

参与人数 1热心值 +1 收起 理由
Criss + 1 鼓励转贴优秀软件、源码和文档!.

查看全部评分

签到天数: 36 天

连续签到: 5 天

[LV.5]常住居民I

444

主题

1864

帖子

8350

积分

Rank: 9

积分
8350

突出贡献优秀版主荣誉管理论坛元老切换助手验证会员最佳新人

发表于 2019-1-17 11:37:14 | 显示全部楼层
代码初步看了下,应该没有问题大问题,核心就是图片的数据指针,然后对应大小转换即可!
无效附件更新 权限提升操作 删帖申请 举报以及其他需要帮助请加入QQ群:214663141 广告位招商 有意者联系

该用户从未签到

0

主题

43

帖子

73

积分

Rank: 1

积分
73
发表于 2019-5-28 10:35:52 | 显示全部楼层
新手正好学习用到,感谢

该用户从未签到

0

主题

8

帖子

14

积分

Rank: 1

积分
14
发表于 2019-10-23 17:05:13 | 显示全部楼层
CopyMemory这个是什么方法,在哪里定义的 ,这个PixelFormat.Format8bppIndexed像素格式又是那个的格式,可以说下吗
您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

视觉培训招生

建议您使用Chrome、Firefox、Edge、360、IE10以上等主流浏览器浏览本论坛

算子查询| 申请友链| 小黑屋| 手机版| Archiver| 业务支持|

© 2015-2021 Halcon视觉之家  X3.4  粤ICP备15095995号 粤公网安备44030602000670号

本站已安全运行:

快速回复 返回顶部 返回列表