一种波浪形文字图片的生成方法技术

技术编号:37631809 阅读:15 留言:0更新日期:2023-05-20 08:52
本发明专利技术提供一种波浪形文字图片的生成方法,基于原始图像建立坐标系,对像素做重映射,并设置映射函数h(x,y)=y+A|sin(2πx/T)|,通过设置A,T可以控制文字起伏的高低和周期,通过OpenCV的Remap()函数完成映射变换。包括以下步骤:S1.准备原始图像建立坐标系;S2.设置映射函数:完成波浪形变换需要对图像上的像素做重映射,通过重映射来表达每个像素的位置(x,y),为:g(x,y)=f(h(x,y));其中,g()是目标图像,f()是源图像,而h(x,y)是作用于(x,y)的映射方法函数;映射公式:h(x,y)=y+A|sin(2πx/T)|,通过设置A、T控制文字起伏的高低和周期;A为文字的幅值、T为起伏周期;通过控制A和T两个参数,生成新的图像;S3.映射变换。S3.映射变换。S3.映射变换。

【技术实现步骤摘要】
一种波浪形文字图片的生成方法


[0001]本专利技术涉及智能视频处理
,特别涉及一种波浪形文字图片的生成方法。

技术介绍

[0002]随着计算机技术的发展和计算机视觉原理的广泛应用,使用扫描笔越来越为大众所接受。当使用神经网络训练一个OCR(Optical Character Recognition,光学字符识别)识别模型需要采集大量的含有文字图片数据,这些图片要尽可能的和用于识别的图片相似。扫描笔在滑动过程中会采集一组图片,然后把这组图拼接为一张图。由于在使用扫描笔的过程中不可避免的抖动,导致拼接后的图呈现波浪形的效果。然而一般文字图片生成器生成的图或者拍照获取的图上的文字较为平整。这使得当遇到呈现波浪形文字的图时,现有技术中的模型识别准确率会受到影响。因此,就需要模型能够在训练中学习这种波浪形字体,以便可以提高模型的识别准确率。
[0003]另外,现有技术中的常用术语如下:
[0004]图像重映射,把输入图像中各个像素按照一定的规则映射到另外一张图像的对应位置上去,形成一张新的图像。
[0005]OpenCV,是一个开源的跨平台计算机视觉和机器学习软件库,提供了大量的图像处理功能,本申请将使用它提供的图像重映射函数。

技术实现思路

[0006]本申请提出了一种数据增强方法,特别是,扫描笔OCR识别模型训练过程中一种数据增强的算法。可以使图片上的文字呈现波浪形效果,应用在OCR识别模型训练中,提升了模型的识别性能。
[0007]具体地,本专利技术提供一种波浪形文字图片的生成方法,所述方法是基于原始图像建立坐标系,对图像上的像素做重映射,并设置映射函数h(x,y)=y+A|sin(2πx/T)|,通过设置A,T可以控制文字起伏的高低和周期,通过OpenCV的Remap()函数完成映射变换。
[0008]所述方法包括以下步骤:
[0009]S1.准备原始图像:准备一张含有文字的原始图像,图像宽W,高H;并以图像左上角为坐标原点,向右为轴,向下为轴建立坐标系,即XY坐标系;
[0010]S2.设置映射函数:完成波浪形变换需要对图像上的像素做重映射,通过重映射来表达每个像素的位置(x,y),为:g(x,y)=f(h(x,y));
[0011]其中,g()是目标图像,f()是源图像,而h(x,y)是作用于(x,y)的映射方法函数;
[0012]映射公式:h(x,y)=y+A|sin(2πx/T)|,通过设置A、T控制文字起伏的高低和周期;A为沿y轴方向比初始文字位置偏离的最大幅度、T为起伏周期;通过控制A和T两个参数,生成新的图像;
[0013]S3.映射变换:
[0014]S3.1,构造两个二维数组img_x[H][W],img_y[H][W]用来记录映射后的像素坐标;
数组的大小和图像大小是相同的;
[0015]S3.2,遍历整张图像获取每个像素,记当前像素为I(i,j);对像素I(i,j)做映射:i

=i;j

=h(i,j),记录变换后的值img_x[j][i]=i

,img_y[j][i]=j


