矩阵和图像的操作

(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的更多相关文章

  1. 《学习opencv》笔记——矩阵和图像操作——cvCalcCovarMatrix,cvCmp and cvCmpS

    矩阵和图像的操作 (1)cvCalcCovarMatrix函数 其结构 void cvCalcCovarMatrix(计算给定点的均值和协方差矩阵 const CvArr** vects,//给定向量 ...

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

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

  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. Lucene.Net简单例子-01

    前面已经简单介绍了Lucene.Net,下面来看一个实际的例子 1.1 引用必要的bll文件.这里不再介绍(Lucene.Net  PanGu  PanGu.HightLight  PanGu.Luc ...

  2. 使用spring-boot-starter-data-jpa 怎么配置使运行时输出SQL语句

    在 application.properties 中加入以下配置 spring.jpa.show-sql=true

  3. ERP完善合同起草(二十八)

    前端的代码: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CRMCont ...

  4. SpringAOP学习第一天 @Pointcut注解

    自从上班之后,就很少再看AOP相关的内容,几年时间里虽然也有一两次完整看过,一直没有机会用到,都忘记了.今天重温一下 TestNG测试类 package com.test.spring.aop.min ...

  5. bzoj1026

    题意: windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道,在A和B之间,包括A和B,总共有多少个windy数? 数据范围  A,B≤ ...

  6. BZOJ3545 [ONTAK2010]Peaks kruskal 并查集 主席树 dfs序

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ3545 题意概括 Description 在Bytemountains有N座山峰,每座山峰有他的高度 ...

  7. BZOJ1266 [AHOI2006]上学路线route Floyd 最小割 SAP

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1266 题意概括 一个无向图,第一问:从1~n的最短路. 第二问,删除价值总和最小的边,使得1~n的 ...

  8. SqlServer 添加用户 添加角色 分配权限

    转载自:https://www.cnblogs.com/accumulater/p/6158387.html   --创建一个简单的登录,登录名为:newlogin:登录密码:123456:默认数据库 ...

  9. 安装及配置sublime

    纯个人笔记,粗略编写,有时间再修改 参考:关于Sublime text3 配置及插件整理 参考:https://github.com/boontime/sublime-text3-config 参考: ...

  10. Python常用模块--base64

    作用:对一些保密性不强的信息进行加密,变为人类不能直接理解的字符串,但是可以反向解密,是一种‘防君子,不防小人’的措施. 例如:在一些项目中,接口的报文是通过base64加密传输的,所以在进行接口自动 ...