
Мой код выглядит следующим образом:
Код: Выделить всё
import cv2
import numpy as np
img = cv2.imread("imgs/wall.jpeg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#cv2.imshow('gray', gray)
#cv2.waitKey(0)
edges = cv2.Canny(gray,190,200,apertureSize = 3)
cv2.imshow('edges',edges)
cv2.waitKey(0)
_, contours,h = cv2.findContours(edges, 1,2)
for cnt in contours:
approx = cv2.approxPolyDP(cnt,0.01*cv2.arcLength(cnt,True),True)
if len(approx)==4:
cv2.drawContours(img,[cnt],0,(0,0,255),2)
cv2.imshow("img", img)
cv2.waitKey(0)

На этом изображении мы ясно видим все прямоугольники, поэтому я подумал, что было бы довольно легко найти все эти прямоугольники, ища контуры. Но оказывается, что это не так. Если я ищу контуры, я получаю следующее:

Это явно не то, что мне нужно. Я тоже пробовал разные вещи, такие как детектор капель или линии, но, похоже, ничего не работает. Я был бы очень рад, если бы кто-нибудь дал мне несколько советов или даже показал, как это нужно делать! Заранее спасибо!
Подробнее здесь: https://stackoverflow.com/questions/530 ... brick-wall
Мобильная версия