def restoreGray(image, mask): # Make a copy of the image newImage = image[:] support.showImage(newImage) # For a certain amount of time run inpaint algorithm for i in range(0, T + 1, 1): inpaint(image, newImage, mask) image, newImage = newImage, image # Every so many iterations save the result if i % step == 0: support.saveImage(newImage, "%s-%04d.png" % (imgName, i)) support.showImage(newImage) return newImage
def testTiffany(): image = support.loadImageRGB("originals/tiffany.png") image = impress.impress(image) support.showImage(image) support.saveImage(image, 'tiffany_color' + color_plate)
def testTable(): image = support.loadImageRGB("originals/table.png") image = impress.impress(image) support.showImage(image) support.saveImage(image, 'table_color' + color_plate)
def testRiver(): image = support.loadImageRGB("originals/riverfront.png") image = impress.impress(image) support.showImage(image) support.saveImage(image, 'riverfront_color' + color_plate)
def testFlowers(): image = support.loadImageRGB("originals/flowers.png") image = impress.impress(image) support.showImage(image) support.saveImage(image, 'flowers_color' + color_plate)
def testDesktop(): image = support.loadImageRGB("originals/desktop.png") image = impress.impress(image) support.showImage(image) support.saveImage(image, 'desktop_color' + color_plate)
def pixelart(imageRGB, rowsOut, colsOut, K): rowsIn, colsIn = support.getSize(imageRGB) N = rowsOut * colsOut # Number of superpixels M = rowsIn * colsIn # Number of input pixels # Convert the input image to lab space imageLAB = support.rgb2lab(imageRGB) # Initialize superpixels, palette, and temperature superpixels = initSuperPixels(imageLAB, rowsOut, colsOut) palette = initPalette(imageLAB) T = initT(imageLAB) # While (T > Tf) i = 0 while T > Tf: if printProgress: print "Iteration: %d T: %d" % (i,T) # REFINE superpixels with 1 step of modified SLIC refineSuperPixels(imageLAB, superpixels) # ASSOCIATE superpixels to colors in the palette # Update pckps for each cluster for cluster in palette: cluster.sub1.updatePckps(superpixels, T, palette) cluster.sub2.updatePckps(superpixels, T, palette) # Update pck for each cluster for cluster in palette: cluster.sub1.updatePck(superpixels) cluster.sub2.updatePck(superpixels) # REFINE colors in the palette totalChange = refinePalette(superpixels, palette) if printProgress: print "totalChange", totalChange # If (palette converged) print "Palette size: %d" % len(palette) if totalChange < ep_palette: # REDUCE temperature T = aT T = alpha * T # EXPAND palette expandPalette(palette, K) support.showImage(convertImage(rowsOut, colsOut, superpixels)) i += 1 for cluster in palette: print cluster.getPckps("0,0") print "color", cluster.getColor() # Use colors in palette not just average for sp in superpixels.itervalues(): name = "%d,%d" % (sp.outPos[0], sp.outPos[1]) maxProb = 0.0 for cluster in palette: #print cluster.sub1.pckps[name] prob = cluster.getPckps(name) if prob > maxProb: maxProb = prob sp.color = cluster.getColor() #print "prob", prob return convertImage(rowsOut, colsOut, superpixels)
#test.py import support from pixelart import * image = support.loadImageRGB("obama80x54.png") image = pixelart(image, 6, 4, 4) support.showImage(image) support.saveImage(image, "obama6x4")
def testRgbToSphere(): image = support.loadImageRGB("originals/fig6b-rgb.png") support.showImage(image) r, theta, phi = rgbToSphere(image) rgb_image = sphereToRgb(r, theta, phi) support.showImage(rgb_image)