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

基于OpenCV与Python按厚度移除图像细线条保留文本方法

问题:去除图像中指定厚度以下的横竖细线且不损伤文本清晰度

经过前期多步处理,得到如下待处理图像:
待处理图像示例

处理目标为移除图像中厚度小于指定阈值的区域,删除这类细竖线(注:这类线条也可能为横线,但不会是斜线),仅保留文本框区域。

此前曾尝试调用cv2.erode实现效果,但该方法会对图像全区域生效,对应代码如下:

cv2.erode(masked_text_box, cv2.getStructuringElement(cv2.MORPH_RECT, (2,2) ))

该操作会明显损伤文本区域清晰度,而本处理流程后续环节为OCR识别,无法接受文本清晰度下降的问题,因此判断基于几何特征的处理方案会是更优选择。

核心诉求:寻找一种高效实现方法(非暴力逐像素遍历邻域校验的bruteforce方式),可以过滤掉邻域内非黑色像素数量小于N的像素。

补充说明

根据评论区建议,本次特定场景下待移除的边框均为RGB值(0, 255, 0)的绿色,针对该场景最简单的解决方案是将所有绿色像素转换为黑色(0,0,0),实现代码如下:

masked_text_box[np.all(masked_text_box == (0, 255, 0), axis=-1)] = (0,0,0)

但该方案仅适配当前特定颜色细线的场景,仍希望征集更通用的其他解决方案,因此问题保持开放。


内容的提问来源于stack exchange,提问作者Alessandro Togni

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 11:33:14