2017-02-16 11 views
0

Я работаю над школьным проектом, сделанным на python с opencv, и у меня есть вопрос в двух частях.Каков наилучший способ для opencv выбрать объект в поле?

У меня есть 6 фотографий объекта (one of each side) и один из a box filled with the same object. Качество фотографий ужасное, но мои следующие тесты будут сделаны с лучшими фотографиями. Моя цель - найти наиболее доступный объект в поле (чтобы его поймать). Я знаю различные алгоритмы обнаружения признаков и контуров, и я опробовал некоторые из них с приведенными выше фотографиями, но я не знаю, какой метод дал бы мне наибольшую вероятность найти наиболее доступный объект.

Теперь идет вторая часть. Когда я нашел объект, я хочу найти его местоположение на картинке, и я не знаю, как использовать функции или результат определения контура, чтобы получить позицию в пикселе объекта.

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

+0

Для вашего первого вопроса попробуйте ** SIFT ** –

+0

После получения функций SIFT выполните ** сопоставление ** –

+0

Спасибо за ваш ответ, я не могу проверить его прямо сейчас, но я сделаю. У меня просто есть простой вопрос, не факт, что у меня есть коробка, заполненная тем же самым объектом проблемой? Разве SIFT не узнает все объекты? – bachinblack

ответ

0

Как было предложено Риком М в комментариях, я опробовал решение с использованием обнаружения точки ORB.

Я выполнил Распознавание контрольной точки ORB для изображений, предоставленных вами, с использованием THIS DOCUMENT.

Вот что я получил:

enter image description here

enter image description here

Существуют и другие методы получения ключевых точек. Посетите THIS PAGE более (SIFT, SURF, КРАТКИЙ и т.д.)

Тогда я выполнил Функции соответствия с помощью THIS DOCUMENT:

enter image description here

Как вы можете видеть, я провел матчи всего за 5 ключевые точки. 3 из этих ключевых точек, похоже, соответствуют правильно. Я не совпадал со всеми ключевыми точками, иначе это было бы непонятно. Если у вас есть лучшее качество изображения, большинство матчей будут правильными.

Для этого случая я использовал Соответствие грубой силы. В упомянутой документации содержится подробная информация о методе FLANN, соответствующем методу.

+0

Спасибо за ваш ответ, вы правы, если я попытаюсь с более качественными изображениями и всеми ключевыми точками, Я мог бы найти лучший объект. – bachinblack