Пример #1
0
def lab2bgr(matrix):
    """convert numpy of lab colors to bgr colors"""
    bgr_cols = []
    for j in matrix:
        bgr_col = []
        for lab in j:
            print(lab)
            rgb = convert_color(lab, "LAB", "RGB", lab2rgb)
            bgr = convert_color(rgb, "RGB", "BGR", rgb2bgr)
            bgr_col.append(bgr)
        bgr_cols.append(bgr_col)
    return bgr_cols
def hsv_to_bgr(cols):  
    # convert numpy of hsv colors to bgr colors
    bgr_cols = []
    for j in cols:
        bgr_col = []
        for hsv in j:
            h, s, v = hsv
            rgb = convert_color((h,s*100,v*100), "HSV", "RGB", hsv2rgb) 
            bgr = convert_color(rgb, "RGB", "BGR", rgb2bgr)
            bgr_col.append(bgr)
        bgr_cols.append(bgr_col)
    # len(bgr_cols[0])  20 x 20 
    return bgr_cols
Пример #3
0
def get_bgr_lab_avg(data, label, col_rgb):
    bgr_cols = []
    lab_cols = []
    for i in range(len(lst)):
        avgcolcatrgb = np.mean(
            [np.array(eval(n)) for n in data[col_rgb][data[label] == lst[i]]],
            axis=0).tolist()
        rgb = list(np.array(avgcolcatrgb).astype(int))
        bgr = [
            int(el / 255) for el in convert_color(rgb, "RGB", "BGR", rgb2bgr)
        ]
        bgr_cols.append([np.round(l) for l in bgr])
        lab = convert_color(np.array(avgcolcatrgb) / 255, "RGB", "LAB")
        lab_cols.append([np.round(l) for l in list(lab)])
    return bgr_cols, lab_cols
Пример #4
0
def get_rgb_hcl(lab):
    lch_hue = []
    lch = []
    hcl = []
    rgb = []
    for el in lab:
        lch_el = convert_color((el), "LAB", "LCH")
        hcl.append(lch_el[::-1])
        lch.append(lch_el)
        lch_hue.append((lch_el[2]))
        rgb_el = convert_color((el), "LAB", "RGB", lab2rgb)
        r, g, b = rgb_el
        rgb_el = r / 255, g / 255, b / 255
        rgb.append(rgb_el)
    return rgb, hcl
Пример #5
0
def plot_feature_label_color(data):
    """ plot color name feature and basic color label 
    finding basic color's values by averaging 
    all color names belonging to that basic color"""
    for color_id in range(len(data['srgb'])):
        print(f'label: {color_id}')
        plot_color(eval(data['srgb'].iloc[color_id]), 10)
        basic_color = data['cat1'].iloc[color_id]
        print(f'feature: {color_id}')
        try:
            plot_color(
                eval(data['srgb'][data['name'] == basic_color].iloc[color_id]),
                10)
        except:
            colsofcat = data['cielab'][data['cat1'] == basic_color]
            len_colsofcat = len(colsofcat)
            ls_ = []
            as_ = []
            bs_ = []
            for i in range(len_colsofcat):
                r = eval(colsofcat.iloc[i])[0]
                ls_.append(r)
                g = eval(colsofcat.iloc[i])[1]
                as_.append(g)
                b = eval(colsofcat.iloc[i])[2]
                bs_.append(b)

            la = int(mean(ls_))
            aa = int(mean(as_))
            ba = int(mean(bs_))
            srgb = convert_color([la, aa, ba], "LAB", "RGB", lab2rgb)
            plot_color(srgb, 10)
Пример #6
0
def print_hist_colors(lab, frequency):
    labfreq = zip(lab, frequency)
    labfreqslim = [el for el in list(labfreq) if el[-1] != 0]
    for el in labfreqslim:
        rgb_el = convert_color(el[0], "LAB", "RGB", lab2rgb)
        square = np.full((10, 10, 3), rgb_el, dtype=np.uint8) / 255.0
        plt.figure(figsize=(5, 2))
        plt.imshow(square)
        plt.axis('off')
        plt.show()
