Spaces:
Sleeping
Sleeping
import os | |
import numpy as np | |
import pandas as pd | |
from PIL import Image | |
def preprocess_image(image): | |
""" | |
Preprocesses the input image. | |
Parameters: | |
image (numpy.array or PIL.Image): Image to preprocess. | |
Returns: | |
numpy.array: Resized and converted RGB version of the input image. | |
""" | |
# Convert PIL image to numpy array if required | |
if isinstance(image, Image.Image): | |
image = np.array(image) | |
# Resize and convert the image to RGB | |
input_image = Image.fromarray(image) | |
input_image = input_image.resize((640, 640)) | |
input_image = input_image.convert("RGB") | |
return np.array(input_image) | |
import pandas as pd | |
import os | |
def count_instance(result, filenames, uuid, width_list, orientation_list): | |
""" | |
Counts the instances in the result and generates a CSV with the counts. | |
Parameters: | |
result (list): List containing results for each instance. | |
filenames (list): Corresponding filenames for each result. | |
uuid (str): Unique ID for the output folder name. | |
width_list (list): List containing width values for each instance. | |
orientation_list (list): List containing orientation values for each instance. | |
Returns: | |
tuple: Path to the generated CSV and dataframe with counts. | |
""" | |
# Initializing the dataframe | |
data = { | |
'Index': [], | |
'FileName': [], | |
'Orientation': [], | |
'Width': [], | |
'Instance': [] | |
} | |
df = pd.DataFrame(data) | |
# Populate the dataframe with counts, width, and orientation | |
for i, res in enumerate(result): | |
instance_count = len(res) | |
df.loc[i] = [i, os.path.basename(filenames[i]), orientation_list[i], width_list[i], instance_count] | |
# Save dataframe to a CSV file | |
path = os.path.join('output', uuid) | |
os.makedirs(path, exist_ok=True) | |
csv_filename = os.path.join(path, '_results.csv') | |
# Reorder columns | |
df = df[['Index', 'FileName', 'Orientation', 'Width', 'Instance']] | |
df.to_csv(csv_filename, index=False) | |
return csv_filename, df | |