Commit 3368fa085e246376303ec5dab0dc013fc6330e47

Authored by Thiago Franco de Moraes
1 parent 914780e9

Border size independent in each orientation

invesalius/data/slice_.py
... ... @@ -438,14 +438,16 @@ class Slice(object):
438 438 self.buffer_slices[orientation].discard_vtk_mask()
439 439  
440 440  
441   - def GetSlices(self, orientation, slice_number, number_slices, inverted=False):
  441 + def GetSlices(self, orientation, slice_number, number_slices,
  442 + inverted=False, border_size=1.0):
442 443 if self.buffer_slices[orientation].index == slice_number and \
443 444 self._type_projection == const.PROJECTION_NORMAL:
444 445 if self.buffer_slices[orientation].vtk_image:
445 446 image = self.buffer_slices[orientation].vtk_image
446 447 else:
447 448 n_image = self.get_image_slice(orientation, slice_number,
448   - number_slices, inverted)
  449 + number_slices, inverted,
  450 + border_size)
449 451 image = converters.to_vtk(n_image, self.spacing, slice_number, orientation)
450 452 ww_wl_image = self.do_ww_wl(image)
451 453 image = self.do_colour_image(ww_wl_image)
... ... @@ -466,7 +468,7 @@ class Slice(object):
466 468 self.buffer_slices[orientation].vtk_image = image
467 469 else:
468 470 n_image = self.get_image_slice(orientation, slice_number,
469   - number_slices, inverted)
  471 + number_slices, inverted, border_size)
470 472 image = converters.to_vtk(n_image, self.spacing, slice_number, orientation)
471 473 ww_wl_image = self.do_ww_wl(image)
472 474 image = self.do_colour_image(ww_wl_image)
... ... @@ -489,7 +491,8 @@ class Slice(object):
489 491  
490 492 return final_image
491 493  
492   - def get_image_slice(self, orientation, slice_number, number_slices=1, inverted=False):
  494 + def get_image_slice(self, orientation, slice_number, number_slices=1,
  495 + inverted=False, border_size=1.0):
493 496 if self.buffer_slices[orientation].index == slice_number \
494 497 and self.buffer_slices[orientation].image is not None:
495 498 n_image = self.buffer_slices[orientation].image
... ... @@ -524,19 +527,19 @@ class Slice(object):
524 527 n_image = numpy.empty(shape=(tmp_array.shape[1],
525 528 tmp_array.shape[2]),
526 529 dtype=tmp_array.dtype)
527   - mips.fast_countour_mip(tmp_array, self.n_border, 0, self.window_level,
  530 + mips.fast_countour_mip(tmp_array, border_size, 0, self.window_level,
528 531 self.window_level, 0, n_image)
529 532 elif self._type_projection == const.PROJECTION_CONTOUR_LMIP:
530 533 n_image = numpy.empty(shape=(tmp_array.shape[1],
531 534 tmp_array.shape[2]),
532 535 dtype=tmp_array.dtype)
533   - mips.fast_countour_mip(tmp_array, self.n_border, 0, self.window_level,
  536 + mips.fast_countour_mip(tmp_array, border_size, 0, self.window_level,
534 537 self.window_level, 1, n_image)
535 538 elif self._type_projection == const.PROJECTION_CONTOUR_MIDA:
536 539 n_image = numpy.empty(shape=(tmp_array.shape[1],
537 540 tmp_array.shape[2]),
538 541 dtype=tmp_array.dtype)
539   - mips.fast_countour_mip(tmp_array, self.n_border, 0, self.window_level,
  542 + mips.fast_countour_mip(tmp_array, border_size, 0, self.window_level,
540 543 self.window_level, 2, n_image)
541 544 else:
542 545 n_image = numpy.array(self.matrix[slice_number])
... ... @@ -572,19 +575,19 @@ class Slice(object):
572 575 n_image = numpy.empty(shape=(tmp_array.shape[0],
573 576 tmp_array.shape[2]),
574 577 dtype=tmp_array.dtype)
575   - mips.fast_countour_mip(tmp_array, self.n_border, 1, self.window_level,
  578 + mips.fast_countour_mip(tmp_array, border_size, 1, self.window_level,
576 579 self.window_level, 0, n_image)
577 580 elif self._type_projection == const.PROJECTION_CONTOUR_LMIP:
578 581 n_image = numpy.empty(shape=(tmp_array.shape[0],
579 582 tmp_array.shape[2]),
580 583 dtype=tmp_array.dtype)
581   - mips.fast_countour_mip(tmp_array, self.n_border, 1, self.window_level,
  584 + mips.fast_countour_mip(tmp_array, border_size, 1, self.window_level,
582 585 self.window_level, 1, n_image)
583 586 elif self._type_projection == const.PROJECTION_CONTOUR_MIDA:
584 587 n_image = numpy.empty(shape=(tmp_array.shape[0],
585 588 tmp_array.shape[2]),
586 589 dtype=tmp_array.dtype)
587   - mips.fast_countour_mip(tmp_array, self.n_border, 1, self.window_level,
  590 + mips.fast_countour_mip(tmp_array, border_size, 1, self.window_level,
588 591 self.window_level, 2, n_image)
589 592 else:
590 593 n_image = numpy.array(self.matrix[..., slice_number, ...])
... ... @@ -617,19 +620,19 @@ class Slice(object):
617 620 n_image = numpy.empty(shape=(tmp_array.shape[0],
618 621 tmp_array.shape[1]),
619 622 dtype=tmp_array.dtype)
620   - mips.fast_countour_mip(tmp_array, self.n_border, 2, self.window_level,
  623 + mips.fast_countour_mip(tmp_array, border_size, 2, self.window_level,
621 624 self.window_level, 0, n_image)
622 625 elif self._type_projection == const.PROJECTION_CONTOUR_LMIP:
623 626 n_image = numpy.empty(shape=(tmp_array.shape[0],
624 627 tmp_array.shape[1]),
625 628 dtype=tmp_array.dtype)
626   - mips.fast_countour_mip(tmp_array, self.n_border, 2, self.window_level,
  629 + mips.fast_countour_mip(tmp_array, border_size, 2, self.window_level,
627 630 self.window_level, 1, n_image)
628 631 elif self._type_projection == const.PROJECTION_CONTOUR_MIDA:
629 632 n_image = numpy.empty(shape=(tmp_array.shape[0],
630 633 tmp_array.shape[1]),
631 634 dtype=tmp_array.dtype)
632   - mips.fast_countour_mip(tmp_array, self.n_border, 2, self.window_level,
  635 + mips.fast_countour_mip(tmp_array, border_size, 2, self.window_level,
633 636 self.window_level, 2, n_image)
634 637 else:
635 638 n_image = numpy.array(self.matrix[..., ..., slice_number])
... ...
invesalius/data/viewer_slice.py
... ... @@ -1233,8 +1233,9 @@ class Viewer(wx.Panel):
1233 1233  
1234 1234 def set_slice_number(self, index):
1235 1235 inverted = self.mip_ctrls.inverted.GetValue()
  1236 + border_size = self.mip_ctrls.border_spin.GetValue()
1236 1237 image = self.slice_.GetSlices(self.orientation, index,
1237   - self.number_slices, inverted)
  1238 + self.number_slices, inverted, border_size)
1238 1239 self.slice_data.actor.SetInput(image)
1239 1240 for actor in self.actors_by_slice_number.get(self.slice_data.number, []):
1240 1241 self.slice_data.renderer.RemoveActor(actor)
... ...