cvInRangeS对于多通道效率的讨论

《学习opencv》笔记——矩阵和图像操作——cvInRange,cvInRangeS,cvInvert and cvMahalonobis 最后一个关于马氏距离的函数的讲解不错的。 阅读详情

肤色过滤在OpenCV中必然要用到cvInRangeS

发现,很多例程都是这么用的。

cvSplit

cvInRangeS

 

而我是这么用的

cvInRangeS(Img,cvScalar(0.0,0.0,0.0),cvScalar(30.0,255,255),h1);

 

有时候在想,这样有否差别。测试代码如下,分别循环1000次,并用GetTickCount()取得时间

第一组

        cvInRangeS(Img,cvScalar(0.0,0.0,0.0),cvScalar(30.0,255,255),h1);
        cvInRangeS(Img,cvScalar(120.0,0.0,0.0),cvScalar(180.0,255,255),h2);
        cvOr(h1,h2,h1);

第二组

        cvSplit(Img,H,NULL,NULL,NULL);
        cvInRangeS(H,cvScalar(0.0),cvScalar(30.0),h1);
        cvInRangeS(H,cvScalar(120.0),cvScalar(180.0),h2);
        cvOr(h1,h2,h1);

实验结果:第一组:1828ms;第二组:1641ms。有一定的波动

 

可以看到第一组多用了4%的时间,效率差别不是很多。如果考虑cvSplit的关系,明显是有效率差别的,当然,我实验的环境是640*480的摄像头的一帧图像。如果处理的图片大了应该效率差别会更加明显。目前,基本上就不用考虑了。差别太小了,4%对于我这样的烂程序来讲,忽略吧。让代码看上去整洁点就行了。

数学建模集成电路布线拥堵问题 集成电路脚标拥堵问题 集成电路通道布线中脚标拥堵问题 集成电路是利用半导体技术把电子元件集成在一起的具有特定功能的电路, 已广泛应用于生产生活的方方面面。随着技术的发展,集成电路内部的元器件数 目已达到十亿级别,需要借助专用计算机软件才能完成电路设计与实现,该类软件统称为电子设计自动化(Electronic Design Automation, EDA)工具。 集成电路设计由多个阶段组成,其中一个重要阶段称为“物理设计”,先将器件摆放在合适的位置,然后用金属线连接器件实现连接关系。其中,后者称为“布线”,它 阅读详情

相关推荐

对族实例进行任意的矩阵变换,需要什么样的族?

问:一个小问题,想向您请教一下。 能不能实现一个这样的操作:创建了一个常规模型的FamilyInstance,然后知道旋转和平移的矩阵,能否根据变换矩阵更新FamilyInstance的位置,绕任意轴旋转任意角度。 请问什么样的实体才能在revit项目文件中任意旋转?貌似一般的实例只能在XY平面内旋转,并且LocationPoint中只有一个Rotation参数。答:您好,因为Revit里面的构件

我爱Revit —— BIM应用及BIM应用软件解决方案专栏 3626

cvInRangs()函数

菜鸟妞的数字图像处理之旅

老笨妞 802

FreeSwitch采用mrcp协议对接科大讯飞asr和tts以及对话系统

FreeSwitch采用mrcp协议对接科大讯飞asr和tts对接过程

shanghaimoon的专栏 8839

cvInRangeS函数演示————学习OpenCV笔记(四)

camshift算法中,用到了cvInRangeS函数,作为初学者,对这个函数很不理解,所以就写了个程序演示效果,加强理解。 代码: #include "cv.h" #include "highgui.h" #include int hmax=0,hmin=0,vmin=0,vmax=0,smin=0,smax=0; int main(int argc,char **argv) { pr

blog 9517

经典脉冲激光测距原理&雷达方程

脉冲激光测距机的工作过程如下:首先用瞄准光学系统瞄准目标,然后接通激光电源,储能电容器充电,产生触发闪光灯的触发脉冲,闪光灯点亮,激光器受激辐射,从输出反射镜发射出一个前沿陡峭、峰值功率高的激光脉冲,通过发射光学系统压缩光束发射角后射向目标。通过计算激光发射功率经介质传输的衰减,目标表面截获和反射的光功率,到达接收视场的光功率,以及接收光学系统接收到的光功率,就可以得到到达光电探测器的光功率,即接收功率。⑤光東路程上的折射率变化;),测量光脉冲到达目标并由目标返回到接收机的时间,由此计算出目标的距离。

