OpenCV fillConvexPoly()填充结果与输入多边形不符问题求助
问题:OpenCV提取多边形文本区域时出现填充缺失
我正在为手写文本识别(HTR)的CRNN模型准备数据集,流程如下:
- 用eScriptorium调整文本分割与转录
- 导出ALTO格式XML文件(每张图像对应一个含文本区域坐标的XML)
- 解析XML提取文本图像区域并单独导出
参考相关解决方案后,应用代码时出现问题:
eScriptorium中定义的文本区域如下:
使用的代码:
# 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]
运行后生成的图像区域结果:
可以看到,部分本应在掩码内的区域未被保留,导致这些区域的图像像素没有被复制。我已经确认构成多边形的坐标已正确解析并传递给OpenCV,找不到问题原因,希望了解类似问题的解决经验或避免方法。
提前致谢
内容的提问来源于stack exchange,提问作者Ricardo Palomares Martínez
相关产品推荐
相关产品推荐

