Estou tentando seguir a solução detalhada nesta questão para preparar um conjunto de dados para treinar um CRNN para HTR (Handwritten Text Recognition). Estou usando o eScriptorium para ajustar a segmentação e transcrição de texto, exportando no formato ALTO (um XML com coordenadas de região de texto para cada imagem) e analisando o ALTO XML para capturar as regiões de imagem de texto e exportá-las individualmente para criar um conjunto de dados.
O problema que estou encontrando é que tenho a região definida no eScriptorium, assim:
Mas quando aplico este código da solução selecionada para a questão vinculada acima:
# Initialize mask
mask = np.zeros((img.shape[0], img.shape[1]))
# Create mask that defines the polygon of points
cv2.fillConvexPoly(mask, pts, 1)
mask = mask > 0 # To convert to Boolean
# Create output image (untranslated)
out = np.zeros_like(img)
out[mask] = img[mask]
e exibir a imagem, obtenho algumas partes da região de texto preenchidas :
Como você pode ver, algumas áreas que deveriam estar dentro da máscara estão preenchidas e, portanto, os pixels da imagem nelas não são copiados. Eu me certifiquei de que os pixels que formam o polígono foram corretamente analisados e entregues ao OpenCV para construir a máscara. Não consigo encontrar o motivo pelo qual essas áreas estão preenchidas e gostaria de saber se alguém teve um problema semelhante e conseguiu descobrir o motivo ou como evitá-lo.
AIT