首页 > 其他分享 >基于灰度值的匹配方法研究(三)

基于灰度值的匹配方法研究(三)

时间:2023-07-20 09:03:55浏览次数:51  
标签:化简 基于 right 匹配 公式 sum 灰度 left

这一篇文章讨论一些灰度匹配中的问题和新发现。目前主要有以下三个问题。

一、相似度计算

在本系列第一篇文章中用的相似度公式的分子中两项的乘积是取了绝对值的。这样它的取值范围就一定大于0。其实这个公式的分子可以不取绝对值,那它就可以化简了。此时它的取值范围是[-1,1]。这种化简方法来自于文章《【工程应用一】 多目标多角度的快速模板匹配算法(基于NCC,效果无限接近Halcon中........) - Imageshop - 博客园 (cnblogs.com)》。观察可知不取绝对值的相似度公式${ R \left(i,j \right) }$就是概率论中互相关系数公式。可以用互相关系数相关公式进行化简,化简后公式如下:

$${ R \left(i,j \right)=\frac{  \sum_{r=1}^{R}\sum_{c=1}^{C} S^{i,j}\left( r,c \right) T\left( r,c \right) - \overbrace{E\left( T \right)}^{P} \sum_{r=1}^{R}\sum_{c=1}^{C} S^{i,j}\left( r,c \right) }  { \sqrt{ \sum_{r=1}^{R}\sum_{c=1}^{C} \left[ S^{i,j}\left( r,c \right) \right]^{2} - \frac{1}{RC} \left[ \sum_{r=1}^{R}\sum_{c=1}^{C} S^{i,j}\left( r,c \right) \right]^{2} }  \underbrace{ \sqrt{ RC \left[ E \left( T^{2} \right) - E^{2} \left( T \right) \right] } }_{Q} } }$$

上式中的P和Q仅和模板有关,可以提前计算。可以看出来化简后少了一次求${ S^{i,j} }$平均值的循环,经过测试在普通C++代码下大约能提高一倍的效率。此外,少一次循环也更有利于使用SSE/AVX指令优化代码。但是在GPU加速的模式下效率没有明显变化。具体原因不清楚,可能是我不会优化GPU代码。

二、亚像素求精

在本系列第一篇文章中提到的亚像素求精方法是引自一篇硕士论文中的3×3×3点拟合法。但是这种方法在实际运用中会出问题。因为是最小二乘法拟合,所以尽管这27个点的中心点的相似度最大也无法保证拟合后的函数极值在这27个点的中心点附近,有时候甚至会跑出拟合范围[-1,1]外。亚像素求精的问题值得关注。

三、提高稳定性

一般而言,应当从生成模板方面入手,想一个更优的方法提取样本点。目前我还没有找到更好的方法。

标签:化简,基于,right,匹配,公式,sum,灰度,left
From: https://www.cnblogs.com/mengxiangdu/p/17566223.html

相关文章

  • m基于合成指纹的数字信息隐藏和提取matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要随着互联网和数字化技术的快速发展,数字信息的保护和安全已经成为了一个严峻的问题。数字信息隐藏技术是一种将敏感信息嵌入到其他无关信息中的技术,以此来保护信息的安全。其中,基于合成指纹的数字信息隐藏技术是一......
  • m基于合成指纹的数字信息隐藏和提取matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:        2.算法涉及理论知识概要        随着互联网和数字化技术的快速发展,数字信息的保护和安全已经成为了一个严峻的问题。数字信息隐藏技术是一种将敏感信息嵌入到其他无关信息中的技术,以此来保护信息的......
  • 六月学习之Haproxy ACL实践(基于后缀调度)
    2、ACL场景实践2.4、ACL案例-基于后缀调度根据用户请求的后缀,调度到不同的后端集群用户通过.txt调度到172.16.1.7:80用户通过.pdf调度到172.16.1.8:802.4.1、配置后端节点#web1:.txt站点定义cat/etc/nginx/conf.d/www.qingchen.com.confserver{listen8080;server_......
  • 基于Avalonia 11.0.0+ReactiveUI 的跨平台项目开发2-功能开发
    基于Avalonia11.0.0+ReactiveUI的跨平台项目开发2-功能开发项目简介:目标是开发一个跨平台的AI聊天和其他功能的客户端平台。目的来学习和了解Avalonia。将这个项目部署在openKylin1.0的系统上。为什么使用Avalonia:之前已经了解了基于Avalonia的项目在国产麒麟系统中运行的......
  • Docker安装的fastdfs基于不同服务器的数据迁移
    首先,基于docker搭建新的fastdfs中间件,参考地址为:https://blog.csdn.net/ming19951224/article/details/126933299然后将原服务器的storage文件夹下的data文件夹进行备份,打包成bak.zip 将bak.zip下载后上传到新服务器的storage文件夹下 使用unzip解压缩bak.zip,然后进入data.......
  • CPU环境下运行基于yolov5的行人检测代码(pedestrain detection based on yolov5 in CPU
    最近在捣腾基于yolov5的行人检测代码,在github上下载一个案例之后因为没用GPU运行一直碰壁,出现了许多bug,现在整理了下error和解决方法,成功调试出了基于yolov5的行人检测代码,分享给大家~1.运行环境:window10,CPU,VisualStudioCode2.项目路径:dyh的 unbox_yolov5_deep......
  • ServerName匹配规则
          原文链接:https://blog.csdn.net/Learning_xzj/article/details/124518509......
  • Whistle(基于Node实现的跨平台转包调试工具)的使用
    可抓包,可显示vconsolet调试一、安装npmi-gwhistle二、启动手机和电脑处于同一网络w2start--init浏览器打开地址:http://127.0.0.1:8899/三、配置Rules:https://testh.app.coc.10086.cnwhistle.inspect://vConsoleconsole安装插件: w2installwhistle.ins......
  • 【实战技能】基于硬件垂直消隐的多缓冲技术在LVGL, emWin,GUIX和TouchGFX应用,含视频教
    原贴地址:https://www.armbbs.cn/forum.php?mod=viewthread&tid=120114这两天研究了下LVGL的持单缓冲,双缓冲和配合硬件消隐的双缓冲的实现(已经分享V5,V6和V7开发板的程序模板),特别是这个整屏缓冲方案,这几款GUI的实现基本是一样的,所以专门开了一期视频做个分享。视频:https://www.b......
  • 基于200篇文献的中式英语常见错误人工总结(学习总结和视频放送)
    TheMostCommonHabitsfrommorethan200EnglishPaperswrittenbyGraduateChineseEngineeringStudentsByFeliciaBrittman这篇文章通过示例,一对一的指出原文写法错误是什么,应该怎么写,为什么会出现这个错误,并给出一些修改建议。可以作为自己写作前指导或写作后检查指导。......