【2021 亚太杯数学建模】赛题A-Image Edge Analysis and application图像边缘分析与应用 赛题思路解析及实现

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: 关于2021年亚太杯数学建模赛题A的解析,主要介绍了图像边缘分析与应用的方法,包括亚像素边缘检测、图像目标尺寸测量和亚像素直线段、圆弧段、椭圆段的分割,并提供了MATLAB和Halcon软件的实现方案。

1 题目

图像边缘分析与应用

随着科学技术的发展,对各种工件和零件的测量精度的要求越来越高,对测量仪器的要求也越来越高。各种图像测量设备如数字图像尺寸测量仪正在逐步取代传统的手工卡尺测量应用。一般情况下,摄像机经过标定后,根据标定后图像的点阵或棋盘格特征信息,对图像进行畸变校正,计算出图像坐标空间与世界坐标空间的映射关系。

目标物体的边缘在图像识别和计算机分析中是非常有用的。图像边缘是图像局部特征的不连续性的反映。边缘可以勾勒出目标物体的轮廓,使观察者一目了然。边缘包含丰富的内在信息(如方向、阶跃属性step property 、形状等),是图像识别中提取图像特征的重要属性。图像边缘轮廓提取是图像边界分割中非常重要的一项处理,也是图像处理中的一个经典问题。轮廓提取和轮廓跟踪的目的都是为了获取图像的外部轮廓特征。在必要时应用某些方法来表达轮廓的特征,为图像形状分析做准备,对执行高级处理,如特征描述、识别和理解有重大影响。

轮廓可以描述为一组有序点,轮廓的一般表达式为多边形。轮廓可以是封闭的,也可以是开放的。图像上的封闭轮廓从头到尾都是连通的,开放轮廓通常与图像边界相交。在图1中,有五条封闭的等高线。虽然sobel和canny等边缘检测算法可以根据图像灰度值的差值来检测图像边缘像素的边界,但并没有将轮廓作为一个整体。在图像上,轮廓对应于一系列像素点。轮廓描述连续的点序列,边缘像素点可以组合成轮廓曲线来描述图像的边缘信息。

亚像素是定义在图像采集传感器的两个物理像素之间的虚拟像素。为了提高分辨率或图像质量,亚像素计算是非常有用的。亚像素边缘提取是一种比传统像素边缘提取更精确的方法。亚像素是指图像上每个像素点的坐标值不再是整数定位,而是浮点数定位。如果利用亚像素技术将精度提高到0.1像素,相当于提高10倍的图像系统分析分辨率。
1.png

上图中,每四个红色点围成的矩形区域为实际原件上的像素点,黑色点为亚像素点

以下三个示意图,在图1中,提取了图像的物体边缘轮廓线,并将图像边缘轮廓分割成直线段、圆弧段、圆等基本图形。在图2中,将一个圆角矩形的边缘轮廓分为几个几何形状。在图3中,在灰度像素图像网格的背景上绘制了一个椭圆的亚像素轮廓曲线。
2.png

图1. 图像边缘检测

3.png

图2. 图像边缘轮廓

4.png

图3. 图像的亚像素边缘轮廓

问题1: 建立一个数学模型,分析亚像素边缘提取的方法和过程。有1/10像素精度及以上、亚像素边缘提取轮廓边界的主要对象的边缘部分的三张图片(Pic1_1、Pic1_2 Pic1_3)在附件1中,和亚像素边缘点数据转换成命令边缘轮廓曲线数据,需要考虑如何消除边缘毛刺和阴影部分的干扰影响。需要注意的是,Pic1_3图像是在相对复杂的光照条件下拍摄的,干涉信息更多。

a) 将提取的不同颜色的边缘轮廓绘制在图像上,输出为彩色边缘轮廓图像,保存为png图像格式提交。文件名为pic1_1.png、pic1_2.png、pic1_3.png。
5.png

Pic1_1.png

6.png

Pic1_2.png

7.png

Pic1_3.png

b)将边缘轮廓数据以附件1中的EdgeContoursOutput.xls文件的格式输出,将Pic1_1和Pic1_2图像的数据分别输出到工作表对应的Sheet1和Sheet2。输出数据包含总边缘轮廓数、图像坐标空间中总边缘轮廓长度、每条轮廓曲线的点数和长度以及每条轮廓点的X、Y坐标数据。

