一、矩阵
;
;
;
1.加法
//等同add(I1,I2,I);
;
//dst=scale*I1+I2;
2.减法
//I=|I1-I2|;
;
;
3.乘法
//点乘,I.mul(I,3);-->I=3*I.^2
//==divide(A,B,C,5);
;矩阵相乘
;
//三维向量(或矩阵)的叉乘,A.cross(B)
//2个向量(或矩阵)的点乘的结果,A.dot(B)
multiply
//如果p是整数dst(I)=src(I)^p;其他|src(I)|^p
4.除法
//dst=saturate_cast(I1*scale/I2);
;都是点除
5.转换
//类型转换
//转置
//flipCode=0是上下翻转,>0时左右翻转,<0时一起来
;
;
:对图像进行形变
--
6.其他
;各通道求和
Scalar
)
//各通道求平均
//复制第2行
//dst=saturate(alpha*I1+beta*I2+gamma);dtype是dst的深度
--
7.运算符
)
//dst=exp(I);计算每个数组元素的指数
//如果Iij!=0;则dstij=log(|Iij|)
;
)转置
//A.inv();A.inv()*B;
//用法同上
//求绝对值
255
^
//inverts所有的队列
,
A的类型一样
//行列式
//
//得到特征值向量dst和对应特征值的特征向量
;
//minLoc是2D时距原点最小的点(未考证)
--
8.初始化
//用一块地方初始化。
//所有行,1~3列
//完全复制
//传递矩阵头
//I=[0,0,255,0,0,255;0,0,255,0,0,255];
//对角矩阵
//全一矩阵
//全零矩阵
//如果是简单矩阵的初始化
;都只是创建个头
1....
)
s初始化矩阵
Mat的最后一行后再加几行
//移出最下面几行
-
9.矩阵读取和修改
1个通道:
)
)
;
3个通道:
//他没有4个通道寸,只有3个通道!
)
)
{
;
;
;
}
;
--
.
-
;
)
;
)
;
}
-
)其他机制
//把第一行清零
//可以确保内容为0~255的整数
;返回一共的元素数量
6
2
_16SC3之类
CV_16S
)返回通道数
step
),都是先宽再高的
NULL
i行
)
.
;
//用随机数填充
;
;
//可以统计每行或每列的最大、最小、平均值、和
//把对角线替换为value
//效果等同:Mat A=Mat::eye(4,3,CV_32F)*5;
--
10.较复杂运算
//I1至少是浮点型,I2同I1,flags用来转置
//gemm(I1,I2,alpha,I3,beta,dst,GEMM_1_T,GEMM_3_T);-->dst=alpha*I1.t()*I2+beta*I3.t();可用此完全代替此函数
;
//I是1通道的,和gemm不同,他可用于任何类型。
//如果aTa=flase时,dst=scale*(I-delta).t()*(I-delta);
//如果是true,dst=scale*(I-delta)(I-delta).t();
;
//转到极坐标
COM_NE
)
;
//DCT变换,1维、2维的矩阵;flags=DCT_INVERSE,DCT_ROWS
idft
//dst是CV_8UC1,在2者之间就是255
;
//把多个Mat组合成一个和split相反
norm可以计算出最长向量、向量距离和、向量距离和的算术平方根
n次方程
sortIdx
;对某个通道进行各种传递
-
11.未懂的函数
LUT
//I1,I2都是1维向量,dst=sqrt(x(I)^2+y(I)^2);
,
;傅里叶
//归一化
transpose
二、其他数据结构
;
;
//不断入
//一次定义20个
三、常用方法
mask了
四、以后可能用到的函数
repeat