如何将一张matlab图提取的圆轮廓图测定它的半径呀?求程序?
我在做毕业设计,利用matlab数字图像处理求圆度误差的,就是利用程序求出最大轮廓圆与最小轮廓圆的半径之差?...
我在做毕业设计,利用matlab数字图像处理求圆度误差的,就是利用程序求出最大轮廓圆与最小轮廓圆的半径之差?
展开
展开全部
给你提供个思路吧。
首先我假设你提取出的圆轮廓还算比较规整,圆度不至于偏差太大。
你只需要求出最大内切圆和最小外接圆即可。算法比较容易设计,简单来看可以分为三部分:
1)确定圆心。首先,你先填充原来的轮廓图,获得一个实心的圆。然后,统计这个圆的质心。
程序写起来很容易,就是x放心和y放心各自按照坐标加权平均而已。
2)求最大内切圆。在上一步获得的圆心基础上,计算出最大的半径值,使得以此半径构成的圆被最大地包含在原始的轮廓圆内部。这种包含关系直接使用俩图做差看剩余像素点是否在内切圆内即可。
3)最小外接圆。基本思路同2)。只不过这里要找一个最小的半径值,使得以此半径构成的圆最小地包含原始的轮廓圆。包含关系与2)类似,不再啰嗦。
2)、3)完成之后,问题就解决了。用matlab写成代码应该比较容易,你自己应该能做。
当然,以上的算法求出的圆心可能需要微调一下,即你在进行2)和3)时,需要在算出的圆心附近做一下简单的搜索,以获得一个最优的未知,这个是小trick,注意下即可。
首先我假设你提取出的圆轮廓还算比较规整,圆度不至于偏差太大。
你只需要求出最大内切圆和最小外接圆即可。算法比较容易设计,简单来看可以分为三部分:
1)确定圆心。首先,你先填充原来的轮廓图,获得一个实心的圆。然后,统计这个圆的质心。
程序写起来很容易,就是x放心和y放心各自按照坐标加权平均而已。
2)求最大内切圆。在上一步获得的圆心基础上,计算出最大的半径值,使得以此半径构成的圆被最大地包含在原始的轮廓圆内部。这种包含关系直接使用俩图做差看剩余像素点是否在内切圆内即可。
3)最小外接圆。基本思路同2)。只不过这里要找一个最小的半径值,使得以此半径构成的圆最小地包含原始的轮廓圆。包含关系与2)类似,不再啰嗦。
2)、3)完成之后,问题就解决了。用matlab写成代码应该比较容易,你自己应该能做。
当然,以上的算法求出的圆心可能需要微调一下,即你在进行2)和3)时,需要在算出的圆心附近做一下简单的搜索,以获得一个最优的未知,这个是小trick,注意下即可。
东莞大凡
2024-11-19 广告
2024-11-19 广告
板格标定棋盘是我们东莞市大凡光学科技有限公司在精密光学测量领域的重要工具。它采用高精度设计,确保每一个格板都达到严格的校准标准。通过使用板格标定棋盘,我们能够有效地对光学测量系统进行校准,从而提升测量的准确性和可靠性。这一工具在光学仪器的研...
点击进入详情页
本回答由东莞大凡提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询