c)文中给出每张图像的总轮廓曲线计数,以及每条曲线上的点计数和长度数据。见表1、表2、表3。

Table 1. Pic1_1 Edge Contour Data Output Format

Total Edge Contours Count
Total Edge Contours Length
Edge Contour 1 Length
PointCount
Edge Contour 2 Length
PointCount

Table 2. Pic1_2 Edge Contour Data Output Format

Total Edge Contours Count
Total Edge Contours Length
Edge Contour 1 Length
PointCount
Edge Contour 2 Length
PointCount

Table 3. Pic1_3 Edge Contour Data Output Format

Total Edge Contours Count
Total Edge Contours Length

问题2: 在拍摄被测图像时,有一个点矩阵校准板放置在目标物体的同一水平高度上。定标板上的网点直径为1mm,两点之间的中心距离为2mm。附件2包含三张不同角度拍摄的标定板图像和一张产品图像(pic2_1 .bmp)。请建立数学模型,利用标定板图像信息对产品图像进行图像校正分析,考虑如何尽可能准确地计算出产品图像上边缘分割拟合曲线段的实际物理尺寸。请计算每个边缘轮廓的长度(mm),最后计算出总边缘轮廓长度(mm)。根据图4所示的轮廓数据标注,输出附件2中EdgeContoursLengthOutput.xls等表格格式文件的数据结果。
8.png

pic2_1 .bmp

9.png

定位校验板 1

10.png

定位校验板 2

11.png

定位校验板 3

Table 4. Edge Contour Length Output Format (mm)

Contour ID Length(mm)
Total Edge Contours
Edge Contour 1
Edge Contour 2
Edge Contour 3
Edge Contour 4
Edge Contour 5
Edge Contour 6

12.png

待检测图轮廓标签

问题3: 附件3提供了两个亚像素轮廓边缘数据(EdgeContour1.xls和EdgeContour2.xls),其形状如图5所示。建立数学模型,分析边缘轮廓曲线数据自动分割拟合为直线段、圆弧段(含圆)、椭圆圆弧段(含椭圆),讨论边缘轮廓自动分割拟合的模型方法或策略。蓝色曲线从蓝色数字1标签开始,沿着箭头方向输出模型计算结果数据。绿色曲线从绿色数字1标签开始,沿箭头方向输出模型计算结果数据。请将分段曲线分段的参数按表格格式填写到表格中。提交表7和表8(轮廓1和轮廓2分割数据)。请注意,该表中的行类型是根据实际类型填充的。

13.png

Figure 5. 边缘轮廓示例图

Table 5. Segmentation Data Geometric Shapes [Parameter]

TYPE PARAM
Line StartPt EndPt Length (pixel)
Circle Center Radius Length (pixel)
CircularArc Center StartPt EndPt SweepAngle
Ellipse Center Size RotationAngle
EllipticArc Center Size StartPt EndPt SweepAngle RotationAngle

Table 6.Demo Coutour Segmentation Data

Edge Contour Demo
NO TYPE PARAM
S1 Line (20,100) (80,100) 60 pixel
S2 CircularArc (80,90) (80,100) (90,90) -90°
S3 Line (90,90) (90,60) 30 pixel
S4 EllipticArc (90,40) [20,10] (90,60) (90,20) +180° -90°

Table 7. Contour 1 Segmentation Data Output Format

Edge Contour 1
NO TYPE PARAM
S1
S2
S3
S4
S5

Table 8. Contour 2 Segmentation Data Output Format

Edge Contour 2
NO TYPE PARAM
S1
S2
S3
S4
S5

备注:

  1. SweepAngle表示从起始点到结束点的扫角,角系;

  2. 尺寸Size:表示指定椭圆或椭圆弧在X、Y方向上的半径值;

  3. RotationAngle:表示指定椭圆或椭圆弧转角系统的转角值;

  4. 对于旋转角度的方向,从x轴正方向到y轴正方向的旋转方向为正,反之为负。

  5. 所有图像坐标点均在图像坐标系下表示,即左上角为(0,0)原点,x轴正方向向右,y轴正方向向下。

2 思路

基本思维方案框架如下图所示

14.png

2.1 问题1 亚像素边缘检测

边缘是图像最基本的特征,边缘检测在计算机视觉、图像分析等应用中起着重要作用,是图像分析与识别的重要环节。这是因为图像的边缘包含了用于识别的有用息,它为人们描述或识别目标和解释图像提供了一个有价值的和重要的特征参数,所以边缘检测是图像分析和模式识别的主要特征提取手段。所谓边缘是指其周围像素灰度后阶变化或屋顶状变化的那些像素的集合,它存在于目标与背景、目标与目标、域与区域,基元与基元之间。因此它是图像分割所依赖的重要的特征,也是纹理特正的重要信息源和形状特征的基础。边缘检测广泛应用于轮廓、特征的抽取和纹理分析中,理想的边缘检测应当正确解决边缘的有无、真假和定位问题。但真正实现这一标尚有较大的难度,这是因为实际图像都含有噪声,并且噪声的分布、方差等信息都是未知的,同时噪声和边缘都是高频信号,虽然平滑滤波运算可消除噪声,但它学致一些边缘模糊,检测出的边缘往往移位。另外由于物理和光照等原因,实际图像的边缘常常发生在不同的尺度范围上,并且每一边缘像元的尺度信息是未知的,利用单一固定尺度的边缘检测算子不可能同时最佳的检测出这些边缘。

(1)技术分类

在精度上分为像素级和亚像素级边缘检测技术,边缘检测技术主要解决三个问题:找出强度的非连续性,又要抑制细节和噪声,同时还要保存边缘定位精度。

  • 像素级

    • 基于局部图像函数的方法
    • 基于图像滤波的方法
    • 基于全局的边缘检测方法
  • 亚像素级
    亚像素边缘检测技术是一种新的高精度的图像边缘处理与检测技术,本质是通过软件算法来人为提高检测系统的分辨率。

    • 基于矩的亚像素边缘检测:利用矩的积分算子来定位亚像素边缘,之所以选择矩,是因为这种算法对噪声不敏感。
    • 基于拟合(重建)的亚像素边缘检测:通过拟合灰度值来获得高精度边缘位置
    • 基于插值的亚像素边缘检测:是对图像中的灰度值或者灰度梯度进行估计和插值来获得亚像素级边缘。

(2)基于Zernike矩的边缘检测方法实现

15.png

(3)基于灰度矩的边缘检测方法

16.png

(3)基于高斯拟合

17.png

完整源码下载亚像素边缘检测MATLAB多方案实现
边缘检测MATLAB能够简单实现,但是想要提取轮廓,并给不同的段绘制颜色,还需要Halcon。实现效果如下
halcon实现完整代码和原图PNG格式图片都在同一个链接中

18.png

19.png

20.png

2.2 问题2 图像目标尺寸测量

是二维图像目标尺寸测量问题。思路是先在第一问的边缘检测的基础上

Halcon实现步骤如下

第一步:图像矫正

第二步:图像亚像素边缘提取

第三步:对提取的边缘进行拟合

分别针对直线、圆形、椭圆进行拟合。

(1) 直线拟合

(2) 圆形拟合

(3) 椭圆拟合

第四步:根据标定板和坐标系来计算圆形和直线像素点长度,并确定周长

代码下载看以上下载链接
实验部分内容截图
21.png

数据和图及代码实现见文章首部

2.3 问题3 亚像素直线段、圆弧段、椭圆段分割

Halcon软件实现
22.png

halcon 软件实现流程图
将题目给定的2个excel文件读入Halcon,并对这些离散的亚像素坐标进行拟合。得到轮廓数据Edges。
采用halcon中的算子来进行轮廓的分割
采用segment_contours_xld函数将轮廓数据分割为直线、圆弧、椭圆弧
segment_contours_xld (SelectedContours, ContoursSplit, ‘lines_circles’, 5, 4, 3)
例如以上代码就实现了以线和圆作为分类切割
使用fit_line_circle_contour_xld函数来实现圆弧的拟合
使用gen_circle_contour_xld 来创建对应于圆或圆弧的XLD轮廓
*使用fit_line_contour_xld函数来实现直线的拟合

*使用fit_line_elipse_contour_xld函数来实现椭圆的拟合
具体实现参见代码
实现效果如下
23.png

完整代码、结果图和结果下载见文章首部

3 Paper展示及下载

24.png

25.jpeg

26.png

27.png

