halcon进化日记-0725图像输入的方式

题目:0725图像输入的方式
作者:李黛色@千锤万凿出深山
功能:0725图像输入的方式

参考:

  1. Halcon一日一练:读取文件目录图像的三种方法

1-素材:

Halcon自带图片素材保存的位置(并非安装目录)
Documents\MVTec\HALCON-18.11-Progress\examples\images\

  1. 多张图片
  2. 视频
  3. 相机+镜头+光源

环境:halcon 24.11.1.0+win10

2-思路:
非实时

  1. 单张输入 read_image
  2. 多张输入 read_image+循环
  3. 视频输入 Halcon采集助手可转化代码

实时

  1. 📷相机halcon输入
  2. 📷相机SDK输入

或者

  1. 多相机输入
  2. 多相机异步输入
  3. 多相机同步输入

3-实操

非实时

  1. 单张输入 read_image

为什么会选择read_image这个算子呢?
思索了下,源于前辈的经验,前辈的经验怎么获取,视频、图书、源码,官方文档,此为知识输入的来源。

read_image算子,这是我敲下的第一个算子,希望以后敲下的算子都有如此心情。
算子-file-image-image-read_image
找到之后会自动插入文中如下,非实时代码-单张

点击运行或者f5会有图像显示,表明文件已经输入(或者文件已经采集进入系统)

🦔此为打通两个系统的关键

文件位于:
MVTec\docDATA\HALCON-24.11-Progress-Steady\examples\images\printer_chip

算子_readImage

非实时代码-单张
* read_image — Read an image with different file formats.
* read_image( : Image : FileName : )

* 官方自带实例 读取单张文件
read_image (Image, 'printer_chip/printer_chip_01')


  1. 多张输入 read_image+循环
非实时代码-多张
* 官方自带实例 读取三张文件用循环不?
* 还是copy 三次逻辑是一样这样不成立
read_image (Image1, 'printer_chip/printer_chip_01')
read_image (Image2, 'printer_chip/printer_chip_02')
read_image (Image3, 'printer_chip/printer_chip_03')

*三个相同元素为什么不写一个array?

* Reading 3 images into an image array(图像数组 image array)
* 读取软件自身携带的库图像文件,但是只显示第一个ic0,ic0为什么没加路径呢?这三张图在哪里
* 在这里 HALCON-24.11-Progress-Steady\examples\images

  read_image(Images,['ic0','ic1','ic2'])

方法2:文件命名统一:格式设定:‘name_number.imageform'

多张,方法2,copy-
for j:= 1 to 9 by 1

     read_image(Image,'fonts/arial_a'+J+'.png')//读取图像

     dev_display(Image)//显示图像

     stop()//暂停

endfor

方法3:tuple_enviroment

多张,方法3,copy
D:\MVTec\docDATA\HALCON-24.11-Progress-Steady\examples\images
tuple_environment('HALCONROOT',RootDir)//文件目录

DirName:=RootDir+'\images'

*打开文件设备

open_framegraber('File',-1,-1,-1,-1,'default',-,'default',-1,'default',DirName,'default',-1,-1,AcqHandle)

while(1)

      get_framegrabber_param(AcqHandle,'device',CurrentFileName)//设置图像设备对应的文件目录

      grab_image(Image,AcqHandle)//读取文件

endwhile

close_framegrable(AcqHandle)//关闭设备

算子注释:tuple_enviroment
读取一个或多个环境变量
第一个参数:输入字符元组
第二个参数:输出对应的空值元组

3没成功
自己写了方法4
tuple_regexp_select- 选择与正则表达式匹配的元组元素。

推荐方法4:用了正则表达式
list_files ('D:/MVTec/docDATA/HALCON-24.11-Progress-Steady/examples/images', ['files','follow_links'], Files)
* tuple_regexp_select (Files, '.*', Files)
* query_available_image_formats() check本halcon支持的图片格式
tuple_regexp_select (Files, ['\\.(tif|bmp|jpg|jpeg|png|gif)$','ignore_case'], Files)
for index := 0 to | Files| -1 by 1
    read_image(image,Files[index])
    dev_display(image)
endfor
  1. 视频输入 Halcon采集助手可转化代码

4-文件路径地址:

分析可以不看直接看截图,直接复制的地址不可用(红色),需要换方向或者转义

关闭系统默认的系统映像文件目录,设置为自己常用的文件目录(也可以不设)

所需算子:
set_system函数
地址格式需要理解

直接复制的文件格式

D:\MVTec\docDATA\HALCON-24.11-Progress-Steady\examples\images
到read_image(image,'')冒号里面
会提示
image

点击是之后

read_image (Image,'D:/MVTec/docDATA/HALCON-24.11-Progress-Steady/examples/images')

绝对地址的方式来读取指定的目录文件:
D:/MVTec/docDATA/HALCON-24.11-Progress-Steady/examples/images

image

总结:写不完了,上卷结束

posted @ 2025-07-25 14:48  黛色星霜  阅读(45)  评论(0)    收藏  举报