import numpy as np
import pylab as plt
from skimage.io import imread

im = imread('image.jpg').mean(2) / 255.0
m = 0.01 # generalization limit
res = 300
h = 1
w = 1
fractal = np.zeros((res,res))

im = 0
z = 0
for i, a in enumerate(np.linspace(-h,h,res)):
    for j, b in enumerate(np.linspace(-w,w,res)):
        n = 0
        z += 0.01 * (a**2 + b**2)
        while True:
            err = 0 - z
            z += 0.01 * err
            if abs(err) < m:
                fractal[i,j] = n
                n = 0
                break
            n += 1
            
plt.imshow(fractal)
plt.show()
