以邊界提取為基礎(chǔ)的醫(yī)學(xué)影像無損壓縮方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)圖像處理領(lǐng)域,特別涉及一種以邊界提取為基礎(chǔ)的醫(yī)學(xué)影像無損壓縮方法。是一種針對(duì)醫(yī)學(xué)影像自身特性的高壓縮比的無損可還原圖像壓縮方法。
【背景技術(shù)】
[0002]伴隨數(shù)字化,網(wǎng)絡(luò)化時(shí)代的到來,醫(yī)學(xué)領(lǐng)域的數(shù)字化,網(wǎng)絡(luò)化也已成為必然趨勢(shì),現(xiàn)如今,數(shù)字醫(yī)學(xué)影像也已廣泛的普及,然而,隨著醫(yī)學(xué)影像數(shù)量的不斷大量增加,且醫(yī)學(xué)影像本身占用內(nèi)存過大,不但使存儲(chǔ)產(chǎn)生壓力,而且在傳輸過程中對(duì)網(wǎng)絡(luò)產(chǎn)生壓力,同時(shí)會(huì)導(dǎo)致數(shù)字醫(yī)學(xué)影像查詢系統(tǒng)中由于多個(gè)醫(yī)生并發(fā)訪問而產(chǎn)生卡頓現(xiàn)象,由此,如何從根本上同時(shí)解決醫(yī)學(xué)影像在存儲(chǔ)和傳輸中所造成的壓力,已成為了一個(gè)迫切需要解決的問題。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的在于提供一種以邊界提取為基礎(chǔ)的醫(yī)學(xué)影像無損壓縮方法,解決了隨著醫(yī)學(xué)影像數(shù)量不斷增加導(dǎo)致的對(duì)網(wǎng)絡(luò)和存儲(chǔ)產(chǎn)生的壓力,用終端的計(jì)算量來?yè)Q取更短的傳輸時(shí)間以及更小的存儲(chǔ)空間消耗。
[0004]本發(fā)明的上述目的通過以下技術(shù)方案實(shí)現(xiàn):
以邊界提取為基礎(chǔ)的醫(yī)學(xué)影像無損壓縮方法,將醫(yī)學(xué)影像中的所有邊逐層提取,并存儲(chǔ)邊界及邊界間的包含關(guān)系,在存儲(chǔ)的同時(shí)做到對(duì)圖像的無損壓縮,具體步驟如下:
(1)對(duì)邊界進(jìn)行提取:
(1.0掃描像素點(diǎn),找到第一個(gè)與背景像素不同的像素點(diǎn),命名為點(diǎn)I ;
(1.2)在點(diǎn)I的左上,上,右上,右,右下,下,左下,左八個(gè)位置中檢索是否存在與點(diǎn)I完全相同的像素點(diǎn),若存在,命名為點(diǎn)2 ;
(1.3)以點(diǎn)2為中心執(zhí)行步驟(1.2),將存在的點(diǎn)依次命名為點(diǎn)3,點(diǎn)4……,直至掃描回到點(diǎn)I,結(jié)束檢索;
(2)步驟(I)提取出的邊界必定是一個(gè)閉合的區(qū)域,設(shè)置一個(gè)與圖像等大的二維數(shù)組,初始值全部為0,將剛剛提取出的邊界以及邊界內(nèi)部包含的像素點(diǎn)全部在二維數(shù)組中標(biāo)記為邊界所在層數(shù),具體步驟如下:
(2.1)將邊界中同一橫坐標(biāo)的像素點(diǎn)集合到一起;
(2.2)將同一橫坐標(biāo)的像素點(diǎn)從小到大排序;
(2.3)首先判斷這些同一橫坐標(biāo)的像素點(diǎn)的縱坐標(biāo)相差是否大于1,若大于I再判斷是否屬于邊界內(nèi)部,若屬于,則標(biāo)記為所在層數(shù);
(3)對(duì)所提取的邊界進(jìn)行無損壓縮性質(zhì)的存儲(chǔ):
(3.1)定義位域,將一個(gè)字節(jié)的8個(gè)比特位進(jìn)行劃分;
(3.2 )將步驟(1.2 )中提到的8個(gè)相對(duì)位置分別命名為0,I,2,3,4,5,6,7;
(3.3)將邊界提取過程中實(shí)際提取出的邊界相對(duì)位置以位域的方式進(jìn)行存儲(chǔ);
(4)繼續(xù)掃描像素點(diǎn),步驟(2)標(biāo)記的區(qū)域不在掃描范圍內(nèi),若存在其他邊界,處理方式同上述步驟(I)至步驟(3),直至掃描至該層結(jié)尾;
(5)依次按層數(shù)掃描提取出的邊界以及邊界內(nèi)部,方法同步驟(I)至步驟(4),直至所有邊界點(diǎn)及內(nèi)部全部被掃描。
[0005]所述的步驟(2)中的邊界所在層數(shù)是指:每當(dāng)完整提取出一條完整邊界,依次按照提取順序命名為1,2,3……命名序號(hào)即為該邊界內(nèi)部的層數(shù)。
[0006]所述的步驟(2.3)中的判斷邊界點(diǎn)之間的點(diǎn)是否屬于邊界的內(nèi)部的具體方法是:判斷過程中會(huì)遇到附圖所示的兩種情況,若為第一種情況則這些點(diǎn)屬于邊界內(nèi)部,若為第二種情況則不屬于邊界內(nèi)部。具體的判斷方法為:取兩邊界點(diǎn)中點(diǎn)坐標(biāo),在所有邊界點(diǎn)中搜索與該中點(diǎn)坐標(biāo)具有相同縱坐標(biāo)的邊界點(diǎn),比較這些邊界點(diǎn)與該中點(diǎn)的橫坐標(biāo),若搜索到的邊界點(diǎn)橫坐標(biāo)全部大于或全部小于該中點(diǎn)橫坐標(biāo),則屬于第二種情況,不屬于邊界內(nèi)部;若搜索到的邊界點(diǎn)橫坐標(biāo)既存在大于該中點(diǎn)橫坐標(biāo)的又存在小于該點(diǎn)橫坐標(biāo)的,則屬于第一種情況,屬于邊界內(nèi)部。
[0007]所述的步驟(3.1)中的定義位域的具體方法是:設(shè)置三個(gè)位域結(jié)構(gòu)體,其位域列表中變量的長(zhǎng)度定義有所不同,每個(gè)位域結(jié)構(gòu)體定義的總長(zhǎng)度都為一個(gè)字節(jié),第一個(gè)位域結(jié)構(gòu)體中的三個(gè)變量所占長(zhǎng)度依次為3比特,3比特,2比特;第二個(gè)位域結(jié)構(gòu)體中的四個(gè)變量所占長(zhǎng)度依次為I比特,3比特,3比特,I比特;第三個(gè)位域結(jié)構(gòu)體中的三個(gè)變量所占長(zhǎng)度依次為2比特,3比特,3比特,這樣三個(gè)位域結(jié)構(gòu)體每依次存儲(chǔ)一次,總共占用內(nèi)存3個(gè)字節(jié),可以存儲(chǔ)8個(gè)邊界相對(duì)位置。
[0008]本發(fā)明的有益效果在于:
1、本發(fā)明針對(duì)醫(yī)學(xué)影像本身為灰度圖且輪廓層次清晰的特點(diǎn),相對(duì)于已有的通用無損壓縮方法,提高了醫(yī)學(xué)影像壓縮的壓縮比,并且由于醫(yī)學(xué)影像自身應(yīng)用領(lǐng)域的特殊性,本發(fā)明方法的每一步均是可逆的,保證了壓縮的可還原性。
[0009]2、本發(fā)明用終端的計(jì)算量來?yè)Q取更小的網(wǎng)絡(luò)帶寬消耗以及更小的存儲(chǔ)空間消耗,并且節(jié)約了傳輸時(shí)間,從根本上同時(shí)解決醫(yī)學(xué)影像在存儲(chǔ)和傳輸中所造成的壓力。從而可以緩解由于隨著醫(yī)學(xué)影像數(shù)量不斷增加而導(dǎo)致的對(duì)存儲(chǔ)產(chǎn)生的壓力,以及對(duì)網(wǎng)絡(luò)產(chǎn)生的壓力。實(shí)用性強(qiáng)。
【附圖說明】
[0010]此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。
[0011 ] 圖1為本發(fā)明的流程圖;
圖2為本發(fā)明的邊界點(diǎn)之間的點(diǎn)屬于邊界內(nèi)部的示意圖;
圖3為本發(fā)明的邊界點(diǎn)之間的點(diǎn)不屬于邊界內(nèi)部的示意圖。
【具體實(shí)施方式】
[0012]下面結(jié)合附圖進(jìn)一步說明本發(fā)明的詳細(xì)內(nèi)容及其【具體實(shí)施方式】。
[0013]參見圖1至圖3所示,本發(fā)明的以邊界提取為基礎(chǔ)的醫(yī)學(xué)影像無損壓縮方法,是將醫(yī)學(xué)影像中的所有邊逐層提取,并存儲(chǔ)邊界及邊界間的包含關(guān)系,在存儲(chǔ)的同時(shí)做到對(duì)圖像的無損壓縮,其具體步驟如下: (1)讀取DICOM醫(yī)學(xué)影像,提取文件頭;
(2)對(duì)邊界進(jìn)行提??;
(2.1)掃描像素點(diǎn),找到第一個(gè)與背景像素不同的像素點(diǎn),命名為點(diǎn)I ;
(2.2)在點(diǎn)I的左上,上,右上,右,右下,下,左下,左八個(gè)位置中檢索是否存在與點(diǎn)I完全相同的像素點(diǎn),若存在,命名為點(diǎn)2 ;
(2.3)以點(diǎn)2為中心執(zhí)行步驟(1.2),將存在的點(diǎn)依次命名為點(diǎn)3,點(diǎn)4……,直至掃描回到點(diǎn)I,結(jié)束檢索;
(3)步驟(I)提取出的邊界必定是一個(gè)閉合的區(qū)域,設(shè)置一個(gè)與圖像等大的二維數(shù)組,初始值全部為0,將剛剛提取出的邊界以及邊界內(nèi)部包含的像素點(diǎn)全部在二維數(shù)組中標(biāo)記為邊界所在層數(shù),具體步驟如下:
(3.1)將邊界中同一橫