《学习opencv》笔记——矩阵和图像操作——cvSetIdentity,cvSolve,cvSplit,cvSub,cvSubS and cvSubRS
来源:互联网 发布:尽人事知天命 编辑:程序博客网 时间:2024/05/23 15:28
矩阵和图像的操作
(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;}
1 0
- 《学习opencv》笔记——矩阵和图像操作——cvSetIdentity,cvSolve,cvSplit,cvSub,cvSubS and cvSubRS
- 《学习opencv》笔记——矩阵和图像操作——cvSetIdentity,cvSolve,cvSplit,cvSub,cvSubS and cvSubRS
- 《学习opencv》笔记——矩阵和图像操作——cvAbs,cvAbsDiff and cvAbsDiffS
- 《学习opencv》笔记——矩阵和图像操作——cvAdd、cvAddS and cvAddWeighted
- 《学习opencv》笔记——矩阵和图像操作——cvAnd、cvAndS、cvAvg and cvAvgSdv
- 《学习opencv》笔记——矩阵和图像操作——cvCalcCovarMatrix,cvCmp and cvCmpS
- 《学习opencv》笔记——矩阵和图像操作——cvConvertScale,cvConvertScaleAbs,cvCopy and cvCountNonZero
- 《学习opencv》笔记——矩阵和图像操作——cvCrossProduct and cvCvtColor
- 《学习opencv》笔记——矩阵和图像操作——cvGEMM,cvGetCol,cvGetCols and cvGetDiag
- 《学习opencv》笔记——矩阵和图像操作——cvInRange,cvInRangeS,cvInvert and cvMahalonobis
- OpenCV学习笔记(四)—矩阵和图像操作
- 《学习opencv》笔记——矩阵和图像操作——cvDet,cvDit,cvDotProduct,cvEigenVV and cvFlip
- 《学习opencv》笔记——矩阵和图像操作——cvGertDims,cvGetDimSize,cvGetRow,cvGetRow,cvGetSize and cvGetSubRect
- 《学习opencv》笔记——矩阵和图像操作——cvMax,cvMaxS,cvMerge,cvMin and cvMinS
- 《学习opencv》笔记——矩阵和图像操作——cvMinManLoc,cvMul,cvNot,cvNorm and cvNormalize
- 《学习opencv》笔记——矩阵和图像操作——cvOr,cvOrS,cvrReduce,cvRepeat,cvScale,cvSet and cvSetZero
- 《学习opencv》笔记——矩阵和图像操作——cvSum,cvSVD,cvSVBkSb,cvTrace,cvTranspose,cvXor,cvXorS and cvZero
- 《学习opencv》笔记——矩阵和图像操作——cvSum,cvSVD,cvSVBkSb,cvTrace,cvTranspose,cvXor,cvXorS and...
- CocoaPods的安装使用和常见问题
- 01背包问题(回溯法实现,java)
- android遇到的问题
- Genymotion 报打不开VirtualBox问题
- HDU 1247 Hat’s Words 字典树
- 《学习opencv》笔记——矩阵和图像操作——cvSetIdentity,cvSolve,cvSplit,cvSub,cvSubS and cvSubRS
- Layout(差束约分系统)
- __Block和__Weak的区别
- ListView 滑动footerview不断拉长的解决方法
- POJ 3264 Balanced Lineup(线段树—求区间最大值与最小值差)
- 机房收费系统——操作手册
- VS2013 工具箱不显示ArcGIS控件 解决方法
- 第十四周第五天
- MyBatis魔法堂:ResultMap详解