Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- """
- Created on Thurs Sept 07 2015
- @author: Tom Babbitt
- """
- import random,math,cmath,itertools
- from PIL import Image,ImageChops,ImageStat,ImageEnhance
- import glob,pickle
- def mandlecomplex(a1):
- j,c = a1[0],a1[1]
- j = j**5 + c
- return ([j,c])
- class IFS(object):
- def __init__(self,Fn,Io):
- self.Fn = Fn
- self.Io = Io
- self.Inext = Io
- def __iter__(self):
- return self
- def next(self):
- if self.Fn:
- self.Inext = self.Fn(self.Inext)
- return self.Inext
- def checkval(Valu):
- vrl,vimg = Valu.real,Valu.imag
- if math.isnan(vrl):
- Valu = complex(1.,vimg)
- vrl = 1.
- if math.isnan(vimg):
- Valu = complex(vrl,1.)
- vimg = 1.
- if vrl > 1.:
- Valu = complex(1.,vimg)
- vrl = 1.
- elif vrl < 0.:
- Valu = complex(0.,vimg)
- vrl = 0.
- if vimg > 1.:
- Valu = complex(vrl,1.)
- vimg = 1.
- elif vimg < 0.:
- Valu = complex(vrl,-1.)
- vimg = 0.
- return Valu
- superimg = [[0 for i in range(1024)] for j in range(1024)]
- def imgux(gray,fname):
- im = Image.new('L',(len(gray[int(len(gray)/2)]),len(gray)))
- [[im.putpixel((c,k),l) for k,l in enumerate(i)] for c,i in enumerate(gray)]
- im.save(file(fname,'wb'))
- def umxrot(uxm):
- uxt = [[0. for j in range(len(uxm[0]))] for i in range(len(uxm))]
- for i in range(len(uxm)):
- for j in range(len(uxm[0])):
- uxt[j][i] = uxm[i][j]
- return uxt
- def imgtouxm(fname):
- tomimg = Image.open(file(fname,'rb'))
- tomimg = tomimg.resize((1024,1024))
- tomimg = tomimg.convert('L')
- trdata = tomimg.getdata()
- uxm = zip(*[iter(trdata)]*tomimg.size[0])
- uxm = umxrot(uxm)
- del tomimg
- return uxm
- def imagtouxm(tomimg):
- trdata = tomimg.getdata()
- uxm = zip(*[iter(trdata)]*tomimg.size[0])
- uxm = umxrot(uxm)
- return uxm
- #newlenalistIFS = IFS(mandlecomplex,[complex(0,0),(-0.31976622183775705, 0.5919377818972109)])
- #newlenalist = [complex(random.uniform(0.,1.),random.uniform(0.,1.)) for v in range(30000)]
- newlenalist = []
- FDlisti = pickle.load(file('c:\\python27\\tom2\\shell\\FDlist4.pkl','rb'))
- for I in FDlisti:
- newlenalist.append(complex(I[0][0],I[0][1]))
- #newlenalist.append(complex(random.uniform(0.,1.),random.uniform(0.,1.)))
- ##img = Image.open('C:\\Python27\\tom\\lena244\\atlantisR.jpg')
- ##img = img.resize((512,512))
- ##aa = img.resize((1024,1024))#Image.new('L',(1024,1024))
- ##aa.paste(img,(256,256))
- ###aa.save('c:\\python27\\tom2\\shell\\atlantisB.png')
- ##amaster = imagtouxm(aa)
- #superimg4 = [[0. for i2 in range(1024)] for j2 in range(1024)]
- FDlist = []
- #FDlist = pickle.load(file('c:\\python27\\tom2\\shell\\FDlist4.pkl','rb'))
- amaster = imgtouxm('C:\\Python27\\tom\\lena244\\atlantisB.jpg')#'C:\\Python27\\tom\\PNGdump\\lena.png')#'C:\\Python27\\tom\\lena2\\testuxmT223.png')
- print('newlenalist',len(newlenalist))
- counterhist = [0 for color in range(4097)]
- for FDc,FD in enumerate(newlenalist):
- colorhisto2 = [0 for color in range(256)]
- rnum = complex(0,0)
- #rnum = complex(random.uniform(-1.,1.),random.uniform(-1.,1.))
- newIFS = IFS(mandlecomplex,[rnum,FD])
- superimg3 = [[0. for i2 in range(1024)] for j2 in range(1024)]
- for itercount in range(4096):
- nextnum = newIFS.next()
- nextnum[0] = checkval(nextnum[0])
- nimag = int((nextnum[0].imag - .24633431)* 3320.)
- nreal = int((nextnum[0].real - .30791789) * 3320.)
- if nimag > 1023:
- nimag = 1023
- if nreal > 1023:
- nreal = 1023
- if nimag < 0:
- nimag = 0
- if nreal < 0:
- nreal = 0
- #print(int(nextnum[0].imag * 511.),int(nextnum[0].real * 511.))#0.49496608277108433734939759036145 0.52900222734939759036144578313253
- colorhisto2[amaster[nimag][nreal]] += 1
- superimg3[nimag][nreal] = 1
- #superimg4[nimag][nreal] += 1
- print(max( colorhisto2),sum([sum(v) for v in superimg3]))
- counterhist[int(sum([sum(v) for v in superimg3]))] +=1
- if max( colorhisto2) >3500 and colorhisto2.index(max(colorhisto2)) > 0 and sum([sum(v) for v in superimg3])>3:
- FDlist.append(((FD.real,FD.imag),colorhisto2.index(max(colorhisto2))))
- print(float(FDc)/float(len(newlenalist)))
- print('FDlist',len(FDlist),counterhist[:300])
- #print(max([max(x) for x in superimg4]))
- for FDc,FD in enumerate(FDlist):#masterlist):
- for extraitir in range(10):
- rnum = complex(0,0)
- #rnum = complex(random.uniform(-1.,1.),random.uniform(-1.,1.))
- newIFS = IFS(mandlecomplex,[rnum,complex(FD[0][0],FD[0][1])])
- for itercount in range(2048):
- nextnum = newIFS.next()
- nextnum[0] = checkval(nextnum[0])
- #nimag = int((nextnum[0].imag - 0.39332226180722891566265060240964)* 30056.)
- #nreal = int((nextnum[0].real - 0.49496608277108433734939759036145) * 30056.)
- nimag = int((nextnum[0].imag - .24633431)* 3320.)
- nreal = int((nextnum[0].real - .30791789) * 3320.)
- if nimag > 1023:
- nimag = 1023
- if nreal > 1023:
- nreal = 1023
- if nimag < 0:
- nimag = 0
- if nreal < 0:
- nreal = 0
- superimg[nimag][nreal] = FD[1]
- print(float(FDc)/float(len(FDlist)))
- imgux(superimg,'c:\\python27\\tom2\\shell\\Atlantisf_test_5d.png')#'+str((float(FDc)/float(len(newlenalist))))+'.png')
- #imgux(superimg4,'c:\\python27\\tom2\\shell\\LenaE_pixelcount.png')
- pickle.dump(FDlist,file('c:\\python27\\tom2\\shell\\Atlantisf_B.pkl','wb'))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement