Commit a061025c5234b4dd6c78c60ffbafef6b8c2aaba8
1 parent
e58244f7
Exists in
master
and in
5 other branches
FIX: Fixed error in generate surface in the win32 and win64 ticket #271
Showing
4 changed files
with
31 additions
and
46 deletions
Show diff stats
invesalius/data/imagedata_utils.py
... | ... | @@ -546,39 +546,4 @@ def analyze2mmap(analyze): |
546 | 546 | matrix.flush() |
547 | 547 | return matrix, temp_file |
548 | 548 | |
549 | -def to_vtk(n_array, spacing, slice_number, orientation): | |
550 | - try: | |
551 | - dz, dy, dx = n_array.shape | |
552 | - except ValueError: | |
553 | - dy, dx = n_array.shape | |
554 | - dz = 1 | |
555 | - | |
556 | - v_image = numpy_support.numpy_to_vtk(n_array.flat) | |
557 | - | |
558 | - print orientation | |
559 | - if orientation == 'AXIAL': | |
560 | - extent = (0, dx -1, 0, dy -1, slice_number, slice_number + dz - 1) | |
561 | - elif orientation == 'SAGITAL': | |
562 | - dx, dy, dz = dz, dx, dy | |
563 | - extent = (slice_number, slice_number + dx - 1, 0, dy - 1, 0, dz - 1) | |
564 | - elif orientation == 'CORONAL': | |
565 | - dx, dy, dz = dx, dz, dy | |
566 | - extent = (0, dx - 1, slice_number, slice_number + dy - 1, 0, dz - 1) | |
567 | - | |
568 | - # Generating the vtkImageData | |
569 | - image = vtk.vtkImageData() | |
570 | - image.SetOrigin(0, 0, 0) | |
571 | - image.SetSpacing(spacing) | |
572 | - image.SetNumberOfScalarComponents(1) | |
573 | - image.SetDimensions(dx, dy, dz) | |
574 | - image.SetExtent(extent) | |
575 | - image.SetScalarType(numpy_support.get_vtk_array_type(n_array.dtype)) | |
576 | - image.AllocateScalars() | |
577 | - image.GetPointData().SetScalars(v_image) | |
578 | - image.Update() | |
579 | - | |
580 | - image_copy = vtk.vtkImageData() | |
581 | - image_copy.DeepCopy(image) | |
582 | - image_copy.Update() | |
583 | - | |
584 | - return image_copy | |
549 | + | ... | ... |
invesalius/data/slice_.py
... | ... | @@ -23,6 +23,7 @@ import vtk |
23 | 23 | import wx.lib.pubsub as ps |
24 | 24 | |
25 | 25 | import constants as const |
26 | +import converters | |
26 | 27 | import imagedata_utils as iu |
27 | 28 | import style as st |
28 | 29 | import session as ses |
... | ... | @@ -358,7 +359,7 @@ class Slice(object): |
358 | 359 | image = self.buffer_slices[orientation].vtk_image |
359 | 360 | else: |
360 | 361 | n_image = self.get_image_slice(orientation, slice_number) |
361 | - image = iu.to_vtk(n_image, self.spacing, slice_number, orientation) | |
362 | + image = converters.to_vtk(n_image, self.spacing, slice_number, orientation) | |
362 | 363 | ww_wl_image = self.do_ww_wl(image) |
363 | 364 | image = self.do_colour_image(ww_wl_image) |
364 | 365 | if self.current_mask and self.current_mask.is_shown: |
... | ... | @@ -368,7 +369,7 @@ class Slice(object): |
368 | 369 | else: |
369 | 370 | print "Do not getting from buffer" |
370 | 371 | n_mask = self.get_mask_slice(orientation, slice_number) |
371 | - mask = iu.to_vtk(n_mask, self.spacing, slice_number, orientation) | |
372 | + mask = converters.to_vtk(n_mask, self.spacing, slice_number, orientation) | |
372 | 373 | mask = self.do_colour_mask(mask) |
373 | 374 | self.buffer_slices[orientation].mask = n_mask |
374 | 375 | final_image = self.do_blend(image, mask) |
... | ... | @@ -378,13 +379,13 @@ class Slice(object): |
378 | 379 | self.buffer_slices[orientation].vtk_image = image |
379 | 380 | else: |
380 | 381 | n_image = self.get_image_slice(orientation, slice_number) |
381 | - image = iu.to_vtk(n_image, self.spacing, slice_number, orientation) | |
382 | + image = converters.to_vtk(n_image, self.spacing, slice_number, orientation) | |
382 | 383 | ww_wl_image = self.do_ww_wl(image) |
383 | 384 | image = self.do_colour_image(ww_wl_image) |
384 | 385 | |
385 | 386 | if self.current_mask and self.current_mask.is_shown: |
386 | 387 | n_mask = self.get_mask_slice(orientation, slice_number) |
387 | - mask = iu.to_vtk(n_mask, self.spacing, slice_number, orientation) | |
388 | + mask = converters.to_vtk(n_mask, self.spacing, slice_number, orientation) | |
388 | 389 | mask = self.do_colour_mask(mask) |
389 | 390 | final_image = self.do_blend(image, mask) |
390 | 391 | else: | ... | ... |
invesalius/data/surface_process.py
... | ... | @@ -6,8 +6,7 @@ import numpy |
6 | 6 | import vtk |
7 | 7 | |
8 | 8 | import i18n |
9 | -import imagedata_utils | |
10 | - | |
9 | +import converters | |
11 | 10 | from scipy import ndimage |
12 | 11 | |
13 | 12 | class SurfaceProcess(multiprocessing.Process): |
... | ... | @@ -33,11 +32,12 @@ class SurfaceProcess(multiprocessing.Process): |
33 | 32 | self.flip_image = flip_image |
34 | 33 | self.q_in = q_in |
35 | 34 | self.q_out = q_out |
36 | - | |
37 | - self.mask = numpy.memmap(filename, mode='r', dtype=dtype, | |
38 | - shape=shape) | |
35 | + self.dtype = dtype | |
36 | + self.shape = shape | |
39 | 37 | |
40 | 38 | def run(self): |
39 | + self.mask = numpy.memmap(self.filename, mode='r', dtype=self.dtype, | |
40 | + shape=self.shape) | |
41 | 41 | while 1: |
42 | 42 | roi = self.q_in.get() |
43 | 43 | print roi |
... | ... | @@ -51,7 +51,7 @@ class SurfaceProcess(multiprocessing.Process): |
51 | 51 | |
52 | 52 | def CreateSurface(self, roi): |
53 | 53 | smoothed = numpy.array(self.mask[roi]) |
54 | - image = imagedata_utils.to_vtk(smoothed, self.spacing, roi.start, | |
54 | + image = converters.to_vtk(smoothed, self.spacing, roi.start, | |
55 | 55 | "AXIAL") |
56 | 56 | flip = vtk.vtkImageFlip() |
57 | 57 | flip.SetInput(image) | ... | ... |
invesalius/session.py
1 | +#-------------------------------------------------------------------------- | |
2 | +# Software: InVesalius - Software de Reconstrucao 3D de Imagens Medicas | |
3 | +# Copyright: (C) 2001 Centro de Pesquisas Renato Archer | |
4 | +# Homepage: http://www.softwarepublico.gov.br | |
5 | +# Contact: invesalius@cti.gov.br | |
6 | +# License: GNU - GPL 2 (LICENSE.txt/LICENCA.txt) | |
7 | +#-------------------------------------------------------------------------- | |
8 | +# Este programa e software livre; voce pode redistribui-lo e/ou | |
9 | +# modifica-lo sob os termos da Licenca Publica Geral GNU, conforme | |
10 | +# publicada pela Free Software Foundation; de acordo com a versao 2 | |
11 | +# da Licenca. | |
12 | +# | |
13 | +# Este programa eh distribuido na expectativa de ser util, mas SEM | |
14 | +# QUALQUER GARANTIA; sem mesmo a garantia implicita de | |
15 | +# COMERCIALIZACAO ou de ADEQUACAO A QUALQUER PROPOSITO EM | |
16 | +# PARTICULAR. Consulte a Licenca Publica Geral GNU para obter mais | |
17 | +# detalhes. | |
18 | +#-------------------------------------------------------------------------- | |
19 | + | |
1 | 20 | import ConfigParser |
2 | 21 | import os |
3 | 22 | import shutil | ... | ... |