首页 / 专利分类库 / 印刷;排版机;打字机;模印机 / 一种确认打标位置的方法及装置

一种确认打标位置的方法及装置

申请号 CN202410181820.9 申请日 2024-02-19 公开(公告)号 CN117745807B 公开(公告)日 2024-04-26
申请人 上海方菱计算机软件有限公司; 发明人 孟祥群; 张永银; 郝军;
摘要 本 发明 提供一种确认打标 位置 的方法及装置,应用于 激光切割 技术领域,包括如下步骤:确定包络目标图形外轮廓线的辅助矩形大小;根据设置的 精度 对辅助矩形进行网格单元的划分并标记网格上的点;判断辅助矩形中网格上的点是否在目标图形内部,标记所有在目标图形内的点;计算目标图形内的最大内接正方形;根据确定的坐标位置确定最大内接正方形的中心点O((startX+endX)/2,(startY+endY)/2);在目标图形内的最大内接正方形中添加打标信息;能够根据目标图形的实际情况确定激光切割的打标位置及打标区域的最大尺寸,使在具有内孔的封闭图形中添加打标文字或图案时不会与内孔产生重叠或遮挡。
权利要求

1.一种确认打标位置的方法,其特征在于,包括如下步骤:
确定包络目标图形外轮廓线的辅助矩形大小;所述目标图形为一个封闭的外轮廓线所围合的图形或包括一个封闭的外轮廓线和多个封闭的内轮廓线,内轮廓线位于外轮廓线所围合的图形中;
根据设置的精度对辅助矩形进行网格单元的划分并标记网格上的点;
判断辅助矩形中网格上的点是否在目标图形内部,并标记所有在目标图形内部的点;
根据所有在目标图形内部的点计算目标图形内部的最大内接正方形;
根据确定的最大内接正方形坐标位置确定最大内接正方形的中心点O((startX+endX)/2,(startY+endY)/2);
在目标图形内的最大内接正方形中添加打标信息,所述打标信息的中心位于目标图形内最大内接正方形的中心点O处,所述打标信息的大小与相应的最大内接正方形的边长适配;
其中,计算目标图形内部的最大内接正方形的方法包括如下步骤:定义变量largest、startX、endX、startY、endY,其中,largest为最大内接正方形的边长,E(startX,startY)、F(startX,endY)、G(endX,startY)、H(endX,endY)为最大内接正方形四个顶点的坐标位置;
定义二维数组dp[i][j],用于记录内接正方形的边长;
逐行或逐列依次遍历,确定目标图形内部各点的dp[i][j],并与largest进行比较,若dp[i][j]的值大于largest的值,则将dp[i][j]的值赋予largest并保存largest,同时更新E、F、G、H顶点的坐标;若dp[i][j]的值不大于largest的值,则保留当前largest和E、F、G、H顶点的坐标;
遍历结束后,确定变量largest、startX、endX、startY、endY,从而确定最大内接正方形的边长和坐标位置;
当目标图形包括一个封闭的外轮廓线和多个封闭的内轮廓线,内轮廓线位于外轮廓线所围合的图形中时,通过引射线法遍历判断二维数组A[r][c]表示的点是否在外轮廓线内部且在内轮廓线外部并通过二维数组B[r][c]将位于外轮廓线内部且在内轮廓线外部的点进行标记。
2.根据权利要求1所述的确认打标位置的方法,其特征在于,所述确定包络目标图形外轮廓线的辅助矩形大小的具体步骤为:遍历目标图形外轮廓线中各点的坐标,确定目标图形外轮廓线中各点坐标的最小X坐标Xmin、最大X坐标Xmax、最小Y坐标Ymin、最大Y坐标Ymax,从而确定辅助矩形的顶点坐标为A(Xmin,Ymin)、B(Xmin,Ymax)、C(Xmax,Ymin)、D(Xmax,Ymax)。
3.根据权利要求1所述的确认打标位置的方法,其特征在于,所述根据设置的精度对辅助矩形进行网格单元的划分并标记网格上的点的,包括如下步骤:设置所需精度后,通过二维数组或矩阵标记网格上的点。
4.根据权利要求3所述的确认打标位置的方法,其特征在于,通过二维数组标记网格上的点包括如下步骤:记二维数组A[r][c],用于标记网格上的点,其中,所述网格单元的参数包括网格长L和网格宽W,网格单元的行数r为(Ymax‑Ymin)/W、网格单元的列数c为(Xmax‑Xmin)/L,所述网格长L和网格宽W的数值设置相等。
5.根据权利要求4所述的确认打标位置的方法,其特征在于,当目标图形为一个封闭的外轮廓线所围合的图形时,通过引射线法遍历判断二维数组A[r][c]表示的点是否在外轮廓线内部并通过二维数组B[r][c]将位于外轮廓线内部的点进行标记。
6.根据权利要求1所述的确认打标位置的方法,其特征在于,所述根据所有在目标图形内部的点计算目标图形内部的最大内接正方形,具体步骤为:
设置从下至上且从左至右逐行遍历,当遍历至第i行时,目标图形内第i行X值最小的点为 ,目标图形内第i行X值最大的点为 ,记startX= ,记二维数组dp[i][j]=1,以二维数组dp[i][j]的值为边长,向右上方框选正方形,判断该正方形是否位于目标图形内部;
若该正方形位于目标图形内部,然后判断二维数组dp[i][j]的值是否大于largest的值,若大于,则将dp[i][j]的值赋予largest并保存largest,同时更新E、F、G、H顶点的坐标;
若dp[i][j]的值不大于largest的值,则保留当前largest和E、F、G、H顶点的坐标;同时,记二维数组dp[i][j]=dp[i][j]+1,继续以二维数组dp[i][j]的值为边长,向右上方框选正方形,判断该正方形是否位于目标图形内部;
若该正方形不在目标图形内部,则记startX= +1,记二维数组dp[i][j]=1,以二维数组dp[i][j]的值为边长,向右上方框选正方形,判断该正方形是否位于目标图形内部;
当startX= 时,表示第i行遍历结束,开始遍历第i+1行;
直至目标图形内部各点循环遍历结束,确定largest、startX、endX、startY、endY的值,从而确定最大内接正方形的边长和坐标位置。
7.根据权利要求1所述的确认打标位置的方法,其特征在于,所述根据所有在目标图形内部的点计算目标图形内部的最大内接正方形,具体步骤为:
设置从左至右且从下至上逐列遍历,当遍历至第j列时,目标图形内第j列Y值最小的点为 ,目标图形内第j列Y值最大的点为 ,记startY= ,记二维数组dp[i][j]=1,以二维数组dp[i][j]的值为边长,向右上方框选正方形,判断该正方形是否位于目标图形内部;
若该正方形位于目标图形内部,然后判断二维数组dp[i][j]的值是否大于largest的值,若大于,则将dp[i][j]的值赋予largest并保存largest,同时更新E、F、G、H顶点的坐标;
若dp[i][j]的值不大于largest的值,则保留当前largest和E、F、G、H顶点的坐标;同时,记二维数组dp[i][j]=dp[i][j]+1,继续以二维数组dp[i][j]的值为边长,向右上方框选正方形,判断该正方形是否位于目标图形内部;
若该正方形不在目标图形内部,则记startY= +1,记二维数组dp[i][j]=1,以二维数组dp[i][j]的值为边长,向右上方框选正方形,判断该正方形是否位于目标图形内部;
当startY= 时,表示第j列遍历结束,开始遍历第j+1列;
直至目标图形内部各点循环遍历结束,确定最终largest、startX、endX、startY、endY的值,从而确定最大内接正方形的边长和坐标位置。
8.一种确认打标位置的装置,用于实现如权利要求1至7中任一项所述的确认打标位置的方法,其特征在于,包括:
辅助模,用于确定包络目标图形外轮廓线的辅助矩形大小;
标记模块,用于根据设置的精度对辅助矩形进行网格单元的划分并标记网格上的点;
判断模块,用于判断辅助矩形中网格上的点是否在目标图形内部,并标记所有在目标图形内部的点;
计算模块,用于根据所有在目标图形内部的点计算目标图形内部的最大内接正方形;
定位模块,用于根据确定的最大内接正方形坐标位置确定最大内接正方形的中心点O((startX+endX)/2,(startY+endY)/2);
添加模块,用于在目标图形内的最大内接正方形中添加打标信息,所述打标信息的中心位于目标图形内最大内接正方形的中心点O处,所述打标信息的大小与相应的最大内接正方形的边长适配。

