CN105608713A - 一种基于四叉树的二值图像编码与高效逻辑运算方法 - Google Patents
一种基于四叉树的二值图像编码与高效逻辑运算方法 Download PDFInfo
- Publication number
- CN105608713A CN105608713A CN201610002978.0A CN201610002978A CN105608713A CN 105608713 A CN105608713 A CN 105608713A CN 201610002978 A CN201610002978 A CN 201610002978A CN 105608713 A CN105608713 A CN 105608713A
- Authority
- CN
- China
- Prior art keywords
- level
- logic
- node
- nodes encoding
- image
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/40—Tree coding, e.g. quadtree, octree
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种基于四叉树的二值图像编码和基本逻辑运算方法,能用更少的空间来表示二值图像,且更快地完成二值图像的逻辑与、逻辑或、逻辑异或、逻辑差和逻辑非等五种基本逻辑运算及其组合。参与运算的二值图像经必要扩充后以四叉树表示,对四叉树的各节点进行编码,并按节点在四叉树深度优先搜索过程中被访问的顺序,将节点编码组织为编码序列;确定了基本逻辑运算在二值图像编码序列上的等价操作;将复杂逻辑运算分解为若干基本二元逻辑运算,并在编码序列上完成这些运算;最后由编码序列重建结果二值图像。本发明通过四叉树及其编码减少了表示二值图像的空间开销,并将多个串行的像素逻辑操作压缩为少数节点编码的操作以显著减少运算时间。
Description
技术领域
本发明涉及图像处理、图像压缩、工业检测、农业生产与管理、交通、公共安全等应用领域,具体是一种基于四叉树的二值图像编码与高效逻辑运算方法。
背景技术
在图像压缩和处理以及基于机器视觉的检测中的对象识别和图像理解任务中,会频繁地用到二值图像的逻辑运算。二值图像的逻辑运算常可通过逐像素逻辑操作来高效、便捷地完成,且空间开销也可以接受。但是当大量大尺寸的二值图像进行多次逻辑运算时,这种逐像素运算的方法,在时间和空间性能上都存在问题。例如在利用二值图像区域的骨架来描述和分析对象时,常常需要采用骨架去毛刺的方法得到准确的对象拓扑特征。现在的骨架去毛刺方法大多采用区域重构的方式,通过反复计算若干骨架分支被去除之后,衡量剩余的骨架所重构的近似区域与原始区域相比的“相似度”来判断这些骨架分支是否是对于描述区域而言并不重要的毛刺骨架。这一反复进行的区域重构过程便涉及了为数众多的二值图像的逻辑运算。如果单纯地采用逐像素操作,去毛刺过程将变得十分耗时,空间开销也十分庞大。
因此,有必要找到一种针对大量大尺寸的二值图像的压缩编码表示方法,实现这些二值图像的压缩表示,并且在这个压缩表示的基础上给出等价于二值图像逻辑运算的操作,能够以更快的速度来完成这些二值图像的多次逻辑运算。
发明内容
本发明所要解决的技术问题是针对大量大尺寸二值图像,提供一种压缩的表示方法,并且基于这一表示方法给出等价于二值图像逻辑运算的操作,从而使得大量大尺寸二值图像间的多次逻辑运算能够快速且节约空间地完成。
为解决上述技术问题,本发明提出的解决方案为:利用四叉树来集约地表示参与运算的二值图像,并通过将四叉树结构转换为等价的编码序列,来实现二值图像的压缩表示,进而通过编码序列之间的运算来等价地完成所需的二值图像逻辑运算,从而实现速度快、空间开销小的二值图像逻辑操作。具体包括以下步骤:
i.将二值图像IO扩充为边长等于2N的正方形图像I,其中H和W分别为IO的高和宽,表示向下取整操作;扩充方法是在IO的下方增加2N-H行,增加的行中的像素值全部为逻辑0,即黑色点;然后再在进行了上述行扩充之后的图像的右方增加2N-W列,增加的列中的像素值也全部为逻辑0;
ii.将I转换为基于四叉树的编码序列Q;
iii.将需要进行的二值图像逻辑操作转换为一系列二值图像的基本逻辑运算,即具有两个操作数的基本二元逻辑运算,包括逻辑与运算AND、逻辑或运算OR、逻辑异或运算XOR和逻辑差运算SUB,以及具有单个操作数的基本一元逻辑运算,即逻辑反运算NOT;对于二值图像I,其逻辑非运算NOT的结果是一幅与I相同大小的二值图像IR,即IR=NOTI,其中
IR(i,j)=!I(i,j),!表示单个逻辑变量的逻辑非运算;
对于二值图像IA和IB,其二元逻辑运算的结果是一幅相同大小的二值图像IR,其中每个像素点处的值由IA和IB相应位置上的像素点值的逻辑运算所决定;对逻辑与运算AND,有IR=IAANDIB,其中
IR(i,j)=IA(i,j)&IB(i,j),&表示单个逻辑变量的逻辑与运算;
对逻辑或运算OR,有IR=IAORIB,其中
IR(i,j)=IA(i,j)|IB(i,j),|表示单个逻辑变量的逻辑或运算;
对逻辑异或运算XOR,有IR=IAXORIB,其中
IR(i,j)=[IA(i,j)&IB(i,j)]|[!IA(i,j)&!IB(i,j)];
对逻辑差运算SUB,有IR=IASUBIB,其中
IR(i,j)=IA(i,j)&!IB(i,j);
各式中i、j的取值范围为0≤i,j<2N;
iv.在参与所需逻辑运算的各幅二值图像的基于四叉树的编码序列上,完成各个基本逻辑运算,即逻辑非运算、逻辑与运算、逻辑或运算、逻辑异或运算与逻辑差运算,得到结果编码序列QR;
v.根据QR解码得到2N×2N大小的扩充后的结果二值图像,然后截取扩充后的结果二值图像上部的H行和左侧的W列构成的子图像,即为最终的结果二值图像。
所述第ii步中的二值图像编码方法(方法A),其具体步骤如下:
(A.1)构造经过了扩充的二值图像I的四叉树T(四叉树的构造可参考“C.R.Dyer,A.Rosenfeld,H.Samet.Regionrepresentation:Boundarycodesfromquadtrees.CommunicationsoftheACM,1980,23(3):171-179”);
(A.2)从T的根节点开始,按深度优先的方式遍历T;
(A.3)对遍历过程中访问的每个T的节点进行编码,每个节点的编码包含如下信息:表示该节点对应的图像区域是否为单一颜色区域的标记u,表示该节点对应的图像区域的颜色的标记c,以及该节点在T中所处的层数level;针对上述节点信息,一种推荐的编码方式如下:对每个节点使用1个字节进行编码,该字节的最高位表示u,当该节点对应的图像区域只包含一种颜色时,u=TRUE,否则u=FALSE;该字节的次高位表示c,当u=TRUE且该节点对应的图像区域的颜色为白色时,c=TRUE,否则当u=TRUE且该节点对应的图像区域的颜色为黑色时,c=FALSE,否则当u=FALSE时,c的取值不起作用;该字节的低6位以整型值方式给出该节点的level,根节点的level=0,子节点的level=其父节点的level+1;
(A.4)在T的遍历完成后,按T中各节点在遍历过程中被访问的先后次序,将它们对应的编码排列为一个字节串,便得到了二值图像的编码序列Q。
所述第iv步中的二值图像的逻辑非运算的计算方法(方法B),其具体步骤如下:
(B.1)令Q为进行逻辑非运算NOTI的二值图像I对应的编码序列;初始化一个空的编码序列QR;
(B.2)从Q的第一个节点编码开始依次遍历Q;
(B.3)令q为Q中的当前节点编码,qR为当前节点的运算结果编码;如果q.u=FALSE,则置qR=q;否则,置qR.u=TRUE,qR.c=!q.c,qR.level=q.level;将q加在QR在尾部;
(B.4)当Q遍历完成后,QR即为逻辑非运算结果的编码序列。
所述第iv步中的二值图像的逻辑与运算的计算方法(方法C),其具体步骤如下:
(C.1)令QA和QB分别为进行逻辑与运算IAANDIB的二值图像IA和IB对应的编码序列;初始化一个空的编码序列QR;
(C.2)置qA为QA中的第一个节点编码,qB为QB中的第一个节点编码;
(C.3)若qA.u=FALSE且qB.u=FALSE,则将qA加在QR的尾部,置qA为QA中的下一个节点编码,置qB为QB中的下一个节点编码;
(C.4)否则,若qA.u=TRUE且qA.c=TRUE,则将qB以及QB中紧跟在qB之后且level>qB.level的节点编码依次加在QR的尾部,置qA为QA中的下一个节点编码,置qB为QB中下一个满足level≤qB.level的节点编码;
(C.5)否则,若qA.u=TRUE且qA.c=FALSE,则将qA加在QR的尾部,置qA为QA中的下一个节点编码,置qB为QB中下一个满足level≤qB.level的节点编码;
(C.6)否则,若qB.c=TRUE,则将qA以及QA中紧跟在qA之后且level>qA.level的节点编码依次加在QR的尾部,置qB为QB中的下一个节点编码,置qA为QA中下一个满足level≤qA.level的节点编码;
(C.7)否则,将qB加在QR的尾部,置qB为QB中的下一个节点编码,置qA为QA中下一个满足level≤qA.level的节点编码;
(C.8)当QA和QB均被遍历完成,则运算结束,QR即为逻辑与运算结果的编码序列。
所述第iv步中的二值图像的逻辑或运算的计算方法(方法D),其具体步骤如下:
(D.1)令QA和QB分别为进行逻辑或运算IAORIB的二值图像IA和IB对应的编码序列;初始化一个空的编码序列QR;
(D.2)置qA为QA中的第一个节点编码,qB为QB中的第一个节点编码;
(D.3)若qA.u=FALSE且qB.u=FALSE,则将qA加在QR的尾部,置qA为QA中的下一个节点编码,置qB为QB中的下一个节点编码;
(D.4)否则,若qA.u=TRUE且qA.c=FALSE,则将qB以及QB中紧跟在qB之后且level>qB.level的节点编码依次加在QR的尾部,置qA为QA中的下一个节点编码,置qB为QB中下一个满足level≤qB.level的节点编码;
(D.5)否则,若qA.u=TRUE且qA.c=TRUE,则将qA加在QR的尾部,置qA为QA中的下一个节点编码,置qB为QB中下一个满足level≤qB.level的节点编码;
(D.6)否则,若qB.c=FALSE,则将qA以及QA中紧跟在qA之后且level>qA.level的节点编码依次加在QR的尾部,置qB为QB中的下一个节点编码,置qA为QA中下一个满足level≤qA.level的节点编码;
(D.7)否则,将qB加在QR的尾部,置qB为QB中的下一个节点编码,置qA为QA中下一个满足level≤qA.level的节点编码;
(D.8)当QA和QB均被遍历完成,则运算结束,QR即为逻辑或运算结果的编码序列。
所述第iv步中的二值图像的逻辑异或运算的计算方法(方法E),其具体步骤如下:
(E.1)令QA和QB分别为进行逻辑异或运算IAXORIB的二值图像IA和IB对应的编码序列;初始化一个空的编码序列QR;
(E.2)置qA为QA中的第一个节点编码,qB为QB中的第一个节点编码;
(E.3)若qA.u=FALSE且qB.u=FALSE,则将qA加在QR的尾部,置qA为QA中的下一个节点编码,置qB为QB中的下一个节点编码;
(E.4)否则,若qA.u=TRUE且qA.c=FALSE,则将qB以及QB中紧跟在qB之后且level>qB.level的节点编码依次加在QR的尾部,置qA为QA中的下一个节点编码,置qB为QB中下一个满足level≤qB.level的节点编码;
(E.5)否则,若qA.u=TRUE且qA.c=TRUE,则将qB以及QB中紧跟在qB之后且level>qB.level的节点编码的区域颜色标记c取逻辑非后再依次加在QR的尾部,置qA为QA中的下一个节点编码,置qB为QB中下一个满足level≤qB.level的节点编码;
(E.6)否则,若qB.c=FALSE,则将qA以及QA中紧跟在qA之后且level>qA.level的节点编码依次加在QR的尾部,置qB为QB中的下一个节点编码,置qA为QA中下一个满足level≤qA.level的节点编码;
(E.7)否则,将qA以及QA中紧跟在qA之后且level>qA.level的节点编码的区域颜色标记c取逻辑非后再依次加在QR的尾部,置qB为QB中的下一个节点编码,置qA为QA中下一个满足level≤qA.level的节点编码;
(E.8)当QA和QB均被遍历完成,则运算结束,QR即为逻辑异或运算结果的编码序列。
所述第iv步中的二值图像的逻辑差运算的计算方法(方法F),其具体步骤如下:
(F.1)令QA和QB分别为进行逻辑差运算IASUBIB的二值图像IA和IB对应的编码序列;初始化一个空的编码序列QR;
(F.2)置qA为QA中的第一个节点编码,qB为QB中的第一个节点编码;
(F.3)若qA.u=FALSE且qB.u=FALSE,则将qA加在QR的尾部,置qA为QA中的下一个节点编码,置qB为QB中的下一个节点编码;
(F.4)否则,若qA.u=TRUE且qA.c=FALSE,则将qA加在QR的尾部,置qA为QA中的下一个节点编码,置qB为QB中下一个满足level≤qB.level的节点编码;
(F.5)否则,若qA.u=TRUE且qA.c=TRUE,则将qB以及QB中紧跟在qB之后且level>qB.level的节点编码的区域颜色标记c取逻辑非后再依次加在QR的尾部,置qA为QA中的下一个节点编码,置qB为QB中下一个满足level≤qB.level的节点编码;
(F.6)否则,若qB.c=FALSE,则将qA以及QA中紧跟在qA之后且level>qA.level的节点编码依次加在QR的尾部,置qB为QB中的下一个节点编码,置qA为QA中下一个满足level≤qA.level的节点编码;
(F.7)否则,将qB的区域颜色标记c取逻辑非后再加在QR的尾部,置qB为QB中的下一个节点编码,置qA为QA中下一个满足level≤qA.level的节点编码;
(F.8)当QA和QB均被遍历完成,则运算结束,QR即为逻辑差运算结果的编码序列。
所述第v步中的编码序列解码方法(方法G),其具体步骤如下:
(G.1)令Q为待解码的编码序列;初始化一个空的堆栈结构S;
(G.2)产生只包含根节点的四叉树T,将根节点压入S;置q为Q中的第一个节点编码;
(G.3)若S非空,则从S中弹出栈顶的四叉树节点n,至(G.4);否则至(G.6);
(G.4)若q.u=FALSE,则为n产生4个四叉树的子节点,并按照在产生编码序列时所采用的深度优先方法中访问这些子节点的顺序的逆序,将这些子节点压入S;置q为Q中的下一个节点编码;至(G.3);
(G.5)否则,将n的颜色标记为q.c;置q为Q中的下一个节点编码;至(G.3);
(G.6)根据所得的四叉树T重构对应的二值图像I,I即为Q的解码结果图像。
综上所述,本发明所提供的方法,能够通过二值图像的四叉树表示及编码,实现二值图像的压缩,同时在这一编码方式的基础上,通过对编码本身进行简单运算来替代大量图像像素点的串行逻辑操作,可以加快运算速度,能够使大量大尺寸二值图像的多次逻辑运算得到高效地执行。
附图说明
图1为本发明中所提方法的总体流程框图;
图2为四叉树基本构造原理的示意图;
图3为一幅示例二值图像及其所对应的正方形区域划分和四叉树结构示意图;
图4为所述的四叉树节点编码的一种推荐的编码方式;
图5为图3所示的示例四叉树的分层以及其中两个节点的编码值;
图6为图3所示的示例四叉树在产生编码序列时进行深度优先的搜索过程中节点的访问顺序。
具体实施方式
以下将结合附图和具体实施例对本发明做进一步详细说明。
本发明所提方法的总体流程框图如图1所示。
本发明中的二值图像的编码是基于四叉树结构的。四叉树的基本构造原理示意图如图2所示。它通过不断将正方形区域分为四等份来进行构造,四等分前的正方形区域成为四叉树中的一个节点,而四等分后的各个正方形子区域成为前述节点的四个子节点。正方形区域的划分将一直进行到每个划分出来的区域中都仅包含相同颜色为止。划分所得的各个单一颜色的正方形子区域构成了四叉树的各个叶节点,而包含不止一种颜色的正方形子区域构成了四叉树的各个中间节点。原始大小的正方形二值图像构成了四叉树的根节点。如图3所示即为一幅示例二值图像及其对应的正方形划分和四叉树结构。在四叉树中,圆圈表示根节点和中间节点,方块表示叶节点,方块的颜色表示该叶节点所对应的正方形图像子区域的颜色。
对四叉树中的每个节点,我们将其进行编码。每个节点编码包括u、c和level三个信息,u=1表示该节点对应的正方形区域为单色区域,这也意味着该节点不包含子节点,而u=0表示该节点对应的正方形区域并非单色区域,因此也一定具有4个子节点;当u=1时,c表示了该节点对应的正方形区域的颜色,c=1表明该区域内的像素值均为逻辑1,而c=0表明该区域内的像素值均为逻辑0;level表示了该节点在四叉树中所处的层数,根节点的层数为第0层,子节点的层数比父节点的层数高1层。如图4所示即为一种推荐的具体编码方式,其中,每个节点编码由1个字节构成,该字节的最高位存储节点的u值,次高位存储节点的c值,而低6位存储节点的level值。如图5所示为使用这种方式进行节点编码的示例,其中,图3中的示例图像的四叉树是一个具有4层(第0层到第3层)的树,以其中的两个节点为例来说明图4给出的编码方式:对于第1层中的中间节点,u=0,c=0,level=1,因此这个节点的编码值为(00000001)2=(1)10;对于第3层中的叶节点,u=1,c=0,level=3,因此这个节点的编码值为(10000011)2=(131)10。
在进行整个二值图像的编码时,对该二值图像的四叉树进行深度优先的搜索。如图6所示即为对图3中的示例图像的四叉树进行深度有限搜索时,各个节点被访问的顺序。根据这个顺序以及各个节点的编码,可以构成图3中的示例图像的编码序列为:(0,1,194,194,194,2,195,131,131,131,193,1,194,2,131,131,131,195,194,2,195,131,195,195,1,130,194,2,131,195,195,195,194)。
在实施例中,利用C++实现了本发明所提方法,以及通过逐像素逻辑操作实现的二值图像的或运算、与运算、异或运算和逻辑差运算,并在20组、每组2幅共40幅大小为2576×1932的图像上进行了实验。参与运算的图像均为可能包含人工建筑的自然场景,在经过阈值分割后,利用半径为3像素的圆盘状结构元素,对分割后的二值图像进行了数学形态学开运算和闭运算,以去除过于细小的噪声性区域和孔洞;然后在处理后的二值图像上分别进行所述的逻辑与运算、逻辑或运算、逻辑异或运算、逻辑差运算和逻辑非运算。进行实验的计算机的软硬件环境为:2.60GHzCPU;3.46GBRAM;MicrosoftWindowsXPProfessionalSP3。每组图像上进行20轮逻辑计算,每轮逻辑计算包括逻辑与运算、逻辑或运算、逻辑异或运算、逻辑差运算和逻辑非运算各1次。本发明所提方法的每轮运算的平均运行时间为5.51ms,而作为对比,逐像素操作方法的每轮运算平均运行时间为28.46ms,而另一种由Spiliotis和Mertzios提出的基于分块表示的二值图像逻辑运算方法(请参见“I.M.Spiliotis,B.G.Mertzios.Fastalgorithmsforbasicprocessingandanalysisoperationsonblock-representedbinaryimages.PatternRecognitionLetters,1996,17:1437-1450”)的每轮运算平均运行时间为5225.35ms。可见本发明所提方法显著提高了所涉的二值图像的基本逻辑运算速度。此外,四叉树本身也是二值图像的一种压缩表示方法,因此相应的编码序列所需的空间一般也少于原始的二值图像。因此本发明所提方法从时间和空间均提高了二值图像的基本逻辑运算的效率。
Claims (8)
1.一种基于四叉树的二值图像编码和高效逻辑运算的方法;本发明所提出的方法包括以下步骤:
i.将二值图像IO扩充为边长等于2N的正方形图像I,其中H和W分别为IO的高和宽,表示向下取整操作;扩充方法是在IO的下方增加2N-H行,增加的行中的像素值全部为逻辑0,即黑色点;然后再在进行了上述行扩充之后的图像的右方增加2N-W列,增加的列中的像素值也全部为逻辑0;
ii.将I转换为基于四叉树的编码序列Q;
iii.将需要进行的二值图像逻辑操作转换为一系列二值图像的基本逻辑运算,即具有两个操作数的基本二元逻辑运算,包括逻辑与运算AND、逻辑或运算OR、逻辑异或运算XOR和逻辑差运算SUB,以及具有单个操作数的基本一元逻辑运算,即逻辑反运算NOT;对于二值图像I,其逻辑非运算NOT的结果是一幅与I相同大小的二值图像IR,即IR=NOTI,其中
IR(i,j)=!I(i,j),!表示单个逻辑变量的逻辑非运算;
对于二值图像IA和IB,其二元逻辑运算的结果是一幅相同大小的二值图像IR,其中每个像素点处的值由IA和IB相应位置上的像素点值的逻辑运算所决定;对逻辑与运算AND,有IR=IAANDIB,其中
IR(i,j)=IA(i,j)&IB(i,j),&表示单个逻辑变量的逻辑与运算;
对逻辑或运算OR,有IR=IAORIB,其中
IR(i,j)=IA(i,j)|IB(i,j),|表示单个逻辑变量的逻辑或运算;
对逻辑异或运算XOR,有IR=IAXORIB,其中
IR(i,j)=[IA(i,j)&IB(i,j)]|[!IA(i,j)&!IB(i,j)];
对逻辑差运算SUB,有IR=IASUBIB,其中
IR(i,j)=IA(i,j)&!IB(i,j);
各式中i、j的取值范围为0≤i,j<2N;
iv.在参与所需逻辑运算的各幅二值图像的基于四叉树的编码序列上,完成各个基本逻辑运算,即逻辑非运算、逻辑与运算、逻辑或运算、逻辑异或运算与逻辑差运算,得到结果编码序列QR;
v.根据QR解码得到2N×2N大小的扩充后的结果二值图像,然后截取扩充后的结果二值图像上部的H行和左侧的W列构成的子图像,即为最终的结果二值图像。
2.根据权利要求1所述的一种基于四叉树的二值图像编码和高效逻辑运算的方法,其特征在于,第ii步中的二值图像编码方法包含如下步骤:
a.构造经过了扩充的二值图像I的四叉树T;
b.从T的根节点开始,按深度优先的方式遍历T;
c.对遍历过程中访问的每个T的节点进行编码,每个节点的编码包含如下信息:表示该节点对应的图像区域是否为单一颜色区域的标记u,表示该节点对应的图像区域的颜色的标记c,以及该节点在T中所处的层数level;针对上述节点信息,一种推荐的编码方式如下:对每个节点使用1个字节进行编码,该字节的最高位表示u,当该节点对应的图像区域只包含一种颜色时,u=TRUE,否则u=FALSE;该字节的次高位表示c,当u=TRUE且该节点对应的图像区域的颜色为白色时,c=TRUE,否则当u=TRUE且该节点对应的图像区域的颜色为黑色时,c=FALSE,否则当u=FALSE时,c的取值不起作用;该字节的低6位以整型值方式给出该节点的level,根节点的level=0,子节点的level=其父节点的level+1;
d.在T的遍历完成后,按T中各节点在遍历过程中被访问的先后次序,将它们对应的编码排列为一个字节串,便得到了二值图像的编码序列Q。
3.根据权利要求1所述的一种基于四叉树的二值图像编码和高效逻辑运算的方法,其特征在于,第iv步中的基于编码序列的二值图像逻辑非运算的计算方法包含如下步骤:
a.令Q为进行逻辑非运算NOTI的二值图像I对应的编码序列;初始化一个空的编码序列QR;
b.从Q的第一个节点编码开始依次遍历Q;
c.令q为Q中的当前节点编码,qR为当前节点的运算结果编码;如果q.u=FALSE,则置qR=q;否则,置qR.u=TRUE,qR.c=!q.c,qR.level=q.level;将q加在QR在尾部;
d.当Q遍历完成后,QR即为逻辑非运算结果的编码序列。
4.根据权利要求1所述的一种基于四叉树的二值图像编码和高效逻辑运算的方法,其特征在于,第iv步中的基于编码序列的二值图像逻辑与运算的计算方法包含如下步骤:
a.令QA和QB分别为进行逻辑与运算IAANDIB的二值图像IA和IB对应的编码序列;初始化一个空的编码序列QR;
b.置qA为QA中的第一个节点编码,qB为QB中的第一个节点编码;
c.若qA.u=FALSE且qB.u=FALSE,则将qA加在QR的尾部,置qA为QA中的下一个节点编码,置qB为QB中的下一个节点编码;
d.否则,若qA.u=TRUE且qA.c=TRUE,则将qB以及QB中紧跟在qB之后且level>qB.level的节点编码依次加在QR的尾部,置qA为QA中的下一个节点编码,置qB为QB中下一个满足level≤qB.level的节点编码;
e.否则,若qA.u=TRUE且qA.c=FALSE,则将qA加在QR的尾部,置qA为QA中的下一个节点编码,置qB为QB中下一个满足level≤qB.level的节点编码;
f.否则,若qB.c=TRUE,则将qA以及QA中紧跟在qA之后且level>qA.level的节点编码依次加在QR的尾部,置qB为QB中的下一个节点编码,置qA为QA中下一个满足level≤qA.level的节点编码;
g.否则,将qB加在QR的尾部,置qB为QB中的下一个节点编码,置qA为QA中下一个满足level≤qA.level的节点编码;
h.当QA和QB均被遍历完成,则运算结束,QR即为逻辑与运算结果的编码序列。
5.根据权利要求1所述的一种基于四叉树的二值图像编码和高效逻辑运算的方法,其特征在于,第iv步中的基于编码序列的二值图像逻辑或运算的计算方法包含如下步骤:
a.令QA和QB分别为进行逻辑或运算IAORIB的二值图像IA和IB对应的编码序列;初始化一个空的编码序列QR;
b.置qA为QA中的第一个节点编码,qB为QB中的第一个节点编码;
c.若qA.u=FALSE且qB.u=FALSE,则将qA加在QR的尾部,置qA为QA中的下一个节点编码,置qB为QB中的下一个节点编码;
d.否则,若qA.u=TRUE且qA.c=FALSE,则将qB以及QB中紧跟在qB之后且level>qB.level的节点编码依次加在QR的尾部,置qA为QA中的下一个节点编码,置qB为QB中下一个满足level≤qB.level的节点编码;
e.否则,若qA.u=TRUE且qA.c=TRUE,则将qA加在QR的尾部,置qA为QA中的下一个节点编码,置qB为QB中下一个满足level≤qB.level的节点编码;
f.否则,若qB.c=FALSE,则将qA以及QA中紧跟在qA之后且level>qA.level的节点编码依次加在QR的尾部,置qB为QB中的下一个节点编码,置qA为QA中下一个满足level≤qA.level的节点编码;
g.否则,将qB加在QR的尾部,置qB为QB中的下一个节点编码,置qA为QA中下一个满足level≤qA.level的节点编码;
h.当QA和QB均被遍历完成,则运算结束,QR即为逻辑或运算结果的编码序列。
6.根据权利要求1所述的一种基于四叉树的二值图像编码和高效逻辑运算的方法,其特征在于,第iv步中的基于编码序列的二值图像逻辑异或运算的计算方法包含如下步骤:
a.令QA和QB分别为进行逻辑异或运算IAXORIB的二值图像IA和IB对应的编码序列;初始化一个空的编码序列QR;
b.置qA为QA中的第一个节点编码,qB为QB中的第一个节点编码;
c.若qA.u=FALSE且qB.u=FALSE,则将qA加在QR的尾部,置qA为QA中的下一个节点编码,置qB为QB中的下一个节点编码;
d.否则,若qA.u=TRUE且qA.c=FALSE,则将qB以及QB中紧跟在qB之后且level>qB.level的节点编码依次加在QR的尾部,置qA为QA中的下一个节点编码,置qB为QB中下一个满足level≤qB.level的节点编码;
e.否则,若qA.u=TRUE且qA.c=TRUE,则将qB以及QB中紧跟在qB之后且level>qB.level的节点编码的区域颜色标记c取逻辑非后再依次加在QR的尾部,置qA为QA中的下一个节点编码,置qB为QB中下一个满足level≤qB.level的节点编码;
f.否则,若qB.c=FALSE,则将qA以及QA中紧跟在qA之后且level>qA.level的节点编码依次加在QR的尾部,置qB为QB中的下一个节点编码,置qA为QA中下一个满足level≤qA.level的节点编码;
g.否则,将qA以及QA中紧跟在qA之后且level>qA.level的节点编码的区域颜色标记c取逻辑非后再依次加在QR的尾部,置qB为QB中的下一个节点编码,置qA为QA中下一个满足level≤qA.level的节点编码;
h.当QA和QB均被遍历完成,则运算结束,QR即为逻辑异或运算结果的编码序列。
7.根据权利要求1所述的一种基于四叉树的二值图像编码和高效逻辑运算的方法,其特征在于,第iv步中的基于编码序列的二值图像逻辑差运算的计算方法包含如下步骤:
a.令QA和QB分别为进行逻辑差运算IASUBIB的二值图像IA和IB对应的编码序列;初始化一个空的编码序列QR;
b.置qA为QA中的第一个节点编码,qB为QB中的第一个节点编码;
c.若qA.u=FALSE且qB.u=FALSE,则将qA加在QR的尾部,置qA为QA中的下一个节点编码,置qB为QB中的下一个节点编码;
d.否则,若qA.u=TRUE且qA.c=FALSE,则将qA加在QR的尾部,置qA为QA中的下一个节点编码,置qB为QB中下一个满足level≤qB.level的节点编码;
e.否则,若qA.u=TRUE且qA.c=TRUE,则将qB以及QB中紧跟在qB之后且level>qB.level的节点编码的区域颜色标记c取逻辑非后再依次加在QR的尾部,置qA为QA中的下一个节点编码,置qB为QB中下一个满足level≤qB.level的节点编码;
f.否则,若qB.c=FALSE,则将qA以及QA中紧跟在qA之后且level>qA.level的节点编码依次加在QR的尾部,置qB为QB中的下一个节点编码,置qA为QA中下一个满足level≤qA.level的节点编码;
g.否则,将qB的区域颜色标记c取逻辑非后再加在QR的尾部,置qB为QB中的下一个节点编码,置qA为QA中下一个满足level≤qA.level的节点编码;
h.当QA和QB均被遍历完成,则运算结束,QR即为逻辑差运算结果的编码序列。
8.根据权利要求1所述的一种基于四叉树的二值图像编码和高效逻辑运算的方法,其特征在于,第v步中的编码序列的解码方法包含如下步骤:
a.令Q为待解码的编码序列;初始化一个空的堆栈结构S;
b.产生只包含根节点的四叉树T,将根节点压入S;置q为Q中的第一个节点编码;
c.若S非空,则从S中弹出栈顶的四叉树节点n,至d;否则至f;
d.若q.u=FALSE,则为n产生4个四叉树的子节点,并按照在产生编码序列时所采用的深度优先方法中访问这些子节点的顺序的逆序,将这些子节点压入S;置q为Q中的下一个节点编码;至c;
e.否则,将n的颜色标记为q.c;置q为Q中的下一个节点编码;至c;
f.根据所得的四叉树T重构对应的二值图像I,I即为Q的解码结果图像。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610002978.0A CN105608713B (zh) | 2016-01-04 | 2016-01-04 | 一种基于四叉树的二值图像编码与高效逻辑运算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610002978.0A CN105608713B (zh) | 2016-01-04 | 2016-01-04 | 一种基于四叉树的二值图像编码与高效逻辑运算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105608713A true CN105608713A (zh) | 2016-05-25 |
CN105608713B CN105608713B (zh) | 2018-11-16 |
Family
ID=55988628
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610002978.0A Active CN105608713B (zh) | 2016-01-04 | 2016-01-04 | 一种基于四叉树的二值图像编码与高效逻辑运算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105608713B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106604033A (zh) * | 2017-02-24 | 2017-04-26 | 湖南大学 | 图像编码与逻辑运算方法及装置 |
CN107193923A (zh) * | 2017-05-16 | 2017-09-22 | 中国科学院遥感与数字地球研究所 | 一种二维地理空间快速矢量叠加的方法及系统 |
CN108648275A (zh) * | 2018-05-10 | 2018-10-12 | 四川省冶地工程勘察设计有限公司 | 城市变化立体遥感影像匹配可疑区域自动化检验方法 |
CN109308300A (zh) * | 2018-09-27 | 2019-02-05 | 上海达梦数据库有限公司 | 一种逻辑运算的处理方法、装置、转换插件及存储介质 |
CN118135578A (zh) * | 2024-05-10 | 2024-06-04 | 沈阳出版社有限公司 | 一种基于图文识别后的文字学习校对系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102724508A (zh) * | 2012-06-07 | 2012-10-10 | 西安电子科技大学 | Jpeg2000的分辨率自适应节点树编码方法 |
CN104134224A (zh) * | 2014-07-25 | 2014-11-05 | 华南理工大学 | 一种形状自适应编码的证件照片压缩方法 |
KR20150062131A (ko) * | 2013-11-28 | 2015-06-05 | 가부시키가이샤 스크린 홀딩스 | 데이터 연산 방법, 데이터 연산 장치 및 결함 검사 장치 |
CN105046632A (zh) * | 2015-06-29 | 2015-11-11 | 湖南大学 | 时空高效的二值图像二元逻辑运算方法 |
-
2016
- 2016-01-04 CN CN201610002978.0A patent/CN105608713B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102724508A (zh) * | 2012-06-07 | 2012-10-10 | 西安电子科技大学 | Jpeg2000的分辨率自适应节点树编码方法 |
KR20150062131A (ko) * | 2013-11-28 | 2015-06-05 | 가부시키가이샤 스크린 홀딩스 | 데이터 연산 방법, 데이터 연산 장치 및 결함 검사 장치 |
CN104134224A (zh) * | 2014-07-25 | 2014-11-05 | 华南理工大学 | 一种形状自适应编码的证件照片压缩方法 |
CN105046632A (zh) * | 2015-06-29 | 2015-11-11 | 湖南大学 | 时空高效的二值图像二元逻辑运算方法 |
Non-Patent Citations (5)
Title |
---|
DEBRANJAN SARKAR,NISHIT GUPTA: "Operations on binary images represented by interpolation", 《PATTERN RECOGNITION LETTERS》 * |
KUO—LIANG CHUNG,JUNG—GEN WUT: "FAST IMPLEMENTATIONS FOR MIRRORING AND ROTATING BINCODE—BASED IMAGES", 《PATTERN RECOGNITION》 * |
张立保等: "一种结合最优缩放框架与四叉树分割的图像编码算法", 《光学学报》 * |
王相海等: "四叉树分块的高光谱图像分布式无损编码", 《中国图象图形学报》 * |
赵翠芳等: "基于四叉树和偏微分方程的灰度图像压缩", 《光学技术》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106604033A (zh) * | 2017-02-24 | 2017-04-26 | 湖南大学 | 图像编码与逻辑运算方法及装置 |
CN106604033B (zh) * | 2017-02-24 | 2019-09-17 | 湖南大学 | 图像编码与逻辑运算方法及装置 |
CN107193923A (zh) * | 2017-05-16 | 2017-09-22 | 中国科学院遥感与数字地球研究所 | 一种二维地理空间快速矢量叠加的方法及系统 |
CN108648275A (zh) * | 2018-05-10 | 2018-10-12 | 四川省冶地工程勘察设计有限公司 | 城市变化立体遥感影像匹配可疑区域自动化检验方法 |
CN109308300A (zh) * | 2018-09-27 | 2019-02-05 | 上海达梦数据库有限公司 | 一种逻辑运算的处理方法、装置、转换插件及存储介质 |
CN109308300B (zh) * | 2018-09-27 | 2021-11-12 | 上海达梦数据库有限公司 | 一种逻辑运算的处理方法、装置、转换插件及存储介质 |
CN118135578A (zh) * | 2024-05-10 | 2024-06-04 | 沈阳出版社有限公司 | 一种基于图文识别后的文字学习校对系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105608713B (zh) | 2018-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105608713A (zh) | 一种基于四叉树的二值图像编码与高效逻辑运算方法 | |
US11089316B2 (en) | Method and apparatus for decoding a received set of encoded data | |
Ye et al. | 3d depthwise convolution: Reducing model parameters in 3d vision tasks | |
US20130046793A1 (en) | Fast matching of image features using multi-dimensional tree data structures | |
CN112084923B (zh) | 一种遥感图像语义分割方法、存储介质及计算设备 | |
CN107871306B (zh) | 一种图片去噪的方法和装置 | |
Chen et al. | Coarsening the granularity: Towards structurally sparse lottery tickets | |
CN111260784B (zh) | 一种城市三维空间网格压缩编码方法、装置及终端设备 | |
CN105204920B (zh) | 一种基于映射聚合的分布式计算作业的实现方法及装置 | |
CN112037228A (zh) | 一种基于双倍注意力的激光雷达点云目标分割方法 | |
WO2019076177A1 (zh) | 基因测序数据压缩预处理、压缩、解压方法、系统及计算机可读介质 | |
KR20180077060A (ko) | 화소들의 리스트들을 인코딩 및 디코딩하는 방법 및 장치 | |
CN112884120A (zh) | 图神经网络表示架构 | |
CN110097581B (zh) | 基于点云配准icp算法构建k-d树的方法 | |
CN105046632A (zh) | 时空高效的二值图像二元逻辑运算方法 | |
Banaeyan et al. | Parallel O (log (n)) computation of the adjacency of connected components | |
CN102075283A (zh) | 一种信息隐写方法及装置 | |
Yin et al. | Quadtree representation and compression of spatial data | |
Berciano et al. | Searching high order invariants in computer imagery | |
CN113743593B (zh) | 神经网络量化方法、系统、存储介质及终端 | |
CN113378722B (zh) | 基于3d卷积和多级语义信息融合的行为识别方法及系统 | |
CN111159200B (zh) | 一种基于深度学习的数据存储方法和装置 | |
CN108092670A (zh) | 编码方法和装置 | |
Huang et al. | GraNet: Global relation-aware attentional network for ALS point cloud classification | |
CN117953175B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |