def test_add(self): video = fromarrays((vid, )) with self.assertRaises(ValueError): list(add(video, ((bg, bg), ) * 128)) video = fromarrays((vid, )) out = add(video, ((bg, ), ) * 128) for frames, true_frame in zip(out, vid_add): self.assertTrue(np.allclose(frames[0], true_frame))
def test_multiply(self): video = fromarrays((vid, )) with self.assertRaises(ValueError): list(multiply(video, ((window, window), ) * 128)) video = fromarrays((vid, )) out = multiply(video, ((window, ), ) * 128) for frames, true_frame in zip(out, vid_multiply): self.assertTrue(np.allclose(frames[0], true_frame))
def test_normalize(self): video = fromarrays((self.vid,)) fft = rfft2(video) fft, = asarrays(normalize_fft(fft),128) self.assertTrue(np.allclose(fft, self.fft_norm)) video = fromarrays((self.vid,)) fft = rfft2(video) fft, = asarrays(normalize_fft(fft, inplace = True),128) self.assertTrue(np.allclose(fft, self.fft_norm))
def test_rfft2_scipy(self): set_rfft2lib("scipy") video = fromarrays((self.vid,)) fft, = asarrays(rfft2(video),128) self.assertTrue(np.allclose(fft, self.fft)) for kimax, kjmax in ((5,6), (7,7),(4,4)): video = fromarrays((self.vid,)) fft, = asarrays(rfft2(video, kimax = kimax, kjmax = kjmax),128) self.assertTrue(np.allclose(fft[:,0:kimax+1], self.fft[:,0:kimax+1,0:kjmax+1])) self.assertTrue(np.allclose(fft[:,-kimax:], self.fft[:,-kimax:,0:kjmax+1]))
def test_equivalence_diff_3(self): norm = 3 bg, var = stats(self.test_data1) data = multitau.acorr_multi(self.test_data1, level_size=16, norm=1, method="corr", binning=0) data = multitau.normalize_multi(data, bg, var, norm=1) x_, out0 = multitau.log_merge(*data) data = multitau.ccorr_multi(self.test_data1, self.test_data1, level_size=16, norm=norm, method="diff", binning=0) data = multitau.normalize_multi(data, bg, var, norm=norm) x_, out = multitau.log_merge(*data) self.assertTrue(np.allclose(out0, out)) data, bg, var = multitau.iacorr_multi(fromarrays((self.test_data1, )), count=64, level_size=16, norm=1, method="diff", binning=0) data = multitau.normalize_multi(data, bg, var, norm=1) x_, out = multitau.log_merge(*data) self.assertTrue(np.allclose(out0, out))
def test_cross_equivalence(self): for method in ("corr","diff","fft"): bg,var = core.stats(test_data1, test_data2, axis = 0) data = core.ccorr(test_data1, test_data2,n = 8, norm = 1, method = method) out1 = core.normalize(data, bg, var) vid = fromarrays((test_data1, test_data2)) data,bg,var = core.iccorr(vid, count = len(test_data1),chunk_size = 16,n = 8, norm = 1, method = method) out2 = core.normalize(data, bg, var) self.assertTrue(np.allclose(out1, out2))
def test_multiple(self): video = fromarrays((vid, )) video = subtract(video, ((bg, ), ) * 128, dtype=FDTYPE) video = multiply(video, ((window, ), ) * 128, inplace=True) video = add(video, ((bg, ), ) * 128, inplace=True) video = subtract(video, ((bg, ), ) * 128, inplace=True) out = normalize_video(video, inplace=True) for frames, true_frame in zip(out, vid_multiple): self.assertTrue(np.allclose(frames[0], true_frame))
def test_rfft2_numpy(self): set_rfft2lib("numpy") video = fromarrays((self.vid,)) fft, = asarrays(rfft2(video),128) self.assertTrue(np.allclose(fft, self.fft)) for kimax, kjmax in ((5,6), (7,7),(4,4)): video = fromarrays((self.vid,)) fft, = asarrays(rfft2(video, kimax = kimax, kjmax = kjmax),128) self.assertTrue(np.allclose(fft[:,0:kimax+1], self.fft[:,0:kimax+1,0:kjmax+1])) self.assertTrue(np.allclose(fft[:,-kimax:], self.fft[:,-kimax:,0:kjmax+1])) video = fromarrays((self.vid,)) fft, = asarrays(rfft2(video, kimax = None, kjmax = 6),128) self.assertTrue(np.allclose(fft, self.fft[:,:,0:7])) video = fromarrays((self.vid,)) fft, = asarrays(rfft2(video, kimax = 6),128) self.assertTrue(np.allclose(fft[:,0:7,:], self.fft[:,0:7,:])) with self.assertRaises(ValueError): video = fromarrays((self.vid,)) fft, = asarrays(rfft2(video, kimax = 16),128) with self.assertRaises(ValueError): video = fromarrays((self.vid,)) fft, = asarrays(rfft2(video, kjmax = 17),128)
def test_show_matplotlib(self): set_showlib("matplotlib") video = fromarrays((vid, vid)) with self.assertRaises(ValueError): show_fft(video, mode="wrong") video = show_video(video) video = show_fft(video, mode="real") video = show_fft(video, clip=256) video = show_diff(video) video = play(video, fps=100) video = load(video, 128)
def test_equivalence_norm_2(self): norm = 2 bg, var = stats(self.test_data1) data= multitau.acorr_multi(self.test_data1, level_size = 16, norm = norm) data = multitau.normalize_multi(data,bg,var, norm = norm) x_, out0 = multitau.log_merge(*data) data = multitau.ccorr_multi(self.test_data1,self.test_data1, level_size = 16, norm = norm) data = multitau.normalize_multi(data,bg,var, norm = norm) x_, out = multitau.log_merge(*data) self.assertTrue(np.allclose(out0,out)) data,bg,var = multitau.iacorr_multi(fromarrays((self.test_data1,)),count = 64, level_size = 16, norm = norm) data = multitau.normalize_multi(data,bg,var, norm = norm) x_, out = multitau.log_merge(*data) self.assertTrue(np.allclose(out0,out))
import matplotlib.pyplot as plt from cddm import conf import numpy as np #setting this to 2 shows progress bar conf.set_verbose(2) SHAPE = (512, 512) vid = np.load("simple_brownian_ddm_video.npy") nframes = len(vid) #obtain frames iterator video = fromarrays((vid, )) ##apply blackman window window = blackman(SHAPE) video = apply_window(video, (window, )) #perform rfft2 and crop data video = rfft2(video, kisize=64, kjsize=64) #load all frames into numpy array #video, = asmemmaps("brownian_single_camera_fft", video, nframes) #compute and create numpy array video, = asarrays(video, nframes) np.save("simple_brownian_ddm_fft.npy", video) v1 = np.load("simple_brownian_cddm_video_0.npy") v2 = np.load("simple_brownian_cddm_video_1.npy") nframes = len(v1)
#v1[3000:] = v1[3000:] + v1[0] #v2[3000:] = v2[3000:] + v2[-1] v1 = v1 + np.random.randn(64, 33) v2 = v2 + np.random.randn(64, 33) v1 = v1 - v1[:2].mean(axis=0)[None, ...] v2 = v2 - v2[:2].mean(axis=0)[None, ...] t1 = np.load("simple_brownian_cddm_t1.npy") t2 = np.load("simple_brownian_cddm_t2.npy") nframes = len(v1) v = fromarrays((v1, v2)) data, bg, var = iccorr_multi(v, t1, t2, level=5, chunk_size=64, auto_background=True, period=PERIOD, binning=True, stats=True, norm=1, show=True) #data, bg, var = ccorr_multi(v1,v2 , t1,t2, n=2**5, period = PERIOD, binning = True, norm = 0, stats = True) #data2 = ccorr_multi(v1,v2 , t1,t2, n=2**4, period = PERIOD, binning = False, norm = 2)
def test_crop(self): video = fromarrays((vid, )) with self.assertRaises(ValueError): list(crop(video, roi=((0, 4), 0, 2))) out, = asarrays(crop(video, roi=((0, 2), (0, 2))), 128) self.assertTrue(np.allclose(out[:], vid[:, 0:2, 0:2]))
def test_mask(self): m = vid[0] > 0. video = fromarrays((vid, )) out, = asarrays(mask(video, m), 128) self.assertTrue(np.allclose(out, vid[:, m]))
def test_load(self): video = fromarrays((vid, )) with self.assertRaises(ValueError): video = load(video) video = load(video, 128) video = load(video)
def test_normalize(self): video = fromarrays((vid, )) out = normalize_video(video) for frames, true_frame in zip(out, vid_normalize): self.assertTrue(np.allclose(frames[0], true_frame))
def test_memmaps(self): video = fromarrays((vid, )) with self.assertRaises(ValueError): video = asmemmaps("deleteme", video) video = asmemmaps("deleteme", video, 128)