首页 / 专利库 / 作物管理 / 种子 / 一种从纹理图片提取多边形的方法

一种从纹理图片提取多边形的方法

阅读:1057发布:2020-07-04

专利汇可以提供一种从纹理图片提取多边形的方法专利检索,专利查询,专利分析的服务。并且本 发明 涉及Web应用与开发技术领域,具体涉及一种从纹理图片提取多边形的方法。本发明所述的方法包含以下几个步骤:1、填充纹理中被设为透明的部分并获得一个边缘 种子 ;2、利用边缘种子快速检索边缘;3、简化边缘;4、对简化后的边缘进行排序;5、把排序结果在坐标上进行展示。本发明解决了手工匹配多边形和纹理图片繁琐、效率低的问题,可广泛应用于WEB应用与开发中。,下面是一种从纹理图片提取多边形的方法专利的具体信息内容。

1.一种从纹理图片提取多边形的方法,其特征在于:所述的方法包含以下几个步骤:
步骤一、填充纹理中被设为透明的部分并获得一个边缘种子
步骤二、利用边缘种子快速检索边缘;
步骤三、简化边缘;
步骤四、对简化的边缘排序;
步骤五、把排序结果在坐标上进行展示。
2.根据权利要求1所述的一种从纹理图片提取多边形的方法,其特征在于:所述的步骤一中,使用程序识别纹理图片,并快速填充纹理中被设为透明的部分,获得一个边缘种子,进行保存。
3.根据权利要求1所述的一种从纹理图片提取多边形的方法,其特征在于:所述的步骤二中,根据步骤一中的边缘种子循环快速检索图片边缘,快速边缘检索时将种子周围的点入栈,形成闭合且按顺时针或逆时针被添加到列表,并进行比较匹配,记录检索结果并存入数组中。
4.根据权利要求1所述的一种从纹理图片提取多边形的方法,其特征在于:所述的步骤三中,简化边缘,遍历步骤二中整个数组,判断每三个点是否共线,若不共线则把中间点添加到返回值。
5.根据权利要求1所述的一种从纹理图片提取多边形的方法,其特征在于:所述的步骤四中,根据步骤二和步骤三的结果,对简化后的边缘进行排序,获取区域进行比较,并循环遍历排序,返回排序结果。
6.根据权利要求1所述的一种从纹理图片提取多边形的方法,其特征在于:所述的步骤五中,把步骤四中排序后结果在坐标上进行展示,保存排序结果,并把坐标展示导出图片展示并保存。

说明书全文

一种从纹理图片提取多边形的方法

技术领域

[0001] 本发明涉及Web应用与开发技术领域,具体涉及一种从纹理图片提取多边形的方法。

背景技术

[0002] 计算机图形学中的纹理既包括通常意义上物体表面的纹理即使物体表面呈现凹凸不平的沟纹,同时也包括在物体的光滑表面上的彩色图案。
[0003] 由在同一平面且不在同一直线上的三条或三条以上的线段首尾顺次连结且不相交所组成的封闭图形叫做多边形。在不同平面上的多条线段首尾顺次连结且不相交所组成的图形也被称为多边形,是广义的多边形。
[0004] 通常情况下匹配纹理图片和多边形匹配,需要手工设置,往往非常繁琐,工作量大,效率低,并且不支持匹配多个多边形。本发明通过程序处理,根据一定的算法,从纹理图片提取边缘多边形,扩展后可以支持提取多个多边形。解决了手工匹配多边形和纹理图片繁琐、效率低的问题,可广泛应用于WEB应用与开发过程中。

发明内容

