第3章彩色圖像處理_第1頁(yè)
第3章彩色圖像處理_第2頁(yè)
第3章彩色圖像處理_第3頁(yè)
第3章彩色圖像處理_第4頁(yè)
第3章彩色圖像處理_第5頁(yè)
已閱讀5頁(yè),還剩40頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第三章彩色圖像處理3.124位彩色圖像的讀取與顯示3.2彩色圖像的特效處理3.3彩色圖像的界面切換技術(shù)3.4彩色圖像的動(dòng)畫(huà)技術(shù)程序設(shè)計(jì)

打開(kāi)文件:Open文件名ForBinaryAs#文件號(hào)讀取文件:Get#文件號(hào),起始字節(jié),變量名關(guān)閉文件:Close#文件號(hào)3.124位彩色圖像的讀取與顯示

OpenCDlg1.FileName

ForBinaryAs#1Get#1,19,w:

Get#1,23,h:

Seek#1,55Forj=h-1To0step-1Fori=0Tow-1Fork=2To0Get#1,,pic(i,j,k)NextkNextiIfw*3mod4<>0ThenFork=1To4-((w*3)Mod4)Get#1,,pixNextkEndIfNextjClose#13.124位彩色圖像的讀取與顯示3.2彩色圖像的特效處理對(duì)一幅彩色圖像的各像素值的R、G、B分量按一定的算法進(jìn)行變換,并將變換后的新圖像值重新顯示出來(lái),則可實(shí)現(xiàn)不同效果圖像的顯示。

對(duì)每個(gè)像素的R、B、G三分量分別求逆,即用255分別減去當(dāng)前像素的R、G、B三個(gè)分量值,將得到的新值作為圖像處理后的值:

g(i,j)=255-f(i,j)3.2.1逆反處理Forj=0Toh-1Fori=0Tow-1

r=255–pic(i,j,0)

g=255–pic(i,j,1)

b=255–pic(i,j,2)

P.PSet(i,j),RGB(r,g,b)NextiNextj3.2.1逆反處理3.2.2平滑處理將源圖中的每個(gè)像素都由其相鄰N×N(如3×3)個(gè)像素的平均值來(lái)代替。設(shè)源圖像素的某一顏色分量值為f(i,j),平均處理后該像素的某一顏色分量值為g(i,j)。g(i,j)=(f(i-1,j-1)+f(i,j-1)+f(i+1,j-1)+f(i-1,j)+f(i,j)+f(i+1,j)+f(i-1,j+1)+f(i,j+1)+f(i+1,j+1))/9

n=Val(Text1.Text):n1=n*n:n2=n\2Forj=n2Toh–1-n2Fori=n2Tow–1-n2

rr=0:gg=0:bb=0Fork1=-n2Ton2Fork2=-n2Ton2

rr=rr+pic(i+k1,j+k2,0)

gg=gg+pic(i+k1,j+k2,1)

bb=bb+pic(i+k1,j+k2,2)Nextk2Nextk1

rr=rr\n1:gg=gg\n1:bb=bb\n1Picture2.PSet(i,j),RGB(rr,gg,bb)NextiNextj3.2.2平滑處理3.2.3霓紅處理

計(jì)算源圖像素f(i,j)的三個(gè)分量與相鄰像素f(i+1,j)、f(i,j+1)的三個(gè)分量的梯度(差的平方之和的平方根),然后將梯度值作為處理后像素g(i,j)的三個(gè)分量值。

Forj=0Toh-1Fori=0Tow-1

r=sqr((pic(i,j,0)-pic(i+1,j,0))^2+(pic(i,j,0)-pic(i,j+1,0))^2)

g=sqr((pic(i,j,1)-pic(i+1,j,1))^2+(pic(i,j,1)-pic(i,j+1,1))^2)

b=sqr((pic(i,j,2)-pic(i+1,j,2))^2+(pic(i,j,2)-pic(i,j+1,2))^2)Picture2.PSet(i,j),RGB(r,g,b)NextiNextj3.2.3霓紅處理3.2.4邊緣銳化源圖像素f(i,j)三分量值與相鄰像素f(i-1,j-1)的三分量值按下式計(jì)算得處理后像素g(i,j)的三分量值。(式中k可根據(jù)圖像具體內(nèi)容確定)。

3.2.4邊緣銳化

Forj=1Toh-1Fori=1Tow-1

r=pic(i,j,0)-Abs(pic(i,j,0)-pic(i-1,j-1,0))

g=pic(i,j,1)-Abs(pic(i,j,1)-pic(i-1,j-1,1))

