CN1619594A - 数字图像的线段描述方法 - Google Patents

数字图像的线段描述方法 Download PDF

Info

Publication number
CN1619594A
CN1619594A CN 200410089182 CN200410089182A CN1619594A CN 1619594 A CN1619594 A CN 1619594A CN 200410089182 CN200410089182 CN 200410089182 CN 200410089182 A CN200410089182 A CN 200410089182A CN 1619594 A CN1619594 A CN 1619594A
Authority
CN
China
Prior art keywords
line segment
territory
node
adjacent
line
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
Application number
CN 200410089182
Other languages
English (en)
Inventor
饶秀勤
应义斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN 200410089182 priority Critical patent/CN1619594A/zh
Publication of CN1619594A publication Critical patent/CN1619594A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Image Processing (AREA)

Abstract

本发明公开了一种数字图像的线段描述方法,由图像表、行表及线段结点描述;线段结点包括Start域、End域及Next等3个域;行表是同一行上线段结点组成的单链表;图像表是由线段结点组成且长度为图像高度的一维数组,其结点的Next域指向对应的行表,并反映该行的纵坐标;数字图像的滤波、区域生长、对象边界数据提取等操作依靠纵坐标相邻的线段之间的邻接关系进行,提取的对象边界数据存贮于图像表的Start域和End域内;本发明将数字图像上特征相同的连续像素点用线段表示,可减少数据处理量,提高处理速度,且处理速度与图像大小基本无关;滤波、区域生长、对象边界数据提取等操作可一次完成。

Description

