|
圖像處理技術(shù)實(shí)驗(yàn)報(bào)告
專業(yè)班級(jí):軟件工程0707班 姓 名: 學(xué) 號(hào): 指導(dǎo)教師:
東北大學(xué) 軟件學(xué)院 2010 年 12 月
1 1/9頁(yè) 數(shù)字圖像處理技術(shù)簡(jiǎn)介 引 言 隨著科學(xué)技術(shù)的不斷發(fā)展,計(jì)算機(jī)的更新速度不斷提高,人們的思想文化素質(zhì)的提高,對(duì)圖像的要求也越來(lái)越高。因此把原始圖像與計(jì)算機(jī)結(jié)合起來(lái),從而創(chuàng)作出許多更加完美的圖像,滿足人們的需求。計(jì)算機(jī)圖像處理,是指利用計(jì)算機(jī)對(duì)圖像進(jìn)行一系列加工,以便獲得人所們需要的效果。圖像是人類獲取和交換信息的主要來(lái)源,人類感知外界信息,80%以上是通過(guò)視覺(jué)得到的。因此,圖像處理的應(yīng)用領(lǐng)域必然涉及到人類生活和工作的方方面面。圖像處理或圖像分析方法的應(yīng)用越來(lái)越廣泛,其主要理論基礎(chǔ)是形態(tài)數(shù)學(xué),立體學(xué),集合論等。圖像處理或圖像分析方法的應(yīng)用越來(lái)越廣泛,其主要理論基礎(chǔ)是形態(tài)數(shù)學(xué),立體學(xué),集合論等。圖像處理的應(yīng)用領(lǐng)域很廣,大致可以分為六大領(lǐng)域以及十余個(gè)子領(lǐng)域 圖像處理雖然也可以用光學(xué)方法或模擬技術(shù)來(lái)實(shí)現(xiàn),但目前主要是利用計(jì)算機(jī)來(lái)實(shí)現(xiàn),稱為數(shù)字圖像處理。因此,圖像處理一般是指數(shù)字圖像處理。常見(jiàn)的圖像處理有圖像數(shù)字化、圖像編碼、圖像增強(qiáng)、圖像復(fù)原、圖像分割與圖像分析等。經(jīng)過(guò)處理后的圖像,一定能夠更好的被用于工業(yè)或者個(gè)人目的。為此開(kāi)發(fā)這個(gè)數(shù)字圖像處理軟件,能夠處理一些圖像,并對(duì)圖像處理技術(shù)此方面進(jìn)行深入的研究。 基本圖像處理技術(shù) 圖像的顏色是由三種基本顏色,即紅(R)、綠(G)、藍(lán)(B)有機(jī)組合而成的,稱為三基色。每種基色可取0到255的值,因此由三基色可組合成(256*256*256)1677萬(wàn)種顏色,每種顏色都有其對(duì)應(yīng)的R、G、B值。對(duì)一幅彩色圖像的各像素值進(jìn)行變換并依變換后的新像素值重新顯示,則可以實(shí)現(xiàn)不同的顯示效果 過(guò)濾技術(shù) 包括銳化、浮雕、風(fēng)化、腐蝕。這里介紹兩種分別是銳化和浮雕。 1.位圖圖像的銳化處理的算法如下: 計(jì)算源圖像像素f(i,j)的像素值與邊緣上相鄰像素f(i-1,j-1) 像素值之差的絕對(duì)值的百分比之和,然后將該值作為處理后圖像像素g(i,j)的像素值。例如: rr=r1+0.25*abs(r1-r2)或者 0.25改為0.5也可 gg=g1+0.25*abs(g1-g2) bb=b1+0.25*abs(b1-b2) 式中r1,g1,b1分別為f(i,j)的紅、綠、藍(lán)分量值, r2,g2,b2分別為f(i-1,j-1)的紅、綠、藍(lán)分量值, rr,gg,bb分別為g(i,j)的紅、綠、藍(lán)分量值。 2位圖圖像的浮雕處理的算法是 2 2/9頁(yè) G(i,j)= f(i,j)- f(i-1,j)+常數(shù) 式中,G(i,j)為處理后圖像的像素值,f(i,j)為源圖像的像素值,F(i-1,j)為前一個(gè)相鄰像素的值。常數(shù)一般取128。即 rr=r1-r2+128 gg=g1-g2+128 bb=b1-b2+128 式中, r1,g1,b1分別為為源圖像的像素f(i,j)的紅、綠、藍(lán)分量值;r2,g2,b2分別為前一個(gè)相鄰像素f(i-1,j)的紅、綠、藍(lán)分量值,rr,gg,bb分別為處理后圖像的像素G(i,j)的紅、綠、藍(lán)分量值。 3彩色圖像變換 包括彩色轉(zhuǎn)灰度、彩色轉(zhuǎn)黑白、平滑處理、逆反處理和霓紅處理。這里介紹一下彩色轉(zhuǎn)灰度和逆反處理。 1.彩色圖像生成灰度圖像的一般算法如下: Col=Picture1.Point(x,y) r= Col AND &0xff g=( Col AND &0xff00)/256 b=( Col AND &0xff0000)/(256*256) rr=gg=bb=(r+g+b)/3 其中Col為獲取到的像素值f(i,j),r,g,b分別為原像素值f(I,j)的分量值,rr,gg,bb分別為處理后g(i,j)的分量值。 2. 位圖圖像的逆反處理的算法如下: rr=255-r gg=255-g bb=255-b 式中,r,g,b分別為源圖像像素f(i,j)的紅、綠、藍(lán)分量值,rr,gg,bb分別為處理后像素g(i,j)的紅、綠、藍(lán)分量值。 根據(jù)現(xiàn)在社會(huì)的需求,要得到不同的圖像效果也是理所當(dāng)然的。在VB中,我們創(chuàng)建一些窗體。包括主窗體frmMain、工作區(qū)窗體frmPaint、工具窗體frmTool、調(diào)色板窗體frmColorcharge、歷史框窗體Hstory、新建窗體frmNew、圖像大小frmSize、控制窗體frmControl,其它為一些功能窗體,如對(duì)比度增強(qiáng)frmDuibidu,圖像合成frmHecheng,FFT分析frmFFT。 詳細(xì)設(shè)計(jì)階段的根本目標(biāo)是確定應(yīng)該怎樣具體的實(shí)現(xiàn)所要求的系統(tǒng)。也就是設(shè)計(jì)出程序的“藍(lán)圖”,在接下來(lái)的編碼階段里,這些描述將被直接翻譯成程序設(shè)計(jì)所使用的語(yǔ)言。也就是說(shuō),詳細(xì)設(shè)計(jì)的結(jié)果決定了最終的程序代碼的質(zhì)量。 4.1打開(kāi)圖像 源程序如下: Private Sub huoqutuxiang_Click() On Error GoTo Err 3 3/9頁(yè) CommonDialog1.Filter = '(*.*)|*.*|(*.gif)|*.gif|(*.bmp)|*.bmp|(*.jpg)|*.jpg' CommonDialog1.ShowOpen Picture1.Picture = LoadPicture(CommonDialog1.FileName) Picture3.Picture = Picture1.Picture Picture4.Picture = Picture1.Picture Exit Sub Err: Exit Sub End Sub 4.2逆反處理 源程序如下: Private Sub Nifanchuli_Click() Picture2.Picture = Picture3.Picture Picture2.Picture = Picture4.Picture Label3.Caption = '正在處理中...' DoEvents width1 = Picture1.ScaleWidth height1 = Picture1.ScaleHeight For i = 0 To width1 - 1 For j = 0 To height1 - 1 c = Picture1.Point(i, j) r1 = c Mod 256 '獲得紅色值 g1 = c / 256 Mod 256 '獲得綠色值 b1 = c / 65536 '獲得藍(lán)色值
rr = 255 - r1 '逆反處理 gg = 255 - g1 bb = 255 - b1 If rr < 0="" then="" rr="0:" if="" rr=""> 255 Then rr = 255 If gg < 0="" then="" gg="0:" if="" gg=""> 255 Then gg = 255 If bb < 0="" then="" bb="0:" if="" bb=""> 255 Then bb = 255 Picture2.PSet (i, j), RGB(rr, gg, bb) Next j Next i Label3.Caption = '處理后結(jié)果' End Sub 4.3霓虹處理 源程序如下: 4 4/9頁(yè) Private Sub nihongchuli_Click() Label3.Caption = '處理中...' Picture2.Picture = Picture3.Picture Picture2.Refresh DoEvents width1 = Picture1.ScaleWidth height1 = Picture1.ScaleHeight A = 1: b = 1 For i = 0 To width1 For j = 0 To height1 p1 = Picture2.Point(i, j) p2 = Picture2.Point(i + 1, j) p3 = Picture2.Point(i, j + 1) Red = Sqr((p1 Mod 256 - p2 Mod 256) ^ 2 + (p1 Mod 256 - p3 Mod 256) ^ 2) Green = Sqr((p1 / 256 Mod 256 - p2 / 256 Mod 256) ^ 2 + (p1 / 256 Mod 256 - p3 / 256 Mod 256) ^ 2) Blue = Sqr((p1 / 65536 - p2 / 65536) ^ 2 + (p1 / 65536 - p3 / 65536) ^ 2) Picture2.PSet (i, j), RGB(Red, Green, Blue) Next j Next i Label3.Caption = '處理效果圖:' End Sub 4.4平滑處理 源程序如下: Private Sub Pinghuachuli_Click() Picture2.Picture = Picture3.Picture Label3.Caption = '正在處理中...' DoEvents width1 = Picture1.ScaleWidth height1 = Picture1.ScaleHeight For i = 1 To width1 - 2 For j = 1 To height1 - 2 c1 = Picture1.Point(i - 1, j - 1) c2 = Picture1.Point(i, j - 1) c3 = Picture1.Point(i + 1, j - 1) c4 = Picture1.Point(i - 1, j) c5 = Picture1.Point(i, j) c6 = Picture1.Point(i + 1, j) 5 5/9頁(yè) |
|
|
來(lái)自: 清風(fēng)似夢(mèng) > 《待分類》