thresholding machine learning imagen gui contours book binarizar image-processing opencv

image-processing - imagen - opencv python machine learning



Cómo afilar una imagen en OpenCV? (4)

Cómo afilar una imagen usando OpenCV ? Hay muchas formas de suavizar o difuminar, pero ninguna de las que pude ver de nitidez.


Prueba con esto:

cv::bilateralFilter(img,9,75,75);

Puede encontrar más información here



Se describe un procedimiento general en el artículo de wikipedia sobre enmascaramiento de enfoque : se usa un filtro suavizado gaussiano y se resta la versión suavizada de la imagen original (de forma ponderada para que los valores de un área constante permanezcan constantes).

Para obtener una versión más nítida del frame en la image : (ambos cv::Mat )

cv::GaussianBlur(frame, image, cv::Size(0, 0), 3); cv::addWeighted(frame, 1.5, image, -0.5, 0, image);

Los parámetros allí son algo que necesitas ajustar por ti mismo.

También hay afilado laplaciano, deberías encontrar algo sobre eso cuando buscas en Google.


puede encontrar un código de muestra sobre la nitidez de la imagen usando el algoritmo "máscara de enfoque" en la documentación de OpenCV

los valores cambiantes de sigma , threshold , amount darán 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);