OpenCV读出来的是按BGR存储的,如何转变成传统的RGB格式
opencv 视频帧的数据是按按BGR存储的,想转变成传统的RGB格式便于和其他库对接使用
方法1
核心代码
cv2.cvtColor(Frame,cv2.COLOR_BGR2RGB)
,其中 Frame 是 cv2 读出来的 BGR 数据。
示例
import cv2
cap = cv2.VideoCapture('1.avi')
assert cap.isOpened(), '视频文件打开失败'
ret, Frame = cap.read() # 读取一帧图像 ret读取了数据就返回True,没有读取数据(已到尾部)就返回False frame返回读取的视频数据--一帧数据
nowFrame = cv2.cvtColor(Frame,cv2.COLOR_BGR2RGB) # 转成RGB
方法2
核心代码
nowFrame = cv2.merge([R,G,B])
,其中 Frame 是 cv2 读出来的 BGR 数据。
示例
import cv2
cap = cv2.VideoCapture('1.avi')
assert cap.isOpened(), '视频文件打开失败'
ret, Frame = cap.read() # 读取一帧图像 ret读取了数据就返回True,没有读取数据(已到尾部)就返回False frame返回读取的视频数据--一帧数据
B,G,R = cv2.split(Frame) # 把三个通道的数据分离
nowFrame = cv2.merge([R,G,B]) # 用 merge 函数来重构