def play(self): moviment = Moviment(50, 50,100, (2 * 1000)); identify = Identify(20) identify.setMoviment(moviment) counterPoly = CounterPoly() self.config.configure(); cv2.namedWindow('frame', 2048) cv2.resizeWindow("frame", 1024, 768) if self.config.window == True: cv2.namedWindow('dilation', 2048) cv2.resizeWindow("dilation", 1024, 768) cv2.namedWindow('erosao', 2048) cv2.resizeWindow("erosao", 1024, 768) cv2.namedWindow('gauss', 2048) cv2.resizeWindow("gauss", 1024, 768) cv2.namedWindow('borda', 2048) cv2.resizeWindow("borda", 1024, 768) cv2.createTrackbar("Gauss", "gauss", self.config.medianBlur, 25, self.config.gaussCallback) cv2.createTrackbar("Vertical", "dilation", self.config.kernelVertical, 15, self.config.verticalCallback) cv2.createTrackbar("Horizontal", "dilation", self.config.kernelHorizontal, 15, self.config.horizontalCallback) cv2.createTrackbar("Dilation", "dilation", self.config.dilationInterator, 15, self.config.dilationCallback) cv2.createTrackbar("Erode", "erosao", self.config.erodeInterator, 15, self.config.erodeCallback) cv2.createTrackbar("Deslocamento Max.", "frame", self.config.deslocamentoMax, 100, self.config.velocidadeCallback) cv2.createTrackbar("Area Minima", "frame", self.config.minArea, 20000, self.config.minAreaCallback) cv2.createTrackbar("Area Maxima", "frame", self.config.maxArea, 200000, self.config.maxAreaCallback) cv2.createTrackbar("Velocidade do Video", "frame", self.config.modFrames, 15, self.config.modFramesCallback) count = 0 cframe = 0 while(True): frame = self.getFrame() if count < 15: count += 1 continue cframe += 1; if cframe % self.config.modFrames != 0: continue moviment.setFrame(frame) #pre processamento da imagem moviment.preProcess() if self.config.window == True: cv2.imshow('erosao', moviment.erosion) #Identifica os centros dos objetos identificados centers = identify.getPointsMap(self.polys) if self.polys != None: counterPoly.setCenters(centers) for poly in self.polys: try: label = Label(["%s: %s" % (poly.name, counterPoly.areas[poly.name])]) label.setFrame(frame) poly.setLabel(label) except: label = Label(["%s: %s" % (poly.name, 0)]) label.setFrame(frame) poly.setLabel(label) for poly in self.polys: poly.setFrame(frame) poly.draw() if self.channelBuffer != None: self.channelBuffer.setFrame(frame, counterPoly, centers) cv2.imshow('frame', frame) if self.config.window == True: cv2.imshow('gauss', moviment.MedianBlur) cv2.imshow('dilation', moviment.dilation) cv2.imshow('borda', moviment.erosion) k = cv2.waitKey(30) & 0xff if k == 27: break self.finish()
def __init__(self, percW, percError=20, minArea=1000, maxArea=(1000 * 10)): Moviment.__init__(self, percW, percError, minArea, maxArea) DetectCascade.id = 0 self.haar_cascade = cv2.CascadeClassifier('/home/william/git/hackerspace-opencv/experiments/totvs-2/data/cascade.xml') (self.im_width, self.im_height) = (112, 92)