Rank: 41 based on 1192 downloads (last 30 days) and 16 files submitted
photo

David Legland

E-mail
Company/University
INRA, France

Personal Profile:

Research engineer in computer sciences, more precisely image processing and applied statistics.

Interested in image analysis, geometrical modelling, image registration problems, estimation in discrete images, and polyhedral reconstruction.

web page:
http://www.pfl-cepia.inra.fr/ (in french)
See also:
http://matgeom.sourceforge.net

Professional Interests:
image analysis, applied statistics, geometric computing, registration

 

Watch this Author's files

 

Files Posted by David View all
Updated   File Tags Downloads
(last 30 days)
Comments Rating
01 Apr 2014 Screenshot geom2d Geometry library for matlab. Performs geometric computations on points, lines, circles, polygons... Author: David Legland geometry, computational geometr..., display, intersection, polygon, plan 327 45
  • 3.88889
3.9 | 21 ratings
12 Mar 2014 Screenshot ImageM A GUI for image processing and analysis Author: David Legland image processing, image analysis, image, image visualization, image display 47 0
26 Feb 2014 Screenshot Correlation circles Display correlation matrix using colored circles Author: David Legland data exploration, data visualization, correlation matrix, visualization 22 0
02 Dec 2013 Screenshot 3D Slicer Slicer for exploring 3D images (grayscale, color or vectorial) through planar or 3D slices. Author: David Legland slice, viewer, 3d, image, stack, display 139 17
  • 5.0
5.0 | 8 ratings
15 Oct 2013 Screenshot Table class A class for handling data tables together with row and column labels Author: David Legland statistics, data table, data exploration, data import 36 0
Comments and Ratings by David View all
Updated File Comments Rating
01 Apr 2014 geom2d Geometry library for matlab. Performs geometric computations on points, lines, circles, polygons... Author: David Legland

Hi Gary,

The "expansion" or "erosion" of the polygon depends on polygon orientation (counter-clockwise or clockwise) and on the sign of the distance. If polygon is CCW and distance is positive, the result will be expanded.

I have submitted a new version, that fixes some bugs. It seems to work better.

regards;

05 Mar 2014 Geometric measures in 2D/3D images Measure of geometric parameters in 2D or 3D images (surface area, perimeter, Euler Number...) Author: David Legland

Hi Sara,
For 3D objects you can compute surface area or volume using following code:
surf = imSurface(BIN); vol = imVolume(BIN);
(assuming BIN is a logical array containing the binarisation of the structure).

You can specify resolution as a 1-by-3 row vector containing size of voxel in x, y and z directions. Ex:
surf = imSurface(BIN, [2.5 2.5 5.2]);

26 Feb 2014 geom3d Library to handle 3D geometric primitives: create, intersect, display, and make basic computations Author: David Legland

@John,

thanks for reporting! After checking, it appears that in your example, the plane is passing exactly through one of the vertices of the mesh. This can sometimes happen, and I do not know yet how to handle these cases. A simple workaround is to slightly change the position of the plane (or the mesh), by adding a random value at the origin:
plane = createPlane( randn(1,3)*1e3, [ 0 1 1 ] );

Hope this helps ?

27 Jan 2014 geom3d Library to handle 3D geometric primitives: create, intersect, display, and make basic computations Author: David Legland

Hi Germano,
thanks, I will check it! I remember I used normalisation before cross product for improving stability, but I have to check again. Anyway, should be fixed in next release!

20 Nov 2013 3D Slicer Slicer for exploring 3D images (grayscale, color or vectorial) through planar or 3D slices. Author: David Legland

Hi Jun,

From what I remember, the offset is the same as the origin, and the field "origin" is used to specify the coordinates of the first pixel. "origin" and "spacing" are used to display mouse cursor coordinates in user units, but changing the origin does not change the display of the image itself.

The transformMatrix is not used at the moment. This could be used to update cursor coordinates (for example within the displayPixelCoords function). But if you want to display the image after applying the transform, this would require much more work...

Comments and Ratings on David's Files View all
Updated File Comment by Comments Rating
01 Apr 2014 geom2d Geometry library for matlab. Performs geometric computations on points, lines, circles, polygons... Author: David Legland Legland, David

Hi Gary,

The "expansion" or "erosion" of the polygon depends on polygon orientation (counter-clockwise or clockwise) and on the sign of the distance. If polygon is CCW and distance is positive, the result will be expanded.

I have submitted a new version, that fixes some bugs. It seems to work better.

regards;

31 Mar 2014 geom2d Geometry library for matlab. Performs geometric computations on points, lines, circles, polygons... Author: David Legland Kenward, Gary

The function expandPolygon appears to have a number of problems.

The following shrinks the polygon rather then expand it:

Sq1 = [-10.28,-15.39;-17.28,-4.611;-11.89,-1.110;-4.890,-11.89]
Sq1 = [ Sq1; Sq1(1,:) ];
Sq1e = cell2mat ( expandPolygon ( Sq1, 1 ) );

And, the following generates an error within the function:

Sq = [ [-10, -5]; [-10, 5]; [-5, 5]; [ -5, -5] ];
Sq1 = (Sq * [ cos(33*pi/180) -sin(33*pi/180); sin(33*pi/180) cos(33*pi/180)]' ) * 9/7 - 3;
Sq1 = [ Sq1; Sq1(1,:) ];
Sq1e = cell2mat ( expandPolygon ( Sq1, 1 ) );

The error message is:

Attempted to access poly(0,:); index must be a
positive integer or logical.
Error in distancePointPolygon (line 19)
if sum(poly(end, :)==poly(1,:))~=2
Error in distancePolygons (line 19)
dist2 = min(distancePointPolygon(poly2, poly1));
Error in expandPolygon (line 63)
distLoop(i) = distancePolygons(loops{i}, poly);

05 Mar 2014 Geometric measures in 2D/3D images Measure of geometric parameters in 2D or 3D images (surface area, perimeter, Euler Number...) Author: David Legland Legland, David

Hi Sara,
For 3D objects you can compute surface area or volume using following code:
surf = imSurface(BIN); vol = imVolume(BIN);
(assuming BIN is a logical array containing the binarisation of the structure).

You can specify resolution as a 1-by-3 row vector containing size of voxel in x, y and z directions. Ex:
surf = imSurface(BIN, [2.5 2.5 5.2]);

04 Mar 2014 Geometric measures in 2D/3D images Measure of geometric parameters in 2D or 3D images (surface area, perimeter, Euler Number...) Author: David Legland sara

hi , may you give the complite code for measuring 3D size of the object located in calibrated space please ? any one

please help me

26 Feb 2014 geom3d Library to handle 3D geometric primitives: create, intersect, display, and make basic computations Author: David Legland Legland, David

@John,

thanks for reporting! After checking, it appears that in your example, the plane is passing exactly through one of the vertices of the mesh. This can sometimes happen, and I do not know yet how to handle these cases. A simple workaround is to slightly change the position of the plane (or the mesh), by adding a random value at the origin:
plane = createPlane( randn(1,3)*1e3, [ 0 1 1 ] );

Hope this helps ?

Contact us