Hi,
I am trying to evaluate the performance of visionworks 1.6 semi global matching algorithm and have a hard time figuring out the right paramters for the nvxcuSemiGlobalMatching
. With below input, I keep getting invalid parameters error. Could the NVIDIA team provide a working example and explain a little more about below parameters and recommended values:
* \param [in] P1 Specifies the smoothness penalty.
* \param [in] P2 Specifies the discontiguous penalty.
* \param [in] sad Specifies the average window size for sum of absolute differences (set to 1 for original SGM).
* \param [in] ct_win_size Specifies the census transform window size.
* \param [in] hc_win_size Specifies the hamming cost window size.
* \param [in] clip Specifies clip value for cost (used to preserve overflow in cost function)
* \param [in] max_diff Specifies maximum allowed difference (in integer pixel units) in the left-right disparity check.
* \param [in] uniqueness Specifies margin in percentage by which the best (minimum) computed cost function value
* should “win” the second best value to consider the found match correct.
*
nvxcu_error_status_e error =
nvxcuSemiGlobalMatching(&left_.base,
&right_.base,
&disparity_.base,
params_.minDisparity_, // 1
params_.maxDisparity_, // 64
params_.smoothnessPenalty_, // 10??
params_.discontiguousPenalty_, // 10??
params_.sadWindowSize_, // 5
params_.censusTransformWindowSize_, // 5
params_.hammingCostWindowSize_, // 5
params_.clipCostValue_, // 100??
params_.maxDiffLeftRightDisparityCheck_, // 10?
params_.uniquenessScore_, // 75?
(nvxcu_scanline_e)params_.scanLineMask_,// 255
(nvxcu_sgm_flags_e)params_.sgmFlag_, // 0
&tmp_buf_,
&exec_target_.base);