CN112085816A - 一种字形曲线生成方法及装置 - Google Patents
一种字形曲线生成方法及装置 Download PDFInfo
- Publication number
- CN112085816A CN112085816A CN202010964969.6A CN202010964969A CN112085816A CN 112085816 A CN112085816 A CN 112085816A CN 202010964969 A CN202010964969 A CN 202010964969A CN 112085816 A CN112085816 A CN 112085816A
- Authority
- CN
- China
- Prior art keywords
- curve
- point
- data
- point data
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 75
- 238000012545 processing Methods 0.000 claims abstract description 96
- 238000010586 diagram Methods 0.000 claims abstract description 69
- 238000007781 pre-processing Methods 0.000 claims abstract description 16
- 238000006243 chemical reaction Methods 0.000 claims description 22
- 238000000605 extraction Methods 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 13
- 238000005457 optimization Methods 0.000 claims description 5
- 239000011159 matrix material Substances 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000003708 edge detection Methods 0.000 description 2
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000010845 search algorithm Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000005260 corrosion Methods 0.000 description 1
- 230000007797 corrosion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/203—Drawing of straight lines or curves
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/20—Image enhancement or restoration using local operators
- G06T5/30—Erosion or dilatation, e.g. thinning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/70—Denoising; Smoothing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/90—Determination of colour characteristics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/14—Image acquisition
- G06V30/148—Segmentation of character regions
- G06V30/153—Segmentation of character regions using recognition of characters or words
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本申请实施例提供一种字形曲线生成方法及装置,涉及图片处理技术领域,该字形曲线生成方法包括:获取非矢量图,并对非矢量图进行预处理,得到非矢量图的轮廓点数据;根据预设的关键点查找算法从轮廓点数据中提取关键点数据;对关键点数据进行曲线拟合处理,得到初始字形曲线;对初始字形曲线进行优化处理,得到字形曲线。可见,该方法能够根据非矢量图快速生成相应的字形曲线,精度高,误差小,适用性好。
Description
技术领域
本申请涉及图片处理技术领域,具体而言,涉及一种字形曲线生成方法及装置。
背景技术
在web应用中,字体图标(iconfont)使用范围非常广泛,字体图标的生成依赖于相应的字形曲线,现有的字形曲线生成方法,通常是直接从矢量图形中提取用于组成字形曲线的线和点,进而得到字形曲线。然而,在实践中发现,现有的方法只能对矢量图形进行处理得到字形曲线,而对于非矢量图形,无法生成相应的字形曲线。可见,现有的字形曲线生成方法只适用于矢量图形,兼容性差、适用性低。
发明内容
本申请实施例的目的在于提供一种字形曲线生成方法及装置,能够根据非矢量图形快速生成相应的字形曲线,精度高,误差小,适用性好。
本申请实施例第一方面提供了一种字形曲线生成方法,包括:
获取非矢量图,并对所述非矢量图进行预处理,得到所述非矢量图的轮廓点数据;
根据预设的关键点查找算法从所述轮廓点数据中提取关键点数据;
对所述关键点数据进行曲线拟合处理,得到初始字形曲线;
对所述初始字形曲线进行优化处理,得到字形曲线。
在上述实现过程中,在根据非矢量图生成字形曲线时,先获取非矢量图,并对非矢量图进行预处理,得到轮廓点数据;然后再根据预设的关键点查找算法从轮廓点数据中提取关键点数据;进一步地,对关键点数据进行曲线拟合处理,得到初始字形曲线;最后,对初始字形曲线进行优化处理,得到字形曲线。可见,该方法能够根据非矢量图快速生成相应的字形曲线,精度高,误差小,适用性好。
进一步地,所述对所述非矢量图进行预处理,得到所述非矢量图的轮廓点数据,包括:
对所述非矢量图进行数据转换处理,得到图像点数据;
对所述图像点数据进行二值化处理,得到二值化图像数据;
对所述二值化图像数据进行去噪处理,得到去噪图像数据;
对所述去噪图像数据进行轮廓点提取处理,得到所述非矢量图的轮廓点数据。
在上述实现过程中,对非矢量图进行预处理时,先对非矢量图进行数据转换处理,转换成能处理的数据形式,即图像点数据,然后再对图像点数据进行二值化和去噪处理,能够有效去除干扰,有利于提升对去噪图像数据进行轮廓点提取处理的精度,进而有利于提升字形曲线的精度。
进一步地,所述关键点数据包括拐点、起点、终点和控制点。
在上述实现过程中,对轮廓点数据中的关键点进行查找和标记,保留相关轮廓点数据中的关键点,以便于进一步进行曲线拟合处理。
进一步地,所述对所述关键点数据进行曲线拟合处理,得到初始字形曲线,包括:
对所述关键点数据进行直线拟合和/或曲线拟合处理,得到初始字形曲线。
在上述实现过程中,通过对关键点进行直线拟合和/或曲线拟合处理,能够快速得到一个初步的初始字形曲线,处理方法简单,速度快。
进一步地,所述对所述关键点数据进行通过直线拟合和/或曲线拟合处理,得到初始字形曲线,包括:
通过直线识别算法对所述关键点数据进行直线点识别处理,得到直线线段集合;
从所述关键点数据中剔除所述直线线段集合对应的所有直线点,得到第一剩余点集;
对所述第一剩余点集进行二次贝塞尔曲线拟合处理,得到二次贝塞尔曲线集合;
对所述直线线段集合、所述二次贝塞尔曲线集合进行合并处理,得到所述初始字形曲线。
在上述实现过程中,在对所述关键点数据进行曲线拟合处理时,先确定直线线段集合,再确定二次贝塞尔曲线集合,最后对直线线段集合、二次贝塞尔曲线集合进行合并处理,得到初始字形曲线,拟合方法简单,处理速度快,进而有利于提升字形曲线生成速度。
进一步地,所述对所述第一剩余点集进行二次贝塞尔曲线拟合处理,得到二次贝塞尔曲线集合,包括:
对所述第一剩余点集进行曲线点识别处理,得到圆曲线集合;
从所述第一剩余点集中剔除所述圆曲线集合对应的曲线点,得到第二剩余点集;
对所述第二剩余点集进行三次贝塞尔曲线拟合处理,得到三次贝塞尔曲线集合;
对所述圆曲线集合以及所述三次贝塞尔曲线集合进行二次贝塞尔曲线转换处理,得到二次贝塞尔曲线集合。
在上述实现过程中,在对第一剩余点集进行二次贝塞尔曲线拟合处理时,先对第一剩余点集进行曲线点识别处理得到圆曲线集合,然后再对剩余的第二剩余点集进行撒那次贝塞尔曲线拟合处理得到三次贝塞尔曲线集合,最后再对圆曲线集合以及三次贝塞尔曲线集合进行二次贝塞尔曲线转换处理,进而得到二次贝塞尔曲线集合。
本申请实施例第二方面提供了一种字形曲线生成装置,所述字形曲线生成装置包括:
图片获取模块,用于获取非矢量图;
预处理模块,用于对所述非矢量图进行预处理,得到所述非矢量图的轮廓点数据;
提取模块,用于根据预设的关键点查找算法从所述轮廓点数据中提取关键点数据;
拟合模块,用于对所述关键点数据进行曲线拟合处理,得到初始字形曲线;
优化模块,用于对所述初始字形曲线进行优化处理,得到字形曲线。
在上述实现过程中,在根据非矢量图生成字形曲线时,图片获取模块先获取非矢量图,预处理模块再对非矢量图进行预处理,得到轮廓点数据;然后提取模块再根据预设的关键点查找算法从轮廓点数据中提取关键点数据;进一步地,拟合模块对关键点数据进行曲线拟合处理,得到初始字形曲线;最后,优化模块对初始字形曲线进行优化处理,得到字形曲线。可见,该方法能够根据非矢量图快速生成相应的字形曲线,精度高,误差小,适用性好。
进一步地,所述预处理模块包括:
转换子模块,用于对所述非矢量图进行数据转换处理,得到图像点数据;
二值化子模块,用于对所述图像点数据进行二值化处理,得到二值化图像数据;
去噪子模块,用于对所述二值化图像数据进行去噪处理,得到去噪图像数据;
提取子模块,用于对所述去噪图像数据进行轮廓点提取处理,得到所述非矢量图的轮廓点数据。
在上述实现过程中,对非矢量图进行预处理时,转换子模块对非矢量图进行数据转换处理,转换成能处理的数据形式,即图像点数据,然后通过二值化子模块对图像点数据进行二值化以及通过去噪子模块对二值化图像数据进行去噪处理,能够有效去除干扰,有利于提升对去噪图像数据进行轮廓点提取处理的精度,进而有利于提升字形曲线的精度。
本申请实施例第三方面提供了一种电子设备,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行本申请实施例第一方面中任一项所述的字形曲线生成方法。
本申请实施例第四方面提供了一种计算机可读存储介质,其存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行本申请实施例第一方面中任一项所述的字形曲线生成方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的第一种字形曲线生成方法的流程示意图;
图2为本申请实施例提供的第二种字形曲线生成方法的流程示意图;
图3为本申请实施例提供的第一种字形曲线生成装置的结构示意图;
图4为本申请实施例提供的第二种字形曲线生成装置的结构示意图;
图5为本申请实施例提供的一种关键点数据中点的向量夹角的求解示意图;
图6为本申请实施例提供的一种第一剩余点集中点的曲率半径的求解示意图。
图标:A、B、C、D-关键点数据中的点,θ1-B点的向量夹角,θ2-C点的向量夹角,E、F、G、H-第一剩余点集中的点,O1-过E点、F点、G点的圆的圆心,R1-圆心为O1的圆的半径,O2-过F点、G点、H点的圆的圆心,R2-圆心为O2的圆的半径。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参看图1,图1为本申请实施例提供了第一种字形曲线生成方法的流程示意图。其中,该字形曲线生成方法包括:
S101、获取非矢量图,并对非矢量图进行预处理,得到非矢量图的轮廓点数据。
本申请实施例中,该方法应用于非矢量图转字形曲线,并根据该字形曲线生成相应字体图标的应用场景中。
本申请实施例中,非矢量图包括栅格图像,栅格图像又称为光栅图像,是指在空间和亮度上都已经离散化了的图像,是由一系列像素组成的矩形图案。
本申请实施例中,非矢量图的图像存储格式可以为JPEG(Joint PhotographicExperts Group,联合图像专家组)格式、png(Portable Network Graphics,便携式网络图形)格式、gif(Graphics Interchange Format,图像互换格式)格式等,对此本申请实施例不作限定。
本申请实施例中,对非矢量图进行预处理时,可以采用边缘检测算子从非矢量图中提取轮廓点数据,还可以采用人工智能轮廓检测模型提取轮廓点数据,还可以采用opencv轮廓查找算法提取轮廓点数据等,对此本申请实施例不作限定。
S102、根据预设的关键点查找算法从轮廓点数据中提取关键点数据。
本申请实施例中,关键点数据包括拐点、起点、终点、控制点等,还可以包括角点、切点等,对此本申请实施例不作限定。
本申请实施例中,通过提取关键点数据,能够对轮廓点数据进行大量消减,同时还能保留相关轮廓中的关键节点,以便于进一步进行曲线拟合处理。
本申请实施例中,预设的关键点查找算法包括拐点提取算法、控制点提取算法、起始点和终止点提取算法等,还可以包括角点提取算法、切点提取算法等,对此本申请实施例不作限定。
作为一种可选的实施方式,拐点提取算法包括:从轮廓点数据中选取预设数量的目标点拟合成一条目标直线;计算所选取目标点到目标直线的第一距离和,如果该距离和小于预设距离阈值(可根据实际情况灵活设定),在该一定数量的轮廓点的基础上按照排列顺序顺次增加一个新的轮廓点,并将该新的轮廓点和预设数量的目标点重新拟合成一条新的目标直线,并计算新的轮廓点和预设数量的目标点分别至新的目标直线的第二距离和;如果该第二距离和大于或等于该预设距离阈值,则选取该新的轮廓点和预设数量的目标点的最后一个点作为拐点,然后,继续选取一定数量的其它轮廓点,并将其拟合成一条直线重新循环,进而从轮廓点数据中搜寻出拐点。
在上述实施方式中,在计算所选取目标点到目标直线的第一距离和时,先计算所选取目标点中,每个点到目标直线的距离,然后再对所有的距离进行求和计算,得到第一距离和。第二距离和的计算同第一距离和的计算方法相同。
本申请实施例中,确定控制点的目的主要是为了避免由于遮挡设定阈值过高而前景区域的长度又很短时引起的伪匹配问题。
本申请实施例中,控制点提取算法可以采用立体匹配算法,具体可以为只对像素周围小区域进行约束的局部匹配方法、对扫描线或整幅图像进行约束的全局匹配方法。其中,局部匹配算法主要有基于区域的匹配方法、基于特征的匹配方法等,对此本申请实施例不作限定。
本申请实施例中,在根据预设的关键点查找算法从轮廓点数据中提取关键点数据时,还可以先对轮廓点数据进行去除坏点处理,以去除干扰点,进而有利于提升关键点提取精度。
在步骤S103之后,还包括以下步骤:
S103、对关键点数据进行曲线拟合处理,得到初始字形曲线。
本申请实施例中,对关键点数据进行曲线拟合处理,所使用的曲线拟合方法包括直线拟合方法、圆曲线拟合方法以及三次贝塞尔曲线拟合方法等,对此本申请实施例不作限定。
S104、对初始字形曲线进行优化处理,得到字形曲线。
本申请实施例中,对初始字形曲线进行优化处理,即对初始字形曲线进行平滑处理,使拟合后的曲线更平滑。同时,还可以对初始字形曲线的曲线参数进行调整,有利于提升字形曲线的精确度。
本申请实施例中,字形曲线为用于字形使用的曲线点集,包括线段点集和二次贝塞尔曲线点集。
本申请实施例中,该方法的执行主体可以为计算机、服务器、智能手机、平板电脑等等装置,对此本实施例中不作任何限定。
可见,实施本实施例所描述的字形曲线生成方法,能够根据非矢量图形快速生成相应的字形曲线,精度高,误差小,适用性好。
请参看图2,图2为本申请实施例提供的第二种字形曲线生成方法的流程示意图。如图2所示,其中,该字形曲线生成方法包括:
S201、获取非矢量图。
S202、对非矢量图进行数据转换处理,得到图像点数据。
本申请实施例中,对非矢量图进行数据转换处理,即将非矢量图转换成带alpha通道的图像点数据,图像点数据中的每一个像素点包含(r,g,b,alpha)这几项数据。
本申请实施例中,一个像素点(r,g,b,alpha)的包括三个颜色向量矩阵,分别是R矩阵、G矩阵、B矩阵,alpha表示alpha通道数据。
本申请实施例中,alpha通道,即阿尔法通道(αChannel或Alpha Channel),是指该像素点的透明和半透明度。对于每一个像素点而言,可以5个比特表示R矩阵数据,5个比特表示G矩阵数据,5个比特表示B矩阵数据,最后一个比特表示alpha通道数据。
本申请实施例中,像素点是最小的图像单元,一张图片由好多的像素点构成。
S203、对图像点数据进行二值化处理,得到二值化图像数据。
本申请实施例中,对图像点数据进行二值化处理,还可以包括以下步骤:
对图像点数据进行灰度化处理,得到灰度化图像点数据;
对灰度化图像点数据进行二值化处理,得到二值化图像数据。
在上述实施方式中,对图像点数据进行灰度化处理,即对图像点数据中的每一个像素点的(r,g,b,alpha)数据通过灰度化算法转换成灰度像素点。
作为一种可选的实施方式,可以采用下述灰度化算法对像素点的(r,g,b,alpha)数据进行处理:
灰度化后的R=处理前的R*0.3+处理前的G*0.59+处理前的B*0.11;
灰度化后的G=处理前的R*0.3+处理前的G*0.59+处理前的B*0.11;
灰度化后的B=处理前的R*0.3+处理前的G*0.59+处理前的B*0.11。
在上述实施方式中,对灰度化图像点数据进行二值化处理时,先计算灰度阈值,然后根据灰度阈值对灰度化图像点数据进行二值化处理。
在上述实施方式中,计算灰度阈值的方法可以为均值法、大津法、谷底最小值等,对此本申请实施例不作限定。
本申请实施例中,对图像点数据进行二值化处理得到的二值化图像数据中,每个像素点使用0或者1表示,其中,0表示白像素,1表示黑像素。
在步骤S203之后,还包括以下步骤:
S204、对二值化图像数据进行去噪处理,得到去噪图像数据。
本申请实施例中,在得到二值化图像数据之后,二值化图像数据中可能存在较多杂点、孔洞等干扰数据,需要对二值化图像数据进行去噪处理,以消除杂点、空洞等数据的干扰。具体的,可以采用消除杂点算法、消除孔洞算法、膨胀算法、腐蚀算法等,对二值化图像数据进行去噪处理。
S205、对去噪图像数据进行轮廓点提取处理,得到非矢量图的轮廓点数据。
本申请实施例中,进行轮廓点提取处理时,可以采用边缘检测算法、人工智能轮廓检测模型、基于计算机视觉的轮廓查找算法等,对此本申请实施例不作限定。
本申请实施例中,可以采用基于计算机视觉库的轮廓查找算法,进行图像边缘查找,以提取去噪图像数据中的轮廓点数据。
本申请实施例中,实施上述步骤S202~步骤S205,能够对非矢量图进行预处理,得到非矢量图的轮廓点数据。
S206、根据预设的关键点查找算法从轮廓点数据中提取关键点数据。
本申请实施例中,关键点数据包括拐点、起点、终点、控制点等,还可以包括角点、切点等,对此本申请实施例不作限定。
本申请实施例中,通过提取关键点数据,能够对轮廓点数据进行大量消减,同时还能保留相关轮廓中的关键节点,以便于进一步进行曲线拟合处理。
S207、通过直线识别算法对关键点数据进行直线点识别处理,得到直线线段集合。
本申请实施例中,通过直线识别算法对关键点数据进行直线点识别处理,得到直线线段集合,可以包括以下步骤:
计算关键点数据中每个关键点的向量夹角;
确定关键点数据中其中一个关键点为起点;
从起点开始计算每个关键点同相邻关键点的向量夹角差值;
根据向量夹角差值对关键点数据进行直线点识别处理,得到直线线段集合。
请一并参阅图5,图5是本申请实施例提供的一种关键点数据中点的向量夹角的求解示意图。如图5所示,设关键点数据包括四个点,即A点、B点、C点和D点,其中,向量和向量的夹角θ1为B点的向量夹角,同理,向量和向量的夹角θ2为C点的向量夹角。B点的向量夹角差值Δθ=∣θ2-θ1∣。
在上述实施方式中,针对关键点数据来说,每个关键点连接起来可以构成一个闭合的曲线,因此,对于关键点数据中的每个关键点均具有前一个相邻点和下一个相邻点,则每个关键点均具有向量夹角,其中,向量夹角的范围为:-π~π。
在上述实施方式中,根据向量夹角差值对关键点数据进行直线点识别处理时,以关键点B点为例,其对应的向量夹角差值Δθ大于预设差值阈值时,则确定关键点B点为直线线段上的点,若其对应的向量夹角差值Δθ小于或者等于预设差值阈值时,则确定关键点B点为拐点。同理,进而可以确定出关键点数据中每个关键点是否为直线线段上的点或者拐点。
在上述实施方式中,对于直线线段来说,当一个点为拐点时,则表明该点为直线线段的线段终点。
在上述实施方式中,在确定出关键点数据中每个关键点是否为直线线段上的点或者线段终点之后,将关键点数据中为直线线段上的点或者线段终点的点提取出来,得到直线点集合,然后再对该直线点集合进行直线段拟合处理,得到直线线段集合。
在步骤S207之后,还包括以下步骤:
S208、从关键点数据中剔除直线线段集合对应的所有直线点,得到第一剩余点集。
本申请实施例中,上述直线点集合包括直线线段集合对应的所有直线点。
S209、对第一剩余点集进行曲线点识别处理,得到圆曲线集合。
本申请实施例中,通过圆曲线识别算法对第一剩余点集进行曲线点识别处理,得到圆曲线集合,可以包括以下步骤:
确定第一剩余点集中其中一个点为起点;
从起点开始计算第一剩余点集中每个点的曲率半径;
根据曲率半径计算第一剩余点集中每个点的曲率半径差值;
根据曲率半径差值对第一剩余点集进行圆曲线点识别处理,得到圆曲线集合。
请一并参阅图6,图6是本申请实施例提供的一种第一剩余点集中点的曲率半径的求解示意图。如图6所示,设第一剩余点集包括四个点,即E点、F点、G点和H点,其中,因为第一剩余点集中的点,均不为直线线段的点,因此,在计算F点的曲率半径时,先根据E点、F点、G点确定一个圆,该圆的圆心为O1,半径为R1,则F点的曲率半径即为R1,同理,可以根据F点、G点、H点确定一个圆,该圆的圆心为O2,半径为R3,则G点的曲率半径为R2。则F点的曲率半径差值ΔR=∣R2-R1∣。
本申请实施例中,由于第一剩余点集中每个点连接起来可以构成一个闭合的曲线,因此,对于第一剩余点集中每个点均具有前一个点和下一个点,则每个点均具有曲率半径。
在上述实施方式中,根据曲率半径差值对第一剩余点集进行圆曲线点识别处理时,以F点为例,若其对应的向量夹角差值ΔR大于预设半径阈值时,则确定F点为圆曲线上的点,若其对应的向量夹角差值ΔR小于或者等于预设半径阈值时,则确定F点不为圆曲线上的点。同理,进而可以确定出第一剩余点集中每个点是否为圆曲线上的点。
在上述实施方式中,可以根据上述方法从第一剩余点集中提取出圆曲线上的点,得到圆曲线点集,然后再对该圆曲线点集进行二次贝塞尔曲线拟合处理,得到圆曲线集合。
在步骤S209之后,还包括以下步骤:
S210、从第一剩余点集中剔除圆曲线集合对应的曲线点,得到第二剩余点集。
本申请实施例中,上述圆曲线点集包括圆曲线集合对应的曲线点。
S211、对第二剩余点集进行三次贝塞尔曲线拟合处理,得到三次贝塞尔曲线集合。
本申请实施例中,对第二剩余点集进行三次贝塞尔曲线拟合处理时,可以对第二剩余点集进行多次三次贝塞尔曲线拟合处理,取取拟合结果最好的一个曲线,作为三次贝塞尔曲线集合。
S212、对圆曲线集合以及三次贝塞尔曲线集合进行二次贝塞尔曲线转换处理,得到二次贝塞尔曲线集合。
作为一种可选的实施方式,对圆曲线集合以及三次贝塞尔曲线集合进行二次贝塞尔曲线转换处理,得到二次贝塞尔曲线集合,可以包括以下步骤:
对圆曲线集合和三次贝塞尔曲线集合进行合并处理,得到合并曲线集合;
对合并曲线集合中的曲线进行二次贝塞尔曲线拟合处理,得到二次贝塞尔曲线集合。
作为另一种可选的实施方式,对圆曲线集合以及三次贝塞尔曲线集合进行二次贝塞尔曲线转换处理,得到二次贝塞尔曲线集合,可以包括以下步骤:
对圆曲线集合中的曲线进行二次贝塞尔曲线拟合处理,得到第一拟合曲线集合,以及对三次贝塞尔曲线集合中的曲线进行二次贝塞尔曲线拟合处理,得到第二拟合曲线集合;
对第一拟合曲线集合和第二拟合曲线集合进行合并处理,得到二次贝塞尔曲线集合。
本申请实施例中,实施上述步骤S209~步骤S212,能够对第一剩余点集进行二次贝塞尔曲线拟合处理,得到二次贝塞尔曲线集合。
S213、对直线线段集合、二次贝塞尔曲线集合进行合并处理,得到初始字形曲线。
作为一种可选的实施方式,对直线线段集合、二次贝塞尔曲线集合进行合并处理,得到初始字形曲线包括:
对直线线段集合中的连续直线线段进行合并处理,得到第一合并曲线集合;
对二次贝塞尔曲线集合中的连续曲线段进行合并处理,得到第二合并曲线集合;
对第一合并曲线集合和第二合并曲线集合进行合并处理,得到初始字形曲线。
在上述实施方式中,对直线线段集合中的连续直线线段进行合并处理时,可以先计算连续直线线段的连接点的向量夹角,然后根据向量夹角对连续直线线段进行线段合并处理,能够使得连接点更为平滑,进而得到第一合并曲线集合。
在上述实施方式中,对合二次贝塞尔曲线集合中的连续曲线段进行合并处理时,可以先计算每个曲线的起点和终点的向量夹角,然后根据向量夹角调整连续曲线段连接点的位置,使曲线连接处更平滑,然后对连续曲线段进行合并处理,得到第二合并曲线集合。
在上述实施方式中,第一合并曲线集合包括已经合并的连续直线线段和未合并的直线线段;第二合并曲线集合包括已经合并的连续曲线段和未合并的曲线段。
在上述实施方式中,字形曲线为用于字形使用的曲线点集,包括线段点集(即第一合并曲线集合)和二次贝塞尔曲线点集(即第二合并曲线集合)。
本申请实施例中,实施上述步骤S207~步骤S213,能够对关键点数据进行直线拟合和/或曲线拟合处理,得到初始字形曲线,具体地,能够对关键点数据进行通过直线拟合和/或曲线拟合处理,得到初始字形曲线。
在步骤S213之后,还包括以下步骤:
S214、对初始字形曲线进行优化处理,得到字形曲线。
本申请实施例中,在得到初始字形曲线之后,还可以对初始字形曲线包括的第一合并曲线集合的第二合并曲线集合中的点进行点集验证,并对初始字形曲线的曲线参数进行调整,进而得到更为精确可靠的字形曲线。
可见,实施图2所描述的字形曲线生成方法,能够根据非矢量图形快速生成相应的字形曲线,精度高,误差小,适用性好。
请参看图3,图3为本申请实施例提供的第一种字形曲线生成装置的结构示意图。如图3所示,该字形曲线生成装置包括:
图片获取模块300,用于获取非矢量图。
预处理模块400,用于对非矢量图进行预处理,得到非矢量图的轮廓点数据。
提取模块500,用于根据预设的关键点查找算法从轮廓点数据中提取关键点数据。
拟合模块600,用于对关键点数据进行曲线拟合处理,得到初始字形曲线。
优化模块700,用于对初始字形曲线进行优化处理,得到字形曲线。
本申请实施例中,对于字形曲线生成装置的解释说明可以参照实施例1或实施例2中的描述,对此本实施例中不再多加赘述。
可见,实施本实施例所描述的字形曲线生成装置,能够根据非矢量图形快速生成相应的字形曲线,精度高,误差小,适用性好。
请一并参阅图4,图4是本申请实施例提供的第二种字形曲线生成装置的结构示意图。其中,图4所示的字形曲线生成装置是由图3所示的字形曲线生成装置进行优化得到的。如图4所示,预处理模块400包括:
转换子模块410,用于对非矢量图进行数据转换处理,得到图像点数据;
二值化子模块420,用于对图像点数据进行二值化处理,得到二值化图像数据;
去噪子模块430,用于对二值化图像数据进行去噪处理,得到去噪图像数据;
提取子模块440,用于对去噪图像数据进行轮廓点提取处理,得到非矢量图的轮廓点数据。
本申请实施例中,关键点数据包括拐点、起点、终点和控制点。
本申请实施例中,拟合模块600,具体用于对关键点数据进行直线拟合和/或曲线拟合处理,得到初始字形曲线。
作为一种可选的实施方式,拟合模块600包括:
识别子模块610,用于通过直线识别算法对关键点数据进行直线点识别处理,得到直线线段集合;
剔除子模块620,用于从关键点数据中剔除直线线段集合对应的所有直线点,得到第一剩余点集;
拟合子模块630,用于对第一剩余点集进行二次贝塞尔曲线拟合处理,得到二次贝塞尔曲线集合;
合并子模块640,用于对直线线段集合、二次贝塞尔曲线集合进行合并处理,得到初始字形曲线。
作为一种可选的实施方式,拟合子模块630包括:
识别单元631,用于对第一剩余点集进行曲线点识别处理,得到圆曲线集合;
剔除单元632,用于从第一剩余点集中剔除圆曲线集合对应的曲线点,得到第二剩余点集;
拟合单元633,用于对第二剩余点集进行三次贝塞尔曲线拟合处理,得到三次贝塞尔曲线集合;
转换单元634,还用于对圆曲线集合以及三次贝塞尔曲线集合进行二次贝塞尔曲线转换处理,得到二次贝塞尔曲线集合。
本申请实施例中,对于字形曲线生成装置的解释说明可以参照实施例1或实施例2中的描述,对此本实施例中不再多加赘述。
可见,实施本实施例所描述的字形曲线生成装置,能够根据非矢量图形快速生成相应的字形曲线,精度高,误差小,适用性好。
本申请实施例提供了一种电子设备,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行本申请实施例1或实施例2中任一项字形曲线生成方法。
本申请实施例提供了一种计算机可读存储介质,其存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行本申请实施例1或实施例2中任一项字形曲线生成方法及装置方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种字形曲线生成方法,其特征在于,包括:
获取非矢量图,并对所述非矢量图进行预处理,得到所述非矢量图的轮廓点数据;
根据预设的关键点查找算法从所述轮廓点数据中提取关键点数据;
对所述关键点数据进行曲线拟合处理,得到初始字形曲线;
对所述初始字形曲线进行优化处理,得到字形曲线。
2.根据权利要求1所述的字形曲线生成方法,其特征在于,所述对所述非矢量图进行预处理,得到所述非矢量图的轮廓点数据,包括:
对所述非矢量图进行数据转换处理,得到图像点数据;
对所述图像点数据进行二值化处理,得到二值化图像数据;
对所述二值化图像数据进行去噪处理,得到去噪图像数据;
对所述去噪图像数据进行轮廓点提取处理,得到所述非矢量图的轮廓点数据。
3.根据权利要求1所述的字形曲线生成方法,其特征在于,所述关键点数据包括拐点、起点、终点和控制点。
4.根据权利要求1所述的字形曲线生成方法,其特征在于,所述对所述关键点数据进行曲线拟合处理,得到初始字形曲线,包括:
对所述关键点数据进行直线拟合和/或曲线拟合处理,得到初始字形曲线。
5.根据权利要求4所述的字形曲线生成方法,其特征在于,所述对所述关键点数据进行通过直线拟合和/或曲线拟合处理,得到初始字形曲线,包括:
通过直线识别算法对所述关键点数据进行直线点识别处理,得到直线线段集合;
从所述关键点数据中剔除所述直线线段集合对应的所有直线点,得到第一剩余点集;
对所述第一剩余点集进行二次贝塞尔曲线拟合处理,得到二次贝塞尔曲线集合;
对所述直线线段集合、所述二次贝塞尔曲线集合进行合并处理,得到所述初始字形曲线。
6.根据权利要求5所述的字形曲线生成方法,其特征在于,所述对所述第一剩余点集进行二次贝塞尔曲线拟合处理,得到二次贝塞尔曲线集合,包括:
对所述第一剩余点集进行曲线点识别处理,得到圆曲线集合;
从所述第一剩余点集中剔除所述圆曲线集合对应的曲线点,得到第二剩余点集;
对所述第二剩余点集进行三次贝塞尔曲线拟合处理,得到三次贝塞尔曲线集合;
对所述圆曲线集合以及所述三次贝塞尔曲线集合进行二次贝塞尔曲线转换处理,得到二次贝塞尔曲线集合。
7.一种字形曲线生成装置,其特征在于,所述字形曲线生成装置包括:
图片获取模块,用于获取非矢量图;
预处理模块,用于对所述非矢量图进行预处理,得到所述非矢量图的轮廓点数据;
提取模块,用于根据预设的关键点查找算法从所述轮廓点数据中提取关键点数据;
拟合模块,用于对所述关键点数据进行曲线拟合处理,得到初始字形曲线;
优化模块,用于对所述初始字形曲线进行优化处理,得到字形曲线。
8.根据权利要求7所述的字形曲线生成装置,其特征在于,所述预处理模块包括:
转换子模块,用于对所述非矢量图进行数据转换处理,得到图像点数据;
二值化子模块,用于对所述图像点数据进行二值化处理,得到二值化图像数据;
去噪子模块,用于对所述二值化图像数据进行去噪处理,得到去噪图像数据;
提取子模块,用于对所述去噪图像数据进行轮廓点提取处理,得到所述非矢量图的轮廓点数据。
9.一种电子设备,其特征在于,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行权利要求1至6中任一项所述的字形曲线生成方法。
10.一种可读存储介质,其特征在于,所述可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行权利要求1至6任一项所述的字形曲线生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010964969.6A CN112085816B (zh) | 2020-09-14 | 2020-09-14 | 一种字形曲线生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010964969.6A CN112085816B (zh) | 2020-09-14 | 2020-09-14 | 一种字形曲线生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112085816A true CN112085816A (zh) | 2020-12-15 |
CN112085816B CN112085816B (zh) | 2024-06-07 |
Family
ID=73737853
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010964969.6A Active CN112085816B (zh) | 2020-09-14 | 2020-09-14 | 一种字形曲线生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112085816B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114861595A (zh) * | 2022-03-22 | 2022-08-05 | 电子科技大学 | 一种基于矢量线条变换的个性字体生成方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102129710A (zh) * | 2010-12-30 | 2011-07-20 | 北京像素软件科技股份有限公司 | 一种飞行路径模拟方法及系统 |
CN102881033A (zh) * | 2012-08-06 | 2013-01-16 | 孙计良 | 自适应曲线的生成方法及装置 |
CN103942552A (zh) * | 2014-02-11 | 2014-07-23 | 北京大学 | 一种基于骨架指导的文字图像矢量化方法及系统 |
CN110196964A (zh) * | 2019-06-05 | 2019-09-03 | 北大方正集团有限公司 | 字体格式的转换方法及设备 |
-
2020
- 2020-09-14 CN CN202010964969.6A patent/CN112085816B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102129710A (zh) * | 2010-12-30 | 2011-07-20 | 北京像素软件科技股份有限公司 | 一种飞行路径模拟方法及系统 |
CN102881033A (zh) * | 2012-08-06 | 2013-01-16 | 孙计良 | 自适应曲线的生成方法及装置 |
CN103942552A (zh) * | 2014-02-11 | 2014-07-23 | 北京大学 | 一种基于骨架指导的文字图像矢量化方法及系统 |
CN110196964A (zh) * | 2019-06-05 | 2019-09-03 | 北大方正集团有限公司 | 字体格式的转换方法及设备 |
Non-Patent Citations (1)
Title |
---|
石雷;韩德志;章夏芬;毕坤;: "基于轮廓拟合的新风格书法字合成", 计算机应用与软件, no. 06 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114861595A (zh) * | 2022-03-22 | 2022-08-05 | 电子科技大学 | 一种基于矢量线条变换的个性字体生成方法 |
CN114861595B (zh) * | 2022-03-22 | 2023-04-07 | 电子科技大学 | 一种基于矢量线条变换的个性字体生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112085816B (zh) | 2024-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110738207B (zh) | 一种融合文字图像中文字区域边缘信息的文字检测方法 | |
Nomura et al. | A novel adaptive morphological approach for degraded character image segmentation | |
JP4232800B2 (ja) | ラインノイズ除去装置、ラインノイズ除去方法、ラインノイズ除去プログラム | |
JP2001092919A (ja) | 2次元バーコードのねじれ角決定法 | |
Chatbri et al. | Using scale space filtering to make thinning algorithms robust against noise in sketch images | |
JP2014153820A (ja) | 文字切り出し装置及び文字切り出し方法 | |
US9256802B2 (en) | Object or shape information representation method | |
CN108537832B (zh) | 基于局部不变灰度特征的图像配准方法、图像处理系统 | |
Rezaei et al. | Skew detection of scanned document images | |
CN111507337A (zh) | 基于混合神经网络的车牌识别方法 | |
CN108256518B (zh) | 文字区域检测方法及装置 | |
CN110826360A (zh) | Ocr图像预处理与文字识别 | |
CN112085816B (zh) | 一种字形曲线生成方法及装置 | |
CN112818983B (zh) | 一种利用图片相识度判断字符倒置的方法 | |
Li et al. | An improved Douglas-Peucker algorithm for fast curve approximation | |
CN111325199B (zh) | 一种文字倾斜角度检测方法及装置 | |
Rampurkar et al. | An approach towards text detection from complex images using morphological techniques | |
CN116030472A (zh) | 文字坐标确定方法及装置 | |
Qiu et al. | An optimized license plate recognition system for complex situations | |
CN110349111B (zh) | 一种包含二维码图像的矫正方法和装置 | |
Pal et al. | Circular arc segmentation by curvature estimation and geometric validation | |
Chang et al. | Skeletonization of binary digital patterns using a fast Euclidean distance transformation | |
Ablameyko et al. | A system for automatic recognition of engineering drawing entities | |
CN118071831B (zh) | 图像粗定位方法、设备及计算机可读存储介质 | |
Karthik et al. | Level set methodology for Tamil document image binarization and segmentation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |