File size: 1,865 Bytes
c843d82
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
# imports
import logging, numpy as np, matplotlib.pyplot as plt, os
from pathlib import Path
from model.run_cellpose import CellposeBatchProcessor
from utils.constants import *
from skimage.measure import label
from tifffile import imwrite
from utils.generate_masks import MaskStitcher
from PIL import Image
from cellpose.io import imread
from cellpose import models, core, io, plot
from tqdm import trange
from natsort import natsorted

image_ext = ".tif"
masks_ext = ".png" if image_ext == ".png" else ".tif"
flow_threshold = 0.8
cellprob_threshold = 0.0
tile_norm_blocksize = 0

if core.use_gpu()==False:
  raise ImportError("No GPU access, change your runtime")

model = models.CellposeModel(pretrained_model="/Users/discovery/Desktop/spinal_cord_segmentation/model/cellpose_sam_neun", gpu=True)

# print(models.model_path("/Users/discovery/Desktop/spinal_cord_segmentation/model/cellpose_sam_neun"))

input_dir = Path("/Users/discovery/Downloads/xenium_testing_jit/spinal_cord_samples_fr/cellpose_imgs/data")
output_dir = Path("/Users/discovery/Downloads/xenium_testing_jit/spinal_cord_samples_fr/cellpose_outs")
output_dir.mkdir(parents=True, exist_ok=True)

files = natsorted([f for f in input_dir.glob("*"+image_ext) if "_masks" not in f.name and "_flows" not in f.name])

if(len(files)==0):
  raise FileNotFoundError("no image files found, did you specify the correct folder and extension?")
else:
  print(f"{len(files)} images in folder:")

# for f in files:
#   print(f)

imgs = [io.imread(files[i]) for i in trange(len(files))]

masks, flows, styles = model.eval(imgs, batch_size=32, flow_threshold=flow_threshold, cellprob_threshold=cellprob_threshold, normalize={"tile_norm_blocksize": tile_norm_blocksize})

print("saving masks")
for i in trange(len(files)):
    f = files[i]
    io.imsave(output_dir / (f.stem + "_pred_masks" + masks_ext), masks[i])