Я пытаюсь обнаружить фоновые линии предварительно обработанного бинарного изображения газетной статьи, используя преобразование линий Хафа.
Код, который я использовал, приведен ниже, и он обнаруживает только одну вертикальную фоновую линию, но я хочу обнаружить все вертикальные фоновые линии.
Как я могу улучшить свой код, чтобы обнаруживать все только вертикальные фоновые линии, как я отметил в ожидаемом выходном изображении?
import cv2 as cv
import numpy as np
import os
#binary image
image = cv.imread('../outputs/contour.jpg')
gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) # convert2grayscale
(thresh, binary) = cv.threshold(gray, 150, 255, cv.THRESH_BINARY | cv.THRESH_OTSU)
#cv.imshow('binary',binary)
#cv.waitKey(0)
minLineLength = 10
maxLineGap = 40
lines=np.array([])
lines = cv.HoughLinesP(binary,rho=np.pi/180,theta=np.pi/180,threshold=10,lines=lines,minLineLength=minLineLength,maxLineGap=maxLineGap)
for x1,y1,x2,y2 in lines[0]:
cv.line(image,(x1,y1),(x2,y2),(0,255,0),2)
cv.imshow('lines',image)
path='../outputs'
cv.imwrite(os.path.join(path , 'line.jpg'), image)
cv.waitKey(0)
Ожидаемый вывод выглядит следующим образом:
Но вывод, который я получаю из приведенного выше кода, таков:
'../outputs/contour.jpg'
, который сгенерировал этот шаблон? - person Bilal   schedule 24.02.2021