этого я думал брать верхний левый угол и от него перемещать x влево пока не пройдет определенное кол-во итераций или он не наткнётся на другой объект. И потом я буду обрезать оригинальную картинку [0:0+775, x:x+1000], расширение должно быть 1000х775. Может я что-то не так делаю и есть проще способ это решить?
Если задача найти левую верхнюю точку всего массива, то код примерно так должен выглядеть: heirachy, cnts = cv2.findContours() top_x = sys.maxsize top_y = sys.maxsize for cnt in cnts: for p in cnt: x, y = p if x < top_x: top_x = x if y < top_y: top_y = y Таким образом находишь левую верхнюю точку бокса всех контуров, далее вбиваешь свою константнуб ширину-высоту, получаешь бокс, обрезаешь по этому боксу - получаешь то, что тебе нужно
Спасибо, но я поздно увидел и сделал немного по другому используя функцию cv2.goodFeaturesToTrack(), а потом находил самый левый X и с ним уже работал.
Обсуждают сегодня