在Opencv中使用BGR模式而不是RGB的原因

RGB通道和BGR通道的区别是顺序不一样,其它没有什么区别。而为什么opencv选择的是BGR是因为OpenCV的早期开发当时BGR颜色格式在相机制造商和软件提供商中很受欢迎。

 

在从文件中播放视频时遇到以下报错

out=cv2.VideoWriter_fourcc('output.avi',-1,20.0,(640,480))
TypeError: Expected single character string for argument 'c1'

Python+opencv 无法正确读取视频

import numpy as np
import cv2
cap = cv2.VideoCapture(0)
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640,480))
while(cap.isOpened()):
    ret, frame = cap.read()
    if ret==True:
        frame = cv2.flip(frame,0)

        out.write(frame)
        cv2.imshow('frame',frame)
        if cv2.waitKey(1)  == ord('q'):
            break
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

 

import cv2

cap = cv2.VideoCapture('output.avi')

while (cap.isOpened()):
    ret, frame = cap.read()

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

    cv2.imshow('frame', gray)
    if cv2.waitKey(1)  == ord('q'):  # 适当调整等待时间
        break

cap.release()
cv2.destroyAllWindows()

 

 

保存视频的过程中遇到的问题:

AttributeError: module 'cv2' has no attribute 'cv'

原因:早期的视频编码格式是  fourcc = cv2.cv.FOURCC(*'XVID')

现在的编码格式是 fourcc = cv2.VideoWriter_fourcc(*'XVID')


版权声明:本文为SY_qqq原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。