Как обнаружить квадрат на изображении с шумным фономPython

Программы на Python
Anonymous
Как обнаружить квадрат на изображении с шумным фоном

Сообщение Anonymous »

У меня есть несколько изображений рассадных участков. Я хочу запустить код, чтобы разрезать каждый квадратный горшок и сохранить его.
Изображение
Для этого сначала преобразуйте его в серое изображение, затем, чтобы уменьшить шум, сделайте его синим и, наконец, преобразуйте его в двоичный формат с использованием порогового значения.
[img]https: //i.stack.imgur.com/GxR8I.jpg[/img]

Теперь я пытаюсь найти геометрическое местоположение каждого квадрата, используя cv.findContours, но, похоже, просто могу возвращать точки в углу изображения вместо поиска угла каждого квадрата.

Код: Выделить всё

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
blurred = cv2.GaussianBlur(gray, (3, 3), 0)
edges = cv2.Canny(blurred, 10, 50)

thresh = cv2.adaptiveThreshold(gray, 400, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 7, 4)
lines = cv2.HoughLines(thresh, rho=1, theta=np.pi/180, threshold=100)
contours, hierarchy = cv2.findContours(edges, cv2.RETR_LIST, cv2.CHAIN_APPROX_NONE)
squares = []
for contour in contours:
peri = cv2.arcLength(contour, True)
approx = cv2.approxPolyDP(contour, 0.02 * peri, True)
if len(approx) == 4:
x, y, w, h = cv2.boundingRect(approx)
aspect_ratio = float(w) / h
if 0.98 

Подробнее здесь: [url]https://stackoverflow.com/questions/78346052/how-to-detect-square-in-image-with-noisy-background[/url]

Вернуться в «Python»