Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def doImageB(imgx, imgy, n):
- print("Intializing Image B")
- start = time.time()
- image = Image.new("RGB", (imgx, imgy))
- draw = ImageDraw.Draw(image)
- pixels = image.load()
- timera = time.time()
- clist = numpy.zeros((imgx, imgy))
- print("Time taken initializing: "+str(timera - start))
- seedsX = [random.randint(0, imgx - 1) for i in range(n)]
- seedsY = [random.randint(0, imgy - 1) for i in range(n)]
- timegd = time.time()
- print("Time taken randomizing: "+str(timegd - timera))
- # find max distance
- maxDist = 0.0
- for ky in range(imgy):
- for kx in range(imgx):
- maxd = 0.0
- mind = 9e10000
- # create a sorted list of distances to all seed points
- for i in range(n):
- d = (seedsX[i] - kx)*(seedsX[i] - kx) + (seedsY[i] - ky)*(seedsY[i] - ky)
- if d > maxd: maxd = d
- if d < mind: mind = d
- smind = math.sqrt(mind)
- clist[kx, ky] = 255 * smind
- if smind > maxDist: maxDist = smind
- #if smind > 0: print("["+str(kx)+","+str(ky)+"]: smind = "+str(smind))
- timep = time.time()
- #print("Time taken = " + str(time.time() - timegd))
- # paint
- #print("Painting Image, Time = " + str(time.time()-start))
- print("Time taken getting distances: "+str(timep - timegd))
- for ky in range(imgy):
- for kx in range(imgx):
- c = int(round(clist[kx, ky] / maxDist))
- pixels[kx, ky] = (0, 0, c)
- times = time.time()
- print("Time taken painting image: "+str(times - timep))
- #print("Saving Image, Time = " + str(time.time()-start))
- #label = "N = " + str(n) + " M = " + str(m)
- #draw.text((0, 0), label, (0, 255, 0)) # write to top-left using green color
- image.save("WorleyNoiseB.png", "PNG")
- print("Time taken saving image B: "+str(time.time() - times))
- print("Total time: "+str(time.time() - start))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement