Skip to content
Snippets Groups Projects
Commit d666c0c5 authored by Guillaume Pasero's avatar Guillaume Pasero
Browse files

ENH: JIRA 362: BlockMatching application also supports a shift of the subsampled grid

parent 2d38f7e8
Branches
Tags
No related merge requests found
...@@ -240,6 +240,16 @@ private: ...@@ -240,6 +240,16 @@ private:
SetDefaultParameterInt("bm.step",1); SetDefaultParameterInt("bm.step",1);
SetMinimumParameterIntValue("bm.step",1); SetMinimumParameterIntValue("bm.step",1);
MandatoryOff("bm.step"); MandatoryOff("bm.step");
AddParameter(ParameterType_Int,"bm.startx","X start index");
SetParameterDescription("bm.startx","X start index of the subsampled grid (wrt the input image grid)");
SetDefaultParameterInt("bm.startx",0);
MandatoryOff("bm.startx");
AddParameter(ParameterType_Int,"bm.starty","Y start index");
SetParameterDescription("bm.starty","Y start index of the subsampled grid (wrt the input image grid)");
SetDefaultParameterInt("bm.starty",0);
MandatoryOff("bm.starty");
AddParameter(ParameterType_Group,"bm.medianfilter","Median filtering"); AddParameter(ParameterType_Group,"bm.medianfilter","Median filtering");
SetParameterDescription("bm.medianfilter","Use a median filter to get a smooth disparity map"); SetParameterDescription("bm.medianfilter","Use a median filter to get a smooth disparity map");
...@@ -357,6 +367,10 @@ private: ...@@ -357,6 +367,10 @@ private:
int minvdisp = GetParameterInt("bm.minvd"); int minvdisp = GetParameterInt("bm.minvd");
int maxvdisp = GetParameterInt("bm.maxvd"); int maxvdisp = GetParameterInt("bm.maxvd");
unsigned int step = GetParameterInt("bm.step"); unsigned int step = GetParameterInt("bm.step");
FloatImageType::IndexType gridIndex;
gridIndex[0] = GetParameterInt("bm.startx");
gridIndex[1] = GetParameterInt("bm.starty");
std::ostringstream leftBandMathExpression; std::ostringstream leftBandMathExpression;
leftBandMathExpression<<"if("; leftBandMathExpression<<"if(";
...@@ -492,6 +506,7 @@ private: ...@@ -492,6 +506,7 @@ private:
m_SSDBlockMatcher->SetRightInput(rightImage); m_SSDBlockMatcher->SetRightInput(rightImage);
m_SSDBlockMatcher->SetRadius(radius); m_SSDBlockMatcher->SetRadius(radius);
m_SSDBlockMatcher->SetStep(step); m_SSDBlockMatcher->SetStep(step);
m_SSDBlockMatcher->SetGridIndex(gridIndex);
m_SSDBlockMatcher->SetMinimumHorizontalDisparity(minhdisp); m_SSDBlockMatcher->SetMinimumHorizontalDisparity(minhdisp);
m_SSDBlockMatcher->SetMaximumHorizontalDisparity(maxhdisp); m_SSDBlockMatcher->SetMaximumHorizontalDisparity(maxhdisp);
m_SSDBlockMatcher->SetMinimumVerticalDisparity(minvdisp); m_SSDBlockMatcher->SetMinimumVerticalDisparity(minvdisp);
...@@ -557,6 +572,7 @@ private: ...@@ -557,6 +572,7 @@ private:
m_NCCBlockMatcher->SetRightInput(rightImage); m_NCCBlockMatcher->SetRightInput(rightImage);
m_NCCBlockMatcher->SetRadius(radius); m_NCCBlockMatcher->SetRadius(radius);
m_NCCBlockMatcher->SetStep(step); m_NCCBlockMatcher->SetStep(step);
m_NCCBlockMatcher->SetGridIndex(gridIndex);
m_NCCBlockMatcher->SetMinimumHorizontalDisparity(minhdisp); m_NCCBlockMatcher->SetMinimumHorizontalDisparity(minhdisp);
m_NCCBlockMatcher->SetMaximumHorizontalDisparity(maxhdisp); m_NCCBlockMatcher->SetMaximumHorizontalDisparity(maxhdisp);
m_NCCBlockMatcher->SetMinimumVerticalDisparity(minvdisp); m_NCCBlockMatcher->SetMinimumVerticalDisparity(minvdisp);
...@@ -624,6 +640,7 @@ private: ...@@ -624,6 +640,7 @@ private:
m_LPBlockMatcher->SetRightInput(rightImage); m_LPBlockMatcher->SetRightInput(rightImage);
m_LPBlockMatcher->SetRadius(radius); m_LPBlockMatcher->SetRadius(radius);
m_LPBlockMatcher->SetStep(step); m_LPBlockMatcher->SetStep(step);
m_LPBlockMatcher->SetGridIndex(gridIndex);
m_LPBlockMatcher->GetFunctor().SetP(static_cast<double>(GetParameterFloat("bm.metric.lp.p"))); m_LPBlockMatcher->GetFunctor().SetP(static_cast<double>(GetParameterFloat("bm.metric.lp.p")));
m_LPBlockMatcher->SetMinimumHorizontalDisparity(minhdisp); m_LPBlockMatcher->SetMinimumHorizontalDisparity(minhdisp);
m_LPBlockMatcher->SetMaximumHorizontalDisparity(maxhdisp); m_LPBlockMatcher->SetMaximumHorizontalDisparity(maxhdisp);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment