2014-04-02 17 views
2

我試圖在相似的彩色背景上檢測彩色的網球。我使用的OpenCV和C++使用OpenCV進行動態背景分離和可靠的圓檢測

這是測試圖像我正在與工作: http://i.stack.imgur.com/yXmO4.jpg

我已經使用多個邊緣檢測器試圖; 。三者都檢測白線,但當閾值處於可檢測網球邊緣的值時,輸出中的噪聲太大。

我也嘗試了霍夫圓變換,但是因爲它基於,所以它不起作用。

我不能使用背景減法,因爲背景可以移動。我也無法修改閾值,因爲照明條件可能會在網球內產生漸變。

我覺得我唯一的選擇是太模板匹配或檢測白線,但是我想盡可能避免這種情況。

你有什麼建議嗎?

+0

「我不能使用背景減法,因爲背景可以移動」 - 你的意思是,相機移動? – berak

+0

不完全。背景是穿着彩色襯衫的人,他們不會靜止。 – Byron

+0

看看紋理檢測。我本人並沒有使用它,但是你可以使用這個事實,即球具有其他光反射特性。說實話:你選擇了一個堅硬的案例,不知道是否會永遠是可靠的,很大程度上取決於你想實現閃電和背景的靈活性...... –

回答

0

我不得不傾斜我的屏幕來自己發現網球。這是一個很難的形象。也就是說,Hough變換的默認OpenCV實現使用了Canny邊緣檢測器,但它不是唯一可能的實現。對於這些困難的情況,您可能需要自己重新實現。

你肯定可以用不同的邊緣檢測設置重複運行Hough算法來生成多個候選。除了直接比較候選人之外,您還可以檢查每個候選人是否具有主導紋理(在本地陰影校正之後)以及可能的條紋。但如果這些網球實際上在飛行中被捕獲,即移動,那可能會非常棘手。

+0

我正在調查這件事,並會讓你知道。我正在尋找一些相對快速的實現算法。 – Byron

0

在邊緣檢測之前,您對彩色圖像做什麼?簡單地將其轉換爲灰色?

以我的經驗,當您使用HSV色彩空間時,五顏六色的球彈出效果最佳。那麼你將不得不決定哪個頻道給出最好的結果。

也許將圖像轉換到不同的特徵空間可能會更好,然後依靠顏色。也許嘗試LBP響應紋理。然後對結果進行PCA以將特徵空間減少爲1個單通道圖像,並嘗試Hough變換。

+0

我現在使用HSV顏色空間進行顏色閾值處理。什麼是PCA? – Byron

+0

HSV聽起來像個好主意。當具有高維特徵空間時,減少特徵空間的常用方法是使用PCA。這裏有一篇關於如何在OpenCV中使用PCA的博客:http://www.bytefish.de/blog/pca_in_opencv/ –