您的位置:首页 > 编程语言 > C语言/C++

openCV,C++接口,cv::Mat矩阵数据元素读取

2015-01-29 15:49 483 查看
参见:/article/7723419.html

简单地处理 cv::Mat,直接如下进行即可:

cv::Mat tmat(4, 4, CV_32FC1);
tmat.at<float>(0,0) = 1;
cout<<tmat.at<float>(0,0)<<endl;

示例,使用openCV求矩阵的特征值与特征向量:

#include "cv.h"

#include "highgui.h"

#include <iostream>

using namespace std;

int main(int argc, char** argv) {

float mat[4][4];

for(int i=0; i<4; i++) {

for(int j=0; j<4; j++) {

mat[i][j] = (float)rand() / RAND_MAX;

}

}

cv::Mat cvmat(4,4,CV_32FC1);

for(int i=0; i<cvmat.rows; i++) {

for(int j=0; j<cvmat.cols; j++) {

cvmat.at<float>(i,j) = mat[i][j];

}

}

for(int i=0; i<cvmat.rows; i++) {

for(int j=0; j<cvmat.cols; j++) {

float tmpNum = cvmat.at<float>(i,j);

cout<<tmpNum<<" ";

} cout<<endl;

}

cv::Mat eigenvalues;

cv::Mat eigenvectors;

cv::eigen(cvmat, eigenvalues, eigenvectors);

cout<<endl;

for(int i=0; i<eigenvalues.rows; i++) {

for(int j=0; j<eigenvalues.cols; j++) {

cout<<eigenvalues.at<float>(i,j)<<endl;

}

}

cout<<endl;

for(int i=0; i<eigenvectors.rows; i++) {

for(int j=0; j<eigenvectors.cols; j++) {

cout<<eigenvectors.at<float>(i,j)<<" ";

} cout<<endl;

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: