def main(argv): (inputfile, outputfile, shapesCount, primitive, method, gif, seed) = parseArguments(argv) # Load image img = loadImage(inputfile) if img is None: print "Input file is not an image" sys.exit(2) # Process image random.seed(seed) [rendering, shapes] = method(shapesCount, primitive, maxSize=240, randomIterations=500).process(img) # Export rendering exportFilename = '{}_{}_{:1.0f}'.format(os.path.splitext(os.path.basename(inputfile))[0], shapesCount, Method.rmse(rendering, np.asarray(img, dtype=np.float32))) if gif: renderings = Method.renderIntermediates(shapes, Method.backgroundImage(img), gif) basesha1 = '%032x' % random.getrandbits(128) dirpath = tempfile.mkdtemp() for (i,render) in enumerate(renderings): cv2.imwrite('{}_{:03}.png'.format(dirpath+basesha1, i), render) os.system('convert -delay 75 {}_*.png {}.gif'.format(dirpath+basesha1, exportFilename)) shutil.rmtree(dirpath) if not outputfile: outputfile = '{}.png'.format(exportFilename) cv2.imwrite(outputfile, rendering) # Show rendering plt.axis('off') plt.imshow(cv2.cvtColor(rendering, cv2.COLOR_BGR2RGB)) plt.show()