3.4 图像读取、显示和转换

基本流程:

 

 

用到的算子(以及算子中的重要参数释义):

算子菜单的方式

算子

    -Image

             -read_image()

 

read_image (Image, 'printer_chip/printer_chip_01')

    默认为读取一幅示例图像,支持多种图像格式,详见help

  

查询帮助可知,该算子可以从本地文件读取一幅图像到变量image中或者读取多张到变量images中,也可以设置搜索路径

* Reading an image:
  read_image(Image,'mreut')

* Reading 3 images into an image array:
  read_image(Images,['ic0','ic1','ic2'])

* Setting of search path for images on '/mnt/images' and '/home/images':
  set_system('image_dir','/mnt/images:/home/images')

快捷键

Ctrl+R打开一个读取图像的窗口,从中选择图像和设置变量(默认用图像文件名为变量名)

 

一个实例

read_image (Image, 'printer_chip/printer_chip_01')
read_image (Linux, 'C:/Users/Administrator/Pictures/Linux.png')

 

扩展与思考

如何将某目录下的所有图像读取到一个数组中,假设该目录下图像数量不固定

解析

利用采集助手批量读取文件夹下所有图像

代码生成——插入代码,如下:

* Image Acquisition 01: Code generated by Image Acquisition 01
list_files ('C:/Users/Administrator/Pictures', ['files','follow_links'], ImageFiles)
tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles)
for Index := 0 to |ImageFiles| - 1 by 1
    read_image (Image, ImageFiles[Index])
    * Image Acquisition 01: Do something
endfor

用到的算子有list_files,tuple_regexp_select,read_image

其中,list_files列出给定目录下的所有文件,放到ImageFiles变量中(这里files限制了只列出指定目录下的文件,而不递归列出子目录文件,详见帮助);tuple_regexp_select筛选符合条件的/指定格式的文件

参数ignore_case表示忽视大小写;|ImageFiles|表示数组长度;ImageFiles[Index]表示数组元素引用,下标从0开始;图像格式后面的美元符号$表示什么?

 

现象:即便目录下有多张图像,但是图像窗口和变量窗口只显示最后读取的一幅

变量监视窗口显示可读取的所有图像数量

实际我的目录下有如下图像

可见jtif格式未被读取,因为正则表达式过滤筛选时为(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj),没有jtif格式。

问题

如何将支持格式的所有图像全部用新窗口显示出来?【用助手可生成代码,当然也可以自己写】

通过查阅资料(教材),显示图像的步骤基本为:

关闭窗口/清除窗口(防止显示多余的图像出来,比如我没有清除/关闭打开的图像显示窗口,则执行时多显示一次已经打开的图像)

获取图像宽高(为了设置窗口大小用,那么如何新建一个根据图像大小自动调整大小的窗口呢?用dev_resize_window_fit_image(Image,0,0,-1,-1)或者dev_resize_window_fit_size(0,0,Width,Height,-1,-1)均可

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值