halcon知识:select_shape究竟怎么用(1)?
說明
????????select_shape是halcon的強大算子,需要重點研究,本例按照Features=‘area’,對Operation進行說明,但是更多的案例將在一個更大的文檔中說明。
一、 測試select_shape,如下圖(單通道圖)
1.1 語法結構
select_shape(Regions : SelectedRegions : Features, Operation, Min, Max : )
輸入圖標:Regions區域元組
輸出圖標:SelectedRegions 區域元組
輸入控制:
- Features:1)有很多,后面討論;2) 也可按照元組調用
select_shape (ConnectedRegions, SelectedRegions, ['area','anisometry'], 'and', [200,1], [1200,2])
- Operation:也是一個看點‘and’和‘or’,在下面案例說明。
1.2 區域Operation選取?
????????select_shape語句中Operation不可忽略,其取值在【‘or’ 和‘and’】上,究竟有啥作用?針對不同的檢測問題,選擇or或and是一個巧妙的構思,如下例子:
read_image (Image, 'd:/images/dockergray.jpg')
get_image_size(Image, Width, Height)
dev_open_window(0, 0, Width, Height, 'black', WindowHandle )
disp_image(Image,WindowHandle)
threshold (Image, Region, 48, 200)
connection (Region, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'or', 1800, 9999999)
得到SelectedRegions
如將 select_shape (ConnectedRegions, SelectedRegions, 'area', 'or', 1800, 9999999)
改成?select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 1800, 9999999)
SelectedRegions得不到任何內容,why?
1.3 用另一個圖再試試!
select_shape (ConnectedRegions, SelectedRegions, 'area', 'or', 1800, 9999999)
?
用select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 1800, 9999999)
?
二、結論
在用select_shape算子的時候,
1)如果你預先要同時檢測多個面積為【1800, 9999999】的目標,則在 select_shape語句中用'and'。?檢測結果如果沒有多個, SelectedRegions為空。(要么取出兩個以上,不夠兩個就什么都不取----以標明有錯!)這種用法針對問題:
?比如用select_shape識別圖中藥丸夠不夠15個就用‘and’是合適的。
2)如果你預先不知道能有幾個面積為【1800, 9999999】的區域,用?select_shape時取‘or’ 合適,如果有多個就取多個,有一個就取一個。(or ---有幾個滿足的區域,就取幾個!)
針對問題:?比如用select_shape識別木材上裂紋是否有大的裂紋,裂紋夠大,就報警,就用‘or’是合適的。
三、關于Features的選擇
- 該選擇很多,一般來說,我們很想看看當前圖像中的對象,到底有怎樣的屬性值,辦法是用region_features(rig_Regions, 'width',? Values)。其它屬性就用隊形名稱替代'width',注意Values是對應的屬性值元組。
'area':??物體面積
'row':?中心的行索引
'column':?中心的列索引
'width':?區域寬度
'height':?區域高度
'row1':?左上角的行索引
'column1':?左上角的列索引
'row2':?右下角的行索引
'column2':右下角的列索引
'circularity':圓度(見圓度)
'compactness':緊湊性(見緊湊性)
'contlength':輪廓的總長度(參見操作符 contlength)
“convexity”:凸度(見凸度)
'rectangularity':矩形度(見矩形度)
'ra':等效橢圓的主半徑(參見 elliptic_axis)
'rb':等效橢圓的次半徑(參見 elliptic_axis)
'phi':等效橢圓的方向(參見 elliptic_axis)
'anisometry:等軸測圖(見偏心率)
'bulkiness:'?體積大(見操作員偏心)
'struct_factor‘:結構系數(見操作員偏心)
“outer_radius”:最小周圍圓的半徑(見smallest_circle)
'inner_radius':最大內圓的半徑(見inner_circle)
'inner_width':適合該區域的最大軸平行矩形的寬度(請參閱inner_rectangle1)
'inner_height':適合該區域的最大軸平行矩形的高度(請參閱inner_rectangle1)
'dist_mean':從區域邊界到中心的平均距離(參見算子圓度)
'dist_deviation:'區域邊界到中心的距離的偏差(參見算子圓度)
“roundness”:圓度(參見算子圓度)
'num_sides':多邊形邊數(參見算子圓度)
'connect_num':連接組件的數量(請參閱運算符 connect_and_holes)
'holes_num':孔數(見操作符connect_and_holes)
'area_holes':物體孔的面積(見operator area_holes)
'max_diameter':區域的最大直徑(參見操作符diameter_region)
'orientation':區域的方向(見操作員orientation_region)
'euler_number':歐拉數(見運算符 euler_number)
'rect2_phi':最小周圍矩形的方向(請參閱運算符smallest_rectangle2)
'rect2_len1':最小周圍矩形長度的一半(請參閱運算符smallest_rectangle2)
'rect2_len2':最小周圍矩形寬度的一半(請參閱運算符smallest_rectangle2)
'moments_m11':區域的幾何矩(見算子 moment_region_2nd)
'moments_m20':區域的幾何矩(見算子 moment_region_2nd)
'moments_m02':區域的幾何矩(見算子 moment_region_2nd)
'moments_ia':區域的幾何矩(見算子 moment_region_2nd)
'moments_ib':區域的幾何矩(見算子 moment_region_2nd)
'moments_m11_invar':區域的幾何矩(見算子 moment_region_2nd_invar)
'moments_m20_invar':區域的幾何矩(見算子 moment_region_2nd_invar)
'moments_m02_invar':區域的幾何矩(見算子 moment_region_2nd_invar)
'moments_phi1':區域的幾何矩(參見算子 moment_region_2nd_rel_invar)
'moments_phi2':區域的幾何矩(參見算子 moment_region_2nd_rel_invar)
'moments_m21':區域的幾何矩(見算子 moment_region_3rd)
'moments_m12':區域的幾何矩(見算子 moment_region_3rd)
'moments_m03':區域的幾何矩(見算子 moment_region_3rd)
'moments_m30':區域的幾何矩(見算子 moment_region_3rd)
'moments_m21_invar':區域的幾何矩(見算子 moment_region_3rd_invar)
'moments_m12_invar':區域的幾何矩(見算子 moment_region_3rd_invar)
'moments_m03_invar':區域的幾何矩(見算子 moment_region_3rd_invar)
'moments_m30_invar':區域的幾何矩(見算子 moment_region_3rd_invar)
'moments_i1':區域的幾何矩(參見算子 moment_region_central)
'moments_i2':區域的幾何矩(參見算子 moment_region_central)
'moments_i3':區域的幾何矩(參見算子 moment_region_central)
'moments_i4':區域的幾何矩(參見算子 moment_region_central)
'moments_psi1':區域的幾何矩(參見算子 moment_region_central_invar)
'moments_psi2':區域的幾何矩(參見算子 moment_region_central_invar)
'moments_psi3':區域的幾何矩(參見算子 moment_region_central_invar)
'moments_psi4':區域的幾何矩(參見算子 moment_region_central_invar)
總結
以上是生活随笔為你收集整理的halcon知识:select_shape究竟怎么用(1)?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: halcon知识:图标对象如何存盘和读入
- 下一篇: 在python下实现ssh出现错误:Mo