《学习opencv》笔记——矩阵和图像操作——cvSetIdentity,cvSolve,cvSplit,cvSub,cvSubS and cvSubRS
2016-01-23 13:09
447 查看
矩阵和图像的操作
(1)cvSetIdentity函数
其结构
实例代码
输出结果
(2)cvSolve函数
其结构
实例代码
输出结果
(3)cvSplit函数
其结构
实例代码
输出结果
(4)cvSub函数
其结构
实例代码
输出结果
(5)cvSubS函数
其结构
实例代码
输出结果
(6)cvSubRS函数
其结构
实例代码
输出结果
to be continued
(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
相关文章推荐
- GoDaddy开通简体中文网站
- Linux个性化命令行登陆提示文字
- linux ntp 安装配置
- linux mysql安装
- openstack运维实战系列(十)之nova指定compute节点和IP地址
- Topological Sorting
- hadoop机架感知
- Linux和Windows服务器
- Spark简述及基本架构
- UNIX 家族及Linux
- 商务统邀请框openZoosUrl还可以这么玩
- bash shell (一)
- Noi_linux Gedit
- 【说解】在shell中通过mkfifo创建命名管道来控制多个进程并发执行
- 试读—Windows PowerShell实战指南(第2版)
- Centos修炼----->Centos7之安装Python3.5
- linux安装vsftpd
- OpenWRT添加物理按键(procd,ar71xx)
- SpringMVC+Mybatis框架整合源码SSM Nginx,Hudson
- SDL2源码分析6:拷贝到渲染器(SDL_RenderCopy())