数字图像的线段描述方法
技术领域
本发明涉及一种数字图像的线段描述方法。
背景技术
图像分割是数字图像处理技术的一个重要方面,其目的主要是将对象从背景中分离出来,以供后续处理。目前这方面的处理基本上是以像素为基础而进行的。
通常图像分割的第一步是将图像作二值化处理,之后再从二值化图像中提取对象。
根据处理对象和背景的关系,二值化处理的方法各异。应用最多的是阈值法,根据阈值的作用范围可分为全局阈值法和局部阈值法,根据阈值的确定方法可分为固定阈值法和动态阈值法。
对二值化图像进行一系列处理如滤波、区域生长等,可以将对象从背景中分离出来。而目前这方面的处理技术均以像素为基础,即处理过程中,需一个像素一个像素地处理,限制了处理速度的提高。
以滤波处理为例,目前应用的滤波器可分为空间域滤波器和频率域滤波器。空间域滤波器主要有低通滤波器、高通滤波器、中值滤波器、高斯滤波器等等。这些滤波器一般都需将图像与一个模板作卷积运算,模板是m×n矩阵。图像上要处理的区域内所有像素均需与模板进行卷积运算。频率域滤波器需作两次变换处理,分别是从空间域到频率域的转换和在频率域处理完成后从频率域到空间域的转换,图像上的像素也必须逐个处理。这样处理的时间复杂度取决于图像的大小和模板矩阵的大小。
区域生长是从一个称为种子的像素开始的,种子的附近像素与种子进行比较,如果他们是相似的,则该像素被添加到当前区域。然后将区域的其它像素作为种子,重复操作,直到没有新的像素增加为止。在操作过程中,图像上的像素也必须逐个处理,处理的时间复杂度取决于图像的大小及图像的复杂程度。
发明内容
本发明的目的在于提供一种数字图像的线段描述方法,将数字图像中同一行内具有相同特征的连续的像素点用线段表示,以减少数据处理量,提高处理速度,使处理速度与图像大小基本无关,滤波、区域生长、对象边界数据提取操作可一次完成。
本发明的技术方案是:一幅数字图像由三层结构描述:图像表ImageTable、行表RowTable及线段结点LineNode,其中:
1)线段结点LineNode是一个由三个域Start域、End域及Next组成的自定义结构,Start域和End域分别代表一条线段的起点和终点横坐标,Next域为指向下一条线段的指针;
2)行表RowTable是图像上同一行所有线段结点组成的单链表,代表数字图像上的一行图像;
3)图像表ImageTable是结点类型与LineNode相同且长度等于数字图像高度的一维数组,其结点的Next域指向代表数字图像某一行的行表RowTable,并反映该行的纵坐标;
4)数字图像按下面的方法处理后可转换成线段描述方式:对二值化处理后的数字图像从上到下按行扫描,对每一行按从左到右的次序扫描,将每一行中连续的可能代表对象的像素点用线段结点LineNode记录,每一行图像上的所有线段结点之间通过线段结点的Next域链接成行表RowTable,行表RowTable由与该行序号相对应的图像表ImageTable的结点的Next域指示;数字图像的滤波、区域生长、对象边界数据提取操作依靠纵坐标相邻的线段之间的邻接关系进行,对象的边界数据存贮于图像表的Start域和End域内。
所述的纵坐标相邻的线段之间的邻接关系,是指:
对于纵坐标相邻的两条线段L1,L2,如果存在横坐标值x:
x∈L1且x∈L2                                           (1)
则称这两条线段L1,L2相邻接。否则,称这两条线段不相邻接。
纵坐标相邻的两条线段L1,L2不相邻存在2种情况,即:
L1.Start域>L2.End域                                   (2)
L1.End域<L2.Start域                                   (3)
纵坐标相邻的两条线段不相邻只存在4种情况,即:
L2.Start域<L1.Start域>L2.End域                       (4)
L2.Start域<L1.End域>L2.End域                         (5)
L1.Start域<L2.Start域>L1.End域                       (6)
L1.Start域<L2.End域>L1.End域                         (7)
在编程实现时,利用公式(2)和公式(3)编制一个函数UnConnective,将纵坐标相邻的两条线段作为参数输入到一个函数,根据公式(2)和公式(3)判断其相邻关系,如果满足其中一个条件,则函数返回false,表示这两条线段不相邻;否则返回true,表示这两条线段相邻。利用公式(4)~(7)编制成另一个函数Connective,将纵坐标相邻的两条线段作为参数输入到一个函数,根据公式(4)~(7)判断其相邻关系,如果满足其中一个条件,则函数返回true,表示这两条线段相邻,否则返回false,表示这两条线段不相邻。
所述的数字图像的滤波、区域生长、对象边界数据提取操作,是指:
1)对图像按自上而下的次序进行扫描,从中第i行取出一条线段L0,将其起点和终点值分别存入第i行表头结点,释放线段L0;
2)在i+1行取第一条线段L1,采用UnConnective函数或Connective函数判断线段L0与线段L1的相邻关系,如果相邻,则将线段L1的起点和终点值存入第i+1行图像表结点,并释放线段L0,否则,查找下一条线段;然后在i+1行取第二条线段L2,采用UnConnective函数或Connective函数判断线段L0与线段L2的相邻关系,如果相邻,则将线段L2的终点值存入第i+1行表头结点,释放线段L2。如此重复,直到i+1行所有线段处理完毕;
3)i+1行成为新的第i行,图像表上结点i+1的Start域值和End域值分别成为线段L0的起点和终点,重复操作2);
4)当i+1行扫描完毕,没有新的相邻线段加入时,则表明图像中一个区域已生长完成,此时判断存放在表头结点的对象大小,如果小于设定的阈值,则说明该区域为噪声,应舍去。然后重复1)~3);否则,说明对象的边界区域已基本确定,可退出循环;
5)回溯:对图像按自下而上的次序进行扫描,由图像表结点i的Start域值和End域值组成线段L0,在i-1行取第一条线段L1,采用UnConnective函数或Connective函数判断线段L0与线段L1的相邻关系,如果相邻,则将线段L1的起点和终点值存入第i-1行图像表结点,并释放线段L0,否则,查找下一条线段。然后在i-1行取第二条线段L2,采用UnConnective函数或Connective函数判断线段L0与线段L2的相邻关系,如果相邻,则将线段L2的终点值存入第i-1行表头结点,释放线段L2。如此重复,直到i-1行所有线段处理完毕;然后i-1行成为新的i行,重复处理,直到整幅图像处理完成。
本发明具有的有益的效果是:将数字图像上同一特征类型的连续的像素点被表示成线段,可减少数据处理量,提高处理速度,且处理速度与图像大小基本无关;滤波、区域生长、对象边界数据提取操作可一次完成。
附图说明
图1数字图像及其描述方法示意图;
图2是线段结点的结构示意图;
图3是纵坐标相邻的两条线段之间不相邻接的情况示意图;
图4是纵坐标相邻的两条线段之间相邻接的情况示意图;
图5是数字图像1的原始图像;
图6是数字图像1的二值化图像;
图7是数字图像1经过本方法处理后分割得到的对象;
图8是数字图像1经过本方法处理后得到的边界;
图9是数字图像2的原始图像;
图10是数字图像2的二值化图像;
图11是数字图像2回溯处理前分割得到的对象;
图12是数字图像2回溯处理后分割得到的对象。
具体实施方式
如图1所示,一幅数字图像由三层结构组成:图像表ImageTable、行表RowTable及线段结点LineNode。
如图2所示,线段结点LineNode是一个由三个域Start域、End域及Next组成的自定义结构,可用C语言作如下描述:
struct LineNode
{
      int Start;//线段起点
      int End;//线段终点
      struct LineNode*next;//后继指针
};
Start域和End域分别代表一条线段的起点和终点,Next域为指向下一条线段的指针。
行表RowTable是一个带头结点的单链表,结点类型LineNode类型,由数字图像上一行所有线段组成,代表数字图像的一行数据。
图像表ImageTable是结点类型为LineNode类型的一维数组,其长度等于数字图像高度;结点的下标与数字图像的列号相对应,每个结点的Next域指向数字图像的一个行表RowTable,结点的下标即为该行线段的纵坐标。
数字图像按下述方式处理后可转换成线段描述方式:
1)首先对数字图像按处理目的进行二值化处理,处理后的图像分别由0和1代表背景和目标。
2)创建图像表ImageTable,其结点类型为LineNode型,其长度等于数字图像高度。创建bool型标志变量LineStart域Tag,其初始值设为false。创建LineNode型指针变量pLineCurrent。
3)对数字图像从0行开始按自上而下进行的次序进行逐行扫描,对每一行按从左至右的次序进行扫描。这里,用变量i表示行号扫描前。扫描前,先动态生成一个LineNode型结点,作为行表RowTable的头结点,该头结点由ImageTable.Next域指示,并执行pLineCurrent=ImageTable.Next操作,使pLineCurrent指向头结点。然后开始进行行扫描:如果当前像素值为1且LineStart域Tag为false,则动态生成一个LineNode型结点,由pLineCurrent->Next域指示,并执行下面的操作:
pLineCurrent=pLinCurrent->Next
在该操作执行后,新生成的结点由pLineCurrent指示。然后将当前横坐标值写入新结点的Start域,LineStart域Tag设为true。然后继续扫描,直到找到第一个像素值为0的像素点,此时将当前横坐标值写入新结点的End域,并将LineStart域Tag设为false。在一行扫描完成后,执行pLineCurrent->Next=NULL,指示该行结束。
在所有行扫描结束后,即可将数字图像转换成线段描述方式。
在上述步骤完成之后,还需对图像进行进一步的处理,如滤波、区域生长、对象边界数据提取等操作,这些操作要利用纵坐标相邻的两条线段之间的邻接关系进行。
纵坐标相邻的两条线段之间的邻接关系用相邻接和不相邻接表示。其定义如下:
对于纵坐标相邻的两条线段L1,L2,如果存在横坐标值x:
x∈L1且x∈L2                                           (1)
则称这两条线段L1,L2相邻接,否则,称这两条线段不相邻接。
如图3所示,纵坐标相邻的两条线段之间不相邻接。从图中可以看出,两条线段不相邻存在2种情况即:
L1.Start域>L2.End域                                   (2)
L1.End域<L2.Start域                                   (3)
如图4所示,纵坐标相邻的两条线段之间相邻接。从图中可以看出,两条线段不相邻只存在4种情况即:
L2.Start域<L1.Start域>L2.End域                       (4)
L2.Start域<L1.End域>L2.End域                         (5)
L1.Start域<L2.Start域>L1.End域                       (6)
L1.Start域<L2.End域>L1.End域                         (7)
在编程实现时,利用公式(2)和公式(3)编制一个函数UnConnective,将纵坐标相邻的两条线段作为参数输入到一个函数,根据公式(2)和公式(3)判断其相邻关系,如果满足其中一个条件,则函数返回false,表示这两条线段不相邻,否则返回true,表示这两条线段相邻。也可利用公式(4)~(7)编制另一个函数Connective,将纵坐标相邻的两条线段作为参数输入到一个函数,根据公式(4)~(7)判断其相邻关系,如果满足其中一个条件,则函数返回true,表示这两条线段相邻,否则返回false,表示这两条线段不相邻。
滤波、区域生长、对象边界数据提取等操作按下述步骤进行:
1)对图像按自上而下的次序进行扫描,从中第i行取出一条线段L0,将其起点和终点值分别存入第i行表头结点,释放线段L0。
2)在i+1行取第一条线段L1,采用UnConnective函数或Connective函数判断线段L0与线段L1的相邻关系,如果相邻,则将线段L1的起点和终点值存入第i+1行图像表结点,并释放线段L0,否则,查找下一条线段。然后在i+1行取第二条线段L2,采用UnConnective函数或Connective函数判断线段L0与线段L2的相邻关系,如果相邻,则将线段L2的终点值存入第i+1行表头结点,释放线段L2。如此重复,直到i+1行所有线段处理完毕。
3)i+1行成为新的第i行,图像表上结点i+1的Start域值和End域值分别成为线段L0的起点和终点,重复操作2)。
4)当i+1行扫描完毕,没有新的相邻线段加入时,则表明图像中一个区域已生长完成,此时判断存放在表头结点的对象大小,如果小于设定的阈值,则说明该区域为噪声,应舍去。然后重复1)~3)。否则,说明对象的边界区域已基本确定,可退出循环。
5)回溯:对图像按自下而上的次序进行扫描,由图像表结点i的Start域值和End域值组成线段L0,在i-1行取第一条线段L1,采用UnConnective函数或Connective函数判断线段L0与线段L1的相邻关系,如果相邻,则将线段L1的起点和终点值存入第i-1行图像表结点,并释放线段L0,否则,查找下一条线段。然后在i-1行取第二条线段L2,采用UnConnective函数或Connective函数判断线段L0与线段L2的相邻关系,如果相邻,则将线段L2的终点值存入第i-1行表头结点,释放线段L2。如此重复,直到i-1行所有线段处理完毕;然后i-1行成为新的i行,重复处理,直到整幅图像处理完成。
在整幅图像扫描完成后,对象的边界数据就存放在图像表结点中。
图5~图8是对数字图像1(柑桔图像)用上述方法进行处理的结果,图5为原始图像,图6为二值化图像,图7本方法处理后分割得到的对象,图8是数字图像1经过本方法处理后得到的边界。从中可以看出,该图像经本方法处理后,由于二值分割不完美而引起的水果内部区域缺失被自动补齐了。
图9~图12是对数字图像2(柑桔图像)用上述方法进行处理的结果,图9为原始图像,图10为二值化图像,图11是数字图像2回溯处理前分割得到的对象,图12是数字图像2回溯处理后分割得到的对象。从中可以看出,回溯处理前,图11的B区缺失了,经过回溯处理后,B区得到了恢复。

