Menu

Habe mich die letzten Tage mal ausgiebig mit dem Thema 3D Scan beschäftgigt, genauer gesagt mit Photogrammetrie. Dabei bin ich über einen Blog von  Dr Peter Falkingham gestolpert, der dazu Colmap und OpenMVS sowie ein selbstgeschriebenes Script benutzt. Sein Script funktioniert leider nicht auf Anhieb, da bei Colmap einiges umgestellt wurde. Dank der Hilfe der Kommentare zu seinem Artikel, habe ich es geschafft es ans laufen zu kriegen. Damit ich das Script auch in einem halben Jahr noch wiederfinde, schreibe ich kurz diesen Artikel und poste das Script. Zusätzlich zum Script wird noch Colmap und OpenMVS benötigt, meshlab nicht mehr. Bevor ich diese Seite gefunde habe, habe ich es nur mit Colmap versucht, da kam aber nichts brauchbares bei raus und es hat ewig gedauert. Damit klappt ein Scan in unter einer Stunde. 

Hier das von mir modifizierte Script:

::These parameters are specific to computer 

::Store current Directory: 
set currDir=%CD% 

:: Set colmap directory:
set colDir=c:\users\User\Programme\COLMAP\bin

:: Set openMVS directory
set oMVS=c:\users\User\Programme\openMVS_sample-0.7a

:: Set Working Directory (windows)
set workDir=c:\users\User\Documents\3D-Scan\Working

mkdir %workDir% 
copy *.jpg %workDir%\ 
cd /d %workDir%

%colDir%\colmap feature_extractor --database_path database.db --image_path .
%colDir%\colmap exhaustive_matcher --database_path database.db
mkdir sparse
%colDir%\colmap mapper --database_path %workDir%\database.db --image_path . --export_path %workDir%\sparse
%colDir%\colmap model_converter --input_path %workDir%\sparse\0 --output_path model.nvm --output_type NVM
%oMVS%\InterfaceVisualSFM.exe model.nvm
%oMVS%\DensifyPointCloud.exe model.mvs
%oMVS%\ReconstructMesh.exe model_dense.mvs
%oMVS%\RefineMesh.exe --resolution-level 1 model_dense_mesh.mvs
%oMVS%\TextureMesh.exe --export-type obj model_dense_mesh_refine.mvs
cd /d %currDir%
mkdir model\
copy %workDir%\*.obj model\
copy %workDir%\*.mtl model\
copy %workDir%\*.jpg model\

::Uncomment these lines in to delete working directory
::cd /d %currDir%
::RD /S /Q %workDir%

Einfach in eine leere TXT-Datei und als .bat abspeichern. Eine genaue Anleitung wird folgen. Bei Colmap muss dann noch der Inhalt des lib-Verzeichnisses in den bin Ordner kopiert werden, da die DLLs ansonsten nicht gefunden werden.

Dr Peter Falkingham hat mich gerade darauf hingewiesen, das er sein Script bereits geupdatet und noch um ein weiteres Script ergänzt hat. Damit können gleich mehrere Projekte direkt nacheinander umgewandelt werden. Zu finden hier.