python打开摄像头黑屏怎么办_python、cv2.imshow()、raspberryPi和黑屏
目前正在尝试使用GUI编写代码,该GUI允许切换图像处理。理想情况下,代码将允许打开/关闭窗口视图、实时图像处理(相当基本)和控制外部板。在
我遇到的问题围绕着cv2.imshow()函数。几个月前,我通过从picamera切换到{}来提高处理速度,在这里我可以执行更复杂的计算,比如背景减法,而不必一直调用python。使用bcm2835-v4l2包,我可以使用cv2直接从picamera中提取图像。在
快进6个月,当我试图更新代码时,我发现函数cv2.imshow()不再正确显示。我认为bcm2835-v4l2可能有问题,但使用matplotlib进行的测试表明连接良好。它似乎与cv2.imshow()有关,我想大概是这样。在
实际上,我使用threading模块创建了一个单独的线程,我想知道这是否是罪魁祸首。我不这么认为,因为输入命令import cv2
camera = cv2.VideoCapture(0)
grabbed,frame = camera.read()
cv2.imshow(frame)
产生同样的黑幕
下面是我正在使用的代码(在RPi3上),一些图片显示了错误和预期结果。在
作为参考,这里是关于我的系统的细节
^{pr2}$
代码import cv2
from threading import Thread
import time
import numpy as np
from tkinter import Button, Label, mainloop, Tk, RIGHT
class GPIOControllersystem:
def __init__(self,OutPinOne=22, OutPinTwo=27,Objsize=30,src=0):
self.Objectsize = Objsize
# Build GUI controller
self.TK = Tk() # Place TK GUI class into self
# Variables
self.STSP = 0
self.ShutdownVar = 0
self.Abut = []
self.Bbut = []
self.Cbut = []
self.Dbut = []
# setup pi camera for aquisition
self.resolution = (640,480)
self.framerate = 60
# Video capture parameters
(w,h) = self.resolution
self.bytesPerFrame = w * h
self.Camera = cv2.VideoCapture(src)
self.fgbg = cv2.createBackgroundSubtractorMOG2()
def Testpins(self):
while True:
grabbed,frame = self.Camera.read()
frame = self.fgbg.apply(frame)
if self.ShutdownVar ==1:
break
if self.STSP == 1:
pic1, pic2 = map(np.copy,(frame,frame))
pic1[pic1 > 126] = 255
pic2[pic2 <250] = 0
frame = pic1
elif self.STSP ==1:
time.sleep(1)
cv2.imshow("Window",frame)
cv2.destroyAllWindows()
def MProcessing(self):
Thread(target=self.Testpins,args=()).start()
return self
def BuildGUI(self):
self.Abut = Button(self.TK,text = "Start/Stop System",command = self.CallbackSTSP)
self.Bbut = Button(self.TK,text = "Change Pump Speed",command = self.CallbackShutdown)
self.Cbut = Button(self.TK,text = "Shutdown System",command = self.callbackPumpSpeed)
self.Dbut = Button(self.TK,text = "Start System",command = self.MProcessing)
self.Abut.pack(padx=5,pady=10,side=RIGHT)
self.Bbut.pack(padx=5,pady=10,side=RIGHT)
self.Cbut.pack(padx=5,pady=10,side=RIGHT)
self.Dbut.pack(padx=5,pady=10,side=RIGHT)
Label(self.TK, text="Controller").pack(padx=5, pady=10, side=RIGHT)
mainloop()
def CallbackSTSP(self):
if self.STSP == 1:
self.STSP = 0
print("stop")
elif self.STSP == 0:
self.STSP = 1
print("start")
def CallbackShutdown(self):
self.ShutdownVar = 1
def callbackPumpSpeed(self):
pass
if __name__ == "__main__":
GPIOControllersystem().BuildGUI()
使用matplotlib.pyplot.imshow(),我可以看到raspberry pi相机和opencv之间的连接是通过bcm2835-v4l2连接工作的。
但是当使用打开cv.imshow()窗口显示黑匣子,不显示任何内容。
更新:所以在测试时,我发现当我执行以下任务时import cv2
import matplotlib
camera = cv2.VideoCapture(0)
grab,frame = camera.read()
matplotlib.pyplot.imshow(frame)
grab,frame = camera.read()
matplotlib.pyplot.imshow(frame)
更新已解决,与主要问题无关。这是一个缓冲问题。似乎与cv2.imshow()没有关联
python打开摄像头黑屏怎么办_python、cv2.imshow()、raspberryPi和黑屏相关推荐
- python图色检测_利用python打开摄像头及颜色检测方法
最近两周由于忙于个人项目,一直未发言了,实在是太荒凉了....,上周由于项目,见到Python的应用极为广泛,用起来也特别顺手,于是小编也开始着手学习Python,-下面我就汇报下今天的学习成果吧 小 ...
- python打开摄像头获取图片_Python基于opencv调用摄像头获取个人图片的实现方法
接触图像领域的应该对于opencv都不会感到陌生,这个应该算是功能十分强劲的一个算法库了,当然了,使用起来也是很方便的,之前使用Windows7的时候出现多该库难以安装成功的情况,现在这个问题就不存在 ...
- python调用摄像头人脸识别代码_Python使用 opencv调用笔记本摄像头进行人脸识别...
首先需要导入opencv库pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ opencv-python 上代码#万码学堂Pytho ...
- termux python 打开摄像头_玩转科技-python远程调用并开启摄像头
本节分享一个利用python的第三库来远程调用并开启摄像头,是一个完整的案例,希望对大家有收获 以上就是小编分享的内容了,利用python控制电脑摄像头,python果然是很强大的 这主要是通过ope ...
- python打开文件写文件乱码_Python读写文件乱码问题
对开发者来说,最恼人的问题之一莫过于读写文件的时候,由于编码千差万别,出现乱码问题.好难快速解决啊... 最近我也遇到了这样的问题,经研究,把大致的解决思路拿出来共享. 1. python中习惯首先声 ...
- python打开摄像头
import cv2 camera = cv2.VideoCapture(0) cv2.namedWindow('MyCamera') while True: success, frame = ...
- python打开摄像头黑屏怎么办_python识别视频黑屏或者低清晰度
第一步:获取视频第一帧图片 第二步:进行识别 import os import numpy as np import cv2 as cv from skimage import filters, io ...
- python打开摄像头黑屏怎么办_临时解决pygame启动时黑屏问题
直接上代码: import pygame import sys pygame.init() screen = pygame.display.set_mode((10,10),0) screen = p ...
- python打开摄像头_Python 调用摄像头
环境搭建 使用方法 Device() 调用一个设备 saveSnapshot() 拍下照片 举例-拍一张照片 from VideoCapture import Device cam = Device( ...
- python 打开本地程序发生异常_Python中的异常处理
Python中的异常事件: 当Python遇到无法正常处理的事件时,便是异常发生的时候,Python将异常也当作一个对象,尽管他是出错的.当发生异常时候我们要捕获他,否则程序就会中断运行. Pytho ...
最新文章
- LeetCode实战:螺旋矩阵 II
- 五年之后,你的企业是拥抱AI,还是已被淘汰
- 耕耘数据,融合发展——2018年度数据科学研究院RONG教授座谈会成功举办
- 介绍一款比Android原生模拟器还要快的模拟器Genymotion(转)
- jsp超链接中怎么跳转页面跳转_JSP页面跳转方法小结
- 美国法官驳回特朗普工作签禁令:超出权职范围
- 计算同比 环比_PowerBI学习教程(三)时间累积同比环比计算
- 强化学习5——价值函数近似(VFA)
- ie的严苛,firefox的宽容
- 面试官:项目中常用的 .env 文件原理是什么?如何实现?
- 针对媒体不实报道误导大众--抹黑C#工资垫底
- PHP笔记-用户登录权限拦截说明
- 福利:appium+selenium+python 模拟手工点击趣头条(app赚钱软件)
- 基于STM32的频率计Proteus仿真教程
- Dart | Dart 语言基础知识梳理
- Mockplus默认图标导出的方法
- cpu字长、操作系统字长和jvm中各数据类型占用的字节数关系
- 一个完整的搜索系统 - God bless you - 博客园
- 《第一行代码》学习笔记——第1章 开始启程,你的第一行Android代码
- Chrome 再次优化内存占用,新增内存释放开关