Matlab code associated with the paper "Keith Forbes, Fred Nicolls, Gerhard de Jager and Anthon Voigt. Shape-from-Silhouette with Two Mirrors and an Uncalibrated Camera. In Proceedings of the 9th European Conference on Computer Vision (ECCV), May 2006. "
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
AddVrmlIndexedFaceSet.m
AddVrmlViewpoint.m
AlignVectors.m
AntiSymmetricMatrixFromVector.m
ApproxMergeScaleAndPos.m
ApproxOrthoViewVec.m
Array2D.h
Augment.m
CompileMirrorMex1.m
ConvVh.m
ConvexPolyhedronFacesToDualPoints.m
CoordAdd.m
DblMrrEpipoleLineErr.m
DblMrrEpipoleLineErrOPT.m
DblMrrEpipoles.m
DualPointFromThreePointsOnPlane.m
EpiTangPoints.m
EvalPrint.m
ExtractBoundaries.m
FourErrorDistances.m
FraRateFromDiscountArrayMex_TestSuite.m
GetBoundaryMex.cpp
GetBoundaryMex.mexw32
GetBoundaryMex.mexw64
HomogeneousCoord.cpp
HomogeneousCoord.h
Horse1.jpg
Horse2.jpg
ImageToNormalisedImage.m
IsPointInConvPoly.m
Jug1.jpg
Jug1.png
Jug2.jpg
Jug2.png
LMFnlsq.m
LinearEuclideanTriangulation.m
Locust1.jpg
Locust1.png
Locust2.jpg
Locust2.png
MarchDemoMex.cpp
MarchDemoMex.mexw32
MarchDemoMex.mexw64
MatlabGreyImage.cpp
MatlabGreyImage.h
Matrix4x4.cpp
Matrix4x4.h
Matrix4x4_Matlab.cpp
MatrixToAxisAngleMex.cpp
MatrixToAxisAngleMex.mexw32
MatrixToAxisAngleMex.mexw64
MirrorDemo4.m
MirrorFocalPpErr.m
MirrorFocalPpErrOPT.m
MirrorMergePosErr.m
MirrorPosFocalPpErr.m
MirrorPosFocalPpErrOPT.m
MyDeal.m
MyPalette.m
MyVectorize.m
NewFigure3D.m
NiceColours.m
NormalisedImageToImage.m
OrderAroundConvexHull.m
OrderMostConsistentEpipoles.m
OrthoEstMirrorDistRatio.m
OrthoTangencies.m
OuterTangents.m
Perp.m
PerpDist2DPointTo2DLine.m
PixelEtErr.m
PixelEtErrMex.cpp
PixelEtErrMex.mexw32
PixelEtErrMex.mexw64
PixelEtcErrForImageSet.m
PointDirLineIntersect.m
PointPolygonTangentExtremes.m
PointSetExtremesXY.m
PolygonCentroid.m
QuaternionToRotationMatrix.m
README.md
ReflectionMatrixFromVec.m
ReflectionMatrixFromVecPoint.m
RemoveBorderPixels.m
RotationMatrixToQuaternion.m
SelectObjectMex.cpp
SelectObjectMex.mexw32
SelectObjectMex.mexw64
ShowPoly.m
SignedArea.m
SilFunctions.cpp
SilFunctions.h
SilhouetteSet.h
SilhouetteSetPankaj.cpp
SilhouetteView.h
SilhouetteViewPankaj.cpp
StaticMirrorObjMoveCamErr.m
StaticMirrorObjMovingCamFn.m
VararginModifyDefaults.m
VcalCamera.cpp
VcalCamera.h
VhMarchTetMirror.m
ViewVecCentrePoint.m
VisualHullFunction.cpp
VisualHullFunction.h
Wm3BandedMatrix.h
Wm3BandedMatrix.inl
Wm3ContConvexHull2.cpp
Wm3ContConvexHull2.h
Wm3ContHullEdge2.cpp
Wm3ContHullEdge2.h
Wm3ContPointInPolygon2.h
Wm3GMatrix.h
Wm3GMatrix.inl
Wm3GVector.h
Wm3GVector.inl
Wm3LinearSystem.h
Wm3Mapper2.h
Wm3Mapper2.inl
Wm3Math.cpp
Wm3Math.h
Wm3Math.inl
Wm3Math.mcr
Wm3Matrix3.cpp
Wm3Matrix3.h
Wm3Matrix3.inl
Wm3Matrix4.cpp
Wm3Matrix4.h
Wm3Matrix4.inl
Wm3Plane3.h
Wm3Plane3.inl
Wm3Platforms.h
Wm3Quaternion.h
Wm3Quaternion.inl
Wm3Query2.h
Wm3Query2.inl
Wm3Query2Int64.h
Wm3Query2Int64.inl
Wm3System.h
Wm3System.inl
Wm3TArray.h
Wm3TArray.inl
Wm3THashSet.h
Wm3THashSet.inl
Wm3THashTable.h
Wm3THashTable.inl
Wm3TList.h
Wm3TList.inl
Wm3TSet.h
Wm3TSet.inl
Wm3TStack.h
Wm3TStack.inl
Wm3Vector2.cpp
Wm3Vector2.h
Wm3Vector2.inl
Wm3Vector3.h
Wm3Vector3.inl
Wm3Vector4.h
Wm3Vector4.inl
acTsaiRadialDistortion.m
aug.m
convexhull.m
ensure.m
helper.cpp
helper.h
horse1.png
horse2.png
ms_assert.m
plot2D.m
polygonizer.cpp
polygonizer.h
rms.m
structord.m
swap.m
unitize.m

README.md

VisualHullFromMirrors

Code associated with the paper "Keith Forbes, Fred Nicolls, Gerhard de Jager and Anthon Voigt. Shape-from-Silhouette with Two Mirrors and an Uncalibrated Camera. In Proceedings of the 9th European Conference on Computer Vision (ECCV), May 2006."

I have updated the double mirror Matlab code to work on more recent versions of Matlab. No toolboxes required. Seems to still work on Matlab R2017b (Windows).

Run MirrorDemo4 from the Matlab command line.

You can change the first few lines of MirrorDemo4.m to try different input image examples (jug, horse, locust).

If the mex files for your operating system have not been created, you can run CompileMirrorMex1 to create them. (Send me the mex files and I'll include them for other users.)

If you use this code and would like to cite a publication, then use my thesis: Keith Forbes. "Calibration, Recognition, and Shape from Silhouettes of Stones". PhD thesis, University of Cape Town, June 2007.

Please email me with any comments or queries.

Keith Forbes
22 Nov 2017
keith2000@gmail.com