本發(fā)明涉及一種圖像處理技術領域,尤其涉及一種圖像數(shù)據(jù)存儲方法及裝置。
背景技術:
運動目標探測是遙感和圖像處理領域的重要前沿技術。隨著衛(wèi)星遙感技術的發(fā)展,利用衛(wèi)星遙感技術對高速運動的物體進行探測和探測也有了長足的進步,在國民經(jīng)濟建設各個領域發(fā)揮著越來越重要的作用。
在減災救災等應急反應中,運動目標探測技術也同樣大有用武之地。例如利用運動目標探測可以快速發(fā)現(xiàn)廢墟中移動的人體,為搶險救災贏得寶貴的黃金時間;可以判定群體目標的運動和分布,在道路不通時迅速掌握受災群眾的動向;可以對路上的車輛和速度進行測算,對雨雪災害中道路的擁堵情況進行有效判定;可以在茫茫大海中快速實現(xiàn)船舶目標探測,為海上搜救提供重要支撐;可以對海盜動向?qū)崿F(xiàn)判定和預警,為海外護航提供信息保障。
目前,使用衛(wèi)星遙感技術拍攝的動態(tài)遙感圖是一幅多波段圖像,與傳統(tǒng)圖像不同的地方在于增加了用于儲存目標動向信息的波段。傳統(tǒng)遙感圖像格式適用于靜態(tài)遙感圖像,對動態(tài)遙感圖像未提供支持;如果使用普通的GIF格式來存儲動態(tài)遙感圖像時,由于動態(tài)遙感圖像的數(shù)據(jù)量比較大,在進行圖像顯示時,容易造成顯示速度比較慢或者顯示器死機等情況,嚴重影響了圖像的顯示效率。
技術實現(xiàn)要素:
本發(fā)明要解決的技術問題是提出一種分塊式的圖像數(shù)據(jù)存儲方法及裝置,使得存儲的圖像在顯示時可以實現(xiàn)分塊顯示,從而能夠快速地顯示具有大數(shù)據(jù)量的圖像。
為解決上述技術問題,本發(fā)明采用如下技術方案:
在本發(fā)明的一個方面,提供一種圖像數(shù)據(jù)存儲方法,包括:
接收待存儲的圖像數(shù)據(jù);
提取所述圖像數(shù)據(jù)的基本信息,生成頭文件;
根據(jù)所述圖像數(shù)據(jù)的基本信息,按照預設的分塊大小對所述圖像數(shù)據(jù)進行分塊,生成數(shù)據(jù)文件;
存儲所述頭文件和數(shù)據(jù)文件,生成存儲文件。
其中,所述基本信息包括所述圖像數(shù)據(jù)的像素存儲類型、圖像的長度和寬度、分塊存儲的每個子塊的塊高和塊寬,所述圖像數(shù)據(jù)的圖像縮放比,所述圖像數(shù)據(jù)的每個波段的最大值、最小值以及每個波段的波長。
其中,根據(jù)所述圖像數(shù)據(jù)的基本信息,按照預設的分塊大小對所述圖像數(shù)據(jù)進行分塊,生成數(shù)據(jù)文件,具體包括:
根據(jù)所述圖像數(shù)據(jù)的圖像縮放比,判斷所述圖像數(shù)據(jù)是否為縮略圖;
若否,則按照預設的分塊大小對所述圖像數(shù)據(jù)進行分塊,生成數(shù)據(jù)文件。
其中,當判斷所述圖像數(shù)據(jù)的圖像為縮略圖時,將所述圖像數(shù)據(jù)定義為數(shù)據(jù)文件。
其中,按照預設的分塊大小對所述圖像數(shù)據(jù)進行分塊,具體為:
根據(jù)所述分塊存儲的每個子塊的塊高,對所述圖像數(shù)據(jù)的圖像進行橫向分區(qū);
根據(jù)所述分塊存儲的每個子塊的塊寬,對所述圖像數(shù)據(jù)的圖像進行縱向分區(qū)。
其中,存儲所述數(shù)據(jù)文件,具體為;
以每個子塊為單位,對每一行的子塊依次進行存儲。
其中,所述像素存儲類型為unsigned char類型、int16類型、int32類型、float類型和double類型中的任一種。
在本發(fā)明的另一個方面,提供一種圖像數(shù)據(jù)存儲裝置,包括:
接收單元,用于接收待存儲的圖像數(shù)據(jù);
頭文件生成單元,用于提取所述圖像數(shù)據(jù)的基本信息,生成頭文件;
數(shù)據(jù)文件生成單元,用于根據(jù)所述圖像數(shù)據(jù)的基本信息,按照預設的分塊大小對所述圖像數(shù)據(jù)進行分塊,生成數(shù)據(jù)文件;
存儲文件生成單元,用于存儲所述頭文件和數(shù)據(jù)文件,生成存儲文件。
其中,所述頭文件生成單元,具體地包括:
信息提取單元,用于提取所述圖像數(shù)據(jù)的基本信息,所述基本信息包括:像素存儲類型、圖像的長度和寬度、分塊存儲的每個子塊的塊高和塊寬,所述圖像數(shù)據(jù)的圖像縮放比,所述圖像數(shù)據(jù)的每個波段的最大值、最小值以及每個波段的波長;
頭文件生成子單元,用于根據(jù)所述基本信息生成頭文件。
其中,所述數(shù)據(jù)文件生成單元,具體包括:
判斷單元,用于根據(jù)所述圖像數(shù)據(jù)的圖像縮放比,判斷所述圖像數(shù)據(jù)是否為縮略圖;
分塊單元,用于當所述判斷單元判斷所述圖像數(shù)據(jù)不是縮略圖時,按照預設的分塊大小對所述圖像數(shù)據(jù)進行分塊;
數(shù)據(jù)文件生成子單元,用于根據(jù)所述分塊單元對所述圖像數(shù)據(jù)的分塊,生成數(shù)據(jù)文件。
其中,所述數(shù)據(jù)文件生成單元還包括:
第二數(shù)據(jù)文件生成子單元,用于當判斷所述圖像數(shù)據(jù)的圖像為縮略圖時,將所述圖像數(shù)據(jù)定義為數(shù)據(jù)文件。
其中,所述分塊單元,具體包括:
橫向分區(qū)子單元,用于根據(jù)所述分塊存儲的每個子塊的塊高,對所述圖像數(shù)據(jù)的圖像進行橫向分區(qū);
縱向分區(qū)子單元,用于根據(jù)所述分塊存儲的每個子塊的塊寬,對所述圖像數(shù)據(jù)的圖像進行縱向分區(qū)。
其中,所述存儲文件生成單元具體包括數(shù)據(jù)文件存儲單元,用于以每個子塊為單位,對每一行的子塊依次進行存儲。
其中,所述像素存儲類型為unsigned char類型、int16類型、int32類型、float類型和double類型中的任一種。
與現(xiàn)有技術相比,本發(fā)明技術方案主要的優(yōu)點如下:
本發(fā)明將圖像數(shù)據(jù)存儲為雙文件的形式,從而可以將圖像的基本信息添加到圖像中,并且在存儲具有大量數(shù)據(jù)的圖像時,將圖像按照預設的大小進行分塊,然后依次進行存儲,使得在顯示圖像時,只提取圖像的一個或幾個子塊進行顯示,從而能夠快速地顯示具有大數(shù)據(jù)量的圖像,提高圖像顯示的效率,同時,還便于顯示圖像中的目標運動信息。
本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在所寫的說明書、權利要求書、以及附圖中所特別指出的結構來實現(xiàn)和獲得。
下面通過附圖和實施例,對本發(fā)明的技術方案做進一步的詳細描述。
附圖說明
通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1是本發(fā)明一個實施例所述的圖像數(shù)據(jù)存儲方法的流程圖;
圖2是本發(fā)明的圖像數(shù)據(jù)存儲方法的步驟S300的流程圖;
圖3是本發(fā)明的一個實施例的圖像分塊示意圖;
圖4是本發(fā)明的圖像數(shù)據(jù)存儲裝置的結構框圖;
圖5是本發(fā)明的圖像數(shù)據(jù)存儲裝置的一個實施例的結構框圖;
圖6是本發(fā)明的圖像數(shù)據(jù)存儲裝置的另一個實施例的結構框圖。
具體實施方式
下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現(xiàn)本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領域的技術人員。
圖1是本發(fā)明一個實施例所述的圖像數(shù)據(jù)存儲方法的流程圖;
如圖1所示,本發(fā)明的圖像數(shù)據(jù)存儲方法,具體包括步驟:
S100、接收待存儲的圖像數(shù)據(jù)。
本實施例中,待存儲的圖像數(shù)據(jù)是指具有大量數(shù)據(jù)的圖像,如利用衛(wèi)星遙感技術拍攝的遙感動態(tài)圖像,但是本實施例的圖像數(shù)據(jù)不限于遙感動態(tài)圖像,其他具有大量數(shù)據(jù)的圖像同樣適用于本實施例。
S200、提取圖像數(shù)據(jù)的基本信息,生成頭文件。
本實施例中,將圖像數(shù)據(jù)存儲為雙文件形式,即存儲為頭文件部分混合數(shù)據(jù)文件部分,頭文件部分主要對圖像的基本信息進行說明,本實施例中使用文本文件的形式對圖像的基本信息進行保存。
在一個實施例中,若圖像數(shù)據(jù)為動態(tài)遙感圖像時,則基本信息可以包括:圖像數(shù)據(jù)的像素存儲類型、圖像的長度和寬度、分塊存儲的每個子塊的塊高和塊寬,所述圖像數(shù)據(jù)的圖像縮放比,所述圖像數(shù)據(jù)的每個波段的最大值、最小值以及每個波段的波長等信息。
進一步地,像素存儲類型可以為unsigned char類型、int16類型、int32類型、float類型和double類型中的任一種。
在上述的基本信息中,圖像數(shù)據(jù)的圖像縮放比,是為了在打開遙感圖像的時候能夠快速地一覽圖像的全貌而引入的。如果遙感圖像的大小小于用戶的顯示器屏幕則縮放比為-1,否則為一個數(shù)值,該數(shù)值表示要讓整個遙感圖像在一個顯示器屏幕上顯示,長度和寬度應該縮小多少倍。
如在一個實施例中,一幅動態(tài)遙感圖像的頭文件可以為如下內(nèi)容:
圖像類型:classified
行數(shù):570
列數(shù):348
像素類型:char
波段數(shù):1
每個子塊的寬度:64
每個子塊的高度:64
預覽放縮倍數(shù):0.000000
最大最小灰度值:
目標動向信息:
0
986895…
上述的基本信息的頭文件,可以為文本文件,如可以是以H作為文件后綴名的文本文件,但此處對頭文件的格式不做具體的限定,其他文本類型的文件格式同樣適用本發(fā)明。
S300、根據(jù)所述圖像數(shù)據(jù)的基本信息,按照預設的分塊大小對所述圖像數(shù)據(jù)進行分塊,生成數(shù)據(jù)文件。
本實施例中,如圖2所示,步驟S300具體為:
S301、根據(jù)圖像數(shù)據(jù)的圖像縮放比,判斷圖像數(shù)據(jù)是否為縮略圖;
S302、是,則將圖像數(shù)據(jù)定義為數(shù)據(jù)文件。
S303、否,則按照預設的分塊大小對所述圖像數(shù)據(jù)進行分塊,生成數(shù)據(jù)文件,本實施例的數(shù)據(jù)文件可以以DAT為文件后綴名。
本實施例中,在對圖像的數(shù)據(jù)部分進行存儲時,若縮放比為0.0時,表示該部分由原始數(shù)據(jù)組成,否則該數(shù)據(jù)部分包括縮略圖。因此,在生成數(shù)據(jù)文件時,判斷圖像數(shù)據(jù)是否為縮略圖,若是縮略圖,則直接使用現(xiàn)有的圖像存儲技術進行存儲,即直接將圖像數(shù)據(jù)定義為數(shù)據(jù)文件進行存儲。
若圖像數(shù)據(jù)為原始圖像時,由于顯示具有大數(shù)據(jù)的圖像的效率很低,因此先對圖像分塊后再進行存儲,這樣在顯示原始圖像時,只需要將必要顯示部分的塊讀入內(nèi)存,而不是整幅圖像的讀入,很好地提高了顯示性能。
在本實施例中,按照預設的分塊大小對所述圖像數(shù)據(jù)進行分塊,具體為:
根據(jù)分塊存儲的每個子塊的塊高,對所述圖像數(shù)據(jù)的圖像進行橫向分區(qū);
根據(jù)分塊存儲的每個子塊的塊寬,對所述圖像數(shù)據(jù)的圖像進行縱向分區(qū)。
即在對圖像數(shù)據(jù)進行分塊時,以每個子塊的塊高為高度,對圖像進行橫向的分區(qū),將圖像分成多行;并且以每個子塊的塊寬為寬度,對圖像進行縱向的分區(qū),將圖像分成多列。
在橫向分區(qū)和縱向分區(qū)后,圖像被分成了多個子塊。
在一個實施例中,當圖像在橫向分區(qū)和縱向分區(qū)時,圖像的長度和/或?qū)挾炔皇欠謪^(qū)的長度和/或?qū)挾鹊恼麛?shù)倍,則出現(xiàn)了在橫向分區(qū)的最后一區(qū)和縱向分區(qū)的最后一區(qū)的尺寸小于子塊的高度和/或?qū)挾?,則定義為邊緣塊,并與子塊一起作為數(shù)據(jù)文件進行存儲。
S400、存儲所述頭文件和數(shù)據(jù)文件,生成存儲文件。
在本實施例中,對數(shù)據(jù)文件進行存儲時,以每個子塊為單位,對每一行的子塊依次進行存儲。
在一個實施例中,如圖3所示,當存儲一幅長為272,寬為208的圖像時。在進行分塊時,設定每個子塊的尺寸為64*64,則對圖像進行橫向分區(qū)和縱向分區(qū)后,橫向為4個區(qū)域,縱向為5個區(qū)域。從第一大行到第三大行,每一大行的前四個子塊都是64*64,最后一個為邊緣塊,按橫向16(272除以64所得的余數(shù))縱向64保存。最后一大行,前四個邊緣塊,每一個邊緣塊橫向按64保存,縱向按16(208除以64所得的余數(shù))保存,最后一個邊緣塊,按橫向16縱向16來保存。
在分塊完成后,形成了分成不同塊的數(shù)據(jù)文件,然后對數(shù)據(jù)文件進行保存。在保存時,將第一大行的第1塊先保存,然后是第一大行的第2塊,依次將第一大行保存完畢,然后第二大行按相同順序保存,直到該波段的數(shù)據(jù)保存完畢。依次將每個波段的數(shù)據(jù)按這種方式進行保存。
本發(fā)明的圖像數(shù)據(jù)存儲方法,將圖像數(shù)據(jù)存儲為雙文件的形式,從而可以將圖像的基本信息添加到圖像中,并且在存儲具有大量數(shù)據(jù)的圖像時,將圖像按照預設的大小進行分塊,然后依次進行存儲,使得在顯示圖像時,只提取圖像的一個或幾個子塊進行顯示,從而能夠快速地顯示具有大數(shù)據(jù)量的圖像,提高圖像顯示的效率,同時,還便于顯示圖像中的目標運動信息。
對應于上述實施例提供的一種圖像數(shù)據(jù)存儲方法,本發(fā)明的實施例還提供一種圖像數(shù)據(jù)存儲裝置,如圖4所示,該圖像數(shù)據(jù)存儲裝置具體包括:
接收單元10,用于接收待存儲的圖像數(shù)據(jù);
頭文件生成單元20,用于提取所述圖像數(shù)據(jù)的基本信息,生成頭文件;
數(shù)據(jù)文件生成單元30,用于根據(jù)所述圖像數(shù)據(jù)的基本信息,按照預設的分塊大小對所述圖像數(shù)據(jù)進行分塊,生成數(shù)據(jù)文件;
存儲文件生成單元40,用于存儲所述頭文件和數(shù)據(jù)文件,生成存儲文件。
本實施例的裝置,可以用于執(zhí)行圖1所示方法實施例的技術方案,其實現(xiàn)原理和技術效果類似,此處不再贅述。
在一個實施例中,如圖5所示,頭文件生成單元20,具體地包括:
信息提取單元201,用于提取所述圖像數(shù)據(jù)的基本信息,該基本信息包括:像素存儲類型、圖像的長度和寬度、分塊存儲的每個子塊的塊高和塊寬,所述圖像數(shù)據(jù)的圖像縮放比,所述圖像數(shù)據(jù)的每個波段的最大值、最小值以及每個波段的波長等信息。
頭文件生成子單元202,用于根據(jù)所述基本信息生成頭文件。
進一步地,像素存儲類型可以為unsigned char類型、int16類型、int32類型、float類型和double類型中的任一種。
此外,在又一個實施例中,如圖6所示,數(shù)據(jù)文件生成單元30,具體包括:
判斷單元301,用于根據(jù)所述圖像數(shù)據(jù)的圖像縮放比,判斷所述圖像數(shù)據(jù)是否為縮略圖;
分塊單元302,用于當所述判斷單元判斷所述圖像數(shù)據(jù)不是縮略圖時,按照預設的分塊大小對所述圖像數(shù)據(jù)進行分塊;
數(shù)據(jù)文件生成子單元303,用于根據(jù)所述分塊單元對所述圖像數(shù)據(jù)的分塊,生成數(shù)據(jù)文件。
第二數(shù)據(jù)文件生成子單元304,用于當判斷所述圖像數(shù)據(jù)的圖像為縮略圖時,將所述圖像數(shù)據(jù)定義為數(shù)據(jù)文件。
進一步地,分塊單元302,具體包括:
橫向分區(qū)子單元3021,用于根據(jù)所述分塊存儲的每個子塊的塊高,對所述圖像數(shù)據(jù)的圖像進行橫向分區(qū);
縱向分區(qū)子單元3022,用于根據(jù)所述分塊存儲的每個子塊的塊寬,對所述圖像數(shù)據(jù)的圖像進行縱向分區(qū)。
在又一個實施例中,存儲文件生成單元40具體包括:數(shù)據(jù)文件存儲單元,用于以每個子塊為單位,對每一行的子塊依次進行存儲。
與現(xiàn)有技術相比,本發(fā)明技術方案主要的優(yōu)點如下:
本發(fā)明的圖像數(shù)據(jù)存儲裝置,將圖像數(shù)據(jù)存儲為雙文件的形式,可以將圖像的基本信息添加到圖像中,并且在存儲具有大量數(shù)據(jù)的圖像時,將圖像按照預設的大小進行分塊,然后依次進行存儲,使得在顯示圖像時,只提取圖像的一個或幾個子塊進行顯示,能夠快速地顯示具有大數(shù)據(jù)量的圖像,提高圖像顯示的效率。
本領域內(nèi)的技術人員應明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器和光學存儲器等)上實施的計算機程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
顯然,本領域的技術人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權利要求及其等同技術的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。