首页 > 解决方案 > opencv 函数 '.read' , 'videoCaputre' 问题

问题描述

此处的代码尝试将我创建的过滤器应用于视频帧来自我的网络摄像头的视频问题是当我使用函数时VideoCapture()read()什么也得不到,当我应用isOpened()它时返回 True 所以我无法理解read()不返回 true 或帧连续所以我可以在上面应用过滤器

import numpy as np
import cv2
load_from_disk = False
#if load_from_disk:
#penval = np.load('penval.npy')
capp = cv2.VideoCapture(0)
capp.set(3,1280)
capp.set(4,720)
# Creating A 5x5 kernel for morphological operations
kernel = np.ones((5,5),np.uint8)
while(capp.isOpened()):
     ret ,frame = capp.read()
     if  not ret:
        print("could not read the frame")
        break
     frame = cv2.flip(frame,1)
     hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
     # If you're reading from memory then load the upper and lower ranges from there
     if load_from_disk:
        lower_range = penval[0]
        upper_range = penval[1]
     else:
        lower_range  = np.array([26,80,147])
        upper_range = np.array([81,255,255])
     mask = cv2.inRange(hsv, lower_range, upper_range)
     mask = cv2.erode(mask, kernel, iterations = 1)
     mask = cv2.dilate(mask, kernel, iterations = 2)
     res = cv2.bitwise_and(frame,frame, mask= mask)
     mask_3 = cv2.cvtColor(mask, cv2.COLOR_GRAY2BGR)
     stacked = np.hstack((mask_3,frame,res))
     cv2.imshow('Trackbars',cv2.resize(stacked,None,fx=0.4,fy=0.4))
      k = cv2.waitKey(10)& 0xff 
     if k == 27:
         break
cv2.destroyAllWindows()
capp.release() 

所以penval.npy是我为存储来自另一个脚本的值而创建的文件,但我将其停用,直到问题解决 要求:opencv = 4.2.0 ubuntu 20.04 python 3.7.7

标签: python-3.xopencvcomputer-vision

解决方案


推荐阅读