首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在OpenCV (版本3.4.5)的goodFeaturesToTrack实现中,CV_OCL_RUN宏是如何工作的?

在OpenCV版本3.4.5中,CV_OCL_RUN宏是用于启用OpenCL加速的功能。OpenCL是一种开放的并行计算框架,可以利用GPU等硬件加速计算,提高图像处理的速度。

CV_OCL_RUN宏的作用是检查当前系统是否支持OpenCL,并根据支持情况决定是否使用OpenCL加速。当CV_OCL_RUN宏被定义时,表示当前系统支持OpenCL,OpenCV将尝试使用OpenCL加速相关的函数。如果CV_OCL_RUN宏未定义,则表示当前系统不支持OpenCL,OpenCV将使用普通的CPU计算。

在goodFeaturesToTrack函数的实现中,CV_OCL_RUN宏的使用可以提高角点检测的速度。当CV_OCL_RUN宏被定义时,函数将尝试使用OpenCL加速计算角点的过程,利用GPU的并行计算能力加快处理速度。如果CV_OCL_RUN宏未定义,则函数将使用CPU进行计算。

需要注意的是,CV_OCL_RUN宏的定义与具体的编译环境相关。在编译OpenCV时,可以通过配置相关的编译选项来启用或禁用OpenCL支持,从而决定CV_OCL_RUN宏的定义与否。

