You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenCV fillConvexPoly()填充结果与输入多边形不符问题求助

问题:OpenCV提取多边形文本区域时出现填充缺失

我正在为手写文本识别(HTR)的CRNN模型准备数据集,流程如下:

  • 用eScriptorium调整文本分割与转录
  • 导出ALTO格式XML文件(每张图像对应一个含文本区域坐标的XML)
  • 解析XML提取文本图像区域并单独导出

参考相关解决方案后,应用代码时出现问题:

eScriptorium中定义的文本区域如下:
在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]

运行后生成的图像区域结果:
上述Python代码生成的图像区域结果

可以看到,部分本应在掩码内的区域未被保留,导致这些区域的图像像素没有被复制。我已经确认构成多边形的坐标已正确解析并传递给OpenCV,找不到问题原因,希望了解类似问题的解决经验或避免方法。

提前致谢


内容的提问来源于stack exchange,提问作者Ricardo Palomares Martínez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 12:43:15