HALCON初步:文件夹遍历,文件筛选,文件名拆分,图片读取及保存
【1】文件夹遍历
list_image_files ( : : ImageDirectory, Extensions, Options : ImageFiles)
ImageDirectory: 文件夹路径
Extensions: 文件扩展名,如'.bmp' '.jpg'
Options: 搜索选项
‘recursive’ 指定可以遍历文件夹下的文件 ‘follow_links’ 'max_depth 5' 指定遍历的深度 ImageFiles: 文件名数组,包含路径
注:另有list_files为遍历文件夹算子,可参照reference_hdevelop文档。
【2】文件筛选
tuple_regexp_select( : : Data, Expression : Selection)
Data: 文件名数组,包含路径
Expression: 文件筛选规则表达式
//. 转义 (bmp|JPG) 筛选的文件格式 ‘ignore_case’ 忽略大小写 Selection: 筛选出的文件名数组
【3】文件名拆分
parse_filename( : : FileName : BaseName, Extension, Directory)
Input parameters:
FileName: The input filename
Output parameters:
BaseName: The filename without directory description and file extension
Extension: The file extension
Directory: The directory path
- * 遍历文件夹
- list_image_files ('D:/Prostore/HDevelop/HDevelopTmp/images', 'default', [], ImageFiles)
- * 筛选bmp及jmp格式的图片
- tuple_regexp_select(ImageFiles, ['\\.(bmp|jpg)$','ignore_case'], ImageFiles)
- * 打开窗口
- dev_open_window (0, 0, 512, 512, 'black', WindowHandle1)
- * 依次读取所选图片并显示 在窗口中
- for Index := 0 to |ImageFiles| - 1 by 1
- read_image (Image, ImageFiles[Index])
- dev_display(Image)
- * 分割文件名
- parse_filename(ImageFiles[Index], BaseName, Extension, Directory)
- * 保存图片,给出路径及名称,新文件名为在原文件名后添加_adj
- dump_window(WindowHandle,'bmp',Directory + BaseName + '_adj')
- stop ()
- endfor
注:程序设计过程中所用的算子的详细解释可以参照reference_hdevelop文档,该文档在Halcon安装路径下的doc文件夹中,外部函数的详细解释可以在程序编辑器函数列表中找到,函数列表中默认是main函数。
编程学习步骤:
1. 学习HDevelop示例程序。(文件—浏览HDevelop示例程序,示例程序存储在C:\Users\Public\Documents\MVTec\HALCON-12.0\examples\hdevelop路径下)
2. 参考reference_hdevelop文档。(更多帮助文档可在安装路径下doc文件夹中找到,本人帮助文档在D:\ProgramFiles\MVTec\HALCON-12.0\doc下)
算子、外部函数查找及学习
1. 百度HALCON实现某功能的函数或者算子;
2. 猜测算子可能包含的单词,在算子窗口中输入检索词,查看检索结果中的算子或者函数。
3. 进一步了解算子或者函数的具体功能及参数意义:算子详解可以参照reference_hdevelop文档,函数详解可以在程序编辑器函数列表中找到相应函数,然后进入该函数。
HALCON初步:文件夹遍历,文件筛选,文件名拆分,图片读取及保存的更多相关文章
- python文件夹遍历,文件操作,获取文件修改创建时间
在Python中,文件操作主要来自os模块,主要方法如下: os.listdir(dirname):列出dirname下的目录和文件os.getcwd():获得当前工作目录os.curdir:返回当前 ...
- C#创建文件夹和文件
一.创建文件夹,例: if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } 二.创建文件,例: global::Syste ...
- C++ 获取文件夹下的所有文件名
获取文件夹下所有的文件名是常用的功能,今天再一次有这样的需求,所有就在网上查找了很多,并记下以供后用. 原文:http://blog.csdn.NET/cxf7394373/article/detai ...
- C/C++遍历文件夹和文件
本方法可用于windows和linux双平台,采用C/C++标准库函数. 库函数 包含头文件 #include 用到数据结构_finddata_t,文件信息结构体的指针. struct _findda ...
- 通过ftp同步服务器文件:遍历文件夹所有文件(含子文件夹、进度条);简单http同步服务器文件实例
该代码主要实现,指定ftp服务地址,遍历下载该地址下所有文件(含子文件夹下文件),并提供进度条显示:另外附带有通过http地址方式获取服务器文件的简单实例 废话不多说,直接上代码: 1.FTPHelp ...
- java基础 File与递归练习 使用文件过滤器筛选将指定文件夹下的小于200K的小文件获取并打印按层次打印(包括所有子文件夹的文件) 多层文件夹情况统计文件和文件夹的数量 统计已知类型的数量 未知类型的数量
package com.swift.kuozhan; import java.io.File; import java.io.FileFilter; /*使用文件过滤器筛选将指定文件夹下的小于200K ...
- [转]C++ 获取文件夹下的所有文件名
转自http://www.cnblogs.com/fnlingnzb-learner/p/6424563.html 头文件:#include<io.h> char * filePath = ...
- day18 时间:time:,日历:calendar,可以运算的时间:datatime,系统:sys, 操作系统:os,系统路径操作:os.path,跨文件夹移动文件,递归删除的思路,递归遍历打印目标路径中所有的txt文件,项目开发周期
复习 ''' 1.跨文件夹导包 - 不用考虑包的情况下直接导入文件夹(包)下的具体模块 2.__name__: py自执行 '__main__' | py被导入执行 '模块名' 3.包:一系列模块的集 ...
- python学习笔记(六)文件夹遍历,异常处理
python学习笔记(六) 文件夹遍历 1.递归遍历 import os allfile = [] def dirList(path): filelist = os.listdir(path) for ...
随机推荐
- UESTC794 Balloon Game 博弈
题目链接:Balloon Game 题目大意: Alice 和 Bob进行一个博弈游戏,他们要摆放气球,保证颜色一样的气球全部相邻出现,现在在一个序列中气球有一部分已经摆放,还有一些未摆放,用&quo ...
- postman简单使用
postman百度网盘下载地址:https://pan.baidu.com/s/1nuO2CGT 下载压缩后 打开chrome输入chrome://extensions/ 把文件拖到浏览器中 启动po ...
- Atcoder Beginner Contest 118
A: B +/- A 签到题. B: Foods Loved by Everyone 签到题. C: Monsters Battle Royale 怪物的血量一直两两相减,类似于辗转相减法. 可以证明 ...
- 20179223《Linux内核原理与分析》第十二周学习笔记
Return-to-libc 攻击实验 一.实验描述 缓冲区溢出的常用攻击方法是用 shellcode 的地址来覆盖漏洞程序的返回地址,使得漏洞程序去执行存放在栈中 shellcode.为了阻止这种类 ...
- WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则
只要你用 XAML 写代码,我敢打赌你一定用各种方式使(nuè)用(dài)过 Grid.不知你有没有在此过程中看到过 Grid 那些匪夷所思的布局结果呢? 本文将带你来看看 Grid 布局中的 Bu ...
- JavaScript年月日和时间戳互转
/** 一丶将日期单位转为时间戳 / 毫秒 **/ var str="2017年06月2日" var time = str.replace(/年/i,"-"). ...
- CnetOS7使用yum方式安装nginx
之前一直使用源码包安装,但是对于需要一直进行重新安装的测试环境来说安装起来还是过于麻烦了.今天搜索发现能够进行yum方式的安装,特此记录. 新建yum文件,yum源是nginx的官网. # vim / ...
- luarocks yum 安装引起的lapis lua 包查找问题(centos7版本)
备注: 大家在进行lapis 开发的时候有些人比较懒直接使用yum 按照luarocks,之后 使用luarocks 安装lapis 一般来说对于linux 64位的环境都会有些问题(包找 ...
- 什么是spark(二) RDD
其实你会发现很多概念都是基于RDD提出来的,比如分区,缓存这些操作的对象其实都是RDD:所以不要讲spark的分区,这其实很不专业,分区其实是属于RDD的概念(只有pair RDD才有分区概念) RD ...
- XAMPP服务器在局域网只能本机访问且无法用IP访问的解决办法 (转)
XAMPP服务器在局域网只能本机访问且无法用IP访问的解决办法 前几天安装了xampp for pc 1.7.4版本. 装好后在本地电脑通过https://localhost访问正常. 然后换了台电脑 ...