Claims (3)

1.一种数字图像的线段描述方法,其特征在于:一幅数字图像由三层结构描述:图像表ImageTable、行表RowTable及线段结点LineNode,其中:
1)线段结点LineNode是一个由三个域Start域、End域及Next组成的自定义结构,Start域和End域分别代表一条线段的起点和终点横坐标,Next域为指向下一条线段的指针;
2)行表RowTable是图像上同一行所有线段结点组成的单链表,代表数字图像上的一行图像;
3)图像表ImageTable是结点类型与LineNode相同且长度等于数字图像高度的一维数组,其结点的Next域指向代表数字图像某一行的行表RowTable,并反映该行的纵坐标;
4)数字图像按下面的方法处理后可转换成线段描述方式:对二值化处理后的数字图像从上到下按行扫描,对每一行按从左到右的次序扫描,将每一行中连续的可能代表对象的像素点用线段结点LineNode记录,每一行图像上的所有线段结点之间通过线段结点的Next域链接成行表RowTable,行表RowTable由与该行序号相对应的图像表ImageTable的结点的Next域指示;数字图像的滤波、区域生长、对象边界数据提取操作依靠纵坐标相邻的线段之间的邻接关系进行,对象的边界数据存贮于图像表的Start域和End域内。
2.根据权利要求1所述的一种数字图像的线段描述方法,其特征在于:所述的纵坐标相邻的线段之间的邻接关系,是指:
对于纵坐标相邻的两条线段L1,L2,如果存在横坐标值x:
x∈L1且x∈L2                                     (1)
则称这两条线段L1,L2相邻接。否则,称这两条线段不相邻接。
纵坐标相邻的两条线段L1,L2不相邻存在2种情况,即;
L1.Start域>L2.End域                             (2)
L1.End域<L2.Start域                             (3)
纵坐标相邻的两条线段不相邻只存在4种情况,即:
L2.Start域<L1.Start域>L2.End域                 (4)
L2.Start域<L1.End域>L2.End域                   (5)
L1.Start域<L2.Start域>L1.End域                (6)
L1.Start域<L2.End域>L1.End域                  (7)
在编程实现时,利用公式(2)和公式(3)编制一个函数UnConnective,将纵坐标相邻的两条线段作为参数输入到一个函数,根据公式(2)和公式(3)判断其相邻关系,如果满足其中一个条件,则函数返回false,表示这两条线段不相邻;否则返回true,表示这两条线段相邻。利用公式(4)~(7)编制成另一个函数Connective,将纵坐标相邻的两条线段作为参数输入到一个函数,根据公式(4)~(7)判断其相邻关系,如果满足其中一个条件,则函数返回true,表示这两条线段相邻,否则返回false,表示这两条线段不相邻。
3.根据权利要求1所述的一种数字图像的线段描述方法,其特征在于:所述的数字图像的滤波、区域生长、对象边界数据提取操作,是指:
1)对图像按自上而下的次序进行扫描,从中第i行取出一条线段L0,将其起点和终点值分别存入第i行表头结点,释放线段L0;
2)在i+1行取第一条线段L1,采用UnConnective函数或Connective函数判断线段L0与线段L1的相邻关系,如果相邻,则将线段L1的起点和终点值存入第i+1行图像表结点,并释放线段L0,否则,查找下一条线段;然后在i+1行取第二条线段L2,采用UnConnective函数或Connective函数判断线段L0与线段L2的相邻关系,如果相邻,则将线段L2的终点值存入第i+1行表头结点,释放线段L2;如此重复,直到i+1行所有线段处理完毕;
3)i+1行成为新的第i行,图像表上结点i+1的Start域值和End域值分别成为线段L0的起点和终点,重复操作2);
4)当i+1行扫描完毕,没有新的相邻线段加入时,则表明图像中一个区域已生长完成,此时判断存放在表头结点的对象大小,如果小于设定的阈值,则说明该区域为噪声,应舍去。然后重复1)~3);否则,说明对象的边界区域已基本确定,可退出循环;
5)回溯:对图像按自下而上的次序进行扫描,由图像表结点i的Start域值和End域值组成线段L0,在i-1行取第一条线段L1,采用UnConnective函数或Connective函数判断线段L0与线段L1的相邻关系,如果相邻,则将线段L1的起点和终点值存入第i-1行图像表结点,并释放线段L0,否则,查找下一条线段。然后在i-1行取第二条线段L2,采用UnConnective函数或Connective函数判断线段L0与线段L2的相邻关系,如果相邻,则将线段L2的终点值存入第i-1行表头结点,释放线段L2。如此重复,直到i-1行所有线段处理完毕;然后i-1行成为新的i行,重复处理,直到整幅图像处理完成。
CN 200410089182 2004-11-30 2004-11-30 数字图像的线段描述方法 Pending CN1619594A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200410089182 CN1619594A (zh) 2004-11-30 2004-11-30 数字图像的线段描述方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200410089182 CN1619594A (zh) 2004-11-30 2004-11-30 数字图像的线段描述方法

