mirror of
https://github.com/opencv/opencv.git
synced 2026-09-11 04:43:22 -05:00
CV_Assert permits rvec/tvec as Size(1,3) or Size(3,1), but the implementation only handled column vectors: - LM path read rvec/tvec via .at<double>(i,0), OOB for a row vector. - LM path's convertTo() write-back reallocated a local Mat alias instead of writing in place whenever the source/dest shapes mismatched, silently discarding the refined result for row vectors. - VVS path's "R1 * tvec" requires a column vector; a row vector threw a cv::Exception from gemm's shape assertion. Fixed all three with shape-agnostic .at<double>(i) indexing and reshape() before convertTo()/matrix arithmetic so orientation always matches. Added Calib3d_SolvePnP.refine_row_vector covering both solvePnPRefineLM and solvePnPRefineVVS with both orientations. Fixes #29747