coordinate = int(sys.argv[1]) if len(sys.argv) < 3: print "2. parameter: which half is going to be multiplied: less or larger." sys.exit(1) side = sys.argv[2] if len(sys.argv) < 4: print "3. parameter: how many time one half is going to be multiplied." sys.exit(1) freq = int(sys.argv[3]) if len(sys.argv) < 5: print "4. parameter: path to xml file with Munsell chips." sys.exit(1) fname = sys.argv[4] if len(sys.argv) < 6: print "5. parameter: path to a c-lab file." sys.exit(1) clab = sys.argv[5] mid_pnt = get_median_in_clab( traverse_clab_file(open(clab, 'r')), coordinate) print "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" print "<environment type=\"CIELab\">" for x, y, z in for_each_chip(open(fname, 'r')): print_munsell_chip((x, y, z)) if is_to_be_multiplied((x, y, z), coordinate, side, mid_pnt): for _ in xrange(freq-1): print_munsell_chip((x, y, z)) print "</environment>"
position2coordinates = load_position2coordinates(chip_fname) min_x, max_x, min_y, max_y = get_borders_position2coordinates(position2coordinates) print "min_x:", min_x print "max_x:", max_x print "min_y:", min_y print "max_y:", max_y coordinates2position = load_coordinates2position(chip_fname) #matrix for visualization range_y = max_y-min_y+1 print "range_y:", range_y range_x = max_x-min_x+1 print "range_x:", range_x mtx = [[0 for _ in xrange(range_y)] for _ in xrange(range_x)] fout.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n") fout.write("<environment type=\"CIELab\">\n") for ind, munsell_coordinates in enumerate(for_each_chip(open(munsell_fname, 'r'))): print_munsell_chip(munsell_coordinates, fout) x, y = position2coordinates[ind+1] if is_to_be_multiplied(x, y): for _ in xrange(freq-1): print_munsell_chip(munsell_coordinates, fout) mtx[x][y] = freq fout.write("</environment>\n") fout.close() plt.imshow(matrix(mtx))#, cmap=plt.cm.gray) #Needs to be in row,col order plt.savefig(out_picname, bbox_inches='tight')
''' Generates c-lab file based on an xml file with chips. ''' from utils import for_each_chip if __name__ == "__main__": import sys if len(sys.argv) < 2: print "Pass an argument: file with Munsell chips." sys.exit(1) munsell_file = sys.argv[1] #xml file with chips cnt = 1 with open(munsell_file, 'r') as f: for x, y, z in for_each_chip(f): print "%d A A A A A %f %f %f" % (cnt, x, y, z) cnt+=1