Skip to content

Commit

Permalink
Ability to load NVM images with 16bit depth
Browse files Browse the repository at this point in the history
  • Loading branch information
pierotofy committed Oct 21, 2019
1 parent 8c24dc2 commit 521050e
Showing 1 changed file with 23 additions and 2 deletions.
25 changes: 23 additions & 2 deletions apps/makescene/makescene.cc
Expand Up @@ -366,14 +366,35 @@ import_bundle_nvm (AppSettings const& conf)

/* Load original image. */
std::string exif;
mve::ByteImage::Ptr image = load_8bit_image(nvm_cam.filename, &exif);
mve::ImageBase::Ptr image = load_any_image(nvm_cam.filename, &exif);
if (image == nullptr)
{
std::cout << "Error loading: " << nvm_cam.filename
<< " (skipping " << fname << ")" << std::endl;
continue;
}

switch (image->get_type()) {
case mve::IMAGE_TYPE_FLOAT:{
mve::FloatImage::Ptr temp = std::dynamic_pointer_cast<mve::FloatImage>(image);
float vmin, vmax;
find_min_max_percentile(temp, &vmin, &vmax);
image = mve::image::float_to_byte_image(temp, vmin, vmax);
break;
}
case mve::IMAGE_TYPE_UINT16:{
mve::RawImage::Ptr temp = std::dynamic_pointer_cast<mve::RawImage>(image);
uint16_t vmin, vmax;
find_min_max_percentile(temp, &vmin, &vmax);
image = mve::image::raw_to_byte_image(temp, vmin, vmax);
break;
}
case mve::IMAGE_TYPE_UINT8:
default:
/* No conversion needed */
break;
}

/* Add original image. */
if (conf.import_orig)
{
Expand All @@ -390,7 +411,7 @@ import_bundle_nvm (AppSettings const& conf)
mve_cam.flen = mve_cam.flen / static_cast<float>(maxdim);

mve::ByteImage::Ptr undist = mve::image::image_undistort_vsfm<uint8_t>
(image, mve_cam.flen, nvm_cam.radial_distortion);
(std::dynamic_pointer_cast<mve::ByteImage const>(image), mve_cam.flen, nvm_cam.radial_distortion);
undist = limit_image_size<uint8_t>(undist, conf.max_pixels);
view->set_image(undist, "undistorted");
view->set_camera(mve_cam);
Expand Down

0 comments on commit 521050e

Please sign in to comment.