Методы повышения резкости изображения в Python: OpenCV, PIL и Scikit-image

Чтобы повысить резкость изображения с помощью Python, существует несколько методов. Ниже я объясню несколько популярных подходов:

  1. OpenCV:
    OpenCV — широко используемая библиотека компьютерного зрения, предоставляющая различные функции обработки изображений. Чтобы повысить резкость изображения с помощью OpenCV, вы можете применить фильтр повышения резкости, например фильтр Лапласа или фильтр маски нерезкости. Вот пример фрагмента кода:

    import cv2
    import numpy as np
    def sharpen_image(image):
       blurred = cv2.GaussianBlur(image, (0, 0), 3)
       sharpened = cv2.addWeighted(image, 1.5, blurred, -0.5, 0)
       return sharpened
    # Read the image
    image = cv2.imread('input_image.jpg')
    # Sharpen the image
    sharpened_image = sharpen_image(image)
    # Save the sharpened image
    cv2.imwrite('output_image.jpg', sharpened_image)
  2. PIL (библиотека изображений Python).
    Библиотека PIL предоставляет простой и эффективный способ выполнения основных задач обработки изображений. Чтобы повысить резкость изображения с помощью PIL, вы можете использовать модуль filterи применить ядро ​​повышения резкости. Вот пример фрагмента кода:

    from PIL import Image, ImageFilter
    def sharpen_image(image):
       sharpened = image.filter(ImageFilter.SHARPEN)
       return sharpened
    # Read the image
    image = Image.open('input_image.jpg')
    # Sharpen the image
    sharpened_image = sharpen_image(image)
    # Save the sharpened image
    sharpened_image.save('output_image.jpg')
  3. Scikit-image:
    Scikit-image — это мощная библиотека обработки изображений, предоставляющая широкий спектр функций. Чтобы повысить резкость изображения с помощью scikit-image, вы можете использовать функцию unsharp_mask. Вот пример фрагмента кода:

    from skimage import io, filters
    def sharpen_image(image):
       sharpened = filters.unsharp_mask(image, radius=1, amount=1)
       return sharpened
    # Read the image
    image = io.imread('input_image.jpg')
    # Sharpen the image
    sharpened_image = sharpen_image(image)
    # Save the sharpened image
    io.imsave('output_image.jpg', sharpened_image)