CN101950420A - 一种由任意连通边界围成的单区域图像面积计算方法 - Google Patents
一种由任意连通边界围成的单区域图像面积计算方法 Download PDFInfo
- Publication number
- CN101950420A CN101950420A CN 201010265266 CN201010265266A CN101950420A CN 101950420 A CN101950420 A CN 101950420A CN 201010265266 CN201010265266 CN 201010265266 CN 201010265266 A CN201010265266 A CN 201010265266A CN 101950420 A CN101950420 A CN 101950420A
- Authority
- CN
- China
- Prior art keywords
- point
- starting point
- search
- area
- frontier
- 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.)
- Pending
Links
Images
Landscapes
- Image Processing (AREA)
Abstract
本发明公开了一种由任意连通边界围成的单区域的图像面积计算方法,属于数字图像处理领域。本方法把由任意连通边界围成的单区域自动分解成o型区域或(和)一个o型区域内连的一个或多个o型区域的区域分别计算面积再累计相加,而一个o型区域内连的一个或多个o型区域的区域面积是外面大o型区域边界围成的面积减去里面几个小o型区域边界围成的面积。其技术方案为:创建由按下鼠标拖动时产生的边界图像,对图像从下到上、从右到左或从上到下、从左到右搜索开始点,并根据开始点寻找次开始点,接着采用内外边界跟踪并同时计算目标面积。本发明适用于数字图像处理中有人工监督的区域目标面积计算。
Description
技术领域
本发明涉及数字图像处理领域,尤其涉及一种由任意连通边界围成的单区域图像面积计算方法。
背景技术
面积是物体的总尺寸的一个方便的度量,其只与该物体的边界有关,而与其内部灰度级的变化无关。在数字图像处理中,计算面积的方法有很多种,其中最简单的方法是像素计数面积计算算法,但其要求知道目标的整个区域,而不是目标的边界,虽然对于一些简单的目标可以通过区域填充由目标边界获得目标区域,但由于本文中的目标中可能包含很多空孔,如果采用区域填充将会填充里面的空孔。
1961年Freeman提出了图形的链编码表示方法,此后链编码表示在图像处理和图形分析中获得广泛的运用。为了获得链码表示,需要对图形进行边界跟踪。1978年Rosenfeld提出了图形边界跟踪算法。接着,出现了一系列通过跟踪边界的链码或坐标计算出目标的面积的算法,如由边界行程码或链码计算面积算法,用边界坐标计算面积算法。由于通过鼠标画出的边界并非都是单像素的,所以不适合由边界行程码或链码计算面积算法。由边界坐标计算面积是对跟踪的坐标采用格林公式计算面积的,但格林公式要求跟踪的边界要么都是按顺时针跟踪要么按逆时针跟踪的,所以如果按鼠标移动的顺序获得坐标采用由边界坐标计算面积算法不能保证算法的准确性。
发明内容
本发明所要解决的技术问题是克服现有技术的不足,提供一种由任意连通边界围成的单区域的图像面积计算方法,以解决现有的面积计算算法不能对由任意连通边界围成的单区域的图像面积计算的问题。
本发明的思路是首先边界跟踪要保证从开始点出发后再返回开始点的过程中每个回路都是顺时针方向的,其次在跟踪过程中出现多路选择时会自动选择路径,保证每次跟踪的区域边界为o型区域或一个o型区域内连的一个或多个o型区域的区域,且o型区域内不再包含其它区域边界,一个o型区域内连的一个或多个o型区域的区域之间不再包含其它区域边界。只要满足上面条件,跟踪出来的每个区域边界坐标都可以用边界坐标计算面积方法算出每个区域的面积,然后将所有区域的面积累积求和,就得到了最终的面积。图2为上述两种最基本的区域边界。
本发明所采用的技术方案是:首先人工获得一幅区域边界图像,然后在获得的图像上进行边界跟踪和面积计算,获得图像的方法是人们通过按下鼠标在一幅背景图像上拖动过程中产生的黑白灰度图像,其过程为:当鼠标按下时,创建一幅与背景图像尺寸相同的图像,鼠标按下的位置对应像素灰度值为1,其余各像素的灰度值都为零,并令该点为起始点,随着鼠标的拖动,图像上对应位置的像素的灰度值都加1,直到鼠标松开,然后将鼠标松开的位置至起始点的位置都加1(不包含起始点)。
为了满足只跟踪出前面提到的两种最基本的情况,设计了一种向内收敛的跟踪方法,得到跟踪的一个或多个最基本子区域边界,并分别对子区域求面积,然后各子区域的面积累计求和,就是最终所求面积,其整个流程处理步骤如下:
(1)遍历图像,搜索开始点并且在开始点的8邻域内顺时针方向搜索次开始点;
(2)以次开始点为当前点继续搜索下一个边界点直至返回开始点,当其中一个边界点出现多路连通时选择向内收敛来跟踪边界;
(3)根据上述边界跟踪的坐标计算面积S1,计算公式为S1=S1+X0Y1-X1Y0,其中(X0,Y0)(X1,Y1)为搜索过程中相邻两个边界点的坐标;
(4)将根据上述步骤所得到的各个子区域的面积累计相加,即为最终的目标面积。
上述方案中,所述步骤(2)中边界跟踪的具体步骤为:以次开始点为当前点,以搜索到次开始点的方向顺时针旋转90度的方向为首次优先搜索方向,且在当前点8邻域内逆时针搜索下一边界点,并依相同方法继续搜索后续边界点。
上述方案中,所述次开始点的搜索方法为:若从下到上,从右到左遍历图像,在开始点的8邻域内从左下相邻点向顺时针方向开始搜索;若从上到下,从左到右遍历图像,在开始点的8邻域内从右上相邻点向顺时针方向开始搜索。
本发明的有益效果是:由于本发明方法在边界跟踪中在开始点的8邻域内顺时针方向搜索次开始点,这样可以保证跟开始搜索时整个搜索路径就是按顺时针进行的;而搜索边界点时当其中一个边界点出现多路连通时选择向内收敛来跟踪边界,保证了后续面积计算的正确性;本发明利用在开始点8邻域内顺时针搜索次开始点,而在其它当前点8邻域内确定优先搜索方向后逆时针搜索下一边界点,保证多路连通时向内收敛,最终跟踪出的子区域是o型区域或(和)一个o型区域内连的一个或多个o型区域的区域,且这些区域内不会再包含其它区域,即如图2所示的两种基本子区域。
附图说明
图1是实施例中由任意连通边界围成的单区域的图像面积计算方法具体流程图;
图2是两种最基本的子区域边界;
图3是从下向上,从右向左遍历图像四种开始点会出现局部收敛的情况;
图4是从下向上,从右向左遍历图像四种开始点8邻域内只有一个邻域点的情况;
图5是对图2(b)跟踪路径的示意图;
图6是对图5中B点局部放大图;
图7是对图5中C点局部放大图;
图8是对图2(b)跟踪的边界所围成的区域;
图9是复杂的由任意连通边界围成的单区域。
具体实施方式
本实施例为了满足只跟踪出前面提到的两种最基本的情况,设计了一种向内收敛的跟踪算法,由于向内收敛,所以它可能在开始点就收敛于开始点附近,又因为边界可能是多连通的,因此为了避免局部收敛或边界因多连通情况出现不按理想路径跟踪的情况,本算法跟踪过程比一般跟踪过程复杂、严格,严格的开始点和次开始点选择,优先搜索方向的选择,和对不理想结果进行反馈跟踪,得到跟踪的一个或多个最基本子区域边界,并分别对子区域求面积,然后各子区域的面积累计求和,就是最终所求面积。其整个流程的具体处理步骤如图1所示:
(1)初始化区域面积变量S=0,分解的单个区域面积变量S1=0,是否成功返回开始点变量bLoop=False;
(2)遍历图像,搜索满足条件的开始点,若没有搜索到的开始点时则整个计算面积过程完毕;
(3)在开始点的8领域寻找次开始点,并根据开始点和次开始点确定首次优先搜索方向,若找到次开始点则将次开始点的灰度值减1,并将其坐标添加到链表中,否则将此开始点的灰度值减1,返回(2)重新搜索开始点;
(4)边界跟踪并根据跟踪的坐标计算面积S1,跟踪过程中,将跟踪的边界点的灰度值减1,并将其坐标添加到链表中,直到当前点等于开始点或在当前点8领域内找不到下一个边界点,即不能成功返回开始点,则跟踪结束,如果不能成功返回开始点,令bLoop=False,否则bLoop=True;
(6)若S1大于等于-1,且S1小于等于1,则令S1=0,同时将图像灰度值恢复到本次跟踪前的结果,释放链表,然后返回步骤(2);若S1大于1,则S=S+S1,S1=0,然后返回步骤(2);若S1小于-1,则将图像灰度值恢复到本次跟踪前的结果,释放链表,并分两种情况执行,第一种情况,若bLoop为True,则令S1=0,并以当前点为次开始点,且根据开始点和当前点的位置选定首次优先搜索方向,然后返回步骤(4),第二种情况,若bLoop为False,则令S1等于开始点与当前点的距离,并以当前点和以当前点的上一点为次开始点,且根据当前点和当前点的前一点选定首次优先搜索方向,然后返回步骤(4)。
上述技术方案中,所述次开始点的选择方法为:若从下到上,从右到左遍历图像,在开始点的8邻域内从左下相邻点向顺时针方向开始搜索;若从上到下,从左到右遍历图像,在开始点的8邻域内从右上相邻点向顺时针方向开始搜索。若其灰度值为奇数,则找到次开始点,停止搜索,若在某开始点的8邻域搜索次数大于8,则没有找到次开始点。
上述技术方案中,所述的边界跟踪算法具体步骤为:首先按要求找到开始点和次开始点,然后以次开始点为当前点,以搜索到次开始点的方向顺时针旋转90度的方向为首次优先搜索方向在当前点8邻域内逆时针搜索下一边界点,若搜索到下一边界点,则将搜索到的边界点灰度值减1,将其坐标添加到链表中,并采用格林公式计算面积,其计算公式为如下:
S1=S1+X0Y1-X1Y0
其中,X0、X1、Y0、Y1分别接着以下一边界点为当前点,以当前搜索方向顺时针旋转90度的方向为优先搜索方向继续搜索,直到找到开始点,或确定不能成功返回开始点。
在上述方案中对开始点的选择有着严格的要求,开始点不能选择在多路连接点和局部收敛地方,其原因为:若开始点选择在多路连接点一开始跟踪就可以出现迷路走错路径而不能保证按顺时针方向跟踪;若开始点选择在局部收敛点则会出现开始点在其邻域内跟踪一圈再返回开始点。
具体来说,所述开始点的选择方法应满足以下条件:若从下到上,从右到左遍历图像,首先,其灰度值等于1;其次,出现下面四种情况不能作为开始点,如图3所示,其中C表示开始点,黑点表示其邻域的边界点:一、其左、左下相邻点都大于0,二、其左、左上相邻点都大于0,三、其左上、上相邻点都大于0,四、其左、上相邻点大于0;再次,当其上、左上、左、左下四个相邻点中有一个灰度值大于1,且其它三个灰度值等于0时不能作为开始点,如图4所示,其图中说明同图3;最后,满足如下四种情况时必须改变开始点位置:一、其下相邻点灰度值为1时,将开始点修改为其下相邻点,二、其右下相邻点灰度值为1时,将开始点修改为其右下相邻点,三、其右相邻点灰度值为1时,将开始点修改为其右相邻点,四,其右上相邻点灰度值为1时,将开始点修改为其右上相邻点。
若从上到下,从左到右遍历图像,首先,其灰度值等于1;其次,出现下面四种情况不能作为开始点:一、其右、右上相邻点都大于0,二、其右、右下相邻点都大于0,三、其右下、下相邻点都大于0,四、其右、下相邻点大于0;再次,当其下、右下、右、右上四个相邻点中有一个灰度值大于1,且其它三个灰度值等于0时不能作为开始点;最后,满足如下四种情况时必须改变开始点位置:一、其下相邻点灰度值为1时,将开始点修改为其下相邻点,二、其左上相邻点灰度值为1时,将开始点修改为其左上相邻点,三、其左相邻点灰度值为1时,将开始点修改为其左相邻点,四,其左下相邻点灰度值为1时,将开始点修改为其左下相邻点。
上面的四个条件其原因依次为:首先,开始点必须是边界点,而只有灰度值大于0的点是边界点;其次,局部收敛点不能作为开始点;再次,其8邻域内只有一个边界点,且其边界点灰度至大于1的点不能作为开始点,因为不能选择次开始点,从而不能保证以后的跟踪路径一定是朝顺时针进行的;最后,应该选择先遍历的边界点且灰度值为1的点作为开始点。
为了更好的理解本发明的技术方案,先以图2(b)为列对本发明的单个区域跟踪作进一步说明,然后以一个更复杂的例子说明怎么跟踪出每个基本子区域。本例子只考虑从下到上,从右到左遍历图像的情况。
图2(b)的步骤如下(图5):
(1)首先从下到上,从右到左遍历图像找到满足开始点条件的A点,并将其作为开始点。
(2)在A点的8邻域内从左下相邻点开始向顺时针方向开始搜索,显然在A点8邻域内只有两个8邻域相邻边界点,即左下相邻边界点和上相邻边界点,由于先搜索左下相邻点,故选定左下相邻点为次边界点,因此此次跟踪将从开始点到次开始点沿顺时针朝下搜索。
(3)接着以次开始点为当前边界点,以上一次搜索方向即左下方向顺时针旋转90为优先搜索方向在当前点8邻域内向逆时针方向开始搜索,若搜索到下一个边界点,则将当前边界点的灰度值减1,并将其坐标值添加到链表中,然后以下一边界点为当前边界点继续搜索。
(4)从图5可以看出,由于在搜索过程中,都自动的将搜索到的边界点的灰度值减1,所以从次开始点的下一点开始到B点的前一点其8邻域内都只有一个相邻点,所以次过程中的搜索路径时唯一的。
(5)当搜索到B点时,其面临了三种选择,图6为B点附近的局部放大图,图中的B表示B边界点,即当前边界点,P为B边界点的前一边界点,图中黑点表示边界点,为了便于清晰的表述,在其左方和下方用数字表示其坐标,如B点为(1,2)。由图6可知,由P点搜索到B点的方向为上方,故以B点为当前点的优先搜索方向为右方,而其右相邻点(2,2)为非边界点,故搜索方向朝逆时针旋转45度,变为右上方,此时其右上相邻点(2,3)为边界点,则找到下一边界点,接着以此边界点为当前点继续搜索出点(3,2)、(4,1)等一系列边界点。由于在跟踪过程中不断地将跟踪的点的灰度值减1,所以通过B点经图6中的点(2,3)、(3,2)、(4,1)后再返回B点或其邻域后会朝图5中带箭头方向继续朝上跟踪,直到点C为止。
(6)在C点再次面临了三种选择,图7为C点附近的局部放大图,图中具体说明同图6。由图可知,由P点搜索到C点的方向为右方,故以C点为当前点的优先搜索方向为下方,且其下相邻点(3,3)为边界点,则找到下一边界点,接着以此边界点为当前点继续搜索出点(2,2)、(1,1)等一系列边界点,接着按照类似B的情况跟踪,直到返回开始点,并释放链表。
如上述跟踪过程中不能成功返回开始点,或返回开始点时计算的面积S1为负值,则释放链表,且在释放链表的过程中将跟踪过的边界坐标都加1,并根据当前点和当前点前一点从新确定次开始点重新跟踪,直到成功返回开始点,并且计算的面积S1为正为止。
其跟踪路径如图5带箭头线条所示,其整个过程都是朝顺时针跟踪的,因为在跟踪过程不停的采用格林公式和跟踪的当前边界点坐标和上一边界点坐标计算面积的,所以计算出来的面积是整个外轮廓的面积减去两个内轮廓的面积,其计算出的面积区域与图8中黑色区域的面积是相等的。
接着为了叙述整个算法的实现流程,以图9为例子说明怎么实现由任意连通边界围成的单区域的跟踪和面积计算方法。图9中为分别通过四次跟踪得到的四个基本子区域。其整个流程步骤如下:
(1)从下到上,从右到左遍历图像找到满足开始点条件的D点,然后从D点出发沿顺时针方向跟踪,得到如图9所示的下部的边界子区域和面积S1。其整个跟踪过程与图5的跟踪过程类似,跟踪过程中的E、F、G、H点出现的情况也类似于图5中的B、C点情况。
(2)令S=S+S1,接着继续遍历图像,搜索到开始点I点,然后从I点出发沿顺时针方向跟踪返回I点,其区域边界如图9上部的边界子区域所示。
重复步骤(2)过程继续得到中间两个子区域边界及其面积,并最终得到整个所需区域的面积。
Claims (3)
1.一种由任意连通边界围成的单区域图像面积计算方法,其特征在于包括以下步骤:
(1)遍历图像,搜索开始点并且在开始点的8邻域内顺时针方向搜索次开始点;
(2)以次开始点为当前点继续搜索下一个边界点直至返回开始点,当其中一个边界点出现多路连通时选择向内收敛来跟踪边界;
(3)根据上述边界跟踪的坐标计算面积S1,计算公式为S1=S1+X0Y1-X1Y0,其中(X0,Y0)(X1,Y1)为搜索过程中相邻两个边界点的坐标;
(4)将根据上述步骤所得到的各个子区域的面积累计相加,即为最终的目标面积。
2.根据权利要求1所述的一种由任意连通边界围成的单区域图像面积计算方法,其特征在于所述步骤(2)中边界跟踪的具体步骤为:以次开始点为当前点,以搜索到次开始点的方向顺时针旋转90度的方向为首次优先搜索方向,且在当前点8邻域内逆时针搜索下一边界点,并依相同方法继续搜索后续边界点。
3.根据权利要求1所述的一种由任意连通边界围成的单区域图像面积计算方法,其特征在于,所述次开始点的搜索方法为:若从下到上,从右到左遍历图像,在开始点的8邻域内从左下相邻点向顺时针方向开始搜索;若从上到下,从左到右遍历图像,在开始点的8邻域内从右上相邻点向顺时针方向开始搜索。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010265266 CN101950420A (zh) | 2010-08-26 | 2010-08-26 | 一种由任意连通边界围成的单区域图像面积计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010265266 CN101950420A (zh) | 2010-08-26 | 2010-08-26 | 一种由任意连通边界围成的单区域图像面积计算方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101950420A true CN101950420A (zh) | 2011-01-19 |
Family
ID=43453907
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010265266 Pending CN101950420A (zh) | 2010-08-26 | 2010-08-26 | 一种由任意连通边界围成的单区域图像面积计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101950420A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102289823A (zh) * | 2011-06-14 | 2011-12-21 | 汉王科技股份有限公司 | 获取显示设备上图形面积的方法和装置 |
CN103914824A (zh) * | 2012-12-31 | 2014-07-09 | 南方医科大学南方医院 | 医学图像多目标区域勾画及任意目标区域面积计算方法 |
CN104537661A (zh) * | 2014-12-26 | 2015-04-22 | 张长隆 | 一种单目摄像头测量面积的方法和*** |
CN106530306A (zh) * | 2016-09-28 | 2017-03-22 | 西南石油大学 | 一种快速分割多边形面积的方法 |
CN108961333A (zh) * | 2018-06-21 | 2018-12-07 | 杭州晶智能科技有限公司 | 一种图像区域像素面积的高效计算方法 |
-
2010
- 2010-08-26 CN CN 201010265266 patent/CN101950420A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102289823A (zh) * | 2011-06-14 | 2011-12-21 | 汉王科技股份有限公司 | 获取显示设备上图形面积的方法和装置 |
CN102289823B (zh) * | 2011-06-14 | 2014-02-26 | 汉王科技股份有限公司 | 获取显示设备上图形面积的方法和装置 |
CN103914824A (zh) * | 2012-12-31 | 2014-07-09 | 南方医科大学南方医院 | 医学图像多目标区域勾画及任意目标区域面积计算方法 |
CN103914824B (zh) * | 2012-12-31 | 2017-02-08 | 南方医科大学南方医院 | 医学图像多目标区域勾画及任意目标区域面积计算方法 |
CN104537661A (zh) * | 2014-12-26 | 2015-04-22 | 张长隆 | 一种单目摄像头测量面积的方法和*** |
CN106530306A (zh) * | 2016-09-28 | 2017-03-22 | 西南石油大学 | 一种快速分割多边形面积的方法 |
CN108961333A (zh) * | 2018-06-21 | 2018-12-07 | 杭州晶智能科技有限公司 | 一种图像区域像素面积的高效计算方法 |
CN108961333B (zh) * | 2018-06-21 | 2021-05-14 | 杭州晶一智能科技有限公司 | 一种图像区域像素面积的高效计算方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109541634B (zh) | 一种路径规划方法、装置和移动设备 | |
CN101950420A (zh) | 一种由任意连通边界围成的单区域图像面积计算方法 | |
US20190012548A1 (en) | Unified deep convolutional neural net for free-space estimation, object detection and object pose estimation | |
CN107045629B (zh) | 一种多车道线检测方法 | |
US9771080B2 (en) | Road surface gradient detection device | |
CN105046198B (zh) | 一种车道检测方法 | |
CN103065331B (zh) | 基于空时域边缘和颜色特征关联的目标跟踪方法 | |
CN102799857B (zh) | 一种视频多车辆轮廓检测方法 | |
CN107766405A (zh) | 自动车辆道路模型定义*** | |
CN109583365B (zh) | 基于成像模型约束非均匀b样条曲线拟合车道线检测方法 | |
CN101937078A (zh) | 基于边界识别追踪技术的雷暴云团的临近预报方法和*** | |
CN106097313B (zh) | 图像分割方法及装置 | |
CN102565810A (zh) | 一种遥感影像上土地利用地物边界轮廓提取方法 | |
CN109001757A (zh) | 一种基于2d激光雷达的车位智能检测方法 | |
CN107507223A (zh) | 动态环境下基于多特征聚类匹配的目标跟踪方法 | |
CN107194896B (zh) | 一种基于邻域结构的背景抑制方法和*** | |
CN104063711A (zh) | 一种基于K-means方法的走廊消失点快速检测算法 | |
CN105631939A (zh) | 一种基于曲率滤波的三维点云畸变校正方法及其*** | |
CN112306050A (zh) | 自主机器人及其行走路径规划方法、装置和存储介质 | |
CN113252027A (zh) | 井下无人驾驶车辆局部路径规划方法、装置、设备及存储介质 | |
CN113379776A (zh) | 一种道路边界检测方法 | |
CN102663387A (zh) | 基于牙科全景图的皮质骨宽度自动计算方法 | |
CN110889871A (zh) | 机器人行驶方法、装置及机器人 | |
CN104851133A (zh) | 一种图像自适应网格生成变分方法 | |
CN102930558B (zh) | 一种多特征融合的红外图像目标实时跟踪方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110119 |