from cddm.viewer import MultitauViewer from cddm.video import multiply, normalize_video from cddm.window import blackman from cddm.fft import rfft2, normalize_fft from cddm.multitau import iacorr_multi, normalize_multi, log_merge import numpy as np from examples.conf import NFRAMES, SHAPE, KIMAX, KJMAX, DATA_PATH #: see video_simulator for details, loads sample video import examples.video_simulator as video_simulator import importlib importlib.reload(video_simulator) #recreates iterator #: create window for multiplication... window = blackman(SHAPE) #: we must create a video of windows for multiplication window_video = ((window, ), ) * NFRAMES #:perform the actual multiplication video = multiply(video_simulator.video, window_video) #: if the intesity of light source flickers you can normalize each frame to the intensity of the frame #video = normalize_video(video) #: perform rfft2 and crop results, to take only first kimax and first kjmax wavenumbers. fft = rfft2(video, kimax=KIMAX, kjmax=KJMAX) #: you can also normalize each frame with respect to the [0,0] component of the fft #: this it therefore equivalent to normalize_video
"""tests for video processing functions""" import unittest import numpy as np from cddm.video import subtract, multiply, normalize_video, random_video, asmemmaps,\ asarrays, fromarrays, load, crop, show_video, show_fft, show_diff, play, add, \ mask from cddm.conf import FDTYPE, set_showlib from cddm.window import blackman video = random_video((32, 8), count=128, dtype="uint8", max_value=255) vid, = asarrays(video, count=128) bg = vid.mean(0) window = blackman((32, 8)) vid_subtract = vid - bg[None, ...] vid_multiply = vid * window[None, ...] vid_add = vid + bg[None, ...] vid_normalize = vid / (vid.mean((1, 2))[:, None, None]) vid_multiple = vid_subtract * window[None, ...] vid_multiple = vid_multiple / (vid_multiple.mean((1, 2))[:, None, None]) class TestVideo(unittest.TestCase): def setUp(self): pass def test_memmaps(self): video = fromarrays((vid, )) with self.assertRaises(ValueError):