[英]opencv video stabilization algorithm
我正在使用 opencv 编写视频稳定器。 算法如下:
虽然视频中有更多帧:
我有几个问题。 我在正确的轨道上吗? 如何进行实际的稳定(使用高斯滤波器或其他东西)?
以下是可能的步骤顺序:
步骤 1。 从电影文件中读取帧
步骤 2. 从每一帧收集显着点
步骤 3. 选择点之间的对应关系
步骤 4. 从嘈杂的对应关系估计变换
步骤 5. 变换近似和平滑
步骤 6. 在完整视频上运行
您可以在此处找到有关每个步骤的更多详细信息:
http://www.mathworks.com/help/vision/examples/video-stabilization-using-point-feature-matching.html
我认为您可以在 OpenCV 中遵循相同的步骤。
如果您使用的是 python 代码,那么您可以使用我强大的线程VidGear视频处理 python 库,该库现在提供具有最小延迟的实时视频稳定,并且Stabilizer Class几乎不需要额外的计算能力要求。 为了您的方便,这是一个基本的使用示例:
# import libraries
from vidgear.gears import VideoGear
from vidgear.gears import WriteGear
import cv2
stream = VideoGear(source=0, stabilize = True).start() # To open any valid video stream(for e.g device at 0 index)
# infinite loop
while True:
frame = stream.read()
# read stabilized frames
# check if frame is None
if frame is None:
#if True break the infinite loop
break
# do something with stabilized frame here
cv2.imshow("Stabilized Frame", frame)
# Show output window
key = cv2.waitKey(1) & 0xFF
# check for 'q' key-press
if key == ord("q"):
#if 'q' key-pressed break out
break
cv2.destroyAllWindows()
# close output window
stream.stop()
# safely close video stream
更高级的用法可以在这里找到: https : //github.com/abhiTronix/vidgear/wiki/Real-time-Video-Stabilization#real-time-video-stabilization-with-vidgear
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.