美文网首页
视频图像互相转换时保留alpha通道

视频图像互相转换时保留alpha通道

作者: 此方病 | 来源:发表于2019-09-25 17:49 被阅读0次

视频转图像

openCV

Add support for reading 4-channel BGRA frames from video
alalek commented on 19 Feb
There is already such option. To get RGBA frames (in case of RGBA native video stream) we should pass CAP_PROP_CONVERT_RGB=False
VideoCapture::set
What does disabling CV_CAP_PROP_CONVERT_RGB do?

根据以上说明,print(cap.set(cv2.CAP_PROP_CONVERT_RGB, False))输出了false,失败

ffmpeg

换一个思路,看看能否用ffmpeg实现

https://blog.csdn.net/pkueecser/article/details/8555261

ffmpeg -i  target_video_test.mov -r 25 -f image2 target_video_test/%d.png

这个能work,下一步

图像处理

imread

StackOverflow-How to load png images with 4 channels?
imread的时候加一个参数:

import cv2
im = cv2.imread("image.png", cv2.IMREAD_UNCHANGED)

img.shape变成了(x,x,4)需要改动一些代码

imwrite

不需要任何改动

图像转视频

Stackoverflow-Turn image sequence into video with transparency

To encode/import images with alpha to a video with alpha try: ffmpeg -i %d.png -vcodec png z.mov. Quicktime will play that.
To decode/export a video with alpha to images with alpha try: ffmpeg -i z.mov -f image2 export2\%d.png

video2img和img2video都有,我为啥一开始没搜到这篇。。。

ffmpeg -i target_video_test/%d.png  -vcodec png target_video_test_new.mov

相关文章

网友评论

      本文标题:视频图像互相转换时保留alpha通道

      本文链接:https://www.haomeiwen.com/subject/fczjyctx.html