Publications (1)

Publication Number Publication Date
CN1619594A true CN1619594A (zh) 2005-05-25

Family

ID=34766153

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200410089182 Pending CN1619594A (zh) 2004-11-30 2004-11-30 数字图像的线段描述方法

Country Status (1)

Country Link
CN (1) CN1619594A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008125046A1 (fr) * 2007-04-11 2008-10-23 Huawei Technologies Co., Ltd. Procédé, système de télécopie et ordinateur de télécopie
CN113160169A (zh) * 2021-04-16 2021-07-23 浙江高速信息工程技术有限公司 隧道裂隙图像识别方法和系统
CN115866334A (zh) * 2023-02-27 2023-03-28 成都华域天府数字科技有限公司 一种在视频流程中裁剪和关联内容的数据处理方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008125046A1 (fr) * 2007-04-11 2008-10-23 Huawei Technologies Co., Ltd. Procédé, système de télécopie et ordinateur de télécopie
CN101060577B (zh) * 2007-04-11 2012-03-21 华为技术有限公司 传真方法、系统和传真计算机
CN113160169A (zh) * 2021-04-16 2021-07-23 浙江高速信息工程技术有限公司 隧道裂隙图像识别方法和系统
CN115866334A (zh) * 2023-02-27 2023-03-28 成都华域天府数字科技有限公司 一种在视频流程中裁剪和关联内容的数据处理方法

