########################## threedit .. Octave rendering and 3D object segmentation software ########################## * without any form of guarantee really! .. Since this is a collection of programs developed for a Licentiat thesis (Brian Lading; 'Face modelling - 3D object tracking and segmentation'), and initially not for the public, it will most likely NOT be plug and play. To get all features working you'll need to do some modifications. Eg different imagebands are implemented (RGB,I,HSV,Edge,.. and all worked a long time ago), but it currently fails when using anything but default, RGB. If you are fmiliar with octave/matlab, you'll need from one hour to one day of hacking. So run, read errors and iterate. ########################## * files ########################## Download these files at http://www.maths.lth.se/vision/downloads/ -[threedit.tar.gz] The main octave/matlab package, providing the 3d scene modelling and rendering rutines, the segmentation and the initialization rutines. -[threedit_facedata.tar.gz] Shape and texture data samples for face modelling. Raw and registered. Expression and ID data. -[threedit_editing_programs.tar.gz] Editors for texture coordinates, 3D shape editing and registrator programs. ########################## * dependencies ########################## [www.octave.org] an open source matlab clone .. lots of extra packages, see eg. octave.sourceforge.net/packages.html ########################## *compile '.c'-functions! ########################## use 'mkoctfile filename.c' to compile the supplied c-functions. These functions are also supplied as '.m'files, locate them without the 'momo_'. If you do not compile and use these, you will be waiting for a loooonnng time. So Do Compile! - momo\_d\_NormalVertexWorld\_dp.cpp - momo\_normalAtPlane.cpp - momo\_normalAtVertexWorld.cpp - momo\_pixelVSpolyid\_faster.cpp - momo\_world\_points.cpp ########################## * .m sample code ########################## ini_ini ini_system snapshot showModelAndSampleOverlay %% manual model placement parameters = addRotation (parameters,[0 1 0],20); parameters = addTranslation(parameters,-0.3,0.2,0); snapshot showModelAndSampleOverlay %% construct aaaam .. explore variability in 2d image plane aaaam.pose.rotX = linspace(-4,4,2); aaaam.pose.rotY = linspace(-8,8,5); aaaam.pose.rotZ = linspace(-4,4,2); aaaam.pose.tX = linspace(-0.1,0.1,4); aaaam.pose.tY = linspace(-0.1,0.1,4); aaaam.pose.tZ = linspace(-0.2,0.2,4); aaaam.modes.id = [-1,1]; aaaam.modes.exp = []; aaaam.modes.texture = []; aaaam.light.position = []; aam.additionalPertParameters = []; aaaam_run aam.c = zeros(aam.NCmodes,1); aam_optimize snapshot showModelAndSampleOverlay %% optimize using full 3d-system Jacobian optimize_initialize optimize_expression_and_position %% optimize_all snapshot showModelAndSampleOverlay ##########################