HALCON-从入门到入门-读取图片保存图片

1.废话

视觉算法库的第一步。

读取图片:

看你是从哪里读取,从相机读取还是从本地硬盘中读取。

保存图片:就只有保存到本地了。

上面的截图显示我读取了一张图片

从相机中读取另开一篇来说,先说从本地磁盘读取哈。

怎么读取的呢

三种方法哈

第一 直接鼠标拖进去

没错,跟大多数软件一样,直接拿住图片拖到程序编辑窗口就可以了

会给你弹个框

点击确定,就可以读取这张图片

第二 编写代码

在程序编辑窗口编写read_image算子,点击tab键,然后在算子的参数中输入图片的路径

点F6运行这一句,然后就把图片读进来了。

第三 算子窗口选择图片

在程序窗口中选中当前算子,打开算子窗口,点击这里即可选择图片读取进来

读取图片算子详解

read_image(操作员)

名字

read_image— 读取具有不同文件格式的图像。

签名

read_image( : Image : FileName : )

描述

操作员从中读取指示的图像文件 后台存储并生成图像。一个或多个文件 名称可以传入read_imageFileName.如果有多个文件 name 被传递,一个具有相应数字的图像对象元组 返回图像对象。

HALCON 格式(HOBJ 和 IMA)

对于 HALCON Iconic Object 格式 (HOBJ) 的图像,多个图像 保存在一个文件中将作为图像元组返回。如果区域或 XLD 包含在文件中,则引发异常。看write_object有关 HOBJ 格式的更多信息。

所有图像文件均由操作员写入write_image(格式 'ima') 具有扩展名“.ima”.描述文件可以 可用于 IMA 格式的每张图像(与 外延'.exp').像素数据的类型 (“字节”,“int4”,“真实”)也可以取自 描述文件。如果描述文件不可用,则 类型“字节”默认使用以及默认数据 尺寸 (“高度”x“宽度”) 可以 通过查询get_system.如果“.ima”文件和默认数据大小不相等,一个 引发异常。

其他格式

除了 HALCON 格式,TIFF、GIF、BMP、JPEG、JPEG-2000、JPEG-XR、PNG、 还可以读取 PCX、SUN-Raster、PGM、PPM、PBM 和 XWD 文件。这 PBM 图像的灰度值设置为值 0 和 255。文件 格式要么由扩展名识别(如果指定),要么 由于文件的内部结构。如果扩展名是 表示可以更快地找到图像。如果没有扩展名 指示,带有扩展名的文件优先于没有扩展名的文件 外延。在 PGM、PPM 和 PBM 的情况下,相应的扩展 (例如,“铂族金属”)或一般值“PNM”可以 使用。在 TIFF 的情况下“tiff”“tif”是 接受。如果是 JPEG-XR,则接受“jxr”、“wdp”、“wmp”和“hdp”。 仅适用于 JPEG-2000“JP2”被接受。倘 在彩色图像中,具有三个颜色通道的图像是 创建后,红色通道存储在第一个绿色通道中 在第二和蓝色通道在第三组件(通道 数字)。

对于图像格式 TIFF、PNG、JPEG-XR 和 JPEG-2000,二进制 alpha 通道被解释为域。对于 TIFF 文件,此外 具有 PhotometricInterpretation 的二进制 SubIFD = TransparencyMask 被解释为域。否则,生成的域 图像对象(= 矩阵的所有像素)被选为最大值。

对于 TIFF 图像,多页 TIFF 文件将作为图像对象返回 元组。仅读取 TIFF 文件中的子 IFD 时,才读取其尺寸 等于主图像的尺寸。

“int8”类型的图像只能在 64 位系统上读取。此外 只有 IMA 和 TIFF 格式支持此图像类型。

在当前目录和映像中搜索映像文件 HALCON 的目录(由环境变量确定)。这 HALCON 的映像目录预设为'.''/usr/local/halcon/images'在类 Unix 环境中,可以 通过运算符设置set_system.多张图片 可以指示目录。这是通过分离 用冒号表示的单个目录。

此外,可以通过环境变量设置搜索路径 HALCONIMAGES(与“image_dir”).例:

setenv HALCONIMAGES “/usr/images:/usr/local/halcon/images”

HALCON 还会搜索子目录中的图像“图像”(程序示例的图像)。这 环境变量 HALCONROOT 用于 HALCON 目录。

注意力