说明书全文

一种确认打标位置的方法及装置

技术领域

[0001] 本发明属于打标技术领域,具体涉及一种确认打标位置的方法及装置。

背景技术

[0002] 打标分为气动打标、激光打标、电腐蚀打标三大类型,气动打标由电脑控制,打印针在压缩空气作用下做高频冲击运动,从而在工件上打印出有一定深度的标记,标记特点为有较大深度;激光打标是用激光束在各种不同的物质表面打上永久的标记,激光打标是通过表层物质的蒸发露出深层物质,从而刻出精美的图案、商标和文字;电腐蚀打标主要打印固定不变的商标,打印内容不便于变化。
[0003] 激光切割行业中,通常以零件作为切割的最小单元,一个零件可以是一个封闭的外轮廓,也可以是一个封闭的外轮廓中包含多个封闭的内轮廓。在切割过程中通常会添加一些打标的文字、商标、图案信息,这部分信息可以是手动移动到一个理想位置,也可以根据零件的图形信息,利用计算机进行计算,找到一个合理的位置。
[0004] 激光切割行业中自动计算文字在零件内部的位置通常会遇到以下问题:
[0005] 不能根据零件大小、形状的实际情况对打标区域和打标文字的大小进行调整,不合理的打标位置和过小的打标文字、商标、图案所起到的标识防伪作用较小。
[0006] 此外,在计算打标文字合理位置时会忽视零件存在内轮廓的情况,传统的标记添加方法往往无法考虑到封闭图形内的内孔位置,导致打标标记添加的位置可能与内孔重叠或者过于靠近内孔边缘,影响打标文字的清晰度。

发明内容

[0007] 鉴于现有技术中存在上述问题,本发明的目的是提供一种确认打标位置的方法,能够根据目标图形的实际情况确定零件打标区域的最大尺寸及打标位置,并根据打标区域的大小调整打标文字、商标、图案的大小,提高标识防伪效果。
[0008] 一种确认打标位置的方法,包括如下步骤:
[0009] 确定包络目标图形外轮廓线的辅助矩形大小;所述目标图形为一个封闭的外轮廓线所围合的图形;
[0010] 根据设置的精度对辅助矩形进行网格单元的划分并标记网格上的点;
[0011] 判断辅助矩形中网格上的点是否在目标图形内部,并标记所有在目标图形内部的点;
[0012] 根据所有在目标图形内部的点计算目标图形内部的最大内接正方形;
[0013] 根据确定的最大内接正方形坐标位置确定最大内接正方形的中心点O((startX+endX)/2,(startY+endY)/2);
[0014] 在目标图形内的最大内接正方形中添加打标信息,所述打标信息的中心位于目标图形内最大内接正方形的中心点O处,所述打标信息的大小与相应的最大内接正方形的边长适配;
[0015] 其中,计算目标图形内部的最大内接正方形的方法包括如下步骤:定义变量largest、startX、endX、startY、endY,其中,largest为最大内接正方形的边长,E(startX,startY)、F(startX,endY)、G(endX,startY)、H(endX,endY)为最大内接正方形四个顶点的坐标位置;
[0016] 定义二维数组dp[i][j],用于记录内接正方形的边长;
[0017] 逐行或逐列依次遍历,确定目标图形内部各点的dp[i][j],并与largest进行比较,若dp[i][j]的值大于largest的值,则将dp[i][j]的值赋予largest并保存largest,同时更新E、F、G、H顶点的坐标;若dp[i][j]的值不大于largest的值,则保留当前largest和E、F、G、H顶点的坐标;
[0018] 遍历结束后,确定变量largest、startX、endX、startY、endY,从而确定最大内接正方形的边长和坐标位置。
[0019] 优选的,所述目标图形包括一个封闭的外轮廓线和多个封闭的内轮廓线,内轮廓线位于外轮廓线所围合的图形中。
[0020] 优选的,所述确定包络目标图形外轮廓线的辅助矩形大小的具体步骤为:遍历目标图形外轮廓线中各点的坐标,确定目标图形外轮廓线中各点坐标的最小X坐标Xmin、最大X坐标Xmax、最小Y坐标Ymin、最大Y坐标Ymax,从而确定辅助矩形的顶点坐标为A(Xmin,Ymin)、B(Xmin,Ymax)、C(Xmax,Ymin)、D(Xmax,Ymax)。
[0021] 优选的,所述根据设置的精度对辅助矩形进行网格单元的划分并标记网格上的点的,包括如下步骤:设置所需精度后,通过二维数组或矩阵标记网格上的点。
[0022] 优选的,通过二维数组标记网格上的点包括如下步骤:记二维数组A[r][c],用于标记网格上的点,其中,所述网格单元的参数包括网格长L和网格宽W,网格单元的行数r为(Ymax‑Ymin)/W、网格单元的列数c为(Xmax‑Xmin)/L,所述网格长L和网格宽W的数值设置相等。
[0023] 优选的,当目标图形为一个封闭的外轮廓线所围合的图形时,通过引射线法遍历判断二维数组A[r][c]表示的点是否在外轮廓线内部并通过二维数组B[r][c]将位于外轮廓线内部的点进行标记。
[0024] 优选的,当目标图形包括一个封闭的外轮廓线和多个封闭的内轮廓线,内轮廓线位于外轮廓线所围合的图形中时,通过引射线法遍历判断二维数组A[r][c]表示的点是否在外轮廓线内部且在内轮廓线外部并通过二维数组B[r][c]将位于外轮廓线内部且在内轮廓线外部的点进行标记。
[0025] 优选的,所述根据所有在目标图形内部的点计算目标图形内部的最大内接正方形,具体步骤为:
[0026] 设置从下至上且从左至右逐行遍历,当遍历至第i行时,目标图形内第i行X值最小的点为 ,目标图形内第i行X值最大的点为 ,记startX= ,记二维数组dp[i][j]=1,以二维数组dp[i][j]的值为边长,向右上方框选正方形,判断该正方形是否位于目标图形内部;
[0027] 若该正方形位于目标图形内部,然后判断二维数组dp[i][j]的值是否大于largest的值,若大于,则将dp[i][j]的值赋予largest并保存largest,同时更新E、F、G、H顶点的坐标;若dp[i][j]的值不大于largest的值,则保留当前largest和E、F、G、H顶点的坐标;同时,记二维数组dp[i][j]=dp[i][j]+1,继续以二维数组dp[i][j]的值为边长,向右上方框选正方形,判断该正方形是否位于目标图形内部;
[0028] 若该正方形不在目标图形内部,则记startX= +1,记二维数组dp[i][j]=1,以二维数组dp[i][j]的值为边长,向右上方框选正方形,判断该正方形是否位于目标图形内部;
[0029] 当startX= 时,表示第i行遍历结束,开始遍历第i+1行;
[0030] 直至目标图形内部各点循环遍历结束,确定largest、startX、endX、startY、endY的值,从而确定最大内接正方形的边长和坐标位置。
[0031] 优选的,所述根据所有在目标图形内部的点计算目标图形内部的最大内接正方形,具体步骤为:
[0032] 设置从左至右且从下至上逐列遍历,当遍历至第j列时,目标图形内第j列Y值最小的点为 ,目标图形内第j列Y值最大的点为 ,记startY= ,记二维数组dp[i][j]=1,以二维数组dp[i][j]的值为边长,向右上方框选正方形,判断该正方形是否位于目标图形内部;
[0033] 若该正方形位于目标图形内部,然后判断二维数组dp[i][j]的值是否大于largest的值,若大于,则将dp[i][j]的值赋予largest并保存largest,同时更新E、F、G、H顶点的坐标;若dp[i][j]的值不大于largest的值,则保留当前largest和E、F、G、H顶点的坐标;同时,记二维数组dp[i][j]=dp[i][j]+1,继续以二维数组dp[i][j]的值为边长,向右上方框选正方形,判断该正方形是否位于目标图形内部;
[0034] 若该正方形不在目标图形内部,则记startY= +1,记二维数组dp[i][j]=1,以二维数组dp[i][j]的值为边长,向右上方框选正方形,判断该正方形是否位于目标图形内部;
[0035] 当startY= 时,表示第j列遍历结束,开始遍历第j+1列;
[0036] 直至目标图形内部各点循环遍历结束,确定最终largest、startX、endX、startY、endY的值,从而确定最大内接正方形的边长和坐标位置。
[0037] 本发明的另一个目的在于,提出一种确认打标位置的装置,包括:
[0038] 辅助模,用于确定包络目标图形外轮廓线的辅助矩形大小;
[0039] 标记模块,用于根据设置的精度对辅助矩形进行网格单元的划分并标记网格上的点;
[0040] 判断模块,用于判断辅助矩形中网格上的点是否在目标图形内部,并标记所有在目标图形内部的点;
[0041] 计算模块,用于根据所有在目标图形内部的点计算目标图形内部的最大内接正方形;
[0042] 定位模块,用于根据确定的最大内接正方形坐标位置确定最大内接正方形的中心点O((startX+endX)/2,(startY+endY)/2);
[0043] 添加模块,用于在目标图形内的最大内接正方形中添加打标信息,所述打标信息的中心位于目标图形内最大内接正方形的中心点O处,所述打标信息的大小与相应的最大内接正方形的边长适配。
[0044] 本发明的有益效果是:该确认打标位置的方法及装置,通过计算目标图形内部区域的最大内接正方形确定打标区域的最大尺寸及打标区域的位置,并通过确定该最大内接正方形的中心点进一步确定打标信息的中心位置,使打标区域和位置更加合理,有利于提高标记防伪效果。
[0045] 其次,根据最大内接正方形的大小自动调整打标文字、打标图案、打标商标的大小,使打标文字、打标图案、打标商标的大小与最大打标区域的大小适配,更加符合实际需要,能够提高标识效果。
[0046] 此外,能够根据目标图形的实际情况,当目标图形存在内孔时,能够确定封闭图形的内孔位置和大小,在打标时对内孔位置进行考虑,避免打标信息和内孔边缘产生干涉,影响打标效果。附图说明
[0047] 附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
[0048] 图1是本发明的流程图
[0049] 图2是本发明的实施例一中步骤二中网格单元的示意图;
[0050] 图3是本发明的实施例一中步骤三中网格单元的示意图;
[0051] 图4是本发明的实施例一中步骤四中最大内接正方形的示意图;
[0052] 图5是本发明的实施例一中步骤六中打标信息的示意图;
[0053] 图6是本发明的实施例二中步骤二中网格单元的示意图;
[0054] 图7是本发明的实施例二中步骤三中网格单元的示意图;
[0055] 图8是本发明的实施例二中步骤四中最大内接正方形的示意图;
[0056] 图9是本发明的实施例二中步骤六中打标信息的示意图;
[0057] 图10是本发明的实施例一中逐行遍历过程的示意图。

