新手在剛接觸Halocon時往往不明所以,而官方文檔上的解釋又讓初學(xué)者云里霧里,本文整理了halocon常用算子(庫函數(shù)),供開發(fā)者快速查閱。
一. 常規(guī)操作類
1.1 tuple_length()
tuple_length(Area0,len)
數(shù)組里元素的個數(shù)
1.2 tuple_find_first()
tuple_find_first(Area0,sMax,i)
找到第一個是sMax的,返回索引
1.3 tuple_gen_const()
創(chuàng)建數(shù)組 tuple_gen_const( : : Length, Const : Newtuple)
1.4 dev_open_window( )
dev_open_window( : : Row, Column, Width, Height, Background : WindowHandle)
dev_open_window打開一個新的圖形窗口,可以用來顯示images,regions和lines等圖形對象以及顯示輸出文本。
1.5 set_display_font()
set_display_font(:: WindowsHandle, Size, Font, Bold, Slant: )
用來設(shè)置當(dāng)前窗口字體屬性
WindowsHandle:將要設(shè)置字體窗口的窗口句柄
Size:字體大小
Font:字體名稱
Bold:粗體
Slant:斜體
1.6 dev_set_draw()
dev_set_draw( : : DrawMode : )
dev_set_draw定義region的填充模式。
如果DrawMode設(shè)置為’fill’,region顯示為填充,如果設(shè)置為’margin’,則只顯示輪廓。 在’margin’模式下,輪廓的外觀會受到dev_set_line_width,set_line_approx和set_line_style的影響。
二. 機(jī)器視覺操作類
2.1 read_image()
讀取圖片
2.2 get_image_size()
獲取圖片尺寸
2.3 intensity()
Regions (input_object) region(-array) → object
Regions in which the features are calculated.
計(jì)算特征的區(qū)域。
Region:輸入的被計(jì)算的區(qū)域
Image:輸入灰度圖
Mean:輸出區(qū)域的平均灰度值
Deviation:輸出區(qū)域內(nèi)灰度值的偏差(方差)。
2.4 zoom_image_factor()
zoom_image_factor(Image, ImageZoomed, 0.15, 0.125, ‘constant’)
高斯降采樣。
2.5 median_image()
median_image (Image, ImageMedian, ‘circle’, 2, ‘mirrored’)
Image:輸入圖像
ImageMedian:輸出圖像
參數(shù)3:掩碼的形狀 ‘circle’ 圓; ‘square’ 正方形
參數(shù)4: 掩碼半徑
參數(shù)5:邊界處理。建議值: ‘mirrored’, ‘cyclic’, ‘continued’, 0, 30, 60, 90, 120, 150, 180, 210, 240, 255
2.6 Gauss_filter()
gauss_filter (Image, ImageGauss, 9)
Image:輸入圖像
ImageGauss:輸出圖像
參數(shù)3:過濾器大小;建議值: 3, 5, 7, 9, 11
2.7 fft_generic()
空間域和頻域之間的轉(zhuǎn)換,主要有如下兩個關(guān)鍵算子rft_generic()、fft_generic()。
這兩個算子的共同點(diǎn):
1.這兩個算子都是進(jìn)行快速傅里葉變換的算子
2.這兩個算子都可以進(jìn)行空間域-》頻域和頻域-》空間域的變換,只需要針對參數(shù)Direction分別進(jìn)行選擇,‘to_freq’是進(jìn)行的是空間域-》頻域的變換,‘from_freq’是頻域-》空間域的變換。
3.rft_generic算子的輸入圖像是實(shí)值函數(shù),fft_generic的輸入圖像是復(fù)數(shù)函數(shù);從輸出的結(jié)果來看,rft_generic只需要計(jì)算和存儲了左半邊的復(fù)數(shù)圖像信息就可以了,因?yàn)橛野脒吺枪曹棇ΨQ的。因此從最終的輸出我們可以看到,只有左上和左下有DC成分。而fft_generic如果設(shè)定的是原點(diǎn)在左上角,那么就會在四個角上有DC成分。
4.fft_generic算子可以通過參數(shù)Mode設(shè)置原點(diǎn)的位置:如果設(shè)置的是’dc_edge’,那么原點(diǎn)在左上角;如果設(shè)置的是’dc_center’,那么就會將原點(diǎn)平移到中心位置。fft_generic算子一般會設(shè)置為’dc_center’。對于rft_generic算子,因?yàn)闆]有設(shè)置項(xiàng),所以默認(rèn)原點(diǎn)位置為左上角。
5.針對同一個圖像,進(jìn)行空間域-》頻域、頻域-》空間域的轉(zhuǎn)換的時候,如果使用的是rft_generic算子,那么兩個轉(zhuǎn)換就都使用該算子;如果使用的是fft_generic算子,那么兩個轉(zhuǎn)換也都使用該算子,在對同一個圖像進(jìn)行空間域和頻域的相互轉(zhuǎn)換時,不要交叉使用這兩個算子。
當(dāng)然,從空間域到頻域的轉(zhuǎn)換,也可以使用算子fft_image,這個算子也是快速傅里葉變換,其實(shí)際效果相當(dāng)于:
fft_generic(Image,ImageFFT,‘to_freq’,-1,‘sqrt’,‘dc_center’,‘complex’)
Image:輸入圖像
ImageFFT(out) :傅里葉變換輸入圖像
Direction:計(jì)算正向或反向變換?!畉o_freq’是空間域—>頻域的變換,ResultType一般選擇’complex’;‘from_freq’是頻域—>空間域的變換,ResultType一般選擇’byte’(灰度圖像)。
Norm:變換的歸一化因子
ResultType:輸出圖像的圖像類型,配合Direction參數(shù)設(shè)置
原理:其實(shí)gen_gauss_filter得到的濾波器,就是一個圖像,雖然是頻域?yàn)V波器,但是單純看物理意義,他就是一個圖像。與時域空間卷積核的物理意義是相同的。對這幅頻域圖進(jìn)行卷積(卷積過程與時域無差別),卷積之后圖像就產(chǎn)生了變化,比如外環(huán)得到減弱,內(nèi)環(huán)得到保留(高低通濾波器的效果),或者在某個方向上得到保留(gabor濾波器的效果),再還原到時域,發(fā)現(xiàn)跟原圖變化很大。
2.8 convol_fft()
頻域的乘法相當(dāng)于空間域的卷積:
convol_fft (ImageFFT, ImageGauss, ImageConvol)
一個重要的經(jīng)驗(yàn)結(jié)論:低頻代表圖像整體輪廓,高頻代表了圖像噪聲,中頻代表圖像邊緣、紋理等細(xì)節(jié)。
1.具有一定紋理特征的圖像,紋理可以理解為條紋,如布匹、木板、紙張等材質(zhì)容易出現(xiàn)。
2.需要提取對比度低或者信噪比低的特征。
3.圖像尺寸較大或者需要與大尺寸濾波器進(jìn)行計(jì)算,此時轉(zhuǎn)換至頻域計(jì)算,具有速度優(yōu)勢。因?yàn)榭臻g域?yàn)V波為卷積過程(加權(quán)求和),頻域計(jì)算直接相乘。
使用頻域進(jìn)行檢測,有兩個步驟是比較關(guān)鍵的:
1.一個是生成合適的濾波器;
2.一個是空間域和頻域之間的轉(zhuǎn)換。
2.9 sub_image()
sub_image(ImageMinuend , ImageSubtrahend : ImageSub : Mult , Add ??
ImageMinuend :輸入的被減圖像
ImageSubtrahend:減數(shù)圖像
ImageSub:結(jié)果圖像
Mult:乘數(shù)因子
Add:灰度補(bǔ)充值
2.10 binary_threshold()
自動全局閾值分割。
binary_threshold(Image : Region : Method, LightDark : UsedThreshold)
Image :要分割的圖像
Region :分割后的區(qū)域
Method:分割方法,提供了兩種方法:‘max_separability’和’smooth_histo’。這兩種方法只能用于具有雙峰直方圖的圖像
LightDark :提取暗背景還是亮背景
UsedThreshold:使用閾值
示例:
binary_threshold(Sub0, region, 'max_separability', 'dark', UsedThreshold)
從圖像中分割出
2.11 area_center()
area_center (region, A, Row, Column)
計(jì)算每個區(qū)域的面積 中心坐標(biāo)
2.12 select_shape()
select_shape(Regions: SelectedRegions: Features, Operation, Min, Max: )
借助形狀特征選擇區(qū)域。
Regions: 輸入?yún)^(qū)域元組
SelectedRegions:輸出滿足條件的區(qū)域元組
Features:輸入?yún)?shù)形狀特征(‘a(chǎn)nisometry’, ‘a(chǎn)rea’, ‘a(chǎn)rea_holes’, 'bulkiness’等)
Operation:輸入?yún)?shù)關(guān)系符(‘a(chǎn)nd’, ‘or’)如果features只是用一種特性那么此參數(shù)沒有意義
Min、Max:輸入?yún)?shù)下限上限值
示例:
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 1000, 99999)
選擇區(qū)域面積范圍
2.13 connection()
connection(Region, ConnectedRegions)
Region表示需要計(jì)算的輸入圖像區(qū)域
ConnectedRegions表示輸出圖像區(qū)域
示例:
connection (regions, ConnectedRegions)
對區(qū)域中的子連通集進(jìn)行操作。
2.14 closing_circle()
closing_circle(Region: RegionClosing : Radius)
Region:輸入?yún)^(qū)域
RegionClosing:輸出結(jié)果區(qū)域
Radius:輸入使用的圓形結(jié)構(gòu)的圓半徑 0.5 ≤ Radius ≤ 511.5 (lin)
使用圓形結(jié)構(gòu)元素來閉合一個區(qū)域。
示例:
closing_circle (RegionUnion, RegionClosing, 5)
使用圓形結(jié)構(gòu)元素來閉合一個區(qū)域,只要是在區(qū)域內(nèi)并且小于輸入圓形半徑的孔都會被閉合
2.15 overpaint_region()
color := [255,255,0]
*RGB紅色+綠色
*黃色
*用指定顏色填充指定區(qū)域
*Image:待繪制的圖像
*Region:待繪制的區(qū)域
*color:顏色
*margin:填充類型
-
'fill' 填充全部區(qū)域
-
'margin' 只填充邊界
示例:
overpaint_region (Image, Region, color, 'margin')
2.16 union1 ()
union1 (Region, RegionUnion)
將所有區(qū)域合并成一個區(qū)域。
參數(shù)1:要計(jì)算并集的區(qū)域
參數(shù)2:輸出區(qū)域
示例:
union1 (SelectedRegions, RegionUnion)
2.17 threshold()
threshold(Image : Region : MinGray, MaxGray : )
使用全局閾值分割圖像。
Image (input_object) :輸入圖像
Region (output_object) :閾值分割后Region
MinGray (input_control):設(shè)置的最小閾值(灰度值)
MaxGray (input_control) :設(shè)置的最大閾值(灰度值)
其中要滿足MaxGray >= MinGray
示例:
#全局閾值分割出兩個區(qū)域
threshold (Image, Region, [0, 107], [106, 255])
2.18 crop_part()
crop_part(Image : ImagePart : Row, Column, Width, Height : )
用來截取感興趣區(qū)域。
Image:原圖像
ImagePart:截取的圖像
Row、Column:圖像截取的起始點(diǎn)坐標(biāo)
Width、Height:截取圖像的寬、高
示例:
crop_part(Image,imgCut,100,100,1200,1200)
2.19 dual_threshold()
雙重閾值分割(適用于有符號圖像的閾值算子)。
dual_threshold(Image : RegionCrossings : MinSize, MinGray, Threshold : )
MinSize :分割出來的區(qū)域的最小面積(即分割出來的面積要大于MinSize);
MinGray :分割出來的區(qū)域?qū)?yīng)的原圖中圖像像素的最高灰度大于MinGray設(shè)定值。
threshold :灰度值小于閾值(或大于閾值)的區(qū)域被抑制;
dual_threshold算子的缺陷:它只能分割出灰度值高的亮區(qū)域,不能分割出灰度值低的暗區(qū)域
2.20 gen_circle_contour_xld()
gen_circle_contour_xld(ContCircle : Row, Column, Radius, StartPhi, EndPhi, PointOrder, Resolution ??
ContCircle:輸出輪廓
Row:輸入圓心的行坐標(biāo)
Column:輸入圓心的列坐標(biāo)
Radius:輸入圓的半徑
StartPhi:輸入起始點(diǎn)角度
EndPhi:輸入結(jié)束點(diǎn)的角度
PointOrder:輸入沿邊界的點(diǎn)序('negtive’負(fù)序, 'positive’正序)
Resolution:輸入相鄰輪廓點(diǎn)之間的距離(Resolution>=0.00001)
2.21 gen_gauss_filter()
gen_gauss_filter( : ImageGauss : Sigma1, Sigma2, Phi, Norm, Mode, Width, Height : )
ImageGauss(out) :生成的濾波器圖像
Sigma1:空域(像素域)中,高斯分布在濾波器主方向的標(biāo)準(zhǔn)差
Sigma2:空域(像素域)中,高斯分布在垂直于濾波器主方向的標(biāo)準(zhǔn)差。注:Sigma1和Sigma2確定空間域內(nèi)高斯函數(shù)的平滑量
Phi:濾波器在空間域的主要方向
Norm:濾波器的歸一化因子。注:如果使用fft_image和fft_image_inv進(jìn)行過濾,必須設(shè)置參數(shù)Norm = 'none’和Mode = ‘dc_center’(本文未使用)
Mode:頻率圖中心位置。注: 如果使用實(shí)值快速傅里葉變換算子rft_generic, 則Mode = ‘rft’ ;如果使用快速傅里葉變換算子fft_generic,則可以使用Mode = 'dc_edge’來提高效率
Width, Heigh:生成濾波圖像的寬、高
2.22 min_max_gray()
min_max_gray(Regions, Image :: Percent : Min, Max, Range)
Regions:輸入需要計(jì)算的區(qū)域
Image:輸入灰度圖像
Percent:輸入 低于(以上)絕對最高(最低)百分比 取值范圍:0 <= Percent && Percent <= 50、
Min:輸出最小灰度值、
Max:輸出最大灰度值、
Range:輸出灰度值范圍;
percent含義:區(qū)域面積乘以percent得到一個數(shù)a,然后用這個數(shù)a分別從最小灰度值和最大灰度值處向里截取a個像素點(diǎn),然后在剩下的像素點(diǎn)中取最小最大灰度值。
2.23 watersheds_threshold()
通過閾值實(shí)現(xiàn)圖像的分水嶺算法分割,是一種邊緣分割算法,比watersheds多了一步操作,即在得到初步的分水嶺分割結(jié)果之后,將灰度小于閾值的分水嶺合并。watersheds_threshold(Image : Basins:Threshold:)
Image :Image為輸入的圖像,一般為單通道圖像。如果前景目標(biāo)比較亮而背景比較暗,可以在導(dǎo)入圖像后使用invert_image 算子將圖像顏色進(jìn)行反轉(zhuǎn)。
Basins:Basins為輸出的盆地區(qū)域。
Threshold:Threshold為設(shè)置的灰度閾值。建議該值不要超過原圖的最大灰度,否則將無法提取出分水嶺,圖像整體將作為一個區(qū)域被提取出來。
2.24 watersheds()
watersheds( Image : Basins, Watersheds : : )
Image :Image為輸入的圖像,一般為單通道圖像。這里要注意,因?yàn)榕璧匾话阒傅氖腔叶戎档偷膮^(qū)域,所以如果前景目標(biāo)比較亮而背景比較暗,可以在導(dǎo)入圖像后使用 invert_image 算子將圖像顏色進(jìn)行反轉(zhuǎn)。
Basins:Basins為輸出的盆地區(qū)域。
Watersheds :Watersheds為輸出的分水嶺區(qū)域。一般一幅輸入圖像對應(yīng)一個分水嶺區(qū)域,而輸出的Basins區(qū)域則是多個區(qū)域的集合。
注意:如果圖像上包含過多的精細(xì)區(qū)域或者噪點(diǎn),輸出的區(qū)域數(shù)量將非常龐大,并影響算法的速度。
2.25 cooc_feature_image()
計(jì)算共生矩陣并導(dǎo)出其灰度值特征。
cooc_feature_image(Regions, Image : : LdGray, Direction : Energy, Correlation, Homogeneity, Contrast)
Direction:傳遞鄰域的方向,可選’mean’或者’angle’兩個方向
Energy:灰度共生矩陣各元素值的平方和
Correlation:輸出的相關(guān)性
Homogeneity:輸出的熵
Contrast:輸出的對比度
灰度共生矩陣
灰度共生矩陣定義為像素對的聯(lián)合分布概率,是一個對稱矩陣,它不僅反映圖像灰度在相鄰的方向、相鄰間隔、變化幅度的綜合信息,但也反映了相同的灰度級像素之間的位置分布特征,是計(jì)算紋理特征的基礎(chǔ)。
在計(jì)算得到共生矩陣之后,往往不是直接應(yīng)用計(jì)算的灰度共生矩陣,而是在此基礎(chǔ)上計(jì)算紋理特征量,我們經(jīng)常用反差、能量、熵、相關(guān)性等特征量來表示紋理特征。
(1) 反差:又稱為對比度,度量矩陣的值是如何分布和圖像中局部變化的多少,反應(yīng)了圖像的清晰度和紋理的溝紋深淺。紋理的溝紋越深,反差越大,效果清晰;反之,對比值小,則溝紋淺,效果模糊。
(2)能量:是灰度共生矩陣各元素值的平方和,是對圖像紋理的灰度變化穩(wěn)定程度的度量,反應(yīng)了圖像灰度分布均勻程度和紋理粗細(xì)度。能量值大表明當(dāng)前紋理是一種規(guī)則變化較為穩(wěn)定的紋理。
(3)熵:是圖像包含信息量的隨機(jī)性度量。當(dāng)共生矩陣中所有值均相等或者像素值表現(xiàn)出最大的隨機(jī)性時,熵最大;因此熵值表明了圖像灰度分布的復(fù)雜程度,熵值越大,圖像越復(fù)雜。
(4)相關(guān)性:也稱為同質(zhì)性,用來度量圖像的灰度級在行或列方向上的相似程度,因此值的大小反應(yīng)了局部灰度相關(guān)性,值越大,相關(guān)性也越大。
2.26 gray_range_rect()
重置某個方形區(qū)域內(nèi)的灰度值,計(jì)算方形區(qū)域內(nèi)的最大最小灰度的差(最大-最小),并體現(xiàn)到每個圖像點(diǎn)上。如果MaskHeight和MaskWidth是偶數(shù),它們被變?yōu)榭拷男〉钠鏀?shù)值,圖像邊緣的灰度值是呈鏡像出現(xiàn)的。
gray_range_rect( Image : ImageResult : MaskHeight, MaskWidth: )
Image(in):被計(jì)算灰度值的圖像
ImageResult(out):包含灰度值的圖像
MaskHeight(in):濾波器掩模的高度
MaskWidth(in):濾波器掩模的寬度
2.27 gen_gabor()
gen_gabor(ImageFilter : Angle,F(xiàn)requency, Bandwidth, Orientation, Norm, Mode, Width, Height ??
ImageFilter
Angle
Frequency
Bandwidth
Orientation
Norm
Mode
Width
Height
2.28 mean_curvature_flow()
mean_curvature_flow(Image : ImageMCF : Sigma, Theta, Iterations : )
Image (input_object) (multichannel-)image(-array) → object (byte / uint2 / real)
Input image.
ImageMCF (output_object) Output image.
Sigma (input_control)
Smoothing parameter for derivative operator.
Default value: 0.5
Restriction: Sigma >= 0
Theta
Time step.
Default value: 0.5
Iterations (input_control)
Number of iterations.
Default value: 10
Suggested values: 1, 5, 10, 20, 50, 100, 500
Restriction: Iterations >= 1
2.29 texture_laws()
texture_laws(Image : ImageTexture : FilterTypes, Shift, FilterSize : )
Image:原始圖像;
ImageTexture:經(jīng)過紋理濾波器濾波后的圖像;
FilterTypes:濾波器的類型;
Shaft:濾波后圖像的灰度縮放系數(shù),具體實(shí)現(xiàn)公式未知,實(shí)際使用過程中降低了濾波后圖像的灰度,使得使用不同濾波器類型的濾波后圖像具有可比性;
FilterSize:濾波器尺寸,可選3,5,7。
示例:
texture_laws (MreutHill, SS, 'ss', 0, 5)
texture_laws (MreutHill, EE, 'ee', 2, 5)
濾波向量l增強(qiáng)濾波方向的圖像的亮度。濾波向量e檢測了濾波方向上的突變(即邊緣,高頻區(qū)域)。濾波向量s同樣檢測了濾波方向上的突變(與濾波向量e檢測方法不一樣)。
一般來說,可以選擇濾波向量中的 “l(fā)”, “e”, “s”, “r”, “w”, "o"與濾波向量"l"組合來增強(qiáng)圖像的低頻部分,或者與濾波向量"o"組合來增強(qiáng)圖像的高頻部分。
濾波器類型的第二個字母"l", “e”, “s”, “r”, “w”, "o"依次檢測圖像低頻部分到高頻部分。例如,濾波器"le"檢測圖像 中相對低頻的部分,而濾波器"ls"檢測圖像中相對高頻的部分。
2.30 bilateral_filter()
bilateral_filter(Image, ImageJoint : ImageBilateral : SigmaSpatial, SigmaRange, GenParamName, GenParamValue : )
- Image和ImageJoint必須具有相同的大小和類型。
- ImageBilateral :bilateral_filter使用引導(dǎo)圖像ImageJoint對輸入圖像執(zhí)行聯(lián)合雙邊濾波,并將結(jié)果返回ImageBilateral 。
- SigmaSpatial定義了濾波器掩模的大小,并與常規(guī)高斯濾波器的標(biāo)準(zhǔn)差相對應(yīng)。值越大,過濾器的影響范圍越大,保留的細(xì)節(jié)越少。
- SigmaRange用于根據(jù)當(dāng)前像素周圍ImageJoint的像素修改過濾器掩碼。
- GenParamName和GenParamValue當(dāng)前可用于控制精度和速度之間的權(quán)衡。
2.31 mean_image()
功能:進(jìn)行均值濾波,對輸入圖像的灰度值執(zhí)行線性平滑。
mean_image(Image: ImageMean : MaskWidth, MashHeight ??
Image: 輸入圖像
ImageMean:輸出圖像
MaskWidth:輸入平滑蒙版寬度,默認(rèn)9,參考3,5,7,9,11…
MaskHeight:輸入平滑蒙版高度,默認(rèn)9,參考3,5,7,9,11…
2.32 dyn_threshold()
dyn_threshold(OrigImage, ThresholdImage : RegionDynThresh : Offset, LightDark : )
dyn_threshold的特點(diǎn):
-
它是一種局部閾值算子
-
它通過平均圖像灰度來確定局部領(lǐng)域
-
它使用前需要指定一個圖像濾波器,例如mean_image
濾波尺寸>被提取物體的直徑較好。
如果濾鏡掩碼的尺寸太大,那么相鄰非常近的物體將會連在一起。
使用濾波掩碼寬度推薦2*D+1,其中D為物體直徑。
-
它選出的所有像素要比局部領(lǐng)域要黑,也就是比均值濾波后的圖像要黑。
2.33 create_ncc_model()
使用圖像創(chuàng)建NCC匹配模板:
create_ncc_model(template模板圖像::numlevels最高金字塔層數(shù),anglestart開始角度,angleextent角度范圍,anglestep旋轉(zhuǎn)角度步長,metric物體極性選擇:modelID生成模板ID)
2.34 find_ncc_model()
搜索NCC最佳匹配:
find_ncc_model(image要搜索的圖像::modelID模板ID,anglestart與創(chuàng)建模板時相同或相近,angleend與創(chuàng)建模板時相同或相近,minscore最小分值,nummatches匹配目標(biāo)個數(shù),maxoverlap最大重疊比值,subpixel是否亞像素級別,numlevel金字塔層數(shù):row,column,angle匹配得到的坐標(biāo)角度,score匹配得到的分值)
2.35 create_shape_model()
使用圖像創(chuàng)建形狀匹配模型:
create_shape_model(template模板圖像::numlevels最高金字塔層數(shù),anglestart開始角度,angleextent角度范圍,anglestep旋轉(zhuǎn)角度步長,optimization優(yōu)化選項(xiàng),是否減少模板點(diǎn)數(shù),metric匹配度量極性選擇,contrast閾值或滯后閾值來表示對比度,mincontrast最小對比度:modelID生成模板ID)
2.36 get_shape_contours()
獲取形狀模板的輪廓:
get_shape_contours(:modelcontours得到的輪廓XLD:modelID輸入模板ID,level對應(yīng)金字塔層數(shù);)
2.37 find_shape_model()
尋找單個形狀模板最佳匹配:
find_shape_model(image要搜索的圖像::modelID模板ID,anglestart開始角度,angleextent角度范圍,minscore最低分值,nummatches匹配實(shí)例個數(shù),maxpverlap最大重疊,subpixel是否亞像素精度,numlevels金字塔層數(shù),greediness搜索貪婪度,為0時安全但是速度慢;當(dāng)為1時速度快但不穩(wěn)定:row,column,angle,score獲得的坐標(biāo)角度縮放和匹配分值)
2.38 inspect_shape_model()
根據(jù)金字塔層數(shù)和對比度檢查要生成的模板是否合適:
inspect_shape_model(image輸入的圖像:modelimages獲得金字塔圖像,modelregions模板區(qū)域:numlevels金字塔層數(shù),contrast對比度)
2.39 create_shape_model()
使用圖像創(chuàng)建形狀匹配模型:
create_shape_model(template模板圖像::numlevels最高金字塔層數(shù),anglestart開始角度,angleextent角度范圍,anglestep旋轉(zhuǎn)角度步長,optimization優(yōu)化選項(xiàng),是否減少模板點(diǎn)數(shù),metric匹配度量極性選擇,contrast閾值或滯后閾值來表示對比度,mincontrast最小對比度:modelID生成模板ID)
2.40 get_shape_contours()
獲取形狀模板的輪廓:
get_shape_contours(:modelcontours得到的輪廓XLD:modelID輸入模板ID,level對應(yīng)金字塔層數(shù))
2.41 create_shape_model()
Template : : //reduce_domain后的模板圖像
NumLevels ,//金字塔的層數(shù),可設(shè)為“auto”或0—10的整數(shù)
AngleStart ,//模板旋轉(zhuǎn)的起始角度
AngleExtent ,//模板旋轉(zhuǎn)角度范圍, >=0
AngleStep ,//旋轉(zhuǎn)角度的步長, >=0 and <=pi/16
Optimization ,//設(shè)置模板優(yōu)化和模板創(chuàng)建方法
Metric , //匹配方法設(shè)置
Contrast ,//設(shè)置對比度
MinContrast ??/設(shè)置最小對比度
ModelID ) //輸出模板句柄
2.42 invert_image()
invert_image (Image, ImageInvert)
*圖像取反:g’=255-g
Image:輸入圖像
ImageInvert:保存取反后的圖像
2.43 add_image()
add_image(ImageMinuend , ImageSubtrahend , ImageSub, Mult , Add)
ImageMinuend:被加圖像,
ImageSubtrahend :加數(shù)圖像,
ImageSub:結(jié)果圖像,
Mult :乘數(shù)因子,
Add:補(bǔ)充值
2.44 draw_circle ()
draw_circle (WindowHandle, Row, Column, Radius)
WindowHandle:窗口句柄
Row:保存圓心Row–>y坐標(biāo)
Column:保存圓心Col–>x坐標(biāo)
Radius:保存半徑
*鼠標(biāo)左鍵畫圓,右鍵結(jié)束
*注意:右鍵結(jié)束后,窗口中不會畫出圓
2.45 reduce_domain ()
reduce_domain ( Image, Region : ImageReduced : ??
Image是輸入的圖像;
Region是輸入的區(qū)域;
ImageReduced是輸出的圖像,是Image中Region的那部分圖像。
2.46 create_template()
create_template(Template : : FirstError, NumLevel, Optimize, GrayValues : TemplateID)
Template (input_object) 單通道圖像-對象(字節(jié))
輸入圖像,其域?qū)⒈惶幚碛糜谀J狡ヅ洹?/p>
FirstError (input_control) integer → (integer)
Not yet in use.
Default value: 255
List of values: 255
NumLevel (input_control) 整數(shù)-(整數(shù))
金字塔級別的最大數(shù)目。
默認(rèn)值:4
價值表:1, 2, 3、4, 5, 6、7, 8, 9、10
Optimize (input_control) 字符串(字符串)
一種優(yōu)化。
默認(rèn)值:‘sort’
價值列表: ‘none’, ‘sort’
GrayValues(輸入控制)字符串(字符串)
一種灰度值。
默認(rèn)值:‘original’
價值列表: ‘gradient’, ‘normalized’, ‘original’, ‘sobel’
“梯度”、 “標(biāo)準(zhǔn)化”、 “原始”、“索貝爾”
TemplateID (output_control) 模板:(整數(shù))模板編號。
2.47 best_match()
best_match(Image : : TemplateID, MaxError, SubPixel : Row, Column, Error)
singlechannelimage(-array) → 輸入圖像。
TemplateID (input_control) template → 模板編號
MaxError (input_control) real → (real) 灰度值的最大平均差。
SubPixel (input_control) string → (string) 'true’情況下的亞像素精度。
Row (output_control) point.y(-array) → (real) 最佳匹配的行位置。
Column (output_control) point.x(-array) → (real) 最佳匹配的列位置。
Error (output_control) real(-array) → (real) 最佳匹配灰度值的平均散度。
2.48 add_channels()
add_channels(Regions, Image : GrayRegions : : )
Regions (input_object) region(-array) → object
輸入?yún)^(qū)域(沒有像素值)。
Image (input_object) (multichannel-)image → object (byte / direction / cyclic / int1 / int2 / uint2 / int4 / int8 / real / complex / vector_field)
輸入具有區(qū)域像素值的圖像。
GrayRegions (output_object) image(-array) → object (byte / direction / cyclic / int1 / int2 / uint2 / int4 / int8 / real / complex / vector_field)
輸出具有區(qū)域和像素值的圖像(每個輸入?yún)^(qū)域一個圖像)。
元素?cái)?shù)量: Regions == GrayRegions文章來源:http://www.zghlxwxcb.cn/news/detail-810465.html
2.49 pow_image()
pow_image(Image : PowImage : Exponent : )
對圖像做伽馬為Exponent的指數(shù)變換
指數(shù)變換映射關(guān)系與對數(shù)變換的不同之處在于,指數(shù)變換可以根據(jù)伽馬Exponent 的不同取值有選擇性地增強(qiáng)低灰度區(qū)域的對比度或是高灰度區(qū)域的對比度文章來源地址http://www.zghlxwxcb.cn/news/detail-810465.html
到了這里,關(guān)于Halcon常用算子(庫函數(shù))整理的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!