CN105516540B - 二值图像的压缩方法及装置 - Google Patents
二值图像的压缩方法及装置 Download PDFInfo
- Publication number
- CN105516540B CN105516540B CN201510927586.0A CN201510927586A CN105516540B CN 105516540 B CN105516540 B CN 105516540B CN 201510927586 A CN201510927586 A CN 201510927586A CN 105516540 B CN105516540 B CN 105516540B
- Authority
- CN
- China
- Prior art keywords
- subgraph
- swimming
- difference
- calculating
- value
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/41—Bandwidth or redundancy reduction
- H04N1/411—Bandwidth or redundancy reduction for the transmission or storage or reproduction of two-tone pictures, e.g. black and white pictures
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明实施例提供了一种二值图像的压缩方法及装置,应用于图像压缩领域。该方法包括:将待压缩的二值图像分割为多个相同大小的计算子图像;按照预定顺序判断每个所述计算子图像为单色图像还是分割图像,根据计算子图像的类别进行编码,获得每个计算子图像对应的ASCII编码;对每个所述计算子图像的ASCII编码进行霍夫曼编码,得到所述待压缩的二值图像的压缩数据。
Description
技术领域
本发明涉及图像压缩领域,具体而言,涉及一种二值图像的压缩方法及装置。
背景技术
二值图像是图像上的每一个像素只有两种可能的取值状态,从颜色上来说,每个像素点不是黑就是白。二值图像是一种常用的图像表现方式,在二值图像所占内存较大时,涉及到其传输、存储等操作时,常需要将其压缩。比如在PCB板制作过程中,需要将电子线路档案二值化才能被LDI设备使用或其他方式用于PCB板制作。但通常要制作的电子线路的图形文件都很大,二值化以后仍然要占用很大的空间,如果不压缩,无论是读取使用还是存储、传输都很耗时,很不方便。现有的压缩方法多是将数据的二进制代码的重复部分在一定的规则下以更精简的代码进行替代,实现数据的压缩,压缩比低。
发明内容
有鉴于此,本发明实施例提供了一种二值图像的压缩方法及装置,充分利用二值化图像中只可能有两种像素值的特点,对图像进行编码压缩,提高了压缩比。
为了实现上述目的,本发明采用的技术方案如下:
一种二值图像的压缩方法,包括:将待压缩的二值图像分割为多个相同大小的计算子图像;按照预定顺序判断每个所述计算子图像为单色图像还是分割图像,若所述计算子图像中的所有像素点的值均相同,则判定该计算子图像为单色图像,用该计算子图像中的像素点的值表示该计算子图像,其中,该计算子图像中的像素点的值对应于一组ASCII编码,若所述计算子图像中存在一个封闭的多边形图案,则判定该计算子图像为分割图像,记录所述封闭的多边形图案的顶点坐标,其中,所述封闭的多边形的内部的所有像素点的值和外部的所有像素点的值不同,所述多个顶点坐标对应于另一组ASCII编码,若所述计算子图像既不是单色图像也不是分割图像,对该计算子图像中其中一种值的像素点进行游程编码,并且计算该计算子图像中相邻两个游程之间的差值,得到多个游程差,其中,所述多个游程差对应于又一组ASCII编码;对每个所述计算子图像的ASCII编码进行霍夫曼编码,得到所述待压缩的二值图像的压缩数据。
一种二值图像的压缩装置,包括:图像分割模块,用于将待压缩的二值图像分割为多个相同大小的计算子图像;判定模块,若所述计算子图像中的所有像素点的值均相同,用于判定该计算子图像为单色图像,若所述计算子图像中存在一个封闭的多边形图案,用于判定该计算子图像为分割图像;编码模块:用于用为单色图像的计算子图像中的像素点的值表示该计算子图像,其中,该计算子图像中的像素点的值对应于一组ASCII编码,编码模块还用于记录分割图像中封闭的多边形图案的顶点坐标,其中,所述封闭的多边形的内部的所有像素点的值和外部的所有像素点的值不同,所述多个顶点坐标对应于另一组ASCII编码,若计算子图像既不是单色图像也不是分割图像,编码模块还用于对该计算子图像中其中一种值的像素点进行游程编码,并且计算该计算子图像中相邻两个游程之间的差值,得到多个游程差,其中,所述多个游程差对应于又一组ASCII编码;霍夫曼编码模块,用于对每个所述计算子图像的ASCII编码进行霍夫曼编码,得到所述待压缩的二值图像的压缩数据。
与现有技术相比,本发明实施例提供的二值图像的压缩方法及装置,将二值图像分割为多个计算子图像,根据二值图像的特点及像素点分布特点,若计算子图像是单色图像,直接利用单色图像的像素点值表示该计算子图像,于是一个像素点值便可表示一个计算子图像,并且将该像素点值对应的ASCII编码进行霍夫曼编码;若计算子图像是简单分割图像,则将该计算子图像中同一像素点值的像素点形成的多边形图案的顶点对应的ASCII编码进行霍夫曼编码,于是,几个顶点的编码便可表示具有多个像素点的一个子图像的;若计算子图像不是前两种情形,则对其中一种像素点值的像素点进行游程编码,于是多个像素点可以用一个游程表示,一个子图像中存在多个游程,用该子图像的游程差对应的ASCII编码进行霍夫曼编码来编码该计算图像。
对所有计算子图像进行编码后,可以有效提高该待压缩的二值图像所占用的内存空间,提高压缩比。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明较佳实施例提供的二值图像压缩装置的方框示意图;
图2示出了本发明第一实施例提供的二值图像的压缩方法的流程图;
图3示出了本发明第一实施例提供的一种为分割图像的计算子图像的示意图;
图4示出了本发明第一实施例提供的既不是单色图像也不是分割图像的计算子图像的示意图;
图5示出了本发明第一实施例提供的数字符号和标点符号对应的霍夫曼编码及相应的霍夫曼编码的码长;
图6示出了本发明第二实施例提供的二值图像的压缩装置的一种结构框图;
图7示出了本发明第二实施例提供的二值图像的压缩装置的另一种结构框图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
如图1所示,是本发明较佳实施例提供的服务器/计算机的方框示意图。所述服务器/计算机包括二值图像的压缩装置、存储器301、存储控制器302、处理器、外设接口。
所述存储器301、存储控制器302、处理器303、外设接口304各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述二值图像的压缩装置包括至少一个可以软件或固件(firmware)的形式存储于所述存储器301中的软件功能模块。所述处理器303用于执行存储器301中存储的可执行模块,例如所述二值图像的压缩装置包括的软件功能模块或计算机程序。
其中,存储器301可以是,但不限于,随机存取存储器301(Random Access Memory,RAM),只读存储器301(Read Only Memory,ROM),可编程只读存储器301(ProgrammableRead-Only Memory,PROM),可擦除只读存储器301(Erasable Programmable Read-OnlyMemory,EPROM),电可擦除只读存储器301(Electric Erasable Programmable Read-OnlyMemory,EEPROM)等。其中,存储器301用于存储程序,所述处理器303在接收到执行指令后,执行所述程序,本发明实施例任一实施例揭示的流过程定义的服务器/计算机所执行的方法可以应用于处理器303中,或者由处理器303实现。
处理器303可能是一种集成电路芯片,具有信号的处理能力。上述的处理器303可以是通用处理器303,包括中央处理器303(Central Processing Unit,简称CPU)、网络处理器303(Network Processor,简称NP)等;还可以是数字信号处理器303(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器303可以是微处理器303或者该处理器303也可以是任何常规的处理器303等。
所述外设接口304将各种输入/输入装置耦合至处理器303以及存储器301。在一些实施例中,外设接口304,处理器303以及存储控制器302可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
第一实施例
如图2所示,本发明实施例中提供的二值图像的压缩方法,包括:
步骤S110:将待压缩的二值图像分割为多个相同大小的计算子图像。
在本实施例中,待压缩的图像为二值图像,即只有两种像素点值的图像,也就是只具有两种灰度级的图像,对应的颜色分别为黑色和白色。其中,两种像素点值常分别用“0”、“1”表示,0对应白色,1对应黑色。
在本实施例中,先将待压缩的二值图像分割为多个较小的计算子图像,以根据不同计算子图像中像素点的颜色分布特点进行编码。
根据待压缩的二值图像的大小,分割成的计算子图像的大小可以是64*64、128*128或者256*256,当然,计算子图像也可以是其他大小,计算子图像越小,压缩越快,但是压缩后的文件会相对更大。在本发明中计算子图像的大小选取并不做限制。
本实施例中,在步骤S110之前,还包括补齐图像。即设定计算子图像的大小后,
判断所述待压缩的二值图像的长是否为设定的计算子图像的长的整数倍,如果否,则将待压缩的二值图像的长补齐为所述计算子图像长的整数倍。
判断待压缩的二值图像的宽是否为计算子图像的宽的整数倍,如果否,则将所述待压缩的二值图像的宽补齐为所述计算子图像的宽的整数倍。
当然,在本实施例中,判断待压缩的二值图像的长是否为计算子图像的长的整数倍或者判断待压缩的二值图像的宽是否为计算子图像的宽的整数倍的判断顺序并不一定。
将待压缩的二值图像的长或者宽进行补齐,以保证分割后的每一个计算子图像都是设定的大小。
步骤S120:按照预定顺序判断每个所述计算子图像为单色图像还是分割图像,
若所述计算子图像中的所有像素点的值均相同,则判定该计算子图像为单色图像,用该计算子图像中的像素点的值表示该计算子图像,其中,该计算子图像中的像素点的值对应于一组ASCII编码,
若所述计算子图像中存在一个封闭的多边形图案,则判定该计算子图像为分割图像,记录所述封闭的多边形图案的顶点坐标,其中,所述封闭的多边形的内部的所有像素点的值和外部的所有像素点的值不同,所述多个顶点坐标对应于另一组ASCII编码,
若所述计算子图像既不是单色图像也不是分割图像,对该计算子图像中其中一种值的像素点进行游程编码,并且计算该计算子图像中相邻两个游程之间的差值,得到多个游程差,其中,所述多个游程差对应于又一组ASCII编码。
在步骤S110中分割的计算子图像按一定顺序排列,一般的,若待压缩的二值图像的大小为M*N,计算子图像的大小为m*n,则计算子图像在每一行有M/m个,每一列有N/n个。
在本步骤中,判断计算子图像为单色图像还是分割图像时,按照一定的顺序依次进行。如,可以是先从左到右对每一个计算子图像进行判断,判断完第一行的M/m个后再对第二行的计算子图像从左到右依次判断,以此类推,直到判断完所有的计算子图像。
如果某个计算子图像中的所有像素点的值均相同,即该就算子图像的像素点全部是黑色或者全部是白色,那么,判定该计算子图像则为单色图像。若该单色图像的像素点全为黑色,则用“1”表示该计算子图像;若该单色图像的像素点全为白色,则用“0”表示该计算子图像。在计算机中,不管是“0”还是“1”,都对应一组ASCII编码。
在本实施例中,如果某计算子图像中存在一个封闭的多边形图案,该封闭的多边形图案中的所有像素点的值一样,并且和该多边形图案外的所有像素点的值不一样,如图3所示,则判定该计算子图像为分割图像。具体的,可以是选取黑色像素点形成的边缘封闭的图案为多边形图案,该多边形图案外的所有像素点的颜色为白色,记录形成该多边形图案的顶点坐标。
在本实施例中,以一定顺序依次记录多边形图案的顶点坐标,记录顺序可以是使每两个相邻的顶点中位于由前一个顶点到后一个顶点的连线的左侧的像素点的值均为第一像素点值,第一像素点值可以是“1”,即由前一个顶点到后一个顶点的连线的左侧的像素点为黑色像素点,则由前一个顶点到后一个顶点的连线的右侧的像素点为白色像素点或者不存在像素点。
具体的,在图3中所标出的坐标为对应的内部为黑色像素点的封闭的多边形图案的顶点坐标,选定该多边形图案的一个顶点作为记录的起点,如(64,1),再选取该顶点相邻的一个顶点作为下一个记录的点,即从(1,1)和(64,64)中选取下一个记录的点。选取相邻点的原则为保证从记录的起点(64,1)到该相邻的顶点的方向上的左侧的像素点为黑色像素点,在图3中,由于从(64,1)到(64,64)的连续方向的左侧为黑色像素点为黑色像素点,则下一个记录的点为(64,64)。由于该多边形图案为封闭的,所以作为分割图像的图3的顶点记录顺序依次为(64,1)、(64,64)、(44,64)、(1,20)、(1,1),图3的顶点坐标记录为64016464644401200101,其中某个坐标值若不是两位数,则补齐为两位数,如1补齐为01。在计算机中,记录的顶点坐标64016464644401200101对应存在一组ASCII编码。
在本实施例中,如果某个计算子图像既不是单色图像也不是分割图像,则首先对该计算子图像中的具有某一像素点值的像素点进行游程编码,具体的,可以选取像素点值为“1”的黑色像素点。
具体的,依次将每一行的连续的多个具有第一像素点值的像素点作为一个游程,即将连续的多个黑色像素点作为一个游程,当然,如果某个黑色像素点为一个单独的黑色像素点,其前一个像素点不存在或者为白色,后一个像素点也为白色或者不存在,则将该一个单独的黑色像素点作为一个游程。
对每个游程的编码为,记录每个游程的第一个像素点的坐标和黑色像素点的个数,所述起点坐标包括横坐标和纵坐标,横坐标、纵坐标以及黑色像素点个数依次记录,具体记录方式可以是横坐标和纵坐标之间用“&”分开,纵坐标与像素点个数之间用“,”分隔,并且游程与游程之间游程编码用“;”分隔。请参见图4,其中图中横向和纵向的白色细线用于示意部分像素点的分割,图的边缘的虚线用于表示该图的边缘,图中的“12…64”表示行或者列的第一个像素点,第二给像素点,一直到第64个像素点。第一行的前两个黑色像素点作为一个游程,则该游程的游程编码为“1&1,2”。在图4中,第二行从该行的第一个像素点开始有连续的55个黑色像素点,第三行从该行的第一个像素点开始有连续的58个黑色像素点,则前三行存在三个游程,这三个游程的游程编码依次记录为“1&1,2;2&1,55;3&1,58;”。依次将该计算子图像中的所有黑色像素点游程编码。
进一步的,在本实施例中,对计算子图像进行游程编码后,计算该计算子图像中的相邻两个游程之间的差值,得到游程差。具体的,将该计算子图像中的多个游程的除第一个游程以外的每一个游程与对应的前一个游程记录的起点坐标的横坐标对应作差得到横坐标之差,纵坐标对应作差得到纵坐标之差,以及黑色像素点的个数对应作差得到具有第一像素点值的像素点个数之差,顺序记录的横坐标之差、纵坐标之差以及具有第一像素点值的像素点个数之差构成所述游程差。记录游程差时,第一个游程保持不变,后续依次为相邻游程的游程差。同样的,游程差里的横坐标之差与纵坐标之差之间用“&”分隔,纵坐标之差与具有第一像素点值的像素点的个数之差之间用“,”分隔,多个游程差的每两个游程差之间用“;”分隔。
例如,图4中的前三个游程中的每相邻两个游程作差的游程差记录为“1&1,2;1&0,53;1&0,3;”。
对不是单色图像也不是分割图像的计算子图像,得到的其所有游程的游程差编码对应存在一组ASCII编码。
当然,本实施例中也可以对白色像素点进行游程编码,从而获得白色像素点的游程差。具体对哪一种像素点值的像素点编码,在本发明实施例中并不作为限制。
在本实施例中,相邻两个计算子图像的ASCII编码之间可以用“|”分隔。
步骤S130:对每个所述计算子图像的ASCII编码进行霍夫曼编码,得到所述待压缩的二值图像的压缩数据。
在计算机中,每一个符号对应存在一个ASCII编码,图5的编码所示出的除“*”和“保留”以外的符号为本实施例提及到的具有ASCII编码的符号对应的霍夫曼编码以及相应的霍夫曼编码的码长。请参见图5,本实施例中所使用符号对应的ASCII编码比转为对应的霍夫曼编码的平均码长要长,故将ASCII转换为霍夫曼编码进行存储,进一步提高压缩率。
由于游程中的数字符号多为较大的数字符号,如“7”、“8”、“9”等,而作差后的游程差中的数字符号“7”、“8”、“9”很容易减小为“2”、“3”、“4”、“5”、“6”或者更小,请参见图5,“2”、“3”、“4”、“5”、“6”的霍夫曼编码的码长比“7”、“8”、“9”的短。故在步骤S120中,得到游程编码后再作游程差,以减小存储码长,从而减小存储容量,提高压缩比。
请参见图5,标点符号对应的霍夫曼编码的码长较大多数字符号的码长短,在图5中所有符号中最短的,故在步骤S120中,若多个计算子图像的后一个计算子图像与前一个计算子图像的ASCII编码一致,则将后一个计算子图像用“.”替代,以尽可能减小存储容量。
并且,若步骤S120中某个计算子图像中的相邻的两个游程差完全相同,则这两个相邻的游程差的后一个游程差用“=”替代,可以尽可能减小编码码长,从而减小存储容量。
进一步的,在本实施例中,为减小纯粹容量,若多个相同大小的计算子图像的长为L,宽为L,若所述顶点坐标中存在等于L的数值,将所述顶点坐标中的等于m的数值用“#”替代,若所述游程差中存在等于L的数值,所述游程差中等于m的数值用“#”替代。在坐标记录中,计算子图像的边长L出现的频率一般较高,且L通常为两位数或者三位数,将L用符号“#”替代,可以减小码长以减小存储容量,提高压缩比。
本发明实施例提供的方法,将待压缩的二值化图像分割为多个计算子图像,若计算子图像为单色图像,则用该计算子图像中的像素点的值表示该计算子图像,即可以用一个数字表示“1”或者“0”表示该单色图像,极大的减小了该计算子图像的存储容量;若计算子图像为分割图像,则将分割图像中的封闭的多边形图案的顶点进行编码以表示该计算子图像,于是一个计算子图像便可以只用几个数字表示;若计算子图像既不是单色图像也不是分割图像,则使用游程编码,使多个连续的同色像素点可以用一个游程表示,再将游程作差得到游程差,减小存储容量。再将表示计算子图像的数字或者其他符合用霍夫曼编码表示,得到待压缩的二值图像的压缩数据。本实施例中使用到的霍夫曼编码的码长都比相应的ASCII编码短,更加减小了存储容量。
在PCB(印制电路板)制造行业,由于用于制作PCB板的电路图为二值化后的二值图,且电路图中的图形比较简单和规律,多为直线、圆或孔洞等形状,无斑点状或碎片状等无规则小图形,故本发明实施例提供的方法极其适用于PCB(印制电路板)制造行业。
第二实施例
本实施例的一种实施方式提供了一种二值图像的压缩装置300,如图6所示,包括:图像分割模块200,用于将待压缩的二值图像分割为多个相同大小的计算子图像。
判定模块201,若所述计算子图像中的所有像素点的值均相同,用于判定该计算子图像为单色图像,若所述计算子图像中存在一个封闭的多边形图案,用于判定该计算子图像为分割图像。
编码模块202,用于用为单色图像的计算子图像中的像素点的值表示该计算子图像,其中,该计算子图像中的像素点的值对应于一组ASCII编码,编码模块还用于记录分割图像中封闭的多边形图案的顶点坐标,其中,所述封闭的多边形的内部的所有像素点的值和外部的所有像素点的值不同,所述多个顶点坐标对应于另一组ASCII编码,若计算子图像既不是单色图像也不是分割图像,编码模块还用于对该计算子图像中其中一种值的像素点进行游程编码,并且计算该计算子图像中相邻两个游程之间的差值,得到多个游程差,其中,所述多个游程差对应于又一组ASCII编码。
霍夫曼编码模块203,用于对每个所述计算子图像的ASCII编码进行霍夫曼编码,得到所述待压缩的二值图像的压缩数据。
如图7所示,在本实施例的另一种实施方式提供的一种二值图像的压缩装置400中,还包括判断模块204,用于判断所述待压缩的二值图像的长是否为所述计算子图像的长的整数倍,判断所述待压缩的二值图像的宽是否为所述计算子图像的宽的整数倍。
补齐模块205,如果所述待压缩的二值图像的长不是所述计算子图像的长的整数倍,则将所述待压缩的二值图像的长补齐为所述计算子图像长的整数倍;如果所述待压缩的二值图像的宽不是所述计算子图像的宽的整数倍,则将所述待压缩的二值图像的宽补齐为所述计算子图像的宽的整数倍。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器301(ROM,Read-Only Memory)、随机存取存储器301(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种二值图像的压缩方法,其特征在于,包括:
将待压缩的二值图像分割为多个相同大小的计算子图像;
按照预定顺序判断每个所述计算子图像为单色图像还是分割图像,
若所述计算子图像中的所有像素点的值均相同,则判定该计算子图像为单色图像,用该计算子图像中的像素点的值表示该计算子图像,其中,该计算子图像中的像素点的值对应于一组ASCII编码,
若所述计算子图像中存在一个封闭的多边形图案,则判定该计算子图像为分割图像,记录所述封闭的多边形图案的顶点坐标,其中,所述封闭的多边形的内部的所有像素点的值和外部的所有像素点的值不同,所述多个顶点坐标对应于另一组ASCII编码,
若所述计算子图像既不是单色图像也不是分割图像,对该计算子图像中其中一种值的像素点进行游程编码,并且计算该计算子图像中相邻两个游程之间的差值,得到多个游程差,其中,所述多个游程差对应于又一组ASCII编码;
对每个所述计算子图像的ASCII编码进行霍夫曼编码,得到所述待压缩的二值图像的压缩数据。
2.根据权利要求1所述的方法,其特征在于,所述将待压缩的二值图像分割为多个相同大小的计算子图像之前,包括:
设定所述计算子图像的大小,判断所述待压缩的二值图像的长是否为所述计算子图像的长的整数倍,如果否,则将所述待压缩的二值图像的长补齐为所述计算子图像长的整数倍;
判断所述待压缩的二值图像的宽是否为所述计算子图像的宽的整数倍,如果否,则将所述待压缩的二值图像的宽补齐为所述计算子图像的宽的整数倍。
3.根据权利要求1所述的方法,其特征在于,所述计算子图像中的所有像素点的值包括第一像素点值和第二像素点值,所述记录所述封闭的多边形的顶点坐标的步骤包括:
依次记录所述多个顶点坐标,使所述多个顶点中的每两个相邻的顶点中位于由前一个顶点到后一个顶点的连线的左侧的像素点的值均为第一像素点值。
4.根据权利要求1所述的方法,其特征在于,所述计算子图像中的所有像素点的值包括第一像素点值和第二像素点值,所述对该计算子图像中其中一种值的像素点进行游程编码,并且计算该计算子图像中相邻两个游程之间的差值,得到多个游程差的步骤,包括:
依次将每一行的连续的多个具有第一像素点值的像素点或者一个单独的具有第一像素点值的像素点作为一个游程,得到多个游程,记录每个游程的起点坐标和具有第一像素点值的像素点的个数,所述起点坐标包括横坐标和纵坐标;
将所述多个游程的除第一个游程以外的每一个游程与对应的前一个游程记录的起点坐标的横坐标对应作差得到横坐标之差,纵坐标对应作差得到纵坐标之差,以及具有第一像素点值的像素点个数对应作差得到具有第一像素点值的像素点个数之差,所述横坐标之差、纵坐标之差以及具有第一像素点值的像素点个数之差构成所述游程差。
5.根据权利要求4所述的方法,其特征在于,所述多个游程之间存在多个所述游程差,多个游程差中的每个游程差中依次包括横坐标之差,纵坐标之差以及具有第一像素点值的像素点的个数之差,
每个游程差中的横坐标之差与纵坐标之差之间用“&”分隔,所述纵坐标之差与具有第一像素点值的像素点的个数之差之间用“,”分隔,
所述多个游程差的每两个游程差之间用“;”分隔。
6.根据权利要求1所述的方法,其特征在于,若所述多个游程差中的后一个游程差与前一个游程差一致,则将后一个游程差用“=”替代。
7.根据权利要求1所述的方法,其特征在于,若所述多个计算子图像的后一个计算子图像与前一个计算子图像的ASCII编码一致,则所述后一个计算子图像用“.”替代。
8.根据权利要求1所述的方法,其特征在于,所述多个相同大小的计算子图像的长为m,宽为m,
若所述顶点坐标中存在等于m的数值,将所述顶点坐标中的等于m的数值用“#”替代,
若所述游程差中存在等于m的数值,所述游程差中等于m的数值用“#”替代。
9.根据权利要求1所述的方法,其特征在于,所述待压缩的二值图像为经二值化的用于制作PCB板的电路图。
10.一种二值图像的压缩装置,其特征在于,包括:
图像分割模块,用于将待压缩的二值图像分割为多个相同大小的计算子图像;
判定模块,若所述计算子图像中的所有像素点的值均相同,用于判定该计算子图像为单色图像,
若所述计算子图像中存在一个封闭的多边形图案,用于判定该计算子图像为分割图像;
编码模块,用于用为单色图像的计算子图像中的像素点的值表示该计算子图像,其中,该计算子图像中的像素点的值对应于一组ASCII编码,
编码模块还用于记录分割图像中封闭的多边形图案的顶点坐标,其中,所述封闭的多边形的内部的所有像素点的值和外部的所有像素点的值不同,所述多个顶点坐标对应于另一组ASCII编码,
若计算子图像既不是单色图像也不是分割图像,编码模块还用于对该计算子图像中其中一种值的像素点进行游程编码,并且计算该计算子图像中相邻两个游程之间的差值,得到多个游程差,其中,所述多个游程差对应于又一组ASCII编码;
霍夫曼编码模块,用于对每个所述计算子图像的ASCII编码进行霍夫曼编码,得到所述待压缩的二值图像的压缩数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510927586.0A CN105516540B (zh) | 2015-12-14 | 2015-12-14 | 二值图像的压缩方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510927586.0A CN105516540B (zh) | 2015-12-14 | 2015-12-14 | 二值图像的压缩方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105516540A CN105516540A (zh) | 2016-04-20 |
CN105516540B true CN105516540B (zh) | 2018-09-14 |
Family
ID=55724150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510927586.0A Active CN105516540B (zh) | 2015-12-14 | 2015-12-14 | 二值图像的压缩方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105516540B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107040791B (zh) * | 2017-04-06 | 2019-12-31 | 苏州工业职业技术学院 | 适用于电子显示标签的自适应二值图像压缩方法 |
CN107688812B (zh) * | 2017-08-25 | 2020-04-21 | 重庆慧都科技有限公司 | 一种基于机器视觉的食品生产日期喷墨字体修复方法 |
CN109819259A (zh) * | 2019-02-23 | 2019-05-28 | 东华理工大学 | 一种基于Huffman编码的图像再压缩处理方法 |
CN114745553A (zh) * | 2022-04-06 | 2022-07-12 | 郑州美初电子科技有限公司 | 一种基于大数据的图像数据存储方法 |
CN115157108A (zh) * | 2022-06-22 | 2022-10-11 | 北京烁科精微电子装备有限公司 | 一种滑片监测系统及监测方法 |
CN115270164B (zh) * | 2022-09-28 | 2022-12-13 | 佳卓智能科技(南通)有限责任公司 | 基于微服务架构的传输数据安全监测的方法 |
CN115622570B (zh) * | 2022-12-14 | 2023-02-21 | 山东融汇通达网络科技有限公司 | 一种数据高效存储方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1670763A (zh) * | 2004-03-15 | 2005-09-21 | 深圳矽感科技有限公司 | 一种二维条码及其编解码方法 |
CN101098473A (zh) * | 2006-06-30 | 2008-01-02 | 联想(北京)有限公司 | 一种图像编码方法及装置 |
CN101174328A (zh) * | 2006-11-01 | 2008-05-07 | 北京海尔集成电路设计有限公司 | 一种二值图像编解码方法 |
CN103795894A (zh) * | 2014-01-27 | 2014-05-14 | 西安电子科技大学 | 一种基于fpga的二值图像无损压缩与解压缩ip核及应用 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8345999B2 (en) * | 2005-12-15 | 2013-01-01 | Xerox Corporation | System and method for monochrome binary compression on legacy devices |
US20120063678A1 (en) * | 2010-09-14 | 2012-03-15 | Rovi Technologies Corporation | Geometric image compression |
-
2015
- 2015-12-14 CN CN201510927586.0A patent/CN105516540B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1670763A (zh) * | 2004-03-15 | 2005-09-21 | 深圳矽感科技有限公司 | 一种二维条码及其编解码方法 |
CN101098473A (zh) * | 2006-06-30 | 2008-01-02 | 联想(北京)有限公司 | 一种图像编码方法及装置 |
CN101174328A (zh) * | 2006-11-01 | 2008-05-07 | 北京海尔集成电路设计有限公司 | 一种二值图像编解码方法 |
CN103795894A (zh) * | 2014-01-27 | 2014-05-14 | 西安电子科技大学 | 一种基于fpga的二值图像无损压缩与解压缩ip核及应用 |
Non-Patent Citations (1)
Title |
---|
基于九宫格的二值图像压缩算法;曾党泉 等;《计算机应用与软件》;20150731;第32卷(第7期);259-261 * |
Also Published As
Publication number | Publication date |
---|---|
CN105516540A (zh) | 2016-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105516540B (zh) | 二值图像的压缩方法及装置 | |
TWI543083B (zh) | 產生二維條碼之方法 | |
KR101215987B1 (ko) | 전경/배경 분리 장치 및 방법 | |
EP3211900A1 (en) | Image coding method, decoding method, coding device and decoding device | |
CN111709883B (zh) | 一种图像检测方法、装置及设备 | |
JP2003523587A (ja) | ビジュアルアテンションシステム | |
US8831341B2 (en) | Image encoding using base colors on luminance line | |
CN110781740B (zh) | 一种视频画质识别方法、系统及设备 | |
CN114022790B (zh) | 遥感图像中云层检测及图像压缩方法、装置和存储介质 | |
JP6207634B2 (ja) | 画像拡大装置、画像拡大方法、及び監視カメラ、並びにプログラム及び記録媒体 | |
CN105828081B (zh) | 编码方法及编码装置 | |
TWI549477B (zh) | 產生深度資訊的方法與裝置 | |
US8369639B2 (en) | Image processing apparatus, computer readable medium storing program, method and computer data signal for partitioning and converting an image | |
CN108829711A (zh) | 一种基于多特征融合的图像检索方法 | |
CN107886518A (zh) | 图片检测方法、装置、电子设备及可读取存储介质 | |
CN115695821A (zh) | 图像压缩方法及装置、图像解压方法及装置、存储介质 | |
CN111432212B (zh) | 基于纹理特征的帧内划分方法、系统及存储介质 | |
CN107330944B (zh) | 一种全景图像的识别方法、装置、终端设备和存储介质 | |
Kristensen et al. | Real-time extraction of maximally stable extremal regions on an FPGA | |
CN109214486B (zh) | 三维码、三维码的生成方法和装置、识别方法和装置 | |
CN112292860B (zh) | 有效表示图像并对图像进行编码的系统和方法 | |
CN105654017B (zh) | 二维码传输方法和系统 | |
US8805062B2 (en) | Image processing apparatus, computer readable medium for processing image and method for processing image | |
JP2023541466A (ja) | 階層的パレットテーブル生成を利用したパレットモードビデオ符号化 | |
US9615111B2 (en) | Complexity-adaptive compression of color images using binary arithmetic coding |
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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 311100 room 204-5, building 3, No. 16, Longtan Road, Cangqian street, Yuhang District, Hangzhou City, Zhejiang Province Patentee after: Zhejiang Jinxin Microelectronics Technology Co.,Ltd. Address before: 300000 133, 302, 303, 305, 306, 307, 309, 310, No. 167, Huanghai Road, Tianjin Economic and Technological Development Zone Patentee before: TIANJIN JINXIN MICROELECTRONIC TECHNOLOGY Co.,Ltd. |