推荐的腾讯云相关产品:腾讯云GPU计算服务(https://cloud.tencent.com/product/gpu-computing)可以提供强大的GPU计算能力,用于加速图像处理等计算密集型任务。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

函数表达式JavaScript如何工作

JavaScript,函数表达式一种将函数赋值给变量方法。函数表达式可以出现在代码任何位置,而不仅仅是函数声明可以出现位置。...函数表达式语法如下: var myFunction = function() { // 函数体 }; 上述代码,将一个匿名函数赋值给变量myFunction。...函数表达式工作方式如下: 1:变量声明:使用var、let或const关键字声明一个变量,例如myFunction。 2:函数赋值:将一个函数赋值给该变量。函数可以是匿名函数,也可以是具名函数。...这样函数函数内部和外部都可以通过函数名来调用自身。...函数声明会被提升到作用域顶部,而函数表达式不会被提升。因此,使用函数表达式之前,需要确保该表达式已经被赋值。此外,函数表达式还可以根据需要在运行时动态创建函数,具有更大灵活性。

21250
  • 高级语言中语句汇编如何实现

    我们都知道对于c语言来说,它是需要先转换成汇编语言,然后再生成机器语言。那么c语言中,各种条件语句,各种表达式计算,汇编何如实现呢?今天我们就来讲解一下。...跳转指令 跳转指令可以说是实现高级语言条件核心,因为一切条件判断或者循环语句,底层都是通过跳转指令来实现。...汇编语言中,我们可以通过设置标号来实现语句跳转,例如高级语言if判断,汇编语言中,就可以这样实现。 对于循环语句,其实也是一样,也是通过跳转指令来实现。...循环内部,EAX val1 代理(替代品),对 val1 引用必须要通过 EAX。JNL 使用意味着 val1 和 val2 有符号整数。...逻辑判断实现也是通过跳转指令来实现,具体如下。 通过上面的例子我们可以看出,无论怎样复杂逻辑,无论循环还是条件判断,底层汇编层,其实都是通过跳转指令来实现

    64520

    EDI(电子数据交换)供应链如何工作

    EDI(电子数据交换)如何工作,这大概企业主、公司经理、企业EDI系统管理人员常问一个问题。尽管现在EDI已经一项相当广泛技术,但仍有一些问题需要讨论。...那些没有连接到EDI的人通常并不理解EDI(电子数据交换)和互联网通信技术之间区别。那么EDI(电子数据交换)供应链如何工作呢?继续阅读下文,您将会找到一个答案。...如果您有接触或是了解过采购业务传统文件流通方式,您可能会注意到,纸张操作和邮寄需要花费大量时间。...与此同时,将订单、商品等信息手动录入到交易伙伴业务平台中花费了大量时间和精力,占用了大量的人力资源。...商品到达之前,收货方已经收到供应商发送发货通知,进而完全掌握了关于此次运输货物所有信息并及时做出收货准备。

    3.2K00

    跨域资源共享(CORS)ASP.NET Web API如何实现

    《通过扩展让ASP.NET Web API支持W3CCORS规范》,我们通过自定义HttpMessageHandler自行为ASP.NET Web API实现了针对CORS支持,实际上ASP.NET...实现SendAsync方法,当CorsRequestContext根据表示当前请求HttpRequestMessage对象创建之后,会根据其IsPreflight属性选择调用方法HandleCorsPreflightRequestAsync...实例演示:创建MyCorsMessageHandler模拟具体采用授权检验 为了让读者朋友们对实现在CorsMessageHandler具体CORS资源授权流程具有更加深刻认识,我们现在将这样授权检验逻辑实现在一个自定义...对于非预检请求来说,只有它通过了资源授权检验情况下,我们才会调用扩展方法AddCorsHeaders将从CorsResult得到CORS报头添加响应报头集合。...方法 通过上面的介绍我们知道针对ASP.NET Web APICORS编程首先需要做就是程序启动之前调用当前HttpConfiguration扩展方法EnableCors开启对CORS支持,那么该方法具体实现了怎样操作呢

    2.5K110

    【Linux】解析【进程PCB】如何实现【信号处理方式(抵达未决阻塞)】

    注意: 被阻塞 信号产生时将 保持未决状态 ,直到进程解除对此信号阻塞,才执行递达动作....注意,阻塞和忽略不同,只要信号被阻塞就不会递达,而忽略递达之后可选一种处理动作 二.信号处理动作在内核表示 1.示意图&作用机制介绍&信号集sigeset_t介绍...(pending),还有一个函数指针表示处理动作 信号集(sigeset_t): 这个类型可以表示每个信号“有效”或“无效”状态; 非0即1 阻塞信号集中“有效”和“无效”含义该信号是否被阻塞...block位图为1;阻塞状态解除后设置成0; 2.演示在三张表表示 演示: 3.如何改变信号默认实现动作 【1】实现原理:设置信号【默认处理函数】变成【自定义函数】 每个进程...PCB 都有如下图所示三张表,分别叫做 阻塞信号集,未决信号集,处理动作集 ,对应各个信号(1-64) 其中handler表存储函数指针,指向对应处理动作 原理:我们只要改变我们要改变信号

    12610

    角点检测集锦(Harris,Shi-Tomasi,亚像素级角点检测)原理及相关实现

    角点处,沿任意方向运动都会引起像素颜色明显变化等价于:角点附近,图像梯度具有至少两个主方向。 如何实现角点检测?...转换一下: 其中当R0时,角点,R0附近时,则表示平滑区域。这里α0.04到0.06之间,一个经验值常数。...角点处,沿任意方向运动都会引起像素颜色明显变化等价于:角点附近,图像梯度具有至少两个主方向。 如何实现角点检测?...转换一下: 其中当R0时,角点,R0附近时,则表示平滑区域。这里α0.04到0.06之间,一个经验值常数。...代码实现: Harris #include "opencv2/imgcodecs.hpp" #include "opencv2/highgui.hpp" #include "opencv2/imgproc.hpp

    1.1K20

    python光流法算法学习「建议收藏」

    基于python-opencv程序对光流法理解 光流法定义 Lucas-Kanade光流原理 Shi-Tomasi角点检测 python-opencv代码demo 光流法定义 光流法空间运动物体观察成像平面上像素运动瞬时速度...,利用图像序列像素时间域上变化以及相邻帧之间相关性来找到上一帧跟当前帧之间存在对应关系,从而计算出相邻帧之间物体运动信息一种方法。...一般而言,光流由于场景前景目标本身移动、相机运动,或者两者共同运动所产生。 简单来说,光流空间运动物体观测成像平面上像素运动“瞬时速度”。...Shi-Tomasi角点检测 opencv调用goodFeaturesToTrack函数来实现角点检测 void goodFeaturesToTrack( InputArray image, OutputArray...第八个参数为false时,该参数不起作用; mask可以指定角点产生区域,划定检测范围 python-opencv代码demo opencv中提供了一个函数来实现K-L算法:cv2.calcOpticalFlowPyrLK

    1.6K20

    OpenCV 之 角点检测

    角点 (corners) 定义有两个版本:一 两条边缘交点,二 邻域内具有两个主方向特征点。     一般而言,角点边缘曲线上曲率为极大值点,或者 图像亮度发生剧烈变化点。...例如,从人眼角度来看,下图 $E$ 和 $F$ 便是典型角点 1  检测思路     图像定义一个局部小窗口,然后沿各个方向移动这个窗口,则会出现 a) b) c) 三种情况,分别对应平坦区、...Harris 角点改进,多数情况下,其检测效果要优于 Harris。..._2)  $   则相应 $\lambda_1-\lambda_2$ 平面为: 3.1  goodFeaturesToTrack()     OpenCV Shi-Tomasi 角点检测函数为:...代码实现如下: #include #include "opencv2/highgui.hpp" #include "opencv2/imgproc.hpp" using namespace

    60550

    手撕OpenCV源码之高斯模糊

    ); } 从上述代码大致分析可以知道,OpenCVGaussianBlur本质上依然filter2D,只是针对一些特殊情况进行了GPU和CPU版本优化,如果输入维度等信息不满足这些特殊情况,...看代码公式,ksize = round(2 * 3 * sigma + 1) | 1;注意与1按位或,保证结果为奇数.另外需要注意,OpenCV认为当图像类型为CV_8U时候能量集中区域为3 *...接着往下看,会发现,OpenCV获取了两个方向GaussianKernels,kx和ky.当两个方向sigma相同,尺寸相同时候,两个方向上kernels相同.这是因为gaussianBlur...细心读者可能发现在第一部分OpenCV调用filter2D其实是sepFilter2D,这是一种可分离二维滤波器,同样出于优化考虑....以上OpenCV关于高斯滤波器系数以及高斯滤波计算规则,欢迎指正. 本文投稿作者邮箱 dingjie_yao@163.com

    2.4K30

    手撕OpenCV源码之高斯模糊

    ); } 从上述代码大致分析可以知道,OpenCVGaussianBlur本质上依然filter2D,只是针对一些特殊情况进行了GPU和CPU版本优化,如果输入维度等信息不满足这些特殊情况,...看代码公式,ksize = round(2 * 3 * sigma + 1) | 1;注意与1按位或,保证结果为奇数.另外需要注意,OpenCV认为当图像类型为CV_8U时候能量集中区域为3 *...接着往下看,会发现,OpenCV获取了两个方向GaussianKernels,kx和ky.当两个方向sigma相同,尺寸相同时候,两个方向上kernels相同.这是因为gaussianBlur...细心读者可能发现在第一部分OpenCV调用filter2D其实是sepFilter2D,这是一种可分离二维滤波器,同样出于优化考虑....以上OpenCV关于高斯滤波器系数以及高斯滤波计算规则,欢迎指正. 本文投稿作者邮箱 dingjie_yao@163.com

    55420

    OpencvgoodFeaturesToTrack函数(Harris角点、Shi-Tomasi角点检测)算子速度进一步优化(1920*1080测试图11ms处理完成)。

    那个代码里使用Opencv函数叫 goodFeaturesToTrack, 一开始我还以为个用户自定义函数呢,代码里就根本没找到,后面一搜原来CV自带函数,其整个调用为:       goodFeaturesToTrack...我们查看了下Opencv代码,写不是很复杂,但是我想对一副1920*1080视频进行去燥,尝试了下仅仅运行goodFeaturesToTrack其中一个子函数cvCornerHarris,大概就需要...我们知道,每次加载内存和保存数据到内存在某种程度上来说都是有着较大消耗,但是CPU内核里进行一些计算速度相当快,因此,既然上述这是几个功能其实可以集中到一起实现,我们就没有必然分散到各个函数...四、速度优化结果探讨   经过一系列操作,我做了5个版本测试,第一个基本重复Opencv代码,第二个按照上述描述吧threshold, dilate等过程集中到一起,第三个使用-255到255...回到我们初衷,我们想实现视频实时增强,这个一般要求单帧处理耗时不易大于20ms, 看来即使使用我这个最简化版本,实时梦想还是不太靠谱啊,哎,还是得靠GPU来做。

    50740

    OpenCV:特征及角点检测

    目标1 本章,将学习 理解什么特征 为什么拐角重要等 解释 大多数人都会玩拼图游戏。会得到很多小图像,需要正确组装它们以形成大真实图像。问题,你如何去拼图?...如何将许多杂乱图像片段排列成一个大单张图像?如何将许多自然图像拼接到一张图像上? 答案寻找独特、易于跟踪和比较特定模板或特定特征。...如何找到它们?还是如何找到角落?我们以一种直观方式回答了这一问题,即寻找图像在其周围所有区域中移动(少量)变化最大区域。接下来章节,这将被投影到计算机语言中。...因此,可以OpenCV寻找不同算法来查找特征,对其进行描述,进行匹配等操作。...OpenCV哈里斯角检测 OpenCV中有实现哈里斯角点检测,cv2.cornerHarris()。

    44130

    opencv角点检测学习总结

    article/details/29356187 写作当前博文时配套使用OpenCV版本: 2.4.9 本篇文章,我们一起探讨了OpenCVHarris角点检测相关知识点,学习了OpenCV...”, harrisCorner); waitKey(0); return 0; } 运行截图: 六、本文相关核心函数OpenCV实现源代码 这个部分贴出OpenCV...由于这种Shi-Tomasi算子与1994年文章 Good Features to Track [1]中提出,OpenCV 实现算法函数名定义为 goodFeaturesToTrack: [cpp...:OpenCV2.4版本后好像把SurfFeatureDetector这个类定义移到了头文件nonfree/features2d.hpp ,所以头文件要加入该文件,并且要把opencv_nonfree24xd.lib...加入属性表链接器熟悉输入,其中x换成你当前opencv版本号。

    91020

    【JavaP6大纲】SpringCould篇:如何限流?在工作怎么做?说一下具体实现

    如何限流?在工作怎么做?说一下具体实现? 计数器:控制单位时间内请求数量。...缺陷:设每分钟请求数量为60个,每秒可以处理1个请求,用户 00:59 发送 60 个请求, 01:00 发送 60 个请求 此时2秒钟有120个请求(每秒60个请求),远远大于了每秒钟处理数量阈值...滑动窗口:滑动窗口对计数器方式改进, 增加一个时间粒度度量单位。...把一分钟分成若干等分(6份,每份10秒), 每一份上设置独立计数器, 00:00-00:09 之间发生请求计数器累加1.当等分数量越大限流统计就越详细。...Token Bucket令牌桶:规定固定容量桶, token 以固定速度往桶内填充, 当桶满时 token 不会被继续放入, 每过来一个请求把 token 从桶移除, 如果桶没有 token 不能请求

    34330

    OpenCV4.4刚刚发布!支持YOLOv4、EfficientDet检测模型,SIFT移至主库!

    注:OpenCVDNN模块大多数用于inference,因为其并不是担任深度学习框架角色,所以大多数模型并非首发,而是支持。...2.3 支持FlowNet2 FlowNet2 基于深度学习光流估计网络,早期开源版本就是基于Caffe框架,现在终于迁移过来了。 ? FlowNet2 ?...版本支持 CUDA后端许多修复和优化 三、G-API模块 ?...G-API引入了更多面向视频操作:goodFeaturesToTrack,buildOpticalFlowPyramid,calcOpicalFlowPyrLK。...注:这本书OpenCV发起者所写,官方认可书籍。其中涵盖大量图像处理基础知识介绍,虽然API还是基于OpenCV 3.x,但结合此书和最新API,可以很好学习OpenCV。 ?

    1.2K20

    OpenCV 关于版本一些说明

    近期接触了 OpenCV 多种版本,本文记录搜集到信息。...目录 OpenCV 对 Python 版本支持 OpenCV版本、Contrib 版本以及 Headless 版本含义 关于 OpenCV NonFree 相关信息 OpenCV 对 Python...版本支持 从 pypi opencv 清华镜像源可以看到 OpenCV 与 Python 版本支持关系,此处做整理总结: OpenCV 版本 Python 版本 备注 3.4.0.X - 3.4.1...) 注意:不要在同一环境安装多个不同软件包,按需安装某一个 opencv python 包就可以了 NonFree OpenCV 一个开源图像处理库,其中部分库由于种种原因不再免费开源,OpenCV...特征最开始可以使用 (3.4.10 之前),之后有很长一段时间 OpenCV 不能直接用(4.2.x 之前) 12 # 这个时期用法cv2.xfeatures2D.SIFT_create ()

    27310

    Harris 像素级角点检测

    图像存在很多物体拐角,本文记录像素级角点检测算法 Harris 和 Shi Tomasi。 角点简介 现实世界,角点对应于物体拐角,道路十字路口、丁字路口等。...从图像分析角度来定义角点可以有以下两种定义: 角点可以是两个边缘角点; 角点邻域内具有两个主方向特征点; 一提到角点检测,最常用方法莫过于Harris角点检测,opencv 也提供了 Harris...角点检测接口,即cornerHarris(),但是 Harris 角点检测存在很多缺陷(如角点像素级别的,速度较慢等),opencv 中有另一个功能更为强大函数— goodFeaturesToTrack...但是,该函数检测到角点依然像素级别的。 角点检测基本原理 人眼对角点识别通常是一个局部小区域或小窗口完成。...自相关函数值某一方向上大,在其他方向上小。 图像平面。两个特征值都小,且近似相等;自相关函数数值各个方向上都小。 图像角点。两个特征值都大,且近似相等,自相关函数在所有方向都增大。

    87910

    OpenCV 角点检测(三) Shi-Tomasi

    Shi-Tomasi算子Harrise算子基础上改进,改进之处在于他们使用了不同响应函数。...Harrise算子响应函数为: Shi-Tomasi算子响应函数为: opencv实现 opencv提供了goodFeaturesToTrack函数用来实现Shi-Tomasi算子,其API函数接口为...角点 第九个参数:Harris角点检测需要k值 goodFeaturesToTrack源码位置: …\opencv\sources\modules\imgproc\src\featureselect.cpp...ofs / eig.step); //角点在原图像行 int x = (int)((ofs - y*eig.step)/sizeof(float)); //原图像列...邻域像素已有被保留强角点,则说明该强角点(y,x)之前就被测试过,又因为tmpCorners已按照特征值降序排列(特征值越大说明角点越好),这说明先测试一定是更好角点,也就是已保存强角点一定好于当前角点

    34830
    领券