Я хочу найти точные контурные данные каждой комнаты, такие как спальни и гостиные, используя OpenCV и Python, но не могу сделать это хорошо. Может быть, использовать CNN?
Я пытался использовать cv2.erode
, cv2.dilate
и cv2.findContours
.
Вот пример плана этажа для сканирования: Я действительно ожидаю, что результат содержит все пространство специальной комнаты, включая мебель, но не может содержать пространство в других комнатах, таких как спальня не может вмещать в себя пространство гостиной, а контур не может содержать изгибов. Я исключаю вот так:
Вот мой код на питоне:
import cv2
import random
img = cv2.imread('./lj_hx/zz.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
_, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
cv2.imshow("thresh", thresh)
mor_img = cv2.morphologyEx(thresh, cv2.MORPH_OPEN, (5, 5), iterations=3)
_, contours, _ = cv2.findContours(mor_img, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
sorted_contours = sorted(contours, key=cv2.contourArea, reverse=True)
for c in sorted_contours[1:]:
area = cv2.contourArea(c)
if area > 6000:
cv2.drawContours(img, [c], -1, (random.randrange(0, 255), random.randrange(0, 256), random.randrange(0, 255)), 3)
cv2.imshow("mor_img", mor_img)
cv2.imshow("img", img)
cv2.waitKey(0)
except for 1 bedroom, where the bed is not included
Я просто хочу решить такие проблемы, мне очень нужны данные контура, на комнату должна быть включена внутренняя мебель - person lj w   schedule 30.12.2018