【啟動AI Maker世代 】2024 MAI 開發者社群大會(5/16-17)
|

【影像處理】OpenCV 的前景/背景分離技術

   
作者:曾成訓

喜歡使用 Arduino 或樹莓派的 Maker 們,應該都很清楚 PIR 這種模組,圓圓的白色蓋子下藏的是對紅外線變化特別敏感的 sensor。由於人或動物均會輻射出微量的紅外線,因此透過 PIR 對於週遭紅外線的變化感應,我們就能判斷是否有人在移動。

透過 OpenCV 進行影像處理,我們也能達到類似的功能:當影像中有物體移動時,能把該物體抓取並顯示出來,該方法非常的簡單,我們來看看怎麼做到的。

cv2.absdiff

此指令依其字面意思是「差異的絕對值」,的確,它的功能就是將兩張相片相減後取絕對值。例如,我們將影片中連續兩個 frame 進行 cv2.absdiff,單憑肉眼似乎感覺不出前後兩張 frame 的差異,但使用 cv2.absdiff 之後便會得到如上的結果。

憑肉眼分辨不出差別的兩張 frame,使用 cv2.absdiff 後可以看出其些微差異

前後 frame 的差異形成了較淺的顏色,因此,我們發現 cv2.absdiff 的好用之處在於它不但能取得移動中的物體,還能過濾掉相片中相同的雜物背景;然而,物體移動是漸進的,因此明顯的差異僅在於「物體邊緣」,中間部份由於材質顏色相同因此差異不明顯,這使得移動中的物體看起來像是由「線條」組成的的輪廓。

如果我們將其中一張相片換成無人的背景圖,兩者進行 cv2.absdiff 後就能得到較為完整的物件形狀。

本文為會員限定文章

立即加入會員! 全站文章無限看~

                               

已經是會員? 按此登入

只需不到短短一分鐘...

輸入您的信箱與ID註冊即可享有一切福利!

會員福利
1

免費電子報

2

會員搶先看

3

主題訂閱

4

好文收藏

曾 成訓

Author: 曾 成訓

人到中年就像沒對準的描圖紙,一點一點的錯開,我只能當個Maker來使它復位。

Share This Post On
468 ad

Submit a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *