pnp2000
-
Количество публикаций
9 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные пользователем pnp2000
-
-
попробуйте выделить контуры и пихать их, а не изображения.
вот как тут, через cv.FindContours (правда интерфейс тут старый)
http://stackoverflow.com/questions/8785664/finding-shapes-in-an-image-using-opencv
Вобщем попробовал совать контуры но один хрен ничего не получается, я непонимаю как этот MatchShapes работает, у меня уже вообще такое чусвство что это dummy функция и она вообще непашет в принципе
-
Выше ошибся со ссылкой.
Надо сюда: http://www.compvision.ru/forum/index.php?showtopic=996
Правда MatchShapes я там не нашел.
Вот и я о том же, я хоть и не силён в питоне но пока более менее разбирался с тем функциями которые пробовал, а в эту просто упёрся и немогу понять что не так
-
сделал
mat_mask = cv.GetMat(mask) mat_grayscale = cv.GetMat(grayscale) MatchShapes = cv.MatchShapes(mat_mask, mat_grayscale, cv2.cv.CV_CONTOURS_MATCH_I2, None)
всё-равно тоже самое, и как на зло примеров на питоне нету, чтобы хоть посмотреть как это должно работать
-
Вот попытался попробовать с cv.MatchShapes
capture = cv.CaptureFromCAM(0) mask_xgo = cv.LoadImage('go.jpg') while True: frame = cv.QueryFrame(capture) image_size = cv.GetSize(frame) grayscale = cv.CreateImage(image_size, 8, 1) image_size_mask = cv.GetSize(mask_xgo) mask = cv.CreateImage(image_size_mask, 8, 1) cv.SetZero(grayscale) cv.SetZero(mask) cv.CvtColor(frame, grayscale, cv.CV_BGR2GRAY); cv.CvtColor(mask_xgo, mask, cv.CV_BGR2GRAY); MatchShapes = "2342.34" float(MatchShapes) MatchShapes = cv.MatchShapes(mask, grayscale, cv.CV_CONTOURS_MATCH_I2, None)
всёвремя вываливается в
TypeError: 'a float is required'
ужк блин незнаю что нетак делаю
-
Наверно да, в принципе ситуация похожая главное чтобы чтоб зработало под питоном, а то я недавно нашёл интересную функцию в OpenCV ,а под питоном она не реализованна , но тут по беглому изучению кода вроде проблем не должно быть, спасибо за инфу, будет чем занять выходные
-
Все зависит от характера объектов. Вы-бы лучше выложили пример изображения с объектами.
да пока натурного макета нету и картинки пока тоже нету, я вот только не понимаю может ли matchShapes или MatchContours работать с контурами если они могут сдвигаться на произвольный угол
-
если это фигуры, то можно выделить контуры и потом сравнить их с эталонными через matchShapes.
да я уже тоже начал тоже думать что MatchTemplate не самый лучший вариант, как я понимаю MatchTemplate это простое побитовое вычитание массива до тех пор пока сумма всех значений не станет равна нулю, пойду покурю matchShapes , а то получается любой поворот фигуры и она уже не определяется MatchTemplate'ом
-
Вобщем есть такая задачка, надо на столе находить объекты и классифицировать их в соответствии базой, грубо говоря на столе есть несколько листов бумаги разных форм и размеров, надо с достаточно большой точностью (не более 0,5-1vv) найти их положение, в принципе камера находится на фиксированном расстоянии от стола и размеры искомых объектов есть, делаю всё на питоне, как я понимаю тут подходит cvMatchTemplate, или тут нужен другой подход, читал про распознание фигур но если фигура не меняет угла и расстояние то по видимому cvMatchTemplate будет работать быстрее и надёжнее, или я не прав??? просто только недавно начал мучать питона и opencv
Распознавание объектов на столе
в OpenCV
Опубликовано · Report reply
Вобщем в проблеме float я разобрался, и всё вроде даже работает, но только если я сравниваю фигуры на одной картинке, при сравнении с другой картинкой возвращает нули, с чем это может быть связанно????