CN110910302A - 一种特大图像的存储与读写方法 - Google Patents
一种特大图像的存储与读写方法 Download PDFInfo
- Publication number
- CN110910302A CN110910302A CN201911206466.6A CN201911206466A CN110910302A CN 110910302 A CN110910302 A CN 110910302A CN 201911206466 A CN201911206466 A CN 201911206466A CN 110910302 A CN110910302 A CN 110910302A
- Authority
- CN
- China
- Prior art keywords
- image
- layer
- block
- blocks
- writing
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0007—Image acquisition
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Editing Of Facsimile Originals (AREA)
Abstract
本发明提供一种特大图像的存储与读写方法,能够支持对图像任意区域进行任意分辨率的读写操作的同时,提供更优的运行效率,占用更少的计算机资源。通过使用以金字塔结构保存图像数据的方法,使得每次读写只需将与操作区域相关的区块载入内存,而不是传统方法中的整张图像,使得特大图像分析与处理在低端配置的电脑上进行更加简便。并且本方法无需用户将图像再次分割为小块图像进行处理,节省了内存和硬盘空间。此外,本发明使得对于图像的局部修改不再需要重新生成整个图像文件,而是仅仅生成被修改区域,使得单次读写操作时空复杂度均为线性,大大提高了特大图像局部修改的性能。
Description
技术领域
本发明涉及数字图像处理领域,具体为一种特大图像的存储与读写方法。
背景技术
近年来,一些在加载时需要占据数GB至数十GB内存空间的特大图像逐渐出现在数字病理学、卫星遥感、全景图像等技术领域,对这些图像进行分析与处理是相关领域发展的基础。而当下流行的图像文件格式如JPG、PNG等缺乏对于特大图像的支持,这些格式只能够在需要分析时一次性加载整张图像,造成现有的适用于普通图像的处理方法只能在拥有充足内存空间的计算机上工作。
在相关领域,当下流行的特大图像处理方式为将图像切分为小块图像逐个进行处理,其缺点也非常明显:(1)切分图像过程需要额外的计算资源,造成运行效率下降,硬盘空间资源浪费;(2)小块图像仅包含整张图像的局部信息,难以对特大图像进行整体化的操作;(3)这种方式无法实现图像的局部修改,只能重写整个图像文件,而重写这些特大图像文件是极为耗时的操作,极大地降低了数字图像的处理效率。(4)数据的预处理过程,如对整体图像进行的色彩校正等算法,或图像的切分过程,仍然只能在内存充足的计算机上运行,预处理完毕之后才能转移到其他计算机进行分析,造成图像分析与处理工作极为不便。也有一些针对特大图像的文件格式如BigTIFF,其虽然可以支持图像任意区域的任意分辨率读取,但仍不支持图像的局部修改。由此可见,现有的特大图像处理技术有较大提升空间。
发明内容
针对现有技术中存在的问题,本发明提供一种特大图像的存储与读写方法,能够支持对图像任意区域进行任意分辨率的读写操作的同时,提供更优的运行效率,占用更少的计算机资源。
本发明是通过以下技术方案来实现:
一种特大图像的存储与读写方法,包括以下步骤:
步骤1,数据存储;
将原始图像通过数次降采样后,得到一系列内容相同,且分辨率不同的图像;以原始图像为第一层,按照分辨率依次降低的顺序,将分辨率不同的图像逐层堆叠排列后,生成图像金字塔存储结构;然后将金字塔存储结构中的每一层图像切分为相同大小区块,将存储切分所得图像区块所在的层数和区块坐标确定的位置;
步骤2,数据读写;
根据所需图像区域及分辨率大小选取读写操作的图像层,对所选取的图像层的对应区块进行读写操作;根据所需图像的分辨率和读写操作区域原始图像的分辨率得到操作降采样率,选取金字塔存储结构中小于操作降采样率的最大图像降采样率对应的图像层。
优选的,步骤1中,数据存储的具体步骤包括如下:
步骤1.1,输入存储于现有图像格式的原始图像,读取其图像数据并按最近邻插值方法降采样至原始图像长宽的N分之一,其中N为整数,为相邻两层的降采样率比值N;重复数次上述操作后,得到一系列内容相同,但分辨率不同的图像;
步骤1.2,将步骤1.1得到的一系列不同分辨率的图像堆叠组成金字塔结构,每一种分辨率下的图像数据构成金字塔存储结构中的一层;其中底层为原始图像,拥有最高的分辨率;之后随层数升高,图像的分辨率依次降低;
步骤1.3,将每一层的图像以左上角为起点切分为相同大小的正方形图像区块;每个区块以原始图像左上角为坐标原点,得到每个区块左上角和右下角在区块所在层中的坐标;所有区块按层数和坐标进行排序后得到每个区块所对应的唯一区块编号,用于在存储区块时进行索引;
步骤1.4,将所有区块使用数据库通过区块编号进行索引,存储区块编号于同一个文件中,通过区块编号能够得到区块所在的层和区块在所在层的坐标。
进一步,步骤1.3中,将每一层的图像以左上角为起点切分为相同大小的正方形图像区块,位于最右方和最下方的区块仍使用相同大小,当划分区块的区域超出原始图像范围时,超出区域使用空白图像填充。
优选的,步骤2中,数据读写的具体步骤包括如下:
步骤2.1,以原始图像的左上角为原点建立坐标系,输入此次操作的操作区域,并输入用户的所需图像分辨率;输入完成后,通过操作区域的分辨率除以所需图像分辨率得到此次读写操作的操作降采样率;
当进行写入操作时,还需输入与所需图像分辨率大小相同的输入图像,以及同样与所需图像分辨率大小相同,用于在修改时进行参照的输入掩模图像;
步骤2.2,计算得到图像金字塔存储结构中每一层的降采样率NM-1,M为层数,N为相邻两层的降采样率比值;
将此次的操作降采样率与金字塔中每一层的降采样率进行比较,选出唯一的一层作为当前进行读写操作的操作层,选取的图像层对应的降采样率最大但小于此次操作降采样率;
步骤2.3,将操作区域的坐标通过每层的降采样率分别进行换算,通过将操作区域的左上角和右下角坐标均除以对应层的降采样率,得到金字塔每层对应的操作区域坐标;
步骤2.4,对于所有比操作层更高的层,选出其中所有满足下列条件的区块:区块的懒惰标记为1,且区块位置与区块所在层通过步骤2.3中所计算的操作区域有重合;若无满足条件的区块,则跳过步骤2.4;其中,所有区块的初始懒惰标记为0;
将所有满足条件的区块按所在层数从高到低顺序,依次进行如下懒惰标记更新操作:将当前区块的图像数据和掩模图像数据按最近邻插值方法升采样为原有分辨率的N倍;遍历升采样后的图像数据中的每个像素,根据其在掩模图像数据中对应位置的像素值,则将此像素写入到当前区块所在层下方一层中对应的N2个区块的图像数据中,覆盖原有数据;对掩模图像数据作相同操作;
同时更新当前区块和下一层对应区块的懒惰标记:置当前区块的懒惰标记为0,置当前区块的掩模图像数据为全1,并置当前区块所在层下方一层中对应当前区块的N2个区块的懒惰标记为1;
步骤2.5,在操作层中,选出所有与操作层的操作区域有重合区域的图像区块,之后按本次操作的类型进行操作:
若本次为读操作,则读取这些图像区块中的图像数据,并拼合得到分辨率大于或等于所需图像分辨率的一张预处理图像,对预处理图像按最近邻插值方法降采样至所需图像分辨率之后返回给用户,完成本次读操作;
若本次为写操作,则将输入图像和输入掩模图像按最近邻插值方法升采样至此层的操作区域分辨率大小,并遍历升采样后的图像数据中的每个像素,根据升采样后的输入掩模图像中对应位置的像素值,则将此像素写入到对应位置的图像区块的图像数据和掩模图像数据内,完成本次写操作。
进一步,步骤2.1、步骤2.4和步骤2.5中,输入图像中某个像素在输入掩模图像数据中所对应的相同位置的像素值,为1时被写入到对应图像中,为0时不写入。
进一步,步骤2.4中,下一层对应区块的懒惰标记为1的区块,一并进行懒惰标记更新操作。
进一步,步骤2.5中,完成本次写操作的同时,并依次执行步骤2.6和2.7;
步骤2.6,置步骤2.5中所有被选出的区块的懒惰标记为1;
步骤2.7,依次将步骤2.5中所有被选出的区块的图像数据按最近邻插值方法降采样后复制到其所在层更高一层中对应的一个区块的图像数据中;完成后,选出更高一层中所有在本次操作中被修改的区块,进行相同操作,以此类推直到金字塔中的最高一层,完成本次写操作。
与现有技术相比,本发明具有以下有益的技术效果:
本发明通过使用以金字塔结构保存图像数据的方法,使得每次读写只需将与操作区域相关的区块载入内存,而不是传统方法中的整张图像,使得特大图像分析与处理在低端配置的电脑上进行更加简便。并且本方法无需用户将图像再次分割为小块图像进行处理,节省了内存和硬盘空间。此外,本发明使得对于图像的局部修改不再需要重新生成整个图像文件,而是仅仅生成被修改区域,使得单次读写操作时空复杂度均为线性,大大提高了特大图像局部修改的性能。
附图说明
图1为本发明实例中所述数据读写步骤的整体流程图。
图2为本发明实例中所述数据存储步骤的方法示意图。
图3至图5为本发明实例中所述数据写步骤的方法示意图。
图6至图8为本发明实例中所述数据读步骤的方法示意图。
具体实施方式
下面结合具体的实施例对本发明做进一步的详细说明,所述是对本发明的解释而不是限定。
本发明为一种特大图像的存储与读写方法,主要是解决现有图像存储方式对特大图像进行局部修改时效率低下的问题,针对特大图像的文件存储格式及对其进行读取与写入操作的方法,使其在支持对图像任意区域进行任意分辨率的读写操作的同时,提供更优的运行效率,占用更少的计算机资源。
本发明通过以下措施来实现图像的存储与读写方法,包括以下步骤:
数据存储,即将原始图像按本发明中的数据存储方法进行存储。包括生成图像金字塔存储结构,进行图像的切分操作,以及将切分所得图像区块使用数据库进行存储。
数据读写,即对按本发明中数据存储进行存储的图像进行局部读取与写入操作。包括根据所需图像区域及大小挑选合适的读写层数,对所挑选层进行读写并修改所涉及区块的懒惰标记。
其中数据存储的具体步骤包括如下:
步骤1.1,输入存储于现有图像格式的原始图像,读取其图像数据并按最近邻插值方法降采样至原始图像长宽的N分之一,其中N为整数且可根据实际情况进行调整。按照相邻两层的降采样率比值N,进行数次相同操作后,得到一系列内容相同,但分辨率不同的图像。
步骤1.2,将这一系列图像堆叠组成金字塔结构,每一种分辨率下的图像数据构成金字塔存储结构中的一层。其中底层为原始图像,拥有最高的分辨率;之后随层数升高,图像的分辨率依次降低。金字塔存储结构的总层数M可随实际需求进行调整。
步骤1.3,将每一层的图像以左上角为起点切分为相同大小的正方形图像区块。位于最右方和最下方的区块仍使用相同大小,但其区域可能超出原始图像,这些区域使用空白图像填充。如此操作使得每个区块在原始图像中所对应区域,等于金字塔存储结构中位于该区块所在层的低一层中的N2个区块整体在原始图像中所对应的区域,便于之后修改的图像数据在各层间同步。每个区块以原始图像左上角为坐标原点,每个区块的位置定义为,区块左上角和右下角在区块所在层中的坐标;所有区块按层数和坐标进行排序后得到每个区块所对应的唯一区块编号,用于在存储区块时进行索引。
步骤1.4,将所有区块使用SQLite等数据库通过区块编号进行索引,存储于同一个文件中,存储的数据包括:区块编号,通过编号可以得到区块所在的层和区块的位置;区块包含的图像数据,使用ZLIB库压缩;区块的懒惰标记,大小1bit,初始化为0;区块包含的掩模图像数据,与区块图像分辨率相同但每像素仅占据1字节,用于在修改图像时精确指定实际需要修改的图像数据,同样使用ZLIB库压缩,初始化为全1。
数据读写的具体步骤包括如下:
步骤2.1,以原始图像的左上角为原点建立坐标系,输入此次操作的操作区域,并输入用户的所需图像分辨率。需要注意的是所需图像分辨率并不等同于操作区域的分辨率,例如用户需要读取整张图像的缩略图,则所需图像分辨率为缩略图的分辨率,操作区域则包含整张原始图像,所需分辨率会显著小于操作区域的分辨率。对于写入操作,还需输入与所需图像分辨率大小相同的输入图像,以及同样与所需图像分辨率大小相同,用于在修改时进行参照的输入掩模图像。在实际修改时,输入图像中某个像素是否被写入到文件中,取决于此像素在输入掩模图像数据中所对应的相同位置的像素值是否为1。输入完成后,通过操作区域和所需图像分辨率计算此次读写操作的降采样率,方法为操作区域的分辨率除以所需图像分辨率,需要用户保证分别按长宽方向计算的降采样率近似相等。
步骤2.2,计算出图像金字塔存储结构中每一层的降采样率。根据所述步骤1.1至1.4,图像金字塔中的底层,即第一层的降采样率等于1,之后每一层的降采样率均为其下方一层的N倍,及第二层的降采样率为N,第三层为N2,第M层为NM-1。之后将此次的操作降采样率与金字塔中每一层的降采样率进行比较,选出唯一的一层,其降采样率最大但小于此次操作降采样率。其将作为当前进行读写操作的层。以这种方法选择操作层,可以保证图像不会失真,同时使最少的区块需要被载入内存。
步骤2.3,将操作区域的坐标通过每层的降采样率分别进行换算,得到金字塔每层对应的操作区域坐标,方法为将操作区域的左上角、右下角坐标均除以对应层的降采样率。
步骤2.4,对于所有比操作层更高的层,选出其中所有满足下列条件的区块:区块的懒惰标记为1,且区块位置与步骤2.3中所计算的区块所在层的操作区域有重合;若无满足条件的区块,则跳过步骤2.4。其中懒惰标记在每次操作的步骤2.6中可被修改为1,此处懒惰标记为1系此次操作之前的图像写入操作所修改。将这些区块按所在层数从高到低顺序,依次对选取的懒惰标记非0的区块进行如下懒惰标记更新操作:将当前区块的图像数据和掩模图像数据按最近邻插值方法升采样为原有分辨率的N倍;遍历升采样后的图像数据中的每个像素,若其在掩模图像数据中对应位置的像素值为1,则将此像素写入到当前区块所在层下方一层中对应的N2个区块的图像数据中,覆盖原有数据;对掩模图像数据作相同操作;置当前区块的懒惰标记为0,置当前区块的掩模图像数据为全1,并置当前区块所在层下方一层中当前区块对应的N2个区块的懒惰标记为1。需要注意的是,于此步骤中修改懒惰标记为1的区块,也需要进行此步骤所述的操作。
步骤2.5,在操作层中,选出所有与此层的操作区域有重合区域的图像区块,之后按本次操作的类型进行操作:
若本次为读操作,则读取这些图像区块中的图像数据,并拼合得到分辨率大于或等于所需图像分辨率的一张预处理图像,对预处理图像按最近邻插值方法降采样至所需图像分辨率之后返回给用户,完成本次读操作。
若本次为写操作,则将输入图像和输入掩模图像按最近邻插值方法升采样至此层的操作区域分辨率大小,并遍历升采样后的图像数据中的每个像素,若其在升采样后的输入掩模图像中对应位置的像素值为1,则将此像素写入到对应位置的图像区块的图像数据和掩模图像数据内,并依次执行步骤2.6和2.7。
步骤2.6,从低到高更新懒惰标记,置步骤2.5中所有被选出的区块的懒惰标记为1。
步骤2.7,依次将步骤2.5中所有被选出的区块的图像数据按最近邻插值方法降采样后复制到其所在层更高一层中对应的一个区块的图像数据中。完成后,选出更高一层中所有在本次操作中被修改的区块,进行相同操作,以此类推直到金字塔中的最高一层,完成本次写操作。
具体的,如图1所示,一次图像的读写操作分为选取当前操作层、从高到低更新懒惰标记、进行读写操作、从低到高更新懒惰标记四个主要步骤。其中,选取当前操作层步骤的时间、空间复杂度均可忽略,进行读写操作步骤的时间、空间复杂度均为输入的所需分辨率,而两次更新懒惰标记的步骤所涉及区块均不超过步骤2.3所述的每一层的操作区域面积总和,且每一层的操作区域分辨率均为其下方一层中操作区域分辨率的N2分之一。综上所述,两次更新懒惰标记的步骤的时间、空间复杂度均为N2/(N2-1)乘以所需图像分辨率,一次图像读写操作的时间、空间复杂度均只与所需图像分辨率呈线性关系,已为所能达到的最优复杂度。
以下配合图示对本发明的特大图像存储与读写方法做进一步说明。在输入存储于原始图像格式的图像文件后,读取其图像数据并按最近邻插值方法逐次降采样得到图所示图像的金字塔存储结构,此处相邻两层的降采样率比值N为2。金字塔存储结构中每个矩形均代表金字塔中的一层。其最下层即为该文件的原始图像,称之为第一层;其上面一层为第二层,是长宽均为原始图像二分之一的降采样版本;第三层为长宽均为原始图像四分之一的降采样版本,第四层为原始图像八分之一的降采样版本,以此类推。此示例图像文件的金字塔由四层图像组成,即M等于4,每一层均切分为相同大小的图像区块,图中未标出。全部区块均使用SQLite将压缩后的图像数据、掩模图像数据和懒惰标记存储于同一个文件内,通过区块编号识别每个区块的位置和所在层。
图所示的黑色区域为一次读写操作中所有需要载入内存处理的区块位置。图示中,一次写操作的操作区域为图像以左上角为原点(1000,1000)至(2000,2000)的区域,所需图像分辨率为(400,400),并输入一张相同大小的输入图像。首先根据所述步骤2.1,以操作区域分辨率除以所需图像分辨率,得到本次操作降采样率为2.5。根据所述步骤2.2,金字塔中第二层的降采样率为2,为所有层中小于2.5的最大降采样率,故选择第二层作为操作层。之后根据步骤2.3进行坐标换算,得出第一层中换算后的操作区域为(1000,1000)至(2000,2000),第二层中换算后的操作区域为(500,500)至(1000,1000),第三层中换算后的操作区域为(250,250)至(500,500),第四层中换算后的操作区域为(125,125)至(250,250)。由于初始状态下所有区块懒惰标记均为0,故跳过2.4步骤,将提供的(400,400)像素的输入图像按最近邻插值方法进行缩放操作后得到(500,500)像素的升采样图像,写入到第二层中计算出的区域并置所有与该区域有重合部分的区块的懒惰标记为1,即图中的黑色区域。最后根据步骤2.7逐层向上将该区域图像数据降采样后写入到第三层和第四层中的对应区域,即图所示的黑色区域。至此即完成本示例的写操作。
参照图,图示中一次读操作的操作区域为图像以左上角为原点(1500,1500)至(2500,2500)的区域,所需图像分辨率为(800,800)像素。首先根据所述步骤2.1计算本次操作降采样率为1.25,金字塔中第一层的降采样率1为所有层中小于1.25的最大降采样率,故选择第一层为操作层。根据步骤2.3进行坐标换算,得出第一到第四层中换算后的操作区域分别为(1500,1500)至(2500,2500),(750,750)至(1250,1250),(375,375)至(625,625),和(162,162)至(312,312),无法除尽的区域将统一向下取整。根据所述步骤2.4,本次操作中选出的所需更新懒惰标记的区域为图中第二层的黑色区域,故将该区域的图像数据和掩模图像数据升采样后,按照掩模图像数据写入到第一层的黑色区域,并按所述步骤修改两层图像的懒惰标记,使第一层中黑色区域的图像区块懒惰标记为1,第二层中黑色区域的图像区块懒惰标记为0。根据步骤2.5,读取第一层中图所示黑色区域内的相关区块得到一张(1000,1000)像素的图像,并按最近邻插值方法进行降采样操作后得到最终的(800,800)像素图像,返回给读操作调用者。至此,示例的读操作完成。
Claims (7)
1.一种特大图像的存储与读写方法,其特征在于,包括以下步骤:
步骤1,数据存储;
将原始图像通过数次降采样后,得到一系列内容相同,且分辨率不同的图像;以原始图像为第一层,按照分辨率依次降低的顺序,将分辨率不同的图像逐层堆叠排列后,生成图像金字塔存储结构;然后将金字塔存储结构中的每一层图像切分为相同大小区块,将存储切分所得图像区块所在的层数和区块坐标确定的位置;
步骤2,数据读写;
根据所需图像区域及分辨率大小选取读写操作的图像层,对所选取的图像层的对应区块进行读写操作;根据所需图像的分辨率和读写操作区域原始图像的分辨率得到操作降采样率,选取金字塔存储结构中小于操作降采样率的最大图像降采样率对应的图像层。
2.根据权利要求1所述的一种特大图像的存储与读写方法,其特征在于,步骤1中,数据存储的具体步骤包括如下:
步骤1.1,输入存储于现有图像格式的原始图像,读取其图像数据并按最近邻插值方法降采样至原始图像长宽的N分之一,其中N为整数,为相邻两层的降采样率比值N;重复数次上述操作后,得到一系列内容相同,但分辨率不同的图像;
步骤1.2,将步骤1.1得到的一系列不同分辨率的图像堆叠组成金字塔结构,每一种分辨率下的图像数据构成金字塔存储结构中的一层;其中底层为原始图像,拥有最高的分辨率;之后随层数升高,图像的分辨率依次降低;
步骤1.3,将每一层的图像以左上角为起点切分为相同大小的正方形图像区块;每个区块以原始图像左上角为坐标原点,得到每个区块左上角和右下角在区块所在层中的坐标;所有区块按层数和坐标进行排序后得到每个区块所对应的唯一区块编号,用于在存储区块时进行索引;
步骤1.4,将所有区块使用数据库通过区块编号进行索引,存储区块编号于同一个文件中,通过区块编号能够得到区块所在的层和区块在所在层的坐标。
3.根据权利要求2所述的一种特大图像的存储与读写方法,其特征在于,步骤1.3中,将每一层的图像以左上角为起点切分为相同大小的正方形图像区块,位于最右方和最下方的区块仍使用相同大小,当划分区块的区域超出原始图像范围时,超出区域使用空白图像填充。
4.根据权利要求1所述的一种特大图像的存储与读写方法,其特征在于,步骤2中,数据读写的具体步骤包括如下:
步骤2.1,以原始图像的左上角为原点建立坐标系,输入此次操作的操作区域,并输入用户的所需图像分辨率;输入完成后,通过操作区域的分辨率除以所需图像分辨率得到此次读写操作的操作降采样率;
当进行写入操作时,还需输入与所需图像分辨率大小相同的输入图像,以及同样与所需图像分辨率大小相同,用于在修改时进行参照的输入掩模图像;
步骤2.2,计算得到图像金字塔存储结构中每一层的降采样率NM-1,M为层数,N为相邻两层的降采样率比值;
将此次的操作降采样率与金字塔中每一层的降采样率进行比较,选出唯一的一层作为当前进行读写操作的操作层,选取的图像层对应的降采样率最大但小于此次操作降采样率;
步骤2.3,将操作区域的坐标通过每层的降采样率分别进行换算,通过将操作区域的左上角和右下角坐标均除以对应层的降采样率,得到金字塔每层对应的操作区域坐标;
步骤2.4,对于所有比操作层更高的层,选出其中所有满足下列条件的区块:区块的懒惰标记为1,且区块位置与区块所在层通过步骤2.3中所计算的操作区域有重合;若无满足条件的区块,则跳过步骤2.4;其中,所有区块的初始懒惰标记为0;
将所有满足条件的区块按所在层数从高到低顺序,依次进行如下懒惰标记更新操作:将当前区块的图像数据和掩模图像数据按最近邻插值方法升采样为原有分辨率的N倍;遍历升采样后的图像数据中的每个像素,根据其在掩模图像数据中对应位置的像素值,则将此像素写入到当前区块所在层下方一层中对应的N2个区块的图像数据中,覆盖原有数据;对掩模图像数据作相同操作;
同时更新当前区块和下一层对应区块的懒惰标记:置当前区块的懒惰标记为0,置当前区块的掩模图像数据为全1,并置当前区块所在层下方一层中对应当前区块的N2个区块的懒惰标记为1;
步骤2.5,在操作层中,选出所有与操作层的操作区域有重合区域的图像区块,之后按本次操作的类型进行操作:
若本次为读操作,则读取这些图像区块中的图像数据,并拼合得到分辨率大于或等于所需图像分辨率的一张预处理图像,对预处理图像按最近邻插值方法降采样至所需图像分辨率之后返回给用户,完成本次读操作;
若本次为写操作,则将输入图像和输入掩模图像按最近邻插值方法升采样至此层的操作区域分辨率大小,并遍历升采样后的图像数据中的每个像素,根据升采样后的输入掩模图像中对应位置的像素值,则将此像素写入到对应位置的图像区块的图像数据和掩模图像数据内,完成本次写操作。
5.根据权利要求4所述的一种特大图像的存储与读写方法,其特征在于,步骤2.1、步骤2.4和步骤2.5中,输入图像中某个像素在输入掩模图像数据中所对应的相同位置的像素值,为1时被写入到对应图像中,为0时不写入。
6.根据权利要求4所述的一种特大图像的存储与读写方法,其特征在于,步骤2.4中,下一层对应区块的懒惰标记为1的区块,一并进行懒惰标记更新操作。
7.根据权利要求4所述的一种特大图像的存储与读写方法,其特征在于,步骤2.5中,完成本次写操作的同时,并依次执行步骤2.6和2.7;
步骤2.6,置步骤2.5中所有被选出的区块的懒惰标记为1;
步骤2.7,依次将步骤2.5中所有被选出的区块的图像数据按最近邻插值方法降采样后复制到其所在层更高一层中对应的一个区块的图像数据中;完成后,选出更高一层中所有在本次操作中被修改的区块,进行相同操作,以此类推直到金字塔中的最高一层,完成本次写操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911206466.6A CN110910302B (zh) | 2019-11-29 | 2019-11-29 | 一种特大图像的存储与读写方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911206466.6A CN110910302B (zh) | 2019-11-29 | 2019-11-29 | 一种特大图像的存储与读写方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110910302A true CN110910302A (zh) | 2020-03-24 |
CN110910302B CN110910302B (zh) | 2021-08-13 |
Family
ID=69820888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911206466.6A Active CN110910302B (zh) | 2019-11-29 | 2019-11-29 | 一种特大图像的存储与读写方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110910302B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115410693A (zh) * | 2022-11-01 | 2022-11-29 | 深圳市生强科技有限公司 | 一种数字病理切片的存储***、浏览***及方法 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080267506A1 (en) * | 2007-04-24 | 2008-10-30 | Microsoft Corporation | Interest point detection |
CN101388043A (zh) * | 2008-09-26 | 2009-03-18 | 北京航空航天大学 | 一种基于小块图片的ogc高性能遥感图像地图服务方法 |
CN102368779A (zh) * | 2011-01-25 | 2012-03-07 | 麦克奥迪实业集团有限公司 | 一种用于移动互联网设备的超大图像加载显示方法 |
CN102831605A (zh) * | 2012-07-31 | 2012-12-19 | 武汉大学 | 用于大型影像的多尺度图像分割结果快速可视化方法 |
CN103678501A (zh) * | 2013-11-18 | 2014-03-26 | 航天恒星科技有限公司 | 一种基于金字塔和影像绘制引擎的超大遥感影像显示方法 |
CN105574148A (zh) * | 2015-12-16 | 2016-05-11 | 麦克奥迪(厦门)医疗诊断***有限公司 | 一种数字切片存储***和数字切片浏览方法 |
CN105786942A (zh) * | 2015-11-27 | 2016-07-20 | 武汉大学 | 一种基于云平台的地理信息存储*** |
CN106780319A (zh) * | 2016-11-11 | 2017-05-31 | 航天恒星科技有限公司 | 超大图像的处理方法及装置 |
CN107679164A (zh) * | 2017-09-28 | 2018-02-09 | 上海交通大学 | 基于四叉树虚拟显示的超大容量图像的浏览方法及*** |
CN107767324A (zh) * | 2017-10-24 | 2018-03-06 | 中国科学院电子学研究所苏州研究院 | 一种大型遥感图像快速缓存方法 |
CN108510441A (zh) * | 2018-03-19 | 2018-09-07 | 东南大学 | 一种基于交错网格的影像多分辨率显示方法 |
-
2019
- 2019-11-29 CN CN201911206466.6A patent/CN110910302B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080267506A1 (en) * | 2007-04-24 | 2008-10-30 | Microsoft Corporation | Interest point detection |
CN101388043A (zh) * | 2008-09-26 | 2009-03-18 | 北京航空航天大学 | 一种基于小块图片的ogc高性能遥感图像地图服务方法 |
CN102368779A (zh) * | 2011-01-25 | 2012-03-07 | 麦克奥迪实业集团有限公司 | 一种用于移动互联网设备的超大图像加载显示方法 |
CN102831605A (zh) * | 2012-07-31 | 2012-12-19 | 武汉大学 | 用于大型影像的多尺度图像分割结果快速可视化方法 |
CN103678501A (zh) * | 2013-11-18 | 2014-03-26 | 航天恒星科技有限公司 | 一种基于金字塔和影像绘制引擎的超大遥感影像显示方法 |
CN105786942A (zh) * | 2015-11-27 | 2016-07-20 | 武汉大学 | 一种基于云平台的地理信息存储*** |
CN105574148A (zh) * | 2015-12-16 | 2016-05-11 | 麦克奥迪(厦门)医疗诊断***有限公司 | 一种数字切片存储***和数字切片浏览方法 |
CN106780319A (zh) * | 2016-11-11 | 2017-05-31 | 航天恒星科技有限公司 | 超大图像的处理方法及装置 |
CN107679164A (zh) * | 2017-09-28 | 2018-02-09 | 上海交通大学 | 基于四叉树虚拟显示的超大容量图像的浏览方法及*** |
CN107767324A (zh) * | 2017-10-24 | 2018-03-06 | 中国科学院电子学研究所苏州研究院 | 一种大型遥感图像快速缓存方法 |
CN108510441A (zh) * | 2018-03-19 | 2018-09-07 | 东南大学 | 一种基于交错网格的影像多分辨率显示方法 |
Non-Patent Citations (6)
Title |
---|
FEI LI等: "A Novel Geo-Spatial Image Storage Method Based on Hilbert Space Filling Curves", 《2010 18TH INTERNATIONAL CONFERENCE ON GEOINFORMATICS》 * |
刘义等: "利用MapReduce进行批量遥感影像瓦片金字塔构建", 《武汉大学学报· 信息科学版》 * |
曹梦鸽: "面向大数据的遥感影像金字塔模型的研究", 《中国优秀硕士学位论文全文数据库 工程科技Ⅱ辑》 * |
郭宁等: "大规模栅格数据集的瓦片金字塔快速构建方法", 《地理信息世界》 * |
马秀丹等: "一种基于GPU 和内存映射文件的高分辨率遥感图像快速处理方法", 《海洋科学》 * |
高峥: "海量遥感影像快速生成金字塔算法的研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115410693A (zh) * | 2022-11-01 | 2022-11-29 | 深圳市生强科技有限公司 | 一种数字病理切片的存储***、浏览***及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110910302B (zh) | 2021-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109034162B (zh) | 一种图像语义分割方法 | |
US8249394B2 (en) | Method and system for shift-map image editing | |
Lindstrom | Out-of-core simplification of large polygonal models | |
US7088870B2 (en) | Image region filling by example-based tiling | |
US20130093769A1 (en) | Manipulation of Image Content Using Various Image Representations | |
CN106991143B (zh) | 多层级图像文件、生成方法及装置、读取方法及装置 | |
US9877031B2 (en) | System and method for multi-resolution raster data processing | |
EP0470194A4 (zh) | ||
CN105786942A (zh) | 一种基于云平台的地理信息存储*** | |
US20140333644A1 (en) | Low memory content aware fill | |
US20220207779A1 (en) | Method and system for improving compression ratio by difference between blocks of image file | |
US20220398712A1 (en) | Generating modified digital images utilizing nearest neighbor fields from patch matching operations of alternate digital images | |
CN110910302B (zh) | 一种特大图像的存储与读写方法 | |
CN105844683A (zh) | 基于Canvas和WebWorker的像素差逐帧动画的实现方法 | |
JPS59218493A (ja) | 図形表示情報記憶方法 | |
CN113269882B (zh) | 一种基于虚拟纹理的地形渲染方法及*** | |
JP2776489B2 (ja) | ビデオ画像のシーケンス内の変化の位置を符号化する方法 | |
US20060002614A1 (en) | Raster-to-vector conversion process and apparatus | |
CN105427235A (zh) | 一种图像浏览方法及*** | |
US11295496B2 (en) | Intelligent exporting of images using an image editing application | |
US20080252938A1 (en) | Combining an original image and a modified image into a single image file | |
US20230394726A1 (en) | Method for automatically arranging and matching graph onto figure, and computer-readable medium | |
Barnes | Patchmatch: a fast randomized matching algorithm with application to image and video | |
CN109949382B (zh) | 一种基于机器学习实现图片高密度压缩、解压缩的方法 | |
US11914681B2 (en) | Determining and selecting operation features for digital content editing operations within an operation sequence |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |