数控代码生成方法、装置、电子设备及存储介质与流程

文档序号:24940876发布日期:2021-05-04 11:33阅读:116来源:国知局
本发明涉及数字控制
技术领域
:,尤其是涉及一种数控代码生成方法、装置、电子设备及存储介质。
背景技术
::g代码(g-code,又称rs-274),是最为广泛使用的数控(numericalcontrol)编程语言,有多个版本,主要在计算机辅助制造中用于控制自动机床。g代码是由定义了一定功能的字母附上数据后组合而成的,一般一条指令完成一个动作,若干条指令按一定结构构成一段程序。在具体的数控加工程序中,一般是用各种准备功能的g代码和辅助功能的g代码来描述加工过程的各种运动特征和操作的。在数字控制领域中,如何根据实际加工流程来生成g代码成为了一个重要环节。对于一些简单的加工轨迹可以直接编写g代码,但对于复杂的加工轨迹则需要软件协助生成。一些常见的方法,比如使用专有的cad软件(比如autocad)中编辑图形,然后导入对应的图形文件再生成g代码,但这些方法都无法完整、可控地生成g代码。技术实现要素:本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明实施例提出一种数控代码生成方法,能够高效灵活地生成符合需求的数控代码,提高数控代码的可靠性。本发明实施例还提出一种数控代码生成装置。本发明实施例还提出一种电子设备。本发明实施例还提出一种计算机可读存储介质。根据本发明的第一方面实施例的数控代码生成方法,包括:获取待转换图片,对所述待转换图片进行处理得到初始二值图像;根据所述初始二值图像提取出初始轮廓数据;对所述初始轮廓数据进行精度处理,得到目标轮廓数据;根据所述目标轮廓数据进行拟合,生成目标数控代码。根据本发明第一方面实施例的数控代码生成方法,至少具有如下有益效果:通过将待转换图片处理得到初始二值图像,然后根据初始二值图像提取出初始轮廓数据,再对初始轮廓数据进行精度处理,得到目标轮廓数据,最后根据目标轮廓数据进行拟合,生成目标数控代码,能够高效灵活地生成符合需求的数控代码,提高数控代码的可靠性。根据本发明的一些实施例,所述获取待转换图片,对所述待转换图片进行处理得到初始二值图像,包括:根据预设阈值对所述待转换图片进行二值化处理,得到所述初始二值图像。根据本发明的一些实施例,所述根据所述初始二值图像提取出初始轮廓数据,包括:获取所述初始二值图像的起始像素点;根据预设遍历模型和预设的搜寻顺序对所述起始像素点进行搜寻,得到第一搜寻点;将所述起始像素点更新为所述第一搜寻点,执行所述根据所述预设遍历模型和预设的搜寻顺序对所述起始像素点进行搜寻的步骤,将最后一次更新得到的所述第一搜寻点作为第一终止像素点;根据所述起始像素点、多个所述第一搜寻点和所述第一终止像素点提取出所述初始轮廓数据。根据本发明的一些实施例,在所述根据所述预设遍历模型和预设的搜寻顺序对所述起始像素点进行搜寻,得到第一搜寻点之后,还包括:获取第二搜寻点;将所述起始像素点更新为所述第二搜寻点,执行所述根据所述预设遍历模型和预设的搜寻顺序对所述起始像素点进行搜寻的步骤,将最后一次更新得到的所述第二搜寻点作为第二终止像素点;根据所述起始像素点、多个所述第二搜寻点和所述第二终止像素点提取出所述初始轮廓数据。根据本发明的一些实施例,所述对所述初始轮廓数据进行精度处理,得到目标轮廓数据,包括:获取预设精度值;根据所述预设精度值对所述初始轮廓数据进行合并处理,得到所述目标轮廓数据。根据本发明的一些实施例,所述根据所述目标轮廓数据进行拟合,生成目标数控代码,包括:根据所述目标轮廓数据生成目标点列;将所述目标点列进行拟合,得到所述目标数控代码。根据本发明的一些实施例,所述根据所述目标轮廓数据生成目标点列,包括:根据所述初始轮廓数据生成第一点列;基于所述预设精度值从所述第一点列中提取出目标点;根据所述目标点生成所述目标点列。根据本发明的第二方面实施例的数控代码生成装置,包括:获取模块,用于获取待转换图片,对所述待转换图片进行处理得到初始二值图像;提取模块,用于根据所述初始二值图像提取出初始轮廓数据;处理模块,用于对所述初始轮廓数据进行精度处理,得到目标轮廓数据;生成模块,用于根据所述目标轮廓数据进行拟合,生成目标数控代码。根据本发明第二方面实施例的数控代码生成装置,至少具有如下有益效果:通过执行本发明第一方面实施例的数控代码生成方法,能够高效灵活地生成符合需求的数控代码,提高数控代码的可靠性。根据本发明第三方面实施例的电子设备,包括:至少一个处理器,以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行所述指令时实现第一方面所述的数控代码生成方法。根据本发明第三方面实施例的电子设备,至少具有如下有益效果:通过执行本发明第一方面实施例的数控代码生成方法,能够高效灵活地生成符合需求的数控代码,提高数控代码的可靠性。根据本发明第四方面实施例的计算机可读存储介质,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行第一方面所述的数控代码生成方法。根据本发明第四方面实施例的计算机可读存储介质,至少具有如下有益效果:通过执行本发明第一方面实施例的数控代码生成方法,能够高效灵活地生成符合需求的数控代码,提高数控代码的可靠性。本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。附图说明本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:图1为本发明实施例的数控代码生成方法的流程示意图;图2为本发明实施例的预设遍历模型的结构示意图;图3a为本发明一实施例的初始轮廓数据的示意图;图3b为本发明另一实施例的初始轮廓数据的示意图;图4为本发明实施例的数控代码生成装置的结构示意图;图5为本发明实施例的电子设备的功能模块图。附图标记:获取模块400、提取模块410、处理模块420、生成模块430、处理器500、存储器510、数据传输模块520、摄像头530、显示屏540。具体实施方式下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。本发明的描述中,除非另有明确的限定,设置、安装、连接等词语应做广义理解,所属
技术领域
:技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。g代码(g-code,又称rs-274),是最为广泛使用的数控(numericalcontrol)编程语言,有多个版本,主要在计算机辅助制造中用于控制自动机床。g代码是由定义了一定功能的字母附上数据后组合而成的,一般一条指令完成一个动作,若干条指令按一定结构构成一段程序。在具体的数控加工程序中,一般是用各种准备功能的g代码和辅助功能的g代码来描述加工过程的各种运动特征和操作的。在数字控制领域中,如何根据实际加工流程来生成g代码成为了一个重要环节。对于一些简单的加工轨迹可以直接编写g代码,但对于复杂的加工轨迹则需要软件协助生成。一些常见的方法,比如使用专有的cad软件(比如autocad)中编辑图形,然后导入对应的图形文件再生成g代码,当这些方法都无法完整、可控地生成g代码。基于此,本发明实施例提出一种数控代码生成方法、装置、电子设备及存储介质,能够高效灵活地生成符合需求的数控代码,提高数控代码的可靠性。参照图1,根据本发明第一方面实施例的数控代码生成方法,包括:步骤s100,获取待转换图片,对待转换图片进行处理得到初始二值图像。其中,数控代码可以是g代码,g代码是数控程序中的指令,一般都称为g指令,使用g代码可以实现快速定位、逆圆插补、顺圆插补、中间点圆弧插补、半径编程、跳转加工;待转换图片可以是用于生成数控代码的任意格式图像,例如bmp(位图,全称bitmap,bmp是一种与硬件设备无关的图像文件格式)、jpg(联合照片专家组,全称:jointphotographicexpertgroup,jpeg也是最常见的一种图像格式,文件后辍名为".jpg"或".jpeg",是最常用的图像文件格式)、png(便携式网络图形,全称:portablenetworkgraphics,是网上接受的最新图像文件格式)、tif(标签图像文件格式,全称:tagimagefileformat,是由aldus和microsoft公司为桌上出版系统研制开发的一种较为通用的图像文件格式)或gif(图形交换格式,全称:graphicsinterchangeformat,是一种连续色调的无损压缩图像文件格式)格式的图像;初始二值图像可以是对待转换图片进行初步处理后得到的二值化的图像。可选的,可以导入用于生成g代码的任意格式的图片,可以先将该图片转换为rgb色彩模式(rgb色彩模式是工业界的一种颜色标准,是通过对红(r)、绿(g)、蓝(b)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的)的图片,例如将该图片转换为24位位深度的rgb格式的图片,并将其灰度化(r,g,b分量设置为三者平均值),得到待转换图片,进而可以将待转换图片进行二值化处理,即将待转换图片处理为每个像素点均为黑色或者白色的图像,由此得到初始二值图像。步骤s110,根据初始二值图像提取出初始轮廓数据。其中,初始轮廓数据可以是从初始二值图像中提取出的一系列link结构,link结构即linklist(链表),链表是一种数据结构。可选的,为提取初始二值图像的图像轮廓,可以利用一定的算法从初始二值图像中提取出一系列link结构,例如可以根据需求定义一种数据结构link,使得该link结构可以用于保存初始二值图像的轮廓信息,进而可以从该轮廓信息提取出一系列link结构,即得到初始轮廓数据。步骤s120,对初始轮廓数据进行精度处理,得到目标轮廓数据。其中,目标轮廓数据可以是对初始轮廓数据按照预先设置的精度进行筛选后所得的一系列link结构。对于较大的图片,可能不需要高精度的轮廓数据,例如由于加工路径本身精度限制不需要高精度的轮廓数据,或是由于设备图像显示的限制,对于配置较低的计算机,使用低精度的图像可以使其运行更流畅,因此,可以对初始轮廓数据进行精度处理,降低初始轮廓数据的精度,以控制用于生成数控代码的图像精细程度,从而可以生成更符合需求的数控代码。可选的,可以根据需求设置精度要求,例如设置一个精度值,从而可以根据该精度值对初始轮廓数据进行精度处理,得到目标轮廓数据。步骤s130,根据目标轮廓数据进行拟合,生成目标数控代码。其中,目标数控代码可以是生成的符合需求的g代码;拟合可以是使用拟合算法将目标轮廓数控代码转化为g代码,拟合算法可以是直线拟合或样条曲线拟合。拟合就是把平面上一系列的点,用一条光滑的曲线连接起来。可选的,可以根据目标轮廓数据生成目标数控代码,例如,通过直线拟合得到目标数控代码:将直接连接经精度处理后的一系列link结构中的各个点列(即目标轮廓数据),得到目标数控代码;还可以将目标轮廓数据代入样条曲线拟合公式(三次b样条曲线方程),即可生成目标数控代码。上述数控代码生成方法,通过将待转换图片处理得到初始二值图像,然后根据初始二值图像提取出初始轮廓数据,再对初始轮廓数据进行精度处理,得到目标轮廓数据,最后根据目标轮廓数据进行拟合,生成目标数控代码,能够高效灵活地生成符合需求的数控代码,提高数控代码的可靠性。在本发明的一些实施例中,获取待转换图片,对待转换图片进行处理得到初始二值图像,包括:根据预设阈值对待转换图片进行二值化处理,得到初始二值图像。其中,预设阈值可以是预先设置的待转换图片上像素值的临界值。可选的,预设阈值可以根据需求设置。预设阈值可以是待转换图片上的全局的阈值,预设阈值的取值范围可以为0~255。可以将预设阈值用于对待转换图片进行全局二值化,将整个待转换图片呈现出明显的只有黑和白的视觉效果。可选的,可以比较待转换图片上每个像素点的像素值与预设阈值之间的大小关系,将像素值小于预设阈值的部分设置rgb为0(黑色),将像素值大于预设阈值的部分设置rgb为255(白色),从而可以实现对待转换图片的二值化处理。具体的,对于待转换图片上任一像素点的rgb颜色值,假设a像素点的rgb颜色值为(220,200,180),灰度化为(200,200,200),假设预设阈值k取值为220,则上述a像素点200<k,将其a像素点的颜色值变为(0,0,0),即设置a像素点的rgb为0(黑色);同理,若选取的k为100,此时200>k,因此可以将a像素点的颜色值变为(255,255,255),即设置a像素点的rgb为255(白色)。由此可以对待转换图片上所有像素点进行二值化处理,得到初始二值图像。通过预设阈值对待转换图片进行二值化处理,得到初始二值图像,以完成对待转换图片的预处理,得到符合需求的初始二值图像。在本发明的一些实施例中,根据初始二值图像提取出初始轮廓数据,包括:获取初始二值图像的起始像素点。其中,起始像素点可以是初始二值图像中开始进行扫描搜寻的像素点。可选的,假设初始二值图像中某一像素点e(x1,y1)对应的bool值(布尔型变量)为0,则该像素点e为未经处理的无效像素点,可以将无效像素点的标志位设为0(即标志位为false),即将该像素点e的状态设为0;假设初始二值图像中某一像素点f(x2,y2)对应的bool值为1,则该像素点f为已经处理的有效像素点,可以将有效像素点的标志位设为1(即标志位为true),即将该像素点f的状态设为1。可选的,在首次对初始二值图像进行扫描时,可以将起始搜寻点设置为初始二值图像左上角的像素点,由此得到起始搜寻点。根据预设遍历模型和预设的搜寻顺序对起始像素点进行搜寻,得到第一搜寻点。其中,预设遍历模型可以是用于遍历搜寻初始二值图像的有效像素点的算法模型,预设遍历模型可以根据需求设置;预设的搜寻顺序可以是预先设置的利用预设遍历模型对像素点进行扫描的顺序;第一搜寻点可以是利用预设遍历模型对起始像素点进行搜寻所得的一个有效的邻接像素。图2示出了本发明实施例的预设遍历模型的结构示意图,参照图2,对于初始二值图像上任一像素p(在初始二值图像边缘的像素点,需特殊处理)周围都有8个像素,可以将这8个像素称为p的邻接像素,从而可以对像素p的邻接像素进行编号(0~7),得到预设遍历模型。可选的,请一并参照图2和图3a,假设p点为起始像素点,假设图3a中黑点为有效像素点、白点为无效像素点,假设预设搜寻顺序为对于任意一个像素点,从图2中预设遍历模型中编号0位置的邻接像素进行逆时针方向搜寻(如图2箭头方向所示的搜寻顺序)。可以利用图2所示的预设遍历模型,对图3a中的p点按照预设遍历模型的逆时针方向(即预设的搜寻顺序)进行搜寻。若可以从p点的邻接像素中提取出一个有效像素则判断搜寻成功,由图3a可得,p点的邻接像素中的有效像素为b点(参照图2,此时b点的像素编号为6),可以将b点设为第一搜寻点。同理,若无法从p点的邻接像素中提取出一个有效像素(即p点的邻接像素均为无效像素点)则判断搜寻失败,表示当前路径搜寻完毕。将起始像素点更新为第一搜寻点,执行根据预设遍历模型和预设的搜寻顺序对起始像素点进行搜寻的步骤,将最后一次更新得到的第一搜寻点作为第一终止像素点。其中,第一终止像素点可以是从起始像素点开始搜寻图像的终点。可选的,请一并参照图2和图3a,假设第一次搜寻得到的第一搜寻点为b点(编号为6),则可以将图3a中的b点作为图2中新的p点,即将起始像素点p点更新为第一搜寻点b,重新对图3a中的b点按照预设遍历模型的逆时针方向(即预设的搜寻顺序)进行搜寻,得到b点的有效邻接像素c点(参照图2,此时c点的像素编号为0)。以此类推,利用图2所示的预设遍历模型,按照从左到右的顺序,对图3a所示的图像进行逐行扫描,可以遍历得到图3a中所有的有效邻接像素,即多个第一搜寻点,分别为:b点(编号为6)、c点(编号为0)、d点(编号为7)、e点(编号为7)、f点(编号为0)、g点(编号为0)、h点(编号为0)、i点(编号为6)、j点(编号为6)、k点(编号为5)、l点(编号为7),其中,因l点为图3a所示的搜寻图像的终点,所以可以将最后一次更新得到的l点作为第一终止像素点。根据起始像素点、多个第一搜寻点和第一终止像素点提取出初始轮廓数据。可选的,参照图3a,假设起始像素点为p点、多个第一搜寻点分别为b点、c点、d点、e点、f点、g点、h点、i点、j点、k点,第一终止像素点为l点,则可以以p点为起点初始化link结构,即新开始一条link路径,然后将搜寻到的多个第一搜寻点的像素编号依次加入link,即将b点(编号为6)、c点(编号为0)、d点(编号为7)、e点(编号为7)、f点(编号为0)、g点(编号为0)、h点(编号为0)、i点(编号为6)、j点(编号为6)、k点(编号为5)和第一终止像素点l点(编号为7)加入link结构,得到初始轮廓数据为link1,link1为:p60770006657如图3a所示,可以将起始像素点、多个第一搜寻点和第一终止像素点进行连接,由此可以得到初始轮廓数据link1。通过预设遍历模型和预设的搜寻顺序,对起始像素点进行搜寻,得到第一搜寻点,然后将该第一搜寻点作为新的起始像素点,开始下一轮搜寻,依次得到多个第一搜寻点和第一终止像素点,最后根据起始像素点、多个第一搜寻点和第一终止像素点提取出初始轮廓数据,可以搜寻出有效的初始轮廓数据。在本发明的一些实施例中,在根据预设遍历模型和预设的搜寻顺序对起始像素点进行搜寻,得到第一搜寻点之后,还包括:获取第二搜寻点。其中,第二搜寻点可以是从起始像素点的邻接像素中提取出另一个有效像素。可选的,假设某一起始像素点的邻接像素中可以存在多个有效像素,不同的有效像素对应不同的link结构。因此在搜寻过程中,可以在搜寻得到第一搜寻点后,再获取第二搜寻点,从而可以根据第二搜寻点建立一条新的link结构;若存在第三搜寻点,则可以根据第三搜寻点建立一条新的link结构,以此类推,直至遍历初始二值图像中的所有有效像素,并可以分别根据不同的有效像素(第一搜寻点、第二搜寻点、……、第n搜寻点)建立多条新的link结构,即得到多个初始轮廓数据。将起始像素点更新为第二搜寻点,执行根据预设遍历模型和预设的搜寻顺序对起始像素点进行搜寻的步骤,将最后一次更新得到的第二搜寻点作为第二终止像素点。其中,第二终止像素点可以是从第二搜索点开始搜寻图像的终点。可选的,以仅存在第二个有效像素(即仅存在第二搜寻点)为例,请一并参照图2和图3b,假设对图3b中的f点进行搜寻得到的第二搜寻点为m点(编号为5),则可以将图3b中的m点作为图2中新的p点,对图3b中的m点按照图2所示的预设遍历模型的搜寻顺序进行搜寻,从而可以得到以m点为起点的新的有效像素,例如得到m点的有效邻接像素n点(参照图2,此时n点的像素编号为5)。以此类推,利用图2所示的预设遍历模型,按照从左到右的顺序,对图3b所示的图像进行逐行扫描,可以遍历得到图3b中所有的有效邻接像素,即多个第二搜寻点,分别为:n点(编号为5)、o点(编号为4)、q点(编号为6)、r点(编号为6),其中,因r点为图3b所示的搜寻图像的终点,所以可以将最后一次更新得到的r点作为第二终止像素点。根据起始像素点、多个第二搜寻点和第二终止像素点提取出初始轮廓数据。可选的,参照图3b,假设更新后的起始像素点为p点(即图3b中的m点)、多个第二搜寻点分别为n点、o点、q点,第二终止像素点为r点,则可以以m点为起点初始化link结构,即新开始一条link路径,然后将搜寻到的多个第二搜寻点的像素编号依次加入link,即将n点(编号为5)、o点(编号为4)、q点(编号为6)和第二终止像素点r点(编号为6)加入link结构,得到初始轮廓数据为link2,link2为:p5466如图3b所示,可以将起始像素点、多个第二搜寻点和第二终止像素点进行连接,由此可以得到初始轮廓数据link2。结合图3b所示的link1,可以得到该初始二值图像的所有初始轮廓数据,即link1和link2。在一些具体的实施例中,初始二值图像中还可以存在第三搜寻点,进而可以根据第三搜寻点搜寻得到link3,则初始二值图像的初始轮廓数据包括link1、link2和link3。通过获取第二搜寻点,并将起始像素点更新为第二搜寻点,遍历得到初始二值图像的所有初始轮廓数据,从而可以提取出完整的初始轮廓数据,保证生成的数控代码的准确性和完整性。在本发明的一些实施例中,对初始轮廓数据进行精度处理,得到目标轮廓数据,包括:获取预设精度值。其中,预设精度值可以是预先设置的初始轮廓数据之间的接近程度的数值。可选的,预设精度值可以根据需求设置,预设精度值的取值可以为整数,假设预设精度值k=2。根据预设精度值对初始轮廓数据进行合并处理,得到目标轮廓数据。可选的,假设预设精度值k,则对于任一link结构,将连续的k个元素合并,得到目标轮廓数据。具体的,假设预设精度值k=2,假设对初始轮廓数据link1进行合并,则可以将link1中的每隔(k-1)个的第一搜寻点进行连接,即每隔1个第一搜寻点进行连接,从而得到精度处理后的目标轮廓数据,精度处理后的目标轮廓数据包括:起始像素点p点、c点(编号为0)、e点(编号为7)、g点(编号为0)、i点(编号为6)、k点(编号为5)和第一终止像素点l点(编号为7),假设目标轮廓数据为link4,link4为:p070657即可以将起始像素点、c点(编号为0)、e点(编号为7)、g点(编号为0)、i点(编号为6)、k点(编号为5)和第一终止像素点l点(编号为7)进行连接,由此可以得到目标轮廓数据link4。在一些具体的实施例中,假设预设精度值k=1,根据k=1的预设精度值对初始轮廓数据进行合并处理,即将完整的初始轮廓数据作为目标轮廓数据。因此,预设精度值k越小,实际的目标轮廓结构越精细。通过预设精度值对初始轮廓数据进行合并处理,可以准确控制图像精细程度,从而可以生成更符合需求的数控代码。在本发明的一些实施例中,根据目标轮廓数据进行拟合,生成目标数控代码,包括:根据目标轮廓数据生成目标点列。其中,目标点列可以是目标轮廓数据中所有点的集合。可选的,参照图3a,假设目标轮廓数据link4包括:起始像素点p点、c点、e点、g点、i点、k点和第一终止像素点l点,假设p点坐标为(x,y),则c点坐标为(x+1,y+1),e点坐标为(x+3,y+3),g点坐标为(x+5,y+3),i点坐标为(x+6,y+4),k点坐标为(x+5,y+6),l点坐标为(x+6,y+7),则可以根据上述所有点的坐标,生成的目标点列为:p(x,y)→(x+1,y+1)→(x+3,y+3)→(x+5,y+3)→(x+6,y+4)→(x+5,y+6)→(x+6,y+7)。将目标点列进行拟合,得到目标数控代码。可选的,可以将目标点列进行直线拟合,例如直接连接目标点列中的各个点即可转化得到g代码(即目标数控代码)。可选的,可以根据样条曲线拟合公式设置目标点列为样条曲线的拟合点,样条曲线拟合公式可以是三次b样条曲线拟合公式,即根据三次b样条曲线拟合计算出节点与控制点即可转化得到g代码(即目标数控代码)。根据目标轮廓数据生成目标点列,继而可以将目标点列进行直线拟合,或进行样条曲线拟合,使得将目标点列转化为g代码所采用的拟合方式不再局限于单一的直线拟合,从而可以高效灵活地生成符合需求的数控代码。在本发明的一些实施例中,根据目标轮廓数据生成目标点列,还包括:根据初始轮廓数据生成第一点列。其中,第一点列可以是初始轮廓数据中所有点的集合。可选的,参照图3a,假设初始轮廓数据为link1,link1包括:起始像素点p点,b点、c点、d点、e点、f点、g点、h点、i点、j点、k点和第一终止像素点l点,假设p点坐标为(x,y),则b点坐标为(x,y+1),c点坐标为(x+1,y+1),d点坐标为(x+2,y+2),e点坐标为(x+3,y+3),f点坐标为(x+4,y+3),g点坐标为(x+5,y+3),h点坐标为(x+6,y+3),i点坐标为(x+6,y+4),j点坐标为(x+6,y+5),k点坐标为(x+5,y+6),l点坐标为(x+6,y+7),则可以根据上述所有点的坐标,生成目标点列为:p(x,y)→(x,y+1)→(x+1,y+1)→(x+2,y+2)→(x+3,y+3)→(x+4,y+3)→(x+5,y+3)→(x+6,y+3)→(x+6,y+4)→(x+6,y+5)→(x+5,y+6)→(x+6,y+7)。基于预设精度值从第一点列中提取出目标点。其中,目标点可以是用于生成目标点列的坐标点。可选的,假设预设精度值为k,对于给定k,提取出第一点列中的目标点,例如每隔(k-1)个点提取上述第一点列中的点,假设k=2,则每隔1个点提取出目标点,得到目标点为p(x,y),c点坐标为(x+1,y+1),e点坐标为(x+3,y+3),g点坐标为(x+5,y+3),i点坐标为(x+6,y+4),k点坐标为(x+5,y+6),l点坐标为(x+6,y+7)。根据目标点生成目标点列。可选的,可以根据多个目标点生成目标点列,生成的目标点列为:p(x,y)→(x+1,y+1)→(x+3,y+3)→(x+5,y+3)→(x+6,y+4)→(x+5,y+6)→(x+6,y+7)。根据初始轮廓数据生成第一点列,然后基于预设精度值从第一点列中提取出目标点,最后根据目标点生成目标点列,能够直接根据初始轮廓数据灵活地生成符合需求的数控代码,提高数控代码的可靠性。下面以一个具体的实施例详细描述本发明实施例的数控代码生成方法的过程。需要理解的是,下面描述仅是示例性说明,而不是对本发明的具体限制。数控代码生成方法,包括:(1)对导入的用于生成g代码的图片,选择合适的阈值,进行二值化处理。可选的,对任意格式图片,将其转换为24位位深度的rgb格式,并将其灰度化(r,g,b分量设置为三者平均值),然后对灰度化的图片进行二值化处理。具体的,可以选择一个合适的阈值k(取值范围为0~255),对图片中像素值小于k的部分设置rgb为0(黑色),大于等于k的部分设置rgb为255(白色)。例如,对于导入的图片的任一像素点的rgb颜色值,例如(220,200,180),将其灰度化为(200,200,200)。可以假设预设的阈值k为220,则上述像素点200<k,将其颜色值变为(0,0,0)(即黑色);同理,若选取的k为100,此时200>k,因此颜色值变为(255,255,255)(即白色)。(2)使用预设的轮廓提取算法,将二值化后的图片转换为轮廓数据。可选的,假设预设的轮廓算法如图2所示,假设二值化后的图片如图3b所示,假设图3b中黑点为有效像素点、白点为无效像素点,假设预设搜寻顺序为对于任意一个像素点,从图2中预设遍历模型中编号0位置的邻接像素进行逆时针方向搜寻(如图2箭头方向所示的搜寻顺序),则可以利用图2所示的预设的轮廓算法,从起始像素点开始搜寻,提取出图3b中的所有有效像素,可以得到图3b中的轮廓数据link1为:p→6→0→7→7→0→0→0→6→6→5→7,图3b中的另一轮廓数据link2为:p→5→4→6→6。(3)对轮廓数据进行精度处理。对于提取的轮廓数据(一系列link结构,例如link1和link2),进行精度处理,以适应实际显示要求。可以设置一个精度值k(整数),对于任一link结构,将link结构中连续的k个元素合并。例如,假设精度值k=2,可以每隔(k-1)个点对link1结构中的元素进行连接,即每隔1个点进行连接,得到精度处理后的轮廓数据为:p→0→7→0→6→5→7。在一些具体的实施例中,精度值k越小,实际的轮廓结构越精细,当k为1时,完全保留精度最高的原始轮廓数据。在提取轮廓之后增加一道精度处理过程,以控制图像精细程度。(4)使用拟合算法对轮廓数据进行拟合,生成g代码。以根据图3a中的link1生成g代码为例,根据图3a中的经过精度处理后的link1:p→0→7→0→6→5→7,假设精度处理后的link1包括:p(x,y),c(x+1,y+1),e(x+3,y+3),g(x+5,y+3),i(x+6,y+4),k(x+5,y+6),l(x+6,y+7),则可以根据上述点生成点列:p(x,y)→(x+1,y+1)→(x+3,y+3)→(x+5,y+3)→(x+6,y+4)→(x+5,y+6)→(x+6,y+7)。最后可以将上述点列进行拟合,例如可以通过直线拟合,直接连接上述点列即可生成g代码;又如可以根据样条曲线拟合公式(三次b样条曲线拟合公式),设置上述点列为样条曲线的拟合点,计算出节点与控制点即可生成g代码。即在转化为g代码过程中增加了样条曲线拟合选项,使得拟合方式不再局限于单一的直线拟合。上述数控代码生成方法,能够高效灵活地生成符合需求的数控代码,提高数控代码的可靠性。参照图4,根据本发明第二方面实施例的数控代码生成装置,包括:获取模块400,用于获取待转换图片,对待转换图片进行处理得到初始二值图像;提取模块410,用于根据初始二值图像提取出初始轮廓数据;处理模块420,用于对初始轮廓数据进行精度处理,得到目标轮廓数据;生成模块430,用于根据目标轮廓数据进行拟合,生成目标数控代码。上述数控代码生成装置,通过执行本发明第一方面实施例的数控代码生成方法,能够高效灵活地生成符合需求的数控代码,提高数控代码的可靠性。参照图5,本发明第三方面实施例还提供了一种电子设备功能模块图,包括:至少一个处理器500,以及与至少一个处理器500通信连接的存储器510;还可以包括数据传输模块520、摄像头530、显示屏540。其中,处理器500通过调用存储器510中存储的计算机程序,用于执行第一方面实施例中的数控代码生成方法。存储器作为一种非暂态存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序,如本发明第一方面实施例中的数控代码生成方法。处理器通过运行存储在存储器中的非暂态软件程序以及指令,从而实现上述第一方面实施例中的数控代码生成方法。存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储执行上述第一方面实施例中的数控代码生成方法。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。实现上述第一方面实施例中的数控代码生成方法所需的非暂态软件程序以及指令存储在存储器中,当被一个或者多个处理器执行时,执行上述第一方面实施例中的数控代码生成方法。本发明第四方面实施例还提供了计算机可读存储介质,存储有计算机可执行指令,该计算机可执行指令用于:执行第一方面实施例中的数控代码生成方法。在一些实施例中,该存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个控制处理器执行,例如,被第三方面实施例的电子设备中的一个处理器执行,可使得上述一个或多个处理器执行上述第一方面实施例中的数控代码生成方法。上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在所属
技术领域
:普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1