b=pic(i,j,2)-Abs(pic(i,j,2)-pic(i-1,j-1,2))Picture1.PSet(i,j),RGB(r,g,b)NextiNextj3.2.5浮雕處理計(jì)算源圖像素f(i,j)三分量值與相鄰像素f(i-1,j)三分量值之差后加上一個(gè)常數(shù),然后將該三分量值作為處理后像素g(i,j)的值。

Forj=0Toh-1Fori=1Tow-1

r=pic(i,j,0)-pic(i-1,j,0)+128

g=pic(i,j,1)-pic(i-1,j,1)+128

b=pic(i,j,2)-pic(i-1,j,2)+128Picture1.PSet(i,j),RGB(r,g,b)NextiNextj3.2.5浮雕處理3.2.6鑲嵌處理處理后圖像每一小區(qū)域內(nèi)的所有像素都取此區(qū)域內(nèi)源圖像各像素值之和的平均值。

g(i,j)=(f(i-1,j-1)+f(i,j-1)+f(i+1,j-1)+f(i-1,j)+f(i,j)+f(i+1,j)+f(i-1,j+1)+f(i,j+1)+f(i+1,j+1))/9g(i-1,j-1)g(i,j-1)g(i+1,j-1)g(i-1,j)g(i,j)g(i+1,j)g(i-1,j+1)g(i,j+1)g(i+1,j+1)g(i

,j)n=Val(Text1.Text):n1=n*n:n2=n\2Forj=n2Toh–n2-1StepnFori=n2Tow–n2-1Stepnr=0:g=0:b=0Fork1=-n2Ton2Fork2=-n2Ton2

r=r+pic(i+k1,j+k2,0)

g=g+pic(i-k1,j+k2,1)

b=b+pic(i+k1,j+k2,2)Nextk2Nextk1

r=r\n1:g=g\n1:b=b\n1Fork1=-n2Ton2Fork2=-n2Ton2Picture1.PSet(i+k1,j+k2),RGB(r,g,b)Nextk2Nextk1NextiNextj3.2.6鑲嵌處理3.2.7曝光處理逆轉(zhuǎn)小于128的基本顏色。如:(58,199,130)==》(197,199,130)

R<128:RR=255-RG<128:GG=255-GB<128:BB=255-B

Forj=0Toh-1Fori=0Tow-1

r=pic(i,j,0):

g=pic(i,j,1):

b=pic(i,j,2)Ifr<128Thenr=255-rIfg<128Theng=255-gIfb<128Thenb=255-bPicture8.PSet(i,j),RGB(r,g,b)NextiNextj3.2.7曝光處理3.2.8擴(kuò)散處理從當(dāng)前N×N相鄰的像素中隨意選取一個(gè)值作為區(qū)域中心像素的值。

n=Val(Text1.Text)n1=n*nn2=n\2Forj=n2Toh-n2-1Fori=n2Tow-n2-1xx=Rnd()*(n-1)-n2

yy=Rnd()*(n-1)-n2r=pic(i+xx,j+yy,0)g=pic(i+xx,j+yy,1)b=pic(i+xx,j+yy,2)Picture1.PSet(i,j),RGB(r,g,b)NextiNextj3.3彩色圖像的界面切換技術(shù)

3.3.1圖像從上下進(jìn)入對(duì)接進(jìn)入界面Forj=0Toh/2Fori=0Tow-1

P.PSet(i,j),RGB(pic(i,j,0),pic(i,j,1),pic(i,j,2))

P.PSet(i,h-j-1),RGB(pic(i,h-j-1,0),pic(i,h-j-1,1),pic(i,h-j-1,2))NextiNextj3.3.1圖像從上下對(duì)接進(jìn)入界面3.3.2圖像從左上到右下逐漸進(jìn)入界面

Ifw>hThenn=wElsen=hEndIfFork=1Ton-1Forj=0TokIfj<wAndk<hThenP.PSet(j,k),RGB(pic(j,k,0),pic(j,k,1),pic(j,k,2))Ifj<hAndk<wThenP.PSet(k,j),RGB(pic(k,j,0),pic(k,j,1),pic(k,j,2))NextjNextk3.3.2圖像從左上到右下逐漸進(jìn)入界面

3.3.3圖像從中央向四周擴(kuò)展進(jìn)入界面3.3.3圖像從中央向四周擴(kuò)展進(jìn)入界面

xmid=Int(w/2):

ymid=Int(h/2)Max=Int((IIf(h<w,w,h)/2)):Min=Int((IIf(h>w,w,h)/2))

P.PSet(xmid,ymid),RGB(pic(xmid,ymid,0),pic(xmid,ymid,1),pic(xmid,ymid,2))Fork=1ToMinFori=xmid-kToxmid+k'顯示四周的水平像素

P.PSet(i,ymid-k),RGB(pic(i,ymid-k,0),pic(i,ymid-k,1),pic(i,ymid-k,2))

