Opencv代码小结之Mat三维创建和Mat逐点逐行赋值
来源:互联网 发布:河北大学网络教育招生 编辑:程序博客网 时间:2024/06/07 04:54
在用opencv做三维重构时,新学习了Mat矩阵,对于Mat的创建赋值有了一定了解,代码简单小结如下:
1、创建零/一矩阵
Mat mzeros = Mat::zeros(1, ix.rows, CV_32F);Mat mones = Mat::ones(1, ix.rows, CV_32F);
2、创建空矩阵
其中:Mat_<uchr> = CV_8U ,Mat_<char>=CV_8S , Mat_<int> = CV_32S ,Mat_<float> =CV_32F ,Mat_<double> = CV_64F
Mat ix,iy;
<span style="white-space:pre"></span>ix.create(300, 9, CV_32F);iy.create(300, 9, CV_32F);
<span style="white-space:pre"></span>Mat tempModel(rows ,cols<span style="font-family: Arial, Helvetica, sans-serif;">, CV_32F);</span>
3、创建三维矩阵
int sz[] = { 3, 4, T };Mat rt = Mat(3, sz, CV_32F, Scalar::all(0));
4、Mat访问指定元素
<span style="white-space:pre"></span>ix.at<float>(n, k);
5、深拷贝
<span style="white-space:pre"></span>out_ix = ix.col(1).clone();//拷贝第一列,其中out_ix.cols = 1, out_ix.rows = ix.rows<span style="white-space:pre"></span>out_ix1 = ix.clone();<span style="white-space:pre"></span>ix.copyTo(out_ix2); //把ix的内容拷贝到out_ix2
<span style="white-space:pre"></span>B = A.t();
7、逐行拼接
其中:tempModel是最后需要组合的Mat
Mat tempModel(4, ix.rows, CV_32F);
<span style="white-space:pre"></span>Mat submat = tempModel.rowRange(0, 1);mix.copyTo(submat);submat = tempModel.rowRange(1, 2);miy.copyTo(submat);submat = tempModel.rowRange(2, 3);mzeros.copyTo(submat);submat = tempModel.rowRange(3, 4);mones.copyTo(submat);
存在的问题如下:
1、在进行逐行赋值时,运用代码如下:
//1按行 无语法错,但不知道逻辑对不对...
<span style="white-space:pre"></span>out_iy.row(n2) = iy.row(n).clone(); //不正确//2逐个
int k = ix.cols;
while (k--){//此方法赋值还是不正确!out还是零!out_ix.at<float>(n2, k) = ix.at<float>(n, k);}
因为以上代码是在一个大的while里面所有每次while输出一行copy的结果,用cout输出out_ix的值,但是out的值并没有变化!还用了5的按行拷贝方式,还是拷贝不成功!但是5在之前验证是成功了的!完全搞不清楚是什么意思!
折腾了一个多小时都没正确,干脆跳过这一段写下面的,结果在下面验证总体out_ix时,结果却是正确的!copy成功了!完全不知道为什么啊啊啊 !
这个问题先搁置在这里!找时间要把所有的原理深入学习一下~
0 0
- Opencv代码小结之Mat三维创建和Mat逐点逐行赋值
- OpenCV中Mat赋值
- Opencv之Mat矩阵赋值小记
- opencv之Mat 类赋值的理解
- OpenCV之创建Mat函数的方法
- opencv Mat创建注意事项
- opencv Mat创建图像
- opencv Mat之间赋值(复制)
- 2.opencv之mat
- OpenCV 之Mat::push_back()
- OpenCV之Mat
- opencv之Mat
- opencv之Mat类
- OpenCV数据结构之Mat
- OpenCV入门之:Mat
- OpenCV之Mat类
- OpenCV数据结构之Mat
- Opencv之Mat类
- Redis_conf配置文件说明
- c++ 常量指针 const*const
- GRE写作必备句型
- ios 开发之获取手机的外网IP和内网IP
- Swift入坑--@selector
- Opencv代码小结之Mat三维创建和Mat逐点逐行赋值
- git实践
- Android EventBus源码解析 带你深入理解EventBus
- Autolayout使用小结
- 一种Unity2D多分辨率屏幕适配方案
- arm交叉编译libidn
- js动态添加节点到兄弟节点
- OracleXENuiv,数据库创建用户,表空间,
- LintCode Majority Number 主元素