Điều này khá dễ thực hiện nếu bạn có thể viết bằng Python. Đây là một bài viết hay về việc sử dụng gói thị giác máy tính nguồn mở để phát hiện độ mờ hình ảnh tổng thể:
https://www.pyimagesearch.com/2015/09/07/blur-detection-with-opencv/
Đây là một kịch bản nhanh sẽ sắp xếp hình ảnh vào các thư mục mờ / ok:
#
# 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))
Vấn đề khó nhất của bạn sẽ là cài đặt python và opencv vào hệ thống của bạn. Google python3 cho HĐH của bạn và cách cài đặt pip với nó, bạn có thể sử dụng pip3 để cài đặt opencv. Hoặc, có một số cài đặt trước khi xây dựng python + opencv. Bạn không cần phiên bản mới nhất của opencv để chạy tập lệnh này.
Kịch bản hoạt động tuyệt vời, và nó đo độ mờ hình ảnh tổng thể. Điều này là tốt cho hầu hết các hình ảnh. Tuy nhiên, đo lường hình ảnh tổng thể có nghĩa là những bức ảnh nền một mặt và có phông nền sẽ được đưa vào thư mục mờ và bạn sẽ phải sắp xếp chúng lại. Dù sao, bạn nên xem qua các hình ảnh mờ để đảm bảo không có người giữ sai vị trí trong đó.
Tôi hy vọng kịch bản này tăng tốc quy trình làm việc của bạn.
Một cải tiến gọn gàng cho kịch bản này là bao gồm nhận diện khuôn mặt và tính toán độ mờ trên các khuôn mặt lớn nhất trong ảnh và sử dụng các giá trị đó cho ngưỡng mờ, mặc định là độ mờ tổng thể nếu không phát hiện thấy khuôn mặt nào. Tôi sẽ để lại sự cải thiện đó cho bạn!