[0016]S3.3,使用OpenCV提供的图像重映射函数Remap函数对整个图片应用映射规则:
[0017]new_img=Remap(img,img_x,img_y);
[0018]函数中的img是原始输入图片;img_x和img_y是经过上述h(x,y)变换后的映射矩阵;new_img是生成的新图片。
[0019]所述含有文字的原始图像为img格式。
[0020]所述步骤S1中,由于所有坐标计算都是基于像素点的,故坐标结果全为整型。
[0021]所述步骤S2中,所述生成新的图像是模拟扫描笔拼接的图的样式。
[0022]所述图像重映射函数Remap函数会根据指定的映射形式,将原图像进行重映射几何变换,其中,Remap函数是以下公式的代码实现,函数中的img对应公式中的src;img_x和img_y对应公式中的mapx(x,y)和mapy(x,y);new_img对应公式中的dst;公式如下:
[0023]dst(x,y)=src(mapx(x,y),mapy(x,y))
[0024]src:输入图像,灰度图或真彩图均可;
[0025]dst:输出图像,要求大小和mapx,mapy相同,通道数目及数据类型和src相同;
[0026]mapx:用于存放图像X方向的映射关系;
[0027]mapy:用于存放图像Y方向的映射关系。
[0028]由此,本申请的优势在于:
[0029]本方法提供的算法计算量较小,通过控制字的幅值和周期两个参数,可以生成样式丰富的图片,极大地模拟了扫描笔拼接的图的样式,提升识别模型的准确率。
附图说明
[0030]此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,并不构成对本专利技术的限定。
[0031]图1是本申请方法的流程示意图。
[0032]图2是本申请中实施例的初始图片示意图。
[0033]图3是本申请中实施例的映射后图的示意图。
具体实施方式
[0034]为了能够更清楚地理解本专利技术的
技术实现思路
及优点,现结合附图对本专利技术进行进一步的详细说明。
[0035]如图1所示,本申请一种波浪形文字图片的生成方法,所述方法包括以下步骤:
[0036]S1.准备原始图像:准备一张含有文字的原始图像,图像宽W,高H;并以图像左上角为坐标原点,向右为轴,向下为轴建立坐标系,即XY坐标系;
[0037]S2.设置映射函数:完成波浪形变换需要对图像上的像素做重映射,通过重映射来表达每个像素的位置(x,y),为:g(x,y)=f(h(x,y));
[0038]其中,g()是目标图像,f()是源图像,而h(x,y)是作用于(x,y)的映射方法函数;
[0039]映射公式:h(x,y)=y+A|sin(2πx/T)|,通过设置A、T控制文字起伏的高低和周期;
A为沿y轴方向比初始文字位置偏离的最大幅度、T为起伏周期;通过控制A和T两个参数,生成新的图像;
[0040]S3.映射变换:
[0041]S3.1,构造两个二维数组img_x[H][W],img_y[H][W]用来记录映射后的像素坐标;数组的大小和图像大小是相同的;
[0042]S3.2,遍历整张图像获取每个像素,记当前像素为I(i,j);对像素I(i,j)做映射:i

=i;j

=h(i,j),记录变换后的值img_x[j][i]=i

,img_y[j][i]=j


[0043]S3.3,使用OpenCV提供的图像重映射函数Remap函数对整个图片应用映射规则:...

【技术保护点】

【技术特征摘要】
1.一种波浪形文字图片的生成方法,其特征在于,所述方法是基于原始图像建立坐标系,对图像上的像素做重映射,并设置映射函数h(x,y)=y+A|sin(2πx/T)|,通过设置A,T可以控制文字起伏的高低和周期,通过OpenCV的Remap()函数完成映射变换。2.根据权利要求1所述的一种波浪形文字图片的生成方法,其特征在于,所述方法包括以下步骤:S1.准备原始图像:准备一张含有文字的原始图像,图像宽W,高H;并以图像左上角为坐标原点,向右为轴,向下为轴建立坐标系,即XY坐标系;S2.设置映射函数:完成波浪形变换需要对图像上的像素做重映射,通过重映射来表达每个像素的位置(x,y),为:g(x,y)=f(h(x,y));其中,g()是目标图像,f()是源图像,而h(x,y)是作用于(x,y)的映射方法函数;映射公式:h(x,y)=y+A|sin(2πx/T)|,通过设置A、T控制文字起伏的高低和周期;A为沿y轴方向比初始文字位置偏离的最大幅度、T为起伏周期;通过控制A和T两个参数,生成新的图像;S3.映射变换:S3.1,构造两个二维数组img_x[H][W],img_y[H][W]用来记录映射后的像素坐标;数组的大小和图像大小是相同的;S3.2,遍历整张图像获取每个像素,记当前像素为I(i,j);对像素I(i,j)做映射:i

=i;j

=h(i,j),记录变换后的值img_x[j][i]=i

,img_y...

【专利技术属性】
技术研发人员:朱贺辉
申请(专利权)人:北京君正集成电路股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1