在 numpy 数组中读取 12 位灰度视频

问题描述

我正在尝试读取 12 位灰度视频 720×720 放入一个arrayname[framecount,720,1] 这样的数组,其中最后一个维度从 0 到 212 变化,因为它是一个 12 位灰度视频。

这是我目前所做的(基于 ivan_onys 的 Stack Overflow 的另一个代码):

cap = cv2.VideoCapture("video.avi") 
frCount = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
frWidth = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
frHeight = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))

print(frCount,frWidth,frHeight)


imgbuf = np.empty((frCount,frHeight,3),np.dtype('uint8')) 
fc = 0
retVal = True
while (fc < frCount  and ret):
    retVal,imgbuf[fc] = cap.read()
    fc += 1

cap.release()
print(imgbuf.shape) #dim = frames,height,width,channels(bgr)

这会将我的视频读取为 RGB 视频,但我希望它是灰度的并且不会丢失信息。

我阅读了文档,但它只是告诉我 VideoCapture 这个:cv.VideoCapture(filename,apiPreference,params),我真的不明白 apiPreference 是什么以及是否有适合于此的参数我没看到。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)