CPPxDIC
C++ Digital Image Correlation library for fingertip 3D reconstruction
Loading...
Searching...
No Matches
mirrored_mode.h File Reference

Interface for the mirrored-camera xDIC mode ("MNG" variant). More...

#include <opencv2/opencv.hpp>
#include <string>
#include <vector>

Go to the source code of this file.

Classes

struct  xdic::mirrored::ViewInfo
 Logical view = (physical camera id, which half of that camera's frame). More...
 
struct  xdic::mirrored::ViewPair
 A mirrored stereopair: the two logical views to correlate against each other. More...
 

Namespaces

namespace  xdic
 
namespace  xdic::mirrored
 

Enumerations

enum class  xdic::mirrored::MaskHalf { xdic::mirrored::Left = 1 , xdic::mirrored::Right = 2 }
 Half-width mask region used to extract a single mirror view from a frame. More...
 

Functions

ViewPair xdic::mirrored::resolveViewPair (int stereopair, const std::vector< int > &cam_order)
 Resolve the two views that form a given mirrored stereopair.
 
cv::Mat xdic::mirrored::extractViewFromFrame (const cv::Mat &frame, MaskHalf half)
 Extract a single mirror view (full frame) from a decoded camera frame.
 
bool xdic::mirrored::importRawViewMirrored (const Config &config, int trial, const ViewInfo &view, int frameStart, int frameEnd, int frameJump, std::vector< std::string > &out_frames)
 Decode a physical-camera video and write per-view masked frames to disk.
 
bool xdic::mirrored::run (const Config &config, const std::vector< int > &trials={})
 Run the mirrored-camera 2D DIC pipeline.
 

Detailed Description

Interface for the mirrored-camera xDIC mode ("MNG" variant).

The mirrored mode reconstructs surface kinematics from a single physical camera that observes the specimen together with one or more mirrors, yielding multiple virtual viewpoints inside a single video frame. In the reference MATLAB project this corresponds to the MNG-prefixed steps:

  • Tools/MultiDIC/main_script/stepD_2DDIC_MNG.m
  • Tools/MultiDIC/lib_script/import_vid_MNG.m / import_raw_vid_MNG.m
  • Tools/MultiDIC/lib_script/get_cam_view_stereopair_param.m / camera_info_from_view.m

Unlike the camerapairs mode (two physical cameras, one video each), the mirrored mode uses a binary mask over the image width to slice each physical-camera frame into per-mirror full-frame "views". With cam_order = [2 1 4 3] and a left/right half mask there are 4 physical cameras x 2 halves = 8 logical views, paired into 7 overlapping stereopairs (see get_cam_view_stereopair_param). Standard 2D DIC then runs on each extracted view exactly as in the camerapairs path.

Status: implemented. Compiled into cppxdic only when configured with -DXDIC_MODE=mirrored (which defines XDIC_MODE_MIRRORED).

Definition in file mirrored_mode.h.