weixin_46153372的博客 2521

为什么你的XGBoost多分类效果不如预期?可能是这5个参数没调对

本文深度剖析了XGBoost模型在处理多分类问题时效果不佳的五大关键参数陷阱。针对多分类问题的独特性,文章提供了max_depth、learning_rate、采样参数及正则化参数等核心参数的量化调整策略与诊断方法,帮助开发者精准调优,有效提升模型在各类别上的均衡性能与泛化能力。

weixin_29182481的博客 296

opencv常见函数

1.void cvInRangeS( const CvArr* src, CvScalar lower, CvScalar upper, CvArr* dst ); src 第一个原数组 lower 包括进的下边界. upper 不包括进的上边界 dst 输出数组必须是 8u 或 8s 类型. 函数 cvInRangeS 检查输入数组元素范围:对于单通道数组:

杨幽科技 545

Mybatis Provider注解实现批量插入

需求 借助mybatis 的provider实现一个比较通用的,批量插入数据接口。 Mapper接口 第一参数为需要批量插入的数据,第二个参数为对应实体类的class public interface BaseDao<T> { @InsertProvider(type = BaseProvider.class, method = "batchInsert") int batchInsert(@Param("lists") List<T&gt

小楼夜听雨的博客 2417

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

矩阵和图像的操作 (1)cvInRange函数 其结构 void cvInRange(//提取图像中在阈值中间的部分 const CvArr* src,//目标图像 const CvArr* lower,//阈值下限 const CvArr* upper,//阈值上限 CvArr* dst//结果图像 ); 实例代码 #include &l...

weixin_33716941的博客 171

AUTOSAR知识点 之 XCP (二):XCP基础概念

学习XCP的过程中,对XCP的基本概念要做一个全面的认知,因为里面有很多缩写以及难以理解的点,假设对此模模糊糊一知半解,那么对整个协议栈的认知会遇到极大的障碍。XCP的信号流传输图示如下XCP 标准主要分为 5 个部分:这部分提供了对于协议的一个概况介绍,包括 XCP 的功能和基础性内容。这部分内容对协议层进行了详细的规范和说明。

梦想技术家 2769

OpenClaw Docker 安装与部署教程,环境隔离不冲突技术指南

本文介绍了使用Docker容器化部署OpenClaw的完整教程。首先通过流程图详细说明了Docker环境检测流程,包括系统支持性检查、Docker安装状态验证、版本检测和服务配置等步骤。然后提供了Windows、macOS和Linux(Ubuntu/CentOS)系统下的Docker安装指南,涵盖从下载、安装到权限配置的全过程。最后介绍了OpenClaw官方镜像的拉取方法以及自定义镜像构建的Dockerfile示例。该教程适用于开发和生产环境,利用Docker实现环境隔离和快速部署。

一键难忘的博客 987

cvInRange函数详解

CV_IMPL void cvInRangeS( const void* srcarr, CvScalar lower, CvScalar upper, void* dstarr ) { static CvBigFuncTable inrange_tab; static int inittab = 0; CV_FUNCNAME( "cvInRangeS" );

有思想的鱼 1万+

汽车电子RTOS--AUTOSAR OS

AUTOSAR OS(AUTomotive Open System ARchitecture Operating System)是AUTOSAR(汽车开放系统架构)标准中的一个重要组件,它是一个专门为汽车电子控制单元(ECU)设计的实时操作系统(RTOS)。AUTOSAR OS旨在提供一个标准化的软件平台,以促进不同供应商和汽车制造商之间的组件复用和协同开发,提高软件质量和降低成本。

MHD0815的博客 1797

【OpenCV学习笔记6】常用的OpenCV函数速查

常用的OpenCV函数速查 更多精彩请直接访问SkySeraph个人站点:www.skyseraph.com  1、cvLoadImage:将图像文件加载至内存; 2、cvNamedWindow:在屏幕上创建一个窗口; 3、cvShowImage:在一个已创建好的窗口中显示图像; 4、cvWaitKey:使程序暂停,等待用户触发一个按键操作; 5、cvReleaseImage:释放图像...

weixin_34198881的博客 1937

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

OpenCV中HSV空间的讨论

cvCvtColor(image,HSVImage,CV_BGR2HSV);用于转换OpenCV中的图片颜色空间,从BGR到HSV。 为什么是BGR?OpenCV的习惯,不要考虑。反正不管是Windows中Load的还是摄像头取得的都是BGR顺序排列的,而且记住的IplImage->channelSeq显示的是BGR,很奇怪的是channelSeq被OpenCV声明

darkread的专栏 6975

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

OpenCV中的Rand随机数函数簇学习

因为学习卡尔曼滤波,所以发现了OpenCV居然还能发生随机数的。特意把随机数函数簇拿出来学习下。注:正态分布曲线的对称轴是正态样本的平均值;样本的平均值增大,曲线向右侧平移,样本的平均值减小,曲线向左侧平移。 正态样本的标准差越大,则正态分布曲线越平坦,峰值越小。 RandInitInitializes random number generator statevoid cvRandInit( CvRandState* state, double param1, double param2, int se

darkread的专栏 5689

OpenCV 2.1+VS2008无法调试带有cvCaptureFromCAM函数的程序。

<br />OpenCV2.1+VS2008。调试运行到cvCaptureFromCAM(-1)退出。-1改成0,1都不行。<br /> 我把程序简化的只有一句 cvCaptureFromCAM也不行,就在这里退出。<br /> 直接编译bgfg_codebook.cpp也是这样,到 cvCaptureFromCAM就退出。无错误,无提示。<br /><br /> 在VS的输出窗口最后的记录是<br /> 空项目.exe”: 已加载“C:/WINDOWS/system32/qedit.dll”<br

darkread的专栏 4649

IplImage::origin的认识

origin是有作用的,而且直接确定了在一张图片width*Height个像素的排列顺序。Windows 状态下,摄像头取得的数据,origin=1。原点在左下。IplImage::ImageData的一个点是左下的数据。验证代码如下:  // 像素顺序.cpp : Defines the entry point for the console application.//

darkread的专栏 4531

轮廓相关函数笔记

轮廓相关函数笔记 明显:CvSeq* contours2也属于CvArr* CvRect rect = cvBoundingRect( contours2, 0 );//返回一个2d矩形的点集合,这个方框必须是正的。 CvBox2D box = cvMinAreaRect2( contours2, minStorage );//包围所有点的轮廓的最小矩形。这个矩形可以是倾斜的 int checkcxt = cvCheckContourConvexity( contours2 );//检测输入的轮廓是

darkread的专栏 3860

error LNK2005 new already defined in LIBCD.lib(new.obj)错误学习

error LNK2005 new already defined in LIBCD.lib(new.obj)错误在于在一般的Console程序中直接使用MFC类库引起的,所以Lib文件在链接的时候发生了混乱。因此要强制其链接顺序。(这些都是网上说的,我没有完全理解,因为要做设计写论文,没心情)具体操作如下图,添加。

darkread的专栏 1678

肤色过滤参数与过程

暂时把颜色空间定在HSV,只过滤H分量,因为V是亮度无法统一的,S么,经过试验0-255都有,也放弃了 frame = cvQueryFrame( capture );tmp2 = cvCloneImage(frame);cvCvtColor(tmp2,tmp2,CV_BGR2HSV);H = cvCreateImage( cvSize(frame->width,frame->

darkread的专栏 1445

卡尔曼(kalman)滤波学习手札 未完

<br />卡尔曼(kalman)滤波<br />在OpenCV的Sample中有名为kalman.c的源代码。<br />它以一个点做圆心为例,预判其下一个点的位置。因此,卡尔曼滤波应该理解为卡尔曼预判最好,不过话有说回来,本来滤波就是预判么。

darkread的专栏 1079
上一篇: cvPointPolygonTest的使用教程。
下一篇: c++,在VS2008中讨论for{}声明变量的作用域。
darkread
博客等级 码龄25年 42粉丝 81原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值