def lch_to_bgr(cols): 
    # convert numpy of lch colors to bgr colors
    bgr_cols = []
    for j in cols:
        bgr_col = []
        for lch in j: 
            lab = lch2lab(lch)
            bgr = convert_color(lab, "LAB", "BGR", lab2bgr) 
            bgr_col.append(bgr)
        bgr_cols.append(bgr_col)
    # len(bgr_cols[0])  20 x 20 
    return bgr_cols
def make_rgb_hsv_colorwheel_colors():
    """ Color Wheel 30°-steps in different color spaces """
    # RGB-Colors
    lst1 = [(255, 0, 0), (255, 128, 0), (255, 255, 0), (128, 255, 0),
            (0, 255, 0), (0, 255, 128), (0, 255, 255), (0, 128, 255),
            (0, 0, 255), (128, 0, 255), (255, 0, 255), (255, 0, 128)]
    lst2 = []
    lst3 = [
        'red', 'orange', 'yellow', 'green-yellow', 'green', 'green-blue',
        'cyan', 'blue-yellow', 'blue', 'purple', 'magenta', 'red-yellow'
    ]
    # HSV-Colors
    for i in range(len(lst1)):
        lst2.append(convert_color(lst1[i], "RGB", "HSV", rgb2hsv))

    df = pd.DataFrame()
    df['RGB'] = lst1
    df['HSV'] = lst2
    df['name'] = lst3
    return df
Пример #9
0
def get_palettecolvals(palette, depth, target_cs='hsv'):
    """ convert palette's bgr colors into any color space values """
    bgr_array = np.array(eval(palette.loc['bgr_colors'][depth]))
    rgb_array = convert_array(bgr_array, origin='BGR', target='RGB')
    lab_array = convert_array(np.array(rgb_array) / 255,
                              origin='RGB',
                              target='LAB')
    if target_cs == 'rgb':
        rgb_list = [list(i) for i in rgb_array]
        return rgb_list
    elif target_cs == 'hsv':
        hsv_array = []
        for i in rgb_array:
            rgb = np.array(i)
            rgbi = np.array([[rgb / 255]], dtype=np.float32)
            hsv = cv2.cvtColor(rgbi, cv2.COLOR_RGB2HSV)
            hsv = hsv[0, 0]
            hsv_array.append(hsv)
        hsv_list = [list(i) for i in hsv_array]
        return hsv_list
    elif target_cs == 'lab':
        lab_array = []
        for idn, rgb in enumerate(rgb_array):
            rgb = np.array(rgb)
            rgbi = np.array([[rgb / 255]], dtype=np.float32)
            lab = cv2.cvtColor(rgbi, cv2.COLOR_RGB2LAB)
            lab = lab[0, 0]
            lab_array.append(lab)
        lab_list = [i.tolist() for i in lab_array]
        return lab_list
    elif target_cs == 'lch':
        lch_array = []
        for idn, lab in enumerate(lab_array):
            lch = convert_color(lab, "LAB", "LCH")
            lch = np.array(lch)
            lch_array.append(lch)
        lch_list = [i.tolist() for i in lch_array]
        return lch_list
def make_lab_lch_colorwheel_colors(lablch_twelve):
    """ build pd frame with lab lch for 12 30°-step hues """
    lst = []
    lst2 = []
    lst3 = []
    lst4 = [
        'fuchsia', 'red', 'terracotta', 'olive', 'kelly', 'leaf', 'teal',
        'atoll', 'azure', 'blue', 'purple', 'lilac'
    ]

    for i in lablch_twelve.items():
        # {'LCH': i[0]}
        lst.append(i[0])
        lst2.append(i[1])
    for i in range(len(lst2)):
        lst3.append(convert_color(lst2[i], "RGB", "LAB", rgb2lab))

    df = pd.DataFrame()
    df['LCH'] = lst
    df['Lab'] = lst2
    df['RGB'] = lst3
    df['name'] = lst4

    return df