ищем галактики похожие на млечный путь
программа находится в папке с набором фото jpg
фото с млечным путём - млечный путь.jpg
Создание программы для отбора изображений галактик, похожих на Млечный Путь, требует использования методов обработки изображений и, возможно, машинного обучения. Ниже приведен пример на Python с использованием библиотеки OpenCV для обработки изображений и NumPy для работы с массивами.
Перед тем как начать, убедитесь, что у вас установлены необходимые библиотеки. Вы можете установить их с помощью pip:
pip install opencv-python numpy scikit-image
Вот пример кода, который выполняет вашу задачу:
import cv2
import numpy as np
import os
from skimage.metrics import structural_similarity as ssim
# Путь к папке с изображениями
image_folder = './'
# Путь к изображению Млечного Пути
milky_way_image_path = os.path.join(image_folder, 'млечный путь.jpg')
# Загрузка изображения Млечного Пути
milky_way_image = cv2.imread(milky_way_image_path)
milky_way_image = cv2.cvtColor(milky_way_image, cv2.COLOR_BGR2GRAY)
# Функция для вычисления схожести
def calculate_similarity(image1, image2):
# Приведение изображений к одному размеру
image1_resized = cv2.resize(image1, (100, 100))
image2_resized = cv2.resize(image2, (100, 100))
return ssim(image1_resized, image2_resized)
# Список для хранения схожих изображений
similar_images = []
# Проход по всем файлам в папке
for filename in os.listdir(image_folder):
if filename.endswith('.jpg') and filename != 'млечный путь.jpg':
# Загрузка изображения галактики
galaxy_image_path = os.path.join(image_folder, filename)
galaxy_image = cv2.imread(galaxy_image_path)
galaxy_image = cv2.cvtColor(galaxy_image, cv2.COLOR_BGR2GRAY)
# Вычисление схожести
similarity = calculate_similarity(milky_way_image, galaxy_image)
# Условие для отбора схожих изображений (можно настроить порог)
if similarity > 0.5: # Порог схожести (0.5 - это пример)
similar_images.append((filename, similarity))
# Сортировка по схожести
similar_images.sort(key=lambda x: x[1], reverse=True)
# Вывод результатов
print("Схожие изображения с Млечным Путем:")
for img, sim in similar_images:
print(f"{img}: {sim:.2f}")
Объяснение этого кода:
Импорт библиотек: Используем OpenCV для обработки изображений и scikit-image для вычисления структурного сходства.
Загрузка изображений: Загружаем изображение Млечного Пути и конвертируем его в градации серого.
Функция calculate_similarity: Эта функция вычисляет схожесть между двумя изображениями, изменяя их размер для упрощения вычислений.
Цикл по изображениям: Проходим по всем изображениям в папке, вычисляем схожесть и добавляем схожие изображения в список.
Сортировка и вывод: Сортируем схожие изображения по степени схожести и выводим результаты.
Настройка порога:
Вы можете настроить порог схожести, изменив значение 0.5 на другое, в зависимости от того, насколько строгими или либеральными вы хотите быть в отборе.
Примечание:
Этот пример является базовым и может быть улучшен с использованием более сложных методов обработки изображений или машинного обучения для более точного определения схожести.
Свидетельство о публикации №124120505690