具体实施方式

[0058] 实施例一
[0059] 如图1至图5所示,一种确认打标位置的方法,包括如下步骤:
[0060] 步骤一:确定包络目标图形外轮廓线的辅助矩形大小。其中,目标图形为一个封闭的外轮廓线所围合的图形。
[0061] 具体的,确定包络目标图形外轮廓线的辅助矩形大小的具体步骤为:遍历目标图形外轮廓线中各点的坐标,确定图形外轮廓线中各点坐标的最小X坐标Xmin、最大X坐标Xmax、最小Y坐标Ymin、最大Y坐标Ymax,从而确定辅助矩形的顶点坐标为A(Xmin,Ymin)、B(Xmin,Ymax)、C(Xmax,Ymin)、D(Xmax,Ymax)。
[0062] 步骤二:根据设置的精度对辅助矩形进行网格单元的划分并标记网格上的点。具体步骤为:设置所需精度后,通过二维数组或矩阵标记网格上的点。其中,设置精度能够调整网格单元的大小,控制网格上各点之间的距离。
[0063] 以通过二维数组标记网格上的点为例,记二维数组A[r][c]标记网格上的点,其中,网格单元的参数包括网格长L和网格宽W,网格单元的行数r为(Ymax‑Ymin)/W、网格单元的列数c为(Xmax‑Xmin)/L,由于需要找出目标图形内部的最大内接正方形,因此网格长L和网格宽W的数值设置相等,便于通过网格边长确定目标图形内部最大内接正方形的边长。
[0064] 步骤三:判断辅助矩形中网格上的点是否在目标图形内部,并标记所有在目标图形内部的点。具体的,通过引射线法遍历判断二维数组A[r][c]表示的点是否在外轮廓线内部并通过二维数组B[r][c]将位于外轮廓线内部的点进行标记。
[0065] 判断目标点是否在目标图形内,从目标点出发引一条射线,计算该条射线与目标图形所有边的交点数目,若有奇数个交点,则说明目标点在目标图形的内部,若有偶数个交点,则说明目标点在目标图形的外部。
[0066] 此外,还可以通过面积和判别法、夹和判断别法等方法对目标点进行判断,判断该点是否在目标图形内部。
[0067] 步骤四:根据所有在目标图形内部的点计算目标图形内部的最大内接正方形。
[0068] 具体包括如下步骤:首先,定义变量largest、startX、endX、startY、endY,其中,largest为最大内接正方形的边长,变量largest初始值为0;E(startX,startY)、F(startX,endY)、G(endX,startY)、H(endX,endY)为最大内接正方形四个顶点的位置,通过确定变量startX、endX、startY、endY的值即可确定最大内接正方形的位置和大小。
[0069] 其次,定义二维数组dp[i][j],用于记录内接正方形的边长;
[0070] 然后,逐行或逐列依次遍历,确定目标图形内部各点的dp[i][j],并与largest进行比较,若dp[i][j]的值大于largest的值,则将dp[i][j]的值赋予largest并保存largest,同时更新E、F、G、H顶点的坐标;若dp[i][j]的值不大于largest的值,则保留当前largest和E、F、G、H顶点的坐标。
[0071] 以逐行遍历为例:
[0072] 设置从下至上且从左至右逐行遍历,当遍历至第i行时,目标图形内第i行X值最小的点为 ,目标图形内第i行X值最大的点为 ,记startX= ,记二维数组dp[i][j]=1,以二维数组dp[i][j]的值为边长,向右上方框选正方形,判断该正方形是否位于目标图形内部,即判断该正方形中各点是否在二维数组B[r][c]内。
[0073] 若该正方形位于目标图形内部,然后判断二维数组dp[i][j]的值是否大于largest的值,若大于,则将dp[i][j]的值赋予largest并保存largest,同时更新E、F、G、H顶点的坐标;若dp[i][j]的值不大于largest的值,则保留当前largest和E、F、G、H顶点的坐标;同时,记二维数组dp[i][j]=dp[i][j]+1,继续以二维数组dp[i][j]的值为边长,向右上方框选正方形,判断该正方形是否位于目标图形内部。
[0074] 若该正方形不在目标图形内部,则记startX= +1,记二维数组dp[i][j]=1,以二维数组dp[i][j]的值为边长,向右上方框选正方形,判断该正方形是否位于目标图形内部。
[0075] 重复上述操作,当startX= 时,表示第i行遍历结束,开始遍历第i+1行。
[0076] 逐行遍历,直至目标图形内部各点循环遍历结束,确定最终largest、startX、endX、startY、endY的值。
[0077] 具体的,如图10所示,封闭的外轮廓线所围合的图形为目标图形,辅助矩形将目标图形包络其中,辅助矩形内的点位于二维数组A[r][c]内,以空心点表示目标图形内部的点,即空心点位于二维数组B[r][c]内。
[0078] 进行逐行遍历时,从下至上且从左至右逐行遍历,进行第一行遍历时,以第一行的点 开始遍历。
[0079] 首先,记二维数组dp[i][j]=1,以边长为1个网格宽度向右上方框选正方形,得到如图10中①所示的矩形结构,此时需要判断该矩形结构上的点是否均在目标图形内部,由于图10中①中所示的矩形结构上各点均在目标图形内,则比较dp[i][j]=1与当前largest的值大小,由于largest初始值为0,因此点 的dp[i][j]大于当前largest的值,记largest=1,更新E(startX,startY)、F(startX,endY)、G(endX,startY)、H(endX,endY)的顶点坐标。
[0080] 由于点 当前框选的矩形结构上的点均在目标图形内部,则使dp[i][j]=dp[i][j]+1,以边长为2个网格宽度向右上方框选正方形,得到如图10中②所示的矩形结构,此时判断该矩形结构上的点存在位于目标图形外部的点,因此结束点 的遍历。
[0081] 以点 为目标点,在目标图形中框选的最大正方形为如图10中①所示的矩形结构,此时largest的值为1,顶点坐标为图10中①中矩形结构的坐标。
[0082] 当点 遍历结束后,开始点 +1的遍历,同样的,记二维数组dp[i][j]=1,以边长为1个网格宽度向右上方框选正方形,此时得到如10中③所示的矩形结构,此时判断该矩形结构上的点存在位于目标图形外部的点,因此结束点 +1的遍历,此时largest的值为1,顶点坐标为图10中①中矩形结构的坐标。
[0083] 由于第一行仅存在两个位于目标图形内部的点,则第一行的两个点遍历结束后,开始第二行遍历,同样的,第二行遍历时,以第二行的点 开始遍历。
[0084] 记二维数组dp[i][j]=1,以边长为1个网格宽度向右上方框选正方形,得到如图10中④所示的矩形结构,由于图10中④所示的矩形结构上各点均在目标图形内,则比较dp[i][j]=1与当前largest的值大小,由于dp[i][j]与当前largest的值大小相同,则保留当前largest的值以及图10中①中顶点坐标。
[0085] 由于点 当前框选的矩形结构上的点均在目标图形内部,则使dp[i][j]=dp[i][j]+1,以边长为2个网格宽度向右上方框选正方形,得到如图10中⑤所示的矩形结构,由于图10中⑤中所示的矩形结构上各点均在目标图形内,则比较dp[i][j]=2与当前
largest的值大小,由于dp[i][j]大于当前largest的值,则使largest=2并更新顶点坐标为图10中⑤的顶点。
[0086] 由于点 当前框选的矩形结构上的点均在目标图形内部,则使dp[i][j]=dp[i][j]+1,以边长为3个网格宽度向右上方框选正方形,得到如图10中⑥所示的矩形结构,由于该矩形结构上的点存在位于目标图形外部的点,因此结束点 的遍历,此时
largest的值为2,顶点坐标为图10中⑤中矩形结构的坐标。
[0087] 开始点 +1的遍历,以边长为1个网格宽度向右上方框选正方形,得到如图10中⑦所示的矩形结构,由于图10中⑦中所示的矩形结构上各点均在目标图形内,则比较dp[i][j]=1与当前largest的值大小,由于dp[i][j]小于当前largest的值,则保留largest=2以及图10中⑤的顶点坐标。
[0088] 然后以边长为2个网格宽度向右上方框选正方形,得到如图10中⑧所示的矩形结构,由于该矩形结构上的点存在位于目标图形外部的点,因此结束点 +1的遍历,开始点 +2的遍历,以边长为1个网格宽度向右上方框选正方形,得到如图10中⑨所示的矩形结构。
[0089] 以此类推,直至目标图形内所有的点遍历结束,最终确定框选的最大内接正方形的大小和位置,从而进一步确认打标位置和标记的大小。
[0090] 此外,以逐列遍历为例:
[0091] 设置从左至右且从下至上逐列遍历,当遍历至第j列时,目标图形内第j列Y值最小的点为 ,目标图形内第j列Y值最大的点为 ,记startY= ,记二维数组dp[i][j]=1,以二维数组dp[i][j]的值为边长,向右上方框选正方形,判断该正方形是否位于目标图形内部;
[0092] 若该正方形位于目标图形内部,然后判断二维数组dp[i][j]的值是否大于largest的值,若大于,则将dp[i][j]的值赋予largest并保存largest,同时更新E、F、G、H顶点的坐标;若dp[i][j]的值不大于largest的值,则保留当前largest和E、F、G、H顶点的坐标;同时,记二维数组dp[i][j]=dp[i][j]+1,继续以二维数组dp[i][j]的值为边长,向右上方框选正方形,判断该正方形是否位于目标图形内部;
[0093] 若该正方形不在目标图形内部,则记startY= +1,记二维数组dp[i][j]=1,以二维数组dp[i][j]的值为边长,向右上方框选正方形,判断该正方形是否位于目标图形内部;
[0094] 当startY= 时,表示第j列遍历结束,开始遍历第j+1列;
[0095] 直至目标图形内部各点循环遍历结束,确定最终largest、startX、endX、startY、endY的值,从而确定最大内接正方形的边长和坐标位置。
[0096] 需要注意的是:逐行遍历时,可设置从下至上且从右至左逐行遍历,此时需要向目标点的左上方框选矩形结构;逐行遍历时,可设置从上至下且从左至右逐行遍历,此时需要向目标点的右下方框选矩形结构;逐行遍历时,可设置从上至下且从右至左逐行遍历,此时需要向目标点的左下方框选矩形结构。具体过程与上述逐行遍历过程相同,在此不做赘述。
[0097] 逐列遍历时,可设置从左至右且从上至下逐列遍历,此时需要向目标点的右下方框选矩形结构;逐列遍历时,可设置从右至左且从下至上逐列遍历,此时需要向目标点的左上方框选矩形结构;逐列遍历时,可设置从右至左且从上至下逐列遍历,此时需要向目标点的左下方框选矩形结构。具体过程与上述逐列遍历过程相同,在此不做赘述。
[0098] 步骤五:根据确定的坐标位置确定最大内接正方形的中心点O((startX+endX)/2,(startY+endY)/2)。将打标文字的中心处设置于最大内接正方形的中心点O处,使打标信息处于最大内接正方形的中心位置,避免打标信息与内孔或外轮廓产生干涉,导致打标信息不清楚。
[0099] 步骤六:在目标图形内的最大内接正方形中添加打标信息。进一步的,打标信息的大小与相应的最大内接正方形的边长呈正比,打标信息的大小能够根据确定的最大内接正方形的边长自适应调整,使打标信息更加适合该目标图形的大小和比例。
[0100] 其中,打标信息包括打标文字、打标图案、打标商标,文字、图案、商标主要起到标识防伪作用,可根据实际需求进行选择。
[0101] 实施例二
[0102] 如图1、图6至图9所示,本实施例的结构与实施例一中基本相同,其不同之处在于:本实施例的目标图形包括一个封闭的外轮廓线和多个封闭的内轮廓线,内轮廓线位于外轮廓线所围合的图形中。
[0103] 相较于实施例一中步骤三的具体操作,本实施例中判断辅助矩形中网格上的点是否在目标图形内部,并标记所有在目标图形内部的点,具体包括如下步骤:通过引射线法遍历判断二维数组A[r][c]表示的点是否在外轮廓线内部且在内轮廓线外部并通过二维数组B[r][c]将位于外轮廓线内部且在内轮廓线外部的点进行标记。
[0104] 实施例三
[0105] 本发明的第二方面,提供一种确认打标位置的装置,包括辅助模块、标记模块、判断模块、计算模块、定位模块和添加模块。其中,辅助模块用于确定包络目标图形外轮廓线的辅助矩形大小;标记模块用于根据设置的精度对辅助矩形进行网格单元的划分并标记网格上的点;判断模块用于判断辅助矩形中网格上的点是否在目标图形内部,并标记所有在目标图形内部的点;计算模块用于根据所有在目标图形内部的点计算目标图形内部的最大内接正方形;定位模块用于根据确定的最大内接正方形坐标位置确定最大内接正方形的中心点O((startX+endX)/2,(startY+endY)/2);添加模块用于在目标图形内的最大内接正方形中添加打标信息,所述打标信息的中心位于目标图形内最大内接正方形的中心点O处,所述打标信息的大小与相应的最大内接正方形的边长适配。
[0106] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
QQ群二维码
意见反馈