在halcon的例子中,有方法-邊緣提取(畫素精度)
邊緣原理:參考dip課本
區域和輪廓是沒有畫素值的,而影象是有畫素值的,
在邊緣檢測中,有high閾值和low閾值,畫素值高於high時一定是邊緣畫素,低於low一定不是邊緣畫素,若畫素值在high和low之間時,若該畫素值的8鄰域的畫素有乙個高於high,則該畫素就判為邊緣畫素
region區域和xld輪廓只儲存了位置資訊,沒有畫素值資訊
edges_image(image輸入影象,
imaamp輸出邊緣幅度結果影象,
imadir輸出邊緣方向結果影象,
filter邊緣檢測器一般是『canny』,或者是lanser1一階導,lanser2二階導
alpha平滑引數,越大越不平滑
nms,
low閾值,
high)
上述的imaamp和imadir都是影象,即有畫素值,我們用threshold得到的區域或者xld輪廓是沒有畫素值的
注意這裡的輸出都是,即有畫素值
read_image (image, 'fabrik')
// dir表示方向,amp表示幅度
//sobel_dir()可以產生邊緣方向圖和邊緣幅度差分圖
//sobel_amp()只能得到幅度圖
//prewitt()同理
read_image (image, 'fabrik')
sobel_dir(image, edgeamplitude_sbbel_dir, edgedirection_sobel_dir, 'sum_abs', 3)
sobel_amp(image,edgeamplitude_sobel_amp, 'sum_abs', 3)
prewitt_amp (image, imageedgeamp_pre_amp)
prewitt_dir (image, imageedgeamp_pre_dir, imageedgedir_pre_dir)
//非極大值抑制運算元
nonmax_suppression_dir(imgamp, imgdir,imageresult,mode)
nonmax_suppression_amp(imgamp,imageresult,mode)
使用了skeleton骨架,作用就是提取區域骨架,效果就是區域框架更細了,可以通過skeleton轉換成contours輪廓骨架往往是乙個連通域,而輪廓是多個連通域
//提取骨架
skeleton (edges, skeleton)
// 骨架轉換成xld亞畫素輪廓
gen_contours_skeleton_xld (skeleton, contours, 1, 'filter')
dev_display (image)
dev_set_colored (6)
dev_display (contours)
區域無畫素值該方法是基於形態學操作產生的,其中邊界型別包括了外邊界和內邊界,
內邊界=原區域-腐蝕外邊界=膨脹-原區域
boundary(region輸入區域,
regionborder輸出區域邊界,
boundarytype邊界的型別『inner』或『outer』)
c 第四章複習題
8.設計乙個描述魚的結構宣告。結構中應當包括品種 重量 整數,單位為盎司 和長度 英吋 包括小數 答 struct fish 12 假設treacle是乙個包含10個元素的float陣列,請宣告乙個指向treacle的第乙個元素的指標,並使用該指標來顯示陣列的第乙個元素和最後乙個元素。答 float...
系統結構期末複習(第四章)
先行控制結構在指令控制部件中,除了原有的指令分析器外,又增加了先行指令棧,先行讀數棧,先行操作棧和後行寫數棧。其中,先行指令棧的作用是後繼指令預取,先行指令棧是主存與指令分析器之間的緩衝部件,用於平滑主存和指令分析器之間的工作速度。1.線性流水線和非線性流水線的區別在於有無反饋迴路,線性流水線沒有反...
第四章 繼承
一 為什麼要繼承 在物件導向中我們將具有很多重複內容的類中的內容提取出來,寫成乙個單獨的類 其他類只需要繼承就能取得這些功能,同時可以在自己類中寫入獨特的自定義方法 二 繼承語法 inte ce circle nsobject 繼承是在介面中定義的 冒號後的類名是要整合的類,nsobject 是co...