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?: :?Format,?FillColor,?FileName?: )

描述

操作員保存輸入圖像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.pswp.cn/bicheng/20848.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/20848.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/20848.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

創建maven 項目

一、groupId, artifactId When creating a Maven project in IntelliJ IDEA, "groupId" and "artifactId" are two essential elements of the projects metadata. groupId: This typically identifies your project uniquely across all projects. For e…

C語言程序設計第二講:順序程序設計

一、數據類型 1. 基本數據類型 C語言中提供了一些基本數據類型,用于表示各種不同類型的數據: 整數類型: int:表示整數,通常占用4個字節。short int:表示短整數,通常占用2個字節。long int&am…

Pycharm 的使用

使用文檔: Getting started | PyCharm DocumentationPyCharm 中文指南 — PyCharm 中文指南(Win版) 2.0 documentation 在Ubuntu中安裝并配置Pycharm教程(安裝 Pycharm)Ubuntu安裝pycharm及快速創建pycharm的快捷方式,便于使用&am…

數據結構復習指導之交換排序(冒泡排序,快速排序)

目錄 交換排序 復習提示 1.冒泡排序 1.1基本思想 1.2算法代碼 1.3性能分析 2.快速排序 2.1基本思想 2.2算法代碼 2.3性能分析 交換排序 復習提示 所謂交換,是指根據序列中兩個元素關鍵字的比較結果來對換這兩個記錄在序列中的位置。 基于交換的排序算法很…

鏈表逆序用哨兵位頭節點

在C語言中實現鏈表的逆序&#xff0c;使用哨兵頭節點是一種常見的做法。哨兵頭節點可以簡化代碼邏輯&#xff0c;特別是當鏈表為空時&#xff0c;可以避免空指針異常。下面是一個使用哨兵頭節點逆序單鏈表的C語言實現 示例&#xff1a; #include <stdio.h> #include &l…

富格林:應用正規技巧阻撓被騙

富格林悉知&#xff0c;隨著如今入市現貨黃金的朋友愈來愈多&#xff0c;不少投資者也慢慢開始重視起提高自身的正規投資技巧&#xff0c;希望能阻撓被騙更高效地在市場上獲利。雖然目前黃金市場存在一定的受害風險&#xff0c;但只要投資者嚴格按照正規的交易規則來做單&#…

python解決flask啟動的同時啟動定時任務

業務場景描述&#xff1a;在常規的開發中&#xff0c;我們開發接口服務&#xff0c;一般會將數據放在數據庫、文件等第三方文件&#xff0c;啟動服務后&#xff0c;服務到后臺數據庫中加載數據&#xff0c;這樣做的好處當然是開發會更加便利以及數據的可復用性較高&#xff0c;…

深度學習-03-函數的連續調用

深度學習-03-函數的連續調用 本文是《深度學習入門2-自製框架》 的學習筆記&#xff0c;記錄自己學習心得&#xff0c;以及對重點知識的理解。如果內容對你有幫助&#xff0c;請支持正版&#xff0c;去購買正版書籍&#xff0c;支持正版書籍不僅是尊重作者的辛勤勞動&#xff0…

LLaMA-Factory推理實踐

運行成功的記錄 平臺&#xff1a;帶有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&#xff0c;但本地可…

51仿真器 PZ-51Tracker 未知設備

插上仿真器&#xff0c;右擊我的電腦 等待一下&#xff0c;選擇winUSB 此時在keil中選擇仿真器會報錯&#xff0c;需要安裝如下我是win10) 安裝好后退出再試&#xff0c;沒有報錯即可 這項也要選擇 另外配置晶振

MYSQL之存儲篇

MYSQL之存儲篇 存儲過程簡介存儲過程優點&#xff1a; MySQL的存儲過程MySQL存儲過程的創建1.格式2.聲明分割符3.參數4.變量5.注釋6.MySQL存儲過程的調用7. MySQL存儲過程的查詢8.MySQL存儲過程的修改9.MySQL存儲過程的刪除10. MySQL存儲過程的控制語句11.MySQL存儲過程的基本函…

mybatis配置環境流程

mybatis配置環境流程 為啥要用mybatis&#xff1a;通過Mybatis實現快速訪問后端pgsql、mysql等數據庫。 1.修改pom.xml&#xff0c;添加mybatis相關依賴 <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-s…

React + SpringBoot開發用戶中心管理系統

用戶中心項目搭建筆記 技術棧 前端技術棧 “react”: “^18.2.0”,ant-design-pro 后端技術棧 SpringBoot 2.6.x 項目源碼地址 https://gitee.com/szxio/user-center 前端項目搭建 快速搭建一個后端管理系統項目框架 初始化 antDesignPro 官網&#xff1a; https://…

Spel表達式使用案例

package com.example.demo.api;import com.example.demo.model.User; import lombok.extern.slf4j.Slf4j;<

CSS Web前端框架:深入剖析與應用實踐

CSS Web前端框架&#xff1a;深入剖析與應用實踐 在快速發展的Web技術領域&#xff0c;CSS Web前端框架已成為構建現代化、高效且響應式網頁的關鍵工具。它們不僅簡化了開發過程&#xff0c;還提高了代碼的可維護性和復用性。然而&#xff0c;面對眾多紛繁復雜的框架選擇&…

ByteBuddy字節碼增強器

Byte Buddy是java的字節碼增強器&#xff0c;一個優雅的運行時java代碼生成庫&#xff0c;使用時需要慎重 文檔地址&#xff1a;http://bytebuddy.net/#/tutorial-cn 1. 引入ByteBuddy <!-- https://mvnrepository.com/artifact/net.bytebuddy/byte-buddy --><depend…

LeetCode---哈希表

242. 有效的字母異位詞 給定兩個字符串 s 和 t &#xff0c;編寫一個函數來判斷 t 是否是 s 的字母異位詞。 注意&#xff1a;若 s 和 t 中每個字符出現的次數都相同&#xff0c;則稱 s 和 t 互為字母異位詞。 代碼示例&#xff1a; //時間復雜度: O(n) //空間復雜度: O(1) c…

Java生成PDF筆記整理

引入依賴, groupId:com.itextpdf, version:8.0.4, artifactId如下kernel,io,layout,forms創建pdf對象try(ByteArrayOutputStream outputStream new ByteArrayOutputStream()){PdfWriter writer new PdfWriter(outputStream, new WriterProperties().setFullCompressionMode(t…

離線安裝python庫

1. 下載安裝包 在聯網機器上安裝 # 選擇符合目標架構的版本&#xff0c;主要是libc版本和python版本 pip download --platformmanylinux2010_x86_64 --only-binary:all: --python-version3.7.4 tabulate # 或者 pip download --platformmanylinux_2_5_x86_64 --only-binary:a…

do...while循環

基本語法 while循環&#xff0c;是先判斷條件再執行。 do...while循環&#xff0c;是先斬后奏&#xff0c;先至少執行一次循環語句塊中的邏輯&#xff0c;再判斷是否繼續。 do {//do while 循環語句塊; } while (bool類型的值);注意&#xff1a;do...while語句&#xff0c;存…