VM4.2 脚本调用halcon解码
VM4.2 脚本调用halcon解码 实现方法

   


   /// <summary>
    /// 流程执行一次进入Process函数
    /// </summary>
    /// <returns></returns>
    public bool Process()
    {
        //每次执行将进入该函数,此处添加所需的逻辑流程处理
        //实例化ImageData类型图像
        ImageData img=new ImageData();

        GetImageValue("in0",ref img);

       HObject ho_image;
       HOperatorSet.GenEmptyObj(out ho_image);
        if (img.PixelFormat == ImagePixelFormate.MONO8)
        {
            
            //开辟空间
            IntPtr grayPtr=Marshal.AllocHGlobal(img.Width*img.Heigth);
            //向内存空间中写入数据
            Marshal.Copy(img.Buffer,0,grayPtr,img.Buffer.Length);
            
            HTuple w,h,s;
            w=img.Width;
            h=img.Heigth;
            s=grayPtr;

            HOperatorSet.GenImage1(out ho_image,"byte",w,h,grayPtr);
            HTuple w1,h1,s1;
            HOperatorSet.GetImageSize(ho_image,out w1,out h1);

            SetIntValue("out1",h1);
            SetImageValue("out0",img);
            
            //创建一个二维码数据class模型    
            HObject  ho_SymbolXLDs;
        
            HTuple hv_DataCodeHandle = null, hv_ResultHandles = null;
            HTuple hv_DecodedDataStrings = null;
        
            //创建一个二维码数据class模型
            HOperatorSet.CreateDataCode2dModel("QR Code", "default_parameters", "maximum_recognition", 
                out hv_DataCodeHandle);
            //-检测和读取图像中的二维数据代码符号或训练二维数据代码模型。
            HOperatorSet.FindDataCode2d(ho_image, out ho_SymbolXLDs, hv_DataCodeHandle, "train", 
                "all", out hv_ResultHandles, out hv_DecodedDataStrings);
            //删除2D数据代码模型并释放分配的内存。
            HOperatorSet.ClearDataCode2dModel(hv_DataCodeHandle);
            ho_image.Dispose();
            ho_SymbolXLDs.Dispose();
            
            SetStringValue("out2",hv_DecodedDataStrings);
            //用完记得释放指针   
            Marshal.FreeHGlobal(grayPtr);
        }
        return false;
    }

版权声明:本文为V社区用户原创内容,转载时必须标注文章的来源(V社区),文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:v-club@hikrobotics.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
上一篇

VM4.2正式发布!

下一篇

VM组合模块的使用方法(VM4.1)

评论请先登录 登录
全部评论 6

楼主,彩色图像传入脚本的怎么转换成HObject呢?

2022-09-20 13:44:07
回复
摩托呀 作者

引用命名空间:using System.Runtime.InteropServices;

2022-08-14 23:35:38
回复

学到了,受教了

2022-08-09 18:33:56
回复

这是把输入进来的图像又给了输出吧,用Halcon处理完的图像怎么转成ImageData输出

2022-08-09 17:00:37
回复

学习了

2022-08-08 16:23:28
回复

已点赞收藏,感谢楼主分享。不知道能否自己封装好,引用DLL 然后VM脚本里就写一个方法就能实现呢?

2022-08-04 09:33:30
回复
  • 1
Lv.0
4
创作
5
粉丝
15
获赞
相关阅读
  • 3C行业|字符缺陷检测及字符识别
    2022-11-11
  • VM常见定位场景与方案设计
    2022-11-11
  • VM模块-相机映射
    2022-11-11
  • AI训练平台V2.1上线公测啦
    2022-11-05
  • V社区一周年“心仪祝福”揭晓
    2022-11-08

请升级浏览器版本

您正在使用的浏览器版本过低,请升级最新版本以获得更好的体验。

推荐使用以下浏览器