MOG2を用いた異常画像検出と保存処理
概要
本プロジェクトは、背景差分法 (MOG2) を利用してフォルダ内の全画像を1番目の基準画像と比較し、差分を検出するものです。 さらに、異常判定として白抜き領域が一定割合以上ある画像を抽出し、別フォルダに再書き出し する処理を含みます。
処理の流れ
対象フォルダの画像を取得
画像フォルダから .jpg ファイルを収集。
背景差分処理 (compareFirstTwoImages)
フォルダ内の最初の画像を基準に、MOG2 を使って他の画像との差分を計算。
差分画像を 異常画像フォルダ (abnormal_images) に保存。
異常判定 (testFGDetected)
差分画像内の白ピクセル割合を計算し、1.0%以上の場合は異常と判定。
異常画像の再保存
異常判定された画像を 結果フォルダ (result_images) に再保存。
異常画像の一括削除 (deleteAbnormalImages)
abnormal_images フォルダに残った不要な画像を削除。
主要関数と役割
compareFirstTwoImages(imagePath1, imagePath2)
画像を MOG2 で比較し、前景マスクを生成。異常画像フォルダに保存し、Base64 に変換して配列へ格納。
testFGDetected(fgMask, thresholdPercentage = 3.0)
画像データを解析し、白ピクセルの割合を計算して異常判定 する。
getMat(fgMask)
Base64 エンコードされた画像データを cv.Mat 型に復元。
deleteAbnormalImages()
異常画像フォルダ (abnormal_images) 内の全 .jpg ファイルを一括削除 する。
実行方法
sh
node image_processing.js