улучшаем качество фото на питоне
# Открываем изображение
image_path = 'фото.jpg' # ваше изображение
image = Image.open(image_path)
# Применяем фильтр улучшения
enhanced_image = image.filter(ImageFilter.UnsharpMask(radius=2, percent=125, threshold=3))
# Сохраняем улучшенное изображение
enhanced_image.save('фото1.jpg') # Укажите путь для сохранения
**
from PIL import Image, ImageFilter
# Открываем изображение
image_path = 'фото.jpg' # путь к вашему изображению
image = Image.open(image_path)
# Увеличиваем размер изображения на 15%
width, height = image.size
new_size = (int(width * 1.15), int(height * 1.15))
resized_image = image.resize(new_size, Image.ANTIALIAS)
# Применяем фильтр резкости
sharpened_image = resized_image.filter(ImageFilter.SHARPEN)
# Сохраняем улучшенное изображение
sharpened_image.save('фото2.jpg') # путь сохранения обработанного фото
**
незабудьте установить библиотеку в командном окне
pip install Pillow
В библиотеке Pillow есть несколько основных фильтров, которые можно использовать для обработки изображений. Вот некоторые из них:
ImageFilter.BLUR: Применяет размытие к изображению.
blurred_image = image.filter(ImageFilter.BLUR)
ImageFilter.CONTOUR: Создает контурное изображение, подчеркивая края.
contour_image = image.filter(ImageFilter.CONTOUR)
ImageFilter.DETAIL: Увеличивает детали изображения, делая его более четким.
detail_image = image.filter(ImageFilter.DETAIL)
ImageFilter.EDGE_ENHANCE: Улучшает края изображения.
edge_enhanced_image = image.filter(ImageFilter.EDGE_ENHANCE)
ImageFilter.EDGE_ENHANCE_MORE: Более сильное улучшение краев по сравнению с EDGE_ENHANCE.
edge_enhanced_more_image = image.filter(ImageFilter.EDGE_ENHANCE_MORE)
ImageFilter.EMBOSS: Создает эффект рельефа на изображении.
embossed_image = image.filter(ImageFilter.EMBOSS)
ImageFilter.SHARPEN: Увеличивает резкость изображения.
sharpened_image = image.filter(ImageFilter.SHARPEN)
ImageFilter.UnsharpMask: Применяет метод "нечеткой маски" для повышения резкости.
unsharp_image = image.filter(ImageFilter.UnsharpMask(radius=2, percent=150, threshold=3))
ImageFilter.SMOOTH: Уменьшает шум и делает изображение более гладким.
smooth_image = image.filter(ImageFilter.SMOOTH)
ImageFilter.SMOOTH_MORE: Более сильное сглаживание по сравнению с SMOOTH.
smooth_more_image = image.filter(ImageFilter.SMOOTH_MORE)
Эти фильтры можно комбинировать и настраивать для достижения желаемого эффекта. Просто помните, что каждый фильтр может по-разному влиять на изображение, поэтому стоит экспериментировать
Для улучшения фотографий с помощью нейросетей, особенно с использованием алгоритмов суперразрешения, библиотеки TensorFlow и OpenCV действительно являются отличным выбором.
Вот краткий обзор того, как можно реализовать суперразрешение на Python с использованием этих библиотек:
Установка необходимых библиотек:
Убедитесь, что у вас установлены TensorFlow и OpenCV.
pip install tensorflow opencv-python
Загрузка модели суперразрешения:
Вы можете использовать предобученные модели, такие как EDSR (Enhanced Deep Residual Networks) или другие, доступные в TensorFlow Hub.
Чтение и обработка изображения:
Используйте OpenCV для загрузки и обработки изображений.
Применение модели:
Примените модель к изображению для увеличения его разрешения.
Сохранение результата:
Сохраните улучшенное изображение с помощью OpenCV.
Вот пример кода, который демонстрирует этот процесс:
import cv2
import tensorflow as tf
# Загрузка изображения
image = cv2.imread('input_image.jpg')
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
# Преобразование изображения в тензор
image_tensor = tf.convert_to_tensor(image, dtype=tf.float32)
image_tensor = tf.expand_dims(image_tensor, axis=0) # Добавление размерности для батча
# Загрузка предобученной модели (например, EDSR)
model =
# Применение модели
super_res_image = model(image_tensor)
# Преобразование тензора обратно в изображение
super_res_image = tf.squeeze(super_res_image).numpy()
super_res_image = cv2.cvtColor(super_res_image.astype('uint8'), cv2.COLOR_RGB2BGR)
# Сохранение результата
cv2.imwrite('output_image.jpg', super_res_image)
Найти еще
Этот код является базовым примером. Не забудьте заменить 'path_to_your_super_resolution_model' на путь к вашей модели суперразрешения.
Также стоит отметить, что работа с нейросетями может требовать значительных вычислительных ресурсов, поэтому рекомендуется использовать GPU, если это возможно. Удачи в ваших экспериментах с улучшением фотографий
**
Создание простого скрипта для улучшения качества изображений с использованием библиотеки Python, такой как OpenCV и TensorFlow, может быть отличным способом применить модели супер разрешения. Ниже приведен пример скрипта image_enhancer.py, который использует предварительно обученную модель ESRGAN (Enhanced Super Resolution GAN) для улучшения качества изображения.
Установка необходимых библиотек
Прежде чем запускать скрипт, убедитесь, что у вас установлены необходимые библиотеки. Вы можете установить их с помощью pip:
pip install numpy opencv-python tensorflow
Пример кода для image_enhancer.py
import cv2
import numpy as np
import tensorflow as tf
# Загрузка модели ESRGAN (предполагается, что модель уже загружена)
model = tf.keras.models.load_model('path_to_your_esrgan_model.h5')
def enhance_image(image_path):
# Чтение изображения
img = cv2.imread(image_path)
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# Изменение размера изображения для модели
img_input = cv2.resize(img, (img.shape[1] // 4, img.shape[0] // 4)) # Уменьшаем изображение
img_input = np.expand_dims(img_input, axis=0) / 255.0 # Нормализация
# Улучшение изображения
enhanced_img = model.predict(img_input)
enhanced_img = np.clip(enhanced_img * 255.0, 0, 255).astype(np.uint8)
enhanced_img = enhanced_img.squeeze() # Удаление лишних измерений
# Изменение размера обратно к оригинальному размеру
enhanced_img = cv2.resize(enhanced_img, (img.shape[1], img.shape[0]))
return enhanced_img
def main():
input_image_path = 'input_image.jpg' # Укажите путь к вашему изображению
output_image_path = 'enhanced_image.jpg'
enhanced_image = enhance_image(input_image_path)
# Сохранение улучшенного изображения
cv2.imwrite(output_image_path, cv2.cvtColor(enhanced_image, cv2.COLOR_RGB2BGR))
print(f"Улучшенное изображение сохранено как {output_image_path}")
if __name__ == '__main__':
main()
Объяснение кода
Импорт библиотек: Мы используем OpenCV для обработки изображений и TensorFlow для работы с моделью.
Загрузка модели: Необходимо загрузить предварительно обученную модель ESRGAN. Убедитесь, что у вас есть файл модели в формате .h5.
Функция enhance_image: Эта функция читает изображение, изменяет его размер, нормализует и передает в модель для улучшения. Затем она возвращает улучшенное изображение.
Основная функция: Здесь вы можете указать путь к входному изображению и сохранить улучшенное изображение.
Запуск скрипта
Сохраните код в файл image_enhancer.py, замените 'path_to_your_esrgan_model.h5' на путь к вашей модели ESRGAN и 'input_image.jpg' на путь к вашему изображению. Затем запустите скрипт:
python image_enhancer.py
После выполнения скрипта вы получите улучшенное изображение, сохраненное в том же каталоге.
*
также для обработки настроек изображений
можно использовать бесплатную программу IrfanView
Свидетельство о публикации №125030807662