Difference between revisions of "OpenCV/CommonTasks/DecomposeProjectionMatrix"
From ProgrammingExamples
< OpenCV
Daviddoria (Talk | contribs) m (→CMakeLists.txt) |
Daviddoria (Talk | contribs) m |
||
Line 9: | Line 9: | ||
{ | { | ||
// Create a synthetic projection matrix | // Create a synthetic projection matrix | ||
− | cv::Mat P(3,4, | + | cv::Mat P(3,4,cv::DataType<float>::type); |
P.at<float>(0,0) = 1; | P.at<float>(0,0) = 1; | ||
P.at<float>(1,0) = 0; | P.at<float>(1,0) = 0; | ||
Line 29: | Line 29: | ||
// Decompose the projection matrix into: | // Decompose the projection matrix into: | ||
− | cv::Mat K(3,3, | + | cv::Mat K(3,3,cv::DataType<float>::type); // intrinsic parameter matrix |
− | cv::Mat R(3,3, | + | cv::Mat R(3,3,cv::DataType<float>::type); // rotation matrix |
− | cv::Mat T(4,1, | + | cv::Mat T(4,1,cv::DataType<float>::type); // translation vector |
− | + | ||
cv::decomposeProjectionMatrix(P, K, R, T); | cv::decomposeProjectionMatrix(P, K, R, T); | ||
std::cout << "K: " << K << std::endl; | std::cout << "K: " << K << std::endl; | ||
std::cout << "R: " << R << std::endl; | std::cout << "R: " << R << std::endl; | ||
std::cout << "T: " << T << std::endl; | std::cout << "T: " << T << std::endl; | ||
− | + | ||
return 0; | return 0; | ||
} | } |
Latest revision as of 09:29, 2 August 2011
DecomposeProjectionMatrix.cxx
#include <cv.h> #include <highgui.h> #include <iostream> int main(int argc, char*argv[]) { // Create a synthetic projection matrix cv::Mat P(3,4,cv::DataType<float>::type); P.at<float>(0,0) = 1; P.at<float>(1,0) = 0; P.at<float>(2,0) = 0; P.at<float>(0,1) = 0; P.at<float>(1,1) = 1; P.at<float>(2,1) = 0; P.at<float>(0,2) = 5; P.at<float>(1,2) = 4; P.at<float>(2,2) = 1; P.at<float>(0,3) = 1; P.at<float>(1,3) = 2; P.at<float>(2,3) = 3; std::cout << "P: " << P << std::endl; // Decompose the projection matrix into: cv::Mat K(3,3,cv::DataType<float>::type); // intrinsic parameter matrix cv::Mat R(3,3,cv::DataType<float>::type); // rotation matrix cv::Mat T(4,1,cv::DataType<float>::type); // translation vector cv::decomposeProjectionMatrix(P, K, R, T); std::cout << "K: " << K << std::endl; std::cout << "R: " << R << std::endl; std::cout << "T: " << T << std::endl; return 0; }
CMakeLists.txt
cmake_minimum_required(VERSION 2.6) PROJECT(DecomposeProjectionMatrix) FIND_PACKAGE( OpenCV REQUIRED ) INCLUDE_DIRECTORIES( ${OPENCV_INCLUDE_DIR} ) ADD_EXECUTABLE(DecomposeProjectionMatrix DecomposeProjectionMatrix.cxx) TARGET_LINK_LIBRARIES(DecomposeProjectionMatrix ${OpenCV_LIBS})