''' Created on Aug 20, 2015 @author: Brett Paufler Copyright Brett Paufler Code for --- Lightning Talk on Image Cracking Image Work 101 Renamed From: page_lightning_image_cracking.py ''' ''' from os import listdir from skimage.io import imread, imsave import numpy as np def white_blank(img): return np.ones_like(img) * 255 for image in listdir('./input'): image = './input/' + image print image img = imread('./input/' + image) img = white_blank(img) print img sN = image.replace('input', 'output') print sN imsave(sN, img) ''' ''' from skimage.io import imread, imsave import numpy as np #NOTE: img is a numpy array img = imread('./input/alcatraz.png') #Numpy Slicing Syntax r = img[:,:,0] g = img[:,:,1] b = img[:,:,2] #Create a matching array of zeroes z = np.zeros_like(r) #Reconstructing a three layer (R,G,B) img red = np.dstack((r, z, z)) green = np.dstack((z, g, z)) blue = np.dstack((z, z, b)) imsave('./output/red_cat.png', red) imsave('./output/green_cat.png', green) imsave('./output/blue_cat.png', blue) print r == g print img.shape ''' ''' from skimage.io import imread, imsave import numpy as np img = imread('./input/alcatraz.png', as_grey=True) print 'Grayscale' print img #Equal to * 1 below raw_img = np.array(255 * img, dtype=int) img_list = [] for n in [1, 2, 3, 5]: img = raw_img * n print '\n\nimg * %d' % n print img #create the color img array z = np.zeros_like(img) g = np.dstack((z, img, z)) img_list.append(img) imsave('./output/green_squared_%d.png' % n, g) print len(img_list[1:]) coolness = np.dstack(img_list[1:]) imsave('./output/coolness.png', coolness) ''' from skimage.io import imread, imsave from skimage.filter.rank.generic import entropy from skimage.filter import sobel, threshold_otsu from skimage.morphology import disk from skimage.transform import swirl import numpy as np def image_crack_demo_grey(image='./input/alcatraz.png', sN='./output/alcatraz.png', factors=(2,3,5)): '''Grayscale 'coolness' effect applied to passed image file. factors are amount (r,g,b) color layers are multiplied by''' img = np.array(255 * imread(image, as_grey=True), dtype=int) r = img * factors[0] g = img * factors[1] b = img * factors[2] imsave(sN, np.dstack((r,g,b))) def image_crack_demo(image='./input/alcatraz.png', sN='./output/alcatraz.png', factors=(2,3,5)): '''Color Layer 'coolness' effect applied to passed image file. factors are amount (r,g,b) color layers are multiplied by''' img = imread(image) img[:,:,0] *= factors[0] img[:,:,1] *= factors[1] img[:,:,2] *= factors[2] imsave(sN, img) def run_image_demo(): '''Demo run of grayscale and color image_crack_demo used to populate grand finale of webpage.''' for factors in [(2,3,5), (5,3,2), (2,6,30), (30,6,2)]: grey_sN = './output/alcatraz_%d_%d_%d_grey.png' % factors image_crack_demo_grey(sN=grey_sN, factors=factors) color_sN = './output/alcatraz_%d_%d_%d_color.png' % factors image_crack_demo(sN=color_sN, factors=factors) #run_image_demo() def image_crack_one_liners(): image='./input/alcatraz.png' img = imread(image, as_grey=True) sN_entropy='./output/alcatraz_entropy.png' img_entropy = entropy(img, disk(10)) imsave(sN_entropy, img_entropy) sN_sobel='./output/alcatraz_sobel.png' img_sobel= sobel(img) imsave(sN_sobel, img_sobel) sN_swirl = './output/alcatraz_swirl.png' img_swirl = swirl(img, rotation=0, strength=4, radius=750, order=2) imsave(sN_swirl, img_swirl) sN_otsu = './output/alcatraz_otsu.png' #t = 0.5 #threshold_otsu(img) img[img <= 0.64] = 0 #img[img > t] = 1 imsave(sN_otsu, img) image_crack_one_liners()