def josh(colors, target):
    print "josh", colors, target

    #     all_colors = [(name, float(X), float(Y), float(Z))
    #                   for name, X, Y, Z in csv.reader(open(colorcsv))]
    all_colors = [(name, float(X), float(Y), float(Z))
                  for name, X, Y, Z in colors]

    # background is marked SUPPORT
    support_i = [
        i for i, color in enumerate(all_colors) if color[0] == 'SUPPORT'
    ]
    if len(support_i) > 0:
        support = np.array(all_colors[support_i[0]][1:])
        del all_colors[support_i[0]]
    else:
        support = None

    tg, hull_i = geometry.tetgen_of_hull(
        [(X, Y, Z) for name, X, Y, Z in all_colors])
    colors = [all_colors[i] for i in hull_i]

    print("thrown out: " + ", ".join(
        set(zip(*all_colors)[0]).difference(zip(*colors)[0])))

    #     targets = [(name, float(X), float(Y), float(Z), float(BG))
    #                for name, X, Y, Z, BG in csv.reader(open(targetcsv))]

    #     for target in targets:
    name, X, Y, Z, BG = target

    target_point = support + (np.array([X, Y, Z]) - support) / (1 - BG)

    tet_i, bcoords = geometry.containing_tet(tg, target_point)

    if tet_i == None:
        print "%s: Not in gamut" % target[0]
        # not in gamut
    else:

        names = [colors[i][0] for i in tg.tets[tet_i]]
        print "%s:" % target[0], names, bcoords
예제 #2
0
colors = [all_colors[i] for i in hull_i]

print ("thrown out: "
       + ", ".join(set(zip(*all_colors)[0]).difference(zip(*colors)[0])))

targets = [(name, float(X), float(Y), float(Z), float(BG))
           for name, X, Y, Z, BG in csv.reader(open('data/targets.csv'))]

for target in targets:
    PP = accomplished / (float(height)*float(width))
    
    name, X, Y, Z, BG = target
    
    target_point = support + (np.array([X,Y,Z]) - support)/(1-BG)
    
    tet_i, bcoords = geometry.containing_tet(tg, target_point)
           
    if tet_i == None:
        #print str("out")    
        ppm.write(str("255 255 255") + "\n")
        
        print str(PP)
        
        accomplished += 1
        
        continue 
        # not in gamut
        
    else:

        A = bcoords[0]