Це досить легко зробити, якщо ви можете писати на Python. Ось хороша стаття про використання пакета комп'ютерного зору з відкритим кодом для виявлення загальної розмитості зображення:
https://www.pyimagesearch.com/2015/09/07/blur-detection-with-opencv/
Ось швидкий сценарій, який сортуватиме зображення в розмиті / нормальні каталоги:
#
# Sorts pictures in current directory into two subdirs, blurred and ok
#
import os
import shutil
import cv2
FOCUS_THRESHOLD = 80
BLURRED_DIR = 'blurred'
OK_DIR = 'ok'
blur_count = 0
files = [f for f in os.listdir('.') if f.endswith('.jpg')]
try:
os.makedirs(BLURRED_DIR)
os.makedirs(OK_DIR)
except:
pass
for infile in files:
print('Processing file %s ...' % (infile))
cv_image = cv2.imread(infile)
# Covert to grayscale
gray = cv2.cvtColor(cv_image, cv2.COLOR_BGR2GRAY)
# Compute the Laplacian of the image and then the focus
# measure is simply the variance of the Laplacian
variance_of_laplacian = cv2.Laplacian(gray, cv2.CV_64F).var()
# If below threshold, it's blurry
if variance_of_laplacian < FOCUS_THRESHOLD:
shutil.move(infile, BLURRED_DIR)
blur_count += 1
else:
shutil.move(infile, OK_DIR)
print('Done. Processed %d files into %d blurred, and %d ok.' % (len(files), blur_count, len(files)-blur_count))
Вашою найскладнішою проблемою буде встановлення python та opencv у вашу систему. Google python3 для вашої ОС, і як встановити pip за допомогою неї, ви можете використовувати pip3 для встановлення opencv. Або також є деякі встановлення попереднього збирання python + opencv. Для запуску цього сценарію вам не потрібна найновіша версія opencv.
Сценарій працює чудово, і він вимірює загальну розмитість картини. Це добре для більшості знімків. Однак загальне вимірювання зображень означає, що фотографії, заповнені обличчям та боке, будуть розміщені в розмитому каталозі, і вам доведеться їх сортувати. У будь-якому випадку, вам слід пройти крізь розмиті фотографії, щоб переконатися, що там немає недоречних охоронців.
Я сподіваюся, що цей сценарій прискорить ваш робочий процес.
Акуратне вдосконалення цього сценарію полягає у включенні розпізнавання обличчя та обчислення розмитості на найбільших обличчях фотографії та використання цих значень для порогу розмитості, дефолтуючи до загальної розмитості, якщо жодної грані не виявлено. Я залишу це покращення за вами!