Il giorno ven 3 apr 2020 alle ore 16:29 Matteo Perini <perini.mat...@gmail.com> ha scritto: > [...] > > Io tempo addietro avevo scritto un programmino che partiva da un .png > > e produceva il file in rilievo per la stampante 3D. > > Se ti può servire posso andare a ricercarlo e condividerlo. > > Matteo: > > Interessante, usavi il livello del colore per capire dove c'erano i > punti e dove no?
Sì, usavo i seguenti pacchetti: [...] import os from pylab import imread from stl_tools import numpy2stl from scipy.ndimage import gaussian_filter [...] E la funzione principale è la seguente: def png2gcode(filename, pngdir=PNGDIR, stldir=STLDIR, gcodedir=GCODEDIR): """read png file write stl file and gcode file.""" pngfilename = os.path.join(pngdir, filename + '.png') stlfilename = os.path.join(stldir, filename + '.stl') gcodefilename = os.path.join(gcodedir, filename + '.gcode') if (not os.path.exists(stlfilename) or os.path.getmtime(pngfilename) > os.path.getmtime(stlfilename)): print('reading', pngfilename) img = 256 * (1 - imread(pngfilename)) img = img[:, :, 2] + 1.0*img[:, :, 0] # Compose RGBA channels to depth img = gaussian_filter(img, 2) # smoothing print('writing', stlfilename) numpy2stl(img, stlfilename, scale=0.05, mask_val=None, solid=True, min_thickness_percent=.2) if (not os.path.exists(gcodefilename) or os.path.getmtime(stlfilename) > os.path.getmtime(gcodefilename)): print('writing', gcodefilename) os.system('repsnapper -t -i {} -o {}'.format(stlfilename, Ciao. -- Daniele www.fugamatematica.blogspot.com giusto! nel verso forse è perché non guardiamo le cose Quando non ci capiamo, _______________________________________________ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python