Как увеличить размер строки для поиска на изображении в методе opencv houghlines? - PullRequest
0 голосов
/ 09 мая 2020

У меня есть изображение плана этажа. С помощью метода opencv houghlines я хочу идентифицировать в нем стены. Поскольку размер линий стен больше, чем линий объектов на изображении, я хочу увеличить размер линии для поиска. Как правило, код идентифицирует линии в объектах даже при увеличении порогового значения. Я новичок в этой платформе. Кто-нибудь может мне помочь? This is the floorplan image

Когда я увеличиваю пороговое значение, некоторые линии объектов остаются, но некоторые линии на стенах отсутствуют. Вот результат, когда я увеличиваю пороговое значение This is the result I got

Вот код:

import cv2
import numpy as np
img = cv2.imread("C:\\Users\\User\\Desktop\\tkinter_codes\\floorplans\\ROBIN\\Dataset_3roomsmall\\Cat1_1.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray,900,1000,apertureSize = 5)
cv2.imshow('edges', edges)
lines = cv2.HoughLinesP(edges,1,np.pi/180,100,minLineLength=100,maxLineGap=10)
for line in lines:
    x1,y1,x2,y2 = line[0]
    cv2.line(img,(x1,y1),(x2,y2),(0,255,0),2)

cv2.imshow('image', img)
k = cv2.waitKey(0)
cv2.destroyAllWindows()

1 Ответ

0 голосов
/ 09 мая 2020

Используйте морфологические операции для предварительной обработки этого изображения. Например:

import cv2

original=cv2.imread('kDA62.jpg', cv2.IMREAD_GRAYSCALE)
se=cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(5,5))
opening=cv2.dilate(original,se,iterations = 1)
opening=cv2.erode(opening,se,iterations = 1)
cv2.imwrite('out_9.png', opening)

enter image description here

...