Así que estoy tratando de dibujar el convexHull de un contorno en python, sin embargo, al imprimir la imagen no cambia.
roi=mask[y:y+h,x:x+w]
roi = cv2.fastNlMeansDenoisingColored(roi,None,15,15,7,21)
hull = cv2.convexHull(cnt)
cv2.drawContours(roi,[hull],0,(147,0,255),2)
cv2.imshow(str(i),roi)
blank_image[y:y+h,x:x+w] = roi
Sin embargo, las imágenes que muestran son exactamente el mismo si yo no incluir el código. Busqué en internet, pero parece no puede encontrar la respuesta.
Aquí se muestra un ejemplo de Imagen:
- Alguien sabe? Todavía no puede encontrar una solución.
- puedes subir la imagen que está usted trabajando?
- Es muchas imágenes, cada una de las imágenes se umbrales concretos a cabo. Estoy creando un programa de OCR de la plataforma, por lo que cada retorno de la inversión es de un carácter diferente.
- Acabo de añadir una imagen de muestra. Que es lo que generalmente apariencia; sin embargo, el espacio en blanco alrededor del personaje se amplió un poco más.
He utilizado el siguiente código para obtener convex hull por la imagen dada por usted:
Ya que los contornos se basan en la región en blanco en una imagen, yo era capaz de obtener dos tipos de contornos mediante la alteración de línea 5 en el código.
CASO 1 :
Yo era capaz de obtener esta:
CASO 2 :
cuando yo invertir la imagen binaria
Ahora, cuando me cambio el quinto línea en el segmento de código, obtengo esto:
ret, thresh = cv2.threshold(img_gray, 127, 255, 1)
Esto es debido a que en caso 1 el contorno se encuentran sobre la base de esta imagen
Ahora en caso 2 el contorno se encuentran sobre la base de esta imagen
Como se puede ver, los contornos se encuentran basados en la blanco región en la imagen binaria.
Espero que esto ayude.
He utilizado EN ESTE ENLACE para obtener el código y por referencia.