大恒IFrameData IImageData转bmp HObject Mat

大恒工业相机采集的帧数据转为其他8bit图像格式

  • C#
    • 转为bmp格式
    • 转为Halcon的HObject格式
    • 转为OpenCVSharp的Mat格式

回调采集图像的数据类型为IFrameData,单帧采集的数据类型为IImageData,两者的区别为IImageData类多了一个**Destroy()**方法
在这里插入图片描述

C#

转为bmp格式

//黑白相机
public static Bitmap Tobmp(IImageData)
{int m_width = (int)IImageData.GetWidth();int m_height = (int)IImageData.GetHeight();IntPtr pBufferMono = IImageData.GetBuffer();Bitmap bmp = new Bitmap(m_width, m_height, m_width, System.Drawing.Imaging.PixelFormat.Format8bppIndexed,pBufferMono);//添加调色板ColorPalette palette;palette = bmp.Palette;int i = 0;for (i = 0; i <= 255; i++)palette.Entries[i] = System.Drawing.Color.FromArgb(i, i, i);bmp.Palette = palette;return bmp;
}
//彩色相机
public static Bitmap Tobmp(IImageData)
{int m_width = (int)IImageData.GetWidth();int m_height = (int)IImageData.GetHeight();IntPtr pBufferColor = IImageData.ConvertToRGB24(GX_VALID_BIT_LIST.GX_BIT_0_7, GX_BAYER_CONVERT_TYPE_LIST.GX_RAW2RGB_NEIGHBOUR, false);Bitmap bmp = new Bitmap(m_width, m_height, m_width * 3, System.Drawing.Imaging.PixelFormat.Format24bppRgb, pBufferColor);return bmp;
}

转为Halcon的HObject格式

//黑白相机
public static HObject ToHObject(IImageData)
{int m_width = (int)IImageData.GetWidth();int m_height = (int)IImageData.GetHeight();HOperatorSet.GenImage1(out HObject ho_image, "byte", m_width, m_height,  IImageData.GetBuffer());return ho_image;
}
//彩色相机
public static HObject ToHObject(IImageData)
{int m_width = (int)IImageData.GetWidth();int m_height = (int)IImageData.GetHeight();IntPtr pBufferColor = IImageData.ConvertToRGB24(GX_VALID_BIT_LIST.GX_BIT_0_7, GX_BAYER_CONVERT_TYPE_LIST.GX_RAW2RGB_NEIGHBOUR, false);HOperatorSet.GenImageInterleaved(out HObject ho_image, pBufferColor, "bgr", m_height, m_height, -1, "byte", m_width, m_height, 0, 0, -1, 0);return ho_image;
}

转为OpenCVSharp的Mat格式

