Region特征分為三部分
(1)基礎特征:region面積,中心,寬高,左上角右下角坐標,等效橢圓長半軸短半軸方向,洞數及其面積,粗糙度,聯通數,最大半徑等。
(2)開關特征:外接圓半徑,內接圓半徑,圓度,緊密度,長度,矩形度,凸型,偏心率,蓬松度,外接矩形的方向和兩邊長度等。
(3)幾何矩特征:二階矩,三階矩,主慣性軸等。
region_features(Regions : : Features : Value) * 計算Region指定特征
select_shape(Regions : SelectedRegions : Features, Operation, Min, Max : ) * 利用形狀特征選取指定Region
注意:
tuple數組下標由0開始,圖像變量數組下標由1開始。
1.gen_region_points
功能:生成像素坐標指定的region
2.gen_region_line
功能:生成像素坐標指定的線
3.get_region_points
功能:獲得區域region的像素點坐標
4.intersection
功能:獲得兩個區域region的交集
5.orientation_region
功能:獲得區域region的方向
* X軸逆時針旋轉與等效橢圓中心線的夾角為正角度 * X軸順時針旋轉與等效橢圓中心線的夾角為負角度
* 輪廓最遠點列坐標小於中心列坐標,選擇大於零的角度
* 輪廓最遠點列坐標大於中心列坐標,選擇小於零的角度
6.union2
功能:合並兩個區域region為一個region
7.distance_pr
功能:計算點到區域的最遠距離和最近距離
8.distance_pl
功能:計算點到線的距離(點到線的投影距離)
9.distance_ps
功能:計算點到線段的最遠距離和最近距離
10.distance_pp
功能:計算點到點的歐幾里得距離
11.distance_rr_min
功能:計算region到region最近距離和對應的最近點(歐幾里得距離)
12.distance_lr
功能:計算線到region的最遠距離和最近距離
13.distance_pc
功能:計算點到輪廓(XLD)的最遠距離和最近距離
14.distance_sr
功能:計算線段到區域的最遠距離和最近距離
distance_p** 表示點到**的距離 distance_l** 表示直線到**的距離 distance_s** 表示線段到**的距離 distance_rr** 表示region到region的距離 distance_cc** 表示xld到xld的距離
15.move_region
功能:移動區域
16.select_region_point
功能:選擇包括已給點的所有區域
17.skeleton(Region : Skeleton : : )
功能:計算區域的骨架,骨架是由目標內所有內切圓盤的圓心組成

18.junctions_skeleton
功能:獲得骨架區域的交叉點和端點
19.gen_grid_region
功能:生成網格/點區域
20.projection_pl
功能:計算點到直線的投影
21.saddle_points_sub_pix
功能:圖像亞像素鞍點檢測
* 在矩陣中,一個數在所在行中是最大值,在所在列中是最小值則被稱為鞍點。 * 在圖像中,某點在某一方向為此方向灰度值是最小值,而在垂直向上為灰度值最大值,則此點為鞍點。
read_image (Image, 'landmarks')
get_image_size (Image, Width, Height)
dev_close_window ()
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
rgb1_to_gray (Image, GrayImage)
Sigma := 1.5
Threshold := 12
saddle_points_sub_pix (GrayImage, 'facet', Sigma, Threshold, Row, Col)
gen_cross_contour_xld (Crosses, Row, Col, 12, 0.785398)
dev_display (GrayImage)
dev_set_color ('red')
dev_display (Crosses)


