1.在做某个项目的过程中,需要检测某个区域产品厚度不一的情况
因为要检测其他缺陷,所以用面阵相机,没有用线扫相机
图像如下:

2.使用创建很多测量句柄,measure_pos,得到很多点,连接成xld,显示如下

会出现干扰的情况
3.也会出现OK的产品,找到两个边界的情况

类似上图所示,红色边缘是干扰边缘,绿色边缘是真实边缘

所以想通过找到的两条边界和Demo(边界)做对比
假设和Demo的相关性一致,那么说明该边是边界。
该边在上,则说明下面区域有缺陷
该边在下,则说明上面区域是干扰

因为皮尔森相关系数的公式如下:

可以理解为Xi是Demo数组
Yi是测试数组。
假设 A:= [2,7,18,88,157,90,177,570] ,平均值 138.625 ,方差186.457
B:=[6,10,30,180,360, 176,320,1160] ,平均值 280.25 ,方差380.543
两个数组的平均值和方差差距都很大,但是皮尔森相关系数为0.998
相关系数 0.8-1.0 极强相关
0.6-0.8 强相关
0.4-0.6 中等程度相关
0.2-0.4 弱相关
0.0-0.2 极弱相关或无相关
如果结果是负数,说明Xi增大时,Yi减小,他们是负相关
结果是正数,说明Xi增大时,Yi增大,他们是正相关

*使用皮尔森相关系数来计算相关性
*TupleTest是待测数组,TupleDemo是模板数组*数组长度,即求和数量tuple_length (TupleTest, Count)tuple_length(TupleDemo,Count1)if (Count1<Count)return()endiftuple_select_range (TupleDemo, 0, Count-1, TupleDemo)*待测数组的求和tuple_sum (TupleTest, UpSum)tuple_sum (TupleDemo, DemoSum)*得到A数组的每个元素*B数组的每个元素,再求和ABSum:=0ACSum:=0for I := 0 to Count-1 by 1temp:=TupleTest[I]*TupleDemo[I]ABSum:=ABSum+tempendfor*分子值upValue:=Count*ABSum-UpSum*DemoSum*数组的每个元素都平方,形成新数组RowUpSquare:=[]RowDemoSquare:=[]for I := 0 to Count-1 by 1a1:=TupleTest[I]*TupleTest[I]RowUpSquare:=[a1,RowUpSquare]a2:=TupleDemo[I]*TupleDemo[I]RowDemoSquare:=[a2,RowDemoSquare]endfortuple_sum (RowUpSquare, RowUpSquareSum)tuple_sum (RowDemoSquare, RowDemoSquareSum)*分母有两项,左边和右边m1:=Count*RowUpSquareSum-UpSum*UpSumm2:=Count*RowDemoSquareSum-DemoSum*DemoSumtuple_sqrt (m1, Sqrt1)tuple_sqrt (m2, Sqrt2)PValue:=upValue/(Sqrt1*Sqrt2)

Halcon:计算两条曲线的相关性(皮尔森系数)相关推荐

  1. ITK:两条曲线上所有点之间的平均距离

    ITK:两条曲线上所有点之间的平均距离 内容提要 输出结果 C++实现代码 内容提要 计算两条曲线的所有点之间的平均距离. 输出结果 C++实现代码 #include "itkImage.h ...

  2. 比较两条曲线的相似程度

    两条曲线为二维矩阵,可能存在x不对齐的情况,用二维相关系数corr2函数计算. 当A=[1 ,3 ,5;1 ,3 ,5];B=[2, 4, 6;2, 4, 6]则corr2(A,B)=1: AB都为y ...

  3. 求两条曲线的交点 matlab,matlab求两条曲线交点

    用Matlab 实现了 3 次样条曲线插值的算法.边界条件取为自然边界条件,即:... 二元一次函数曲线拟合的Matlab实现_IT/计算机_专业资料.第 27 卷 1... (x1)); y2=in ...

  4. python画数组曲线_python – 在matplotlib中如何填充由两组不同数组定义的两条曲线?...

    我有两组由两组数组定义的曲线:(x1,y1)和(x2,y2),我想用多边形填充它们.所有数组的长度相同,但x1和x2包含不同的值. plt.fill_between(x,y1,y2)要求两条曲线共享相 ...

  5. python画两条曲线_查找在matplotlib中绘制的两条曲线之间的区域(在区域之间填充)...

    我有两条曲线的x和y值列表,它们都有奇怪的形状,而且我没有任何函数.我需要做两件事:(1)绘制它并对曲线之间的区域进行着色,如下图所示:(2)找到曲线之间该着色区域的总面积. 在matplotlib中 ...

  6. 根据坐标如何在matlab中l连成曲线,matlab中,如何将两条曲线画在一个坐标系里,plot(x1,x2,y1,y2)还是怎样...

    matlab中,如何将两条曲线画在一个坐标系里,plot(x1,x2,y1,y2)还是怎样以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快 ...

  7. JAVA计算两条直线的交点(判断两条线段相交)

    //计算两条直线的交点 //输入四个点,前两个点确定线段1,后两个点确定线段2 //输出交点坐标 public class Main{public static void main(String ar ...

  8. R语言ggplot2可视化、在一张图中画出两条曲线(two lines in same ggplot2 graph)、使用pdf函数将ggplot2可视化图像保存到指定目录的pdf格式文件中

    R语言ggplot2可视化.在一张图中画出两条曲线(two lines in same ggplot2 graph).使用pdf函数将ggplot2可视化图像保存到指定目录的pdf格式文件中 目录

  9. excel一张图绘制两条曲线

    excel一张图绘制两条曲线 分别使用不同的坐标轴 设置主坐标轴.次坐标轴 醉了,在右边啊!!!

  10. OpenCV计算两条平行线之间的距离

    代码来自www.opencvchina.com #include "cv.h" #include "highgui.h" #include "cxco ...

最新文章

  1. 设计模式之简单工厂模式(Simply Factory)摘录
  2. html图片缩放6,四款css 图片按比例缩放实例(兼容ie6,7,firefox)
  3. 将中缀表达式转化为后缀表达式
  4. uva 11069 A Graph Problem
  5. 微软雷德蒙德和伦敦地区掀起新一轮裁员 涉及数百人
  6. 收好这份 Vue 升级图,假期偷偷上个钻
  7. mac 上mysql_connect_Warning: mysql_connect(): No such file or directory 解决方案总结(操作系统: Mac)...
  8. 3 连接sybase_今日头条面试官:给我说说数据库连接池的原理?
  9. java 解析xml文件
  10. vue 下载文件跨域
  11. 鹏业安装算量软件功能按钮汇总(一)
  12. Crafted Item - 合成装备
  13. MySQL分库分表面试知识总结
  14. [故事]只会写自己名字的港大院士(图)
  15. [线段树 || (STL)set ] P2161 [SHOI2009]会场预约
  16. win电脑解析获取微信小程序源码(分包及具体操作)
  17. 嵌入式系统----原理与应用技术考点
  18. 做电商直播如何选择主播|普通商家版
  19. 19年以后ArcGIS 调用天地图
  20. CI持续集成之cruiserControl用户安全处理

热门文章

  1. 超算入门笔记:大型机上如何运行WRF模式?一文总结(并行运算、Linux基础、作业调度、WRF运行)
  2. ICON设计的7个实用原则
  3. oracle 取前行,【企业信息化研究所】TF-SWUFE Oracle Club抵着寒风前行—甲骨文俱乐部第九周分享会...
  4. gofpdf 学习笔记
  5. 黑暗城堡(最短路径树)
  6. 转行测试,11k入职,我写了份1000多字的分享,每一笔都是经历
  7. 硬件测试转软件研发,硬件测试可以考虑的发展方向
  8. Pytorch训练问题:AssertionError: Invalid device id
  9. 使用命令行——查看笔记本电池损耗程度
  10. 酷睿i5 1235u参数 i5 1235u处理器怎么样