【发布时间】:2017-08-14 21:42:32
【问题描述】:
我正在尝试迭代一个 pygame 3d surfarray,更具体地说是pygame.surfarray.array3d("your image")。我正在接收从我的网络摄像头捕获的视频,然后将它们转换为 3d 数组,然后使用此代码将其显示到我的窗口上。
def cameraSee(self):
while True:
self.cam.query_image()
self.image = self.cam.get_image()
self.imageArr = pygame.surfarray.array3d(self.image)
pygame.surfarray.blit_array(self.screen,self.imageArr)
os.system("clear")
pygame.display.update()
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
我的问题是我试图让我的相机只显示蓝色量 > 200(范围从 0 到 255)的任何像素,并将所有其他像素的颜色值更改为 0。我试过了对数组使用 if 语句,但我收到一条错误消息,指出我应该使用 any() 或 all()。
我的所有代码:
try:
import pygame
import pygame.camera
import pygame.surfarray
import numpy
import os
import sys
import time
except:
print("there was an error importing modules...")
os.system("espeak 'there, was, an, error, importing, modules'")
time.sleep(2)
class aaiVision(object):
def __init__(self,screen,cam,image,imageArr):
self.screen = screen
self.cam = cam
self.image = image
self.imageArr = imageArr
def startUp(self):
os.system("espeak 'eh, eh, i, vision, initializing'")
pygame.init()
pygame.camera.init()
time.sleep(1)
os.system("espeak 'Vision, initialized'")
camList = pygame.camera.list_cameras()
print(camList)
time.sleep(1)
os.system("espeak 'cameras, found, %s'" % str(len(camList)))
time.sleep(1)
self.screen = pygame.display.set_mode((640,480))
time.sleep(0.5)
self.cam = pygame.camera.Camera("/dev/video0",(640,480),"YUV")
time.sleep(0.5)
self.cam.start()
os.system("espeak 'eh, eh, i, vision, online'")
def cameraSee(self):
while True:
self.cam.query_image()
self.image = self.cam.get_image()
self.imageArr = pygame.surfarray.array3d(self.image)
pygame.surfarray.blit_array(self.screen,self.imageArr)
os.system("clear")
pygame.display.update()
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
eyesAwake = aaiVision('', '', '', '')
if __name__ == "__main__":
eyesAwake.startUp()
eyesAwake.cameraSee()
抱歉有些缩进错误,我不知道如何使用 in text 代码块 XD
【问题讨论】:
-
你从哪里得到一个错误,指出我应该使用
any()或all()?请edit您的问题并包括完整的追溯导致发生这种情况的位置。您可能无法正确缩进代码,因为您使用的是制表符而不是空格。
标签: python arrays loops pygame pygame-surface