22.line_orientation
功能:計算直線的方向(-pi/2 < Phi <= pi/2)
與orientation_region區別:
1.orientation_region 等效橢圓求角度,主軸方向最遠的點求方向
2.line_orientation 兩點斜率求角度
23.line_position
功能:計算線段的中心,長度,方向
24.angle_ll
功能:計算兩直線的角度方向,角度計算開始於直線A,終止於直線B,根據直線起止點與終止點確定是順時針旋轉還是逆時針旋轉
26.boundary
功能:求取區域region的邊界(內邊界,外邊界,內邊界填充)
27.clip_region
功能:剪切區域region,剪切后得到的區域對象個數不變
28.count_obj
功能:計算halcon對象個數
29.regiongrowing
功能:使用區域增長法分割圖像獲得區域region
Tolerance:灰度差值最小值
分割思路:在圖像內移動相鄰模板,對相鄰兩個模板內比較中心點灰度值相近程度,兩灰度值差小則代表屬於同一區域,滿足同一區域條件如下:
|g_1 - g_2| < Tolerance
30.sort_region
功能:對區域region按照某種規則排序
Region深入分析
區域形態學能夠高效率的應用就是歸功於高效保存區域的方法:行程編碼
區域行程:每個行程的最小量數據包括該行程的縱坐標值、行程開始和行程結束對應的橫坐標值,區域可以表示為該區域全部行程的並集。
一個行程只能是一個region,一個region可以有多個行程。
相鄰兩行的行程可以按照4聯通或者8聯通構成同一個區域。
25.gen_region_runs
功能:通過給定的行列生成行程區域
31.get_region_runs
功能:獲取region的行程坐標(行,列起點,列終點)
32.runlength_distribution
功能:統計region行程分布(區域為前景,區域的洞為背景)
33.runlength_features
功能:統計區域行程runs的特征
* NumRuns 區域行程數
* KFactor K特征=行程個數/區域面積的開方(側面反映儲存因子)
* LFactor L特征=平均每行包含的run個數;首先統計run行程占用的行數,行程個數除以行程所占的行數;
* MeanLength 行程平均長度
* Bytes 行程編碼所占內存大小 288+NumRuns*6
34.eliminate_runs
功能:消除長度小於ElimShorter和大於ElimLonger的行程,與腐蝕不同,腐蝕針對的是區域,eliminate_runs針對單個行程操作
35.set_system('neighborhood', 4)
功能:設置區域聯通像素個數(4聯通、8聯通),聯通區域設置不同,分割出來的像素區域也不一樣
36.area_center
功能:計算區域region的面積中心,利用行程計算
37.elliptic_axis
功能:獲得區域等效橢圓參數(二階矩計算)
38.convexity
功能:計算區域的凸性
凸性:某區域的面積與凸包面積之間的比值
凸包:包含區域中所有點的最小凸集(區域任意兩點連線都在此點集中)
39.shape_trans
功能:區域形狀轉換(凸包,最小外接圓,平行軸最小外接矩形,任意方向最小外接矩形)
40.smallest_circle
功能:計算區域最小外接圓參數
41.smallest_rectangle1
功能:計算區域平行軸最小外接矩形參數
42.smallest_rectangle2
功能:計算區域任意方向最小外界矩形參數
43.contlength
功能:計算區域的輪廓長度,與數學意義上周長的計算結果不同
44.circularity
功能:計算區域的圓度(區域面積比上外接圓面積的比值,圓的圓度為1)
45.roundness
功能:計算區域的圓度(以區域邊界點到區域中心點距離的平均距離和方差來表示圓度)
46.rectangularity
功能:計算區域的矩形度(區域面積比上與本區域有相同一階矩和二階矩的矩形區域的面積)
47.compactness
功能:計算區域的緊密度/粗糙度(長度的平方除以面積乘以4倍pi的商)
緊密度理解:用繩子圍成一定面積的圖形,每次圍成不同形狀的圖形,但是面積一樣,每次使用的繩子長度不同,繩子長度就是這個值的大小解釋。圓的緊密度為1,是使用繩子長度最少的。
粗糙度理解:圓的邊界最光滑,所以值最小,然后是矩形,接着是彎彎曲曲的圖形。
48.eccentricity
功能:計算區域的離心率,膨松度,結構因子
離心率:區域等效橢圓長半軸除以短半軸,值越大,區域越細長,圓的離心率為1是最小的
膨松度:相同矩的等效橢圓面積除以區域面積,可以理解為區域面積的蓬松得到等效橢圓的蓬松倍數
49.connect_and_holes
功能:獲得區域的聯通數和洞數
50.diameter_region
功能:獲得區域邊界上最遠的兩個點以及距離
51.find_neighbors
功能:在區域2中尋找距離區域1到一定距離的區域(包括區域1自己),輸出區域在區域1中的下標值,區域在區域2中的下標值
