opencv---cvor
void cvXor计算两个数组中的每个元素的按位异或。
void cvXor (const CvArr* src1, const CvArr* src2, CvArr* dst, const CvArr* mask = NULL);
得到dst(I) = src1(I)^src2(I)。 你提到的mask形参,一般来说可以直接填入0或者缺省。
以下给你一个例子,我用到的函数是cvOr,它和你说的cvXor都是cxcore的一种算术函数,
void cvOr (const CvArr* src1, const CvArr* src2, CvArr* dst, const CvArr* mask = NULL);形参是一致的,只是计算不同。
void backgroundDiff(IplImage *I, IplImage *Imask) {
cvCvtScale(I,Iscratch,1,0);
cvSplit( Iscratch, Igray1,Igray2,Igray3, 0 );
cvInRange(Igray1,Ilow1,Ihi1,Imask);
cvInRange(Igray2,Ilow2,Ihi2,Imaskt);
cvOr(Imask,Imaskt,Imask, 0);
cvInRange(Igray3,Ilow3,Ihi3,Imaskt);
cvOr(Imask,Imaskt,Imask, 0);
cvSubRS( Imask, cvRealScalar(255), Imask, 0);
}
这段程序摘自Learning OpenCV教程第九章的background subtraction。在第6和8行,
“cvOr(Imask,Imaskt,Imask, 0);”,Imask是第一个原数组(注意,不要和mask形参搞混了),Imaskt是第二个原数组,Imask同时也是输出数组,最后一个参数0则是mask。
得到Imask=Imask|Imaskt。
同理,如果你要用cvXor,则应该写作“cvXor(src1, src2, dst, 0);” 关于函数怎么使用,可以在openCV的中文论坛(http://www.opencv.org.cn/forum/)的“参考手册”里找到。
IplImage可以用结构的方法修改。比如在做视频处理的时候,一开始常犯的错误是做出的视频上下颠倒,这时候要将origin设为1。
例如: CvCapture* capture; IplImage *src, *dst; while(1) {
src = cvCaptureFromCAM( CV_CAP_ANY ); //输入src,经过一些处理后,输出dst。中间过程省略。
dst->origin = 1; //保证dst没有上下颠倒。
cvShowImage("dst", dst);
}
opencv---cvor的更多相关文章
- 《得知opencv》注意事项——矩阵和图像处理——cvOr,cvOrS,cvrReduce,cvRepeat,cvScale,cvSet and cvSetZero
矩阵和图像的操作 (1)cvOr函数 其结构 void cvOr(//两个矩阵相应元素做或执行 const CvArr* src1,//矩阵1 const CvArr* src2,//矩阵2 CvAr ...
- [OpenCV] IplImage and Functions
In this chapter, APIs will make U crazy. Good luck! Next, Review Linear Algebra. Ref: http://blog.c ...
- opencv 手势识别
我使用OpenCV2.4.4的windows版本+Qt4.8.3+VS2010的编译器做了一个手势识别的小程序. 本程序主要使到了Opencv的特征训练库和最基本的图像处理的知识,包括肤色检测等等. ...
- 提取肤色信息原理及操作——opencv
网上也有很多的资料,讲述怎么提取肤色的,大致有5种方法.这几种方法转载http://blog.csdn.net/augusdi/article/details/8865275 第一种:RGB colo ...
- OpenCv结构和内容
OpenCv的结构和内容 OpenCv源码组成结构其中包括cv, cvauex, cxcore, highgui, ml这5个模块 CV:图像处理和视觉算法 MLL:统计分类器 HighGui:GUI ...
- [OpenCV] Samples 16: Decompose and Analyse RGB channels
物体的颜色特征决定了灰度处理不是万能,对RGB分别处理具有相当的意义. #include <iostream> #include <stdio.h> #include &quo ...
- [OpenCV] IplImage and Operation
IplImage 一.资源 In this chapter, APIs will make U crazy. Good luck! Next, Review Linear Algebra. Ref: ...
- 常用的OpenCV函数速查
常用的OpenCV函数速查 1.cvLoadImage:将图像文件加载至内存: 2.cvNamedWindow:在屏幕上创建一个窗口: 3.cvShowImage:在一个已创建好的窗口中显示图像: 4 ...
- 模式识别开发之项目---基于opencv的手势识别
我使用OpenCV2.4.4的windows版本+Qt4.8.3+VS2010的编译器做了一个手势识别的小程序. 本程序主要使到了Opencv的特征训练库和最基本的图像处理的知识,包括肤色检测等等. ...
- OpenCV —— 图像局部与部分分割(一)
背景减除 一旦背景模型建立,将背景模型和当前的图像进行比较,然后减去这些已知的背景信息,则剩下的目标物大致就是所求的前景目标了 缺点 —— 该方法基于一个不长成立的假设:所有像素点是独立的 场景建模 ...
随机推荐
- POJ 2311 Cutting Game(SG+记忆化)
题目链接 #include<iostream> #include<cstdio> #include<cstring> using namespace std; ][ ...
- 解决XCode插件在XCode6.4上失效的办法
Xcode 6.4 解决 插件失效的方法 查看 插件目录: ~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/ 邮件打开插件 ...
- Python 的方法重载
为防止两个模块互相导入的问题,Python默认所有的模块都只导入一次,如果需要重新导入模块,Python2 7可以直接用reload(),Python3可以用下 为防止两个模块互相导入的问题,Pyth ...
- 【codevs】1860 最大数
1860 最大数 题目描述 Description 设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数. 输入描述 Input Description 第一行一个正整数n. ...
- UIScrollView 加载多个view view还可以交换顺序(2)
在上的代码中 UIview都在一个页面 要是每一个view对应一个页面 操作每一个view代码都在viewcontroller里面就会很乱,那么我们就将view重新做一下 创建想要的页面继承与view ...
- uitableview 关于键盘挡住输入框解决方法
// // AboutKeyBoardEventViewController.m // QueryBussinessInfo // // Created by mac on 16/8/23. // C ...
- shell脚本调试方法
我们开启了 Shell 脚本调试系列文章,先是解释了不同的调试选项,下面介绍如何启用 Shell 调试模式. 写完脚本后,建议在运行脚本之前先检查脚本中的语法,而不是查看它们的输出以确认它们是否正常工 ...
- MediaWiki搭建教程
♦ MediaWiki是什么以及有什么作用,这里我就不再阐述了,网上可以查到很多.这里只是简单记录一下搭建wiki的基本过程,给一些热爱捯饬的小伙伴一些参考. ♦ 其实wiki的搭建本身很简单,最 ...
- 河南多校联合训练 南阳理工 1261 音痴又音痴的LT
描述 LT最近一直在无限循环薛之谦的歌,简直都中毒了!可是呢…他的歌LT还是不会唱(其实不止他的歌LT不会唱,所有人的歌LT都不会唱…因为LT是标准的音痴)可是LT又很喜欢唱歌(所以LT不仅是音痴还是 ...
- oracle 备份操作流程
Oracle 库表导出步骤 例如,要导出wcsr用户下的所有表,已知用户名/密码:wcsr/wcsr_woer 首先打开cmd.exe 其次创建备份目录,最好目录不包含空格和中文名 md d:\ora ...