视频转图像
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
网友评论