[0005] 本发明解决的技术问题在于提供一种从纹理图片提取多边形的方法;解决了手工匹配多边形和纹理图片繁琐、效率低的问题。
[0006] 本发明解决上述技术问题的技术方案是:所述的方法包含以下几个步骤:
步骤一、填充纹理中被设为透明的部分并获得一个边缘种子
步骤二、利用边缘种子快速检索边缘;
步骤三、简化边缘;
步骤四、对简化的边缘排序;
步骤五、把排序结果在坐标上进行展示。
[0007] 所述的从纹理图片提取多边形的方法,步骤一中,使用程序识别纹理图片,并快速填充纹理中被设为透明的部分,获得一个边缘种子,进行保存。
[0008] 所述的步骤二中,根据步骤一中的边缘种子循环快速检索图片边缘,快速边缘检索时将种子周围的点入栈,形成闭合且按顺时针或逆时针被添加到列表,并进行比较匹配,记录检索结果并存入数组中。
[0009] 所述的步骤三中,简化边缘,遍历步骤二中整个数组,判断每三个点是否共线,若不共线则把中间点添加到返回值。
[0010] 所述的步骤四中,根据步骤二和步骤三的结果,对简化后的边缘进行排序,获取区域进行比较,并循环遍历排序,返回排序结果。
[0011] 所述的步骤五中,把步骤四中排序后结果在坐标上进行展示,保存排序结果,并把坐标展示导出图片展示并保存。
[0012] 本发明解决了手工匹配多边形和纹理图片繁琐、效率低的问题,可广泛应用于WEB应用和开发过程中。附图说明
[0013] 下面结合附图对本发明进一步说明:图1是本发明方法流程图

具体实施方式

[0014] 如图1所示,本发明具体包含以下几个步骤 :步骤一、填充纹理中被设为透明的部分并获得一个边缘种子;
步骤二、利用边缘种子快速检索边缘;
步骤三、简化边缘;
步骤四、对简化的边缘排序;
步骤五、把排序结果在坐标上进行展示。
[0015] 所述的步骤一中,使用程序识别纹理图片,并快速填充纹理中被设为透明的部分,获得一个边缘种子,进行保存。
[0016] 所述的步骤二中,根据步骤一中的边缘种子循环快速检索图片边缘,快速边缘检索时将种子周围的点入栈,形成闭合且按顺时针或逆时针被添加到列表,并进行比较匹配,记录检索结果并存入数组中。
[0017] 所述的步骤三中,简化边缘,遍历步骤二中整个数组,判断每三个点是否共线,若不共线则把中间点添加到返回值。
[0018] //简化图片边缘Private Function EdgeSimple(edge As List(Of Point)) As List(Of Point)
    Dim tmp As New List(Of Point)
    Dim result As New List(Of Point)
    //把前两点复制到结尾
    If edge.Count< 3 Then Return result
    tmp.AddRange(edge)
    tmp.Add(edge(0))
    tmp.Add(edge(1))
    //遍历整个数组,每三个点判定是否共线,若不共线则把中间点添加到返回值
    Dim v1, v2 As Vector2
    For i As Integer = 0 To edge.Count - 1
        v1 = New Vector2(tmp(i).X - tmp(i + 1).X, tmp(i).Y - tmp(i + 1).Y)
        v2 = New Vector2(tmp(i + 2).X - tmp(i + 1).X, tmp(i + 2).Y - tmp(i + 1).Y)
        v1.Normalize()
        v2.Normalize()
        If Vector2.Dot(v1, v2) + 1 > 0.00001F Then
            result.Add(tmp(i + 1))
        End If
    Next
    Return result
End Function
所述的步骤四中,根据步骤二和步骤三的结果,对简化后的边缘进行排序,获取区域进行比较,并循环遍历排序,返回排序结果。
[0019] //边缘排序Private Sub EdgeSort(edge As List(Of Point))
    Dim op As Point = GetOrigin(edge)
    Dim tmp As Point
    For i As Integer = 0 To edge.Count - 2
        For j As Integer = 0 To edge.Count - i - 2
            If PointCmp(edge(j), edge(j + 1), op) Then
                tmp = edge(j)
                edge(j) = edge(j + 1)
                edge(j + 1) = tmp
            End If
        Next
    Next
End Sub
Private Function PointCmp(a As Point, b As Point, op As Point) As Boolean
    If a.X >= 0 AndAlso b.X< 0 Then Return True
    If a.X = 0 AndAlso b.X = 0 Then Return a.Y> b.Y
    Dim det As Integer = (a.X - op.X) * (b.Y - op.Y) - (b.X - op.X) * (a.Y - op.Y)
    If det = 0 Then
        Dim d1 As Double = (a.X - op.X) * (a.X - op.X) + (a.Y - op.Y) * (a.Y - op.Y)
        Dim d2 As Double = (b.X - op.X) * (b.X - op.Y) + (b.Y - op.Y) * (b.Y - op.Y)
        Return d1 > d2
    Else
        Return det < 0
    End If
End Function
所述的步骤五中,把步骤四中排序后结果在坐标上进行展示,保存排序结果,并把坐标展示导出图片展示并保存。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