2011-01-28 38 views
1

我想知道是否有人給我一個解決方案。如何使用OpenCV獲得最清晰的iplimage,其中包括 。作爲一個例子,有一個移動手的網絡攝像頭輸入。但是當我播放這段視頻時,我得到了10張iplimages。但只有第五個更清楚。我想用openCV過濾第五個。使用OpenCV獲取最準確的圖像

我希望大家的支持。

回答

2

您可能可以使用某種邊緣檢測。失焦或運動模糊的圖像比「更銳利」的圖像具有更少的可檢測邊緣。看看Canny

+0

非常感謝。我已經使用了cvCanny(img_b,out,lowThresh * N * N,highThresh * N * N,aperature_size);功能。但是在運行時它會產生運行時錯誤。錯誤消息根本不清楚。它指的是一些內存位置。請幫幫我..!! – devan 2011-01-29 02:55:56

+0

@devan:我建議你發佈你的cvCanny代碼作爲一個新問題,這樣你就可以得到修復它的幫助 – 2011-01-29 07:58:16

5

最簡單的嘗試是比較variances(圖像的標準偏差) - 由於圖像內容在所有幀中幾乎相同,因此最清晰的圖像可能具有最高的方差。幀間預測殘差的差異(相鄰像素之間的差異)也可能有效 - 請到處尋找this paper

這裏有兩個圖像。原件在左邊。我只用水平方向模擬高斯模糊的運動模糊。模糊的圖像在右側。

originalblurred

標準偏差(使用imagej):42.5和41.1

如果不工作,那麼你被稱爲運動模糊估計後什麼(或者只是模糊估計在一般)。這是學術界非常流行的圖像質量評估問題,所以肯定有很多材料可以幫助您。

Paul R讓你開始了正確的軌道 - 看圖像的邊緣。

這不一定是重要的邊數 - 這是他們的寬度。模糊圖像將具有更寬的邊緣(上升和下降側之間的距離更大)。閱讀this paper - 它非常受歡迎,而且實施起來相當簡單。請注意,該方法僅測量水平和垂直模糊,這對您的情況不起作用。不過,考慮到邊緣方向並不難,如稍後的一些論文所做的那樣。

有更多的方法來解決這個問題,但我所提到的是我所知道的更簡單的方法。