def test_farneback_optical_flow_refcnt(self): # sys.getrefcnt is generally one higher than expected. # creating an object is +1 refcnt. passing the object to # sys.getrefcount creates a temporary reference as an # argument is another + 1 refcnt u,v = ocl_farneback_optical_flow( self.fr_1_gr,self.fr_2_gr,0.5,3,15,3,7,1.5,False,0) self.assertEqual(sys.getrefcount(u), 1+1) self.assertEqual(sys.getrefcount(v), 1+1)
def test_farneback_optical_flow_refcnt(self): # sys.getrefcnt is generally one higher than expected. # creating an object is +1 refcnt. passing the object to # sys.getrefcount creates a temporary reference as an # argument is another + 1 refcnt u, v = ocl_farneback_optical_flow(self.fr_1_gr, self.fr_2_gr, 0.5, 3, 15, 3, 7, 1.5, False, 0) self.assertEqual(sys.getrefcount(u), 1 + 1) self.assertEqual(sys.getrefcount(v), 1 + 1)
def test_ocl_interpolate_flow_hires(self): img_1 = os.path.join(settings['tmp_dir'], '~test_ocl_interpolate_flow_hires_1.jpg') img_2 = os.path.join(settings['tmp_dir'], '~test_ocl_interpolate_flow_hires_2.jpg') mk_sample_image(img_1, 4096, 2160, 3) mk_sample_image(img_2, 4096, 2160, 3) fr_1 = cv2.imread(img_1) fr_2 = cv2.imread(img_2) fr_1_gr = cv2.cvtColor(fr_1, cv2.COLOR_BGR2GRAY) fr_2_gr = cv2.cvtColor(fr_2, cv2.COLOR_BGR2GRAY) fu,fv = ocl_farneback_optical_flow( fr_1_gr,fr_2_gr,0.5,3,15,3,7,1.5,False,0) bu,bv = ocl_farneback_optical_flow( fr_2_gr,fr_1_gr,0.5,3,15,3,7,1.5,False,0) fr_1_32 = np.float32(fr_1)*1/255.0 fr_2_32 = np.float32(fr_2)*1/255.0 self.assertIsNotNone( ocl_interpolate_flow(fr_1_32,fr_2_32,fu,fv,bu,bv,1)[0])
def test_ocl_interpolate_flow_hires(self): img_1 = os.path.join(settings['tempdir'], '~test_ocl_interpolate_flow_hires_1.jpg') img_2 = os.path.join(settings['tempdir'], '~test_ocl_interpolate_flow_hires_2.jpg') mk_sample_image(img_1, 4096, 2160, 3) mk_sample_image(img_2, 4096, 2160, 3) fr_1 = cv2.imread(img_1) fr_2 = cv2.imread(img_2) fr_1_gr = cv2.cvtColor(fr_1, cv2.COLOR_BGR2GRAY) fr_2_gr = cv2.cvtColor(fr_2, cv2.COLOR_BGR2GRAY) fu, fv = ocl_farneback_optical_flow(fr_1_gr, fr_2_gr, 0.5, 3, 15, 3, 7, 1.5, False, 0) bu, bv = ocl_farneback_optical_flow(fr_2_gr, fr_1_gr, 0.5, 3, 15, 3, 7, 1.5, False, 0) fr_1_32 = np.float32(fr_1) * 1 / 255.0 fr_2_32 = np.float32(fr_2) * 1 / 255.0 self.assertIsNotNone( ocl_interpolate_flow(fr_1_32, fr_2_32, fu, fv, bu, bv, 1)[0])
def optflow_fn(x, y, pyr=args.pyr_scale, levels=args.levels, winsize=args.winsize, iters=args.iters, polyn=args.poly_n, polys=args.poly_s, fast=args.fast_pyr, filt=args.flow_filter): if use_sw_interpolate: return cv2.calcOpticalFlowFarneback( x, y, pyr, levels, winsize, iters, polyn, polys, filt) else: return motion.ocl_farneback_optical_flow( x, y, pyr, levels, winsize, iters, polyn, polys, fast, filt)
def setUp(self): img_1 = os.path.join(settings['tmp_dir'], '~test_interpolate_flow_test_case_1.jpg') img_2 = os.path.join(settings['tmp_dir'], '~test_interpolate_flow_test_case_2.jpg') mk_sample_image(img_1, 320, 240, 3) mk_sample_image(img_2, 320, 240, 3) fr_1 = cv2.imread(img_1) fr_2 = cv2.imread(img_2) fr_1_gr = cv2.cvtColor(fr_1, cv2.COLOR_BGR2GRAY) fr_2_gr = cv2.cvtColor(fr_2, cv2.COLOR_BGR2GRAY) self.fu, self.fv = \ ocl_farneback_optical_flow(fr_1_gr,fr_2_gr,0.5,3,15,3,7,1.5,False,0) self.bu, self.bv = \ ocl_farneback_optical_flow(fr_1_gr,fr_2_gr,0.5,3,15,3,7,1.5,False,0) self.fr_1_32 = np.float32(fr_1)*1/255.0 self.fr_2_32 = np.float32(fr_2)*1/255.0 self.ocl_inter_method = lambda t: \ ocl_interpolate_flow( self.fr_1_32,self.fr_2_32,self.fu,self.fv,self.bu,self.bv,t)
def setUp(self): img_1 = os.path.join(settings['tempdir'], '~test_interpolate_flow_test_case_1.jpg') img_2 = os.path.join(settings['tempdir'], '~test_interpolate_flow_test_case_2.jpg') mk_sample_image(img_1, 320, 240, 3) mk_sample_image(img_2, 320, 240, 3) fr_1 = cv2.imread(img_1) fr_2 = cv2.imread(img_2) fr_1_gr = cv2.cvtColor(fr_1, cv2.COLOR_BGR2GRAY) fr_2_gr = cv2.cvtColor(fr_2, cv2.COLOR_BGR2GRAY) self.fu, self.fv = \ ocl_farneback_optical_flow(fr_1_gr,fr_2_gr,0.5,3,15,3,7,1.5,False,0) self.bu, self.bv = \ ocl_farneback_optical_flow(fr_1_gr,fr_2_gr,0.5,3,15,3,7,1.5,False,0) self.fr_1_32 = np.float32(fr_1) * 1 / 255.0 self.fr_2_32 = np.float32(fr_2) * 1 / 255.0 self.ocl_inter_method = lambda t: \ ocl_interpolate_flow( self.fr_1_32,self.fr_2_32,self.fu,self.fv,self.bu,self.bv,t)
def test_farneback_optical_flow_hires(self): img_1 = os.path.join(settings['tmp_dir'], '~test_farneback_optical_flow_hires_1.jpg') img_2 = os.path.join(settings['tmp_dir'], '~test_farneback_optical_flow_hires_2.jpg') mk_sample_image(img_1, 4096, 2160, 3) mk_sample_image(img_2, 4096, 2160, 3) fr_1 = cv2.imread(img_1) fr_2 = cv2.imread(img_2) fr_1_gr = cv2.cvtColor(fr_1, cv2.COLOR_BGR2GRAY) fr_2_gr = cv2.cvtColor(fr_2, cv2.COLOR_BGR2GRAY) self.assertIsNotNone( ocl_farneback_optical_flow( fr_1_gr,fr_2_gr,0.5,3,15,3,7,1.5,False,0))
def test_farneback_optical_flow_hires(self): img_1 = os.path.join(settings['tempdir'], '~test_farneback_optical_flow_hires_1.jpg') img_2 = os.path.join(settings['tempdir'], '~test_farneback_optical_flow_hires_2.jpg') mk_sample_image(img_1, 4096, 2160, 3) mk_sample_image(img_2, 4096, 2160, 3) fr_1 = cv2.imread(img_1) fr_2 = cv2.imread(img_2) fr_1_gr = cv2.cvtColor(fr_1, cv2.COLOR_BGR2GRAY) fr_2_gr = cv2.cvtColor(fr_2, cv2.COLOR_BGR2GRAY) self.assertIsNotNone( ocl_farneback_optical_flow(fr_1_gr, fr_2_gr, 0.5, 3, 15, 3, 7, 1.5, False, 0))
def setUp(self): img_1 = os.path.join(settings['tmp_dir'], '~test_optical_flow_test_case_1.jpg') img_2 = os.path.join(settings['tmp_dir'], '~test_optical_flow_test_case_2.jpg') mk_sample_image(img_1, 320, 240, 3) mk_sample_image(img_2, 320, 240, 3) fr_1 = cv2.imread(img_1) fr_2 = cv2.imread(img_2) self.fr_1_gr = cv2.cvtColor(fr_1, cv2.COLOR_BGR2GRAY) self.fr_2_gr = cv2.cvtColor(fr_2, cv2.COLOR_BGR2GRAY) self.u, self.v = \ ocl_farneback_optical_flow( self.fr_1_gr,self.fr_2_gr,0.5,3,15,3,7,1.5,False,0) sw_flow = \ sw_farneback_optical_flow( self.fr_1_gr,self.fr_2_gr,0.5,3,15,3,7,1.5,False,0) # split flow into horizontal and vertical components self.sw_u = sw_flow[:,:,0] self.sw_v = sw_flow[:,:,1]
def setUp(self): img_1 = os.path.join(settings['tempdir'], '~test_optical_flow_test_case_1.jpg') img_2 = os.path.join(settings['tempdir'], '~test_optical_flow_test_case_2.jpg') mk_sample_image(img_1, 320, 240, 3) mk_sample_image(img_2, 320, 240, 3) fr_1 = cv2.imread(img_1) fr_2 = cv2.imread(img_2) self.fr_1_gr = cv2.cvtColor(fr_1, cv2.COLOR_BGR2GRAY) self.fr_2_gr = cv2.cvtColor(fr_2, cv2.COLOR_BGR2GRAY) self.u, self.v = \ ocl_farneback_optical_flow( self.fr_1_gr,self.fr_2_gr,0.5,3,15,3,7,1.5,False,0) sw_flow = \ sw_farneback_optical_flow( self.fr_1_gr,self.fr_2_gr,0.5,3,15,3,7,1.5,False,0) # split flow into horizontal and vertical components self.sw_u = sw_flow[:, :, 0] self.sw_v = sw_flow[:, :, 1]
# butterflow will write renders to a temp file in `tempdir` and will move it # to it's destination path when completed using `shutil.move()`. if the dst # is on the current filesystem then `os.rename()` is used, otherwise the file # is copied with `shutil.copy2` then removed tempdir = tempfile.gettempdir() default["tmp_dir"] = os.path.join(tempdir, "butterflow-{}".format(__version__)) default["clb_dir"] = os.path.join(default["tmp_dir"], "clb") # define interpolation and flow functions default["flow_function"] = lambda x, y: motion.ocl_farneback_optical_flow( x, y, default["pyr_scale"], default["levels"], default["winsize"], default["iters"], default["poly_n"], default["poly_s"], default["fast_pyr"], 0, ) default["interpolate_function"] = motion.ocl_interpolate_flow # override default settings with development settings # ignore errors when `dev_settings.py` does not exist # ignore errors when `default` variable is not defined in the file try: from butterflow import dev_settings for k, v in dev_settings.default.items():
# dirs and will select the first one that the user can create a file in # See: https://docs.python.org/2/library/tempfile.html#tempfile.tempdir # # butterflow will write renders to a temp file in `tempdir` and will move it # to it's destination path when completed using `shutil.move()`. if the dst # is on the current filesystem then `os.rename()` is used, otherwise the file # is copied with `shutil.copy2` then removed tempdir = tempfile.gettempdir() default['tmp_dir'] = os.path.join(tempdir, 'butterflow-{}'.format(__version__)) default['clb_dir'] = os.path.join(default['tmp_dir'], 'clb') # define interpolation and flow functions default['flow_function'] = lambda x, y: \ motion.ocl_farneback_optical_flow( x, y, default['pyr_scale'], default['levels'], default['winsize'], default['iters'], default['poly_n'], default['poly_s'], default['fast_pyr'], 0) default['interpolate_function'] = motion.ocl_interpolate_flow # override default settings with development settings # ignore errors when `dev_settings.py` does not exist # ignore errors when `default` variable is not defined in the file try: from butterflow import dev_settings for k, v in dev_settings.default.items(): default[k] = v except ImportError: pass except AttributeError: pass