提交 cefa1dc5 编写于 作者: P Pavel Rojtberg

switch mask type from vector<int> to vector<uchar>

上级 81e814d9
...@@ -53,7 +53,7 @@ namespace cv { namespace ...@@ -53,7 +53,7 @@ namespace cv { namespace
double dalpha; double dalpha;
}; };
void subMatrix(const Mat& src, Mat& dst, const std::vector<int>& cols, const std::vector<int>& rows); void subMatrix(const Mat& src, Mat& dst, const std::vector<uchar>& cols, const std::vector<uchar>& rows);
}} }}
////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////
...@@ -899,7 +899,7 @@ double cv::fisheye::stereoCalibrate(InputArrayOfArrays objectPoints, InputArrayO ...@@ -899,7 +899,7 @@ double cv::fisheye::stereoCalibrate(InputArrayOfArrays objectPoints, InputArrayO
intrinsicLeft_errors.isEstimate = intrinsicLeft.isEstimate; intrinsicLeft_errors.isEstimate = intrinsicLeft.isEstimate;
intrinsicRight_errors.isEstimate = intrinsicRight.isEstimate; intrinsicRight_errors.isEstimate = intrinsicRight.isEstimate;
std::vector<int> selectedParams; std::vector<uchar> selectedParams;
std::vector<int> tmp(6 * (n_images + 1), 1); std::vector<int> tmp(6 * (n_images + 1), 1);
selectedParams.insert(selectedParams.end(), intrinsicLeft.isEstimate.begin(), intrinsicLeft.isEstimate.end()); selectedParams.insert(selectedParams.end(), intrinsicLeft.isEstimate.begin(), intrinsicLeft.isEstimate.end());
selectedParams.insert(selectedParams.end(), intrinsicRight.isEstimate.begin(), intrinsicRight.isEstimate.end()); selectedParams.insert(selectedParams.end(), intrinsicRight.isEstimate.begin(), intrinsicRight.isEstimate.end());
...@@ -999,7 +999,7 @@ double cv::fisheye::stereoCalibrate(InputArrayOfArrays objectPoints, InputArrayO ...@@ -999,7 +999,7 @@ double cv::fisheye::stereoCalibrate(InputArrayOfArrays objectPoints, InputArrayO
cv::Vec6d oldTom(Tcur[0], Tcur[1], Tcur[2], omcur[0], omcur[1], omcur[2]); cv::Vec6d oldTom(Tcur[0], Tcur[1], Tcur[2], omcur[0], omcur[1], omcur[2]);
//update all parameters //update all parameters
cv::subMatrix(J, J, selectedParams, std::vector<int>(J.rows, 1)); cv::subMatrix(J, J, selectedParams, std::vector<uchar>(J.rows, 1));
int a = cv::countNonZero(intrinsicLeft.isEstimate); int a = cv::countNonZero(intrinsicLeft.isEstimate);
int b = cv::countNonZero(intrinsicRight.isEstimate); int b = cv::countNonZero(intrinsicRight.isEstimate);
cv::Mat deltas; cv::Mat deltas;
...@@ -1050,7 +1050,7 @@ double cv::fisheye::stereoCalibrate(InputArrayOfArrays objectPoints, InputArrayO ...@@ -1050,7 +1050,7 @@ double cv::fisheye::stereoCalibrate(InputArrayOfArrays objectPoints, InputArrayO
} }
namespace cv{ namespace { namespace cv{ namespace {
void subMatrix(const Mat& src, Mat& dst, const std::vector<int>& cols, const std::vector<int>& rows) void subMatrix(const Mat& src, Mat& dst, const std::vector<uchar>& cols, const std::vector<uchar>& rows)
{ {
CV_Assert(src.channels() == 1); CV_Assert(src.channels() == 1);
...@@ -1435,11 +1435,11 @@ void cv::internal::ComputeJacobians(InputArrayOfArrays objectPoints, InputArrayO ...@@ -1435,11 +1435,11 @@ void cv::internal::ComputeJacobians(InputArrayOfArrays objectPoints, InputArrayO
} }
} }
std::vector<int> idxs(param.isEstimate); std::vector<uchar> idxs(param.isEstimate);
idxs.insert(idxs.end(), 6 * n, 1); idxs.insert(idxs.end(), 6 * n, 1);
subMatrix(JJ2, JJ2, idxs, idxs); subMatrix(JJ2, JJ2, idxs, idxs);
subMatrix(ex3, ex3, std::vector<int>(1, 1), idxs); subMatrix(ex3, ex3, std::vector<uchar>(1, 1), idxs);
} }
void cv::internal::EstimateUncertainties(InputArrayOfArrays objectPoints, InputArrayOfArrays imagePoints, void cv::internal::EstimateUncertainties(InputArrayOfArrays objectPoints, InputArrayOfArrays imagePoints,
......
...@@ -10,7 +10,7 @@ struct CV_EXPORTS IntrinsicParams ...@@ -10,7 +10,7 @@ struct CV_EXPORTS IntrinsicParams
Vec2d c; Vec2d c;
Vec4d k; Vec4d k;
double alpha; double alpha;
std::vector<int> isEstimate; std::vector<uchar> isEstimate;
IntrinsicParams(); IntrinsicParams();
IntrinsicParams(Vec2d f, Vec2d c, Vec4d k, double alpha = 0); IntrinsicParams(Vec2d f, Vec2d c, Vec4d k, double alpha = 0);
......
...@@ -368,7 +368,7 @@ TEST_F(fisheyeTest, EtimateUncertainties) ...@@ -368,7 +368,7 @@ TEST_F(fisheyeTest, EtimateUncertainties)
double thresh_cond = 1e6; double thresh_cond = 1e6;
int check_cond = 1; int check_cond = 1;
param.Init(cv::Vec2d(theK(0,0), theK(1,1)), cv::Vec2d(theK(0,2), theK(1, 2)), theD); param.Init(cv::Vec2d(theK(0,0), theK(1,1)), cv::Vec2d(theK(0,2), theK(1, 2)), theD);
param.isEstimate = std::vector<int>(9, 1); param.isEstimate = std::vector<uchar>(9, 1);
param.isEstimate[4] = 0; param.isEstimate[4] = 0;
errors.isEstimate = param.isEstimate; errors.isEstimate = param.isEstimate;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册