Commit 358c45fbff1583815fd1ca71740578d601278fea

Authored by Paulo Henrique Junqueira Amorim
1 parent b26289dd

ENH: Fixed problems in the Windows version (watershed).

Showing 1 changed file with 8 additions and 27 deletions   Show diff stats
invesalius/data/styles.py
... ... @@ -38,6 +38,8 @@ from scipy.ndimage import watershed_ift, generate_binary_structure
38 38 from skimage.morphology import watershed
39 39 from skimage import filter
40 40  
  41 +import watershed_process
  42 +
41 43 import utils
42 44  
43 45 ORIENTATIONS = {
... ... @@ -1244,8 +1246,8 @@ class WaterShedInteractorStyle(DefaultInteractorStyle):
1244 1246 tmp_mask = np.memmap(tfile, shape=mask.shape, dtype=mask.dtype,
1245 1247 mode='w+')
1246 1248 q = multiprocessing.Queue()
1247   - p = multiprocessing.Process(target=do_watershed, args=(image,
1248   - markers, tmp_mask, bstruct,
  1249 + p = multiprocessing.Process(target=watershed_process.do_watershed, args=(image,
  1250 + markers, tfile, tmp_mask.shape, bstruct,
1249 1251 self.config.algorithm,
1250 1252 self.config.mg_size,
1251 1253 self.config.use_ww_wl, wl, ww, q))
... ... @@ -1292,6 +1294,9 @@ class WaterShedInteractorStyle(DefaultInteractorStyle):
1292 1294 ##tmp_image = ndimage.morphological_gradient((image - image.min()).astype('uint16'), self.config.mg_size)
1293 1295 #tmp_mask = watershed_ift(tmp_image, markers.astype('int8'), bstruct)
1294 1296  
  1297 + print "mask.max >>>", tmp_mask.max()
  1298 + print "mask.min >>>", tmp_mask.min()
  1299 +
1295 1300 if self.viewer.overwrite_mask:
1296 1301 mask[:] = 0
1297 1302 mask[tmp_mask == 1] = 253
... ... @@ -1309,31 +1314,7 @@ class WaterShedInteractorStyle(DefaultInteractorStyle):
1309 1314 Publisher.sendMessage('Reload actual slice')
1310 1315  
1311 1316  
1312   -def do_watershed(image, markers, mask, bstruct, algorithm, mg_size, use_ww_wl, wl, ww, q):
1313   - if use_ww_wl:
1314   - if algorithm == 'Watershed':
1315   - tmp_image = ndimage.morphological_gradient(
1316   - get_LUT_value(image, ww, wl).astype('uint16'),
1317   - mg_size)
1318   - tmp_mask = watershed(tmp_image, markers.astype('int16'), bstruct)
1319   - else:
1320   - tmp_image = get_LUT_value(image, ww, wl).astype('uint16')
1321   - #tmp_image = ndimage.gaussian_filter(tmp_image, self.config.mg_size)
1322   - #tmp_image = ndimage.morphological_gradient(
1323   - #get_LUT_value(image, ww, wl).astype('uint16'),
1324   - #self.config.mg_size)
1325   - tmp_mask = watershed_ift(tmp_image, markers.astype('int16'), bstruct)
1326   - else:
1327   - if algorithm == 'Watershed':
1328   - tmp_image = ndimage.morphological_gradient((image - image.min()).astype('uint16'), mg_size)
1329   - tmp_mask = watershed(tmp_image, markers.astype('int16'), bstruct)
1330   - else:
1331   - tmp_image = (image - image.min()).astype('uint16')
1332   - #tmp_image = ndimage.gaussian_filter(tmp_image, self.config.mg_size)
1333   - #tmp_image = ndimage.morphological_gradient((image - image.min()).astype('uint16'), self.config.mg_size)
1334   - tmp_mask = watershed_ift(tmp_image, markers.astype('int8'), bstruct)
1335   - mask[:] = tmp_mask
1336   - q.put(1)
  1317 +
1337 1318  
1338 1319  
1339 1320  
... ...