CN111666739A - 基于Potrace算法的中文矢量字库生成方法 - Google Patents
基于Potrace算法的中文矢量字库生成方法 Download PDFInfo
- Publication number
- CN111666739A CN111666739A CN202010497185.7A CN202010497185A CN111666739A CN 111666739 A CN111666739 A CN 111666739A CN 202010497185 A CN202010497185 A CN 202010497185A CN 111666739 A CN111666739 A CN 111666739A
- Authority
- CN
- China
- Prior art keywords
- curve
- polygon
- font
- path
- algorithm
- 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
- 239000013598 vector Substances 0.000 title claims abstract description 32
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000010586 diagram Methods 0.000 claims description 4
- 238000000354 decomposition reaction Methods 0.000 claims description 3
- 238000001514 detection method Methods 0.000 claims description 3
- 238000009792 diffusion process Methods 0.000 claims description 3
- 230000000877 morphologic effect Effects 0.000 claims description 3
- 238000001914 filtration Methods 0.000 claims description 2
- 238000009499 grossing Methods 0.000 claims description 2
- 239000003086 colorant Substances 0.000 claims 1
- 230000000007 visual effect Effects 0.000 abstract description 4
- 238000009826 distribution Methods 0.000 abstract description 3
- 230000000694 effects Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character encoding
- G06F40/129—Handling non-Latin characters, e.g. kana-to-kanji conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/51—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/56—Information retrieval; Database structures therefor; File system structures therefor of still image data having vectorial format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/008—Vector quantisation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Controls And Circuits For Display Device (AREA)
- Image Generation (AREA)
Abstract
基于Potrace算法的中文矢量字库生成方法,其属于矢量字库生成的技术领域。该方法通过对Potrace算法中的拟合多边形和贝塞尔曲线片段进行优化和改进,对字体曲线轮廓进行高质量的布点,然后将中文字体图像进行矢量化,生成svg矢量文件。原有的Potrace算法生成的结果质量是,细节处字形轮廓上往往布满了冗余的控制点。本方法产生的字体是逼真的高质量结果,在视觉外观上显示出优于其他方法的优势。且轮廓的曲线线条光顺性高,可以精确捕捉整体特征以及局部细节,具有很高的精确度。同时本方法不仅减少了路径点的数量,而且保留了轮廓的关键风格细节。
Description
技术领域
本发明涉及一种矢量字库的生成技术,具体说是基于Potrace算法改进的中文矢量字库生成方法。
背景技术
矢量是具有一定长度、一定方向、一定位置的直线段。一个汉字的笔画周围的轮廓线可以看成曲线,曲线可以用一组首尾相接的矢量去近似地表示,曲线字库中的字体通过采用直线和曲线来描述一个汉字图像的轮廓。与位图字体相比,矢量字体定义为一组参数曲线,可以缩放到任何大小,并且通过某些数字处理比位图字体更容易转换。因此,我们在制作字库时需要将中文字符从位图字体转换为矢量字体。
目前,汉字字库的输出主要采用的是曲线矢量字库,如常见的Truetype和opentype字库,都是通过矢量曲线来描述一个字体图像的轮廓。在曲线字库的制作流程中,将字体图像矢量化,是至关重要的一步,直接决定着整套字库的输出质量。由于现有的矢量化算法暂时无法满足当前字体设计行业的需求和质量要求,目前大多数商业字体产品仍然严重依赖于设计师对字体图像进行人工布点,手动调整来完成字体图像的矢量化工作。生产效率较低,因此研究一种自动生成高质量的矢量字库的方法具有重要的实际意义。
发明内容
为解决现有技术存在上述问题,本申请提供一种基于Potrace算法改进的字体图像矢量化方法,通过对Potrace算法中的拟合多边形和贝塞尔曲线片段进行优化和改进,对字体曲线轮廓进行高质量的布点,然后将中文字体图像进行矢量化,生成svg矢量文件,最后生成完整的中文字体矢量字库。
为实现上述目的,本申请的技术方案为:一种基于Potrace算法改进的中文字体矢量字库生成方法,包括如下步骤:
第一步,设计字体图像:设计字库中的需要字体,制作为bmp格式的图片进行统一保存,然后用字库中对应的unicode编码对每个字体图像进行命名;
第二步,将字体图片进行二值化和去噪:设置全局阈值,扫描图像,将图像进行进行二值化处理;用形态学运算和各向异性扩散来过滤二值图像,其目的是在不去除图像内容重要部分的情况下降低噪声。最后将二值化后的图片栅格化为像素点阵;
第三步,路径分解:随机选择一对颜色不同但相邻像素,旋转图像使选择的黑色像素在左侧,白色像素块在右侧。选择长度为1的路径为起始路径,沿着两个像素的缝隙移动扩展,保持每个新边缘在其左侧具有黑色像素,在右侧具有白色像素。通过判断周围像素的颜色选择方向前进,一直持续回到开始的顶点。通过此方式将像素转换为封闭路径,通过递归应用上述算法将图像全部转换为封闭的路径。
第四步,多边形拟合路径:用直线片段去拟合各段封闭路径,用这些直线片段构建一个带索引序列的多边形,然后选取最优多边形;
第五步,多边形转为矢量轮廓:将上一步骤中的多边形转为光滑的矢量轮廓,调整多边形顶点的位置来使它尽量接近源位图,根据临近的线片段的长度和它们间的夹角来计算转角和曲线,最后用三次贝塞尔曲线完成多边形轮廓的拟合。
第六步:将矢量曲线轮廓写成svg格式的路径,进而生成svg矢量图。
第七步:读取svg文件并进行解析,将所有字体的svg数据写入TrueType格式的字库并保存。
进一步的,为了让本申请中矢量字体的生成效果更好,即轮廓片段更少,在第四步中,将找到一个最优多边形的问题简化为一个在有向图中找到一个最优环形。使用一个标准的图论算法来寻找有向图中的最优环形。通过计算图,在时间复杂度O(nm)内找到最优环形,其中n是输入路径的大小,m是最长的可能的片段长度。
进一步的,在第五步中,在经过转角检测和光滑化之后,输出由贝塞尔曲线片段和直线片段构成的曲线,通过连接临近的贝塞尔曲线段来优化曲线数量;首先连接临近的凸性一致曲线片段,再连接总的方向改变少于179度的曲线片段,通过连接上述短的曲线片段得到一条新的贝塞尔曲线片段C,再对曲线片段C定义一个数值的惩罚来判断该片段对于原轮廓的近似拟合误差是否在可接受的范围,最后,按照上述过程将利用图论算法得到的最短多边形路径都转换成近似误差在可接受范围内的的曲线片段集合,由此完成多边形轮廓的拟合。
本发明的有益效果:该方法通过对Potrace算法中的拟合多边形和贝塞尔曲线片段进行优化和改进,对字体曲线轮廓进行高质量的布点,然后将中文字体图像进行矢量化,生成svg矢量文件。原有的Potrace算法生成的结果质量是,细节处字形轮廓上往往布满了冗余的控制点。本方法产生的字体是逼真的高质量结果,在视觉外观上显示出优于其他方法的优势。且轮廓的曲线线条光顺性高,可以精确捕捉整体特征以及局部细节,具有很高的精确度。同时本方法不仅减少了路径点的数量,而且保留了轮廓的关键风格细节。
附图说明
图1是本申请的流程图。
图2是本申请的算法原理图。
图3是本申请的字体矢量化效果图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施中的技术方案进行清楚、完整的描述,可以理解的是,所描述的实例仅仅是本发明的一部分实例,而不是全部的实施例。基于本发明的实施例,本领域的技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。
本发明提供了一种根据设计师提供的汉字字体图像,通过改进的potrace图像矢量化算法,将其压缩为矢量数据,并自动生成矢量字库的方法。将字体图像二值化和去噪后,通过优化potrace算法中的多边形和曲线片段,将字体图像转为矢量路径,并写入曲线字库。
本发明流程图如图1所示,以及原理如图2所示,具体实施步骤如下:
将设计师设计好的字体图片进行二值化和去噪后设置全局阈值,扫描图像,将图像进行进行二值化处理,在用形态学运算和各向异性扩散来过滤二值图像,其目的是在不去除图像内容重要部分的情况下降低噪声。
将位图图像被放置在坐标系上,使得每个像素的角具有整数坐标,设置图像的背景颜色是白色,前景颜色是黑色,位于位图边界之外的坐标平面部分填充有白色像素。通过以下步骤将图构造有向图,设p是整数坐标点,同时p与四个像素相邻。如果四个像素的颜色不完全相同,既存在一个像素的颜色与其他三个像素颜色不同,这样的点我们称为拐点。如果图像中两个拐点的欧几里得距离为1,则存在两个顶点连接的边,并且如果从顶点v到顶点w的直线段将黑色像素与白色像素分开,当线段的方向为从顶点v到顶点w时,黑色像素位于其左侧,白色像素位于其右侧。如果一个路径是由一系列拐点{v0,...,vn}所组成,对所有点i=0,...n-1都存在一条边从vi到vi+1。如果vn=v0,由于两个像素点的欧几里得距离为1,所以所得路径的长度为边的个数。即路径分解的目标为在所有拐点中找到一个封闭路径使得每条边都只出现一次。
为使曲线更加近似与多边形,在点ai上画一个单位方形。然后找到平行于的线Li,并在ai的周围接触到方形,且它尽可能地接近直线令c为Li和的交点,并令γ为的长度和的商。令并考虑贝塞尔曲线链接bi-1和bi用参数α。这条曲线切线于bi-1ai,Li,aibi这3条线。
最后使用计算的参数α来进行转角检测决定最终从bi-1到bi的曲线。如果α≤1,然后我们绘制一条光滑的贝塞尔曲线在这个顶点,如果α>1,这里没有凸的贝塞尔曲线来链接bi-1和bi并切线于Li。检测了一个转角且通过两条相交于点ai的直线片段链接bi-1和bi。α的值被调整为0.55和1之间。α>0.55是为了阻止曲线太"平",α<1是为了保证结果贝塞尔曲线是凸的。
假定有这样的一条曲线C,必须与和相切,则可以找到和的交点O,则曲线中只留下一个自由度需要考虑,即参数α。如果我们增加一个约束——被曲线C与所包围的面积和被原曲线片段与所包围的面积必须相等,便可以确定参数α。此时便得到一条唯一的Bezier曲线C,它是一个近似给定线段的候选曲线。
然后检查这条近似给定的曲线片段C是否是可接受的,如果是的话,就给它一个数值的惩罚。这里采用一个简单的相切来检查,对于每个i=1,...,n-1,在C上找到点zi,其位置上的切线将平行于令di为zi到线片段的欧几里得距离。接着再对于每个i=1,...,n,在C上找到点z′i,其在C上的切线平行于另d′i为z′i到线片段Li的欧几里得距离,如果z′i和ai在Li的同一边上,则记为正的,否则为负。
如果di≤ε,z′i>-ε,且zi在线上的正交投影位于ai和aj+1之间,则认为这个近似是可接受的。这里值ε是一个常量值,叫做曲线优化算法的容忍度;它的预设为0.2,可以用--opttolerance命令行选项来更改。
如图3所示,本方法可以产生逼真的高质量结果,在视觉外观上显示出优于其他方面的优势。原有的Potrace算法能够矢量化整低分辨率的图像,但生成的结果是低质量的。当放大细节时,字形轮廓上往往布满了冗余的控制点,如图3(a),并且轮廓的曲线线条光顺性很低,它无法精确捕捉整体特征以及局部细节,因此缺乏精确度。
相反,本申请提出的方法不仅减少了路径点的数量,而且保留了轮廓的关键风格细节。除了视觉外观,本申请的方法在矢量化质量品质方面也优于其他方法。
Claims (1)
1.基于Potrace算法的中文矢量字库生成方法,其特征在于,包括以下步骤:
S1、设计字体图像:设计字库中的需要字体,制作bmp格式的图片进行统一保存,然后用字库中对应的unicode编码对每个字体图像进行命名;
S2、将字体图片进行二值化和去噪:设置全局阈值,扫描图像,将图像进行二值化处理;用形态学运算和各向异性扩散来过滤二值图像,最后将二值化后的图片栅格化为像素点阵;
S3、路径分解:随机选择一对颜色不同但相邻像素,旋转图像使选择的黑色像素在左侧,白色像素块在右侧;选择长度为1的路径为起始路径,沿着两个像素的缝隙移动扩展,保持每个新边缘在其左侧具有黑色像素,在右侧具有白色像素;通过判断周围像素的颜色选择方向前进,一直持续回到开始的顶点;通过此方式将像素转换为封闭路径,通过递归应用上述算法将图像全部转换为封闭的路径;
S4、多边形拟合路径:用直线片段去拟合各段封闭路径,用这些直线片段构建一个带索引序列的多边形,然后选取最优多边形;
将找到一个最优多边形的问题简化为一个在有向图中找到一个最优环形;使用一个标准的图论算法来寻找有向图中的最优环形;通过计算图,在时间复杂度O(nm)内找到最优环形,其中n是输入路径的大小,m是最长的可能的片段长度;
S5、多边形转为矢量轮廓:将上一步骤中的多边形转为光滑的矢量轮廓,调整多边形顶点的位置来使它接近源位图,根据临近的线片段的长度和它们间的夹角来计算转角和曲线,最后用三次贝塞尔曲线进行拟合;
在经过转角检测和光滑化之后,输出由贝塞尔曲线片段和直线片段构成的曲线,通过连接临近的贝塞尔曲线段来优化曲线数量;首先连接临近的凸性一致曲线片段,再连接总的方向改变少于179度的曲线片段,通过连接上述短的曲线片段得到一条新的贝塞尔曲线片段C,再对曲线片段C定义一个数值的惩罚来判断该片段对于原轮廓的近似拟合误差是否在可接受的范围,最后,利用图论算法得到的最短多边形路径转换成近似误差在可接受范围内的曲线片段集合,由此完成多边形轮廓的拟合;
S6、将矢量曲线轮廓写成svg格式的路径,生成svg矢量图;
S7、读取svg文件并进行解析,将所有字体的svg数据写入TrueType格式的字库并保存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010497185.7A CN111666739B (zh) | 2020-06-04 | 2020-06-04 | 基于Potrace算法的中文矢量字库生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010497185.7A CN111666739B (zh) | 2020-06-04 | 2020-06-04 | 基于Potrace算法的中文矢量字库生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111666739A true CN111666739A (zh) | 2020-09-15 |
CN111666739B CN111666739B (zh) | 2023-05-16 |
Family
ID=72385886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010497185.7A Active CN111666739B (zh) | 2020-06-04 | 2020-06-04 | 基于Potrace算法的中文矢量字库生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111666739B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113706648A (zh) * | 2021-08-04 | 2021-11-26 | 武汉理工大学 | 基于扩散曲线的唐卡元素矢量化方法 |
CN114037823A (zh) * | 2021-11-08 | 2022-02-11 | 上海触讯信息科技有限公司 | 一种基于深度学习ocr的电子书补字文件管理方法及系统 |
CN114861595A (zh) * | 2022-03-22 | 2022-08-05 | 电子科技大学 | 一种基于矢量线条变换的个性字体生成方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103488711A (zh) * | 2013-09-09 | 2014-01-01 | 北京大学 | 一种快速制作矢量字库的方法及系统 |
US20150193387A1 (en) * | 2014-01-06 | 2015-07-09 | Academia Sinica | Cloud-based font service system |
CN114861595A (zh) * | 2022-03-22 | 2022-08-05 | 电子科技大学 | 一种基于矢量线条变换的个性字体生成方法 |
-
2020
- 2020-06-04 CN CN202010497185.7A patent/CN111666739B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103488711A (zh) * | 2013-09-09 | 2014-01-01 | 北京大学 | 一种快速制作矢量字库的方法及系统 |
US20150193387A1 (en) * | 2014-01-06 | 2015-07-09 | Academia Sinica | Cloud-based font service system |
CN114861595A (zh) * | 2022-03-22 | 2022-08-05 | 电子科技大学 | 一种基于矢量线条变换的个性字体生成方法 |
Non-Patent Citations (1)
Title |
---|
余萍萍;闫芮铭;叶江南;: "基于矢量图的绘图写字机器人解决方案", 科技经济导刊 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113706648A (zh) * | 2021-08-04 | 2021-11-26 | 武汉理工大学 | 基于扩散曲线的唐卡元素矢量化方法 |
CN113706648B (zh) * | 2021-08-04 | 2024-03-19 | 武汉理工大学 | 基于扩散曲线的唐卡元素矢量化方法 |
CN114037823A (zh) * | 2021-11-08 | 2022-02-11 | 上海触讯信息科技有限公司 | 一种基于深度学习ocr的电子书补字文件管理方法及系统 |
CN114037823B (zh) * | 2021-11-08 | 2024-08-02 | 上海触讯信息科技有限公司 | 一种基于深度学习ocr的电子书补字文件管理方法及系统 |
CN114861595A (zh) * | 2022-03-22 | 2022-08-05 | 电子科技大学 | 一种基于矢量线条变换的个性字体生成方法 |
CN114861595B (zh) * | 2022-03-22 | 2023-04-07 | 电子科技大学 | 一种基于矢量线条变换的个性字体生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111666739B (zh) | 2023-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111666739B (zh) | 基于Potrace算法的中文矢量字库生成方法 | |
KR100834596B1 (ko) | 묘화장치와 묘화방법 및 묘화 프로그램을 구비한 컴퓨터 독출가능 기록매체 | |
JP4762901B2 (ja) | 合成グリフの領域をレンダリングする方法 | |
US6917369B2 (en) | Method and apparatus for rendering cell-based distance fields using texture mapping | |
US7002598B2 (en) | Method for generating a composite glyph and rendering a region of the composite glyph in object-order | |
KR102666054B1 (ko) | 그래픽 처리 시스템 | |
US7006095B2 (en) | Method for typesetting a set glyphs represented as a set of two dimensional distance fields | |
JP2006521629A (ja) | オブジェクトを表現する2次元距離フィールドの領域をアンチエイリアスする方法及び装置 | |
JP4869920B2 (ja) | オブジェクトを表現する2次元距離フィールドからピクセルのコンポーネントのアンチエイリアス強度を求める方法及び装置 | |
US7042458B2 (en) | Methods for generating an adaptively sampled distance field of an object with specialized cells | |
US20200279415A1 (en) | Efficiently Computed Distance Fields | |
US7190367B2 (en) | Method, apparatus, and system for rendering using a progressive cache | |
CN114298181B (zh) | 一种基于双模态学习的矢量字体生成方法 | |
Reddy et al. | A multi-implicit neural representation for fonts | |
US5600772A (en) | Bit map character convertor using chain-codes for the character filling process | |
JP2023087671A (ja) | 距離場プロシージャを使用する画像変換のためのシステムおよび方法 | |
Wang et al. | Spline-based medial axis transform representation of binary images | |
JP2006521628A (ja) | 2次元オブジェクトの隅に関連するセル内に2次元距離フィールドを生成する方法 | |
JP2006521627A (ja) | 動画スクリプトに従ってフレームシーケンスとしてオブジェクトを動画化する方法 | |
JP2006521626A (ja) | ペンストロークから2次元距離フィールドを生成する方法 | |
JP2006521624A (ja) | 2次元オブジェクトを2次元距離フィールドに変換する方法 | |
CN110232724A (zh) | 一种汉字字体图像矢量表示方法 | |
US11908114B2 (en) | Systems and methods for image transformation | |
US7123271B2 (en) | Method and apparatus for antialiasing a set of objects represented as a set of two-dimensional distance fields in image-order | |
Thamizharasan et al. | VecFusion: Vector Font Generation with Diffusion |
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 | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240520 Address after: Room 215, 2nd Floor, No. 56A Torch Road, High tech Industrial Park, Dalian City, Liaoning Province, 116000 Patentee after: Dalian Ruiyun Ziku Technology Co.,Ltd. Country or region after: China Address before: 116600 No.18, Liaohe West Road, Dalian Economic and Technological Development Zone, Dalian City, Liaoning Province Patentee before: DALIAN MINZU University Country or region before: China |