OpenCV访问Mat对象中数据时发生异常---Mat中的数据访问
来源:互联网 发布:mac搜索不到蓝牙音箱 编辑:程序博客网 时间:2024/06/07 07:24
至于OpenCV中Mat中的数据如何访问,详见http://blog.csdn.net/yang_xian521/article/details/7161335,这里有普通青年、文艺青年、暴力青年的说法。
常见问题,上代码:
// newLDA.cpp : 定义控制台应用程序的入口点。///*#include "stdafx.h"#include <cxcore.hpp>#include <vector>#include <iostream>#include "lda.h"using namespace std;using namespace cv;int main(void){double data[6][2]={{0,1},{0,2},{1,4},{8,0},{8,2},{9,4}};Mat dmat=Mat(6,2,CV_64FC1,data);int labels[6]={0, 0, 0, 1, 1, 1};Mat lmat=Mat(1,6,CV_32SC1,labels);//---------------------------------------------------------------for(int i=0;i<dmat.rows;i++){for(int j=0;j<dmat.cols;j++){cout<<dmat.ptr<double>(i)[j]<<" ";}cout<<endl;}cout<<"--------------------------------"<<endl;Mat envalue;Mat envector;int classNum=2;MyLDA(dmat, lmat); system("pause");return 0;}*/#include "stdafx.h"#include <cxcore.hpp>#include <iostream>using namespace std;using namespace cv;int main(void){double data[2][2]={{1.0,2.0},{3.0,4.0}};Mat dmat=Mat(2,2,CV_64FC1,data);for(int i=0;i<dmat.rows;i++){for(int j=0;j<dmat.cols;j++){cout<<dmat.at<float>(i,j)<<" ";}cout<<endl;}system("pause");return 0;}
将
cout<<dmat.at<float>(i,j)<<" ";改为
cout<<dmat.at<double>(i,j)<<" ";
可见当矩阵类型为CV_64FC1时,Mat::at()会执行类型检查。
但是
#include "stdafx.h"#include <cxcore.hpp>#include <iostream>using namespace std;using namespace cv;int main(void){float data[2][2]={{1.0,2.0},{3.0,4.0}};Mat dmat=Mat(2,2,CV_32FC1,data);for(int i=0;i<dmat.rows;i++){for(int j=0;j<dmat.cols;j++){cout<<dmat.at<int>(i,j)<<" ";}cout<<endl;}system("pause");return 0;}
可见此时只是读取的结果不正确,但是并没有发生异常
把
cout<<dmat.at<int>(i,j)<<" ";改为
cout<<dmat.at<double>(i,j)<<" ";发生异常
故当矩阵为其他类型时(不是CV_64FC1),只要读取时使用的类型小于原数据的存储类型,就不会发生异常。
读取时的类型匹配至关重要。
0 0
- OpenCV访问Mat对象中数据时发生异常---Mat中的数据访问
- 访问opencv的Mat中的图像数据
- Opencv中Mat数据访问方式效率对比分析
- opencv中Mat格式的数据点访问at
- cv::Mat 访问数据错误
- opencv-从图像旋转学习Mat数据访问
- opencv Mat数据的三种标准访问方式
- opencv Mat数据的三种标准访问方式
- 【opencv】访问mat元素
- opencv-访问Mat
- 如何访问opencv中cv::Mat
- TXT数据转OpenCV中的Mat数据
- 【opencv】Mat 数据操作
- opencv MAT数据操作
- openCV中的Mat、IplImage数据的转换
- opencv存储MAT矩阵中的数据
- Opencv中的Mat类型常用函数数据
- 访问cv::Mat中的数据时遇到的指针类型问题
- LR的两种推导方式
- centos 6.5安装的UEFI-GPT回退为MBR引导
- 日积月累:LinearLayout的andrid:layout_weight属性的使用详解
- Tomcat+DLink路由器+花生壳搭建外网访问内网工程
- Redis新的存储模式diskstore
- OpenCV访问Mat对象中数据时发生异常---Mat中的数据访问
- Erlang进程堆垃圾回收机制
- 有效处理Java异常三原则
- Java类型转换成Json字符串的工具类小记
- plupload 上传组件
- Hibernate连接池配置
- flash的dragonbone插件导入cocos2d的注意事项
- POJ 3045-Cow Acrobats
- 栈的链式表示与实现(C++版)