Dies ist ziemlich einfach, wenn Sie in Python schreiben können. Hier ist ein guter Artikel über die Verwendung eines Open-Source-Computer-Vision-Pakets zur Erkennung von Bildunschärfe:
https://www.pyimagesearch.com/2015/09/07/blur-detection-with-opencv/
Hier ist ein schnelles Skript, das Bilder in unscharfe / ok-Verzeichnisse sortiert:
#
# 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))
Ihr schwierigstes Problem wird sein, Python und OpenCV in Ihrem System zu installieren. Google python3 für Ihr Betriebssystem und wie Sie pip damit installieren, können Sie mit pip3 opencv installieren. Oder es gibt auch einige Python + OpenCV-Vorinstallationen. Sie benötigen nicht die neueste Version von opencv, um dieses Skript auszuführen.
Das Skript funktioniert hervorragend und misst die allgemeine Bildunschärfe. Das ist gut für die meisten Bilder. Die Gesamtbildmessung bedeutet jedoch, dass diese Fotos mit nur einem Gesicht und Bokeh im Hintergrund in das verschwommene Verzeichnis verschoben werden und Sie sie dann wieder aussortieren müssen. Auf jeden Fall sollten Sie die unscharfen Bilder durchgehen, um sicherzustellen, dass keine verlegten Bewahrer anwesend sind.
Ich hoffe, dieses Skript beschleunigt Ihren Workflow.
Eine nette Verbesserung dieses Skripts besteht darin, die Gesichtserkennung einzuschließen, die Unschärfe der größten Gesichter auf dem Foto zu berechnen und diese Werte für den Schwellenwert für die Unschärfe zu verwenden. Wenn keine Gesichter erkannt werden, wird standardmäßig die Gesamtunschärfe verwendet. Ich überlasse diese Verbesserung Ihnen!