如何将RGB视频转换为灰度并保存?

问题描述

我是python的新手,我想将彩色视频转换为灰度,然后保存。 香港专业教育学院试图这段代码,使其成为灰度,但我无法保存它。有什么想法吗?
import cv2

source = cv2.VideoCapture('video.mp4')
while True:
    ret,img = source.read()

gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

cv2.imshow('Live',gray)

key = cv2.waitKey(1)
if key == ord('q'):
    break

cv2.destroyAllWindows()
source.release()

解决方法

这是将RGB视频文件写入灰度视频的方法

# importing the module 
import cv2 
import numpy as np
  
# reading the vedio 
source = cv2.VideoCapture('input.avi') 

# We need to set resolutions. 
# so,convert them from float to integer. 
frame_width = int(source.get(3)) 
frame_height = int(source.get(4)) 
   
size = (frame_width,frame_height) 

result = cv2.VideoWriter('gray.avi',cv2.VideoWriter_fourcc(*'MJPG'),10,size,0) 
  
# running the loop 
while True: 
  
    # extracting the frames 
    ret,img = source.read() 
      
    # converting to gray-scale 
    gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 

    # write to gray-scale 
    result.write(gray)

    # displaying the video 
    cv2.imshow("Live",gray) 
  
    # exiting the loop 
    key = cv2.waitKey(1) 
    if key == ord("q"): 
        break
      
# closing the window 
cv2.destroyAllWindows() 
source.release()

如果有帮助,请给我