opencv矩阵总结
存取矩阵元素
矩阵/向量操作
访问CvMat数据块(矩阵维度与通道) 通过opencv的函数来访问矩阵的数据
cvGet*D,cvSet*D
cvGetReal1D, cvGetReal2D, cvGetReal3D, cvGetRealND
cvGet1D, cvGet2D, cvGet3D, cvGetND
cvSet*D,也有相应的函数系列
这些函数的缺点是,效率低
Real表示对单通道矩阵的访问,没有Real的表示对多通道矩阵的访问
从数据创建矩阵
//数据
float data[18] =
{
30,60,40,60, 50,40,
67,88,55,33, 22,97,
59,69,32,46, 25,45
};
(1)单通道,可以想象有这样一个矩阵
(2)双通道(理解为一个元素包含两个数字)
可以理解为这样一个矩阵
二通道矩阵可以理解为拆分为两个单通道的矩阵
(3)三通道
维 体现为它的坐标
代码:
#include "stdafx.h"
#include "cv.h"
#include "highgui.h"
#include "cxcore.h"
//#include "cxtypes.h"
int main(int argc, char* argv[])
{
//数据
float data[18] =
{
30,60,40,60, 50,40,
67,88,55,33, 22,97,
59,69,32,46, 25,45
};
CvMat mat;
//三行六列单通道
//cvInitMatHeader(&mat,3,6,CV_32FC1,data);
//三行三列双通道
//cvInitMatHeader(&mat,3,3,CV_32FC2,data);
//三行二列三通道
cvInitMatHeader(&mat,3,2,CV_32FC3,data);
for (int y=0;y<mat.rows;y++)
{
for (int x=0;x<mat.cols;x++)
{
//取矩阵里面的行列
//float value = cvGetReal2D(&mat,y,x);
CvScalar value = cvGet2D(&mat,y,x);
//CvScalar value = cvGetReal3D(&mat,z,y,x);
printf( "(%f %f %f) " ,value.val[0],value.val[1],value.val[2]);
}
printf( "\n" );
}
return 0;
}
|
opencv矩阵总结的更多相关文章
- opencv 矩阵操作
OpenCv矩阵操作 有很多函数有mask,代表掩码,如果某位mask是0,那么对应的src的那一位就不计算,mask要和矩阵/ROI/的大小相等 大多数函数支持ROI,如果图像ROI被设置,那么只处 ...
- opencv矩阵操作
1.初始化矩阵: 方式一.逐点赋值式: CvMat* mat = cvCreateMat( 2, 2, CV_64FC1 ); cvZero( mat ); cvmSet( mat, 0, 0, 1 ...
- opencv 矩阵的相似性对比 (图片之间比较)
测试图片: code: #include <opencv\cv.h> #include <opencv\highgui.h> #include <opencv\c ...
- OpenCV —— 矩阵和图像操作
cvAbs , cvAbsDiff , cvAbsDiffS cvAdd , cvAddS , cvAddWeighted(可添加权重) #include <cv.h> #include ...
- OpenCV —— 矩阵操作
多通道的矩阵 —— 通道是连续的!! 要将指向该数据类型的指针移动到下一通道,我们只需要将其增加1.如果想访问下一个“像素”或者元素集,则需要一定的偏移量 矩阵的step元素是矩阵中行的长度,单位为字 ...
- openCV 矩阵(图像)操作函数
有很多函数有mask,代表掩码,如果某位mask是0,那么对应的src的那一位就不计算,mask要和矩阵/ROI/的大小相等.大多数函数支持ROI,如果图像ROI被设置,那么只处理ROI部分 少部分函 ...
- opencv 矩阵类数据的运算
参考:http://blog.sina.com.cn/s/blog_7908e1290101i97z.htmlhttp://blog.sina.com.cn/s/blog_afe2af380101bq ...
- Opencv中Mat矩阵相乘——点乘、dot、mul运算详解
Opencv中Mat矩阵相乘——点乘.dot.mul运算详解 2016年09月02日 00:00:36 -牧野- 阅读数:59593 标签: Opencv矩阵相乘点乘dotmul 更多 个人分类: O ...
- 《学习opencv》笔记——基本数据结构,CvMat,矩阵訪问
老板让让做一个东东.输入端要用到opencv顺便就来学习一下.买了本书<学习opencv>翻来一看,opencv1.0,去官网上一看.opencv2.49,瞬间有种蛋碎的赶脚.看着 ...
随机推荐
- iOS多语言备选机制
近期伊书突然接到一些外国用户的投诉,说伊书界面变成了中文,但他们系统语言不是中文,是法文俄文日文等,伊书只支持中文跟英文,在不支持系统所用语言的时候,理应会自动选用英文,不知为什么会选成了中文,经过艰 ...
- 笔记本安装Win2012R2 心得(包含无线网卡+有线网卡驱动解决方法)
笔记本:联想昭阳E47G 无线网卡安装方法: 系统安装完毕后将自动识别无线网卡驱动,但需要手动允许WLAN服务开启.(建议,如果是拿来办公或者家用,可以安装上桌面体验)不然,QQ发的截图双击都看不起. ...
- 高效的iOS宏定义
iOS开发过程中使用一些常用的宏可以提高开发效率,提高代码的重用性:将这些宏放到一个头文件里然后再放到工程中的-Prefix.pch文件中(或者直接放到-Prefix.pch中)直接可以使用,灰常方便 ...
- Python学习路程day6
shelve 模块 shelve模块是一个简单的k,v将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式 import shelve d = shelve.open ...
- eclipse安卓模拟器窗口大小调整
引自百度经验的链接: http://jingyan.baidu.com/article/3aed632e18c7e97011809161.html
- loadrunner录制时弹出invalid application path!please check if application exists对话框
问题:oadrunner录制时弹出invalid application path!please check if application exists对话框 原因:IE浏览器地址不对,需要手动重新选 ...
- php大力力 [027节] 被百度收录较好的几个视频网站示例
php大力力 [027节] 被百度收录较好的几个视频网站示例 56网 很清晰 :2014 兄弟连高洛峰 PHP教程14.1.7 在PHP脚本中操作MySQL数据库4_视频在线观看 - 56.com 土 ...
- BZOJ 1951 古代猪文
快速幂+枚举质因数+欧拉定理+lucas定理+CRT. 注意两点: 1.if (n<m) C(n,m)=0. 2.这里0^0时应该return 0. #include<iostream&g ...
- IAP 程序内购
最近用到IAP内置购买,阅读官方文档,在网上找了些资料,在这里作下整理,以便日后查找和修改,主要流程方向确定,文档和相关转载内容截图不一一指出,google一堆. 1.查找官方文档,两张目录截图,对主 ...
- Windows桌面快捷方式图标全部变成同一个图标的解决方法
今天来个客人,说是电脑的所有程序打开都变成 Adobe Reader 了,打开看了下,刚开始是以为EXE文件关联被修改了,用注册表修复工具弄了下,重启电脑,还是老样子.仔细看了下,原来只是快捷方式变成 ...