[发明专利]一种基于改进漫水填充算法的栅格图像矢量化方法有效
申请号: | 201910064027.X | 申请日: | 2019-01-23 |
公开(公告)号: | CN109801242B | 公开(公告)日: | 2022-09-02 |
发明(设计)人: | 黄进;郑思宇;朱明仓;李剑波;王敏;刘怡 | 申请(专利权)人: | 西南交通大学 |
主分类号: | G06T5/00 | 分类号: | G06T5/00;G06T5/20;G06T7/11;G06T7/13 |
代理公司: | 成都东恒知盛知识产权代理事务所(特殊普通合伙) 51304 | 代理人: | 罗江 |
地址: | 610031*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 改进 填充 算法 栅格 图像 矢量 方法 | ||
1.一种基于改进漫水填充算法的栅格图像矢量化方法,其特征在于:包括以下步骤,步骤S10:取原始图像,对其进行图像锐化,得到包含边缘信息的图像;步骤S20:点击原始图像,以步骤S10得到的图像作为掩模,通过漫水填充算法,对相应图块进行填充;步骤S30:利用空洞填充算法对步骤S20得到的图块进行修补;步骤S40:根据步骤S30得到的图像,利用Freeman链码轮廓跟踪算法,找到图块轮廓的坐标点集合;步骤S50:根据步骤S40得到的坐标点集合,利用多边形拟合算法,对坐标点数目抽稀,得到关键坐标点集合,并将其之间的连线有序绘制出来,形成轮廓,得到最终的矢量化图像;
其总体模型的算法步骤为:
第(1)步:读取原始图像记作origin, 并且读出图像高度记作h,图像宽度记作w,
第(2)步:将origin转为灰度图像gray, 计算公式为
gray(y,x)=w1·origin(y,x,0)+w2·origin(y,x,1)+w3·origin(y,x,2),
第(3)步:对gray进行高斯模糊,得到的图像记作guass, 计算公式为
第(4)步:利用索贝尔算子,对guass进行运算,获取边缘信息,得到的图像记作sobel,计算公式为
第(5)步:将sobel作为掩模,对origin进行漫水填充,得到的图像记作rawBlock;
第(6)步:对rawBlock进行空洞填充,得到的图像记作processedBlock;
第(7)步:利用Freeman链码轮廓跟踪算法,找到processedBlock轮廓的坐标点集合,记作rawCoords;
第(8)步:利用多边形拟合算法,对rawCoords数目抽稀,得到关键坐标点集合,记作processedCoords,并将其之间的连线有序绘制出来,形成轮廓,得到最终的矢量化图像;
以上表达式中各参数和算符的意义为:
gray(y,x)表示灰度图像gray第y行第x列的像素值;
origin(y,x,0)表示真彩图像origin第y行第x列第0通道像素值;origin(y,x,1)、origin(y,x,2)以此类推;
w1、w2、w3是利用大量图片计算出得出的经验值;
表示图像的卷积运算。
2.根据权利要求1所述的一种基于改进漫水填充算法的栅格图像矢量化方法,其特征在于:第(5)步与第(6)步相结合构成了一种改进的漫水填充算法,该算法利用空洞填充的办法,能够对漫水填充后不理想的结果,进行二次填充,达到图像修补的作用;
该算法漫水填充部分的详细步骤为:
第(1)步:设值val等于15;
第(2)步:将sobel作为掩模图像,并获取点击原始图像origin后的起始坐标点,记作(seedY,seedX);
第(3)步:建立一张空白图像rawBlock;
第(4)步:建立空栈stack,并将(seedY,seedX)压入栈中;
第(5)步:如果stack为空栈,则转到第(13)步;否则,转到第(6)步;
第(6)步:从stack栈顶弹出一个坐标点,记作(y,x);
第(7)步:rawBlock(y,x)填色;
第(8)步:如果origin(seedY,seedX)与origin(y,x-1)像素值差小于val,将(y,x-1)压入stack;
第(9)步:如果origin(seedY,seedX)与origin(y,x+1)像素值差小于val,将(y,x+1)压入stack;
第(10)步:如果origin(seedY,seedX)与origin(y-1,x)像素值差小于val,将(y-1,x)压入stack;
第(11)步:如果origin(seedY,seedX)与origin(y+1,x)像素值差小于val,将(y+1,x)压入stack;
第(12)步:返回第(5)步;
第(13)步:结束;
该算法空洞填充部分的详细步骤为:
第(1)步:设计数值i等于0,设值ratio为0.2;
第(2)步:用最小的矩形去裁剪rawBlock中的图块,得到的图像记作block,图像高记作blockH;
第(3)步:如果i小于blockH,则转到第(4)步;否则,转到第(8)步;
第(4)步:找到图像第i行里,第一个白色像素索引记作start,最后一个白色像素索引记作end;
第(5)步:取出start和之end间这一段,记作line,表达式为
line=block(i,j),j∈[start,end]∩Z
第(6)步:找出line中的所有一段段的黑色像素集合,记作blackSet,对于blackSet中每一个元素blackElement,若其长度与line长度比值小于ratio,则将其填充为白色;否则不做操作;
第(7)步:计数值i增加1,并返回第(3)步;
第(8)步:结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西南交通大学,未经西南交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910064027.X/1.html,转载请声明来源钻瓜专利网。