如果读取 CMYK 或 YCCK JPEG/JPEG-XR 文件,HALCON 会假定这些 文件遵循 CMYK 通道的 Adobe Photoshop 约定 是倒置存储的,即 0 表示 100% 的墨水覆盖率,而不是 比人们所期望的 0% 墨水。图像将转换为RGB 使用此约定的图像。如果 JPEG 文件不遵循此内容 约定,但以通常的方式存储 CMYK 通道,invert_image必须在读取图像后调用。

如果读取包含 alpha 通道的 PNG 图像,则 alpha 通道作为输出的第二或第四通道返回 图像,除非 Alpha 通道正好包含两个不同的灰度 值,在这种情况下,一个或三个通道图像具有 返回 domain,其中域中的点对应于 Alpha 通道中灰度值较高的点。

执行信息

  • 多线程类型:可重入(与非独占运算符并行运行)。
  • 多线程作用域:全局(可以从任何线程调用)。
  • 无需并行处理。

参数

Image(output_object)image(-array) 对象(字节 / 方向 / 循环 / int1 / 复数 / int2 / uint2 / vector_field / int4 / int8 / 实数)

阅读图像。

FileName(input_control)文件名.read(-array) (字符串)

要读取的图像的名称。

默认值:“ printer_chip/printer_chip_01”

建议值:“fabrik”、“保险丝”, 'mreut'、“multiple_dies_01”、“粒子”, 'patras'、“printer_chip/printer_chip_01”, 'rings_and_nuts'、'tooth_rim'

文件扩展名: ., ., ., ., .hobjimatiftiffgifbmpjpgjpegjp2jxrpngpcxrasxwdpbmpnmpgmppm

2.写入图片

处理好的图片需要保存的本地的,使用下面的这个算子保存到本地

write_image (Image3, 'tiff', 0, '')

第一个参数是需要保存的图像变量

第二个参数是保存到本地的图像的格式

第三个参数是没有像素值的像素应该填充为哪个灰度值

第四个参数是保存的路径和文件名

写入图片算子详解

write_image(操作员)

名字

write_image— 以图形格式编写图像。

签名

write_image(Image : : FormatFillColorFileName : )

描述

操作员保存输入图像write_imageImage在 文件FileName在格式中Format.如果域(区域) 不能保存在指定的Format('bmp'就是这种情况, 'jpeg' 和 'ima'),该区域外的所有像素都接收定义的颜色 由FillColor.对于灰度值图像,介于 0(黑色)和 必须通过255(白色)。对于 RGB 彩色图像,可以传递 RGB 值 直接作为十六进制值:例如,黄色背景的0xffff00 (红色=255,绿色=255,蓝色=0)。

目前支持以下格式:

'tiff', 'bigtiff': TIFF 格式,文件扩展名 *.tif

支持所有 HALCON 像素类型。最多 65535 个图像对象元组 图像对象和多达 65535 个通道可以写入。 可以写入具有混合像素类型通道的图像对象。

压缩是可能的

'放气 [num]':Adobe Deflate 压缩(无损)
'jpeg [num]':JPEG(有损)
'lzw'LZW(无损)
“包位”PackBits(无损)

这里“[数字]'表示压缩的可选规范 参数。为“放气”,介于 0 之间的数字(否 压缩)和 9(最大压缩)可以指定。为'jpeg'介于 0 和 100 之间的数字可以是 指定。语义与所描述的“jpeg”的语义相同 下面。'jpeg'只能用于 byte 和 int1 类型的图像 最多有四个通道。

每个图像对象的域(区域)可以通过压缩形式保存“面具”(默认设置)或作为额外的 Alpha 通道通过“阿尔法”.仅当域不包含完整的域时,才会存储该域 图像。'jpeg'“阿尔法”不能一起使用,因为 由于 JPEG 的有损压缩,图像的域不能 正确重建。不同的选项可以通过以下方式累积 附加用空格字符分隔的它们。

例子:

“TIFF 放气 9”:Adobe 矫模压缩,
如有必要,域将存储为掩码图像
'tiff JPEG 90':高质量的JPEG压缩,
如有必要,域将存储为掩码图像
'tiff lzw 阿尔法':LZW压缩,
如有必要,该域将存储为 Alpha 通道
“tiff”“没有”:无压缩,
如有必要,域将存储为掩码图像

