Menú principal

domingo, 14 de febrero de 2021

Binarizaión inversa de una imagen - Python

En este ejercicio trataremos de realizar una binarización inversa a la siguiente imagen:

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