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

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

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

相关文章

数据结构复习指导之交换排序(冒泡排序,快速排序)

目录 交换排序 复习提示 1.冒泡排序 1.1基本思想 1.2算法代码 1.3性能分析 2.快速排序 2.1基本思想 2.2算法代码 2.3性能分析 交换排序 复习提示 所谓交换,是指根据序列中两个元素关键字的比较结果来对换这两个记录在序列中的位置。 基于交换的排序算法很…

python解决flask启动的同时启动定时任务

业务场景描述:在常规的开发中,我们开发接口服务,一般会将数据放在数据库、文件等第三方文件,启动服务后,服务到后台数据库中加载数据,这样做的好处当然是开发会更加便利以及数据的可复用性较高,…

深度学习-03-函数的连续调用

深度学习-03-函数的连续调用 本文是《深度学习入门2-自製框架》 的学习笔记,记录自己学习心得,以及对重点知识的理解。如果内容对你有帮助,请支持正版,去购买正版书籍,支持正版书籍不仅是尊重作者的辛勤劳动&#xff0…

LLaMA-Factory推理实践

运行成功的记录 平台:带有GPU的服务器 运行的命令 git clone https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory/ conda create -n py310 python3.10 conda activate py310由于服务器不能直接从huggingface上下载Qwen1.5-0.5B,但本地可…

51仿真器 PZ-51Tracker 未知设备

插上仿真器,右击我的电脑 等待一下,选择winUSB 此时在keil中选择仿真器会报错,需要安装如下我是win10) 安装好后退出再试,没有报错即可 这项也要选择 另外配置晶振

React + SpringBoot开发用户中心管理系统

用户中心项目搭建笔记 技术栈 前端技术栈 “react”: “^18.2.0”,ant-design-pro 后端技术栈 SpringBoot 2.6.x 项目源码地址 https://gitee.com/szxio/user-center 前端项目搭建 快速搭建一个后端管理系统项目框架 初始化 antDesignPro 官网: https://…

LeetCode---哈希表

242. 有效的字母异位词 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。 代码示例: //时间复杂度: O(n) //空间复杂度: O(1) c…

Common Lisp笔记

在计划学习函数式编程的时候,我一开始打算学习的是 F#。因为我朋友就是在 DTU 上的学,F# 就是 DTU(丹麦理工)开发的。但是由于 F# 和微软的 .NET 绑定,而在 macOS 上,目前版本的 .NET 的是有些问题的&#…

线性代数|机器学习-P3乘法和因式分解矩阵

文章目录 1. 矩阵分解2. S Q Λ Q T SQ\Lambda Q^T SQΛQT3. A U Σ V T AU\Sigma V^T AUΣVT4. A LU 分解5. 矩阵的四个子空间 1. 矩阵分解 目前我们有很多重要的矩阵分解,每个分解对应于多个前提条件,分解方法,分解后的形状会中如下&…

【Vue】v-for中的key

文章目录 一、引入问题二、分析问题 一、引入问题 语法: key属性 "唯一值" 作用:给列表项添加的唯一标识。便于Vue进行列表项的正确排序复用。 为什么加key:Vue 的默认行为会尝试原地修改元素(就地复用)…

马宝国和沈有容-UMLChina建模知识竞赛第5赛季第12轮

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 参考潘加宇在《软件方法》和UMLChina公众号文章中发表的内容作答。在本文下留言回答。 只要最先答对前3题,即可获得本轮优胜。 如果有第4题,第4题为附加题&am…

R语言ggplot2包绘制网络地图

重要提示&#xff1a;数据和代码获取&#xff1a;请查看主页个人信息&#xff01;&#xff01;&#xff01; 载入R包 rm(listls()) pacman::p_load(tidyverse,assertthat,igraph,purrr,ggraph,ggmap) 网络节点和边数据 nodes <- read.csv(nodes.csv, row.names 1) edges…

【Python技术】AI编程新手快速入门学习LangChain大模型框架

如果我们要搞AI智能体&#xff0c;普通人一般 借助腾讯元器、 coze、KIMI 或者其他大平台搞一搞&#xff0c;比如我配置的coze智能体在微信公众号聊天。 对于程序员来说&#xff0c;一言不合就喜欢搞代码。 前面文章也介绍了不少关于AI知识库问答&#xff0c;AIagent 不少开源…

指纹采集技术

目录 1.概述 1.1 捺印油墨采集 1.2 现场指纹提取 1.3 在线指纹采集 2. 指纹采集器的关键技术指标 2.1 采集面积 2.2 分辨率 2.3 图像质量 2.4 耐用性 1.概述 最早的指纹采集技术是油墨法&#xff0c;至少已经有上百年的历史。1990年代出现了活体指纹采集器&#xff0c…

大数据测试/ETL开发,如何造测试数据

相信很多的小伙伴&#xff0c;有些是大数据测试岗位&#xff0c;有些是ETL开发&#xff0c;都面临着如何要造数据的情况。 1&#xff0c;造数背景 【大数据测试岗位】&#xff0c;比较出名的就是宁波银行&#xff0c;如果你在宁波银行做大数据开发&#xff0c;对着需求开发完…

数学建模 —— 层次分析法(2)

目录 一、层次分析法&#xff08;AHP&#xff09; 二、构造比较判断矩阵 2.1 两两比较法 三、单准则下的排序及一致检验 3.1 单准则下的排序 3.2 一致性检验 四、层次总排序 4.1 层次总排序的步骤 4.2 总排序一致性检验 一、层次分析法&#xff08;AHP&#xff09; 方…

xdp、dpdk、rdma能在同一网卡上同时使用吗?

文心一言 XDP、DPDK和RDMA是三种不同的技术&#xff0c;它们各自在Linux网络性能优化中扮演了不同的角色。关于它们能否在同一网卡上同时使用&#xff0c;我们需要考虑以下几个方面&#xff1a; XDP&#xff08;eXpress Data Path&#xff09;&#xff1a; XDP是Linux内核提供…

SVM算法-非线性分类背后技术详解

引言 支持向量机&#xff08;SVM&#xff09;是一种强大的监督学习算法&#xff0c;广泛应用于分类和回归任务中。本文将详细介绍SVM算法在非线性分类任务中的应用&#xff0c;并通过代码示例来展示其背后的技术精髓。我们将分三大部分来展开&#xff0c;本部分将重点介绍SVM算…

【C++面试50题】

以下是针对C程序员面试可能遇到的一些问题&#xff0c;涵盖了从基础语法、面向对象、STL、内存管理、模板、异常处理、并发编程等多个方面。 ### 基础概念与语法 1. C与C的主要区别是什么&#xff1f; 2. 什么是构造函数和析构函数&#xff1f;它们何时被调用&#xff1f; 3. 什…

17、Spring系列-SpringMVC-请求源码流程

前言 Spring官网的MVC模块介绍&#xff1a; Spring Web MVC是基于Servlet API构建的原始Web框架&#xff0c;从一开始就已包含在Spring框架中。正式名称“ Spring Web MVC”来自其源模块的名称&#xff08;spring-webmvc&#xff09;&#xff0c;但它通常被称为“ Spring MVC…