1 7 1 9opencv學習總結

2021-07-25 22:52:56 字數 2553 閱讀 9532

影象處理——opencv

學習(1.7~1.9)

1) 預處理流程

基於人臉識別的**進行分步解析。

mat gray;

cvtcolor(img, gray, cv_rgb2gray); //

①轉換成灰度圖

equalizehist(gray, gray);   //

②直方圖均衡化

ccf.detectmultiscale(gray, faces, 1.1, 3, 0, size(10, 10), size(100, 100)); //

③檢測人臉

①如下為將原影象轉換成灰度圖的效果,因為haar

特徵是從灰度圖中讀取的

②如下為將原影象直方圖均衡化的效果,這一步是通過拉伸各個畫素分布來實現影象增強。

③最後一步,人臉檢測並顯示結果

2)級聯分類器原理

程式中用到了opencv自帶的級聯分類器,cascadeclassifier,來

首先,haar分類器 = harr-like特徵 + 積分圖方法 + adaboost演算法 + 級聯。

① 使用

haar-like

特徵做檢測。

② 使用積分圖(

integral image

)對haar-like

特徵求值進行加速。

③ 使用

adaboost

演算法訓練區分人臉和非人臉的強分類器。

④ 使用篩選式級聯把強分類器級聯到一起,提高準確率。

值得一提的是其中的haar-like特徵檢測,下面做較詳細的分析。

前面所講的adaboost演算法的實現,採用的是輸入影象的矩形特徵,也叫haar特徵。影響adaboost檢測訓練演算法速度很重要的兩方面是特徵的選取和特徵值的計算。人臉的一些特徵可以由矩形特徵簡單地描繪。如下圖,特徵值的定義為白色矩形畫素和減去黑色矩形畫素和,根據特徵值判斷出人臉樣本和非人臉樣本。

為了找出這些特徵和計算出所需的特徵值,首先,我們要在中劃分出滿足特定條件的矩形,即條件矩形,其中的條件稱為(s,t)條件。(s,t)條件有兩個內容

(1)x軸方向邊長必須能被自然數s 整除(能均等分成s 段);

(2)y 軸方向邊長必須能被自然數t 整除(能均等分成t 段);

所以矩形的最小尺寸為s×t或者t×s, 最大尺寸為[m/s]·s×[m/t]·t 或[m/t]·t×[m/s]·s;其中[ ]為取整運算子。這在利用該函式時需要用到

找出條件矩形後,計算其特徵值,

對於理想的畫素值隨機分布的影象來說,同乙個矩形特徵對不同影象的特徵值的平均值應該趨於乙個定值k。

在對輸入影象進行檢測的時候,一般輸入影象都是很大的。在adaboost 演算法中採用了擴大檢測視窗的方法,而不是縮小。在檢測的最初,檢測視窗和樣本大小一致,然後按照一定的尺度引數(即每次移動的畫素個數,向左然後向下)進行移動,遍歷整個影象,標出可能的人臉區域。遍歷完以後按照指定的放大的倍數引數放大檢測視窗,然後在進行一次影象遍歷;這樣不停的放大檢測視窗對檢測影象進行遍歷,直到檢測視窗超過原影象的一半以後停止遍歷。在檢測視窗遍歷完一次影象後,處理重疊的檢測到的人臉區域,進行合併等操作。

整個車牌識別過程實際上相當於包含了兩個過程:1,是車牌的識別;

2,車牌字元的識別。由於工程較大及陌生的部分較多,目前只對前乙個過程進行了分析。以下為所得:

1、大致流程及執行截圖如下

1)準備

轉換格式至hsv,取

s通道影象,再轉化為灰度圖。

2)檢測

利用opencv中自帶的

mser

函式,分別進行

mser+

與mser-

檢測,再進行閉操作連線縫隙,尋找外部輪廓。

3)輸出

根據最終儲存區域,設定矩形大小,截出車牌區域並輸出影象。

通過學習人臉識別/車牌識別來提公升自己在影象識別方面的工程經驗是非常好的,因為它非常好的說明了計算機視覺的一般過程:

影象→→預處理→→影象分析→→目標提取→→目標識別。

而學到現在,我們的感覺就是:要學的東西還很多,網上的資源也非常豐富,剩下的就只是一步步地走下去了。相信付出都是有回報的,走過的路都不會白走。

OpenCV 學習與總結

opencv 學習與總結 opencv,計算兩幅影象的單應矩陣 摘要 平面射影變換是關於其次3維向量的一種線性變換,可以使用乙個非奇異的 3 times 3 矩陣h表示,x hx 射影變換也叫做單應 homography 計算出兩幅影象之間的單應矩陣h,那麼應用這個關係可以將乙個檢視中的所有點變換到...

OpenCV學習 階段總結

opencv影象資料型別 s u f s 代表 signed int 有符號整形 u 代表 unsigned int 無符號整形 f 代表 float 浮點型 c 一張的通道數,比如 1 灰度 grayimg 是 單通道影象 2 rgb彩色影象 是 3通道影象 3 帶alph通道的rgb影象 是 4...

opencv學習 3 濾波總結

最大值濾波可以去除影象中的暗斑,同時也會使亮斑增大 最小值濾波可以去除影象中的亮斑,同時也會增大暗斑 濾波處理分為兩大類 線性濾波和非線性濾波。opencv裡有這些濾波的函式,使用起來非常方便,現在簡單介紹其使用方法。線性濾波 方框濾波 均值濾波 高斯濾波 均值濾波 均值濾波就是方框濾波的乙個特殊情...