Le funzioni HoughLines o HoughLinesP in OpenCV restituiscono l'elenco di righe nell'ordine dell'accumulatore come fa la funzione HoughCircles? Mi piacerebbe sapere l'ordine delle linee. Sarebbe anche molto utile ottenere il valore dell'accumulatore per le linee in modo da poter utilizzare una soglia intelligente e adattiva invece di una fissa. Il valore dell'ordine o dell'accumulatore è disponibile senza rewriting OpenCV myself?OpenCV Hough linee più forti
risposta
Hough Trasforma le righe degli ordini in ordine decrescente per numero di voti. È possibile vedere il codice here
Tuttavia, il conteggio dei voti è perso al ritorno della funzione - l'unico modo per farlo è modificare OpenCV.
La buona notizia è che non è molto complicato - l'ho fatto io stesso una volta. È sufficiente un minuto per modificare l'output da vector<Vec2f>
a vector<Vec3f>
e compilare l'ultimo parametro con conteggio voti.
Inoltre, è necessario modificare CvLinePolar di aggiungere il terzo parametro - Hough è implementato in C
, e non v'è un wrapper su di esso in C++
, quindi bisogna modificare sia l'attuazione e l'involucro.
Il codice principale di modificare è qui
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);
}
Grazie per averlo chiarito e indicarmi il codice. Sto usando la versione probabilistica e passando attraverso il codice, sarebbe bello portare anche outMax per accelerare le cose. – zzzz
Probabilistico è nello stesso file, penso che tu lo abbia già trovato. Il diverso approccio nella ricerca in linea significa che il conteggio dei voti non è rilevante come nella classica H. Finché una linea ha i voti minimi richiesti, viene inserita nella coda dei risultati. Non viene eseguito alcun ordinamento. – Sam
Ciao, Ci scusiamo per aver rinnovato questa discussione, ma hai un'idea da fare per ottenere il valore dell'accumulatore nella trasformazione di un nodo probalistico? Non sono del tutto sicuro di dove siano i voti nella matrice degli accumulatori. – Aeefire
- 1. Come testare la prossimità delle linee (trasformazione Hough) in OpenCV
- 2. OpenCV: ottieni il valore dell'accumulatore Hough?
- 3. Rileva linee Opencv nell'oggetto
- 4. Generalized Hough Transform e OpenCv
- 5. OpenCV: utilizzo della trasformazione Hough Circle per rilevare l'iride
- 6. Python openCV rileva linee parallele
- 7. Spiega la trasformazione di Hough
- 8. Rilevamento cerchi Hough Android
- 9. Rilevamento rettangolo con trasformazione Hough
- 10. riempimento accumulatore per trasformazione Hough
- 11. Rilevamento di scanalature OpenCV
- 12. Disegno fisso di linee di griglia con opencv
- 13. Rilevamento del logo tramite OpenCV
- 14. OpenCV C++ Disegna rettangolo basato su due linee
- 15. Rilevamento della linea OpenCV in generale
- 16. Tracciare più linee come heatmap
- 17. linee più lunghe in leggenda()
- 18. Come posso rendere più forti le eccezioni silenziose in tkinter?
- 19. Rails 4 Params forti con più oggetti e chiavi intere
- 20. Rilevamento di linee e forme in OpenCV con Python
- 21. Rilevamento forme quadrilatero dal insieme casuale di linee segmenti
- 22. Rilevamento linea orizzontale con OpenCV
- 23. Less.js - regole nidificate forti?
- 24. Devise e parametri forti
- 25. IBOutlets forti o deboli
- 26. Parametri houghLinesP OpenCV
- 27. Trasformazione di Hough vs Rilevamento di contorni per riconoscimento di rettangoli con proiezione prospettica
- 28. Come implementare la trasformazione di Hough?
- 29. RSpec - Test dei parametri forti
- 30. Personalizzazione dell'elaborazione con parametri forti
buona. Ho sempre pensato che le linee fossero date in ordine. E questa ipotesi è stata finora coerente con i miei risultati ... Comunque, sarebbe bello essere sicuro. –