zoukankan      html  css  js  c++  java
  • Halcon

    在 Halcon 中,或许大部分人都知道如何通过 get_grayval 获取图像的灰度值,这条算子在获取单个像素时是比较好用的。但是当你想获取一幅大尺寸图像的一行甚至所有的灰度数据时,它就会变得很吃力。这一点在该算子的介绍文档中也有提及。

    这里要介绍的是通过 get_image_ponter1get_image_pointer3 获取图像数据,这样的方法也是 Halcon 文档中所推荐的方式,遗憾的是 Halcon 文档中并没有继续这个话题,甚至百度和谷歌都找不到任何一条关于如何使用它来获取图像数据的。

    事实上C#操作内存的方法并不是没有,只是比较冷门,大家都没用,资料也少,如此便成了恶性循环...唠叨一句。而C#的内存操作就不得不提 System.Runtime.InteropServices 这个命名空间下的 Marshal 类了。而今天我们也是要用到这个类下的 Copy 方法。

    废话不多说,上代码:

    private byte[] GetImageData(HImage image)
    {
        HTuple t, w, h;
        IntPtr p;
        p = image.GetImagePointer1(out t, out w, out h);
        int len = w * h;
        byte[] data = new byte[len];
        System.Runtime.InteropServices.Marshal.Copy(p, data, 0, len);
        return data;
    }
    

    共勉之!

  • 相关阅读:
    springboot+fegin实现负载均衡
    springcloud实现微服务服务注册、负载均衡
    spring boot服务状态监控+shell远程连接服务
    微服务基础概念及相关技术组件
    集群分布式基础概念及了解
    http第一章-telnet测试
    spring整合netty

    springMVC+spring+JPA配置文件
    CAN信号值解析
  • 原文地址:https://www.cnblogs.com/zdfffg/p/10278847.html
Copyright © 2011-2022 走看看