小编Den*_*Gor的帖子

OpenCV 不保存视频

下面的代码应该捕获视频并保存它。

import cv2
import numpy as np
from skimage.filters import gaussian

capture = cv2.VideoCapture(0)
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('My video.avi', fourcc, 10, (640,480))

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

    if ret==True:
        frame = gaussian(frame, sigma=5, multichannel=True)

        out.write(frame)
        cv2.imshow('My video', frame)

    if cv2.waitKey(1) == 27:
        break

capture.release()
out.release()
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

error: OpenCV(3.4.3) D:\Build\OpenCV\opencv-3.4.3\modules\videoio\src\cap_ffmpeg.cpp:296: error: (-215:Assertion failed) image.depth() == CV_8U in function 'cv::`anonymous-namespace'::CvVideoWriter_FFMPEG_proxy::write'

如果我删除高斯模糊,代码就可以工作。怎么了?

python opencv

6
推荐指数
1
解决办法
5332
查看次数

如何在同一个图表上绘制多条带有偏移的曲线

我从示波器读取波形。波形根据时间分为 10 段。我想绘制完整的波形,一个段在另一个段之上(或之下),可以这么说,“具有垂直偏移”。此外,还需要彩色图来显示信号强度。我只能得到以下情节:

在此输入图像描述

正如您所看到的,所有曲线都是叠加的,这是不可接受的。人们可以向 y 数据添加偏移量,但这不是我想要的方式。当然有一种更简洁的方法来绘制我的数据吗?我已经尝试了一些方法来使用 pylab 解决这个问题,但我什至不确定如何继续以及这是否是正确的方法。

任何帮助将不胜感激。

import readTrc #helps read binary data from an oscilloscope
import matplotlib.pyplot as plt

fName = r"...trc"
datX, datY, m = readTrc.readTrc(fName)

segments = m['SUBARRAY_COUNT'] #number of segments

x, y = [], []

for i in range(segments+1):
    x.append(datX[segments*i:segments*(i+1)])
    y.append(datY[segments*i:segments*(i+1)])

plt.plot(x,y)
plt.show()
Run Code Online (Sandbox Code Playgroud)

python matplotlib

3
推荐指数
1
解决办法
7803
查看次数

标签 统计

python ×2

matplotlib ×1

opencv ×1