如何在python中使用cv2阅读第一帧视频?

时间:2018-01-01 02:41:12

标签: python opencv cv2

这是我正在使用的一些代码,它应该成功返回视频的第一帧。我认为这里的相关位是第2:5行,第二位是最后一位,其中count = 2。

def define_bounds(video_file, threshold_value, index_value):
    vidcap = cv2.VideoCapture(video_file)
    count=0
    while count <1:
        success,color_img = vidcap.read()
        blkwht_img = np.asarray(Image.fromarray(color_img).convert('L'))[index_value]
        retval, final_img = cv2.threshold(blkwht_img, threshold_value, 200, cv2.ADAPTIVE_THRESH_GAUSSIAN_C)
        for pixel_row in range(139,-1,-1): 
           if np.median(final_img[pixel_row,:]) <10:
               silenced = pixel_row - 2
               upmotion = pixel_row - 16
               destination = pixel_row - 44
               downmotion = pixel_row - 31
               break
       count=2
   return silenced, upmotion, destination, downmotion

我确实知道vidcap.read()成功读取从第一个到最后一个的帧(我用其他代码来确定这个,它只是从头到尾导出所有帧)。

但上面的代码在读取第一帧时失败了...它读取了一些帧,但我不知道哪一帧。当我手动输入第一帧,第二帧和最后一帧时,它不是第一个,第二个或最后一个,因为函数的输出不匹配。

我的代码中有什么愚蠢的错误吗?另外:我正确使用休息吗?我还是新手。谢谢!

0 个答案:

没有答案