《学习opencv》笔记——矩阵和图像操作——cvSetIdentity,cvSolve,cvSplit,cvSub,cvSubS and cvSubRS
矩阵和图像的操作
(1)cvSetIdentity函数
其结构
void cvSetIdentity(//将矩阵行与列相等的元素置为1。其余元素置为0
CvArr* arr//目标矩阵
);
实例代码
#include <cv.h>
#include <highgui.h>
#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{ double a[3][3] =
{
{1,2,3},
{4,5,6},
{7,8,9}
}; CvMat va = cvMat(3,3, CV_64FC1,a); cout<<"目标矩阵:"<<endl; for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
printf("%f\t",cvmGet(&va,i,j));
cout << endl;
} cvSetIdentity(&va); cout<<"结果矩阵:"<<endl; for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
printf("%f\t",cvmGet(&va,i,j));
cout << endl;
} getchar();
return 0; }
输出结果
(2)cvSolve函数
其结构
int cvSolve(//求解线性方程组解 src*dst = src2
const CvArr* src1,//系数矩阵
const CvArr* src2,//常数矩阵
CvArr* dst,//解矩阵
int method = CV_LU//用法
);
实例代码
#include <cv.h>
#include <highgui.h>
#include <stdio.h>
#include <iostream>
using namespace std; int main()
{
cout<< "计算A*X = B中的解X:" <<endl;
double a[3][3] =
{
{1,0,0},
{0,2,0},
{0,0,2}
}; CvMat va = cvMat(3,3,CV_64FC1,a); cout<<"A矩阵:"<<endl; for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
printf("%f\t",cvmGet(&va,i,j));
cout << endl;
} double b[3]={1,2,2}; CvMat vb = cvMat(3,1,CV_64FC1,b); cout<<"B矩阵:"<<endl; for(int i=0;i<3;i++)
{
printf("%f\t",cvmGet(&vb,i,0));
cout << endl;
} double c[3]={0,0,0}; CvMat vc = cvMat(3,1,CV_64FC1,c); cvSolve(&va,&vb,&vc); cout<<"解为:"<<endl; for(int i=0;i<3;i++)
{
printf("%f\t",cvmGet(&vc,i,0));
cout << endl;
} getchar();
return 0;
}
输出结果
(3)cvSplit函数
其结构
void cvSplit(//分解多通道图像为各个单通道
const CvArr* src,//目标图像
CvArr* dst0,//单通道图像1
CvArr* dst1,//单通道图像2
CvArr* dst2,//单通道图像3
CvArr* dst3//单通道图像4
);
实例代码
#include <cv.h>
#include <highgui.h>
#include <stdio.h> int main()
{
IplImage *src1,*dst1,*dst2,*dst3,*dst4;
src1=cvLoadImage("3.jpg",1);
dst1 = cvCreateImage(cvSize(src1->width, src1->height), IPL_DEPTH_8U, 1);
dst2 = cvCreateImage(cvSize(src1->width, src1->height), IPL_DEPTH_8U, 1);
dst3 = cvCreateImage(cvSize(src1->width, src1->height), IPL_DEPTH_8U, 1); cvSplit(src1, dst1, dst2, dst3, 0); cvShowImage("1",src1);
cvShowImage("2",dst1);
cvShowImage("3",dst2);
cvShowImage("4",dst3); cvWaitKey();
return 0;
}
输出结果
(4)cvSub函数
其结构
void cvSub(//两个矩阵做减法
const CvArr* src1,//被减矩阵
const CvArr* src2,//减矩阵
CvArr* dst,//结果矩阵
const CvArr* mask = NULL//矩阵开关
);
实例代码
#include <cv.h>
#include <highgui.h>
#include <stdio.h> int main()
{
IplImage *src1,*src2,*src3; src1 = cvLoadImage("3.jpg");
src2 = cvLoadImage("1.jpg");
src3 = cvLoadImage("7.jpg"); cvSub(src1,src2,src3); cvShowImage("1",src1);
cvShowImage("2",src2);
cvShowImage("3",src3); cvWaitKey();
return 0;
}
输出结果
(5)cvSubS函数
其结构
void cvSubS(//矩阵和值做减法
const CvArr* src,//被减矩阵
CvScalar value,//减数值
CvArr* dst,//结果矩阵
const CvArr* mask = NULL//矩阵“开关”
);
实例代码
#include <cv.h>
#include <highgui.h>
#include <stdio.h> int main()
{
IplImage *src1, *src2;
src1 = cvLoadImage("1.jpg");
src2 = cvLoadImage("7.jpg"); CvScalar cs;
cs.val[0] = 0;
cs.val[1] = 255;
cs.val[2] = 0;
cs.val[3] = 0; cvSubS(src1,cs,src2); cvShowImage( "測试1", src1);
cvShowImage( "測试2", src2);
cvWaitKey();
return 0;
}
输出结果
(6)cvSubRS函数
其结构
void cvSubRS(//给定值减去矩阵
const CvArr* src,//减矩阵
CvScalar value,//被减数值
CvArr* dst,//结果矩阵
const CvArr* mask = NULL//矩阵“开关”
);
实例代码
#include <cv.h>
#include <highgui.h>
#include <stdio.h> int main()
{
IplImage *src1, *src2;
src1 = cvLoadImage("1.jpg");
src2 = cvLoadImage("7.jpg"); CvScalar cs;
cs.val[0] = 0;
cs.val[1] = 255;
cs.val[2] = 0;
cs.val[3] = 0; cvSubRS(src1,cs,src2); cvShowImage( "測试1", src1);
cvShowImage( "測试2", src2);
cvWaitKey();
return 0;
}
输出结果
to be continued
《学习opencv》笔记——矩阵和图像操作——cvSetIdentity,cvSolve,cvSplit,cvSub,cvSubS and cvSubRS的更多相关文章
- 《学习opencv》笔记——矩阵和图像操作——cvCalcCovarMatrix,cvCmp and cvCmpS
矩阵和图像的操作 (1)cvCalcCovarMatrix函数 其结构 void cvCalcCovarMatrix(计算给定点的均值和协方差矩阵 const CvArr** vects,//给定向量 ...
- 《学习opencv》笔记——矩阵和图像操作——cvAnd、cvAndS、cvAvg and cvAvgSdv
矩阵和图像的操作 (1)cvAnd函数 其结构 void cvAnd( //将src1和src2按像素点取"位与运算" const CvArr* src1,//第一个矩阵 cons ...
- 《学习opencv》笔记——矩阵和图像操作——cvAbs,cvAbsDiff and cvAbsDiffS
矩阵和图像的操作 (1)cvAbs,cvAbsdiff,cvAbsDiffS 它们的结构为: void cvAbs( //取src中元素的绝对值,写到dst中 const CvArr* src, co ...
- 《学习opencv》笔记——矩阵和图像操作——cvInRange,cvInRangeS,cvInvert and cvMahalonobis
矩阵和图像的操作 (1)cvInRange函数 其结构 void cvInRange(//提取图像中在阈值中间的部分 const CvArr* src,//目标图像 const CvArr* lowe ...
- 《学习opencv》笔记——矩阵和图像操作——cvCrossProduct and cvCvtColor
矩阵和图像的操作 (1)cvCrossProduct函数 其结构 void cvCrossProdust(//计算两个三维向量的叉积 const CvArr* src1, const CvArr* s ...
- 《学习opencv》笔记——矩阵和图像操作——cvConvertScale,cvConvertScaleAbs,cvCopy and cvCountNonZero
矩阵和图像的操作 (1)cvConvertScale函数 其结构: void cvConvertScale( //进行线性变换,将src乘scale加上shift保存到dst const CvArr* ...
- opencv笔记2:图像ROI
time:2015年 10月 03日 星期六 12:03:45 CST # opencv笔记2:图像ROI ROI ROI意思是Region Of Interests,感兴趣区域,是一个图中的一个子区 ...
- OpenCV —— 矩阵和图像操作
cvAbs , cvAbsDiff , cvAbsDiffS cvAdd , cvAddS , cvAddWeighted(可添加权重) #include <cv.h> #include ...
- OpenCV利用矩阵实现图像旋转
利用OpenCV的矩阵操作实现图像的逆时针旋转90度操作 代码 Mat src = imread("C:\\Users\\fenggl\\Desktop\\测试.jpg",MREA ...
随机推荐
- 模拟Hibernate框架的小demo
该程序为尚学堂马士兵老师讲解,模拟了hibernate的原理,主要应用了字符串拼接,反射知识. step1,新建数据库 use jd; create table _student( _id int(1 ...
- TCP/IP之TCP交互数据流、成块数据流
建立在TCP协议上的网络协议有telnet,ssh,ftp,http等等.这些协议根据数据吞吐量来分成两大类: (1)交互数据类型,例如telnet,ssh,这种类型的协议在大多数情况下只是做小流量的 ...
- dhtmlx之dhtmlXGrid显示数据 --大数据
引用 <link href="../../dhtmlXGridScripts/dhtmlxgrid.css" rel="stylesheet" type= ...
- javascript学习(10)——[知识储备]链式调用
上次我们简单的说了下单例的用法,这个也是在我们java中比较常见的设计模式. 今天简单说下链式调用,可能有很多人并没有听过链式调用,但是其实只要我简单的说下的话,你肯定基本上都在用,大家熟知的jQue ...
- ARM流水线(pipeline)
- 安装 unixbench 报错解决方法
一.准备工作 1.首先使用root用户登陆. 2.运行Unixbeanch需要GCC的支持,在安装Unixbeanch之前,需要先安装GCC,在Debian中,直接执行如下命令: 复制代码 代码如下: ...
- 关于C++的子类指针指向父类
基类指针引用派生类对象 用基类指针引用一个派生类对象,由于派生类对象也是基类的对象,所以这种引用是安全的; 但是只能引用基类成员. 若试图通过基类指针引用那些只在派生类中才有的成员,编译器会报告语法错 ...
- 简单字符串处理 hdu2532 Engine
本来可以把这篇文章放入上一篇文章里,不过做这个题花了一点时间,也有一点收获,同时觉得网上的这个题目可供参考的文章有些少,那么就单独成篇吧. 首先分析下题目思路: 这个题目是个模拟题,步骤也很清晰. 首 ...
- BZOJ 1578: [Usaco2009 Feb]Stock Market 股票市场( 背包dp )
我们假设每天买完第二天就卖掉( 不卖出也可以看作是卖出后再买入 ), 这样就是变成了一个完全背包问题了, 股票价格为体积, 第二天的股票价格 - 今天股票价格为价值.... 然后就一天一天dp... ...
- WCF技术剖析之二十五: 元数据(Metadata)架构体系全景展现[元数据描述篇]
原文:WCF技术剖析之二十五: 元数据(Metadata)架构体系全景展现[元数据描述篇] 在[WS标准篇]中我花了很大的篇幅介绍了WS-MEX以及与它相关的WS规范:WS-Policy.WS-Tra ...