Spaces:
Runtime error
Runtime error
File size: 3,582 Bytes
e3dd038 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
import pandas as pd
import numpy as np
from skimage import color
from PIL import Image
def skimage_rgb2lab(rgb):
return color.rgb2lab(rgb.reshape(1,1,3))
def rgb2df(img):
h, w, _ = img.shape
x_l, y_l = np.meshgrid(np.arange(h), np.arange(w), indexing='ij')
r, g, b = img[:,:,0], img[:,:,1], img[:,:,2]
df = pd.DataFrame({
"x_l": x_l.ravel(),
"y_l": y_l.ravel(),
"r": r.ravel(),
"g": g.ravel(),
"b": b.ravel(),
})
return df
def mask2df(mask):
h, w = mask.shape
x_l, y_l = np.meshgrid(np.arange(h), np.arange(w), indexing='ij')
flg = mask.astype(int)
df = pd.DataFrame({
"x_l_m": x_l.ravel(),
"y_l_m": y_l.ravel(),
"m_flg": flg.ravel(),
})
return df
def rgba2df(img):
h, w, _ = img.shape
x_l, y_l = np.meshgrid(np.arange(h), np.arange(w), indexing='ij')
r, g, b, a = img[:,:,0], img[:,:,1], img[:,:,2], img[:,:,3]
df = pd.DataFrame({
"x_l": x_l.ravel(),
"y_l": y_l.ravel(),
"r": r.ravel(),
"g": g.ravel(),
"b": b.ravel(),
"a": a.ravel()
})
return df
def hsv2df(img):
x_l, y_l = np.meshgrid(np.arange(img.shape[0]), np.arange(img.shape[1]), indexing='ij')
h, s, v = np.transpose(img, (2, 0, 1))
df = pd.DataFrame({'x_l': x_l.flatten(), 'y_l': y_l.flatten(), 'h': h.flatten(), 's': s.flatten(), 'v': v.flatten()})
return df
def df2rgba(img_df):
r_img = img_df.pivot_table(index="x_l", columns="y_l",values= "r").reset_index(drop=True).values
g_img = img_df.pivot_table(index="x_l", columns="y_l",values= "g").reset_index(drop=True).values
b_img = img_df.pivot_table(index="x_l", columns="y_l",values= "b").reset_index(drop=True).values
a_img = img_df.pivot_table(index="x_l", columns="y_l",values= "a").reset_index(drop=True).values
df_img = np.stack([r_img, g_img, b_img, a_img], 2).astype(np.uint8)
return df_img
def df2bgra(img_df):
r_img = img_df.pivot_table(index="x_l", columns="y_l",values= "r").reset_index(drop=True).values
g_img = img_df.pivot_table(index="x_l", columns="y_l",values= "g").reset_index(drop=True).values
b_img = img_df.pivot_table(index="x_l", columns="y_l",values= "b").reset_index(drop=True).values
a_img = img_df.pivot_table(index="x_l", columns="y_l",values= "a").reset_index(drop=True).values
df_img = np.stack([b_img, g_img, r_img, a_img], 2).astype(np.uint8)
return df_img
def df2rgb(img_df):
r_img = img_df.pivot_table(index="x_l", columns="y_l",values= "r").reset_index(drop=True).values
g_img = img_df.pivot_table(index="x_l", columns="y_l",values= "g").reset_index(drop=True).values
b_img = img_df.pivot_table(index="x_l", columns="y_l",values= "b").reset_index(drop=True).values
df_img = np.stack([r_img, g_img, b_img], 2).astype(np.uint8)
return df_img
def pil2cv(image):
new_image = np.array(image, dtype=np.uint8)
if new_image.ndim == 2:
pass
elif new_image.shape[2] == 3:
new_image = new_image[:, :, ::-1]
elif new_image.shape[2] == 4:
new_image = new_image[:, :, [2, 1, 0, 3]]
return new_image
def cv2pil(image):
new_image = image.copy()
if new_image.ndim == 2:
pass
elif new_image.shape[2] == 3:
new_image = new_image[:, :, ::-1]
elif new_image.shape[2] == 4:
new_image = new_image[:, :, [2, 1, 0, 3]]
new_image = Image.fromarray(new_image)
return new_image
|