def h264show(filenames): print cvideo.init() img = np.zeros([720, 1280, 3], dtype=np.uint8) missingIFrame = True pave = PaVE() for filename in filenames: pave.append(open(filename, "rb").read()) header, payload = pave.extract() while len(header) > 0: w, h = frameEncodedWidth(header), frameEncodedHeight(header) if img.shape[0] != h or img.shape[1] != w: print img.shape, (w, h) img = np.zeros([h, w, 3], dtype=np.uint8) missingIFrame = missingIFrame and not isIFrame(header) if not missingIFrame: arr = parseFrame(payload) assert cvideo.frame(img, isIFrame(header) and 1 or 0, payload) if arr: for x, y, mx, my in arr: cv2.line(img, (16 * x + 8, 16 * y + 8), (16 * x + 8 + mx / 4, 16 * y + 8 + my / 4), (0, 0, 255), 1) cv2.imshow('image', img) if cv2.waitKey(1) & 0xFF == ord('q'): break header, payload = pave.extract()
def run(self): while True: #self.shouldIRun.isSet(): if len(self.readyForProcessing) > 0: self.lock.acquire() tmp = self.readyForProcessing timestamp = self.timestamp frameNum = self.frameNum self.readyForProcessing = "" self.lock.release() mv = h264.parseFrame(tmp) self.lock.acquire() self._lastResult = frameNum, timestamp, quadrantMotion(mv) self.lock.release() print len(mv), self._lastResult
def run(self): while True: #self.shouldIRun.isSet(): if len( self.readyForProcessing) > 0: self.lock.acquire() tmp = self.readyForProcessing timestamp = self.timestamp frameNum = self.frameNum self.readyForProcessing = "" self.lock.release() mv = h264.parseFrame( tmp ) self.lock.acquire() self._lastResult = frameNum, timestamp, quadrantMotion( mv ) self.lock.release() print len(mv), self._lastResult
def h264show( filenames ): print cvideo.init() img = np.zeros([720,1280,3], dtype=np.uint8) missingIFrame = True pave = PaVE() for filename in filenames: pave.append( open( filename, "rb" ).read() ) header,payload = pave.extract() while len(header) > 0: w,h = frameEncodedWidth(header), frameEncodedHeight(header) if img.shape[0] != h or img.shape[1] != w: print img.shape, (w,h) img = np.zeros([h,w,3], dtype=np.uint8) missingIFrame = missingIFrame and not isIFrame(header) if not missingIFrame: arr = parseFrame( payload ) assert cvideo.frame( img, isIFrame(header) and 1 or 0, payload ) if arr: for x,y,mx,my in arr: cv2.line( img, (16*x+8,16*y+8), (16*x+8+mx/4,16*y+8+my/4), (0,0,255), 1 ) cv2.imshow('image', img) if cv2.waitKey(1) & 0xFF == ord('q'): break header,payload = pave.extract()
import sys import os from h264 import parseFrame, setVerbose from collections import defaultdict verbose = False def histogram(arr, size=10): d = defaultdict(int) for x in arr: d[x / size] += 1 return d if __name__ == "__main__": if len(sys.argv) < 2: print __doc__ sys.exit(2) setVerbose(False) # for filename in os.listdir( sys.argv[1] ): for i in xrange(150, 165): filename = "frame%04d.bin" % i frameData = open(sys.argv[1] + os.sep + filename, "rb").read() arr = parseFrame(frameData) if arr != None and arr != []: x = [mx for x, y, mx, my in arr] xRange = min(x), max(x) print filename, len(arr), xRange, histogram(x)
import sys import os from h264 import parseFrame, setVerbose from collections import defaultdict verbose=False def histogram( arr, size=10 ): d = defaultdict( int ) for x in arr: d[x/size] += 1 return d if __name__ == "__main__": if len(sys.argv) < 2: print __doc__ sys.exit(2) setVerbose(False) # for filename in os.listdir( sys.argv[1] ): for i in xrange(150,165): filename = "frame%04d.bin" % i frameData = open( sys.argv[1] + os.sep + filename, "rb" ).read() arr = parseFrame( frameData ) if arr != None and arr != []: x = [mx for x,y,mx,my in arr] xRange = min( x ), max( x ) print filename, len(arr), xRange, histogram(x)
count = 0 left,right,up,down = 0,0,0,0 # obstacle at for x in xrange(80): for y in xrange(45): mx, my = pic[x][y] if mx != 0 and my != 0: d = abs(mx)+abs(my) if d > THRESHOLD: count += 1 if x < 40: left += 1 else: right += 1 if y < 22: up += 1 else: down += 1 return left, right, up, down # TODO revise to LT,RT,LB,RB quadrants if __name__ == "__main__": import sys from h264 import parseFrame, setVerbose if len(sys.argv) < 2: print __doc__ sys.exit(2) setVerbose( False ) filename = sys.argv[1] mv = parseFrame( open( filename, "rb" ).read() ) print quadrantMotion( mv )