Rank: 84 based on 612 downloads (last 30 days) and 16 files submitted
photo

Sven

E-mail
Company/University
University of Michigan

Personal Profile:

Aussie living in the US. Engineering with MATLAB.

Some Interests:
-3D Volume Processing (CT, mri)
-Finite Element Analysis (human body simulation)
-Geometry Analysis (human body morphomics)

Professional Interests:
Image processing, Finite Element Analysis, Human Body Biomechanics

 

Watch this Author's files

 

Files Posted by Sven View all
Updated   File Tags Downloads
(last 30 days)
Comments Rating
05 Sep 2014 Screenshot octree - partitioning 3D points into spatial subvolumes OcTree recursively splits a large set of points into smaller subvolumes. A QuadTree but in 3D. Author: Sven stl, space, volume, quadtree, octree, tree 91 14
  • 5.0
5.0 | 5 ratings
24 Jun 2014 Screenshot splitFV - split a mesh Splits a 2D or 3D mesh defined by faces and vertices into separately connected mesh pieces. Author: Sven mesh, separate, split, stl, faces, vertices 25 4
  • 5.0
5.0 | 4 ratings
01 May 2014 Screenshot interpmask - interpolate (tween) logical masks interpmask interpolates (or tweens) masks to transition smoothly between shapes in masks Author: Sven mask, interp1, interpolation, distance, tween, inbetween 9 0
01 May 2014 Screenshot mpoly2mask - converts multiple polygons to a mask Converts an object with multiple boundary contours to a logical mask Author: Sven poly2mask, bwboundaries, polygon, multiple, mask, logical 27 0
07 Mar 2014 Screenshot dbarray - pack and unpack database arrays to matlab arrays dbarray lets you directly send/fetch array[] type database fields into native MATLAB variables Author: Sven database, array, multidimensional, connection 16 0
Comments and Ratings by Sven View all
Updated File Comments Rating
05 Sep 2014 octree - partitioning 3D points into spatial subvolumes OcTree recursively splits a large set of points into smaller subvolumes. A QuadTree but in 3D. Author: Sven

@Jing: Yep, thanks for finding that bug. Fixed now.

05 Sep 2014 octree - partitioning 3D points into spatial subvolumes OcTree recursively splits a large set of points into smaller subvolumes. A QuadTree but in 3D. Author: Sven

@Wu Jun: It's strange but QuadTree decomposition in images is a different beast to QuadTree decomposition of 2d points, but they both have the same name. I'm afraid it's the same situation for OcTree decomposition (of image volumes vs 3d points). OcTree.m is targeted at points rather than image volume data.

05 Sep 2014 octree - partitioning 3D points into spatial subvolumes OcTree recursively splits a large set of points into smaller subvolumes. A QuadTree but in 3D. Author: Sven

@Greg: (sorry for the late reply) This is best done *after* plotting the bins. You can just find which bins don't contain a point and then delete or deactivate that bin's plot handle:

% Run example 1 and then:
binHasPts = ismember(1:OT.BinCount, OT.PointBins)
set(boxH(~binHasPts),'Visible','off')

06 Aug 2014 surf2solid - make a solid volume from a surface for 3D printing Turns thin surfaces into closed solids by adding a flat base or offsetting by a given thickness. Author: Sven

Hi Mona, the output from surf2solid (a faces/vertices structure) can be given directly to stlwrite:

FV = surf2solid(...)
stlwrite('yourfile.stl', FV)

23 Jul 2014 surf2solid - make a solid volume from a surface for 3D printing Turns thin surfaces into closed solids by adding a flat base or offsetting by a given thickness. Author: Sven

Hi Marios:

1) Use the triangulated faces/vertices input (SURF2SOLID(F, V,...)) instead of the gridded input (SURF2SOLID(X, Y, Z, ...)) and you can make arbitrary shaped surfaces instead of a grid. I would simply put 0 thickness at the nodes you don't want solid instead of NaN thickness.

2) This is possible, you just need to calculate the distance you want each node to be offset and use that 'thickness'. Basically, give the thickness as the difference between the original surface and your desired surface.

Here's a small example that uses most of those options:

v = [2 4 0; 2 6 0; 8 4 1; 8 0 0; 0 4 0]
f = [1 2 3; 1 3 4; 5 2 1]
figure, surf2solid(f,v,'thickness',[0 0 3 2 0])

Comments and Ratings on Sven's Files View all
Updated File Comment by Comments Rating
05 Sep 2014 octree - partitioning 3D points into spatial subvolumes OcTree recursively splits a large set of points into smaller subvolumes. A QuadTree but in 3D. Author: Sven Sven

@Jing: Yep, thanks for finding that bug. Fixed now.

05 Sep 2014 octree - partitioning 3D points into spatial subvolumes OcTree recursively splits a large set of points into smaller subvolumes. A QuadTree but in 3D. Author: Sven Sven

@Wu Jun: It's strange but QuadTree decomposition in images is a different beast to QuadTree decomposition of 2d points, but they both have the same name. I'm afraid it's the same situation for OcTree decomposition (of image volumes vs 3d points). OcTree.m is targeted at points rather than image volume data.

05 Sep 2014 octree - partitioning 3D points into spatial subvolumes OcTree recursively splits a large set of points into smaller subvolumes. A QuadTree but in 3D. Author: Sven Sven

@Greg: (sorry for the late reply) This is best done *after* plotting the bins. You can just find which bins don't contain a point and then delete or deactivate that bin's plot handle:

% Run example 1 and then:
binHasPts = ismember(1:OT.BinCount, OT.PointBins)
set(boxH(~binHasPts),'Visible','off')

04 Sep 2014 octree - partitioning 3D points into spatial subvolumes OcTree recursively splits a large set of points into smaller subvolumes. A QuadTree but in 3D. Author: Sven Jing

A bug in the code???
should "this.BinParents(binNo)+1" be "this.BinDepths(binNo)+1" ??

% Prevent dividing beyond the maximum depth

if this.BinParents(binNo)+1 >= this.Properties.maxDepth
continue;
end

01 Sep 2014 stlwrite - Write binary or ascii STL file Export a variety of inputs (patch, surface) to an STL triangular mesh Author: Sven Hosseinzadeh, Salaheddin

Contact us