OpenCV/Basics/PseudoInverse
From ProgrammingExamples
PseudoInverse.cxx
#include "cv.h" #include <iostream> int main() { cv::Mat A(3,4,CV_32FC1); for(unsigned int i = 0; i < 3; i++) { for(unsigned int j = 0; j < 3; j++) { A.at<float>(i,j) = 2; } } cv::Mat inverted(4,3,CV_32FC1); invert(A, inverted, cv::DECOMP_SVD); std::cout << "A: " << A << std::endl; std::cout << "inverted: " << inverted << std::endl; return 0; }
CMakeLists.txt
cmake_minimum_required(VERSION 2.6) PROJECT(PseudoInverse) FIND_PACKAGE(OpenCV REQUIRED ) INCLUDE_DIRECTORIES( ${OPENCV_INCLUDE_DIR} ) ADD_EXECUTABLE(PseudoInverse PseudoInverse.cxx) TARGET_LINK_LIBRARIES(PseudoInverse opencv_core opencv_highgui opencv_flann opencv_imgproc opencv_highgui opencv_ml opencv_video opencv_objdetect opencv_features2d opencv_calib3d opencv_legacy opencv_contrib )