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,瞬间有种蛋碎的赶脚.看着 ...
随机推荐
- 类似github的框架
github是程序员经常上的网站,但如果是在一家苦逼不能访问外网的公司,那不能把自己的代码托管在github上绝对是一件非常痛苦的事情.如果想要在公司内网也可以用github托管自己的代码,那就要自己 ...
- OpenCV坐标体系的初步认识
实验基础 本次实验通过一个简短的例子,主要来说明下面4个问题: 1. 坐标体系中的零点坐标为图片的左上角,X轴为图像矩形的上面那条水平线:Y轴为图像矩形左边的那条垂直线.该坐标体系在诸如结构体Mat, ...
- Apache目录结构(一)
一.Apache 目录结构 bin: 该目录用于存放apache常用的命令,比如httpd cig-bin:该目录存放linux下的常用命令 .sh conf:存放配置文件httpd.conf,在ht ...
- ListView Optimization
ListView仅仅缓存了可视范围内的View,随后的滚动都是对这些View进行数据更新 1.static inner class ViewHolder and setTag() 2.use conv ...
- C++中的::operator new, ::operator delete
一般在使用new 和 delete的时候,做了两件事情,一是空间的配置( new 是分配,delete是回收),而是调用对象的析构函数 但是也有办法将这两个过程分开 那就是显式的调用::operat ...
- application:didFinishLaunchingWithOptions:详解
iOS 程序启动时总会调用application:didFinishLaunchingWithOptions:,其中第二个参数launchOptions为NSDictionary类型的对象,里面存储有 ...
- 《Programming with Objective-C》的常规规定
1.每个类的类名在软件中必须唯一的(包括在框架.bounds中),类名有多个单词的时候就是用驼峰方法. Prefix Framework NS Foundation (OS X and iOS) an ...
- Python入门(三,初级)
一,函数调用 定义一个函数只给了函数一个名称,指定了函数里包含的参数,和代码块结构. 这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从Python提示符执行. 如下实例调用了pr ...
- Android重写getResources规避用户调整系统字体大小影响Android屏幕适配
Android屏幕适配一直是一个头疼的问题.除此之外还要考虑APP在实际应用场景中,用户千奇百怪的设置,最常见的用户设置行为就是设置手机的字体大小,比如把字体设置成超大或者超小,这对屏幕适配又带来额外 ...
- Rest文件下载
public void DownloadFile(string fileId) { //Stream fileStream = null; try { int fileID = Convert.ToI ...