def unet_candidates():
cands = glob.glob('%s/*.png' % sys.argv[1]) #"/razberry/workspace/dsb_nodule_detection.109fd54/*.png
#df = pd.DataFrame(columns=['seriesuid','coordX','coordY','coordZ','class'])
data = []
imname = ""
origin = []
spacing = []
nrimages = 0
for name in tqdm(cands):
#image = imread(name)
image_t = imread(name)
image_t = image_t.transpose()
#Thresholding
image_t[image_t<THRESHOLD] = 0
image_t[image_t>0] = 1
#erosion
selem = morphology.disk(1)
image_eroded = image_t
image_eroded = morphology.binary_erosion(image_t,selem=selem)
label_im, nb_labels = ndimage.label(image_eroded)
imname3 = os.path.split(name)[1].replace('.png','')
splitted = imname3.split("_")
slice = splitted[1]
imname2 = splitted[0][:-1]
centers = []
for i in xrange(1,nb_labels+1):
blob_i = np.where(label_im==i,1,0)
mass = center_of_mass(blob_i)
centers.append([mass[1],mass[0]])
if imname2 != imname:
if os.path.isfile("../data/1_1_1mm_512_x_512_annotation_masks/spacings/{0}.pickle".format(imname2)):
with open("../data/1_1_1mm_512_x_512_annotation_masks/spacings/{0}.pickle".format(imname2), 'rb') as handle:
dic = pickle.load(handle)
origin = dic["origin"]
spacing = dic["spacing"]
imname = imname2
nrimages +=1
for center in centers:
# coords = voxel_2_world([int(slice),center[1]+(512-324)*0.5,center[0]+(512-324)*0.5],origin,spacing)
coords = [int(slice),center[1],center[0]]
data.append([imname2,coords[2],coords[1],coords[0],'?'])
#if nrimages == 5:
# break
df = pd.DataFrame(data,columns=CANDIDATES_COLUMNS)
save_candidates('%s/candidates.csv' % work_dir, df)
评论列表
文章目录