halcon列程详细介绍-V1.3
从文件夹中遍历图片(用到的算子及实例)
1)list_files(::Directory,Options:Files)
功能:列出目录中的所有文件
参数列表:
第1个参数Directory为输入变量,需要列出的目录名字,即输入目录地址;
第2个参数Options为输入变量,默认值为files,建议值有:‘files’, ‘directories’, ‘recursive’, ‘follow_links’, ‘max_depth 5’(遍历深度), ‘max_files 1000’(最大读取文件个数);
第3个参数Files为输出变量,读取的文件。
举例:list_files (‘F:\图片管理’, [‘files’,‘follow_links’], ImageFiles)
2)tuple_regexp_select( : : Data, Expression : Selection)
第1个参数Data为输入变量,指的是文件名数组;
第2个参数Expression为输入变量,输入的是文件筛选规则表达式,//.指的是转义,(bmp|JPG)指的是筛选的文件格式,‘ignore_case’是指忽略大小写;
第3个参数Selection为输出变量,指的是筛选出的文件名数组。
举例:tuple_regexp_select(ImageFiles, [‘\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|hobj)$’,‘ignore_case’], ImageFiles)
从文件夹中遍历图片的实例:
list_files ('F:\\图片管理', ['files','follow_links'], ImageFiles)
tuple_regexp_select(ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|hobj)$','ignore_case'], ImageFiles)
for Index:=0 to |ImageFiles|-1 by 1read_image(Image, ImageFiles[Index])stop()
Endfor
频率域滤波及相关频率域转换算子(如傅里叶正逆变换)
1)gen_lowpass( : ImageLowpass : Frequency, Norm, Mode, Width, Height : )
功能:生成一个理想的低通滤波器
参数列表:
第一个参数ImageLowpass为输出变量,指的是输出的理想低通滤波器;
第二个参数Frequency为输入变量,指的是截止频率,决定了生成滤波图像中间白色椭圆区域的大小,频率越大,则表示原点到截止频率确定的距离越大,可以滤除截止频率以外的高频分量,范围在0-1之间;
第三个参数Norm为输入变量,指的是滤波器归一化因子,有none和n模式选择;
第四个参数Mode为输入变量,指的是频率图中心位置,有’dc_center’, ‘dc_edge’, 'rft’三种模式选择,前两种分别代表中心和边缘模式,可与fft_generic算子搭配使用。第三种rft必须与rft_generic算子搭配使用;
第五个参数Width为输入变量,指的是生成滤波图像宽;
第六个参数Height为输入变量,指的是生成滤波图像高。
2)fft_generic(Image : ImageFFT : Direction, Exponent, Norm, Mode, ResultType : )
功能:计算一个图像的快速傅里叶变换图。
参数列表:
第一个参数Image为输入变量,指的是输入图像;
第二个参数ImageFFT为输出变量,指的是生成的傅里叶频率图;
第三个参数Direction为输入变量,指的是图像变换方向,有from_freq’和 'to_freq’两种模式选择,分别代表从频域变换到空域和从空域变换到频域;
第四个参数Exponent为输入变量,指的是指数,有1和-1两种模式可选,但1代表?,-1代表?;
第五个参数Norm为输入变量,指的是归一化因子,有 ‘n’, ‘none’, ‘sqrt’三种模式可选,但从经验上感觉使用效果差不多;
第六个参数Mode为输入变量,指的是频率图中心位置,有’dc_center’, ‘dc_edge’两种模式选择,分别代表中心和边缘模式;
第七个参数ResultType 为输入变量,决定输出图像的类型,有’byte’, ‘complex’, ‘cyclic’, ‘direction’, ‘int1’, ‘int2’, ‘int4’, ‘real’, ‘uint2’等多种类型,常用的有’byte’,‘complex’,'real’这三种。其中’complex’用于时域变换到频域较多,'byte’和’real’用于频域变换到时域较多。
3)convol_fft(ImageFFT, ImageFilter : ImageConvol : : )
功能:在频域内用一个滤波器卷积一个图像。
参数列表:
第一个参数ImageFFT为输入变量,指的是输入图像,一般为傅里叶变换后的频率域图像;
第二个参数ImageFilter为输入变量,指的是输入的滤波器图像,其图像的宽高必须与输入图像的宽高一致;
第三个参数ImageConvol为输出变量,指的是卷积后的频域图像。
4)gen_gabor( : ImageFilter : Angle, Frequency, Bandwidth, Orientation, Norm, Mode, Width, Height : )
功能:生成一个gabor滤波器(其核本质上就是一个正弦滤波器乘以一个高斯滤波器)。
参数列表:
第一个参数ImageFilter 为输出变量,指的是生成的gab