2012-07-05 11 views
10

OpenCV'deki HoughLines veya HoughLinesP işlevleri, HoughCircles işlevi gibi toplayıcı sırasındaki satırların listesini döndürüyor mu? Satırların sırasını bilmek istiyorum. Aynı zamanda hatlar için bir akümülatör değeri elde etmek çok kullanışlı olacaktır, böylece sabit bir yerine akıllı ve uyarlanabilir bir eşik kullanılabilir. rewriting OpenCV myself olmadan sipariş veya akümülatör değeri mevcut mu?OpenCV En güçlü hatlar

+1

İyi biridir. Her zaman hatların sırayla verildiğini farz ettim. Ve bu varsayım şimdiye kadar elde ettiğim sonuçlarla tutarlı oldu ... Ancak emin olmak güzel olurdu. –

cevap

11

HoughTransform, oy sayısına göre azalan satırları sipariş eder. here

kodunu görebilirsiniz. Ancak, işlev sayılırken oy sayımı kaybedilir - bu, OpenCV'yi değiştirmenin tek yolu.

İyi haber şu ki, bu çok karmaşık değil - bir kez kendim yaptım. Çıkışı vector<Vec2f>'dan vector<Vec3f>'a değiştirmek ve son paramın oy sayımı ile doldurulması için dakikaların bir ölçüsüdür. hough C uygulanan ve bunun üzerinden bir sarıcı C++ orada, bu yüzden uygulama ve sarmalayıcı hem değiştirmek zorunda -

Ayrıca, üçüncü parametre eklemek için CvLinePolar değiştirmek zorunda. değiştirmek için

ana kod burada

for(i = 0; i < linesMax; i++) 
{ 
     CvLinePolar line; 
     int idx = sort_buf[i]; 
     int n = cvFloor(idx*scale) - 1; 
     int r = idx - (n+1)*(numrho+2) - 1; 
     line.rho = (r - (numrho - 1)*0.5f) * rho; 
     line.angle = n * theta; 

     // add this line, and a field voteCount to CvLinePolar 
     // DO NOT FORGET TO MODIFY THE C++ WRAPPER 
     line.voteCount = accum[idx];   

     cvSeqPush(lines, &line); 
} 
+0

Bunu açık ve kodla işaretlediğiniz için teşekkür ederiz. Olasılıksal versiyonu kullanıyorum ve koddan geçiyorum, işleri hızlandırmak için linesMax'ı getirmek güzel olurdu. – zzzz

+1

Olasılık aynı dosyada, ben zaten buldum düşünüyorum. Hat aramasında farklı yaklaşım, oy sayısının klasik H. ile ilgili olmadığı anlamına gelir. Bir satırda gerekli oylar olduğu sürece, sonuç kuyruğunda itilir. Hiçbir sıralama yapılmaz. – Sam

+0

Merhaba, Bu parçayı yenilemekten ötürü özür dilerim, ancak probalistic hough transformesinde akümülatör değerini elde etmek için bir fikriniz var mı? Aktarım matrisinde satırın oylarının nerede olduğundan emin değilim. – Aeefire