Solución:
La siguiente línea realiza la operación de umbralización otsu:
cv::threshold(im_gray, img_bw, 0, 255, CV_THRESH_BINARY | CV_THRESH_OTSU);
-
im_gray
es una imagen de origen de 8 bits, -
img_bw
es un resultado, - 0 significa nivel de umbral que en realidad se omite porque usamos la bandera CV_THRESH_OTSU,
- 255 es un valor que se asignará a los píxeles respectivamente en el resultado (es decir, a todos los píxeles cuyo valor en la fuente sea mayor que el nivel de umbral calculado)
-
CV_THRESH_BINARY | CV_THRESH_OTSU
es una bandera necesaria para realizar el umbral de Otsu. Porque, de hecho, nos gustaría realizar un umbral binario, por lo que usamosCV_THRESH_BINARY
(puede usar cualquiera de las 5 banderas que ofrece opencv) combinado conCV_THRESH_OTSU
Vínculo a la documentación: http://docs.opencv.org/modules/imgproc/doc/mis Miscellaneous_transformations.html#threshold
En Python es simple
import cv2
img = cv2.imread('img.jpg',0) #pass 0 to convert into gray level
ret,thr = cv2.threshold(img, 0, 255, cv2.THRESH_OTSU)
cv2.imshow('win1', thr)
cv2.waitKey(0)
cv2.destroyAllWindows()
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)