Вы видели пример кода из HoughLinesP документации по функциям?
Я думаю, вы можете использовать его в качестве отправной точки для своего алгоритма.Чтобы выбрать горизонтальные вертикальные линии, вам просто нужно отфильтровать другие линии по углу линии.
ОБНОВЛЕНИЕ:
Как я вижу, вам нужно найти не линии, а горизонтальныевертикальные края на странице.Для выполнения этой задачи вам нужно объединить несколько этапов обработки, чтобы получить хорошие результаты.
Для вашего изображения я могу получить хорошие результаты, комбинируя обнаружение краев Canny с HoughLinesP.Вот мой код (я использовал Python, но я думаю, что вы видите идею):
img = cv2.imread("C:/temp/1.png")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray, 80, 120)
lines = cv2.HoughLinesP(edges, 1, math.pi/2, 2, None, 30, 1);
for line in lines[0]:
pt1 = (line[0],line[1])
pt2 = (line[2],line[3])
cv2.line(img, pt1, pt2, (0,0,255), 3)
cv2.imwrite("C:/temp/2.png", img)
Результат выглядит так: