Commit 9e6e2b60849cc23faa6fec135ab36b97af686474
1 parent
a7d53f56
Exists in
master
and in
6 other branches
FIX: Enhace quality of surface on an edited region #141
Showing
1 changed file
with
39 additions
and
3 deletions
Show diff stats
invesalius/data/imagedata_utils.py
@@ -151,19 +151,55 @@ def BuildEditedImage(imagedata, points): | @@ -151,19 +151,55 @@ def BuildEditedImage(imagedata, points): | ||
151 | points in the editor, it is necessary to generate the | 151 | points in the editor, it is necessary to generate the |
152 | vtkPolyData via vtkContourFilter | 152 | vtkPolyData via vtkContourFilter |
153 | """ | 153 | """ |
154 | + init_values = None | ||
154 | for point in points: | 155 | for point in points: |
155 | x, y, z = point | 156 | x, y, z = point |
156 | colour = points[point] | 157 | colour = points[point] |
157 | imagedata.SetScalarComponentFromDouble(x, y, z, 0, colour) | 158 | imagedata.SetScalarComponentFromDouble(x, y, z, 0, colour) |
158 | imagedata.Update() | 159 | imagedata.Update() |
159 | 160 | ||
161 | + if not(init_values): | ||
162 | + xi = x | ||
163 | + xf = x | ||
164 | + yi = y | ||
165 | + yf = y | ||
166 | + zi = z | ||
167 | + zf = z | ||
168 | + init_values = 1 | ||
169 | + | ||
170 | + if (xi > x): | ||
171 | + xi = x | ||
172 | + elif(xf < x): | ||
173 | + xf = x | ||
174 | + | ||
175 | + if (yi > y): | ||
176 | + yi = y | ||
177 | + elif(yf < y): | ||
178 | + yf = y | ||
179 | + | ||
180 | + if (zi > z): | ||
181 | + zi = z | ||
182 | + elif(zf < z): | ||
183 | + zf = z | ||
184 | + | ||
185 | + clip = vtk.vtkImageClip() | ||
186 | + clip.SetInput(imagedata) | ||
187 | + clip.SetOutputWholeExtent(xi, xf, yi, yf, zi, zf) | ||
188 | + clip.Update() | ||
189 | + | ||
160 | gauss = vtk.vtkImageGaussianSmooth() | 190 | gauss = vtk.vtkImageGaussianSmooth() |
161 | - gauss.SetInput(imagedata) | 191 | + gauss.SetInput(clip.GetOutput()) |
162 | gauss.SetRadiusFactor(0.6) | 192 | gauss.SetRadiusFactor(0.6) |
163 | gauss.Update() | 193 | gauss.Update() |
164 | 194 | ||
165 | - return gauss.GetOutput() | ||
166 | - #return imagedata | 195 | + app = vtk.vtkImageAppend() |
196 | + app.PreserveExtentsOn() | ||
197 | + app.SetAppendAxis(2) | ||
198 | + app.SetInput(0, imagedata) | ||
199 | + app.SetInput(1, gauss.GetOutput()) | ||
200 | + app.Update() | ||
201 | + | ||
202 | + return app.GetOutput() | ||
167 | 203 | ||
168 | 204 | ||
169 | def Export(imagedata, filename, bin=False): | 205 | def Export(imagedata, filename, bin=False): |