P.PSet(i,ymid+k),RGB(pic(i,ymid+k,0),pic(i,ymid+k,1),pic(i,ymid+k,2))NextiForj=ymid-kToymid+k'顯示四周的垂直像素

P.PSet(xmid-k,j),RGB(pic(xmid-k,j,0),pic(xmid-k,j,1),pic(xmid-k,j,2))

P.PSet(xmid+k,j),RGB(pic(xmid+k,j,0),pic(xmid+k,j,1),pic(xmid+k,j,2))NextjNextk

Ifh>wThen'顯示非正方形圖像的多余高度的垂直像素

Fork=MinToMaxFori=0Tow-1

P.PSet(i,ymid-k),RGB(pic(i,ymid-k,0),pic(i,ymid-k,1),pic(i,ymid-k,2))

P.PSet(i,ymid+k),RGB(pic(i,ymid+k,0),pic(i,ymid+k,1),pic(i,ymid+k,2))NextiNextk

ElseIfh<wThen'顯示非正方形圖像的多余寬度的垂直像素

Fork=MinToMaxForj=0Toh-1

P.PSet(xmid-k,j),RGB(pic(xmid-k,j,0),pic(xmid-k,j,1),pic(xmid-k,j,2))

P.PSet(xmid+k,j),RGB(pic(xmid+k,j,0),pic(xmid+k,j,1),pic(xmid+k,j,2))NextjNextkEndIf3.3.3圖像從中央向四周擴(kuò)展進(jìn)入界面x0=Int(w/2)y0=Int(h/2)max=Int((IIf(h<w,w,h)/2))P.PSet(x0,y0),RGB(pic1(x0,y0,0),pic1(x0,y0,1),pic1(x0,y0,2))Forr=1Tomax+40dc=1#/(6.28*r)Forc=0#To6.28Stepdcx=x0+r*Cos(c)y=y0+r*Sin(c)Ifx>=0Andx<wAndy>=0Andy<hThen

P.PSet(x,y),RGB(pic1(x,y,0),pic1(x,y,1),pic1(x,y,2))EndIfNextNext3.3.3圖像從中央向四周擴(kuò)展進(jìn)入界面3.3.4圖像以斜線方式進(jìn)入界面3.3.4圖像以斜線方式進(jìn)入界面n=IIf(w>h,w,h)Ford=1To450'n*2y=dForx=0TodIfx<wAndy<hThenPicture1.PSet(x,y),RGB(pic(x,y,0),pic(x,y,1),pic(x,y,2))EndIfy=y-1NextNext3.3.5圖像以漸顯方式進(jìn)入界面

3.3.5圖像以漸顯方式進(jìn)入界面Forj=0Toh-1Step2Fori=0Tow-1Step2Picture1.PSet(i,j),RGB(pic(i,j,0),pic(i,j,1),pic(i,j,2))NextiNextjForj=1Toh-1Step2Fori=1Tow-1Step2Picture1.PSet(i,j),RGB(pic(i,j,0),pic(i,j,1),pic(i,j,2))NextiNextjForj=0Toh-1Step2Fori=1Tow-1Step2Picture1.PSet(i,j),RGB(pic(i,j,0),pic(i,j,1),pic(i,j,2))NextiNextjForj=1Toh-1Step2Fori=0Tow-1Step2Picture1.PSet(i,j),RGB(pic(i,j,0),pic(i,j,1),pic(i,j,2))NextiNextj3.3.6利用Bitblt函數(shù)實(shí)現(xiàn)界面切換PublicDeclareFunctionBitBltLib"gdi32"(ByVal

hDestDCAsLong,’目標(biāo)圖設(shè)備ByValxAsLong,’目標(biāo)圖起點(diǎn)ByValyAsLong,’目標(biāo)圖起點(diǎn)ByVal

nWidthAsLong,’目標(biāo)圖寬ByVal

nHeightAsLong,’目標(biāo)圖高ByVal

hSrcDCAsLong,’源圖設(shè)備ByVal

xSrcAsLong,’源圖起點(diǎn)ByVal

ySrcAsLong,’源圖起點(diǎn)ByVal

dwRopAsLong‘復(fù)制方式,如果是完全復(fù)制,值為&HCC0020)AsLong(1)Bitblt函數(shù)的使用方法對(duì)于像素(i,j)復(fù)制到(h-j-1,i),使用Bitblt函數(shù)方法為:BitBltPicture2.hDC,h–j-1,i,1,1,Picture1.hDC,i,j,&HCC0020ijh-j-1hi(1)Bitblt函數(shù)的使用方法如果要將圖像旋轉(zhuǎn)90,則程序代碼為:Fori=0TowForj=0Toh

BitBltPicture2.hDC,h–j-1,i,1,1,Picture1.hDC,i,j,&HCC0020NextjNextihw(2)圖像上下移動(dòng)進(jìn)入界面ijFori=0Toh/2+1

BitBltPicture2.hDC,0,0,w,i,Picture1.hDC,0,h/2-i,&HCC0020

BitBltPicture2.hDC,0,h-i,w,i,Picture1.hDC,0,h/2,&HCC0020Nexti(3)圖像交叉飛入界面iw-i-1Fori=0Tow-1

BitBltP2.hDC,0,0,i,h/4,P1.hDC,w-i-1,0,&HCC0020

BitBltP2.hDC,w-i-1,h/4-1,i,h/4,P1.hDC,0,h/4-1,&HCC0020

BitBltP2.hDC,0,h/2-1,i,h/4,P1.hDC,w-i-1,h/2-1,&HCC0020

BitBltP2.hDC,w-i-1,3*h/4-1,i,h/4,P1.hDC,0,3*h/4-1,&HCC0020Nexti(4)圖像四面八方飛入界面(4)圖像四面八方飛入界面Ifw>hThenn=w/hFori=0To60'h/3+1Fork=1To20

BitBltP2.hDC,0,0,n*i,i,P1.hDC,w/3-n*i,h/3-i,&HCC0020

BitBltP2.hDC,w/3,0,w/3,i,P1.hDC,w/3,h/3-i,&HCC0020

BitBltP2.hDC,w-n*i,0,n*i,i,P1.hDC,2*w/3,h/3-i,&HCC0020

BitBltP2.hDC,0,h/3,n*i,h/3,P1.hDC,w/3-n*i,h/3,&HCC0020

BitBltP2.hDC,w-n*i,h/3,n*i,h/3,P1.hDC,2*w/3,h/3,&HCC0020

BitBltP2.hDC,0,h-i,n*i,i,P1.hDC,w/3-n*i,2*h/3,&HCC0020

BitBltP2.hDC,w/3,h-i,w/3,i,P1.hDC,w/3,2*h/3,&HCC0020

BitBltP2.hDC,w-n*i,h-i,n*i,i,P1.hDC,2*w/3,2*h/3,&HCC0020

BitBltP2.hDC,w/2-n*i/2,h/2-i/2,n*i,i,P1.hDC,w/2-n*i/2,h/2-i/2,&HCC0020NextNextiElsen=h/wFori=0Tow/3+1Fork=1To20

BitBltP2.hDC,0,0,i,n*i,P1.hDC,w/3-i,h/3-n*i,&HCC0020

BitBltP2.hDC,w/3,0,w/3,n*i,P1.hDC,w/3,h/3-n*i,&HCC0020

BitBltP2.hDC,w-i,0,i,n*i,P1.hDC,2*w/3,h/3-n*i,&HCC0020

BitBltP2.hDC,0,h/3,i,h/3,P1.hDC,w/3-i,h/3,&HCC0020

BitBltP2.hDC,w-i,h/3,i,h/3,P1.hDC,2*w/3,h/3,&HCC0020

BitBltP2.hDC,0,h-n*i,i,n*i,P1.hDC,w/3-i,2*h/3,&HCC0020

BitBltP2.hDC,w/3,h-n*i,w/3,n*i,P1.hDC,w/3,2*h/3,&HCC0020

BitBltP2.hDC,w-i,h-n*i,i,n*i,P1.hDC,2*w/3,2*h/3,&HCC0020

BitBltP2.hDC,w/2-i/2,h/2-n*i/2,i,n*i,P1.hDC,w/2-i/2,h/2-n*i/2,&HCC0020NextNextiEndIf(4)圖像四面八方飛入界面(5)圖像以門(mén)簾效果進(jìn)入界面Fori=0Tow/10+1Forj=0To10

BitBltPicture2.hDC,j*w/10,0,i,h,Picture1.hDC,j*w/10,0,&HCC0020NextNexti(6)圖像以工字效果進(jìn)入界面Fori=0Tow/3+w/6

BitBltP2.hDC,w/3-i,h/3-i,w/3+2*i,i,P1.hDC,w/3-i,h/3-i,&HCC0020

BitBltP2.hDC,w/3-i,2*h/3,w/3+2*i,i,P1.hDC,w/3-i,2*h/3,&HCC0020

BitBltP2.hDC,w/2-i,h/3,2*i,h/3,P1.hDC,w/2-i,h/3,&HCC0020Nexti2.4彩色圖像的動(dòng)畫(huà)技術(shù)2.4.1位置不動(dòng)、形態(tài)變化的動(dòng)畫(huà)PrivateSubForm_Load()Picture2.Picture=LoadPicture("circle1.bmp")Picture3.Picture=LoadPicture("circle2.bmp")Picture4.Pict

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論