Hey, robotun vizyon sistemini oynayan basit bir satranç kodluyorum, daha önceki bazı araştırmalarda kamera ve standart satranç setinin kullanılmasına izin vermeye çalışıyorum ve her ikisine de izin var Oyun sırasında hareket etmek. Şimdiye kadar panoyu web-cam ile elde edilen bir görüntüde bulabilirim ve neyin değiştiğini belirlemek için ardışık görüntülerin farkını alarak hamleleri tespit etmek istiyorum, daha sonra hamleleri algılamak için kurulu doluluk hakkında önceki bilgileri kullanın.Satranç Tespit OpenCV araçları kullanarak birbirini takip eden görüntü farklılıklarından hareket ediyor
Sorun şu ki, şu andaki boru hattı şu şekilde gider: Şu anki boru hattım şu şekilde gider: İki resmi çıkar -> Histogram fark görüntüsünü eşitler -> küçük değişiklikleri kaldırmak için görüntüyü erozyona uğratıp genişlet -> bir ikili kopya yapın ve mesafe dönüşümü yapın -> En büyük blobu alın (DT ve sel blobunu doldurduktan sonra en yüksek değere karşılık gelir) -> DT, değişikliği yoksaymaya yetecek kadar küçük bir değer döndürene kadar tekrarlayın.
Tüm bunları OpenCV ve C++ ile kodluyorum. Ancak sel dolgusu her zaman ya blobları doldurmuyor gibi görünüyor, bu yüzden çoğu durumda sadece bir değişiklik tespit edildi. Ayrıca cv::inpaint
kullanmayı denedim ama bu da işe yaramadı. Yani sorum şu; sadece yanlış yaklaşımı kullanıyorum ya da bir şekilde turing, değişiklik tespitini daha güvenilir hale getirebilir. Birincisi, insanlar alternatif yollar önerebilir, C++/Python ve/veya OpenCV'de makul bir zamanda tercih edilebilir bir şekilde tercih edilebilir mi?
sayesinde
bir son not: Eğer yapabilirsem bunun için C++ 'dan emin olurdum. Muhtemelen Python ile çok daha hızlı yapılsın.Elbette C++ 'da kullanmanız gereken gerçekten değerli bir kütüphane bulamazsınız. Bu durumda sarın ve python'dan kullanırdım. –
önerileriniz için teşekkürler, C++ 'yı tamamen terk etmekten korkmuyorum, hepiniz python ile yapabilirim, daha çok fikri aradım. İlk aşamada sahip olduğum kısıtlamalardan biri, kurulun herhangi bir şekilde değiştirilmesinin gerekmemesidir (bu yüzden hiçbir belirteç veya benzeri bir şey yoktur), dolayısıyla bu yorumu dikkate alan herhangi bir yorumu gerçekten takdir ediyorum – makokal
Renklere güvenebilirsiniz. parçalar siyah/beyaz mı? Eğer öyleyse, başlangıçta tahta üzerine PCA yapabilir ve iki tarafın rengini belirleyebilirsin. Ama o zamandan sonra yönünü kaybetmemek için tahtadan takip etmelisin. –