Cómo afilar una imagen usando OpenCV? Hay muchas formas de suavizar o difuminar, pero ninguna de las que pude ver de nitidez.Cómo afilar una imagen en OpenCV?
Respuesta
Un procedimiento general se presenta en the wikipedia article on unsharp masking: Se utiliza un filtro de suavizado gaussiano y restar la versión suavizada de la imagen original (de una manera ponderada por lo que los valores de un área constante permanecen constantes).
Para obtener una versión de afilado de frame
en image
: (tanto cv::Mat
)
cv::GaussianBlur(frame, image, cv::Size(0, 0), 3);
cv::addWeighted(frame, 1.5, image, -0.5, 0, image);
Los parámetros que hay algo que tiene que ajustar por sí mismo.
También hay afilado laplaciano, debería encontrar algo sobre eso cuando googlee.
La cuestión es sobre la nitidez de la imagen, no el suavizado de preservación de bordes. –
se puede encontrar un código de ejemplo la misma utilizando "máscara de enfoque" algoritmo de sobre afilado en OpenCV Documentation
valores cambiantes de sigma
, threshold
, amount
dará resultados diferentes
// sharpen image using "unsharp mask" algorithm
Mat blurred; double sigma = 1, threshold = 5, amount = 1;
GaussianBlur(img, blurred, Size(), sigma, sigma);
Mat lowContrastMask = abs(img - blurred) < threshold;
Mat sharpened = img*(1+amount) + blurred*(-amount);
img.copyTo(sharpened, lowContrastMask);
Puede probar un kernel simple y filter2D
, p. en Python:
kernel = np.array([[-1,-1,-1], [-1,9,-1], [-1,-1,-1]])
im = cv2.filter2D(im, -1, kernel)
Wikipedia tiene una buena visión general (corto) de granos:
Elegante y claro! –
- 1. OpenCV cómo reescribir una imagen RGB
- 2. OpenCV dibujar una imagen sobre otra imagen
- 3. Cargando una imagen usando OpenCV en Android
- 4. restar una imagen de otra usando openCV
- 5. Contornos opencv: Cómo eliminar pequeños contornos en una imagen binaria
- 6. Cómo encontrar esquinas en una imagen usando OpenCv
- 7. Cómo copiar una región de imagen usando opencv en python?
- 8. Contraste estirando una imagen por openCV
- 9. Determine si una imagen necesita un contraste automático en OpenCV
- 10. OpenCV - Aplicar máscara a una imagen en color
- 11. Convertir un byte arry en una imagen OpenCV en C++
- 12. eliminando el ruido en una imagen binaria usando openCV
- 13. opencv encontrar la imagen se coordina en otra imagen
- 14. ¿Cómo creo una imagen de OpenCV desde una imagen de PIL?
- 15. error al imprimir en una imagen usando OpenCV putText
- 16. OpenCV algoritmo K-medias de funcionamiento en una imagen
- 17. Encontrar la ubicación de rectángulos en una imagen con OpenCV
- 18. Detección de área brillante rectangular en una imagen usando OpenCv
- 19. Afilar en un mapa de bits usando C#
- 20. cómo eliminar el ruido de imagen binario en opencv?
- 21. Transferencia de una imagen de Matlab a un OpenCV IplImage
- 22. Problemas de captura de imagen OpenCV/FFMpeg
- 23. OpenCV para comparar la imagen de ANDROID
- 24. Detectar si un objeto de una imagen está en otra imagen con OpenCV
- 25. leer números y letras de una imagen usando openCV
- 26. extrae una imagen de canal de una imagen RGB con opencV
- 27. ¿Cómo encontrar contornos en OpenCV?
- 28. ¿Cómo uso OpenCV MatchTemplate?
- 29. Kinect y Opencv, la imagen de profundidad, cómo usarla
- 30. ¿Cómo rellenar la imagen de OpenCV con un solo color?
¿Hay una manera de replicar el resultado de Photoshop de la Máscara de enfoque? – Royi
@Drazick ¿Estás preguntando porque no se puede replicar? el enlace a la wikipedia se ha dado arriba. [digital_unsharp_masking] (https://en.wikipedia.org/wiki/Unsharp_masking#Digital_unsharp_masking) para ser específico – tilaprimera
@tilaprimera, pregunto porque el USM de Photoshop es diferente del USM "clásico". – Royi