视频稳像学习笔记
【摘要】
https://github.com/AdamSpannbauer/python_video_stab
也有运行代码
https://github.com/abhiTronix/vidgear
# import required librariesfrom vidgear.gears import VideoGearimpor...
https://github.com/AdamSpannbauer/python_video_stab
也有运行代码
https://github.com/abhiTronix/vidgear
-
# import required libraries
-
from vidgear.gears import VideoGear
-
import numpy as np
-
import cv2
-
-
# open any valid video stream with stabilization enabled(`stabilize = True`)
-
stream_stab = VideoGear(source = "test.mp4", stabilize = True).start()
-
-
# open same stream without stabilization for comparison
-
stream_org = VideoGear(source = "test.mp4").start()
-
-
# loop over
-
while True:
-
-
# read stabilized frames
-
frame_stab = stream_stab.read()
-
-
# check for stabilized frame if Nonetype
-
if frame_stab is None:
-
break
-
-
# read un-stabilized frame
-
frame_org = stream_org.read()
-
-
# concatenate both frames
-
output_frame = np.concatenate((frame_org, frame_stab), axis=1)
-
-
# put text over concatenated frame
-
cv2.putText(
-
output_frame, "Before", (10, output_frame.shape[0] - 10), cv2.FONT_HERSHEY_SIMPLEX,
-
0.6, (0, 255, 0), 2,
-
)
-
cv2.putText(
-
output_frame, "After", (output_frame.shape[1] // 2 + 10, output_frame.shape[0] - 10),
-
cv2.FONT_HERSHEY_SIMPLEX,
-
0.6, (0, 255, 0), 2,
-
)
-
-
# Show output window
-
cv2.imshow("Stabilized Frame", output_frame)
-
-
# check for 'q' key if pressed
-
key = cv2.waitKey(1) & 0xFF
-
if key == ord("q"):
-
break
-
-
# close output window
-
cv2.destroyAllWindows()
-
-
# safely close both video streams
-
stream_org.stop()
-
stream_stab.stop()
c++ opencv的:
https://github.com/Lakshya-Kejriwal/Real-Time-Video-Stabilization
c的,需要自己编译,需要ffmpeg,能处理视频
https://github.com/georgmartius/vid.stab
Using default values:
ffmpeg -i input.mp4 -vf vidstabtransform,unsharp=5:5:0.8:3:3:0.4 out_stabilized.mp4
Note the use of the ffmpeg's unsharp filter which is always recommended.
Zooming-in a bit more and load transform data from a given file:
ffmpeg -i input.mp4 -vf vidstabtransform=zoom=5:input="mytransforms.trf" out_stabilized.mp4
Smoothening the video even more:
ffmpeg -i input.mp4 -vf vidstabtransform=smoothing=30:input="mytransforms.trf" out_stabilized.mp4
文章来源: blog.csdn.net,作者:AI视觉网奇,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/jacke121/article/details/109789501
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)