Ich bin nen Python Frischling und entstamme aus der PHP Ecke
Derzeit versuche ich ein Full HD Bild px und px zu parsen. PHP schien mir hierfür einfach zu unperformant.
Jetzt versuche ich das ganze atm in Python zu lösen. Allerdings ohne Erfolg. Ich schaffe es zwar alles schön auszulesen allerdings bricht mir das Script mit der Fehlermeldung ab:
Code: Alles auswählen
ICE default IO error handler doing an exit(), pid = 2840, errno = 32
Das Script:
main.py
Code: Alles auswählen
import sys
import os
import pprint
# Import Model
# from Models.Database import Database
from Models.Debug import Debug
from Models.ImageHandler import ImageHandler
from Models.ThreadWithReturnValue import *
from Models.ImageParser import ImageParser
# Import Window
from mainwindow import MainWindow
if __name__ == '__main__':
# create application
app = QApplication(sys.argv)
app.setApplicationName('test')
path = os.path.abspath('./tmp/')
ImageHandler = ImageHandler()
ImageHandler.captureImage(path)
twrv = ThreadWithReturnValue(target=ImageHandler.imageParser())
twrv.start()
pprint.pprint(twrv.join())
# execute application
sys.exit(app.exec_())
Code: Alles auswählen
from threading import Thread
class ThreadWithReturnValue(Thread):
def __init__(self, group=None, target=None, name=None,
args=(), kwargs={}, Verbose=None):
Thread.__init__(self, group, target, name, args, kwargs, Verbose)
self._return = None
def run(self):
if self._Thread__target is not None:
self._return = self._Thread__target
def join(self):
Thread.join(self)
return self._return
Code: Alles auswählen
import os
from PIL import Image
class ImageHandler():
def __init__(self):
pass
def captureImage(self, path):
os.system('vgrabbj -d /dev/video0 -f ' + path +'/tmp.jpg -w 1920 -H 1080 -q 100 -o jpg -z 100 && chmod 777 ' + path +'/tmp.jpg')
def imageParser(self):
imgPath = os.path.abspath('./tmp/tmp.jpg')
img = Image.open(imgPath)
pixels = img.load()
width, height = img.size
all_pixels = []
for x in range(width):
for y in range(height):
cpixel = pixels[x, y]
all_pixels.append(cpixel)
return all_pixels