Я хотел бы услышать от вас некоторые идеи. Я столкнулся с некоторыми проблемами при выполнении обнаружения объектов с помощью opencv/python.
Если вы посмотрите на изображение, я уже знаю четыре угла двух зеленых ящиков. Объект, который я пытаюсь обнаружить, - это красная футеровка, форма шланга. Мой план состоит в том, чтобы получить ширину (ш) шланга из зеленой коробки (что я уже сделал) и найти параллельные линии, которые имеют расстояние w друг от друга.
Здесь я столкнулся с двумя проблемами и искал потенциальные решения.
Как я могу обнаружить все параллельные линии? Я думаю, что хорошо начать с четырех углов зеленой коробки, потому что точки находятся на пути красных линий. Хотелось бы, чтобы я мог проектировать строки из углов, заставляя их следовать за белыми пикселями, пока они не встретили тупик или острый угол. Есть ли способ перемещаться по белым контурам?
Следующая проблема (при условии, что Q1 была решена) заключается в том, что красные линии закрыты посередине желтой частью. Как я могу заставить две красные части рассматриваться как один и тот же объект? Я ищу самый конец красных линий внизу.
Как я могу обнаружить все параллельные линии?
Один из подходов, который я могу придумать, - использовать HoughLines
для обнаружения линий в вашем изображении. По этой ссылке:
lines = cv2.HoughLines(edges,1,np.pi/180,200)
Это вернет все обнаруженные линии, параметризованные двумя переменными: rho (расстояние от источника) и theta (угол от начала координат)
После этого параллельными линиями будут те, которые имеют одинаковый угол (тета), но разные значения rho.