Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import Image
- import ImageDraw
- from scipy import misc
- import matplotlib.pyplot as plt
- import scipy
- import numpy
- import random
- f = misc.imread("firefox_512.png")
- h = misc.imread("firefox_512.png")
- p = misc.imread("paw_512.png")
- N = 1000000
- for i in range(1,4):
- for j in range(1,4):
- for k in range(1,4):
- for l in range(1,4):
- a = 0.25*i
- b = 0.25*j
- c = 0.25*k
- d = 0.25*l
- if a == c and b == d:
- break
- def F(x,y,r):
- if r <= 10000*a*b:
- return a*x, b*y
- elif r <= 10000*b:
- return (1-a)*x + a*512.0 - 1.0, b*y
- elif r <= 10000*(1 - a + a*b):
- return (1-a)*x + a*512.0 - 1.0, (1-b)*y + b*512.0 - 1.0
- else:
- return a*x, (1-b)*y + b*512 - 1
- def Hf(x,y,r):
- if r <= 10000*a*b:
- return 0.5*x, 0.5*y
- elif r <= 10000*b:
- return 0.5*x + 255.0
- elif r <= 10000*(1 - a + a*b):
- return 0.5*x + 255.0, 0.5*y + 255.0
- else:
- return 0.5*x, 0.5*y + 255.0
- def P(x,y,r):
- if r <= 10000*c*d:
- return c*x, d*y
- elif r <= 10000*d:
- return (1-c)*x + c*512.0 - 1.0, d*y
- elif r <= 10000*(1 - c + c*d):
- return (1-c)*x + c*512.0 - 1.0, (1-d)*y + d*512.0 - 1.0
- else:
- return c*x, (1-d)*y + d*512.0 - 1.0
- def Hp(x,y,r):
- if r <= 10000*c*d:
- return 0.5*x, 0.5*y
- elif r <= 10000*d:
- return 0.5*x + 255.0, 0.5*y
- elif r <= 10000*(1 - c + c*d):
- return 0.5*x + 255.0, 0.5*y + 255.0
- else:
- return 0.5*x + 255.0, 0.5*y + 255.0
- (xf,yf) = (0,0)
- (xh,yh) = (0,0)
- for n in xrange(N):
- r = random.randint(1,10000)
- (xf,yf) = F(xf,yf,r)
- (xh,yh) = Hf(xh,yh,r)
- h[int(round(xh)),int(round(yh))] = f[int(round(xf)),
- int(round(yf))]
- (xp,yp) = (0,0)
- (xh,yh) = (0,0)
- for n in xrange(N/4):
- r = random.randint(1,10000)
- (xp,yp) = P(xp,yp,r)
- (xh,yh) = Hp(xh,yh,r)
- h[int(round(xh)),int(round(yh))] = p[int(round(xp)),
- int(round(yp))]
- misc.imsave('%d_%d_%d_%d_merged.png' % (i,j,k,l), h)
- f = misc.imread("paw_512.png")
- h = misc.imread("%d_%d_%d_%d_merged.png" % (i,j,k,l))
- (xf,yf) = (0,0)
- (xh,yh) = (0,0)
- for n in xrange(N):
- r = random.randint(1,10000)
- (xf,yf) = F(xf,yf,k)
- (xh,yh) = Hf(xh,yh,k)
- f[int(round(xf)),int(round(yf))] = h[int(round(xh)),
- int(round(yh))]
- misc.imsave('%d_%d_%d_%d_f.png' % (i,j,k,l), f)
- p = misc.imread("firefox_512.png")
- (xf,yf) = (0,0)
- (xp,yp) = (0,0)
- for n in xrange(N):
- r = random.randint(1,10000)
- (xp,yp) = P(xp,yp,r)
- (xh,yh) = Hp(xh,yh,r)
- p[int(round(xp)),int(round(yp))] = h[int(round(xh)),
- int(round(yh))]
- misc.imsave('%d_%d_%d_%d_p.png' % (i,j,k,l), p)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement