光斑质心检测进行图像卷积之后,需对计算结果矩阵进行曲线拟合,以求出质心的亚像素坐标。

拟合的目的在于找出图像中灰度值最高的亚像素点的位置,Xmax,Ymax;

例:对图像中相邻的三点(x1 , gray1)、(x2 , gray2)、(x3 , gray3)进行拟合,x代表横坐标值,gray代表该位置的灰度值,gray2是检测图像的最大灰度值(也就是说质心就在(x2 , gray2)这个点附近)。同理,对y坐标进行拟合类似。

方法一:抛物线拟合

Xmax = X2 - 0.5 * (gray3 - gray1) /(gray3 + gray1 - 2 gray2)

方法二:高斯拟合(高斯公式为  f(x) = a1 * exp( - ((x - b1) / c1 )^2)   )

b1 = ( (x3 * x3 - x1 * x1) * ln(gray1 / gray2) - (x2 * x2 - x1 * x1) * ln(gray1 / gray3) )  /  ( 2(x3 - x1) * ln(gray1 / gray2) - 2(x2 - x1) *  ln(gray1 / gray3) ) ;c1 = sqrt( (x1 + x2 - 2b1 ) / (x2 - x1 ) / ln(gray1 / gray2) );a1 = y1 / exp( - ((x1 - b1) / c1) * ((x1 - b1) / c1)  );Xmax = b1;

这是个人计算并验证过的,如有误,欢迎讨论(只求b1即可)

方法三:一般拟合

Xmax = (gray1 * x1 + gray2 * x2 + gray3 * x3)/(gray1 + gray2 + gray3)

光斑质心检测之曲线拟合求亚像素位置的三种方式相关推荐

  1. 求字符串长度Strlen的三种方式

    前言 使用三种不同的方式实现strlen函数,也称为myStrlen(),分别使用计算器版本,递归版本,指针-指针 1.使用计数器版本 #include <stdio.h> #includ ...

  2. OpenCV(总结篇)图像逐像素访问(三种操作:指针、迭代器、at()函数)

    目录 概述 1.指针访问 2.迭代器访问 3.at()函数访问 总代码 效果 参考资料 概述 访问图像像素值是图像处理的基本操作.OpenCV提供了很多访问方式,比较常用的三种方式:  (1) 通过指 ...

  3. python函数拟合不规则曲线_python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案...

    第一种是进行多项式拟合,数学上可以证明,任意函数都可以表示为多项式形式.具体示例如下. ###拟合年龄 import numpy as np import matplotlib.pyplot as p ...

  4. Python---试除法求质数的三种方式对比

    此三种方法都是基于试除法,即不断地尝试能否整除.比如要判断自然数 x 是否质数,就不断尝试小于 x 且大于1的自然数,只要有一个能整除,则 x 是合数:否则,x 是质数. 方式1:从 2 一直尝试到 ...

  5. c语言求最小公倍数和最大公约数三种算法

    C语言求最小公倍数和最大公约数三种算法(经典) 求最小公倍数算法: 最小公倍数=两整数的乘积÷最大公约数 求最大公约数算法: (1)辗转相除法 有两整数a和b: ① a%b得余数c ② 若c=0,则b ...

  6. C语言求最小公倍数和最大公约数三种算法(经典)

    C语言求最小公倍数和最大公约数三种算法(经典) 最小公倍数:数论中的一种概念,两个整数公有的倍数成为他们的公倍数,其中一个最小的公倍数是他们的最小公倍数,同样地,若干个整数公有的倍数中最小的正整数称为 ...

  7. 【opencv学习笔记】第五篇:访问图像中像素的三种方式、ROI区域图像叠加和图像混合

    1. 访问图像中像素的三种方式 任何图像处理算法,都是从操作每个像素开始的.在OpenCV中,提供了三种访问每个像素的方法. 方法1:指针访问:C操作符[] 方法2:迭代器iterator 方法3:动 ...

  8. Python 高等数学应用 求导数的三种方式

    Python 高等数学应用 求导数的三种方式 方式一 使用SymPy的diff 函数, 可以得到函数的导数表达式,给出数学表达式里的数学符号描述符 本例使用了此方法 方式二 使用spicy.misc模 ...

  9. opencv学习(四)之像素遍历三种方式

    在上一篇文章中介绍了图像颜色空间缩减.查找表等内容.在对图像像素进行遍历时共有三种方法: (1). C操作符[] (指针方式访问) (2). 迭代器iterator (3). 动态地址计算 这三种像素 ...

最新文章

  1. Java中Comparable和Comparator区别小结
  2. 2021年高考成绩查询湖北状元,2021年湖北高考状元多少分,今年湖北高考状元资料名单...
  3. python把桢写入txt_ffmpeg 常用参数一览表及python 使用示例
  4. qq收不到oracle邮件,腾讯企业邮箱发送邮件失败
  5. Python很简单,你一定能学会【加油!】
  6. linux root所在目录,Linux下误删root目录
  7. VC++运行时静默安装
  8. 数字信号第二章freqz函数作业
  9. 是的你没看错,HTTP3来了
  10. 【专家推荐】保姆级开源工具推荐,一用一个爽,非常劲爆(收藏系列)
  11. Redundant declaration: @SpringBootApplication already applies given @ComponentScan
  12. html记忆游戏,html5 最强大脑最强记忆游戏
  13. 正则表达式的进阶用法——预查与分组
  14. 境外上市,一个绝非遥不可及的梦想!
  15. 管理远程团队的4种方法
  16. EKL-日志收集系统安装
  17. 已解决NameError: name ‘XXX‘ is not defined
  18. Linux下安装nginx,启动和重启
  19. matlab画三维点坐标,已知各个点的三维坐标(x,y,z),怎么用MATLAB画三维图
  20. 快速查询快递物流,根据更新量筛选出只揽收的单号

热门文章

  1. stl之bit_vector原理及应用
  2. pxe安装系统 ip获取错误_聊聊PXE的那点东西
  3. bat 等待输入_深蓝词库转换 - 简单的输入法词库转换工具
  4. python命令符bash_从python结构执行远程bash命令时“转义”$
  5. diff git 指定时间_【GIT】从指定分支两个Tag中获取差异文件,进行代码的增量更新...
  6. matlab中svm testacc参数,使用Matlab进行交叉验证的多类SVM的完整示例
  7. php 重写sessionid,PHP 重置 phpsessionid
  8. 如何在CentOS 7上安装Varnish Cache
  9. python html解析_Python HTML解析器
  10. 14-9-25日jenkins部署到tomcat的错误日志