矩阵和图像的操作

(1)cvAbs,cvAbsdiff,cvAbsDiffS

它们的结构为:

void cvAbs(  //取src中元素的绝对值,写到dst中
  const CvArr* src,
  const dst
); void cvAbsDiff( //src1减去src2的差的绝对值存入dst
  const CvArr* src1,
  const CvArr* src2,
  const dst
); void cvAbsDiffs( //src中每一个元素减去value存入dst中
  const CvArr* src,
  CvScalar value,
  const dst
_;

使用实例代码:

#include <cv.h>
#include <highgui.h>
#include <cxcore.h>
#include <iostream>
using namespace std;
int main( int argc, char** argv ){
CvMat *mat;
mat=cvCreateMat(4,4,CV_32FC1); float value = 0.0;
int i = 0, j = 0;
cout<<"初始化原始数组"<<endl;
for ( i = 0; i < 4; i ++ ){
for( j = 0; j < 4; j ++ ){ value -= 1.0;
CV_MAT_ELEM( *mat, float, i, j) = value;
}
}
for ( i = 0; i < 4; i ++ ){
for( j = 0; j < 4; j ++ ){ cout<<"\t"<<CV_MAT_ELEM( *mat, float, i, j);
}
cout<<endl;
}
CvMat *matDes; matDes=cvCreateMat(4,4,CV_32FC1); cout<<"目标矩阵"<<endl;
for ( i = 0; i < 4; i ++ ){
for( j = 0; j < 4; j ++ ){
cvmSet( matDes, i, j,0);
cout<<"\t"<<CV_MAT_ELEM( *matDes, float, i, j);
} cout<<endl;
} cvAbs( mat, matDes );
cout<<"数组的绝对值"<<endl;
for ( i = 0; i < 4; i ++ ){
for( j = 0; j < 4; j ++ ){ cout<<"\t"<<CV_MAT_ELEM( *matDes, float, i, j);
} cout<<endl;
} CvMat *matDiff1 = cvCreateMat(4,4,CV_32FC1); cvAbsDiff( mat,matDes , matDiff1);
cout<<"两个差的绝对值"<<endl;
for ( i = 0; i < 4; i ++ ){
for( j = 0; j < 4; j ++ ){ cout<<"\t"<<CV_MAT_ELEM( *matDiff1, float, i, j);
} cout<<endl;
} CvScalar cs;
cs.val[0] = 2.0;
cs.val[1] = 1.0; cvAbsDiffS( mat, matDiff1,cs);
cout<<"矩阵减去标准值的绝对值"<<endl;
for ( i = 0; i < 4; i ++ ){
for( j = 0; j < 4; j ++ ){ cout<<"\t"<<CV_MAT_ELEM( *matDiff1, float, i, j);
} cout<<endl;
}
cvReleaseMat( &mat );
cvReleaseMat( &matDes );
getchar();
return 0;
}

输出结果:

to be continued

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

  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》笔记——矩阵和图像操作——cvAnd、cvAndS、cvAvg and cvAvgSdv

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

  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. 学习shell脚本之前的基础知识

    日常的linux系统管理工作中必不可少的就是shell脚本,如果不会写shell脚本,那么你就不算一个合格的管理员.目前很多单位在招聘linux系统管理员时,shell脚本的编写是必考的项目.有的单位 ...

  2. vuejs学习--递归组件(树型表格分享)

    前言 学习vue有一段时间了,最近使用vue做了一套后台管理系统,其中使用最多就是递归组件,也因为自己对官方文档的不熟悉使得自己踩了不少坑,今天写出来和大家一起分享. 递归组件 组件在它的模板内可以递 ...

  3. 【ARC066】F - Contest with Drinks Hard

    题解 我写的斜率维护,放弃了我最擅长的叉积维护,然后发现叉积维护也不会爆long long哦-- 一写斜率维护我的代码就会莫名变长而且难写--行吧 我们看这题 推了推式子,发现这是个斜率的式子,但是斜 ...

  4. Python 学习经历分享

    如果说 Java 是亲儿子的话,那么 Python 应该就是干儿子了.看了一下所有关于 Python 的笔记,我发现原来我在 4 月份的时候就已经涉足 Python 了,但是到目前为止才真正算做出了一 ...

  5. JAVAEE——宜立方商城11:sso登录注册功能实现、通过token获得用户信息、Ajax跨域请求(jsonp)

    1. 学习计划 第十一天: 1.sso注册功能实现 2.sso登录功能实现 3.通过token获得用户信息 4.Ajax跨域请求(jsonp) 2. Sso系统工程搭建 需要创建一个sso服务工程,可 ...

  6. JDK源码分析(四)——LinkedHashMap

    目录 LinkedHashMap概述 内部字段及构造方法 存储元素 取出元素 删除元素 迭代器 利用LinkedHashMap简单实现LRU算法 总结 LinkedHashMap概述   JDK对Li ...

  7. odoo 模型与ORM

    型号属性 在/模型添加activity.py文件 class ActivityEvent(models.Model): _name = 'activity.event' _inherit = 'eve ...

  8. [ 原创 ]新手作品-我的第一款安卓自学作品---YY音乐诞生了

    YY音乐---我前前后后断断续续花了3个月时间,边从0基础开始学Android 和Java,边开始做自己的Android第一款软件,之间看了许多教学视频,许多博客,才算Android入了一点点门道,终 ...

  9. parcelable 和 serializable 区别

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha serializable 是 java 中的 序列化 接口. parcelable 是 ...

  10. wpf企业应用之SelectButton(用于列表页之类的选择)

    在企业级应用中,通常我们会遇到这样的需求,需要点击一个按钮选择列表中的一项或者多项,然后将结果显示到按钮中.这里我给自己的控件命名为SelectButton,具体效果见 wpf企业级开发中的几种常见业 ...