python-3.x - 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
解决方案
推荐阅读
- c# - C# - LINQ - 在另一个 LINQ 查询的 WHERE 子句中使用列数据
- java - GATE:JAPE 规则 Java RHS 特征图
- google-apps-script - 我在哪里指导 Gmail 插件中 HTML 表单的操作?
- python - 安装了两个 python 的 python 导入语句
- ios - Segue 没有设置目标视图控制器的属性
- firebase - firebase-ui-auth 的执行时间错误
- json - 尝试将 JSON 解析为数据合约请不要简单地建议 Newtonsoft,因为它也不起作用
- perl - 如何使用 Perl 将本地时间转换为 YYYY-MM-DD
- python - 使用 elasticsearch_dsl 在字段中搜索多个字符串
- javascript - dynamically choose which module to load at build with webpack