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;
}
简单地处理 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;
}
相关文章推荐
- Opencv(C++)和matlab之间通过mat传递数据(矩阵)
- OpenCV学习笔记 cv.Mat 与 .txt 文件数据的读写操作
- opencv2.x新数据结构cv::Mat访问元素的方法
- OpenCV几种访问cv::Mat数据的方法
- OpenCV学习笔记 cv.Mat 与 .txt 文件数据的读写操作
- 【OpenCV3】cv::Mat中的数据按行列写入txt文件中
- OPENCV C++接口的复制roi数据。
- 使用C++将OpenCV中Mat的数据写入二进制文件,用Matlab读出
- opencv error assertion failed,imread读到的总是空数据,Microsoft C++ 异常: 内存位置 0x0043f888 处的 cv::Exception。
- 使用C++将OpenCV中Mat的数据写入二进制文件,用Matlab读出
- Ubuntu 14.04 Qt5 使用 GDB-ImageWatch 插件断点查看 opencv cv::Mat 矩阵
- OpenCV - 计算矩阵(cv::Mat)的特征值和特征向量
- OpenCV(C++接口)学习笔记4-Mat::operator = 的陷阱
- opencv中C接口与C++接口的相互转换(Mat 和 CvMat,IplImage相互转化)
- OpenCV c++ assertion failed <i < 0> in cv::_InputArray::getMat 错误的原因
- opencv2.0以后新增C++接口的 Mat矩阵 单行赋值及矩阵合并的问题与实现(苦心研究多天才解决!)
- OpenCV - 计算矩阵(cv::Mat)的特征值和特征向量
- 使用C++将OpenCV中Mat的数据写入二进制文件,用Matlab读出
- OpenCV学习C++接口 Mat像素遍历详解
- C++读写txt文件方式以及基于opencv的Mat数据类型读写txt文件类型