2016-09-27 25 views
5

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.
enter image description here Ş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

+0

Resmi soruya ekleyebilirsiniz. – ChronoTrigger

cevap

5

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.

1

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.