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