【发布时间】:2017-09-28 15:15:19
【问题描述】:
我有这个源图片:
我的目标是删除底线,同时保持字母/数字不变。
这是我使用的代码:
import cv2
import numpy as np
img = cv2.imread('src.png')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray,100,200,apertureSize = 5)
minLineLength = 0
maxLineGap = 19
lines = cv2.HoughLinesP(edges,1,np.pi/180,15,minLineLength,maxLineGap)
for x in range(0, len(lines)):
for x1,y1,x2,y2 in lines[x]:
cv2.line(img,(x1,y1),(x2,y2),(255,255,255),2)
cv2.imshow('hough',img)
cv2.waitKey(0)
我目前取得的最好成绩是这样的:
我怎样才能更好地改进它,尽可能地清洁图像? 比如图像周围的所有杂物,文字下的点和(静止的)线,我该如何去除它们?
谢谢。
OT:有没有办法创建一个这样的轨迹栏来更改参数(apertureSize、minLineLength、maxLineGap 等)以实时查看结果?
【问题讨论】:
-
您是否考虑过在顶部运行 OCR 并使用从中收集的数据将其他所有内容变为白色?
-
事实上是的。考虑到这一点,我昨天使用了 OCR,试图提取字符并删除其他所有内容。但是,正如您所看到的,这里有手写字符,而 OCR 根本就失败了。这是你的意思吗?
-
谢谢,我会尝试将其转换为 Python。 (几乎)不了解 C++ :)
-
@Zindarod 你知道如何将上面的代码实现到 trackbar 中吗?
标签: python opencv hough-transform houghlinesp