重複画像を整理するスクリプト、ソースの説明

ツール等

前回記事、重複画像(類似画像)を整理するスクリプトを作成しました、のソースの説明です。

構成

下記のようなソースフォルダ構成になっています。 

DupPhotoCheck

├─Common
│ │ Common.py
│ └─WindowsIf.py

└─Photo
│ DupPhotoCheck.bat
│ DupPhotoCheck.py
└─PhotoCommon.py

Commonは、当ツールでも利用されるような、共通ソースになります。
WindowsIf.pyは、当ツールではショートカット作成に使われています。
DupPhotoCheck.batは、バッチ処理する場合に使いますが、DupPhotoCheck.pyを直接実行するなら不要です。
PhotoCommon.pyは、画像に関する共通処理が含まれます。 画像の類似判定等を実装しています。
DupPhotoCheck.pyが、メインのファイルになります、下記が処理概要です。

DupPhotoCheck.py概要

s_dir_base 出力先フォルダ
s_remain_priors 重複時、優先的に残すファイル名(正規表現)

メイン関数は下記のようになっています。

def DupPhotoCheck():
SetWorkDir()
dict_simi = CheckSimilarFiles()
dict_same = CheckSameFiles(dict_simi)
ProcessSameFileGroups(dict_same)
print(‘ – End(DupPhotoCheck)’)

SetWorkDir
s_dir_baseで指定したフォルダを作成して準備

CheckSimilarFiles
PhotoCommon.GetAverageHashで、AverageHashによる類似画像検索を簡単に行い、戻り値にマッチしたファイルを格納。 ※AverageHashについては、こちらを参照

CheckSameFiles
PhotoCommon.GetTotalHashで、その他のアルゴリズム含めて類似画像判定を行い、内容が同じ、あるいは、限りなく近いものを、戻り値に格納。

ProcessSameFileGroups
重複画像について、1つを元のフォルダに残して、それ以外を、s_dir_baseの出力フォルダへ移動、残す画像へのショートカットを作成

という処理になっています。

ソースはGitHubにUPしています。

GitHub - CodeCreare/DupPhotoCheck
Contribute to CodeCreare/DupPhotoCheck development by creating an account on GitHub.

コメント

  1. […] 次の記事では、ソースコードの内容を簡単に説明します。 […]

タイトルとURLをコピーしました