请注意,“大夫”表示可以大于 4 GB,而“tiff”表示限制为 4 GB 的 TIFF 文件。 文件大小取决于图像大小和所选的压缩。 因此“大夫”如果有可能,应选择 压缩文件将增长到 4 GB 以上。

“bmp”: Windows-BMP 格式,文件扩展名 *.bmp

此格式只能存储具有一个通道的图像(灰度值图像) 或三个通道(RGB图像)。

仅支持具有像素类型字节的图像 文件格式。

“jpeg”:JPEG 格式(有损压缩),文件扩展名 *.jpg

与格式字符串一起确定压缩的质量值 可以提供费率,例如“JPEG 30”。

此格式只能存储具有一个通道的图像(灰度值图像) 或三个通道(RGB图像)。

仅支持具有像素类型字节的图像 文件格式。

注意:存储以供以后处理的图像不应 由于压缩过程中信息丢失,因此以此格式存储。

“jp2”:JPEG-2000 格式(无损和有损压缩),文件扩展名 *.jp2

与格式字符串一起确定压缩的质量值 可以提供费率(例如,'JP2 40').此值对应于 压缩图像大小与未压缩图像大小之比 图像(以百分比为单位)。由于无损 JPEG-2000 压缩已经减少了 文件大小显着,只有较小的值(通常小于 50) 影响文件大小。如果未为压缩提供任何值(和 只有这样),图像才会被压缩而不会丢失。

映像可以包含任意数量的通道。可能的类型有 Byte、Cyclic、Direction、Int1、Uint2、Int2 和 Int4。在 int4 的情况下,它 只能存储精度小于或等于 24 位的图像 (否则会引发异常)。如果图像具有缩小的 域被写入,区域存储为 1 位 alpha 通道。

请注意,图像的 JPEG-2000 编码需要大量内存。为 大图像,因此建议使用不同的格式(例如,“tiff”).支持的最大图像大小(宽 x 高) JPEG-2000 是也在 HALCON-XL 中。

'jpegxr':JPEG-XR 格式(无损和有损压缩),文件扩展名 *.jxr

与格式字符串一起确定压缩的质量值 可以提供速率,例如,“JPEGXR 30”(使用“JPEGXR”或“JPEGXR 100”表示 无损编码)。除 int8 之外的所有 HALCON 像素类型 受支持。具有任意数量的图像对象的图像对象元组 可以写。图像最多可以有 8 个通道。在 int4 和 真实图像,数值范围被压缩到 24 位精度。请注意, 无论质量设置如何,这都可能导致损失。 如果写入具有缩小域的图像,则该区域存储时没有 损失为 1 位 Alpha 通道。复杂图像、矢量场和常规图像 具有两个灰度值通道的图像填充了第三个空通道 符合标准。

请注意,您需要在当前工作中具有写入权限 目录,以便将图像保存为 JPEG-XR 格式,无论 目标目录。

“png”:PNG 格式(无损压缩),文件扩展名 *.png

与格式字符串一起,0 到 9 之间的压缩级别可以是 指定,其中 0 对应于无压缩,9 对应于最佳压缩 压缩。或者,可以使用 以下字符串:“最佳”,“最快”“无”. 因此,正确参数的示例是“png”,“png 7”, 和'png 无'.

byte 和 uint2 类型的图像可以存储在 PNG 文件中。如果图像具有 写入缩减域,该区域存储为 alpha 通道,其中 域内的点存储为 图像类型和域外的点存储为格雷值 0。 如果写入具有完整域的图像,则不会存储 Alpha 通道。

此格式只能存储具有一个通道的图像(灰度值图像) 或三个通道(RGB图像)。支持的最大图像大小 PNG 的(宽 x 高)为也在 HALCON-XL 中。

'hobj': HALCON 标志性物体 (HOBJ),文件扩展名 *.hobj

支持所有类型的 HALCON 映像。看write_object查看更多 有关 HOBJ 格式的信息。

'ima':HALCON 格式,文件扩展名 *.ima 和 *.exp

此文件格式现在是旧版,应改用 HOBJ 格式。 数据以二进制形式逐行写入(不带标题或回车 返回)。图像的大小和像素类型存储在 描述文件”FileName.exp“。所有 HALCON 像素类型,除了“复杂”“vector_field”可以写。 对于此格式,只能存储一个通道图像。

执行信息

  • 多线程类型:可重入(与非独占运算符并行运行)。
  • 多线程作用域:全局(可以从任何线程调用)。
  • 无需并行处理。

参数

