Я работаю над проектом обнаружения комнат на изображении в плане этажа, в настоящее время я могу извлечь стены из изображения, но застрял при обнаружении дверей. Я попытался использовать определение ar c, но результаты не очень хорошие. Может кто-то предложить лучший подход.
def door_detection(r_img):
gray =cv2.cvtColor(r_img,cv2.COLOR_BGR2GRAY)
kernel = np.ones((5,5),np.uint8)
erosion = cv2.erode(r_img, kernel, iterations=3)
dilated = cv2.dilate(erosion,kernel,iterations = 3)
blurred = cv2.medianBlur(dilated,5)
canny = cv2.Canny(blurred,100,200)
contours,hierarchy=cv2.findContours(canny,cv2.RETR_TREE,
cv2.CHAIN_APPROX_SIMPLE)
contour_list=[]
for contour in contours:
approx = cv2.approxPolyDP(contour,0.01*cv2.arcLength(contour,True),True)
area = cv2.contourArea(contour)
if ((len(approx) > 10 & (area > 100) ):
contour_list.append(contour)
cv2.drawContours(r_img, contour_list, -1, (255,0,0), 2)
cv2.imshow('dilated',dilated)
cv2.imshow('Objects Detected',r_img)
cv2.imwrite('arcs.jpg',r_img)
if cv2.waitKey(0) & 0xff == 27:
cv2.destroyAllWindows()