2013-12-12 75 views
0

在我的項目中我需要檢測圖像中的行。我實際上必須檢測矩形內的行和列。我使用OpenCV來實現這一點。我已經成功完成了它,但它有點慢。我使用許多函數來預處理圖像 - 例如閾值,精明的,擴張,高斯模糊等Android OpenCV優化 - 行檢測速度緩慢Hough Lines

我用HoughLines這樣

Imgproc.HoughLines(image, lines, 1, Math.PI/90 , threshold, minLineSize, maxGap); 

大約需要2.5秒即可完成我的計劃,有〜600線。但是在這一行中,它需要2.2秒。正如你所看到的,我使用OpenCV的Java接口。有可能對其進行優化嗎?將我的程序改寫爲NDK會讓它更快嗎?如果我理解OpenCV4Android,那只是用NDK編寫的函數的包裝,所以我不認爲它會更快。還是有更好更快的方法來檢測圖像中的線條?感謝您的任何建議。

+0

對您的代碼進行配置文件(如果您尚未提供),並在調用HoughLines之前提供有關您的操作的更多詳細信息。如果花費2.5s,你做錯了什麼,你應該在嘗試去NDK路徑之前解決這個問題。例如,也許你應該在進行任何處理之前先縮放圖像,確保你不需要8Megapix的圖像來檢測線條。 –

回答

1

你能計算HoughLines返回的行數 - 如果有1000個,那麼它可能需要這樣的時間來生成。

我建議改變你的Canny設置,以儘可能減少HoughLines需要處理的邊緣數量。

此外,您可以嘗試HoughLines的不同參數。我對HoughLines的調用分別爲80,30和10的值似乎給出了可管理的結果。