#ROI koordinaten laden (RoiX1, RoiY1, RoiX2, RoiY2) = Klassifikator.roi() (DetectorRoiX1, DetectorRoiY1, DetectorRoiX2, DetectorRoiY2) = Klassifikator.roi("det_roi.txt") LEDS = 6 #Arduino DO6 MOTOR = 7 #Arduino DO7 Kamerbild = None cap = cv2.VideoCapture(Einstellungen.CameraID) #Kamera einschalten time.sleep(2) cap.set(cv2.CAP_PROP_EXPOSURE, Einstellungen.Exposure) ProzessKetteSVMData = procchain.ProcChain( "SVM-Data" ) #Neue Prozesskette zum Umwandeln des Bildes in SVM-Taugliche Daten ProzessKetteSVMData.append(procchain.ImgProcToGray()) #Graustufen ProzessKetteSVMData.append(procchain.ImgProcStore( "ROI")) #Speichere akt. Bild in der Kette unter dem Namen ROI ProzessKetteSVMData.append( procchain.ImgProcObjRoi("ObjRoi")) #ROI/Rahmen vom Objekt finden ProzessKetteSVMData.append(procchain.ImgProcUse( "ROI")) #Gespeicheres Bild mit dem Namen ROI als akt. benutzen ProzessKetteSVMData.append( procchain.ImgProcRoiByName("ObjRoi") ) #Aus dem Bild den Ausschnitt gefunden in "ObjRoi" herausschneiden ProzessKetteSVMData.append(procchain.ImgProcResize( 32, 32)) #Ausschnitt auf 32x32 Pixel verkleinern ProzessKetteSVMData.append( procchain.ImgProcNorm()) #Bild normalisieren, alle Werte zwischen 0 und 1
else: cv2.rectangle(Kamerbild, (DetectorRoiX1, DetectorRoiY1), (DetectorRoiX2, DetectorRoiY2), (255, 0, 0), 2) cv2.imshow("VideoIn", Kamerbild) cv2.namedWindow("VideoIn") Exposure=-8 cap = cv2.VideoCapture(1) #Kamera einschalten time.sleep(2) cap.set(cv2.CAP_PROP_EXPOSURE, Exposure) cl.setBaseDir(BaseDir) pc = procchain.ProcChain("ROI") pc.append(procchain.ImgProcToGray()) pc.append(procchain.ImgProcRoi( RoiX1, RoiX2, RoiY1, RoiY2)) pc.enableDebug(True) pc1 = procchain.ProcChain("SVM-Data") pc1.append(procchain.ImgProcToGray()) pc1.append(procchain.ImgProcStore( "ROI")) pc1.append(procchain.ImgProcObjRoi("ObjRoi")) pc1.append(procchain.ImgProcUse( "ROI")) pc1.append(procchain.ImgProcRoiByName( "ObjRoi")) pc1.append(procchain.ImgProcResize(32, 32)) pc1.append(procchain.ImgProcNorm()) pc1.append(procchain.ImgProcStore("result")) pc1.enableDebug(True)
# -*- coding: utf-8 -*- import os, sys # Dateien, Verzeichnisse import cv2 # OpenCV - Computer Vision Bibliothek import numpy as np # Notwendig fue OpenCV/Python from ml2 import procchain # Process-Chain Kette Der Funktionen fuer die Bildmanipulation cap = cv2.VideoCapture(0) #Bilder werden von der Kamera eingelesen pc = procchain.ProcChain() #Eine Instanz von Process-chain erzeugen ######## Alle moeglichen Operationen ############# pc.append(procchain.ImgProcToGray()) #pc.append(procchain.ImgProcBlur()) #pc.append(procchain.ImgProcSplit('r', 'g', 'b')) #pc.append(procchain.ImgProcUse('r')) #pc.append(procchain.ImgProcChRed()) #pc.append(procchain.ImgProcChGreen()) #pc.append(procchain.ImgProcChBlue()) #pc.append(procchain.ImgProcStore()) #pc.append(procchain.ImgProcTh(120)) #pc.append(procchain.ImgProcThInv(120)) #pc.append(procchain.ImgProcThOtsu()) #pc.append(procchain.ImgProcThAdpt()) #pc.append(procchain.ImgProcResize(64,64)) #pc.append(procchain.ImgProcNorm()) #pc.append(procchain.ImgProcBin()) pc.append(procchain.ImgProcPyrDn()) pc.append(procchain.ImgProcPyrDn()) pc.append(procchain.ImgProcPyrDn()) pc.append(procchain.ImgProcBilFilter()) #pc.append(procchain.ImgProcRoi(100, 300, 100, 300))
import os, sys import cv2 import numpy as np from ml2 import featex from ml2 import procchain from ml2 import classifier cap = cv2.VideoCapture(0) pc = procchain.ProcChain() pc.append(procchain.ImgProcToGray()) pc.append(procchain.ImgProcRoi(0, 200, 0, 200)) cl = classifier.Classifier() ret = cl.setBaseDir("c:/tmp/hand"); while(True): # Capture frame-by-frame ret, frame = cap.read() cv2.imshow("VideoIn", frame) simg = pc.process(frame) cv2.imshow("VideoStore", simg) k = cv2.waitKey(100)& 0xFF if k == ord('q'): break elif k == ord('o'): t.addItem(simg,'open_hand') elif k == ord('c'):