파이썬으로 작성할 수 있다면 매우 쉽습니다. 다음은 오픈 소스 컴퓨터 비전 패키지를 사용하여 전반적인 사진의 흐릿함을 감지하는 좋은 기사입니다.
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))
가장 까다로운 문제는 파이썬과 opencv를 시스템에 설치하는 것입니다. OS 용 Google python3 및 pip를 설치하는 방법은 pip3을 사용하여 opencv를 설치할 수 있습니다. 또는 python + opencv 사전 빌드 설치도 있습니다. 이 스크립트를 실행하기 위해 최신 버전의 opencv가 필요하지 않습니다.
스크립트는 훌륭하게 작동하며 전체적인 이미지 흐림을 측정합니다. 대부분의 사진에 좋습니다. 그러나 전체 사진 측정은 한면과 보케가 채워진 배경 사진이 흐릿한 디렉터리에 저장되고 다시 정렬해야 함을 의미합니다. 어쨌든, 당신은 거기에 잘못 배치 된 키퍼가 없는지 확인하기 위해 흐린 그림을 통과해야합니다.
이 스크립트가 작업 속도를 높이기를 바랍니다.
이 스크립트의 깔끔한 개선점은 얼굴 감지 기능을 포함시키고 사진에서 가장 큰 얼굴의 흐릿함을 계산하고 흐릿한 임계 값에 해당 값을 사용하여 얼굴이 감지되지 않으면 전체적인 흐려짐을 기본값으로 사용하는 것입니다. 나는 그 개선을 당신에게 맡길 것입니다!