【发布时间】:2021-11-24 01:50:07
【问题描述】:
我正在读取一个视频文件并将其转换为一个 numpy 数组。
像这样:
video= np.array(skvideo.io.vread(folder + "video.avi"), dtype=np.int16)
稍后我访问第一帧并将其保存在 img 下
img = video[0]
形状现在有 3 个通道:
389, 516, 3
转灰度时:
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
我收到此错误:
error: OpenCV(4.1.2) /io/opencv/modules/imgproc/src/color.simd_helpers.hpp:94: error: (-2:Unspecified error) in function 'cv::impl::{anonymous}::CvtHelper<VScn, VDcn, VDepth, sizePolicy>::CvtHelper(cv::InputArray, cv::OutputArray, int) [with VScn = cv::impl::{anonymous}::Set<3, 4>; VDcn = cv::impl::{anonymous}::Set<1>; VDepth = cv::impl::{anonymous}::Set<0, 2, 5>; cv::impl::{anonymous}::SizePolicy sizePolicy = (cv::impl::<unnamed>::SizePolicy)2u; cv::InputArray = const cv::_InputArray&; cv::OutputArray = const cv::_OutputArray&]'
> Unsupported depth of input image:
> 'VDepth::contains(depth)'
> where
> 'depth' is 3 (CV_16S)
视频和图像显示正常。 我实际上遇到了这个错误,因为我想绘制直方图,但在传递第一帧时我得到了一个没有文档的错误。
我是否可以使用cv2.VideoCapture?
我不明白这是怎么回事,因为它是一个非常好的 numpy 数组。
感谢您的帮助!
【问题讨论】:
-
尝试使用
dtype=np.uint8作为视频数组,opencv不支持所有数据类型
标签: python numpy opencv scikit-image