Spaces:
Runtime error
Runtime error
from larvaecount.gradient import ( | |
contour_thresh, | |
component_thesh, | |
component_filter_thresh | |
) | |
from os import PathLike | |
from PIL import Image | |
from pillow_heif import register_heif_opener | |
from typing import Optional | |
import os | |
import cv2 | |
import numpy as np | |
import matplotlib.pyplot as plt | |
import fire | |
register_heif_opener() | |
def filter_connected_components( | |
img_dir: PathLike, | |
color_thresh: int = 75, | |
avg_area: float = 800, | |
vis: bool = False, | |
save_loc: PathLike = "", | |
kernal_size: tuple[int, int] = (3, 3), | |
max_eggs: Optional[int] = None | |
) -> None: | |
# Open image, supports apple HEIC format | |
pil_img = Image.open(img_dir) | |
# Convert to standard RGB Image | |
img = np.array(pil_img) | |
res = component_filter_thresh( | |
img, | |
color_thresh = color_thresh, | |
avg_area = avg_area, | |
kernal_size = kernal_size, | |
max_eggs = max_eggs | |
) | |
res_vis = res["vis"] | |
res_stats = res["stats"] | |
for label, stat in res_stats.items(): | |
print(f"{label.replace('-', ' ')}: {stat}") | |
if vis: | |
for label, curr_img in res_vis.items(): | |
plt.imshow(curr_img) | |
plt.show() | |
if save_loc: | |
for label, curr_img in res_vis.items(): | |
save_path = os.path.join(save_loc, label + ".png") | |
plt.imsave(save_path, curr_img) | |
def connected_components( | |
img_dir: PathLike, | |
color_thresh: int = 75, | |
avg_area: float = 800, | |
vis: bool = False, | |
save_loc: PathLike = "", | |
max_eggs: Optional[int] = None | |
) -> None: | |
# Open Image | |
pil_img = Image.open(img_dir) | |
# Convert to standard RGB Image | |
img = np.array(pil_img) | |
res = component_thesh( | |
img, | |
color_thresh = color_thresh, | |
avg_area = avg_area, | |
max_eggs = max_eggs | |
) | |
res_vis = res["vis"] | |
res_stats = res["stats"] | |
for label, stat in res_stats.items(): | |
print(f"{label.replace('-', ' ')}: {stat}") | |
if vis: | |
for label, curr_img in res_vis.items(): | |
plt.imshow(curr_img) | |
plt.show() | |
if save_loc: | |
for label, curr_img in res_vis.items(): | |
save_path = os.path.join(save_loc, label + ".png") | |
plt.imsave(save_path, curr_img) | |
def contour( | |
img_dir: PathLike, | |
color_thresh: int = 75, | |
avg_area: float = 800, | |
vis: bool = False, | |
save_loc: PathLike = "", | |
kernal_size: tuple[int, int] = (3, 3) | |
) -> None: | |
# Open image, supports apple HEIC format | |
pil_img = Image.open(img_dir) | |
# Convert to standard RGB Image | |
img = np.array(pil_img) | |
res = contour_thresh( | |
img, | |
color_thresh = color_thresh, | |
avg_area = avg_area, | |
kernal_size = kernal_size | |
) | |
res_vis = res["vis"] | |
res_stats = res["stats"] | |
for label, stat in res_stats.items(): | |
print(f"{label.replace('-', ' ')}: {stat}") | |
if vis: | |
for label, curr_img in res_vis.items(): | |
plt.imshow(curr_img) | |
plt.show() | |
if save_loc: | |
for label, curr_img in res_vis.items(): | |
save_path = os.path.join(save_loc, label + ".png") | |
plt.imsave(save_path, curr_img) | |
if __name__ == "__main__": | |
fire.Fire() | |