基于边缘检测和图像拼接的书画自动配框方法与流程

文档序号:12604400阅读:337来源:国知局
基于边缘检测和图像拼接的书画自动配框方法与流程
本项发明属于图像处理领域,特别涉及一种基于边缘检测和图像拼接的书画自动配框方法。
背景技术
:对于书画销售商家,需要为一幅画配置多种画框以满足不同客户的需求。而且商家获得的画框图像素材,一般是三角框。传统模式下,商家采用图像处理技术将三角框补全成四角环形框,再与油画拼接搭配。这种手工动作在大批量油画销售情况下成了阻碍油画销售的行业痛点。技术实现要素:本发明的目的在于克服现有技术的不足,提出一种基于边缘检测和图像拼接的书画自动配框方法,与其他图像处理工具的画像配框方法相比具有操作简单,画框图像获取方便的优点,提高了配框效率。本发明解决其技术问题所采用的技术方案是:一种基于边缘检测和图像拼接的书画自动配框方法,包括:步骤1,读取输入的待处理画框图像和画像图像;步骤2,使用canny算法对所述画框图像进行边缘检测,获得边缘信息图像;步骤3,计算边缘信息图像中的每一个封闭区域的面积并比较;挑选出面积最大的区域作为轮廓信息图像;删除非轮廓的点,保留轮廓信息点,并在筛选完轮廓信息之后自动对画框图像进行裁剪;步骤4,沿轮廓信息图像找到画框图像轮廓的内边缘和两边上的边角拐点,裁去多余的边角部分获得裁剪后的画框图像;步骤5,在轮廓信息图像中找到与其对角顶点距离最长的轮廓信息点作为内拐点;步骤6,将裁剪后的画框图像进行水平方向、竖直方向及中心的对称变换,获得处理好的画框图像;步骤7,创建一个长和宽分别等于裁剪后的画框图像的长和宽的两倍的空白图像;步骤8,设置所述新建空白图像的感兴趣区域,将处理好的画框图像依次放入所述感兴趣区域中拼接成合成画框图像;步骤9,将提取到的内拐点坐标转化为合成画框图像两边的宽度;步骤10,根据所述画像图像的长和宽及合成画框图像两边的宽度成比例地预留出带画框的画像图像中的画框宽度;步骤11,将合成的画框图像放入根据画像图像长宽及画框宽度创建新的空白图像,设置新建空白图像的感兴趣区域,将画像图像放入所述感兴趣区域与画框图像进行拼接并输出。优选的,步骤2包括:使用灰度转化公式将具有R、G、B三种颜色分量的彩色画框图像转化成灰度图像;使用高斯平滑滤波器卷积降噪;使用Sobel滤波器计算梯度的幅值和方向;对梯度幅值进行非极大值抑制;用双阈值算法检测和连接边缘。优选的,步骤3中,将保留的轮廓信息点赋值为255。优选的,步骤4包括:沿轮廓信息图像的水平中线和竖直中线找到值为255的像素点,令所述像素点所在的列和行为裁剪后的画框图像轮廓的内边缘;沿着画框图像两条内边及其两侧的2~3列或行像素点缘滚动,找到两边上的边角拐点,并分别裁去多余的边角部分。优选的,步骤5包括:在画框轮廓信息图像中选定自边缘起始间隔数个像素行列开始到画框轮廓信息图像一半的长宽的位置的区域,遍历此区域上的每一个值为255的点并计算其与图像对角顶点的距离;对比每个距离,找到与对角距离最长的点作为内拐点;记录所述内拐点的坐标。优选的,步骤7中,所述处理好的画框图像包括裁剪后的画框图像、水平方向对称变换后的图像、竖直方向对称变换后的图像和中心对称变换后的图像。优选的,步骤8中,所述感兴趣区域包括4个,4个感兴趣区域的起始坐标分别为(0,0)、(0,height)、(width,0)、(width,height),其中,height表示裁剪后的画框图像的长,width表示裁剪后的画框图像的宽;每个感兴趣区域的长和宽等于裁剪后的画框图像的长和宽。优选的,步骤10包括:将画像图像的长和宽分别与合成画框图像的长和宽求商,获得缩放比例,并用来缩放合成画框图像两边的宽度获得待调整的长和宽;将画像图像的长与所述待调整的长的两倍求和,获得拼接底图的长;将画像图像的宽与所述待调整的宽的两倍求和,获得拼接底图的宽;如果拼接底图的宽长比超过3/2,调整画框图像预留的宽度使画框两边的宽度比满足大于2/3且小于3/2。本发明具有如下有益效果:本发明基于对画框图像的识别而不是基于纹理展开,首先通过摄像工具获得画框图像,并简单的去掉外围背景;再通过图像识别技术对其进行处理并进行与画像图像进行拼接,本发明方法克服了使用其他图像处理工具进行处理需要一定的专业知识的高门槛以及画框图像库不能及时更新的短板。以下结合附图及实施例对本发明作进一步详细说明,但本发明的一种基于边缘检测和图像拼接的书画自动配框方法不局限于实施例。附图说明图1为本发明方法的流程图;图2为本发明实施例的一画框;图3为本发明实施例的自动配框界面;图4为本发明实施例的选择画像图像和画框图像后的自动配框界面;图5为本发明实施例的在自动配框界面左侧的显示区域内显示合成图像。具体实施方式参见图1,一种基于边缘检测和图像拼接的书画自动配框方法,通过软件编程实现,具体的,基于跨平台计算机视觉库OpenCV实现,可以运行在Linux、Windows和MacOS等操作系统上。包括如下步骤:步骤1,读取输入的待处理画框图像和画像图像。具体的,使用模态对话框获得图像传入的相对地址,可以使用的图像类型包括.jpg、.png等格式的图像,并将其以IplImage的数据结构进行存储,存储为pImgSrc与pyuantu,分别表示读入的画框图像和画像图像。步骤2,使用canny算法对所述画框图像进行边缘检测,获得边缘信息图像。具体的,包括如下步骤:(1)使用cvCvtColor函数对pImgSrc图像进行灰度转化:通过灰度转化公式Gray=0.299×R+0.587×G+0.144×B将具有R、G、B三种颜色分量的彩色图像转化成灰度图像pImg8u。其中,R、G、B分别表示彩色图像每个像素的R、G、B值。(2)通过cvCanny函数对图像进行边缘检测:①使用高斯平滑滤波器卷积降噪;如下所示为一个5阶的高斯平滑滤波器:K=1139245424912945121512549129424542]]>②使用Sobel滤波器计算梯度的幅值和方向;具体的,运用一对卷积阵列(分别作用于x方向与y方向)Gx=-10+1-20+2-10+1Gy=-1-2-1000+1+2+1]]>使用和分别计算梯度的幅值和方向。③对梯度幅值进行非极大值抑制;通过本步骤进一步排除非边缘像素,仅保留一些细线条(候选边缘)。④用双阈值算法检测和连接边缘;具体的,通过高阈值和低阈值两个参数,对像素幅值进行筛选,高于高阈值的保留,低于低阈值的删除,在高低阈值之间的,当该像素连接到一个高于高阈值的像素时被保留。canny算法处理后获得边缘信息图像,将边缘信息图像存储为pImgCanny。步骤3,计算边缘信息图像中的每一个封闭区域的面积并比较;挑选出面积最大的区域作为轮廓信息图像;删除非轮廓的点,保留轮廓信息点,并在筛选完轮廓信息之后自动对画框图像进行裁剪。具体的,canny算法处理后获得的边缘信息是连续的,同时考虑到检测出的画框图像的轮廓一定是连续且闭合的封闭曲线,因此通过cvContourArea计算获得边缘信息图像中的每一个封闭区域的面积,并对它们进行比较。挑选出面积最大的区域作为轮廓信息图像;进一步的,将非轮廓的点删除,保留轮廓信息点并赋值为255,在筛选完轮廓信息之后自动的对画框图像进行裁剪。步骤4,沿轮廓信息图像找到画框图像轮廓的内边缘和两边上的边角拐点,裁去多余的边角部分获得裁剪后的画框图像。具体的,沿轮廓信息图像的水平中线和竖直中线找到值为255的像素点,此像素点所在的列和行即为裁剪后的画框图像轮廓的内边缘,在允许误差的情况下沿着画框图像两条内边及其两侧的2~3列(行)像素点缘滚动,找到两边上的边角拐点,分别裁去多余的边角部分,将裁剪后的画框图像保存为pImgReg。步骤5,在轮廓信息图像中找到与其对角顶点距离最长的轮廓信息点作为内拐点,记录所述内拐点的坐标。具体的,在画框轮廓信息图像中选定自边缘起始间隔数个像素行列开始到画框轮廓信息图像一半的长宽的位置的区域,对该区域上的每一个值为255的信息点进行遍历,然后通过计算区域内每个轮廓信息点距图像对角顶点的距离(其中x表示横轴上的距离,y表示纵轴上的距离,d表示对角顶点的距离),并比较每个距离。找到与其对角距离最长的点,此点即为画框的内拐点,记录此点的坐标(interx,intery)。步骤6,将裁剪后的画框图像进行水平方向、竖直方向及中心的对称变换,获得处理好的画框图像。具体的,使用cvFlip函数对裁剪后的画框图像进行水平方向上的对称变换,竖直方向上的对称变换以及中心对称变换,获得画框四个顶角的图像,所述画框四个顶角的图像包括包括裁剪后的画框图像、水平方向对称变换后的图像、竖直方向对称变换后的图像或中心对称变换后的图像,这四个图像为处理好的画框图像。步骤7,创建一个长和宽分别等于裁剪后的画框图像的长和宽的两倍的空白图像。具体的,使用cvCreateImage函数创建一个用于拼接的空白图像,所述空白图像的长和宽分别等于裁剪后的画框图像的长和宽的两倍。步骤8,设置所述新建空白图像的感兴趣区域,将处理好的画框图像依次放入所述感兴趣区域中拼接成合成画框图像。具体的,使用cvSetImageROI分别设置所述空白图像的感兴趣区域,并设置起始坐标分别为(0,0)(0,height)(width,0)(width,height),其中,height表示裁剪后的画框图像的长,width表示裁剪后的画框图像的宽。每个感兴趣区域的长和宽等于裁剪后的画框图像的长和宽。然后按照对应的起始坐标位置,将处理好的画框图像依次放入四个感兴趣中,合成完整的画框图像,并将合成的画框图像保存为img_mirror。步骤9,将提取到的内拐点坐标转化为合成画框图像两边的宽度。具体的,将提取到的内拐点坐标(interx,inery)转化为合成画框图像两边的宽度。具体的,将interx与pImgReg的width作差保留绝对值,以及将intery与pImgReg的height作差保留绝对值,获得miorr_bord_x与miorr_bord_y。步骤10,根据所述画像图像的长和宽及合成画框图像两边的宽度成比例地预留出带画框的画像图像中的画框宽度。具体的,根据所述画像图像的长宽和获得的画框图像内拐点的坐标计算出的画框两边的宽度,成比例的预留出待合成的带有画框的画像图像中的画框宽度。通过将pyuantu的长和宽分别与img_mirror的长和宽作商求得缩放比例,并用来缩放miorr_bord_x和miorr_bord_y,将改变后的画框宽度存为miorr_bord_x_change与miorr_bord_y_change。同时,计算拼接底图的长和宽,分别用如下公式表示:bi_high=pyuantu->height+miorr_bord_y_change×2bi_wid=pyuantu->width+miorr_bord_x_change×2进一步的,若底图的的宽长比过大(例:)则重新对画框预留的宽度进行调整,使画框两边宽度比保证画框的宽度满足视觉上舒适的效果。如图2所示,本实施例中,宽表示水平边,长表示竖直边。步骤11,将合成的画框图像放入根据画像图像长宽及画框宽度创建新的空白图像,设置新建空白图像的感兴趣区域,将画像图像放入所述感兴趣区域与画框图像进行拼接并输出。具体的,使用cvCreateImage创建一个空白图像img_jian,其长宽分别为bi_high_adjust=pyuantu->height+miorr_bord_y_adjust×2和bi_wid_adjust=pyuantu->width+miorr_bord_x_adjust×2。将合成的画框图像填入空白图像,接着设置空白图像img_jian的感兴趣区域,区域起始坐标为(miorr_bord_x_adjust,miorr_bord_y_adjust),区域范围为画像图像的长pyuantu->height和宽pyuantu->width;最后,通过模态对话框对将最终合成图像进行保存,所述最终合成图像指画像图像pyuantu和处理好的画框图像img_mirror进行拼接以后合成的图像img_jian。为了更直观地理解本发明方法的应用过程,如下简要演示某次自动配框过程。如图3所示为自动配框界面,界面包括五个按钮,分别为“选择图像”、“选择画框”、“图像合成”、“显示预览”和“图像保存”;另外,包括三个区域:显示图像、显示画框、显示合成后的图像,用于分别显示选择的图像、选择的画框和合成的图像。首先点击选择图像按钮,会打开一个模态对话框,用来选择画像图像;然后点击选择画框按钮,同样会打开一个模态对话框,用来选择画框图像;如图4所述为选择画像图像和画框图像后的自动配框界面。然后点击“图像合成”按钮,程序自动进行本发明方法所述的操作,如图5所示,将合成图像显示在自动配框界面左侧的显示区域内。显然,在自动配框界面显示的合成图像长宽比与原图不一致,更符合视觉上舒适的效果。如果想显示没有被改变比例的合成图像,需要点击“显示预览”按钮,如果需要对合成图像进行保存,点击“图像保存”。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1