目录
相关文章
|
1月前
|
监控 网络协议 算法
OSPFv2与OSPFv3的区别:全面解析与应用场景
OSPFv2与OSPFv3的区别:全面解析与应用场景
36 0
|
6天前
|
机器学习/深度学习 人工智能 自然语言处理
AI技术深度解析:从基础到应用的全面介绍
人工智能(AI)技术的迅猛发展,正在深刻改变着我们的生活和工作方式。从自然语言处理(NLP)到机器学习,从神经网络到大型语言模型(LLM),AI技术的每一次进步都带来了前所未有的机遇和挑战。本文将从背景、历史、业务场景、Python代码示例、流程图以及如何上手等多个方面,对AI技术中的关键组件进行深度解析,为读者呈现一个全面而深入的AI技术世界。
60 10
|
1月前
|
数据采集 自然语言处理 搜索推荐
基于qwen2.5的长文本解析、数据预测与趋势分析、代码生成能力赋能esg报告分析
Qwen2.5是一款强大的生成式预训练语言模型,擅长自然语言理解和生成,支持长文本解析、数据预测、代码生成等复杂任务。Qwen-Long作为其变体,专为长上下文场景优化,适用于大型文档处理、知识图谱构建等。Qwen2.5在ESG报告解析、多Agent协作、数学模型生成等方面表现出色,提供灵活且高效的解决方案。
143 49
|
17天前
|
机器学习/深度学习 搜索推荐 API
淘宝/天猫按图搜索(拍立淘)API的深度解析与应用实践
在数字化时代,电商行业迅速发展,个性化、便捷性和高效性成为消费者新需求。淘宝/天猫推出的拍立淘API,利用图像识别技术,提供精准的购物搜索体验。本文深入探讨其原理、优势、应用场景及实现方法,助力电商技术和用户体验提升。
|
23天前
|
测试技术 开发者 Python
使用Python解析和分析源代码
本文介绍了如何使用Python的`ast`模块解析和分析Python源代码,包括安装准备、解析源代码、分析抽象语法树(AST)等步骤,展示了通过自定义`NodeVisitor`类遍历AST并提取信息的方法,为代码质量提升和自动化工具开发提供基础。
38 8
|
21天前
|
调度 开发者
核心概念解析:进程与线程的对比分析
在操作系统和计算机编程领域,进程和线程是两个基本而核心的概念。它们是程序执行和资源管理的基础,但它们之间存在显著的差异。本文将深入探讨进程与线程的区别,并分析它们在现代软件开发中的应用和重要性。
38 4
|
23天前
|
编译器 PHP 开发者
PHP 8新特性解析与实战应用####
随着PHP 8的发布,这一经典编程语言迎来了诸多令人瞩目的新特性和性能优化。本文将深入探讨PHP 8中的几个关键新功能,包括命名参数、JIT编译器、新的字符串处理函数以及错误处理改进等。通过实际代码示例,展示如何在现有项目中有效利用这些新特性来提升代码的可读性、维护性和执行效率。无论你是PHP新手还是经验丰富的开发者,本文都将为你提供实用的技术洞察和最佳实践指导。 ####
28 1
|
1月前
|
存储 安全 Java
Java多线程编程中的并发容器:深入解析与实战应用####
在本文中,我们将探讨Java多线程编程中的一个核心话题——并发容器。不同于传统单一线程环境下的数据结构,并发容器专为多线程场景设计,确保数据访问的线程安全性和高效性。我们将从基础概念出发,逐步深入到`java.util.concurrent`包下的核心并发容器实现,如`ConcurrentHashMap`、`CopyOnWriteArrayList`以及`BlockingQueue`等,通过实例代码演示其使用方法,并分析它们背后的设计原理与适用场景。无论你是Java并发编程的初学者还是希望深化理解的开发者,本文都将为你提供有价值的见解与实践指导。 --- ####
|
1月前
|
Java 测试技术 API
Java 反射机制:深入解析与应用实践
《Java反射机制:深入解析与应用实践》全面解析Java反射API,探讨其内部运作原理、应用场景及最佳实践,帮助开发者掌握利用反射增强程序灵活性与可扩展性的技巧。
87 4
RS-485网络中的标准端接与交流电端接应用解析
RS-485,作为一种广泛应用的差分信号传输标准,因其传输距离远、抗干扰能力强、支持多点通讯等优点,在工业自动化、智能建筑、交通运输等领域得到了广泛应用。在构建RS-485网络时,端接技术扮演着至关重要的角色,它直接影响到网络的信号完整性、稳定性和通信质量。

推荐镜像

更多