《学习opencv》笔记——矩阵和图像操作——cvAnd、cvAndS、cvAvg and cvAvgSdv
2014-05-28 15:22
483 查看
矩阵和图像的操作
(1)cvAnd函数
其结构
程序实例
输出结果
(2)cvAndS函数
其结构
实例程序
输出结果
(3)cvAvg函数
其结构
实例代码:我对上面那个机器猫的图像使用
输出结果
(4)cvAvgSdv函数
其结构
程序实例:依然用的机器猫图片
输出结果
to be continued
(1)cvAnd函数
其结构
void cvAnd( //将src1和src2按像素点取“位与运算” const CvArr* src1,//第一个矩阵 const CvArr* src2,//第二个矩阵 CvArr* dst,//结果矩阵 const CvArr* mask = NULL;//矩阵经行像素点与的“开关” );
程序实例
#include <cv.h> #include <highgui.h> #include <stdio.h> int main(int argc, char** argv) { IplImage *src1, *src2,*src3; src1=cvLoadImage("1.jpg"); src2=cvLoadImage("3.jpg"); src3=cvLoadImage("4.jpg"); cvAnd(src1,src2,src3); cvShowImage( "测试1", src1); cvShowImage( "测试2", src2); cvShowImage( "测试3", src3); cvWaitKey(); return 0; }
输出结果
(2)cvAndS函数
其结构
void cvAndS(//使src1与value进行 位与运算 const CvArr* src1,//第一个矩阵 CvScalar value,//运算标量 CvArr* dst,//结果矩阵 const CvArr* mask = NULL;//运算开关 );
实例程序
#include <cv.h> #include <highgui.h> #include <stdio.h> int main(int argc, char** argv) { IplImage *src1, *src2,*src3; src1=cvLoadImage("1.jpg"); src2=cvLoadImage("5.jpg"); CvScalar cs; cs.val[1] = 100.0; cs.val[2] = 100.0; cs.val[0] = 100.0; cs.val[3] = 100.0; cvAndS(src1,cs,src1); cvShowImage( "测试1", src1); cvShowImage( "测试2", src2); cvWaitKey(); return 0; }
输出结果
(3)cvAvg函数
其结构
CvScalar cvAvg(//求出src的平均像素值 const CvArr* src,//目标矩阵 const CvArr* mark = NULL//像素开关 );
实例代码:我对上面那个机器猫的图像使用
#include <cv.h> #include <highgui.h> #include <iostream> #include <stdio.h> using namespace std; int main(int argc, char** argv) { IplImage *src1; src1=cvLoadImage("1.jpg"); CvScalar cs; cs = cvAvg(src1); cout<<cs.val[0] << endl; cout<<cs.val[1] << endl; cout<<cs.val[2] << endl; cout<<cs.val[3] << endl; getchar(); return 0; }
输出结果
(4)cvAvgSdv函数
其结构
CvScalar cvAvg(//求像素平均值和标准差 const CvArr* arr,//目标矩阵 CvScalar* mean,//平均值 CvScalar* std_dev,//标准差 const CvArr* mark = NULL//像素开关 );
程序实例:依然用的机器猫图片
#include <cv.h> #include <highgui.h> #include <iostream> #include <stdio.h> using namespace std; int main(int argc, char** argv) { IplImage *src1; src1=cvLoadImage("1.jpg"); CvScalar cs,cs1; cvAvgSdv(src1,&cs,&cs1); cout<<"平均值:"<<endl; cout<<cs.val[0] << endl; cout<<cs.val[1] << endl; cout<<cs.val[2] << endl; cout<<cs.val[3] << endl; cout <<endl; cout <<"标准差"<<endl; cout<<cs1.val[0] << endl; cout<<cs1.val[1] << endl; cout<<cs1.val[2] << endl; cout<<cs1.val[3] << endl; getchar(); return 0; }
输出结果
to be continued
相关文章推荐
- 《学习opencv》笔记——矩阵和图像处理——cvAnd、cvAndS、cvAvg and cvAvgSdv
- 《学习opencv》笔记——矩阵和图像操作——cvConvertScale,cvConvertScaleAbs,cvCopy and cvCountNonZero
- 《学习opencv》笔记——矩阵和图像操作——cvInRange,cvInRangeS,cvInvert and cvMahalonobis
- [转]《学习opencv》笔记——矩阵和图像操作——cvOr,cvOrS,cvrReduce,cvRepeat,cvScale,cvSet and cvSetZero
- 《学习opencv》笔记——矩阵和图像操作——cvCrossProduct and cvCvtColor
- 《学习opencv》笔记——矩阵和图像操作——cvCalcCovarMatrix,cvCmp and cvCmpS
- 《学习opencv》笔记——矩阵和图像操作——cvMax,cvMaxS,cvMerge,cvMin and cvMinS
- 《学习opencv》笔记——矩阵和图像操作——cvGEMM,cvGetCol,cvGetCols and cvGetDiag
- 《学习opencv》笔记——矩阵和图像操作——cvSum,cvSVD,cvSVBkSb,cvTrace,cvTranspose,cvXor,cvXorS and cvZero
- 《学习opencv》笔记——矩阵和图像操作——cvMax,cvMaxS,cvMerge,cvMin and cvMinS
- 《学习opencv》笔记——矩阵和图像操作——cvSetIdentity,cvSolve,cvSplit,cvSub,cvSubS and cvSubRS
- 《学习opencv》笔记——矩阵和图像操作——cvAdd、cvAddS and cvAddWeighted
- 《学习opencv》笔记——矩阵和图像操作——cvGertDims,cvGetDimSize,cvGetRow,cvGetRow,cvGetSize and cvGetSubRect
- 《学习opencv》笔记——矩阵和图像操作——cvOr,cvOrS,cvrReduce,cvRepeat,cvScale,cvSet and cvSetZero
- 《学习opencv》笔记——矩阵和图像操作——cvCalcCovarMatrix,cvCmp and cvCmpS
- 《学习opencv》笔记——矩阵和图像操作——cvAbs,cvAbsDiff and cvAbsDiffS
- 《学习opencv》笔记——矩阵和图像操作——cvInRange,cvInRangeS,cvInvert and cvMahalonobis
- 《学习opencv》笔记——矩阵和图像操作——cvAbs,cvAbsDiff and cvAbsDiffS
- 《学习opencv》笔记——矩阵和图像操作——cvSetIdentity,cvSolve,cvSplit,cvSub,cvSubS and cvSubRS
- 《学习opencv》笔记——矩阵和图像操作——cvDet,cvDit,cvDotProduct,cvEigenVV and cvFlip