Bir Lidar sensöründen (Pepperl-Fuchs R2000) veri alıyorum (mm ve amplitüd olarak) veri takibi için bir proje üzerinde çalışıyorum. OpenGL ve C++ kullanımı Linux makinesinde veri gösteriyorum.
Şimdi, kümeleri uzaklıklara göre gruplandırmak istiyorum. Tüm kümeleri C++ 'da ayrı kaplara nasıl yerleştireceğimi bilmiyorum? OpenGL'den çıkış verilerini nesne izleme için OpenCV'deki giriş verileri olarak kullanmam mümkün mü?OpenGL kullanarak C++ 'da veri kümeleme
cevap
OpenGL verilerini OpenCV yapılarına dönüştürmelisiniz. Verileri paylaşmak için OpenCV'de bazı yerleşik işlevler var, look here. Ayrıca OpenGL noktalarını bir OpenCV Mat
veya OpenCV cv::Point3f
bir vektörüne kopyalayabilirsiniz. Nasıl yapılacağı OpenGL yapısına bağlıdır. OpenGV'den OpenCV'ye matrisleri dönüştürmeniz gerekiyorsa, OpenGV matrislerini sütun-ana sırada depolar, OpenCV ise sıralı sıradadır.
Daha sonra, OpenCV, bazı (sınırlı) clustering solutions sağlar. Uygulamanıza bağlı olarak, k-araçları işe yarayabilir, ancak QuickShift veya DBSCAN gibi diğer kümeleme tekniklerine de bakmanızı öneririm.
Tüm bu verileri OpenCV'de Map (veya [Point_] veya [KeyPoint] kullanımınıza göre 2) işlevini kullanarak kolayca eşleyebilirsiniz.
Bundan sonra DBSCAN kullanılmasını öneririm çünkü yoğunluğa göre çalışır ve K-Means gibi küme sayısına ihtiyaç duymaz (çünkü önceden tanımlanmış sayıda kümeyi burada düşünemezsiniz).
Not: Internet'te DBSCAN için C++ kodunu kolayca bulabilirsiniz.
Resmi soruya ekleyebilirsiniz. – ChronoTrigger