Skip to content

Commit

Permalink
Colorizing node
Browse files Browse the repository at this point in the history
  • Loading branch information
servantftechnicolor authored and cbentejac committed Dec 2, 2024
1 parent 3eb9554 commit 16f11a3
Show file tree
Hide file tree
Showing 2 changed files with 81 additions and 0 deletions.
13 changes: 13 additions & 0 deletions src/software/utils/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -231,6 +231,19 @@ if(ALICEVISION_BUILD_SFM)
Boost::json
)

# SfM Colorizing
alicevision_add_software(aliceVision_sfmColorizing
SOURCE main_sfmColorizing.cpp
FOLDER ${FOLDER_SOFTWARE_UTILS}
LINKS aliceVision_system
aliceVision_cmdline
aliceVision_sfmData
aliceVision_sfmDataIO
aliceVision_sfm
Boost::program_options
Boost::json
)

# SfM split reconstructed
alicevision_add_software(aliceVision_sfmSplitReconstructed
SOURCE main_sfmSplitReconstructed.cpp
Expand Down
68 changes: 68 additions & 0 deletions src/software/utils/main_sfmColorizing.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
// This file is part of the AliceVision project.
// Copyright (c) 2024 AliceVision contributors.
// This Source Code Form is subject to the terms of the Mozilla Public License,
// v. 2.0. If a copy of the MPL was not distributed with this file,
// You can obtain one at https://mozilla.org/MPL/2.0/.

#include <aliceVision/types.hpp>
#include <aliceVision/config.hpp>

#include <aliceVision/system/Timer.hpp>
#include <aliceVision/system/Logger.hpp>
#include <aliceVision/system/main.hpp>
#include <aliceVision/cmdline/cmdline.hpp>

#include <aliceVision/sfmDataIO/sfmDataIO.hpp>
#include <aliceVision/sfmData/colorize.hpp>

#include <boost/program_options.hpp>
#include <boost/json.hpp>

// These constants define the current software version.
// They must be updated when the command line is changed.
#define ALICEVISION_SOFTWARE_VERSION_MAJOR 1
#define ALICEVISION_SOFTWARE_VERSION_MINOR 0

using namespace aliceVision;
namespace po = boost::program_options;

int aliceVision_main(int argc, char** argv)
{
// command-line parameters
std::string sfmDataFilename;
std::string sfmDataOutputFilename;
// clang-format off
po::options_description requiredParams("Required parameters");
requiredParams.add_options()
("input,i", po::value<std::string>(&sfmDataFilename)->required(),
"Input SfMData file.")
("output,o", po::value<std::string>(&sfmDataOutputFilename)->required(),
"SfMData output file with the injected poses.");
// clang-format on

CmdLine cmdline("AliceVision SfM Colorizing");

cmdline.add(requiredParams);
if (!cmdline.execute(argc, argv))
{
return EXIT_FAILURE;
}

// Set maxThreads
HardwareContext hwc = cmdline.getHardwareContext();
omp_set_num_threads(hwc.getMaxThreads());

// Load input SfMData scene
sfmData::SfMData sfmData;
if (!sfmDataIO::load(sfmData, sfmDataFilename, sfmDataIO::ESfMData::ALL))
{
ALICEVISION_LOG_ERROR("The input SfMData file '" + sfmDataFilename + "' cannot be read.");
return EXIT_FAILURE;
}

sfmData::colorizeTracks(sfmData);

sfmDataIO::save(sfmData, sfmDataOutputFilename, sfmDataIO::ESfMData::ALL);

return EXIT_SUCCESS;
}

0 comments on commit 16f11a3

Please sign in to comment.