热点推荐

查看: 1998|回复: 8
收起左侧

[待解决] 大恒相机的图像buffer如何转为Himage?

[复制链接]
  • TA的每日心情
    害羞
    2018-12-10 14:18
  • 签到天数: 9 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    1

    主题

    9

    帖子

    481

    积分

    Rank: 2Rank: 2

    积分
    481

    优质会员

    发表于 2017-11-27 14:36:00 | 显示全部楼层 |阅读模式

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

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

    x
       C#代码如下:            
    IntPtr pBufferMono = objIImageData.GetBuffer();//获取图像数据buffer,返回IntPtr类型指针,直接指向非托管内存。

                    Marshal.Copy(pBufferMono, m_byMonoBuffer, 0, m_nWidth * m_nHeigh); //m_byMonoBuffer是获取图像数据的buffer
                    unsafe
                    {


                        fixed (byte* pter = &m_byMonoBuffer[0])
                        {


                            Image.GenImage1("byte", m_nWidth, m_nHeigh, new IntPtr(pter));
                        }

                    }
    Image.GenImage1("byte", m_nWidth, m_nHeigh, new IntPtr(pter));这段报“未将对象引用设置到对象的实例”错误

    想问一下HImage.GenImage1怎么用?
    大恒相机的图像buffer如何转为Himage?

    发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

    面向企业销售智能软件带相机和镜头,仅需3500,来电咨询 15019223858  18520862540
  • TA的每日心情
    振奋
    3 小时前
  • 签到天数: 540 天

    连续签到: 4 天

    [LV.9]以坛为家II

    347

    主题

    1291

    帖子

    6154

    积分

    Rank: 9

    积分
    6154

    突出贡献优秀版主荣誉管理论坛元老优质会员最佳新人

    发表于 2017-11-28 08:37:17 | 显示全部楼层
    你好,你的HImag类型的变量是Halcon的吗?目前我没有见过HImage类型的,HObject类型我倒是知道!
    无效附件更新 权限提升操作 删帖申请 举报以及其他需要帮助请加入QQ群:214663141 广告位招商 有意者联系
  • TA的每日心情
    害羞
    2018-9-4 10:08
  • 签到天数: 90 天

    连续签到: 1 天

    [LV.6]常住居民II

    0

    主题

    20

    帖子

    589

    积分

    Rank: 3

    积分
    589
    发表于 2017-11-29 14:52:40 | 显示全部楼层
    Hi,

    最近剛好有用到,但我得到的影像資訊為二維陣列,供你參考
    若有任何錯誤請麻煩糾正,謝謝

    unsafe
          {
              //h 為影像高度、w為影像寬度
              //byte[,] byteData 為 [h][w] 二維矩陣

              //一維矩陣容器
              byte[] singleArrayData = new byte[h * w];

              //轉換為一維陣列
              singleArrayData = arrayData.Cast<byte>().ToArray();

              fixed (byte* pData = singleArrayData)
              {
                himage.GenImage1("byte", w, h, new IntPtr(pData));
              }
            }

    发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    害羞
    2018-8-29 18:32
  • 签到天数: 10 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    47

    主题

    98

    帖子

    910

    积分

    Rank: 9

    积分
    910

    突出贡献优秀版主荣誉管理论坛元老优质会员

    发表于 2017-11-30 00:16:49 | 显示全部楼层
    我不懂为什么这么多人喜欢用HImage,我没用过。我把相机buffer转成halcon图像对象是这样处理的:
    HOperatorSet.GenEmptyObj(out ImageTemp);
                    ImageTemp.Dispose();
                    //把图像数据生成halcon图像
                    //pData:图像数据地址;
                    if (!m_Cam.m_bIsColor)
                    {
                        //如果是黑白相机,
                        HOperatorSet.GenImage1(out ImageTemp, "byte", m_Cam.m_nImageWidth, m_Cam.m_nImageHeight, (HTuple)pData);
                    }
                    else
                   
                   //如果相机是彩色,需要把pixel format 改成RGB8Packed并保存
                    {
                        HOperatorSet.GenImageInterleaved(out ImageTemp, (HTuple)pData, "rgb", m_Cam.m_nImageWidth,m_Cam.m_nImageHeight, 0, "byte",0, 0, 0, 0, 8, 0);
       
                    }

    发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    害羞
    2018-4-23 20:47
  • 签到天数: 35 天

    连续签到: 1 天

    [LV.5]常住居民I

    0

    主题

    37

    帖子

    647

    积分

    Rank: 6Rank: 6

    积分
    647

    活跃会员热心会员优质会员

    发表于 2018-1-11 09:59:38 | 显示全部楼层
    Himage 和Hobject是可以相互转换的。你可以用genImage1从IntPtr得到Hobject,转为Himage

    发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

    该用户从未签到

    0

    主题

    3

    帖子

    67

    积分

    Rank: 1

    积分
    67
    发表于 2018-3-24 08:34:54 | 显示全部楼层
    学习一下,

    发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    害羞
    2018-9-25 17:04
  • 签到天数: 25 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    0

    主题

    8

    帖子

    480

    积分

    Rank: 5Rank: 5Rank: 5

    积分
    480

    优质会员

    发表于 2018-4-8 18:07:08 | 显示全部楼层
    public void OnFrameCallbackFun(object obj, IFrameData objIFrameData)

            {
                //用户私有参数obj,用户在注册回调函数的时候传入了设备对象,在回调函数内部可以将此参数还原为用户私有参数

                IGXDevice objIGXDevice = obj as IGXDevice;

                if (objIFrameData.GetStatus() == 0)

                {
                    //图像获取为完整帧,可以读取图像宽、高、数据格式等

                    UInt64 nWidth = objIFrameData.GetWidth();

                    UInt64 nHeight = objIFrameData.GetHeight();

                    GX_PIXEL_FORMAT_ENTRY emPixelFormat = objIFrameData.GetPixelFormat();

                    imagebuffer = objIFrameData.GetBuffer();

                    //HOperatorSet.GenImage1(out camImage, "byte", nWidth, nHeight, imagebuffer);
                    HOperatorSet.GenImage1Extern(out camImage, "byte", nWidth, nHeight, imagebuffer, 0);
                    // DispImage(camImage);
                    Disp?.Invoke(camImage);
                    //其他图像信息的获取参见IFrameData接口定义
                }
            }

    发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

    该用户从未签到

    0

    主题

    4

    帖子

    133

    积分

    Rank: 1

    积分
    133
    发表于 2018-5-10 15:20:38 | 显示全部楼层
    pwb964012840 发表于 2018-4-8 18:07
    public void OnFrameCallbackFun(object obj, IFrameData objIFrameData)

            {

    我用你发的这个,有点问题,“HOperatorSet.GenImage1Extern(out CamImage, "byte", nWidth, nHeight, imagebuffer, 0);”在这句话就会报错

    发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    可怜
    3 小时前
  • 签到天数: 378 天

    连续签到: 2 天

    [LV.9]以坛为家II

    27

    主题

    186

    帖子

    1506

    积分

    Rank: 7Rank: 7Rank: 7

    积分
    1506

    活跃会员优秀版主优质会员

    发表于 2018-6-25 12:02:55 | 显示全部楼层
    51Halcon 发表于 2017-11-28 08:37
    你好,你的HImag类型的变量是Halcon的吗?目前我没有见过HImage类型的,HObject类型我倒是知道! ...

    halcon里面是有HImage类型的,它是继承HObject的,反编译下就出来的
    1.png

    发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

    您需要登录后才可以回帖 会员登录 | 会员注册

    本版积分规则

    经营性网站备案信息 经营性网站
    备案信息

    中国互联网举报中心 中国互联网
    举报中心

    中国文明网传播文明 中国文明网
    传播文明

    诚信网站

    深圳市市场监督管理局企业主体身份公示 工商网监
    电子标识