[med-svn] [Git][med-team/invesalius][master] 5 commits: New upstream version 3.1.99992
Thiago Franco de Moraes
gitlab at salsa.debian.org
Tue Sep 11 13:41:00 BST 2018
Thiago Franco de Moraes pushed to branch master at Debian Med / invesalius
Commits:
f6db4e7b by Thiago Franco de Moraes at 2018-09-10T14:20:04Z
New upstream version 3.1.99992
- - - - -
bb77af92 by Thiago Franco de Moraes at 2018-09-10T14:23:07Z
Update upstream source from tag 'upstream/3.1.99992'
Update to upstream version '3.1.99992'
with Debian dir 90837460c3e62a88072d642030bfc63f403e7c0d
- - - - -
08415043 by Thiago Franco de Moraes at 2018-09-10T15:22:16Z
porting to python3
- - - - -
83d10824 by Thiago Franco de Moraes at 2018-09-10T15:28:27Z
porting to python3
- - - - -
8c6741e3 by Thiago Franco de Moraes at 2018-09-11T12:40:26Z
Removing X-Python3-Version
- - - - -
18 changed files:
- debian/changelog
- debian/control
- debian/rules
- docs/user_guide_en.pdf
- docs/user_guide_en_source/cap_manip.tex
- docs/user_guide_pt_BR.pdf
- docs/user_guide_pt_BR_source/cap_manip.tex
- invesalius/constants.py
- invesalius/data/cy_mesh.pyx
- invesalius/data/mask.py
- invesalius/data/slice_.py
- invesalius/data/styles.py
- invesalius/data/surface.py
- invesalius/data/trigger.py
- invesalius/gui/data_notebook.py
- invesalius/gui/task_navigator.py
- invesalius/gui/widgets/slice_menu.py
- setup.py
Changes:
=====================================
debian/changelog
=====================================
@@ -1,3 +1,11 @@
+invesalius (3.1.99992-1) UNRELEASED; urgency=medium
+
+ [ Thiago Franco de Moraes ]
+ * New upstream version
+ Closes: #908456
+
+ -- Thiago Franco de Moraes <tfmoraes at cti.gov.br> Mon, 10 Sep 2018 11:57:50 -0300
+
invesalius (3.1.99991-1) unstable; urgency=medium
[ Thiago Franco de Moraes ]
=====================================
debian/control
=====================================
@@ -5,11 +5,11 @@ Uploaders: Andreas Tille <tille at debian.org>,
Section: graphics
Priority: optional
Build-Depends: debhelper (>= 11~),
- python-all-dev,
- cython,
+ python3-all-dev,
+ cython3,
dh-python,
- python-numpy
-Build-Depends-Indep: python
+ python3-numpy
+Build-Depends-Indep: python3
Standards-Version: 4.2.0
Vcs-Browser: https://salsa.debian.org/med-team/invesalius
Vcs-Git: https://salsa.debian.org/med-team/invesalius.git
@@ -19,19 +19,17 @@ Package: invesalius
Architecture: all
Depends: ${python:Depends},
${misc:Depends},
- python-numpy,
- python-scipy,
- python-skimage,
- python-wxgtk4.0,
- python-pil,
- python-gdcm,
- python-vtkgdcm,
- python-vtk6,
- python-nibabel,
- python-serial,
- python-psutil,
- python-configparser,
- python-concurrent.futures,
+ python3-numpy,
+ python3-scipy,
+ python3-skimage,
+ python3-wxgtk4.0,
+ python3-pil,
+ python3-gdcm,
+ python3-vtkgdcm,
+ python3-vtk7,
+ python3-nibabel,
+ python3-serial,
+ python3-psutil,
invesalius-bin
Description: 3D medical imaging reconstruction software
InVesalius generates 3D medical imaging reconstructions based on a sequence of
=====================================
debian/rules
=====================================
@@ -14,10 +14,10 @@ version=2.0.5
major=2
%:
- dh $@ --with python2
+ dh $@ --with python3
override_dh_auto_build: create-cython-dir
- python setup.py build_ext --inplace
+ python3 setup.py build_ext --inplace
override_dh_auto_clean:
# dh_auto_clean
@@ -40,10 +40,9 @@ override_dh_clean:
create-launcher:
echo '#!/bin/sh' > invesalius3
echo 'export PYTHONPATH=$$PYTHONPATH:"/usr/lib/invesalius"' >> invesalius3
- echo 'export PYTHONPATH=$$PYTHONPATH:"/usr/lib/python2.7/dist-packages/wxPython-4.0.1-py2.7-linux-amd64.egg"' >> invesalius3
echo 'export INVESALIUS_LIBRARY_PATH="/usr/share/invesalius/"' >> invesalius3
echo 'cd $$INVESALIUS_LIBRARY_PATH' >> invesalius3
- echo 'python app.py $$@' >> invesalius3
+ echo 'python3 app.py $$@' >> invesalius3
override_dh_install: create-launcher
dh_install
=====================================
docs/user_guide_en.pdf
=====================================
Binary files a/docs/user_guide_en.pdf and b/docs/user_guide_en.pdf differ
=====================================
docs/user_guide_en_source/cap_manip.tex
=====================================
@@ -352,7 +352,7 @@ As shown in Figure~\ref{fig:proj_maxip_qtd}, the number of MaxIP images is set a
\subsection{MinIP}
-Unlike MaxIP, MinIP (\textit{Minimun Intensity Projection}) selects only the voxels that have minimal intensity among those visited, as shown in Figure~\ref{fig:proj_minIP}. The image number selection comprising the projection is made at the bottom of each orientation image as shown in Figure~\ref{fig:proj_maxip_qtd}.
+Unlike MaxIP, MinIP (\textit{Minimum Intensity Projection}) selects only the voxels that have minimal intensity among those visited, as shown in Figure~\ref{fig:proj_minIP}. The image number selection comprising the projection is made at the bottom of each orientation image as shown in Figure~\ref{fig:proj_maxip_qtd}.
\begin{figure}[!h]
\centering
@@ -411,4 +411,4 @@ The Contour MIDA function consists of visualizing contours present in the projec
\includegraphics[scale=0.40]{multiplanar_window_contour_mida_en.png}
\caption{Contour MIDA projection}
\label{fig:proj_contorno_mida}
-\end{figure}
\ No newline at end of file
+\end{figure}
=====================================
docs/user_guide_pt_BR.pdf
=====================================
Binary files a/docs/user_guide_pt_BR.pdf and b/docs/user_guide_pt_BR.pdf differ
=====================================
docs/user_guide_pt_BR_source/cap_manip.tex
=====================================
@@ -412,7 +412,7 @@ Como mostra a figura~\ref{fig:proj_maxip_qtd}, a quantidade de imagens que irá
\subsection{MinIP}
-Ao contrário do MaxIP, o MinIP (\textit{Minimun Intensity Projection}) seleciona somente os voxels que possuem internsidade minima entre os visitados, apresentamos na figura~\ref{fig:proj_minIP} um exemplo. A seleção da quantidade de imagens que irá compor a projeção é feita no inferior da imagem de cada orientação como mostra a figura~\ref{fig:proj_maxip_qtd}.
+Ao contrário do MaxIP, o MinIP (\textit{Minimum Intensity Projection}) seleciona somente os voxels que possuem internsidade minima entre os visitados, apresentamos na figura~\ref{fig:proj_minIP} um exemplo. A seleção da quantidade de imagens que irá compor a projeção é feita no inferior da imagem de cada orientação como mostra a figura~\ref{fig:proj_maxip_qtd}.
\begin{figure}[H]
\centering
@@ -471,4 +471,4 @@ Compõe a projeção 2D do conjunto de imagens que contém o volume usando a té
\includegraphics[scale=0.40]{multiplanar_window_contour_mida_pt.png}
\caption{Projeção de Contorno MIDA}
\label{fig:proj_contorno_mida}
-\end{figure}
\ No newline at end of file
+\end{figure}
=====================================
invesalius/constants.py
=====================================
@@ -355,7 +355,7 @@ if hasattr(sys,"frozen") and (sys.frozen == "windows_exe"\
else:
ICON_DIR = os.path.abspath(os.path.join(FILE_PATH, u'..', u'icons'))
- SAMPLE_DIR = os.path.abspath(os.path.join(FILE_PATH, u'..', u'samples'))
+ SAMPLE_DIR = u"/usr/share/doc/invesalius-examples/examples/"
DOC_DIR = os.path.abspath(os.path.join(FILE_PATH, u'..', u'docs'))
folder=RAYCASTING_PRESETS_DIRECTORY= os.path.abspath(os.path.join(u".",
=====================================
invesalius/data/cy_mesh.pyx
=====================================
@@ -173,7 +173,7 @@ cdef class Mesh:
Params:
v_id: id of the vertex
- dmax: the maximun distance.
+ dmax: the maximum distance.
"""
cdef vector[vertex_id_t]* idfaces
cdef vector[vertex_id_t]* near_vertices = new vector[vertex_id_t]()
@@ -230,7 +230,7 @@ cdef vector[weight_t]* calc_artifacts_weight(Mesh mesh, vector[vertex_id_t]& ver
vertices_staircase: the identified staircase artifact vertices
tmax: max distance the vertex must be to its nearest artifact vertex
to considered to calculate the weight
- bmin: The minimun weight.
+ bmin: The minimum weight.
"""
cdef int vi_id, vj_id, nnv, n_ids, i, j
cdef vector[vertex_id_t]* near_vertices
@@ -444,7 +444,7 @@ def ca_smoothing(Mesh mesh, double T, double tmax, double bmin, int n_iters):
vertex a staircase artifact
tmax: max distance the vertex must be to its nearest artifact vertex
to considered to calculate the weight
- bmin: The minimun weight
+ bmin: The minimum weight
n_iters: Number of iterations.
"""
cdef double[3] stack_orientation = [0.0, 0.0, 1.0]
=====================================
invesalius/data/mask.py
=====================================
@@ -30,7 +30,7 @@ import invesalius.constants as const
import invesalius.data.imagedata_utils as iu
import invesalius.session as ses
-from . import floodfill
+from invesalius_cy import floodfill
from wx.lib.pubsub import pub as Publisher
from scipy import ndimage
=====================================
invesalius/data/slice_.py
=====================================
@@ -33,9 +33,9 @@ import invesalius.session as ses
import invesalius.utils as utils
from invesalius.data.mask import Mask
from invesalius.project import Project
-from invesalius.data import mips
+from invesalius_cy import mips
-from invesalius.data import transforms
+from invesalius_cy import transforms
import invesalius.data.transformations as transformations
OTHER=0
PLIST=1
=====================================
invesalius/data/styles.py
=====================================
@@ -47,7 +47,7 @@ from skimage.morphology import watershed
import invesalius.gui.dialogs as dialogs
from invesalius.data.measures import MeasureData
-from . import floodfill
+from invesalius_cy import floodfill
import invesalius.data.watershed_process as watershed_process
import invesalius.utils as utils
=====================================
invesalius/data/surface.py
=====================================
@@ -48,7 +48,7 @@ import invesalius.data.surface_process as surface_process
import invesalius.utils as utl
import invesalius.data.vtk_utils as vu
-from invesalius.data import cy_mesh
+from invesalius_cy import cy_mesh
# TODO: Verificar ReleaseDataFlagOn and SetSource
class Surface():
=====================================
invesalius/data/trigger.py
=====================================
@@ -52,7 +52,7 @@ class Trigger(threading.Thread):
def __bind_events(self):
Publisher.subscribe(self.OnStylusPLH, 'PLH Stylus Button On')
- def OnStylusPLH(self, pubsuv_evt):
+ def OnStylusPLH(self):
self.stylusplh = True
def stop(self):
=====================================
invesalius/gui/data_notebook.py
=====================================
@@ -1135,7 +1135,7 @@ class MeasuresListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
index=index, visibility=visibility)
def OnLoadData(self, measurement_dict, spacing=(1.0, 1.0, 1.0)):
- for i in measurement_dict:
+ for i in sorted(measurement_dict):
m = measurement_dict[i]
image = self.CreateColourBitmap(m.colour)
image_index = self.imagelist.Add(image)
=====================================
invesalius/gui/task_navigator.py
=====================================
@@ -239,21 +239,23 @@ class InnerFoldPanel(wx.Panel):
Publisher.sendMessage('Update trigger state', trigger_state=ctrl.GetValue())
def OnShowObject(self, evt=None, flag=None, obj_name=None):
- if flag:
- self.checkobj.Enable(True)
- self.track_obj = True
- Publisher.sendMessage('Status target button', status=True)
- else:
- self.checkobj.Enable(False)
- self.checkobj.SetValue(False)
- self.track_obj = False
- Publisher.sendMessage('Status target button', status=False)
+ if not evt:
+ if flag:
+ self.checkobj.Enable(True)
+ self.track_obj = True
+ Publisher.sendMessage('Status target button', status=True)
+ else:
+ self.checkobj.Enable(False)
+ self.checkobj.SetValue(False)
+ self.track_obj = False
+ Publisher.sendMessage('Status target button', status=False)
Publisher.sendMessage('Update show object state', state=self.checkobj.GetValue())
def OnVolumeCamera(self, evt=None, target_mode=None):
- if target_mode is True:
- self.checkcamera.SetValue(0)
+ if not evt:
+ if target_mode is True:
+ self.checkcamera.SetValue(0)
Publisher.sendMessage('Update volume camera state', camera_state=self.checkcamera.GetValue())
@@ -860,7 +862,7 @@ class ObjectRegistrationPanel(wx.Panel):
self.btn_load.Enable(1)
if self.obj_fiducials is not None:
self.checktrack.Enable(1)
- Publisher.sendMessage('Enable target button', True)
+ #Publisher.sendMessage('Enable target button', True)
def OnSelectAngleThreshold(self, evt, ctrl):
Publisher.sendMessage('Update angle threshold', angle=ctrl.GetValue())
@@ -1121,7 +1123,7 @@ class MarkersPanel(wx.Panel):
self.tgt_index = self.lc.GetFocusedItem()
self.lc.SetItemBackgroundColour(self.tgt_index, 'RED')
- Publisher.sendMessage('Update target', coord=self.list_coord[self.tgt_index])
+ Publisher.sendMessage('Update target', coord=self.list_coord[self.tgt_index][:6])
Publisher.sendMessage('Set target transparency', status=True, index=self.tgt_index)
Publisher.sendMessage('Disable or enable coil tracker', status=True)
self.OnMenuEditMarkerId('TARGET')
@@ -1152,7 +1154,7 @@ class MarkersPanel(wx.Panel):
# OnDeleteSingleMarker is used for both pubsub and button click events
# Pubsub is used for fiducial handle and button click for all others
- if marker_id is not None:
+ if not evt:
if self.lc.GetItemCount():
for id_n in range(self.lc.GetItemCount()):
item = self.lc.GetItem(id_n, 4)
=====================================
invesalius/gui/widgets/slice_menu.py
=====================================
@@ -229,10 +229,9 @@ class SliceMenu(wx.Menu):
if sys.platform.startswith('linux'):
for i in self.pseudo_color_items:
it = self.pseudo_color_items[i]
- if it.IsChecked():
- it.Toggle()
+ it.Check(False)
- item.Toggle()
+ item.Check()
self.HideClutDialog()
self._gen_event = True
@@ -244,10 +243,9 @@ class SliceMenu(wx.Menu):
if sys.platform.startswith('linux'):
for i in self.pseudo_color_items:
it = self.pseudo_color_items[i]
- if it.IsChecked():
- it.Toggle()
+ it.Check(False)
- item.Toggle()
+ item.Check()
self.HideClutDialog()
self._gen_event = True
@@ -276,10 +274,9 @@ class SliceMenu(wx.Menu):
if sys.platform.startswith('linux'):
for i in self.pseudo_color_items:
it = self.pseudo_color_items[i]
- if it.IsChecked():
- it.Toggle()
+ it.Check(False)
- item.Toggle()
+ item.Check()
item = self.ID_TO_TOOL_ITEM[evt.GetId()]
item.Check(True)
self._gen_event = False
=====================================
setup.py
=====================================
@@ -11,26 +11,26 @@ import numpy
if sys.platform.startswith('linux'):
setup(
cmdclass = {'build_ext': build_ext},
- ext_modules = cythonize([ Extension("invesalius.data.mips", ["invesalius/data/mips.pyx"],
+ ext_modules = cythonize([ Extension("invesalius_cy.mips", ["invesalius_cy/mips.pyx"],
include_dirs = [numpy.get_include()],
extra_compile_args=['-fopenmp'],
extra_link_args=['-fopenmp']),
- Extension("invesalius.data.interpolation", ["invesalius/data/interpolation.pyx"],
+ Extension("invesalius_cy.interpolation", ["invesalius_cy/interpolation.pyx"],
include_dirs=[numpy.get_include()],
extra_compile_args=['-fopenmp',],
extra_link_args=['-fopenmp',]),
- Extension("invesalius.data.transforms", ["invesalius/data/transforms.pyx"],
+ Extension("invesalius_cy.transforms", ["invesalius_cy/transforms.pyx"],
include_dirs=[numpy.get_include()],
extra_compile_args=['-fopenmp',],
extra_link_args=['-fopenmp',]),
- Extension("invesalius.data.floodfill", ["invesalius/data/floodfill.pyx"],
+ Extension("invesalius_cy.floodfill", ["invesalius_cy/floodfill.pyx"],
include_dirs=[numpy.get_include()],
language='c++',),
- Extension("invesalius.data.cy_mesh", ["invesalius/data/cy_mesh.pyx"],
+ Extension("invesalius_cy.cy_mesh", ["invesalius_cy/cy_mesh.pyx"],
include_dirs=[numpy.get_include()],
extra_compile_args=['-fopenmp', '-std=c++11'],
extra_link_args=['-fopenmp', '-std=c++11'],
View it on GitLab: https://salsa.debian.org/med-team/invesalius/compare/be60c4bae93d9120c2011878546fb0b094c008bc...8c6741e373ecd8dc4fe3202cc3b84da519042d74
--
View it on GitLab: https://salsa.debian.org/med-team/invesalius/compare/be60c4bae93d9120c2011878546fb0b094c008bc...8c6741e373ecd8dc4fe3202cc3b84da519042d74
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20180911/0b7e4406/attachment-0001.html>
More information about the debian-med-commit
mailing list