2012-05-21 70 views
1

我正在使用calcOpticalFlowPyrLK,findHomography,warp查看視頻穩定。opencv warpPerspective變形結果穩定時

結果是穩定的,這是偉大的,但它也扭曲。在頂部/底部,你可以看到邊緣是經線,而有時中線被壓扁。

我明白這是它的一部分,但我想知道我能做些什麼來消除這些醜陋的扭曲?

最糟糕的情況下,我可以告訴它只能在類似於相位相關的2D上轉換嗎?

更新:指向示例圖像:http://i.imgur.com/OuuGU.png

UPDATE2,代碼:

calcOpticalFlowPyrLK(baseGray, gray, points[0], points[1], status, err, winSize, 3, termcrit, 0, 0.001); 
lastHomography = findHomography(points[0], points[1], CV_RANSAC, 3); 
warpPerspective(image, newImage, lastHomography, image.size(), WARP_INVERSE_MAP, BORDER_TRANSPARENT); 
+0

你可以發佈一些「扭曲」的幀?您可能只是看到了運動模糊,在穩定後變得更加明顯。 –

+0

我在問題描述中添加了快照鏈接。 –

+0

你使用什麼插值方法?圖像中的僞像看起來像最近的鄰居內插。 – sietschie

回答

3

在你提供的圖像的假象看起來他們是近鄰插值的結果。

根據文檔的默認插值方法應該是線性插值。但是通過使用WARP_INVERSE_MAP標誌而不明確指定插值方法,opencv似乎使用最近鄰居方法。

因此,解決您的問題的方法還是明確指定插值方法。

warpPerspective(image, newImage, lastHomography, image.size(), INTER_LINEAR | WARP_INVERSE_MAP, BORDER_TRANSPARENT);