//黑白相机
public static Mat ToMat(IImageData)
{int height = (int)IImageData.GetHeight();int width = (int)IImageData.GetWidth();byte[] m_byMonoBuffer = new byte[width  * height];Marshal.Copy(IImageData.GetBuffer(), m_byMonoBuffer, 0, width * height);Mat image = new Mat(height, width, MatType.CV_8UC1, m_byMonoBuffer);   return image;  
}
//彩色相机
public static Mat ToMat(IImageData)
{int height = (int)IImageData.GetHeight();int width = (int)IImageData.GetWidth();IntPtr pBufferColor = IImageData.ConvertToRGB24(GX_VALID_BIT_LIST.GX_BIT_0_7, GX_BAYER_CONVERT_TYPE_LIST.GX_RAW2RGB_NEIGHBOUR, false);byte[] m_byColorBuffer = new byte[(width * 3) * height];Marshal.Copy(pBufferColor, m_byColorBuffer, 0, (width * 3) * height);Mat image = new Mat(height, width, MatType.CV_8UC3, m_byColorBuffer);  return image; 
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/125452.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

typescript 分析泛型工具类Partial的实现原理理解索引查询类型

Partial实现原理 在 TypeScript 中&#xff0c;Partial 是一个非常有用的工具类型&#xff0c;它能够将一个对象类型的所有属性变为可选。Partial 的实现原理是通过使用映射类型&#xff08;Mapped Type&#xff09;和 keyof 关键字来实现的。 下面我们来看一下 Partial 的实现…

ChatGPT技术原理

Task03 ChatGPT技术原理 目录 阶段一&#xff1a;有监督微调Supervised fine-tuning (SFT)阶段二&#xff1a;训练回报模型&#xff08;Reward Model, RM&#xff09;阶段三&#xff1a;使用强化学习微调 SFT 模型 ChatGPT 是由 GPT-3 迭代来的&#xff0c;原有的 GPT-3 可能…

小程序入门笔记(一) 黑马程序员前端微信小程序开发教程

微信小程序基本介绍 小程序和普通网页有以下几点区别&#xff1a; 运行环境&#xff1a;小程序可以在手机的操作系统上直接运行&#xff0c;如微信、支付宝等&#xff1b;而普通网页需要在浏览器中打开才能运行。 开发技术&#xff1a;小程序采用前端技术进行开发&#xff0c;…

前后端通信到底是怎样一个过程

前后端通信是怎样 前言&#xff1a;Http协议 超文本传输协议 规定&#xff1a;每一次前后端通信&#xff0c;前端需要主动向后端发出请求&#xff0c;后端接收到前端的请求后&#xff0c;可以给出响应 1、Http报文 浏览器向服务器发送请求时&#xff0c;请求本身就是信息&…

Integrity Plus for Mac,保障网站链接无忧之选

在如今数字化的时代&#xff0c;网站链接的完整性对于用户体验和搜索引擎排名至关重要。如果您是一位网站管理员或者经常需要检查网站链接的人&#xff0c;那么Integrity Plus for Mac&#xff08;Integrity Plus&#xff09;将成为您最好的伙伴。 Integrity Plus是一款专业的…

国庆发生的那些事儿------编写了炫酷的HTML动态鼠标特效,超级炫酷酷酷!

文章目录 前言具体操作总结 前言 国庆假期的欢乐&#xff0c;当然少不了编码爱好者&#xff01;假期编写了炫酷的HTML动态鼠标特效&#xff0c;超级炫酷酷酷&#xff01;让你的页面变得更加炫酷&#xff0c;让你的小伙伴们羡慕的大神编码&#xff01;快来看看大神是如何编写的…

The directory ‘*‘ or its parent directory is not owned by the current user

python安装编译时出现如下错误 The directory /home/admin/.cache/pip/http or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may …

Linux学习之悟空派上实现OLED的无线网IP及CPU温度显示【守护进程】

起因 最近各种网购平台似乎都在推送99元的悟空派全志H3的开发板&#xff0c;出于好奇就买了一块来试试水&#xff0c;由于这块板子基本上和orangepi-Zero的硬件结构一模一样&#xff0c;所以设备树、boot这些就用orangepi现成的部件了。 因为本人比较喜欢使用SSH操作&#xff…

redis高可用(主从复制,哨兵,集群)

目录 一、主从复制&#xff1a; 1.主从复制介绍&#xff1a; 2.主从复制的作用&#xff1a; 3.主从复制流程&#xff1a; 4.搭建Redis 主从复制&#xff1a; 4.1 环境准备&#xff1a; 4.2 安装redis&#xff1a; 4.3 master节点修改 Redis 配置文件&#xff1a; 4.4 slave节点…

【数据结构与算法】树、二叉树的概念及结构(详解)

前言: &#x1f4a5;&#x1f388;个人主页:​​​​​​Dream_Chaser&#xff5e; &#x1f388;&#x1f4a5; ✨✨专栏:http://t.csdn.cn/oXkBa ⛳⛳本篇内容:c语言数据结构--树以及二叉树的概念与结构 目录 一.树概念及结构 1.树的概念 1.1树与非树 树的特点&#xff1…

【C++设计模式之装饰模式:结构型】分析及示例

装饰模式&#xff08;Decorator Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许在运行时动态地给一个对象添加额外的行为。 描述 装饰模式通过创建一个包装器&#xff08;Wrapper&#xff09;来包裹原始对象&#xff0c;并在原始对象的行为前后添加额外的功能。…

前端 | AjaxAxios模块

文章目录 1. Ajax1.1 Ajax介绍1.2 Ajax作用1.3 同步异步1.4 原生Ajax 2. Axios2.1 Axios下载2.2 Axios基本使用2.3 Axios方法 1. Ajax 1.1 Ajax介绍 Ajax: 全称&#xff08;Asynchronous JavaScript And XML&#xff09;&#xff0c;异步的JavaScript和XML。 1.2 Ajax作用 …