Kotlin 開發第 25 天 FaceRecognizer (FaceDetector)


  • 從相簿選取一張圖片
  • 通過人臉識別找到人臉,並在圖片上畫一個方塊

Face Recognizer

這一個臉部識別的流程是

  • 從 Album 中取出一張照片
  • 放到 FaceView 的 Canvas 上
  • 通過 FaceDetector 偵測人臉
  • 偵測到人臉以後,在人臉上畫一個黃色的方塊

FaceView

初始化我們的 Canvas 以及 Paint

注意:官方文件有標註 bitmap must be in 565 format.

setupWithImage 方法

提供一個來放入圖片的 Uri 的方法,將圖片的大小轉成和 FaceView 相同。

DetectFace 方法

通過 FaceDetector 來進行人臉偵測,偵測結束後通過 invalidate() 來呼叫 onDraw 方法

override onDraw 方法

當觸發 onDraw 方法的時候,會去看有幾張臉被識別出來,

根據雙眼的距離來計算整張臉的位置,然後在臉上畫黃色的方塊。


MainActivity

通過 Intent 讓使用者選取圖片

onActivityResult

通過 intent 來接收圖片的 Uri 然後丟給 FaceView 呈現在畫面上。

detectFace 方法

在通過剛才 FaceView 提供的 detectFace 方法進行臉部識別和畫方塊的功能。


筆記

  • 研究:原本無法識別的臉部圖片,我通過工具轉成 jpg 就可以識別了,這是為什麼?

參考

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *