亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種實現(xiàn)病案高清掃描的方法與流程

文檔序號:11624089閱讀:741來源:國知局

本發(fā)明涉及一種病案掃描技術,具體涉及一種實現(xiàn)病案高清掃描的方法。



背景技術:

病案指按規(guī)范記錄病人疾病表現(xiàn)和診療情況的檔案,由醫(yī)療機構的病案管理部門按相關規(guī)定保存。不僅有紙質的,還有電子文檔、醫(yī)學影像檢查膠片、病理切片等保存形式。指醫(yī)務人員記錄疾病診療過程的文件,它客觀地、完整地、連續(xù)的記錄了病人的病情變化、診療經(jīng)過、治療效果及最終轉歸,是醫(yī)療、教學、科研的基礎資料,也是醫(yī)學科學的原始檔案材料,現(xiàn)有的病案都是通過掃描儀進行掃描轉化為圖片存儲在電腦上,因病案的掃描量極大,掃描件的清晰度無法得到保證,但現(xiàn)有的技術很難克服上述問題。



技術實現(xiàn)要素:

本發(fā)明要解決的技術問題是克服現(xiàn)有的的問題,提供一種實現(xiàn)病案高清掃描的方法。

為了解決上述技術問題,本發(fā)明提供了如下的技術方案:

本發(fā)明提供了一種實現(xiàn)病案高清掃描的方法,包括如下步驟:選擇一款600dpi分辨率的高拍儀,并將將高拍儀的數(shù)據(jù)線和電腦usb接口連接,安裝高拍儀的驅動程序,安裝完成后,找一處桌面光照均勻的地方將高拍儀擺放好,將需要掃描的病案平整放在高拍儀的攝像頭下方,使用電腦上的軟件對其進行掃描,掃描時,高拍儀中的燈管從攝像頭處將光線照射到待掃描的病案上,光線反射后由cmos感光元件接收,但是由于圖像色彩的深淺不一,使得反射光強度也各不相同,感光元件可以接收各種強度的光并轉化為二進制的數(shù)字符號,最后由控制掃描的軟件把這些數(shù)據(jù)還原為顯示器上可以看到的圖像,并存儲在存儲器中。

作為本發(fā)明的一種優(yōu)選技術方案,所述存儲器中的圖片將通過usb傳輸?shù)姆绞缴蟼鞯诫娔X中,再將其上傳到服務器上,在服務器中采用最臨近點插值算法、雙線性插值算法、雙立方插值算法、等多種算法對掃描圖片進行處理。

作為本發(fā)明的一種優(yōu)選技術方案,所述最臨近點插值算法是當二維數(shù)字圖像從源圖像n*m被放為(j*n)*(k*m)目標圖像是,參照數(shù)學斜率計算公式必然有:(x1-xmin)/(xmax-xmin)=(y1-ymin)/(ymax-ymin),當xmin和ymin均為從零開始的像素點時,公式可以簡化為:x=y(tǒng)1(xmax/ymax),對于任意一幅源圖像來說,假設放大后目標圖像的寬為dw高為dh,任意目標像素點(dx,dy),在源圖像上的位置為:sx=dx*(sh/dh)//row;sy=dy*(sw/dw)//column;其中,(sx,sy)為對于的源圖像上的像素點,sw和sh分別為源圖像的寬度和高度。最終有dpixel(dx,dy)=spixel(sx,sy)。

作為本發(fā)明的一種優(yōu)選技術方案,所述雙線性插值算法是對于一個目的像素,設置坐標通過反向變換得到的浮點坐標為(i+u,j+v),(其中i、j均為浮點坐標的整數(shù)部分,u、v為浮點坐標的小數(shù)部分,是取值[0,1)區(qū)間的浮點數(shù)),則這個像素得值f(i+u,j+v)可由原圖像中坐標為(i,j)、(i+1,j)、(i,j+1)、(i+1,j+1)所對應的周圍四個像素的值決定,即:f(i+u,j+v)=(1-u)(1-v)f(i,j)+(1-u)vf(i,j+1)+u(1-v)f(i+1,j)+uvf(i+1,j+1)其中f(i,j)表示源圖像(i,j)處的的像素值,以此類推。

作為本發(fā)明的一種優(yōu)選技術方案,所述雙立方插值算法涉及到16個像素點,其中(i’,j’)表示待計算像素點在源圖像中的包含小數(shù)部分的像素坐標,dx表示x方向的小數(shù)坐標,dy表示y方向的小數(shù)坐標,雙立方插值是立方插值在二維空間的表達,插值公式可以表述為:g(x,y)=f(f(p00,p01,p02,p03,y),f(p10,p11,p12,p13,y),f(p20,p21,p22,p23,y),f(p30,p31,p32,p33,y),x)解出其中的16個參數(shù),即可得帶g(x,y)目標插值點的值。

本發(fā)明所達到的有益效果是:該方案是一種實現(xiàn)病案高清掃描的方法,該方案采用高拍儀進行紙質病案掃描,掃描后的病案圖片將以文件的形式存儲到服務器上,后臺采用最臨近點插值算法、雙線性插值算法、雙立方插值算法、最臨近點插值縮放等多種算法對掃描圖片進行處理,保證掃描件的高清晰度。

附圖說明

附圖用來提供對本發(fā)明的進一步理解,并且構成說明書的一部分,與本發(fā)明的實施例一起用于解釋本發(fā)明,并不構成對本發(fā)明的限制。在附圖中:

圖1是本發(fā)明的實施模塊示意圖;

具體實施方式

以下結合附圖對本發(fā)明的優(yōu)選實施例進行說明,應當理解,此處所描述的優(yōu)選實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。

實施例1

如圖1所示,本發(fā)明提供一種實現(xiàn)病案高清掃描的方法,包括如下步驟:選擇一款600dpi分辨率的高拍儀,并將將高拍儀的數(shù)據(jù)線和電腦usb接口連接,安裝高拍儀的驅動程序,安裝完成后,找一處桌面光照均勻的地方將高拍儀擺放好,將需要掃描的病案平整放在高拍儀的攝像頭下方,使用電腦上的軟件對其進行掃描,掃描時,高拍儀中的燈管從攝像頭處將光線照射到待掃描的病案上,光線反射后由cmos感光元件接收,但是由于圖像色彩的深淺不一,使得反射光強度也各不相同,感光元件可以接收各種強度的光并轉化為二進制的數(shù)字符號,最后由控制掃描的軟件把這些數(shù)據(jù)還原為顯示器上可以看到的圖像,并存儲在存儲器中。

存儲器中的圖片將通過usb傳輸?shù)姆绞缴蟼鞯诫娔X中,再將其上傳到服務器上,在服務器中采用最臨近點插值算法、雙線性插值算法、雙立方插值算法、等多種算法對掃描圖片進行處理。

最臨近點插值算法是當二維數(shù)字圖像從源圖像n*m被放為(j*n)*(k*m)目標圖像是,參照數(shù)學斜率計算公式必然有:(x1-xmin)/(xmax-xmin)=(y1-ymin)/(ymax-ymin),當xmin和ymin均為從零開始的像素點時,公式可以簡化為:x=y(tǒng)1(xmax/ymax),對于任意一幅源圖像來說,假設放大后目標圖像的寬為dw高為dh,任意目標像素點(dx,dy),在源圖像上的位置為:sx=dx*(sh/dh)//row;sy=dy*(sw/dw)//column;其中,(sx,sy)為對于的源圖像上的像素點,sw和sh分別為源圖像的寬度和高度。最終有dpixel(dx,dy)=spixel(sx,sy)。

雙線性插值算法是對于一個目的像素,設置坐標通過反向變換得到的浮點坐標為(i+u,j+v),(其中i、j均為浮點坐標的整數(shù)部分,u、v為浮點坐標的小數(shù)部分,是取值[0,1)區(qū)間的浮點數(shù)),則這個像素得值f(i+u,j+v)可由原圖像中坐標為(i,j)、(i+1,j)、(i,j+1)、(i+1,j+1)所對應的周圍四個像素的值決定,即:f(i+u,j+v)=(1-u)(1-v)f(i,j)+(1-u)vf(i,j+1)+u(1-v)f(i+1,j)+uvf(i+1,j+1)其中f(i,j)表示源圖像(i,j)處的的像素值,以此類推。

雙立方插值算法涉及到16個像素點,其中(i’,j’)表示待計算像素點在源圖像中的包含小數(shù)部分的像素坐標,dx表示x方向的小數(shù)坐標,dy表示y方向的小數(shù)坐標,雙立方插值是立方插值在二維空間的表達,插值公式可以表述為:g(x,y)=f(f(p00,p01,p02,p03,y),f(p10,p11,p12,p13,y),f(p20,p21,p22,p23,y),f(p30,p31,p32,p33,y),x)解出其中的16個參數(shù),即可得帶g(x,y)目標插值點的值。

需要說明的是,最臨近點插值算法從bufferedimage對象中獲取像素數(shù)組的代碼如下:

inttype=img.gettype();

if(type==bufferedimage.type_int_argb||

type==bufferedimage.type_int_rgb){

img.getraster().setdataelements(x,y,width,height,pixelsdata);

}

else{

img.setrgb(x,y,width,height,pixelsdata,0,width);

}

1

從源圖像對象一維像素數(shù)組轉換為三維對象數(shù)組,代碼如下:

int[][][]tempdata=newint[imgrows][imgcols][4];

tempdata[row][col][0]=(arow[col]>>24)&0xff;//alpha

tempdata[row][col][1]=(arow[col]>>16)&0xff;//red

tempdata[row][col][2]=(arow[col]>>8)&0xff;//green

tempdata[row][col][3]=(arow[col])&0xff;//blue

首先要計算行與列的縮放比例,計算代碼如下:

floatrowratio=((float)srch)/((float)desth);

floatcolratio=((float)srcw)/((float)destw);

計算源像素點的行位置:

intsrcrow=math.round(((float)row)*rowratio);

計算源像素點的列位置:

intsrccol=math.round(((float)col)*colratio);

程序源代碼

publicclassnearnaighborzoomimplementsimagescale{

publicnearnaighborzoom(){

}

/**

*(x-xmin)/(xmax-xmin)=(y-ymin)/(ymax-ymin)

*assumexminandyminarezero,thentheformulawillbef(x)=kx(k-coefficent,slope)

*

*/

@override

publicint[]imgscale(int[]inpixelsdata,intsrcw,intsrch,intdestw,intdesth){

int[][][]inputthreedeminsiondata=processonetothreedeminsion(inpixelsdata,srch,srcw);

int[][][]outputthreedeminsiondata=newint[desth][destw][4];

floatrowratio=((float)srch)/((float)desth);

floatcolratio=((float)srcw)/((float)destw);

for(introw=0;row<desth;row++){

//converttothreedimensiondata

intsrcrow=math.round(((float)row)*rowratio);

if(srcrow>=srch){

srcrow=srch-1;

2

}

for(intcol=0;col<destw;col++){

intsrccol=math.round(((float)col)*colratio);

if(srccol>=srcw){

srccol=srcw-1;

}

outputthreedeminsiondata[row][col][0]=inputthreedeminsiondata[srcrow][srccol][0];//alpha

outputthreedeminsiondata[row][col][1]=inputthreedeminsiondata[srcrow][srccol][1];//red

outputthreedeminsiondata[row][col][2]=inputthreedeminsiondata[srcrow][srccol][2];//green

outputthreedeminsiondata[row][col][3]=inputthreedeminsiondata[srcrow][srccol][3];//blue

}

}

returnconverttoonedim(outputthreedeminsiondata,destw,desth);

}

/*<p>thepurposeofthismethodistoconvertthedatainthe3darrayofintsbackinto</p>

*<p>the1darrayoftypeint.</p>

*

*/

publicint[]converttoonedim(int[][][]data,intimgcols,intimgrows){

//createthe1darrayoftypeinttobepopulatedwithpixeldata

int[]onedpix=newint[imgcols*imgrows*4];

//movethedataintothe1darray.notethe

//useofthebitwiseoroperatorandthe

//bitwiseleft-shiftoperatorstoputthe

//four8-bitbytesintoeachint.

for(introw=0,cnt=0;row<imgrows;row++){

for(intcol=0;col<imgcols;col++){

onedpix[cnt]=((data[row][col][0]<<24)&0xff000000)

|((data[row][col][1]<<16)&0x00ff0000)

|((data[row][col][2]<<8)&0x0000ff00)

|((data[row][col][3])&0x000000ff);

cnt++;

}//endforlooponcol

}//endforlooponrow

returnonedpix;

}//endconverttoonedim

privateint[][][]processonetothreedeminsion(int[]onedpix2,intimgrows,intimgcols){

int[][][]tempdata=newint[imgrows][imgcols][4];

for(introw=0;row<imgrows;row++){

//perrowprocessing

int[]arow=newint[imgcols];

for(intcol=0;col<imgcols;col++){

intelement=row*imgcols+col;

arow[col]=onedpix2[element];

}

//converttothreedimensiondata

for(intcol=0;col<imgcols;col++){

tempdata[row][col][0]=(arow[col]>>24)&0xff;//alpha

tempdata[row][col][1]=(arow[col]>>16)&0xff;//red

tempdata[row][col][2]=(arow[col]>>8)&0xff;//green

tempdata[row][col][3]=(arow[col])&0xff;//blue

}

}

returntempdata;

}

雙線性插值算法代碼intx=(i+0.5)*m/a-0.5

inty=(j+0.5)*n/b-0.5

代替

intx=i*m/a

inty=j*n/b

所述雙立方插值算法的java源代碼如下:

本發(fā)明所達到的有益效果是:該方案是一種實現(xiàn)病案高清掃描的方法,該方案采用高拍儀進行紙質病案掃描,掃描后的病案圖片將以文件的形式存儲到服務器上,后臺采用最臨近點插值算法、雙線性插值算法、雙立方插值算法、最臨近點插值縮放等多種算法對掃描圖片進行處理,保證掃描件的高清晰度。

最后應說明的是:以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,盡管參照前述實施例對本發(fā)明進行了詳細的說明,對于本領域的技術人員來說,其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換。凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1