目錄
- 一、邊緣提取
- 二、BLOB分析檢測
- 三、贓物檢測
一、邊緣提取
1、設置ROI興趣區域
2、快速二值化,并連接相鄰區域。
這樣做的目的是進一步減少目標區域,通過二值化將目標區域大概輪廓提取出來
3、提取最接近目標區域的輪廓
常用函數有boundary,gen_contour_region_xld
4、根據自己的需求提取需要的初步輪廓
5、將初步提取的初步輪廓進行膨脹操作
6、將膨脹后的區域和原圖進行減操作(在這步之前有可能需要對原圖進行高斯濾波)。這樣就能得到只
有邊緣的真實圖像
7、用canny或其他算子(根據需要)提取亞像素輪廓,一般使用edges_sub_pix函數
8、處理和計算
得到真實的邊緣XLD后你可能需要進一步處理得到你想要的線、弧等。
你可能用到的函數segment_contours_xld(分割) union_collinear_contours_xld(聯合相鄰或相同
角度直線)select_contours_xld(提取想要的輪廓) union_cocircular_contours_xld(聯合相同圓)
等等
得到輪廓后如果你不知道怎么處理后得到你想要的東西(線、弧、圓、角、矩形)你都可以將輪廓轉化
為點,然后用點集合來擬合任何你想要的東西。
二、BLOB分析檢測
(1)應用ROI,可以使Blob分析加速。
(2)匹配ROI區域或圖像,詳將GUIDEIIB以形狀為基礎的匹配。
(3)校正圖像<經常用來去除鏡頭畸變或把圖像轉換到參考點視角,如雙目視覺時的圖像校正>
(4)圖像前處理
(5)引用分割參數
(6)分割圖像
(7)區域處理
(8)特征提取
(9)把提取的結果轉換到世界坐標中
(10)結果可視化。
相機的標定和矯正不在本篇的學習之中。直接講提取BLOB
1、一般先使用均值濾波去噪
2、利用去噪圖像與平滑圖像的OFFSET提取區域邊緣,常見函數dyn_threshold
3、提取連通域dyn_threshold
4、根據形狀或是灰度等特征來提取你想要的blob。
另一種方法就是分水嶺算法
watersheds (ImageGauss, Basins, Watersheds)/
1、對圖像進行高斯濾波
還有的圖形更簡單直接二值化就可以啦
bin_threshold (Fin, Dark) //分割圖像,輸出Dark區域,Fin已經被處理為區域//
difference (Fin, Dark, Background) //計算Fin與Dark兩個區域的補集//
還有個函數應該說是讓你高興還是沮喪呢,以為一個函數就可以直接提取你想要的,但是參數很難調整
lines_gauss(Image, Lines, 6, 0.3, 0.5, ‘light’, ‘true’, ‘gaussian’, ‘true’)
三、贓物檢測
1、得到兩個不同高斯標準差的高斯積卷
2、對原始圖像進行傅里葉變換’to_fre’
3、用之前的積卷對圖像做積卷濾波
4、傅里葉反變換‘from_fre’