Halcon视觉之家 - 51Halcon专注于机器视觉技术

 找回密码
 会员注册

QQ登录

只需一步,快速开始

扫一扫,微信登录

查看: 3836|回复: 7

[已解决] 怎么序列化HObject?

[复制链接]
  • TA的每日心情
    慵懒
    2021-8-31 18:03
  • 签到天数: 40 天

    连续签到: 1 天

    [LV.5]常住居民I

    4

    主题

    39

    帖子

    129

    积分

    Rank: 1

    积分
    129

    切换助手验证会员

    发表于 2017-9-6 10:13:22 | 显示全部楼层 |阅读模式

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

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

    x
    本帖最后由 zhhuaq 于 2017-10-15 18:24 编辑

    MFC/Halcon 12. 0中 HTuple * m_pModelID  这个是模版ID

    HObject * m_pRegion  
    这2种情况怎么用CArchive & ar 序列化保存? 读取?

  • TA的每日心情
    开心
    5 小时前
  • 签到天数: 1262 天

    连续签到: 5 天

    [LV.10]以坛为家III

    416

    主题

    1719

    帖子

    6177

    积分

    Rank: 9

    积分
    6177

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

    发表于 2017-9-6 11:00:18 | 显示全部楼层
    模板ID只是一个句柄而已,它代表的是一个 *.shm文件的句柄,如果没有这个文件,你给他赋值为0或者1也没有用,所以没有必要序列化这个对象,也没有意义吧?
    Hobject类型的区域是图形数据,他代表的一串游程编码,本身存为*.reg类型的也是没有问题的。为嘛还需要进行序列化存储?序列化后也是文件存在硬盘中,楼主这么做的实际指导意义是什么呢?
    无效附件更新 权限提升操作 删帖申请 举报以及其他需要帮助请加入QQ群:214663141 广告位招商 有意者联系
  • TA的每日心情
    慵懒
    2021-8-31 18:03
  • 签到天数: 40 天

    连续签到: 1 天

    [LV.5]常住居民I

    4

    主题

    39

    帖子

    129

    积分

    Rank: 1

    积分
    129

    切换助手验证会员

     楼主| 发表于 2017-9-6 11:56:12 | 显示全部楼层
    51Halcon 发表于 2017-9-6 11:00
    模板ID只是一个句柄而已,它代表的是一个 *.shm文件的句柄,如果没有这个文件,你给他赋值为0或者1也没有用 ...

    我想把调试工具的参数与Htuple与object一起序列化,这样可以方便多文件切换
  • TA的每日心情
    开心
    5 小时前
  • 签到天数: 1262 天

    连续签到: 5 天

    [LV.10]以坛为家III

    416

    主题

    1719

    帖子

    6177

    积分

    Rank: 9

    积分
    6177

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

    发表于 2017-9-6 14:24:37 | 显示全部楼层
    zhhuaq 发表于 2017-9-6 11:56
    我想把调试工具的参数与Htuple与object一起序列化,这样可以方便多文件切换 ...

    保存起来读取就可以切换了!
    无效附件更新 权限提升操作 删帖申请 举报以及其他需要帮助请加入QQ群:214663141 广告位招商 有意者联系
  • TA的每日心情
    慵懒
    2021-8-31 18:03
  • 签到天数: 40 天

    连续签到: 1 天

    [LV.5]常住居民I

    4

    主题

    39

    帖子

    129

    积分

    Rank: 1

    积分
    129

    切换助手验证会员

     楼主| 发表于 2017-9-6 15:57:59 | 显示全部楼层
    保存:
                    if (m_pModelID)
                    {
                            ar << 1;
                            WriteShapeModel(*m_pModelID, "C:\\temp.shm");

                            CFile rFile2(L"C:\\temp.shm", CFile::modeRead);
                            int nn = rFile2.GetLength();
                            char * buff = new char[nn];
                            int nLen = rFile2.Read(buff, nn);
                            ar << nLen;
                            ar.Write(buff, nLen);
                            delete[] buff;
                            rFile2.Close();               
                    }
                    else
                    {
                            ar << 0;
                    }

    读取:
                    int nExist;
                    ar >> nExist;
                    if (nExist)
                    {
                            int nn = 0;
                            ar >> nn;
                            char * buff = new char[nn];
                            ar.Read(buff, nn);
                            CFile rFile2(L"C:\\temp.shm", CFile::modeCreate|CFile::modeWrite);               
                            rFile2.Write(buff, nn);
                            delete[] buff;
                            rFile2.Close();

                            ReadShapeModel("C:\\temp.shm", m_pModelID);
                    }
  • TA的每日心情
    开心
    5 小时前
  • 签到天数: 1262 天

    连续签到: 5 天

    [LV.10]以坛为家III

    416

    主题

    1719

    帖子

    6177

    积分

    Rank: 9

    积分
    6177

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

    发表于 2018-1-24 17:20:19 | 显示全部楼层
    序列化图像(Halcon 12.0.3测试):
    1. read_image (Image, 'fabrik')
    2. *序列化图像为句柄
    3. serialize_image (Image, SerializedItemHandle)
    4. open_file ('G:/1.dat', 'output_binary', FileHandle)
    5. *保存序列化图像句柄
    6. fwrite_serialized_item (FileHandle, SerializedItemHandle)
    7. close_file (FileHandle)

    8. open_file ('G:/1.dat', 'input_binary', FileHandle)
    9. *读取图像反序列化句柄
    10. fread_serialized_item (FileHandle, SerializedItemHandle1)
    11. *根据句柄还原图像
    12. deserialize_image (Image1, SerializedItemHandle1)
    13. close_file (FileHandle)
    复制代码


    无效附件更新 权限提升操作 删帖申请 举报以及其他需要帮助请加入QQ群:214663141 广告位招商 有意者联系
  • TA的每日心情

    2020-11-26 16:08
  • 签到天数: 37 天

    连续签到: 1 天

    [LV.5]常住居民I

    3

    主题

    42

    帖子

    104

    积分

    Rank: 1

    积分
    104
    发表于 2019-4-3 15:16:44 | 显示全部楼层
    Criss 发表于 2018-1-24 17:20
    序列化图像(Halcon 12.0.3测试):

    你这个是halcon的序列化方法,C# 下直接用HImage对象序列化HObject
    ,也就是直接BinaryFormatter序列化即可
    HShapeModel对象可以序列化ModelID

    该用户从未签到

    0

    主题

    21

    帖子

    483

    积分

    Rank: 2Rank: 2

    积分
    483
    发表于 2020-1-6 07:04:40 | 显示全部楼层
    您好请问我需要多个类遍历存储,需要标记每个类需要序列化的变量,含htuple和匹配模板等一起,请问c#自带的序列化方法是否可以序列化和反序列化回来
    您需要登录后才可以回帖 登录 | 会员注册

    本版积分规则

    视觉培训招生

    建议您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流浏览器浏览本网站

    51Halcon会员技术交流会员技术交流 | 51Halcon官方客服咨询官方客服咨询 | Halcon切换助手使用反馈切换助手使用

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

    © 2015-2021 51Halcon机器视觉  X3.4  粤ICP备15095995号 粤公网安备44030602000670号

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