halcon,快速hobject转bitmap格式(20ms以下)

2024-04-10 21:20

本文主要是介绍halcon,快速hobject转bitmap格式(20ms以下),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

在实际项目中经常会将halcon的图像格式转化为bitmap的格式。例如在载入tensorflow的训练模型时,一般不支持对hobject格式的输入,包括很多程序。
所以就需要一个具有较快速度的转化方式。
本文中的转化方式,在24位彩色图中平均在15ms(4096*2160),32位彩色图18ms,8位灰度图,10ms。

1.C#程序

/// <summary>/// hobject彩色图24位转bitmap/// </summary>/// <param name="ho_image"></param>/// <param name="res24"></param>public void HobjectToBitmap24(HObject ho_image, out Bitmap res24){HTuple  type, width, height;//创建交错格式图像HOperatorSet.InterleaveChannels(ho_image, out HObject InterImage, "rgb", "match", 255);  //获取交错格式图像指针HOperatorSet.GetImagePointer1(InterImage, out HTuple Pointer, out type, out width, out height);IntPtr ptr = Pointer;res24 = new Bitmap(width / 3, height, width, PixelFormat.Format24bppRgb, ptr);  }/// <summary>/// hobject彩色图32位转bitmap/// </summary>/// <param name="ho_image"></param>/// <param name="res32"></param>public void HobjectToBitmap32(HObject ho_image, out Bitmap res32){HTuple type, width, height;//创建交错格式图像HOperatorSet.InterleaveChannels(ho_image, out HObject InterImage, "argb", "match", 255);//获取交错格式图像指针HOperatorSet.GetImagePointer1(InterImage, out HTuple Pointer, out type, out width, out height);IntPtr ptr = Pointer;res32 = new Bitmap(width / 4, height, width, PixelFormat.Format32bppRgb, ptr);}/// <summary>/// hobject灰度8位转bitmap/// </summary>/// <param name="ho_image"></param>/// <param name="res8"></param>public void HobjectToBitmap8(HObject ho_image, out Bitmap res8){HTuple type, width, height;HOperatorSet.GetImagePointer1(ho_image, out HTuple Pointer, out type, out width, out height);IntPtr ptr = Pointer;res8 = new Bitmap(width, height, width, PixelFormat.Format8bppIndexed, ptr);//设置灰度调色板ColorPalette cp = res8.Palette;for (int i = 0; i < 256; i++){cp.Entries[i] = Color.FromArgb(i, i, i);}res8.Palette = cp;}

这篇关于halcon,快速hobject转bitmap格式(20ms以下)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/892177

相关文章

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Python多线程实现大文件快速下载的代码实现

《Python多线程实现大文件快速下载的代码实现》在互联网时代,文件下载是日常操作之一,尤其是大文件,然而,网络条件不稳定或带宽有限时,下载速度会变得很慢,本文将介绍如何使用Python实现多线程下载... 目录引言一、多线程下载原理二、python实现多线程下载代码说明:三、实战案例四、注意事项五、总结引

C#使用Spire.XLS快速生成多表格Excel文件

《C#使用Spire.XLS快速生成多表格Excel文件》在日常开发中,我们经常需要将业务数据导出为结构清晰的Excel文件,本文将手把手教你使用Spire.XLS这个强大的.NET组件,只需几行C#... 目录一、Spire.XLS核心优势清单1.1 性能碾压:从3秒到0.5秒的质变1.2 批量操作的优雅

Mybatis-Plus 3.5.12 分页拦截器消失的问题及快速解决方法

《Mybatis-Plus3.5.12分页拦截器消失的问题及快速解决方法》作为Java开发者,我们都爱用Mybatis-Plus简化CRUD操作,尤其是它的分页功能,几行代码就能搞定复杂的分页查询... 目录一、问题场景:分页拦截器突然 “失踪”二、问题根源:依赖拆分惹的祸三、解决办法:添加扩展依赖四、分页

c++日志库log4cplus快速入门小结

《c++日志库log4cplus快速入门小结》文章浏览阅读1.1w次,点赞9次,收藏44次。本文介绍Log4cplus,一种适用于C++的线程安全日志记录API,提供灵活的日志管理和配置控制。文章涵盖... 目录简介日志等级配置文件使用关于初始化使用示例总结参考资料简介log4j 用于Java,log4c

使用Redis快速实现共享Session登录的详细步骤

《使用Redis快速实现共享Session登录的详细步骤》在Web开发中,Session通常用于存储用户的会话信息,允许用户在多个页面之间保持登录状态,Redis是一个开源的高性能键值数据库,广泛用于... 目录前言实现原理:步骤:使用Redis实现共享Session登录1. 引入Redis依赖2. 配置R

SpringBoot 异常处理/自定义格式校验的问题实例详解

《SpringBoot异常处理/自定义格式校验的问题实例详解》文章探讨SpringBoot中自定义注解校验问题,区分参数级与类级约束触发的异常类型,建议通过@RestControllerAdvice... 目录1. 问题简要描述2. 异常触发1) 参数级别约束2) 类级别约束3. 异常处理1) 字段级别约束

Mysql常见的SQL语句格式及实用技巧

《Mysql常见的SQL语句格式及实用技巧》本文系统梳理MySQL常见SQL语句格式,涵盖数据库与表的创建、删除、修改、查询操作,以及记录增删改查和多表关联等高级查询,同时提供索引优化、事务处理、临时... 目录一、常用语法汇总二、示例1.数据库操作2.表操作3.记录操作 4.高级查询三、实用技巧一、常用语

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统