Beispiel #1
0
 def shotDetect(self, queue, capture, sensitivity, number_frame,
                frames_bloc, file_name, file_name_save, file_video_save,
                file_atual, ncpu, ncpus):
     self.number_frame = number_frame
     self.fps = cvGetCaptureProperty(capture, CV_CAP_PROP_FPS)
     histogramPolitic = HistogramPolitic()
     imageManipulation = ImageManipulation()
     frameA, frameB, frameC = self.passFrame(capture)
     vetImg = self.initLoadFrames(frameA, frameB)
     frameAHistogram = imageManipulation.createHistogramBoxes(vetImg, 0)
     frameBHistogram = imageManipulation.createHistogramBoxes(vetImg, 1)
     limiar = histogramPolitic.calculateSensitivity(sensitivity, vetImg[0])
     while not (frameC is None) and (self.number_frame <= frames_bloc):
         vetImg = self.atualizeVetImg(vetImg, Ipl2PIL(frameC))
         frameCHistogram = imageManipulation.createHistogramBoxes(vetImg, 2)
         if histogramPolitic.verifyTransition(
                 frameAHistogram, frameBHistogram, frameCHistogram,
                 limiar) and (self.number_frame - self.lastSaved) > 20:
             self.saveTransition(file_name_save, frames_bloc, vetImg)
         frameA, frameB, frameC = self.atualizeVar(frameA, frameB, frameC,
                                                   capture)
         frameAHistogram = frameBHistogram
         frameBHistogram = frameCHistogram
         self.number_frame += 1
     if (ncpu == ncpus):
         self._list.append(frames_bloc / self.fps)
     elif (ncpu == 1):
         self._list.insert(0, 0)
     queue.put(self._list)
 def createHistogramBoxes( self, vetImg, frame, totalHorizontalDivisions = 4, totalVerticalDivisions = 4 ):
     cropHistogram = []
     histogramPolitic = HistogramPolitic()
     sizeBox = histogramPolitic.calculateSizeBox ( vetImg[frame] )
     for horizontalDivision in range( totalHorizontalDivisions ):
         for verticalDivision in range( totalVerticalDivisions ):
             x1Point = horizontalDivision * sizeBox[0]
             y1Point = verticalDivision * sizeBox[1]
             x2Point = x1Point + sizeBox[0] - 1
             y2Point = y1Point + sizeBox[1] - 1
             box = (x1Point, y1Point, x2Point, y2Point)
             cropHistogram.append( vetImg[ frame ].crop(box).convert("L").histogram() )
     return cropHistogram
 def createHistogramBoxes(self,
                          vetImg,
                          frame,
                          totalHorizontalDivisions=4,
                          totalVerticalDivisions=4):
     cropHistogram = []
     histogramPolitic = HistogramPolitic()
     sizeBox = histogramPolitic.calculateSizeBox(vetImg[frame])
     for horizontalDivision in range(totalHorizontalDivisions):
         for verticalDivision in range(totalVerticalDivisions):
             x1Point = horizontalDivision * sizeBox[0]
             y1Point = verticalDivision * sizeBox[1]
             x2Point = x1Point + sizeBox[0] - 1
             y2Point = y1Point + sizeBox[1] - 1
             box = (x1Point, y1Point, x2Point, y2Point)
             cropHistogram.append(
                 vetImg[frame].crop(box).convert("L").histogram())
     return cropHistogram
Beispiel #4
0
 def shotDetect(self,queue, capture, sensitivity, number_frame, frames_bloc, file_name, file_name_save, file_video_save, file_atual, ncpu, ncpus): 
     self.number_frame = number_frame
     self.fps = cvGetCaptureProperty(capture, CV_CAP_PROP_FPS)
     histogramPolitic = HistogramPolitic()
     imageManipulation = ImageManipulation()
     frameA, frameB, frameC = self.passFrame(capture) 
     vetImg = self.initLoadFrames(frameA, frameB)
     frameAHistogram = imageManipulation.createHistogramBoxes(vetImg, 0)
     frameBHistogram = imageManipulation.createHistogramBoxes(vetImg, 1)
     limiar = histogramPolitic.calculateSensitivity(sensitivity, vetImg[0])   
     while not(frameC is None) and (self.number_frame<= frames_bloc):
         vetImg = self.atualizeVetImg(vetImg, Ipl2PIL(frameC))
         frameCHistogram = imageManipulation.createHistogramBoxes(vetImg, 2)
         if histogramPolitic.verifyTransition(frameAHistogram, frameBHistogram, frameCHistogram, limiar) and (self.number_frame - self.lastSaved) > 20:         
             self.saveTransition(file_name_save, frames_bloc, vetImg) 
         frameA, frameB, frameC = self.atualizeVar(frameA, frameB, frameC, capture) 	
         frameAHistogram = frameBHistogram
         frameBHistogram = frameCHistogram
         self.number_frame += 1
     if (ncpu == ncpus):
         self._list.append(frames_bloc / self.fps)
     elif (ncpu == 1):
         self._list.insert(0, 0)
     queue.put(self._list)