OpenCV Python中的变形操作

问题描述 投票:2回答:1

我有下面的图像带有手写文本和页面的行。我想提取删除图像中的线条,以便只留下手写文本。我尝试使用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)

python numpy opencv
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.