Spaces:
Runtime error
Runtime error
import numpy as np | |
import pandas as pd | |
from PIL import Image | |
def rgb2df(img): | |
""" | |
Convert an RGB image to a DataFrame. | |
Args: | |
img (np.ndarray): RGB image. | |
Returns: | |
df (pd.DataFrame): DataFrame containing the image data. | |
""" | |
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 df2rgba(img_df): | |
""" | |
Convert a DataFrame to an RGB image. | |
Args: | |
img_df (pd.DataFrame): DataFrame containing image data. | |
Returns: | |
img (np.ndarray): RGB image. | |
""" | |
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 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 |