# coding: utf-8 import numpy as np import field import filtering import cv2 import math width = 300 height = width input_radius = 60 omega = .01 u = np.zeros((height, width), np.float) def circle_pos(tt,k,n): a = tt + k*2*math.pi/float(n) return (height//2 + input_radius * math.sin(a), width//2 + input_radius * math.cos(a)) def make_input(t): tt = omega*t i = np.zeros((height, width), np.float) for k in range(5): i = field.over_gaussian(i, 1, 10, circle_pos(tt,k,5)) i = field.add_noise(i, 1, -.5, .5) return np.clip(i,0,1) cv2.namedWindow('DNF') cv2.namedWindow('i') for t in xrange(2000): i = make_input(t) if t % 200 < 20: u = field.set_noise(u, 1, 0, 1) else: u = i # Put your u update here.... cv2.imshow('DNF', u) cv2.imshow('i', i) cv2.waitKey(1)