MCPcopy Create free account
hub / github.com/alicevision/AliceVision / writeMapToFileOrTile

Function writeMapToFileOrTile

src/aliceVision/mvsUtils/mapIO.cpp:403–540  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

401
402template<typename T>
403void writeMapToFileOrTile(int rc,
404 const MultiViewParams& mp,
405 const EFileType fileType,
406 const TileParams& tileParams,
407 const ROI& roi,
408 const image::Image<T>& in_map,
409 int scale,
410 int step,
411 const std::string& customSuffix = "")
412{
413 // assert scale & step
414 assert(scale > 0);
415 assert(step > 0);
416
417 const int scaleStep = scale * step;
418
419 // get image dimensions at scale / stepXY
420 const int imageWidth = divideRoundUp(mp.getWidth(rc), scaleStep);
421 const int imageHeight = divideRoundUp(mp.getHeight(rc), scaleStep);
422
423 // get downscaled ROI
424 const ROI downscaledROI = downscaleROI(roi, scaleStep);
425
426 // check input map dimensions
427 assert(in_map.width() == downscaledROI.width() && in_map.width() <= imageWidth);
428 assert(in_map.height() == downscaledROI.height() && in_map.height() <= imageHeight);
429
430 // set OIIO ROI for map writing
431 // displayRoi is the image region of interest for display (image size)
432 // pixelRoi is the buffer region of interest within the displayRoi (tile size)
433 // no tiling if displayRoi == pixelRoi
434 const oiio::ROI displayRoi(0, imageWidth, 0, imageHeight);
435 const oiio::ROI pixelRoi(downscaledROI.x.begin, downscaledROI.x.end, downscaledROI.y.begin, downscaledROI.y.end);
436
437 // output map path
438 std::string mapPath;
439
440 if (downscaledROI.width() != imageWidth || downscaledROI.height() != imageHeight) // is a tile
441 {
442 // tiled map
443 mapPath = getFileNameFromIndex(mp, rc, fileType, customSuffix, roi.x.begin, roi.y.begin);
444 }
445 else
446 {
447 // fullsize map
448 mapPath = getFileNameFromIndex(mp, rc, fileType, customSuffix);
449 }
450
451 // original picture file metadata
452 oiio::ParamValueList metadata = image::getMetadataFromMap(mp.getMetadata(rc));
453
454 // downscale metadata
455 metadata.push_back(oiio::ParamValue("AliceVision:downscale", mp.getDownscaleFactor(rc) * scaleStep));
456
457 // roi metadata
458 {
459 metadata.push_back(oiio::ParamValue("AliceVision:roiBeginX", int(roi.x.begin)));
460 metadata.push_back(oiio::ParamValue("AliceVision:roiBeginY", int(roi.y.begin)));

Callers 1

writeMapFunction · 0.85

Calls 15

divideRoundUpFunction · 0.85
downscaleROIFunction · 0.85
getFileNameFromIndexFunction · 0.85
getMetadataFromMapFunction · 0.85
maxFunction · 0.85
writeImageFunction · 0.85
push_backMethod · 0.80
getDownscaleFactorMethod · 0.80
getOriginalPMethod · 0.80
dataMethod · 0.80
getWidthMethod · 0.45
getHeightMethod · 0.45

Tested by

no test coverage detected