Region相關算子


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中的下標值


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM