矩阵和图像的操作

(1)cvCalcCovarMatrix函数

其结构

void cvCalcCovarMatrix(计算给定点的均值和协方差矩阵
const CvArr** vects,//给定向量
int count,//给定向量的组数
CvArr* cov_mat,//结果矩阵
CvArr* avg,//依据flag得到结果
int flags//标记位
);

标记位參数值极其意义

标志參数的详细标志值

意义

CV_COVAR_NORMAL

计算均值和协方差

CV_COVAR__SCRAMBLED

高速PCA”Scrambled”协方差

CV_COVAR_USE_AVERAGE

输入均值而不是计算均值

CV_COVAR_SCALE

又一次缩放输出的协方差矩阵

实例程序

#include <cv.h>
#include <stdio.h>
#include <stdlib.h> float Coordinates[ 20 ]={ 1.5 , 2.3 , 3.0 , 1.7 , 1.2 , 2.9 , 2.1 , 2.2 , 3.1 , 3.1 , 1.3 , 2.7 , 2.0 , 1.7 , 1.0 , 2.0 , 0.5 , 0.6 , 1.0 , 0.9 }; int main()
{
CvMat *Vector[ 1 ];
CvMat *Vector1;
CvMat *CovarMatrix;
CvMat *avg; Vector1=cvCreateMat( 10 , 2 ,CV_32FC1);
cvSetData(Vector1,Coordinates,Vector1->step);
Vector[ 0 ]=Vector1;
CovarMatrix=cvCreateMat( 2 , 2 ,CV_32FC1);
avg=cvCreateMat( 1 , 2 ,CV_32FC1); cvCalcCovarMatrix(( const CvArr **)Vector, 10 ,CovarMatrix,avg,CV_COVAR_SCALE+CV_COVAR_NORMAL+CV_COVAR_ROWS); for ( int i= 0 ;i< 2 ;i++)
{
for ( int j= 0 ;j< 2 ;j++)
{
printf( "%f " ,cvGetReal2D(CovarMatrix,i,j));
}
printf( "\n" );
}
for ( int i= 0 ;i< 1 ;i++)
{
for ( int j= 0 ;j< 2 ;j++)
{
printf( "%f " ,cvGetReal2D(avg,i,j));
}
printf( "\n" );
}
getchar();
return 0;
}

输出结果

(2)cvCmp函数

其结构

void cvCmp(//比較两幅对应的图像的像素点
const CvArr* src1,//图像一
const CvArr* src2,//图像二
CvArr* dst,//结果矩阵
int cmp_op//标记參数
);

cmp_op值及其意义

cmp_op的值

比較方法

CV_CMP_EQ

(src1i == src2i)

CV_CMP_GT

(src1i > src2i)

CV_CMP_GE

(src1i >= src2i)

CV_CMP_LT

(src1i < src2i)

CV_CMP_LE

(src1i <= src2i)

CV_CMP_NE

(src1i != src2i)

实例程序

#include <cv.h>
#include <highgui.h>
#include <stdio.h> int main(int argc, char** argv)
{
IplImage *src1, *src2,*src3;
src1=cvLoadImage("5.jpg");
src2=cvLoadImage("6.jpg");
src3=cvLoadImage("5.jpg"); cvCmp(src1,src2,src3,CV_CMP_GE);
cvShowImage( "測试1", src1);
cvShowImage( "測试2", src2);
cvShowImage( "測试3", src3);
cvWaitKey();
return 0;
}

输出结果

(3)cvCmpS函数

其结构

void cvCmpS(//比較图像的像素点与value
const CvArr* src1,//图像
double value,//给定值
CvArr* dst,//结果矩阵
int cmp_op//标记參数
);

当中cmp_op參数的值与上个函数同样

实例程序

#include <cv.h>
#include <highgui.h>
#include <stdio.h> int main(int argc, char** argv)
{
IplImage *src1,*src2;
src1=cvLoadImage("5.jpg");
src2=cvLoadImage("5.jpg"); cvCmpS(src1,250.2,src2,CV_CMP_GE);
cvShowImage( "測试1", src1);
cvShowImage( "測试2", src2);
cvWaitKey();
return 0;
}

输出结果

to be continued

《学习opencv》笔记——矩阵和图像操作——cvCalcCovarMatrix,cvCmp and cvCmpS的更多相关文章

  1. 《学习opencv》笔记——矩阵和图像操作——cvSetIdentity,cvSolve,cvSplit,cvSub,cvSubS and cvSubRS

    矩阵和图像的操作 (1)cvSetIdentity函数 其结构 void cvSetIdentity(//将矩阵行与列相等的元素置为1.其余元素置为0 CvArr* arr//目标矩阵 ); 实例代码 ...

  2. 《学习opencv》笔记——矩阵和图像操作——cvAnd、cvAndS、cvAvg and cvAvgSdv

    矩阵和图像的操作 (1)cvAnd函数 其结构 void cvAnd( //将src1和src2按像素点取"位与运算" const CvArr* src1,//第一个矩阵 cons ...

  3. 《学习opencv》笔记——矩阵和图像操作——cvAbs,cvAbsDiff and cvAbsDiffS

    矩阵和图像的操作 (1)cvAbs,cvAbsdiff,cvAbsDiffS 它们的结构为: void cvAbs( //取src中元素的绝对值,写到dst中 const CvArr* src, co ...

  4. 《学习opencv》笔记——矩阵和图像操作——cvInRange,cvInRangeS,cvInvert and cvMahalonobis

    矩阵和图像的操作 (1)cvInRange函数 其结构 void cvInRange(//提取图像中在阈值中间的部分 const CvArr* src,//目标图像 const CvArr* lowe ...

  5. 《学习opencv》笔记——矩阵和图像操作——cvCrossProduct and cvCvtColor

    矩阵和图像的操作 (1)cvCrossProduct函数 其结构 void cvCrossProdust(//计算两个三维向量的叉积 const CvArr* src1, const CvArr* s ...

  6. 《学习opencv》笔记——矩阵和图像操作——cvConvertScale,cvConvertScaleAbs,cvCopy and cvCountNonZero

    矩阵和图像的操作 (1)cvConvertScale函数 其结构: void cvConvertScale( //进行线性变换,将src乘scale加上shift保存到dst const CvArr* ...

  7. opencv笔记2:图像ROI

    time:2015年 10月 03日 星期六 12:03:45 CST # opencv笔记2:图像ROI ROI ROI意思是Region Of Interests,感兴趣区域,是一个图中的一个子区 ...

  8. OpenCV —— 矩阵和图像操作

    cvAbs , cvAbsDiff , cvAbsDiffS cvAdd , cvAddS , cvAddWeighted(可添加权重) #include <cv.h> #include ...

  9. OpenCV利用矩阵实现图像旋转

    利用OpenCV的矩阵操作实现图像的逆时针旋转90度操作 代码 Mat src = imread("C:\\Users\\fenggl\\Desktop\\测试.jpg",MREA ...

随机推荐

  1. javaScript模块化一

    1. Module模式的基本特性 A) 模块化 可重用   B) 封装了变量和function 和全局的namespace不接触 松耦合.   C) 只暴露可用public的方法 其他私有方法全部隐藏 ...

  2. 【VS2015正式版下载】Visual Studio 2015 正式版开放下载 Visual Studio 2015 神key

    说明: 微软定于2015年7月20日发布Visual Studio 2015正式版,目前其官方网站已经提供正式版本的下载. 可在https://www.visualstudio.com/en-us/d ...

  3. jQuery简介以及jQuery选择器

    一 简介 1 定义:jQuery库是JavaScript的封装库 2 优点: 1) : 代码开源 2) : 选择器强大 3) : 完善的Ajax 4) : 浏览器兼容性高 5) : 文档完善(帮助文档 ...

  4. js中this的指向

    在js中this的指向对于新手来说一定是个难题,但是如果你真正理解了的话,也就没什么问题啦,下面就来讲讲this吧. JS中,this的值取决于调用的模式(调用对象),而JS中共有4种调用模式: 1. ...

  5. 从前有个聊天室(socket&threading)

    服务器端: # -*- coding: utf-8 -*- import socket, threading con = threading.Condition() HOST = raw_input( ...

  6. SQL Server系统表讲解

    1. sysobjects http://www.cnblogs.com/atree/p/SQL-Server-sysobjects.html   2.syscomments http://www.c ...

  7. OC基础 NSDate

    OC基础  NSDate #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @auto ...

  8. 《APUE》读书笔记第十二章-线程控制

    本章中,主要是介绍控制线程行为方面的内容,同时介绍了在同一进程中的多个线程之间如何保持数据的私有性以及基于进程的系统调用如何与线程进行交互. 一.线程属性 我们在创建线程的时候可以通过修改pthrea ...

  9. hdu 4277 USACO ORZ (暴力+set容器判重)

    USACO ORZ Time Limit: 5000/1500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  10. 记录一下最近开发web移动前端的过程

    两个项目 第一个是公司网站的移动端,我所在的公司是做某方面的新闻站的. 所以说页面基本是以一条条的新闻+图文混排为主,顶部有一个自动slider+触屏滑动的功能, 使用的是swipe插件,轻量,简洁非 ...