CN101477688B - 一种提取对象边缘的方法和装置 - Google Patents
一种提取对象边缘的方法和装置 Download PDFInfo
- Publication number
- CN101477688B CN101477688B CN2009100761139A CN200910076113A CN101477688B CN 101477688 B CN101477688 B CN 101477688B CN 2009100761139 A CN2009100761139 A CN 2009100761139A CN 200910076113 A CN200910076113 A CN 200910076113A CN 101477688 B CN101477688 B CN 101477688B
- Authority
- CN
- China
- Prior art keywords
- point
- show
- storehouse
- calculated
- evaluation function
- 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.)
- Expired - Fee Related
Links
Images
Abstract
本发明公开了一种提取对象边缘的方法和装置,属于计算机图像处理领域。所述方法包括:接收在输入图像的对象边缘上输入的初始锚点和终点锚点;将所述输入图像转换为边缘图像;根据所述边缘图像和预先设置的启发式评价函数提取算法,提取所述初始锚点和所述终点锚点之间的对象边缘。所述装置包括:接收模块、转换模块和提取模块。本发明运用启发式评价函数提取算法,计算在对象边缘上输入的两个锚点之间的路径,可以精确地得到对象边缘的路径,提高了提取对象边缘的精确度;并且在对象边缘上输入的两个锚点距离很远的情况下,也可以精确地得到对象边缘的路径,从而减少了提取对象边缘的工作量。
Description
技术领域
本发明涉及计算机图像处理领域,特别涉及一种提取对象边缘的方法和装置。
背景技术
随着计算机技术日新月异的发展,计算机图像处理技术也在日趋成熟。在计算机图像处理中,经常需要从一幅图像中提取某个对象,例如,将一张照片中的人物提取出来,然后放到另外一个背景上,从而形成一张新的照片。从一幅图像中提取某个对象时,如何快速而准确地提取出对象的边缘便是一个值得深入研究的问题。
现有技术中,主要是通过使用Photoshop图像处理软件中的路径工具、魔术棒等工具,从一幅图像中提取对象的边缘;另外,还可以通过智能剪刀算法从一幅图像中提取对象的边缘,智能剪刀算法的原理是,用户首先在图像中选择一个种子锚点,然后在用户移动鼠标的过程中,通过迭代计算将包含该种子锚点和鼠标当前位置的区域作为对象的边缘。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
1)对于路径工具而言,提取对象边缘时,如果用户输入的两个锚点之间的距离较远时,便得不到精确的对象边缘;如果要想得到精确的对象边缘,就需要在对象边缘的每一个细小的拐点都点上一个锚点,就需要很大的工作量。
2)对于魔术棒工具而言,提取对象边缘时,是通过提取对象的区域得到对象边缘,当对象区域内部的颜色变化丰富时,会提取到错误的对象边缘,所以不能提取颜色变化丰富的对象,特别是对象内部的颜色种类很多而且与背景颜色种类相似的时候。
3)对于智能剪刀算法而言,提取对象边缘时,需要多次迭代计算才能提取到对象的边缘,需要的时间很长;并且,智能剪刀算法同魔术棒工具一样,不能提取颜色变化丰富的对象。
发明内容
为了提高提取对象边缘的精确度、减小提取对象边缘的工作量,本发明实施例提供了一种提取对象边缘的方法和装置。所述技术方案如下:
一方面,本发明实施例提供了一种提取对象边缘的方法,所述方法包括:
接收在输入图像的对象边缘上输入的初始锚点和终点锚点;
将所述输入图像转换为边缘图像;
将所述边缘图像中包含的点标记为未到达点;
将所述边缘图像中的与所述初始锚点对应的点标记为已到达点,并将所述初始锚点存储在第一堆栈和第二堆栈中;
从所述第一堆栈中取出待计算点;
判断所述待计算点是否是终点锚点;
当判断结果是所述待计算点不是终点锚点时,则统计所述待计算点的周围未到达点的数目;判断所述周围未到达点的数目是否大于0;当判断结果是所述周围未到达点的数目大于0时,则计算所有所述周围未到达点的启发式评价函数值,得到所有所述周围未到达点的启发式评价函数值;其中,启发式评价函数具体为:其中,G的取值为所述待计算点与所述周围未到达点之间的颜色梯度差、H的取值为所述周围未到达点与所述终点锚点之间的路径长度、Thres的取值为[5,10];比较所有所述周围未到达点的启发式评价函数值之间的大小;将对应最小所述启发式评价函数值的所述周围未到达点存储在第二堆栈中,并标记对应最小所述启发式评价函数值的所述周围未到达点为已到达点,并按照所述启发式评价函数值从大到小的顺序,将对应所述启发式评价函数值的所述周围未到达点依次存储在第一堆栈中;执行所述从所述第一堆栈中取出待计算点步骤;当判断结果是所述周围未到达点的数目等于0时,将所述待计算点标记为不可达到点;将所述待计算点从所述第二堆栈中删除;执行所述从所述第一堆栈中取出待计算点步骤;
当判断结果是所述待计算点是终点锚点时,将所述终点锚点和所述第二堆栈中包含的点依次连接起来,提取到所述初始锚点和所述终点锚点之间的对象边缘。
一方面,本发明实施例提供了一种提取对象边缘的装置,所述装置包括:
接收模块,用于接收在输入图像的对象边缘上输入的初始锚点和终点锚点;
转换模块,用于在所述接收模块接收到所述初始锚点和所述终点锚点后,将所述输入图像转换为边缘图像;
提取模块,所述提取模块具体包括:
第一标记单元,用于在所述转换模块将所述输入图像转换为边缘图像后,将所述边缘图像中包含的点标记为未到达点;
第一处理单元,用于在所述第一标记单元将所述边缘图像中包含的点标记为未到达点后,将所述边缘图像中的与所述初始锚点对应的点标记为已到达点,并将所述初始锚点存储在第一堆栈和第二堆栈中;
取出单元,用于在所述第一处理单元将所述初始锚点存储在第一堆栈和第二堆栈中后,从所述第一堆栈中取出待计算点;
第一判断单元,用于在所述取出单元取出所述待计算点后,判断所述待计算点是否是终点锚点;
统计单元,用于当所述第一判断单元的判断结果是所述待计算点不是终点锚点时,统计所述待计算点的周围未到达点的数目;
第二判断单元,用于在所述统计单元统计到所述周围未到达点的数目后,判断所述周围未到达点的数目是否大于0;
第一获取单元,用于当所述第二判断单元的判断结果是所述周围未到达点的数目大于0时,计算所有所述周围未到达点的启发式评价函数值,得到所有所述周围未到达点的启发式评价函数值;其中,启发式评价函数具体为:其中,G的取值为所述待计算点与所述周围未到达点之间的颜色梯度差、H的取值为所述周围未到达点与所述终点锚点之间的路径长度、Thres的取值为[5,10];
比较单元,用于在所述第一获取单元得到所述启发式评价函数值后,比较所有所述周围未到达点的启发式评价函数值之间的大小;
第二处理单元,用于在所述比较单元比较了所述启发式评价函数值之间的大小后,将对应最小所述启发式评价函数值的所述周围未到达点存储在第二堆栈中,并标记对应最小所述启发式评价函数值的所述周围未到达点为第二状态,并按照所述启发式评价函数值从大到小的顺序,将对应所述启发式评价函数值的所述周围未到达点依次存储在第一堆栈中;
第一通知单元,用于在所述第二处理单元将所述周围未到达点依次存储在第一堆栈中后,通知所述取出单元从所述第一堆栈中取出待计算点;
第二标记单元,用于当所述第二判断单元的判断结果是所述周围未到达点的数目等于0时,将所述待计算点标记为不可达到点;
删除单元,用于在所述第二标记单元将所述待计算点标记为不可达到点后,将所述待计算点从所述第二堆栈中删除;
第二通知单元,用于在所述删除单元将所述待计算点从第二堆栈中删除后,通知所述取出单元从所述第一堆栈中取出待计算点;
提取单元,用于当所述第一判断单元的判断结果是所述待计算点是终点锚点时,将所述终点锚点和所述第二堆栈中包含的点依次连接起来,提取到所述初始锚点和所述终点锚点之间的对象边缘。
本发明实施例提供的技术方案的有益效果是:
运用启发式评价函数提取算法,计算在对象边缘上输入的两个锚点之间的路径,可以精确地得到对象边缘的路径,提高了提取对象边缘的精确度;并且在对象边缘上输入的两个锚点距离很远的情况下,也可以精确地得到对象边缘的路径,从而减少了提取对象边缘的工作量;进一步地,本发明是基于边缘图像来提取对象边缘的,对象区域内部的颜色变化对于提取对象边缘没有影响,在对象区域内部颜色变化丰富时也可以得到很精确的结果;另外,与智能剪刀算法相比,提取对象边缘时需要的时间缩短了很多。
附图说明
图1是本发明实施例1提供的一种提取对象边缘的方法流程图;
图2是本发明实施例2提供的一种提取对象边缘的方法流程图;
图3是本发明实施例3提供的一种提取对象边缘的装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提出采用启发式函数搜索算法中的评价函数来实现提取对象边缘,其中,启发式函数搜索算法是一种搜索算法,在提取对象边缘时为了得到初始锚点和终点锚点之间的边缘,往往需要用到搜索算法,而在众多的搜索算法中,基于启发式函数的搜索算法通常能得到很好的搜索结果。启发式函数搜索算法就是对空间中的每一个位置进行评估,从而得到最优的位置,并从该最优位置重新开始搜索直到找到目的点。在启发式函数搜索算法中,用于评价节点位置重要性的函数叫做评价函数,评价函数的主要任务就是估计待搜索节点的重要程度,以确定节点的优先级程度。评价函数的一般形式为f(x)=g(x)+h(x),其中,g(x)表示初始节点到当前节点已经实际付出的代价函数,h(x)表示当前节点到目标节点的最优路径的估计代价函数,在确定f(x)时,要使得g(x)与h(x)各占适当的比率,构造和选择合适的启发函数h(x)是启发式搜索的关键,在构造h(x)时,应满足两个方面的要求:首先,启发函数要简单易算;其次,函数要有较高的精确度,能够反应问题的实际情况。为了快速而准确地提取出对象的边缘,本发明实施例采用启发式函数搜索算法来搜索初始锚点和终点锚点之间的路径,并且本发明实施例预先设置的启发式评价函数的形式如下,F=Thres/(G+1)+H,其中G是已经付出的代价函数、H是最优路径的估计代价函数、Thres是对G和H的权重的一个衡量值,下面将详细描述本发明实施例具体是如何利用预先设置的启发式评价函数提取对象边缘的。
实施例1
本发明实施例提供了一种提取对象边缘的方法,参见图1,该方法包括:
101:接收在输入图像的对象边缘上输入的初始锚点和终点锚点;
102:将输入图像转换为边缘图像;
103:根据边缘图像和预先设置的启发式评价函数提取算法,提取初始锚点和终点锚点之间的对象边缘。
其中,根据边缘图像和预先设置的启发式评价函数提取算法,提取初始锚点和终点锚点之间的对象边缘,具体包括:
将边缘图像中包含的点标记为未到达点;
将边缘图像中的与初始锚点对应的点标记为已到达点,并将初始锚点存储在第一堆栈和第二堆栈中;
从第一堆栈中取出待计算点;
判断待计算点是否是终点锚点;
当判断结果是待计算点不是终点锚点时,则统计待计算点的周围未到达点的数目;
判断周围未到达点的数目是否大于0;
当判断结果是周围未到达点的数目大于0时,则计算所有周围未到达点的启发式评价函数值,得到所有周围未到达点的启发式评价函数值;
比较所有周围未到达点的启发式评价函数值之间的大小;
将对应最小启发式评价函数值的周围未到达点存储在第二堆栈中,并标记对应最小启发式评价函数值的周围未到达点为已到达点,并按照启发式评价函数值从大到小的顺序,将对应启发式评价函数值的周围未到达点依次存储在第一堆栈中;
执行从第一堆栈中取出待计算点步骤。
其中,上述启发式评价函数值具体为:
其中,G的取值为待计算点与周围未到达点之间的颜色梯度差、H的取值为周围未到达点与终点锚点之间的路径长度、Thres的取值为[5,10]。
进一步地,当判断结果是周围未到达点的数目等于0时,还包括:
将待计算点标记为不可达到点;
将待计算点从第二堆栈中删除;
执行从第一堆栈中取出待计算点步骤。
进一步地,当判断结果是待计算点是终点锚点时,还包括;
将终点锚点和第二堆栈中包含的点依次连接起来,提取到初始锚点和终点锚点之间的对象边缘。
其中,将输入图像转换为边缘图像,具体包括:
将输入图像转换为灰度图像;
对灰度图图像进行Canny变换,得到边缘图像。
进一步地,将输入图像转换为灰度图像之前,还包括:
对输入图像进行高斯平滑处理。
本实施例所述的方法,运用启发式评价函数提取算法,计算在对象边缘上输入的两个锚点之间的路径,可以精确地得到对象边缘的路径,提高了提取对象边缘的精确度;并且在对象边缘上输入的两个锚点距离很远的情况下,也可以精确地得到对象边缘的路径,从而减少了提取对象边缘的工作量;进一步地,本发明是基于边缘图像来提取对象边缘的,对象区域内部的颜色变化对于提取对象边缘没有影响,在对象区域内部颜色变化丰富时也可以得到很精确的结果;另外,与智能剪刀算法相比,提取对象边缘时需要的时间缩短了很多。
实施例2
本发明实施例提供了一种提取对象边缘的方法,参见图2,该方法包括:
201:用户在输入图像上输入两个锚点,初始锚点A和终点锚点B。
其中,输入图像是需要从中提取对象边缘的图像;在输入图像上输入两个锚点,具体是在要提取的对象边缘上输入两个锚点,其中,一个是初始锚点,一个是终点锚点。
需要说明的是,实际应用中用户提取对象边缘时,会输入多个锚点,但是多个锚点之间的对象边缘,也是通过两个锚点两个锚点地计算得到的,所以本发明实施例以得到两个锚点之间的对象边缘为例进行详细描述。
202:接收到用户输入的两个锚点后,将输入图像转换为边缘图像。
需要说明的是,本发明实施例中将输入图像转换为边缘图像是通过Canny变换得到的,将输入图像转换为边缘图像的具体过程如下:将输入图像转换为灰度图像;将输入图像转换为灰度图像后,对灰度图图像进行Canny变换,得到边缘图像。并且需要说明的是,将输入图像转换为灰度图像之前,还可以先对输入图像进行高斯平滑处理;其中,对输入图像进行高斯平滑处理,是为了消除噪声影响。
进一步,需要说明的是,实际应用中还可以通过其它方式将输入图像转换为边缘图像,如对灰度图图像进行Sobel变换,再对Sobel变换后的图像进行截断处理,得到边缘图像;或者利用其它的将输入图像转换为边缘图像的工具。
另外,需要说明的是,基于边缘图像来提取对象的边缘,对象区域内部的颜色变化不会影响到提取对象边缘,使得在对象区域内部颜色变化丰富时也可以得到很精确的结果。
203:将输入图像转换为边缘图像后,将边缘图像中包含的点标记为未到达点。
需要说明的是,本发明实施例中,将边缘图像中的点分为分三种状态:未到达、已到达和不可到达,分别称为:未到达点、已到达点和不可到达点;其中,未到达点是指处于初始状态的、没有被处理过的点;已达到点是指可以作为初始锚点A和终点锚点B之间的边缘路径的点,也就是说将多个已达到点连接起来得到的就是初始锚点A和终点锚点B之间的边缘;不可到达点是指经过处理的,不可以作为初始锚点A和终点锚点B之间的边缘路径的点。本发明实施例中将未到达点标记为0、将已到达点标记为1、将不可到达点标记为-1,实际应用中可以根据实际情况用不同的方法来表示这三种状态,如将未到达点标记为黑色,已到达点标记为蓝色,不可到达点标记为红色。
204:将边缘图像中包含的点都标记为未到达点后,将边缘图像中的与初始锚点A对应的点标记为已到达点,然后将初始锚点A存储到待计算堆栈和走步堆栈中。
其中,将边缘图像中的与初始锚点A对应的点标记为已到达点,也就是说将与初始锚点A对应的点标记为1;待计算堆栈是在计算过程中用来存储需要计算的点的堆栈,并且本发明实施例需要用到堆栈后进先出的特性;走步堆栈用来存储初始锚点A到终点锚点B之间的边缘需要经过的点。
205:从待计算堆栈中取出一个点C,判断点C是否是终点锚点B,如果是,则执行213;否则,执行206。
需要说明的是,当第一次执行该步骤时,待计算堆栈中的点只有初始锚点A,从待计算堆栈中取出的点C就是初始锚点A;但是在后续过程中会在待计算堆栈中存储好多点,当待计算堆栈中存储好多点时,执行到该步骤时,是从待计算堆栈中取出存储在待计算堆栈中的所有点中的最上面的点,也就是说取出的该点相对于待计算堆栈中的其它点来说是最后存储进去的,为了便于描述将该点称为待计算点;本实施例中点C就是待计算点。
206:统计点C周围的点中未到达点的数目,判断未到达点的数目是否大于0,如果是,则执行207;否则,执行212。
其中,点C周围的点是指点C的8个方向的点,统计点C周围的点中未到达点的数目,本发明实施例中也就是统计点C周围的点中标记为0的点的数目。
207:计算点C与点C周围的点中每个未到达点之间的颜色梯度差。
为了便于描述,将点C周围的点中的未到达点称为点C的周围未到达点。计算颜色梯度差,例如:点C周围的点中存在一个未到达点D,点C与未到达点D之间的颜色梯度差为边缘图像中点C的值与边缘图像中点D的值之差。
208:计算点C的每个周围未到达点与终点锚点B之间的路径长度。
计算点C周围的点中每个未到达点与终点锚点B之间的路径长度,例如:点C周围的点中存在一个未到达点D,未到达点D与终点锚点B之间的路径长度其中Dx表示点D的x坐标、Bx表示点B的x坐标、Dy点D的y坐标、By点B的y坐标。
209:根据启发式评价函数,计算点C的所有周围未到达点的启发式评价函数值。
其中,启发式评价函数为F=Thres/(G+1)+H,G是已经付出的代价函数、H是最优路径的估计代价函数、Thres是对G和H的权重的一个衡量值;本实施例中G的取值为点C与点C的周围未到达点之间的颜色梯度差、H的取值为点C的周围未到达点与终点锚点B之间的路径长度、Thres的取值为[5,10]。
210:比较点C的所有周围未到达点的启发式评价函数值之间的大小。
211:将对应最小启发式评价函数值的周围未到达点存储在走步堆栈中,并标记对应最小启发式评价函数值的周围未到达点为已到达点,并按照启发式评价函数值从大到小的顺序,将对应启发式评价函数值的周围未到达点依次存储在待计算堆栈中,然后执行205。
其中,按照启发式评价函数值从大到小的顺序,将对应启发式评价函数值的周围未到达点依次存储在待计算堆栈中,具体是:将对应启发式评价函数值最大的周围未到达点先存储在待计算堆栈中,然后再将对应启发式评价函数值第二最大的周围未到达点存储在待计算堆栈中…最后将对应启发式评价函数值最小的周围未到达点存储在待计算堆栈中。
212:将点C标记为不可到达点,并将点C从走步堆栈中删除,然后执行205。
213:将终点锚点B和走步堆栈中包含的点依次连接起来,实现将初始锚点A和终点锚点B之间的对象边缘提取出来。
需要说明的是存储在走步堆栈中的点也具有后进先出的特性,也就是说存储的顺序与取出的顺序正好相反,将终点锚点B和走步堆栈中包含的点依次连接起来具体是,从终点锚点B开始,将走步堆栈中的点取出,依次连接起来,反推到初始锚点A。
另外,需要说明的是,输入初始锚点A和终点锚点B后,瞬间就可以得到初始锚点A和终点锚点B之间的对象边缘,与智能剪刀算法相比,提取对象边缘时需要的时间缩短了很多。
本实施例所述的方法,运用启发式评价函数提取算法,计算在对象边缘上输入的两个锚点之间的路径,可以精确地得到对象边缘的路径,提高了提取对象边缘的精确度;并且在对象边缘上输入的两个锚点距离很远的情况下,也可以精确地得到对象边缘的路径,从而减少了提取对象边缘的工作量;进一步地,本发明是基于边缘图像来提取对象边缘的,对象区域内部的颜色变化对于提取对象边缘没有影响,在对象区域内部颜色变化丰富时也可以得到很精确的结果;另外,与智能剪刀算法相比,提取对象边缘时需要的时间缩短了很多。
实施例3
本发明实施例提供了一种提取对象边缘的装置,参见图3,该装置包括:
接收模块301,用于接收在输入图像的对象边缘上输入的初始锚点和终点锚点;
转换模块302,用于在接收模块301接收到初始锚点和终点锚点后,将输入图像转换为边缘图像;
提取模块303,用于在转换模块302将输入图像转换为边缘图像后,根据边缘图像和预先设置的启发式评价函数提取算法,提取初始锚点和终点锚点之间的对象边缘。
其中,提取模块303具体包括:
第一标记单元,用于在转换模块302将输入图像转换为边缘图像后,将边缘图像中包含的点标记为未到达点;
第一处理单元,用于在第一标记单元将边缘图像中包含的点标记为未到达点后,将边缘图像中的与初始锚点对应的点标记为已到达点,并将初始锚点存储在第一堆栈和第二堆栈中;
取出单元,用于在第一处理单元将初始锚点存储在第一堆栈和第二堆栈中后,从第一堆栈中取出待计算点;
第一判断单元,用于在取出单元取出待计算点后,判断待计算点是否是终点锚点;
统计单元,用于当第一判断单元的判断结果是待计算点不是终点锚点时,统计待计算点的周围未到达点的数目;
第二判断单元,用于在统计单元统计到周围未到达点的数目后,判断周围未到达点的数目是否大于0;
第一获取单元,用于当第二判断单元的判断结果是周围未到达点的数目大于0时,计算所有周围未到达点的启发式评价函数值,得到所有周围未到达点的启发式评价函数值;
比较单元,用于在第一获取单元得到启发式评价函数值后,比较所有周围未到达点的启发式评价函数值之间的大小;
第二处理单元,用于在比较单元比较了启发式评价函数值之间的大小后,将对应最小启发式评价函数值的周围未到达点存储在第二堆栈中,并标记对应最小启发式评价函数值的周围未到达点为第二状态,并按照启发式评价函数值从大到小的顺序,将对应启发式评价函数值的周围未到达点依次存储在第一堆栈中;
第一通知单元,用于在第二处理单元将周围未到达点依次存储在第一堆栈中后,通知取出单元从第一堆栈中取出待计算点。
进一步地,提取模块303还包括:
第二标记单元,用于当第二判断单元的判断结果是周围未到达点的数目等于0时,将待计算点标记为不可达到点;
删除单元,用于在第二标记单元将待计算点标记为不可达到点后,将待计算点从第二堆栈中删除;
第二通知单元,用于在删除单元将待计算点从第二堆栈中删除后,通知取出单元从第一堆栈中取出待计算点。
进一步地,提取模块303还包括:
提取单元,用于当第一判断单元的判断结果是待计算点是终点锚点时,将终点锚点和第二堆栈中包含的点依次连接起来,提取到初始锚点和终点锚点之间的对象边缘。
其中,转换模块302具体包括:
转换单元,用于在接收模块301接收到初始锚点和终点锚点后,将输入图像转换为灰度图像;
第二获取单元,用于在转换单元将输入图像转换为灰度图像后,对灰度图图像进行Canny变换,得到边缘图像。
进一步地,转换模块302还包括:
第三处理单元,用于在接收模块301接收到初始锚点和终点锚点后,对输入图像进行高斯平滑处理。
本实施例所述的装置,运用启发式评价函数提取算法,计算在对象边缘上输入的两个锚点之间的路径,可以精确地得到对象边缘的路径,提高了提取对象边缘的精确度;并且在对象边缘上输入的两个锚点距离很远的情况下,也可以精确地得到对象边缘的路径,从而减少了提取对象边缘的工作量;进一步地,本发明是基于边缘图像来提取对象边缘的,对象区域内部的颜色变化对于提取对象边缘没有影响,在对象区域内部颜色变化丰富时也可以得到很精确的结果;另外,与智能剪刀算法相比,提取对象边缘时需要的时间缩短了很多。
以上实施例提供的技术方案中的全部或部分内容可以通过软件编程实现,其软件程序存储在可读取的存储介质中,存储介质例如:计算机中的硬盘、光盘或软盘。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种提取对象边缘的方法,其特征在于,所述方法包括:
接收在输入图像的对象边缘上输入的初始锚点和终点锚点;
将所述输入图像转换为边缘图像;
将所述边缘图像中包含的点标记为未到达点;
将所述边缘图像中的与所述初始锚点对应的点标记为已到达点,并将所述初始锚点存储在第一堆栈和第二堆栈中;
从所述第一堆栈中取出待计算点;
判断所述待计算点是否是终点锚点;
当判断结果是所述待计算点不是终点锚点时,则统计所述待计算点的周围未到达点的数目;判断所述周围未到达点的数目是否大于0;当判断结果是所述周围未到达点的数目大于0时,则计算所有所述周围未到达点的启发式评价函数值,得到所有所述周围未到达点的启发式评价函数值;其中,启发式评价函数具体为:其中,G的取值为所述待计算点与所述周围未到达点之间的颜色梯度差、H的取值为所述周围未到达点与所述终点锚点之间的路径长度、Thres的取值为[5,10];比较所有所述周围未到达点的启发式评价函数值之间的大小;将对应最小所述启发式评价函数值的所述周围未到达点存储在第二堆栈中,并标记对应最小所述启发式评价函数值的所述周围未到达点为已到达点,并按照所述启发式评价函数值从大到小的顺序,将对应所述启发式评价函数值的所述周围未到达点依次存储在第一堆栈中;执行所述从所述第一堆栈中取出待计算点步骤;当判断结果是所述周围未到达点的数目等于0时,将所述待计算点标记为不可达到点;将所述待计算点从所述第二堆栈中删除;执行所述从所述第一堆栈中取出待计算点步骤;
当判断结果是所述待计算点是终点锚点时,将所述终点锚点和所述第二堆栈中包含的点依次连接起来,提取到所述初始锚点和所述终点锚点之间的对象边缘。
2.根据权利要求1所述的提取对象边缘的方法,其特征在于,将所述输入图像转换为边缘图像,具体包括:
将所述输入图像转换为灰度图像;
对所述灰度图图像进行Canny变换,得到所述边缘图像。
3.根据权利要求2所述的提取对象边缘的方法,其特征在于,将所述输入图像转换为灰度图像之前,还包括:
对所述输入图像进行高斯平滑处理。
4.一种提取对象边缘的装置,其特征在于,所述装置包括:
接收模块,用于接收在输入图像的对象边缘上输入的初始锚点和终点锚点;
转换模块,用于在所述接收模块接收到所述初始锚点和所述终点锚点后,将所述输入图像转换为边缘图像;
提取模块,所述提取模块具体包括:
第一标记单元,用于在所述转换模块将所述输入图像转换为边缘图像后,将所述边缘图像中包含的点标记为未到达点;
第一处理单元,用于在所述第一标记单元将所述边缘图像中包含的点标记为未到达点后,将所述边缘图像中的与所述初始锚点对应的点标记为已到达点,并将所述初始锚点存储在第一堆栈和第二堆栈中;
取出单元,用于在所述第一处理单元将所述初始锚点存储在第一堆栈和第二堆栈中后,从所述第一堆栈中取出待计算点;
第一判断单元,用于在所述取出单元取出所述待计算点后,判断所述待计算点是否是终点锚点;
统计单元,用于当所述第一判断单元的判断结果是所述待计算点不是终点锚点时,统计所述待计算点的周围未到达点的数目;
第二判断单元,用于在所述统计单元统计到所述周围未到达点的数目后,判断所述周围未到达点的数目是否大于0;
第一获取单元,用于当所述第二判断单元的判断结果是所述周围未到达点的数目大于0时,计算所有所述周围未到达点的启发式评价函数值,得到所有所述周围未到达点的启发式评价函数值;其中,启发式评价函数具体为:其中,G的取值为所述待计算点与所述周围未到达点之间的颜色梯度差、H的取值为所述周围未到达点与所述终点锚点之间的路径长度、Thres的取值为[5,10];
比较单元,用于在所述第一获取单元得到所述启发式评价函数值后,比较所有所述周围未到达点的启发式评价函数值之间的大小;
第二处理单元,用于在所述比较单元比较了所述启发式评价函数值之间的大小后,将对应最小所述启发式评价函数值的所述周围未到达点存储在第二堆栈中,并标记对应最小所述启发式评价函数值的所述周围未到达点为第二状态,并按照所述启发式评价函数值从大到小的顺序,将对应所述启发式评价函数值的所述周围未到达点依次存储在第一堆栈中;
第一通知单元,用于在所述第二处理单元将所述周围未到达点依次存储在第一堆栈中后,通知所述取出单元从所述第一堆栈中取出待计算点;
第二标记单元,用于当所述第二判断单元的判断结果是所述周围未到达点的数目等于0时,将所述待计算点标记为不可达到点;
删除单元,用于在所述第二标记单元将所述待计算点标记为不可达到点后,将所述待计算点从所述第二堆栈中删除;
第二通知单元,用于在所述删除单元将所述待计算点从第二堆栈中删除后,通知所述取出单元从所述第一堆栈中取出待计算点;
提取单元,用于当所述第一判断单元的判断结果是所述待计算点是终点锚点时,将所述终点锚点和所述第二堆栈中包含的点依次连接起来,提取到所述初始锚点和所述终点锚点之间的对象边缘。
5.根据权利要求4所述的提取对象边缘的装置,其特征在于,所述转换模块具体包括:
转换单元,用于在所述接收模块接收到所述初始锚点和所述终点锚点后,将所述输入图像转换为灰度图像;
第二获取单元,用于在所述转换单元将所述输入图像转换为灰度图像后,对所述灰度图图像进行Canny变换,得到所述边缘图像。
6.根据权利要求5所述的提取对象边缘的装置,其特征在于,所述转换模块还包括:
第三处理单元,用于在所述接收模块接收到所述初始锚点和所述终点锚点后,对所述输入图像进行高斯平滑处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100761139A CN101477688B (zh) | 2009-01-08 | 2009-01-08 | 一种提取对象边缘的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100761139A CN101477688B (zh) | 2009-01-08 | 2009-01-08 | 一种提取对象边缘的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101477688A CN101477688A (zh) | 2009-07-08 |
CN101477688B true CN101477688B (zh) | 2011-01-05 |
Family
ID=40838396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100761139A Expired - Fee Related CN101477688B (zh) | 2009-01-08 | 2009-01-08 | 一种提取对象边缘的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101477688B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102542559A (zh) * | 2010-12-31 | 2012-07-04 | 北京大学 | 一种确定预选区域边界路径的方法和系统 |
CN102270299B (zh) * | 2011-08-24 | 2013-06-12 | 复旦大学 | 由断点出发可并行实现的边缘连接算法 |
CN102663787B (zh) * | 2012-03-31 | 2014-12-24 | 方正国际软件有限公司 | 一种图像路径生成方法及系统 |
WO2018024555A1 (en) * | 2016-08-02 | 2018-02-08 | Koninklijke Philips N.V. | Robust pulmonary lobe segmentation |
CN113588663B (zh) * | 2021-08-03 | 2024-01-23 | 上海圭目机器人有限公司 | 一种管线缺陷识别与信息提取方法 |
-
2009
- 2009-01-08 CN CN2009100761139A patent/CN101477688B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101477688A (zh) | 2009-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101477688B (zh) | 一种提取对象边缘的方法和装置 | |
CN109685092B (zh) | 基于大数据的聚类方法、设备、存储介质及装置 | |
CN104809453A (zh) | 一种基于指纹的认证方法 | |
CN107358238A (zh) | 一种提取图像特征信息的方法及系统 | |
CN102902826A (zh) | 一种基于基准图像索引的图像快速检索方法 | |
CN102136133B (zh) | 一种图像处理方法及图像处理装置 | |
CN109685109A (zh) | 一种基于孪生神经网络的基站标号轨迹分类方法 | |
CN103336771A (zh) | 基于滑动窗口的数据相似检测方法 | |
CN112581446A (zh) | 一种图像的显著性物体检测方法、装置、设备及存储介质 | |
CN113049963A (zh) | 一种基于局部离群因子的锂电池组一致性检测方法及装置 | |
CN108268510A (zh) | 一种图像标注方法和装置 | |
CN114997213A (zh) | 信号识别方法、装置、电子设备及存储介质 | |
CN106373279B (zh) | 用于多表集抄系统的智能ic卡水表的通信方法 | |
CN105354575A (zh) | 一种海天线检测中图像二值化阈值确定方法 | |
CN107480771A (zh) | 基于深度学习的激活函数的实现方法及装置 | |
Liu et al. | Adaptive density trajectory cluster based on time and space distance | |
CN109784145A (zh) | 基于深度图的目标检测方法及存储介质 | |
CN106023184A (zh) | 一种基于各向异性中心环绕差异的深度显著性检测方法 | |
CN104965928A (zh) | 一种基于形状匹配的汉字图像检索方法 | |
CN110135422B (zh) | 一种密集目标的检测方法和装置 | |
CN102436535B (zh) | 计算机辅助设计过程中创意拐点的识别方法及系统 | |
CN109739840A (zh) | 数据空值处理方法、装置及终端设备 | |
CN113688261B (zh) | 图像数据清理方法、装置、电子设备及可读存储介质 | |
CN109919180A (zh) | 电子装置、用户操作记录数据的处理方法和存储介质 | |
Liu et al. | A method for online trajectory simplification by enclosed area metric |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110105 Termination date: 20190108 |