在HoughCircles函數中,OpenCV中的HoughLines或HoughLinesP函數是否按累加器順序返回行列表?我想知道線的順序。獲得線路的累加器值也非常方便,因此可以使用智能和自適應閾值而不是固定值。沒有rewriting OpenCV myself,訂購或累加器價值是否可用?OpenCV Hough最強線
回答
HoughTransform訂單行按票數降序排列。您可以看到代碼here
但是,投票計數丟失,因爲函數返回 - 唯一的方法是修改OpenCV。
好消息是,這不是很複雜 - 我自己做過一次。將輸出從vector<Vec2f>
更改爲vector<Vec3f>
並用投票計數填充最後一個參數需要幾分鐘的時間。
此外,你必須修改CvLinePolar添加第三個參數 - 霍夫在C
實現,並有包裝在它在C++
,所以你要修改這兩個實施和包裝。
主要的代碼來修改是在這裏
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);
}
謝謝你明確指出我的代碼。我正在使用概率版本,並通過代碼,這將是很好的帶來linesMax太快,以加快速度。 – zzzz 2012-07-06 13:17:08
概率是在同一個文件中,我想你已經找到它了。在線搜索中的不同方法意味着投票計數與古典H中的投票計數不相關。只要一行具有最少的所需投票數,它就被推入結果隊列中。不執行排序。 – Sam 2012-07-06 13:38:02
您好, 對不起,改造這個線程,但你有一個想法hwo獲得累加器價值在probalistic hough變換?我不太確定該線的選票在累積矩陣中的位置。 – Aeefire 2015-03-26 12:42:35
- 1. Hough Transform在opencv中失敗
- 2. 如何在OpenCV中測試線(Hough變換)的接近度
- 3. 在opencv中使用Hough變換檢測垂直線
- 4. OpenCV Hough Line Transform提供了不存在的水平線
- 5. Python的OpenCV的概率Hough線minLineLength不工作
- 6. OpenCV中的廣義Hough變換
- 7. hough圓圈opencv圓心座標
- 8. 在OpenCV中級聯Hough變換
- 9. OpenCV:獲取Hough累加器值?
- 10. OpenCV 2.4.9中的概率Hough變換(Python)
- 11. 查找曲線段的Hough變換
- 12. 使用hough變換選擇線
- 13. 如何比較Hough Line在OpenCV中的位置?
- 14. Hough變換用於OpenCV中的虹膜檢測
- 15. 如何通過Gall和Lempitsky編譯opencv Hough森林實現
- 16. hough在matlab和openCV中的轉換錯誤?
- 17. 在OpenCV上保存由Hough Circle檢測到的圓的內容
- 18. 如何統計OpenCV中的行數(Hough Trasnform)
- 19. OpenCV中概率Hough變換的具體實現是什麼?
- 20. AForge Hough變換
- 21. Generalized Hough R-表
- 22. 行hough變換
- 23. 線在OpenCV中
- 24. Python OpenCV線程
- 25. OpenCV的邊緣增強
- 26. 強度切片opencv(與kinect)
- 27. 畫垂線線OpenCV中
- 28. Hough變換公式
- 29. 檢測Hough圈android
- 30. Hough變換n OpenCvSharp
好的。我一直認爲線條是按順序排列的。而這個假設到目前爲止與我的結果是一致的......但是,確實如此。 – 2012-07-05 22:57:27