Image(input_object)(multichannel-)image(-array) 对象(字节 / 方向 / 循环 / int1 / 复数 / int2 / uint2 / vector_field / int4 / int8 / 实数)

输入图像。

Format(input_control)字符串 (字符串)

图形格式。

默认值:“ tiff”

建议值:“tiff”、“TIFF 面具”、“tiff alpha”, 'tiff 放气 9', 'tiff deflate 9 alpha', 'tiff JPEG 90', 'tiff lzw', 'tiff lzw alpha '、“tiff packbits”, 'bigtiff'、《大人物面具》,“大夫阿尔法”, 'Bigtiff 放气 9'、“Bigtiff Deflate 9 Alpha”, 'Bigtiff JPEG 90', 'Bigtiff LZW', 'Bigtiff LZW 阿尔法 ',“Bigtiff PackBits”, 'bmp'、'jpeg', 'JPEG 100', 'JPEG 80', 'JPEG 60', 'JPEG 40', 'JPEG 20', 'JP2', 'JP2 50', 'JP2 40', 'JP2 30', 'JP2 20', 'jpegxr', 'JPEGXR 50', 'JPEGXR 40', 'JPEGXR 30', 'JPEGXR 20'、'png', 'png 最佳', 'png 最快', 'png 无', 'ima', 'hobj'

FillColor(input_control)数 (整数/实数)

填充不属于的像素的灰度值 到镜像域(区域)。

默认值:0

建议值:-1、0、255、65280、16711680

FileName(input_control)文件名.write(-array) (字符串)

图像文件的名称。

文件扩展名: ., ., ., ., ., ., .hobjimatiftiffbmpjpgjpegjp2jxrpng

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Python数据分析--pandas学习笔记】Python数据分析库pandas详细学习笔记(内容详细,适合小白入门),数据分析学习笔记

一,pandas教程 1-1 pandas 安装 1-1-1 使用 pip 安装 pandas: pip install pandas安装成功后,我们就可以导入 pandas 包使用: import pandas1-1-2 查看 pandas 版本 >>> import pandas >>> pandas.__version__ # 查看…

《向量数据库指南》为什么要研发 Milvus Cloud?

许多 AI 应用都需要借助向量相似性搜索的力量来分析处理文本、图像、声音和视频等众多非结构化数据。典型的此类 AI 应用包括聊天机器人、购物助手等。而这些应用,尤其是 RAG 应用的 AI 开发栈中最核心的部分就是用于存储和搜索 Embedding 向量的向量数据库。 虽然业…

【C++】STL中vector常见功能的模拟实现

前言:在上一篇中我们讲到了Vector的一些常见功能的使用方式,今天为了进一步的去学习Vector和能够更深度的去理解Vector的一些底层的原理。 💖 博主CSDN主页:卫卫卫的个人主页 💞 👉 专栏分类:高质量C学习 &…

自定义类型:结构体类型

在学习完指针相关的知识后将进入到c语言中又一大重点——自定义类型,在之前学习操作符以及指针时我们对自定义类型中的结构体类型有了初步的了解,学习了结构体类型的创建以及如何创建结构体变量,还有结构体成员操作符的使用,现在我…

[数据集][目标检测][数据集][目标检测]智能手机检测数据集VOC格式5447张

数据集格式:Pascal VOC格式(不包含分割的txt文件,仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数):5447 标注数量(xml文件个数):5447 标注类别数:1 标注类别名称:["phone"] 每个类别标注的框数&#xff…

WPF -> MVVM

1.1安装MVV MLight 打开 Visual Studio 2022。 在顶部菜单栏中选择“工具” -> “NuGet 包管理器” -> “程序包管理器控制台”。 在控制台中输入以下命令,并按回车键运行: Install-Package MvvmLightLibsStd104.等待安装完成后,你就…

man命令的作用

man命令是Linux操作系统中一个非常实用的命令,它用于查看命令的手册页面,帮助用户了解特定命令的用法、选项和参数。这不仅对新用户在学习如何使用新命令时很有帮助,也方便了经验丰富的用户快速查找命令的详细信息。以下是具体介绍&#xff1…

基于java18多端展示+ idea hbuilder+ mysql家政预约上门服务系统,源码交付,支持二次开发

基于java18多端展示 idea hbuilder mysql家政预约上门服务系统,源码交付,支持二次开发 家政预约上门系统是一种通过互联网或移动应用平台,为用户提供在线预约、下单、支付和评价家政服务的系统。该系统整合了家政服务资源,使用户能…

