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

  1. 《得知opencv》注意事项——矩阵和图像处理——cvOr,cvOrS,cvrReduce,cvRepeat,cvScale,cvSet and cvSetZero

    矩阵和图像的操作 (1)cvOr函数 其结构 void cvOr(//两个矩阵相应元素做或执行 const CvArr* src1,//矩阵1 const CvArr* src2,//矩阵2 CvAr ...

  2. [OpenCV] IplImage and Functions

    In this chapter, APIs will make U crazy. Good luck! Next, Review Linear Algebra.  Ref: http://blog.c ...

  3. opencv 手势识别

    我使用OpenCV2.4.4的windows版本+Qt4.8.3+VS2010的编译器做了一个手势识别的小程序. 本程序主要使到了Opencv的特征训练库和最基本的图像处理的知识,包括肤色检测等等. ...

  4. 提取肤色信息原理及操作——opencv

    网上也有很多的资料,讲述怎么提取肤色的,大致有5种方法.这几种方法转载http://blog.csdn.net/augusdi/article/details/8865275 第一种:RGB colo ...

  5. OpenCv结构和内容

    OpenCv的结构和内容 OpenCv源码组成结构其中包括cv, cvauex, cxcore, highgui, ml这5个模块 CV:图像处理和视觉算法 MLL:统计分类器 HighGui:GUI ...

  6. [OpenCV] Samples 16: Decompose and Analyse RGB channels

    物体的颜色特征决定了灰度处理不是万能,对RGB分别处理具有相当的意义. #include <iostream> #include <stdio.h> #include &quo ...

  7. [OpenCV] IplImage and Operation

    IplImage 一.资源 In this chapter, APIs will make U crazy. Good luck! Next, Review Linear Algebra. Ref:  ...

  8. 常用的OpenCV函数速查

    常用的OpenCV函数速查 1.cvLoadImage:将图像文件加载至内存: 2.cvNamedWindow:在屏幕上创建一个窗口: 3.cvShowImage:在一个已创建好的窗口中显示图像: 4 ...

  9. 模式识别开发之项目---基于opencv的手势识别

    我使用OpenCV2.4.4的windows版本+Qt4.8.3+VS2010的编译器做了一个手势识别的小程序. 本程序主要使到了Opencv的特征训练库和最基本的图像处理的知识,包括肤色检测等等. ...

  10. OpenCV —— 图像局部与部分分割(一)

    背景减除 一旦背景模型建立,将背景模型和当前的图像进行比较,然后减去这些已知的背景信息,则剩下的目标物大致就是所求的前景目标了 缺点 —— 该方法基于一个不长成立的假设:所有像素点是独立的 场景建模 ...

随机推荐

  1. POJ 3041 Asteroids(匈牙利+邻接表)

    ( ̄▽ ̄)" #include<iostream> #include<cstdio> #include<cstring> #include<algo ...

  2. 安卓请求服务器js文件下载到本地,版本号就下载

    <?phpreturn array('CJ_V' => 'v0.15',) <script src="/js/reserve.js?<?=C('CJ_V')?> ...

  3. 6、Struts2拦截器实现权限控制

    1.创建如下项目结果 2.在com.entity包下创建 package com.entity; public class User { private String name; private St ...

  4. Talking Ben App砸壳记

    需求: 导出Talking Ben app的头文件 实施: 1)准备材料: 越狱IOS设备一部,并安装Talking Ben游戏 IOS设备上安装open SSH IOS设备的/usr/bin 中安装 ...

  5. marble 基本函数(一)

    . 标记 GeoDataPlacemark *place = new GeoDataPlacemark( "Bucharest" ); place->setCoordinat ...

  6. poj 1411 Calling Extraterrestrial Intelligence Again

    题意:给你数m,a,b,假设有数p,q,满足p*q<=m同时a/b<=p/q<=1,求当p*q最大的p和q的值 方法:暴力枚举 -_-|| and 优化范围 我们可以注意到在某一个m ...

  7. 计算机安装了IE8一半退出重启时,桌面只显示背景

    记得我在一家公司实习网管的时候,我遇到过一个这样的情况:那时候公司就我一个网管(原来的那个老员工走了才临时要了我),公司有台台式,上面装了公司的ERP还有一系列的软件.因为那个ERP限制了机器,用另外 ...

  8. Linux下wps字体问题

    1.安装symbol-fonts_1.2_all.deb,自行搜索 2.卸载xfonts-mathml字体 sudo apt-get remove xfonts-mathml

  9. 【JQuery的选择器】

    一.基本选择器 基本选择器是JQuery中最常用的选择器,也是最简单的选择器,它通过元素的id,class和标签名来查找DOM元素(在网页中id只能使用一次,class允许重复使用). 选择器  描述 ...

  10. chrome插件:打开新tab时自动打开百度

    下载 安装: 解压到某一目录 如要修改自动跳转链接:修改go.js中的url (function (){ chrome.tabs.getCurrent(function(tab){ chrome.ta ...