天天看點

OpenCV for Ios 學習筆記(4)-标記檢測1

簡單的标記經常是以白色塊和黑色塊構成的規則圖形。因為我們預先知道這些因素,是以我們可以很容易檢測标記。

如圖

首先,我們需要找到封閉的輪廓,然後在矩形輪廓裡檢查我們的标記。

下面是标記監測管道的處理流程:

1.把輸入的圖像轉化成灰階圖像。

2.進行二進制門檻值操作(Perform binary threshold operation)。

3.檢測圖像輪廓。

4.搜尋可能的标記。

5.檢測并解碼标記。

6.模拟出标記的三維姿态(形狀)。

首先,我們進行圖像灰階化

​​cvCvtColor​​

其次是圖像的二值化(Image binarization)

關于二值化,參考:​​OpenCV二值化方法​​

二值化操作将把我們的圖像每個像素轉換為黑色(零強度)或白色(烈度),首先我們需要找到輪廓,目前有許多種求閥值的方法,但是多有各自的優勢和缺點。

其中既簡單又快捷的方法是絕對閥值法-結果依賴于像素強度和某些閥值,即如果像素強度大于閥值,其結果将是白(255),否則将是黑(0)。

但是這個方法有個最大的缺點-它依賴于照明和軟強度變化(soft intensity changes)。是以更加可取的方法是自适應閥值-最大的不同在于在以被檢查的像素為圓心的半徑内使用所有像素。使用平均強度來保證更加健壯的角點檢測。

​​OpenCV學習筆記-自适應門檻值化​​

輪廓檢測

這個函數的輸出是一個一個多邊形的集合,每個多邊形多代表一個可能的輪廓。在這個方法中,我們忽略了尺寸小于minContoursPointAllowed的多邊形,因為我們認為它們要麼不是有效的輪廓,要麼實在太小,不值得去檢測它們。