¿Cómo puedo enfocar una imagen usando OpenCV ?
Hay muchas formas de suavizar o difuminar, pero no pude ver ninguna de nitidez.
image-processing
opencv
AruniRC
fuente
fuente
Puede probar un núcleo simple y la función filter2D , por ejemplo, en Python:
Wikipedia tiene una buena descripción general de los núcleos con algunos ejemplos más aquí: https://en.wikipedia.org/wiki/Kernel_(image_processing)
fuente
Puede encontrar un código de muestra sobre cómo enfocar la imagen usando el algoritmo de "máscara de enfoque" en Documentación de OpenCV .
Cambiar los valores de
sigma
,threshold
,amount
dará resultados diferentes.fuente
Puede enfocar una imagen usando una máscara de enfoque . Puede encontrar más información sobre el enmascaramiento de enfoque aquí . Y aquí hay una implementación de Python usando OpenCV:
fuente
amount
es simplemente la cantidad de afilado. Por ejemplo, unamount
2,0 da una imagen más nítida en comparación con el valor predeterminado de 1,0.threshold
es el umbral de la máscara de bajo contraste. En otras palabras, los píxeles para los que la diferencia entre la entrada y las imágenes borrosas es menorthreshold
permanecerán sin cambios.Una forma es convertir un núcleo de filtro hecho a sí mismo con la imagen.
Existe otro método para restar una versión borrosa de la imagen de una versión brillante. Esto ayuda a mejorar la nitidez de la imagen. Pero debe hacerse con precaución ya que solo estamos aumentando los valores de píxeles. Imagine un valor de píxel en escala de grises 190, que si se multiplica por un peso de 2 da 380, pero se recorta en 255 debido al rango máximo de píxeles permitido. Esto es una pérdida de información y conduce a una imagen borrosa.
fuente
Para mayor claridad en este tema, se deben hacer algunos puntos:
La nitidez de las imágenes es un problema poco planteado. En otras palabras, el desenfoque es una operación con pérdidas y, en general, no es posible volver atrás.
Para enfocar imágenes individuales, de alguna manera necesita agregar restricciones (suposiciones) sobre el tipo de imagen que desea y cómo se ha vuelto borrosa. Ésta es el área de las estadísticas de imágenes naturales. Los enfoques para realizar la agudización mantienen estas estadísticas de forma explícita o implícita en sus algoritmos (el aprendizaje profundo es el más codificado implícitamente). El enfoque común de aumentar la ponderación de algunos de los niveles de una descomposición de la pirámide DOG o laplaciana , que es la generalización de la respuesta de Brian Burns, asume que un desenfoque gaussiano corrompió la imagen, y cómo se realiza la ponderación está relacionada con las suposiciones sobre lo que fue en la imagen para empezar.
Otras fuentes de información pueden hacer que el problema se agudice bien. Las fuentes de información más comunes son el video de un objeto en movimiento o el entorno de múltiples vistas. El afilado en ese entorno generalmente se llama superresolución (que es un muy mal nombre para él, pero se ha quedado en los círculos académicos). Ha habido métodos de superresolución en OpenCV desde hace mucho tiempo ... aunque generalmente no funcionan tan bien para problemas reales la última vez que los revisé. Espero que el aprendizaje profundo también haya producido algunos resultados maravillosos aquí. Tal vez alguien publique comentarios sobre lo que vale la pena.
fuente
Para enfocar una imagen podemos usar el filtro (como en muchas respuestas anteriores)
Será el máximo cuando el denominador sea 1 y disminuirá a medida que aumenta (2,3 ..)
El más utilizado es cuando el denominador es 3.
A continuación se muestra la implementación.
fuente
Prueba con esto:
Puede encontrar más información aquí .
fuente