Similar Documents

Publication Publication Date Title
CN1275190C (zh) 用于校正图像中的对象歪斜的方法和装置
CN1187961C (zh) 噪声检测器、噪声检测方法、信号处理器和信号处理方法
CN1260680C (zh) 数字图像分段的方法和装置
CN1484434A (zh) 在嵌入式系统中按比例缩放数字图像的方法
CN1678016A (zh) 图像处理装置及图像处理方法
CN1288916C (zh) 图像死点和噪声的消除方法
CN1677430A (zh) 边界提取方法,程序,及使用该方法和程序的装置
CN1633159A (zh) 一种去除图像噪声的方法
CN1185858C (zh) 图象处理装置
CN1278539C (zh) 图像读取装置及其数据插值方法
CN101031029A (zh) 一种视频图像处理的方法及其装置
CN100342710C (zh) 增强图像的结构方法
CN101030230A (zh) 一种图像检索方法及系统
CN1916940A (zh) 模板优化的字符识别方法和系统
CN1619594A (zh) 数字图像的线段描述方法
CN1151056A (zh) 特征提取方法
CN101034440A (zh) 一种类球形果蔬的识别方法
CN1819617A (zh) 基于图像特性应用边缘增强
CN1975646A (zh) 光学导航装置和操作其的方法
CN100347724C (zh) 一种基于模板匹配的烟支批量计数方法及其装置
CN1878310A (zh) 图像编码和解码方法和装置以及计算机可读记录介质
CN1909592A (zh) 误差扩散图像挂网技术中的图像扫描处理方法及系统
CN1677440A (zh) 图像放大装置和图像放大方法
CN100351869C (zh) 一种数字图像插值处理方法
CN1271863C (zh) 时间维受限的三维虚拟spiht树组织方法

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