Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void lsd_vector_form(std::vector<std::vector<float>> &L, std::vector<std::vector<float> > &L_vec, uint no_of_lines)
- {
- L_vec.resize(3); //Height
- for (int i = 0; i < 3; ++i)
- {
- L_vec[i].resize(no_of_lines);
- }
- cv::Mat A(3, 3, CV_32F);
- cv::Mat s, u, vt;
- A.at<float>(0, 2) = 1;
- A.at<float>(1, 2) = 1;
- A.at<float>(2, 0) = 0;
- A.at<float>(2, 1) = 0;
- A.at<float>(2, 2) = 0;
- for (int i = 0; i < no_of_lines; ++i)
- {
- A.at<float>(0, 0) = L[0][i];
- A.at<float>(0, 1) = L[1][i];
- A.at<float>(1, 0) = L[2][i];
- A.at<float>(1, 1) = L[3][i];
- cv::SVD::compute(A, s, u, vt); //YY=U*S*V'
- vt = vt.t();
- vt.col(0) = vt.col(0)*-1;
- L_vec[0][i] = vt.at<float>(0, 2);
- L_vec[1][i] = vt.at<float>(1, 2);
- L_vec[2][i] = vt.at<float>(2, 2);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement