檢測顯著不同圖像I具有仍然捕獲一晚的由一個攝像頭的過程中的圖像。大部分是相同的,因爲圖像中的照明是均勻的。然而,其中一些與其餘的顯着不同 - 它們在框架中具有可見的人體運動。從一組,如與OpenCV的或SimpleCV
我該如何檢測哪些圖像明顯不同,這樣運動會包含在它們中?更好的是,有沒有一種方法專門檢測運動?
我猜,像OpenCV的或SimpleCV庫可以很容易地做到這一點,但我不限於使用那些人。
檢測顯著不同圖像I具有仍然捕獲一晚的由一個攝像頭的過程中的圖像。大部分是相同的,因爲圖像中的照明是均勻的。然而,其中一些與其餘的顯着不同 - 它們在框架中具有可見的人體運動。從一組,如與OpenCV的或SimpleCV
我該如何檢測哪些圖像明顯不同,這樣運動會包含在它們中?更好的是,有沒有一種方法專門檢測運動?
我猜,像OpenCV的或SimpleCV庫可以很容易地做到這一點,但我不限於使用那些人。
在SimpleCV,
cam = Camera()
prev = cam.getImage()
while True:
current = cam.getImage()
fs = current.findMotion(prev, method="LK")
if fs: #if there's motion
print "motion found"
prev = current
Image.findMotion()
使用光流來檢測運動。你可以很容易地使用它。增加一些關於你期望有多少動作的條件。
fs.dx
和fs.dy
會給你所有檢測到運動的點。
我已在其中我從照相機和通過檢測水平和垂直運動的輸入的例子中,I控制Banshee媒體播放器。你可以在我的GitHub上找到它。
如果你有第一個圖像是相似類型的,你會發現從第一個所有圖像的絕對差異,並有閾值的發現是顯著不同的圖像。 同樣在OpenCV的,用於檢測視頻中的運動,這樣的事情是可以做到: http://sundararajana.blogspot.in/2007/05/motion-detection-using-opencv.html
感謝您的回答。你有沒有機會找到代碼樣本來找出兩幅圖像之間的絕對差異?謝謝! – 2012-07-14 06:29:33
在openCV中,您必須首先爲圖像聲明2個矩陣,將圖像轉換爲灰度,然後您可以使用'absdiff()'函數。您可以查看http://www.developerstation.org/2011/03/frame-differencing-using-opencv-in-c.html中相同的示例。 – Rndm 2012-07-14 06:32:53