В настоящее время я работаю над проектом, в котором я пытаюсь обнаружить несколько монет, лежащих на плоской поверхности (например, стол). Монеты не перекрываются и не скрыты другими предметами. Но могут быть видны другие объекты, и условия освещения могут быть не идеальными... По сути, подумайте, снимаете ли вы свой стол, на котором есть монеты.
Таким образом, каждая точка должна быть видна как эллипс. Поскольку я не знаю положение камеры, форма эллипсов может варьироваться от круга (вид сверху) до плоских эллипсов в зависимости от угла, из которого сняты монеты.
Моя проблема в том, что я не уверен, как извлечь монеты и, наконец, наложить на них эллипсы (которые я ищу для дальнейших расчетов).
На данный момент я только что сделал первую попытку, установив пороговое значение в OpenCV, используя findContours() для получения контурных линий и подгонки эллипса. К сожалению, контурные линии очень редко дают мне форму монет (отражения, плохое освещение,...), и этот способ также не является предпочтительным, так как я не хочу, чтобы пользователь устанавливал какой-либо порог.
Другая идея заключалась в том, чтобы использовать метод сопоставления шаблонов эллипса на этом изображении, но, поскольку я не знаю ни угла камеры, ни размера эллипсов, я не думаю, что это сработает хорошо...
Поэтому я хотел спросить, может ли кто-нибудь сказать мне метод, который будет работать в моем случае.
Есть ли быстрый способ извлечь три монеты из изображения? Расчеты должны быть выполнены в реальном времени на мобильных устройствах, и метод не должен быть слишком чувствительным для разных или меняющихся источников света или цвета фона.
Было бы замечательно, если бы кто-нибудь мог дать мне какие-либо советы о том, какой метод может работать для меня.