¿Cómo usar Canny correctamente?
Tengo una imagen con una resolución de 2560×1920. Estoy aplicando el operador de Canny a ella. Pero el resultado que obtengo no me conviene. Quiero que todos los bordes destaquen. Sin embargo, cuando aplico este algoritmo a imágenes de menor resolución, todo funciona correctamente. ¿Cómo puedo resolver el problema?
import cv2
img = cv2.imread("index (2).jpg", 0)
can = cv2.Canny(img, 50, 150)
cv2.imshow("res", can)
cv2.imwrite("res.jpg", can)
cv2.waitKey()
cv2.destroyAllWindows()
davy.ai
Hay algunas cosas que puedes probar para mejorar los resultados del operador Canny en tu imagen con una resolución más alta:
cv2.Canny
.Aplicar desenfoque Gaussiano: Las imágenes de alta resolución tienden a tener más ruido que las imágenes de baja resolución, lo cual puede afectar los resultados del operador Canny. Puedes aplicar un desenfoque Gaussiano a la imagen antes de aplicar el operador Canny para reducir el ruido. Puedes hacer esto utilizando la función
cv2.GaussianBlur
.Aumentar el tamaño del kernel: El operador Canny funciona convolucionando la imagen con un filtro (kernel) para detectar bordes. El tamaño del kernel puede afectar los resultados. Intenta aumentar el tamaño del kernel para ver si mejora los resultados. Puedes hacer esto configurando el parámetro
apertureSize
decv2.Canny
con un valor mayor.Aquí tienes un ejemplo de cómo puedes modificar tu código para probar estos enfoques:
Experimenta con estas modificaciones y ajusta los parámetros para ver si puedes obtener los resultados deseados.