Tal y como se expuso en el anterior post, lo primero que se debe hacer para binarizar una imagen es convertirla a escalas de grises. Para ello, leeremos la imagen en escala de grises, haciéndolo de la siguiente forma:
img = cv2.imread('coca_color.png',0)
También lo podríamos hacer como hemos hecho en el post de conversión a escala de grises.
Posteriormente estableceremos un umbral de 160 y obtendremos la imagen binarizada no invertida (lo haremos para compararla con el resultado final).
umbral = 160
_ , imgBin = cv2.threshold(img, umbral, 255, cv2.THRESH_BINARY)
Para generar la imagen binarizada invertida lo haremos de una forma muy similar a la anterior, a diferencia del ultimo parametro pasado al método threshold(). Este último será cv2.THRESH_BINARY_INV.
_ , imgBinInv = cv2.threshold(img, umbral, 255, cv2.THRESH_BINARY_INV)
Finalmente visualizamos todas las imagenes para ver el resultado.
cv2.imshow('original', img)
cv2.imshow('binaria', imgBin)
cv2.imshow('binaria_inv', imgBinInv)
cv2.waitKey(0)
cv2.destroyAllWindows()
Código completo:
import cv2
img = cv2.imread('coca_color.png',0)
umbral = 160
_ , imgBin = cv2.threshold(img, umbral, 255, cv2.THRESH_BINARY)
_ , imgBinInv = cv2.threshold(img, umbral, 255, cv2.THRESH_BINARY_INV)
cv2.imshow('original', img)
cv2.imshow('binaria', imgBin)
cv2.imshow('binaria_inv', imgBinInv)
cv2.waitKey(0)
cv2.destroyAllWindows()
Resultado obtenido:
No hay comentarios:
Publicar un comentario