Ejemplo n.º 1
0
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()