降采样方法对NCC得分的影响因素评估

定位算法原理

关于不同的定位场景,最适合使用的算法原理,Halcon的原理文档中描述如下:
在这里插入图片描述

在图案缩放可用忽略,图案纹理丰富的场景,适合采用基于互相关的匹配。
输入参考图像,搜索图像,参考图像在搜索图像上滑动,得到滑动位置的NCC得分。如下图所示,高于阈值的最亮的地方认为是匹配位置。
在这里插入图片描述

从左到右分别是Search图,Kernel图,Score图。
比如搜索图是128128,模板图是6464,那么得分图为(128-64+1)*(128-64+1)。

使用的ZNCC公式:
在这里插入图片描述

定位工具原理

基于互相关的方案,会使用金字塔的方法进行优化,定位工具的原理为使用44降采样,22降采样,原始图不同尺度进行关联定位。高层金字塔的候选定位结果指导低层金字塔的小范围搜索,当低层金字塔定位失败时,可用使用高层金字塔给出一个可用接受的定位结果。

算法流程

原理

根据不同的配置,走不同的流程,默认不直接定位,不粗定位。
在这里插入图片描述

坐标系

ImKernel模板图像上的rcKernel生成定位的模板;
ImSearch检测图上指定搜索区域,Kernel在其上滑动,得到定位结果。
定位锚点在Kernel的中心。
在这里插入图片描述
按层定位,降采样定位结果在下一层金字塔上会扩展2像素进行搜索。

在这里插入图片描述

降采样方法对NCC得分影响

使用图像金字塔方法,可以提高算法效率,但降采样会对NCC得分造成影响。不合适的降采样方法,会导致NCC得分的显著降低。从而在高层金子塔无法找到候选结果,从而导致无法找全定位结果。这对当前自动建模确定版周有一定的影响。

均值降采样方法

在做4倍binning时,一个简单的实现是使用44的均值滤波,然后抽掉非4的整倍数的行和列得到降采样结果。这个算子效率会很高。
在这里插入图片描述
这种方法,即使是对于相同的图像,在xy方向各平移2像素后,重新降采样,得到的结果图像和原始图像降采样得到的图像在像素值上会有显著的差异。
一个极端了例子如下:
在这里插入图片描述
平移2
2像素后:
在这里插入图片描述
黑白网格降采样后居然变成了128的纯色灰度图。在这个极端的例子中,这个降采样方法是不能用的。

高斯降采样方法

参考opencv中pyrDown和buildPyramid,其代码实现使用的是
在这里插入图片描述
的高斯核。
滤波后抽掉偶数行和列,得到降采样后的图。
使用这个方法,上述黑白网格图像的滤波结果为:
在这里插入图片描述
继续降采样,得到结果为:
在这里插入图片描述
纹理特征仍然保留,且不随图像的平移而丢失纹理特征。
如果是对88的黑白网格,平移2个像素,使用均值滤波结果为
在这里插入图片描述
平移4个像素的滤波结果为:
在这里插入图片描述
而使用5
5高斯降采样的结果为,不随平移变化:
在这里插入图片描述

  • 21
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
vc++全版本组件大全 VC++运行时(Visual C++ Runtime)是VC++开发环境中用于支持C和C++程序运行的基础库集合。这些库包含了执行C/C++程序所必需的基本函数和数据结构,例如内存管理、字符串操作、输入输出处理、异常处理等。VC++运行时库分为静态库和动态库两种形式,以适应不同类型的项目需求。 静态链接库 vs 动态链接库 静态链接库(Static Linking Libraries):在编译时,静态库的代码会被直接嵌入到最终生成的可执行文件中。这意味着每个使用静态库的程序都会包含库代码的一个副本,导致最终程序的体积较大,但不需要外部库文件支持即可独立运行。在VC++中,静态链接库的例子有LIBC.lib(用于单线程程序)和LIBCMT.lib(用于多线程程序)。 动态链接库(Dynamic Link Libraries):与静态链接相反,动态库的代码并不直接加入到应用程序中,而是在程序运行时被加载。这使得多个程序可以共享同一份库代码,节省了系统资源。VC++的动态运行时库主要通过msvcrt.dll(或其变体,如MSVCRTD.dll用于调试版本)实现,与之配套的导入库(Import Library)如CRTDLL.lib用于链接阶段。 运行时库的版本 VC++运行时库随着Visual Studio版本的更新而发展,每个版本都可能引入新的特性和优化,同时保持向后兼容性。例如,有VC++ 2005、2008、2010直至2019等多个版本的运行时库,每个版本都对应着特定的开发环境和Windows操作系统。 重要性 VC++运行时对于确保程序正确运行至关重要。当程序在没有安装相应运行时库的计算机上执行时,可能会遇到因缺失DLL文件(如MSVCP*.dll, VCRUNTIME*.dll等)而导致的错误。因此,开发完成后,通常需要分发相应的VC++ Redistributable Packages给最终用户安装,以确保程序能够在目标系统上顺利运行。 安装与部署 安装VC++运行时库通常是通过Microsoft提供的Redistributable Packages完成的,这是一个简单的过程,用户只需运行安装程序即可自动安装所需组件。对于开发者而言,了解和管理不同版本的运行时库对于确保应用程序的广泛兼容性和可靠性是必要的。
NCC财务共享是一种将财务信息和资源共享给各个部门或业务单位的方法。实施NCC财务共享的方法主要包括以下几个步骤: 首先,建立财务共享平台。该平台应具备相应的硬件设施和软件系统,用于实现财务数据的共享和传输。同时,需要制定相关的安全政策和权限控制机制,保障数据的安全性和机密性。 其次,标准化财务流程和数据。对于不同部门和业务单位的财务流程进行分析和优化,设计统一的标准流程。对于财务数据,需要进行分类和标准化,确保数据的准确性和一致性,以便实现共享和分析。 然后,制定共享规则和合同。明确各个部门和业务单位之间的财务共享规则,确定资源的共享范围、时间周期和数据格式等。并签订相应的共享合同,确保各方的权益和责任得到保障。 接着,进行培训和沟通。开展针对财务共享系统的培训,包括系统的操作和数据的使用等。同时,加强各个部门和业务单位之间的沟通和协调,确保共享实施过程的顺利进行。 最后,监控和评估财务共享效果。建立一套完善的监控机制,监测财务共享的效果和运行情况,及时发现问题并进行调整。同时,定期评估财务共享的效果和价值,为进一步推进财务共享提供参考和依据。 综上所述,NCC财务共享的实施方法包括建立共享平台、标准化流程和数据、制定共享规则和合同、进行培训和沟通,以及监控和评估财务共享效果等步骤。通过这些方法的实施,可以实现财务信息和资源的有效共享,提高工作效率和财务管理水平。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

仟人斩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值