예제 #1
0
 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)
예제 #2
0
 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)
예제 #3
0
 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])
예제 #4
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])
예제 #5
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)
예제 #6
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)
예제 #7
0
 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)
예제 #8
0
 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)
예제 #9
0
 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))
예제 #10
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))
예제 #11
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]
예제 #12
0
 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]
예제 #13
0
# 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():
예제 #14
0
# 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
예제 #15
0
# 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