Как повысить резкость изображения с помощью OpenCV ?
Есть много способов сглаживания или размытия, но я не видел ни одного повышения резкости.
image-processing
opencv
AruniRC
источник
источник
Вы можете попробовать простое ядро и функцию filter2D , например, в Python:
В Википедии есть хороший обзор ядер с еще несколькими примерами здесь - https://en.wikipedia.org/wiki/Kernel_(image_processing)
источник
Вы можете найти образец кода об увеличении резкости изображения с помощью алгоритма «маски нерезкости» в документации OpenCV .
Изменение значений
sigma
,threshold
,amount
дают разные результаты.источник
Вы можете повысить резкость изображения с помощью нерезкой маски . Вы можете найти более подробную информацию о нерезком маскировании здесь . А вот реализация Python с использованием OpenCV:
источник
amount
- это просто количество заточки. Например, значениеamount
2,0 дает более четкое изображение по сравнению со значением по умолчанию 1,0.threshold
- порог для низкоконтрастной маски. Другими словами, пиксели, для которых разница между входным и размытым изображениями меньше чемthreshold
, останутся неизменными.Один из способов - связать самодельное ядро фильтра с изображением.
Есть еще один метод удаления размытой версии изображения из его яркой версии. Это помогает повысить резкость изображения. Но следует делать это с осторожностью, поскольку мы просто увеличиваем значения пикселей. Представьте себе значение 190 пикселя в градациях серого, которое при умножении на вес 2 дает 380, но обрезается до 255 из-за максимально допустимого диапазона пикселей. Это потеря информации и приводит к размытому изображению.
источник
Для ясности в этой теме стоит отметить несколько моментов:
Повышение резкости изображений - некорректная задача. Другими словами, размытие - это операция с потерями, и вернуться из нее, как правило, невозможно.
Чтобы повысить резкость отдельных изображений, вам нужно каким-то образом добавить ограничения (предположения) о том, какое изображение вы хотите, и как оно стало размытым. Это область статистики естественных изображений. Подходы к повышению резкости содержат эту статистику явно или неявно в своих алгоритмах (глубинное обучение является наиболее неявно закодированным). Обычный подход с повышением веса некоторых уровней разложения DOG или лапласовской пирамиды , который является обобщением ответа Брайана Бернса, предполагает, что размытие по Гауссу испортило изображение, и то, как выполняется взвешивание, связано с предположениями о том, что было на изображении для начала.
Другие источники информации могут сделать постановку проблемы более четкой. Обычными такими источниками информации являются видео с движущимся объектом или режим просмотра нескольких изображений. Повышение резкости в таких настройках обычно называют сверхвысоким разрешением (это очень плохое название для него, но оно закрепилось в академических кругах). В OpenCV уже давно существуют методы супер-разрешения ... хотя они обычно не работают так хорошо для реальных проблем, когда я их проверял. Я ожидаю, что глубокое обучение и здесь дало замечательные результаты. Может быть, кто-то напишет в комментариях о том, что там стоит.
источник
Чтобы повысить резкость изображения, мы можем использовать фильтр (как и во многих предыдущих ответах)
Он будет максимальным, когда знаменатель равен 1, и будет уменьшаться при увеличении (2.3 ..)
Чаще всего используется знаменатель 3.
Ниже представлена реализация.
источник
Попробуйте с этим:
Вы можете найти больше информации здесь .
источник