Раскрытие возможностей распознавания изображений: как идентифицировать файлы, не являющиеся изображениями, в папке с изображениями

Вы когда-нибудь просматривали папку, наполненную изображениями, и обнаруживали, что некоторые файлы вообще не являются изображениями? Это может быть довольно хлопотно, особенно если вы имеете дело с большой коллекцией файлов. Но не бойтесь! В этой статье мы рассмотрим различные методы быстрого определения файлов, не являющихся изображениями, в папке с изображениями. Итак, приступим!

Метод 1: Расширения файлов
Самый простой способ идентифицировать файлы, не являющиеся изображениями, — посмотреть на их расширения. В большинстве случаев файлы изображений имеют общие расширения, такие как.jpg,.png,.gif и т. д. Фильтруя файлы по их расширениям, вы можете легко отсеять файлы, не являющиеся изображениями. Вот пример на Python:

import os
image_folder = "/path/to/your/image/folder"
non_image_files = []
for file in os.listdir(image_folder):
    if not file.lower().endswith((".jpg", ".jpeg", ".png", ".gif")):
        non_image_files.append(file)
print("Non-image files found:", non_image_files)

Метод 2: магические числа
Каждый файл имеет уникальную подпись, называемую «магическим числом», которая идентифицирует его тип файла. Вы можете использовать эту информацию, чтобы отличать файлы изображений от других. Вот фрагмент кода, демонстрирующий этот подход с использованием модуля Python imghdr:

import os
import imghdr
image_folder = "/path/to/your/image/folder"
non_image_files = []
for file in os.listdir(image_folder):
    file_path = os.path.join(image_folder, file)
    if not imghdr.what(file_path):
        non_image_files.append(file)
print("Non-image files found:", non_image_files)

Метод 3: метаданные изображения
Изображения часто содержат метаданные, такие как данные EXIF, которые предоставляют ценную информацию об изображении. Вы можете извлечь эти метаданные и использовать их для идентификации файлов, не являющихся изображениями. Вот пример использования библиотеки PIL(библиотека изображений Python):

import os
from PIL import Image
image_folder = "/path/to/your/image/folder"
non_image_files = []
for file in os.listdir(image_folder):
    file_path = os.path.join(image_folder, file)
    try:
        Image.open(file_path)
    except (IOError, SyntaxError):
        non_image_files.append(file)
print("Non-image files found:", non_image_files)