OpenCV Python中的变形操作

时间:2017-12-26 07:09:36

标签: python numpy opencv

我有以下带有手写文字和页面线条的图像。我想提取删除图像中的线条,以便只留下手写文本。 我尝试使用opencv中的Python来实现它。但是,我没有取得最好的成绩。请帮忙!

import numpy as np
import cv2
image = cv2.imread('image.jpg')
gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
(gray,50,150,apertureSize = 3)
cv2.imwrite('edges-50-150.jpg',edges)
minLineLength=100
lines = cv2.HoughLinesP(image=edges,rho=1,theta=np.pi/180, threshold=100,lines=np.array([]), minLineLength=minLineLength,maxLineGap=80)
a,b,c = lines.shape
for i in range(a):
    x = lines[i][0][0] - lines [i][0][2]
    y = lines[i][0][1] - lines [i][0][3]
    if x!= 0:
        if abs(y/x) <1:
            cv2.line(gray, (lines[i][0][0], lines[i][0][1]), (lines[i][0][2], lines[i][0][3]), (255, 255, 255), 1, cv2.LINE_AA)
se = cv2.getStructuringElement(cv2.MORPH_ELLIPSE , (3,3))
gray = cv2.morphologyEx(gray, cv2.MORPH_CLOSE, se)
cv2.imwrite('houghlines.jpg', gray)
cv2.imwrite('another.png', gray)

Image being tested on

Results I get with the code

1 个答案:

答案 0 :(得分:0)

我对OpenCV有点新意,但是在你试图删除这些线后,你试着收到这些字母?
解决方案可能是创建一个空图像并将字母放在相同的坐标上 也许过滤最小尺寸的正面字母......