回答
首先,正如Lokesh A. R.所提到的,你想要的圖像中的線不是最長的,因爲它不是連續的。
如果你確實想要找到這條線,那麼看看dilation,這將擴大線條,造成連線的小斷裂,然後將線條縮回到相同的厚度。但是,這可能會導致連接線不連接,並且可能不可靠,除非圖像中的線距離足夠遠。
如果你真的只想線路最長,那麼我建議的算法(你將不得不代碼)
- 迭代的圖像的像素超過
- 馬克每次迭代的像素「visited」
- 當你找到一個像素時,看看它所有的直接9個鄰居,檢查這條線是否繼續,如果是這樣(遵循同樣的事情),跟蹤它,跟蹤它的持續時間,它開始的地方(當你完成下面的行時,你知道該回到哪裏)以及哪個像素座標s是該行的一部分(用於輕鬆刪除其餘的圖像)。
- 在下一行之後,返回到行的起點並重新開始迭代。
- 分析你,你已經收集線的收集和保持一個最長線(或擁有最像素)。
- 將圖像中的每個像素設置爲黑色,除非它是您保留的一行的一部分。
這是一個檢測圖像中物體的基本算法,matlab可以做這一步。看看object detection上的數學工作頁面,看看它是否可以「檢測」圖像中的線條並給出關於它們的統計數據(如每個像素的數量)
謝謝你的ide Noremac,我會在matlab上試用這個算法。我認爲這個想法非常有幫助。非常感謝你。 –
這裏,閱讀:http://www.mathworks.com/help/images/ref/houghlines.html
基本上應該回答你的問題。 HoughLines是檢測線條的更常見方法之一。
不是直線的hough變換嗎? – Noremac
- 1. 如何使用MATLAB
- 2. 如何使用matlab
- 3. 如何使用MATLAB
- 4. 如何使用MATLAB
- 5. 如何使用MATLAB
- 6. 如何使用textscan在MATLAB
- 7. 如何使用interp1在MATLAB
- 8. 如何使用fzero在MATLAB
- 9. 如何通過使用matlab
- 10. 如何用Matlab
- 11. 如何用matlab
- 12. 如何使用Erlang調用Matlab函數?
- 13. 如何在Matlab調用的mex函數中使用Matlab引擎
- 14. 如何利用Matlab
- 15. 如何利用Matlab
- 16. 如何利用Matlab
- 17. MATLAB:如何在Matlab
- 18. 如何使用MATLAB構建levmar?
- 19. MATLAB如何使用ODE求解器?
- 20. 如何在Visual Studio 2010中使用MATLAB
- 21. 如何像MATLAB一樣使用R interp1?
- 22. 如何在MATLAB中使用求和?
- 23. 如何在MATLAB中使用插值?
- 24. 如何在Matlab中使用方程?
- 25. 如何使用matlab做圓形作物?
- 26. 如何使用循環來刪除MATLAB
- 27. 如何使用MATLAB濾除諧波(DSP)?
- 28. 如何一批使用MATLAB中
- 29. 如何使用定時器在Matlab
- 30. 如何在matlab中使用append命令?
看起來像劃出的線不是最長的時間。該行不連續。 –