LeetCode 算法:无重复字符的最长子串c++

原题链接🔗:无重复字符的最长子串 难度:中等⭐️⭐️ 题目 给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度。 示例 1: 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所…

谷歌浏览器的平替,内置开挂神器,我已爱不释手!

油猴浏览器正式版是一款基于谷歌Chromium源码开发的浏览器,它集成了集成了强大的油猴扩展(Tampermonkey),使得用户可以轻松安装各种脚本,从而增强网页浏览体验。提供了一个更加个性化和高效的浏览体验。 油猴扩展&…

【Python网络爬虫】详解python爬虫中URL资源抓取

🔗 运行环境:PYTHON 🚩 撰写作者:左手の明天 🥇 精选专栏:《python》 🔥 推荐专栏:《算法研究》 #### 防伪水印——左手の明天 #### 💗 大家好🤗&#x1f91…

CS和msf的权限传递,利用mimikatz抓取win10明文密码

一、Cobaltstrike的安装 http://t.csdnimg.cn/yhZin 安装CobaltStrike,浏览博主的上篇文章即可!!! 这里我在自己的本机win11上执行了Client去连接kali中的Server端,直接执行.cmd文件即可!!&…

AI智能语音机器人系统如何对接科大讯飞接口

关于AI语音机器人的介绍有很多,但是由于商业化,没有一个能真正说明白的,当然,我们搭建的AI智能机器人系统也是商业化的,毕竟业务是做这方面的,但是价格绝对是公道的,废话不多说了,我…

C++vector及其实现

第一个参数是类型(可以是自定义也可以是内置类型) 相当于生成一个该类型的数组 allocator是空间配置器 遍历 1.下标遍历 2.迭代器遍历 3.范围for 对象访问 有名对象访问 匿名对象访问 隐式类型转换 成员函数 sort 使用sort需要包含头文件algorithm eg. sort的使用非…

QA 未能打开位于 D:/Computer999/Computer999.vbox 的虚拟电脑

前言 未能打开位于 xxx/Computer999.vbox 的虚拟电脑,并提示E_INVALIDARG (0X80070057),是最常见的一个错误,下面是解决办法。 内容 1、提示下面的错误,注册Computer999失败: 未能打开位于 D:/Computer999/Compute…

【刷题(15】普通数组

一 普通数组基础 首先&#xff0c;我们根据下图先了解一下什么是前缀和。 既然我们明白了前缀和是怎么回事&#xff0c;那我们就来看一下我们该怎么输入 先给出答案&#xff0c;然后再给出分析。 答案&#xff1a; for (int i 1; i < n; i ){cin >> a[i];s[i] s…

JVM之垃圾回收面试总结

文章目录 1.GC概述1.1 什么是垃圾1.2 为什么需要GC&#xff1f;1.3 早期垃圾回收1.4 Java垃圾回收机制1.5 评估GC的性能指标 2.垃圾回收相关算法2.1 垃圾标记阶段的算法2.1.1 引用计数算法(Java没有使用)2.1.2 可达性分析算法 2.2 垃圾清除阶段的算法2.2.1 标记-清除(Mark-Swee…

今在推特发一个推特立马推特账户被删除了

咨询 Google Contacts 是如何 获取我的苹果手机通讯录的电话号码清单的&#xff1f;不到一分钟&#xff0c;我的账户之间被删除了&#xff0c;比停用、冻结还令人可怕。 立马推特账户被删除了。

阿里云搭建物联网平台+MQTT.fx接入阿里云

文章目录 本篇介绍一、阿里云物联网平台搭建二 、MQTT客户端接入阿里云物联网平台总结 本篇介绍 本篇搭建了阿里云物联网平台&#xff0c;使用MQTT.fx接入阿里云&#xff0c;上传温湿度数据 使用到的软件&#xff1a;阿里云、MQTT.fx 一、阿里云物联网平台搭建 首先创建一个物…

Codeforces Round 949 (Div. 2)(A,B题解)

这场真是给我打的汗流浃背了&#xff0c;这场真的巨难&#xff08;可能是因为我二进制根本就没学好的原因吧&#xff09; 反正总共就搞了两道题&#xff0c;第一道题注重于思维&#xff0c;第二道题纯二进制&#xff0c;第三道题看着也是二进制&#xff08;最后时间不够了&…