




已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
數(shù)字圖像處理課程綜合實習實習報告 學 院遙感信息工程學院班 級 09031學 號 2009302590120姓 名 吳雪薇日 期 2011年5月28日指導教師 實習一 將RAW圖像格式轉(zhuǎn)換成BMP圖像格式一、 實習目的和意義熟悉常用的圖像文件格式與格式轉(zhuǎn)換,認識各圖像格式的優(yōu)缺點;掌握RAW和BMP格式的存儲和讀取,編程實現(xiàn)RAWBMP格式的轉(zhuǎn)換,為讀取各種格式文件打基礎。二、實習原理和方法RAW格式:文件按照數(shù)字圖像組成的二維矩陣,將像素按行列號順序存儲在文件中。這種文件只含有圖像像素數(shù)據(jù),不含有信息頭,因此,在讀圖像時,需要根據(jù)文件大小,計算圖像所包含的行列號,或者需要事先知道圖像大?。ň仃嚧笮。?。但這種文件讀取和保存簡單。RAW文件按圖像上行到下行、左列到右列順序存儲,而BMP文件數(shù)據(jù)區(qū)按圖像上下行到上行、左列列到右列順序存儲到數(shù)據(jù)區(qū)。實現(xiàn)RAW文件到BMP文件的轉(zhuǎn)換,需要為BMP文件生成文件頭、信息頭、顏色表、數(shù)據(jù)區(qū),將RAW文件數(shù)據(jù)區(qū)賦值到BMP文件數(shù)據(jù)區(qū)。三、實習過程和步驟1、 根據(jù)學號新建自己的文件夾:F:09031_2009302590120;2、 使用AppWizard生成一個基于多文檔的項目2009302590120;3、 將CxxxxView類的基類設為CscrollView類,使項目顯示圖像時支持滾動條;4、 添加菜單項“RAW-BMP”,并建立相應的消息處理函數(shù);5、 新建Raw-Bmp對話框,并建立對話框類,為對話框類定義成員變量和成員函數(shù)。6、 在函數(shù)體內(nèi)添加自己的代碼,實現(xiàn)RAW的讀取,并實現(xiàn)RAW到BMP格式的轉(zhuǎn)換功能。void CRawToBmpDlg:OnButtonSeeraw() CFileDialog dlg(TRUE);if(dlg.DoModal()=IDOK)m_sRawIn=dlg.GetPathName();UpdateData(FALSE);void CRawToBmpDlg:OnButtonSeebmp() CFileDialog dlg(TRUE);if(dlg.DoModal()=IDOK)m_sBmpOut=dlg.GetPathName();UpdateData(FALSE);void CRawToBmpDlg:OnOK() UpdateData();CBmpFile bmpFile;bmpFile.CreateBmp(m_iHeight,m_iWidth,(m_iGray?3:1);CFile rawFile;rawFile.Open(m_sRawIn,CFile:modeRead);rawFile.Read(bmpFile.m_pImgDat,m_iHeight*m_iWidth*(m_iGray?3:1);rawFile.Close();bmpFile.Save2File(m_sBmpOut);CDialog:OnOK();7、 修改程序編制中出現(xiàn)的各種語法錯誤和邏輯錯誤,檢查程序運行結(jié)果。四、實習結(jié)果分析與評價本程序能夠?qū)崿F(xiàn)將RAW圖像格式轉(zhuǎn)換成BMP圖像格式的功能。正確運用bmpfile.h提供的相關函數(shù)實現(xiàn)了上述功能,對位圖圖像有了了進一步了解。實習二 編寫線性灰度變換的程序一、實習目的和意義熟悉圖像點增強的一般方法,掌握圖像點增強的算法和原理,會用編程方法實現(xiàn)其算法。二、實習原理和方法點運算是指像素值(即像素點上的灰度值)通過運算改變之后,可以改善圖象的顯示效果。這是一種像素的逐點運算,是舊圖象與新圖象之間的映射關系,是一種簡單但卻十分有效的一種圖象處理手段?;叶鹊木€性變換就是指圖像的中所有點的灰度按照線性灰度變換函數(shù)進行變換。灰度變換方程如下:該方程為線性方程。式中參數(shù) 為輸入圖像的像素的灰度值,參數(shù)為輸出圖像的灰度。二、 實習過程和步驟1、 打開實習一所建的項目2009302590120;2、 添加菜單項“線性拉伸”;為該菜單項建立消息處理函數(shù);3、 新建線性拉伸對話框,并建立對話框類,為對話框類定義成員變量和成員函數(shù)。4、 在函數(shù)定義處添加自己的源代碼。核心代碼如下:for(i=0;irows;i+)for(j=0;jcols;j+)y=pImgi*rows+j*a+b;if(y255) y=255;pImgi*rows+j=(BYTE)y;5、 編譯檢查語法錯誤,若編譯通過,運行程序,檢查是否能實現(xiàn)灰度線性變換。四、 實習結(jié)果分析與評價本程序能夠?qū)崿F(xiàn)圖像灰度的線性變換。能夠通過圖像灰度的線性變換實現(xiàn)對圖像的增強處理,掌握了對圖像點處理的原理和方法。實習三 編寫局部處理的程序一、實習目的和意義熟悉圖像局部處理的一般方法,掌握圖像局部處理的算法和原理,會用編程方法實現(xiàn)其算法。二、實習原理和方法局部處理在處理某一像素時,利用與該像素相鄰的一組像素,經(jīng)過某種變換得到處理后圖像中某一點的像素值。目標像素的鄰域一般是由像素組成的二維矩陣,該矩陣的大小為奇數(shù),目標像素位于該矩陣的中央,即目標像素就是區(qū)域的中心像素。經(jīng)過處理后,目標像素的值為經(jīng)過特定算法計算后所得的結(jié)果。三、實習過程和步驟1、打開項目2009302590120;2、添加菜單項“3x3低通/高通濾波”菜單項;3、新建3*3濾波對話框,要求用戶自己選擇濾波算子實現(xiàn)3*3高通或低通濾波。并建立相應的對話框類,為對話框類定義成員變量和成員函數(shù)。4、為菜單項建立消息處理函數(shù);5、在函數(shù)體內(nèi)添加實現(xiàn)3x3低通/高通濾波的源代碼。核心代碼如下:for(i=1;irows-1;i+)for(j=1;j255) y=255;if(ym_bmpfile.m_pImgDati*cols+j=y;6、編譯檢查語法錯誤,若編譯通過,運行程序,檢查是否能實現(xiàn)局部處理算法。四、實習結(jié)果分析與評價先打開一幅圖,點擊 “3*3高通/低通濾波”,彈出對話框,輸入低通濾波算子, 點擊“OK”,得到低通濾波后的圖像,可以看出圖像經(jīng)低通濾波后變得平滑;若使用高通濾波,輸入高通濾波算子,可以看出高通濾波使圖像的邊緣得到增強。用戶還可以根據(jù)需要輸入其它算子進行相應的濾波運算。實習四 中值濾波一、實習目的和意義熟悉圖像中值濾波原理和快速排序的方法,編程實現(xiàn)灰度圖像中值濾波功能,探討其去噪特性及其適用性,提高圖像增強處理的技能。二、實習原理和方法中值濾波是一種典型的低通濾波器,它的目的是去除噪聲,同時能保護圖像邊緣。中值濾波一般采用一個含有奇數(shù)個點的滑動窗口,將窗口中各點灰度值的中值來代替指定點(一般為窗口中心)的灰度值。對于奇數(shù)個元素,中值是取窗口中各元素按由小大排序后中間的灰度值;對于偶數(shù)個元素,一般取排序后中間兩個元素灰度值的平均值為中值。三、實習過程和步驟1、打開項目2009302590120;2、添加菜單項“中值濾波”菜單項;3、為菜單項建立消息處理函數(shù);4、在函數(shù)體內(nèi)添加實現(xiàn)中值濾波的源代碼。for(i=1;irows;i+)for(j=1;jcols;j+)a0=pImg(i-1)*rows+(j-1);a1=pImg(i-1)*rows+j;a2=pImg(i-1)*rows+(j+1);a3=pImgi*rows+(j-1);a4=pImgi*rows+j;a5=pImgi*rows+(j+1);a6=pImg(i+1)*rows+(j-1);a7=pImg(i+1)*rows+j;a8=pImg(i+1)*rows+(j+1);for(s=0;s9;s+)for(t=s+1;tas)y=at;at=as;as=y;y=a4;if(y255) y=255;pDoc-m_bmpfile.m_pImgDati*rows+j=(BYTE)y;5、編譯檢查語法錯誤,若編譯通過,運行程序,檢查是否能實現(xiàn)中值濾波算法。四、實習結(jié)果分析與評價打開一幅圖像進行中值濾波處理,可見中值濾波處理后圖像變得平滑,能夠起到一定的去噪效果。實習五 直方圖均衡化一、實習目的和意義熟悉直方圖均衡化的原理和方法,編程實現(xiàn)直方圖均衡化功能,提高圖像增強處理的技能。二、實習原理和方法直方圖均衡化是通過對原圖像進行某種變換,使原圖像的灰度直方圖修正為均勻分布的直方圖的一種方法。三、實習過程和步驟1、打開所建的項目2009302590120;2、添加菜單項“直方圖均衡化”菜單項;3、為新加的菜單項分別建立消息處理函數(shù);4、在函數(shù)體內(nèi)添加實現(xiàn)直方圖均衡化的源代碼。核心代碼如下:for(i=0;irows;i+)for(j=0;jm_bmpfile.m_pImgDati*cols+j;hgray+;double per256;for(i=0;i256;i+)peri=0.0;for(j=0;j=i;j+)peri+=hj;peri*=(255.0/(double)(rows*cols);for(i=0;irows;i+)for(j=0;jm_bmpfile.m_pImgDati*cols+j;pImgi*cols+j=(int)pergray;5、編譯檢查語法錯誤,若編譯通過,運行程序,檢查是否能實現(xiàn)局部處理算法。四、實習結(jié)果分析與評價打開一幅圖像進行直方圖均衡化,可見直方圖均衡化后圖像的對比度變大,許多細節(jié)更加清晰,對應的直方圖變得平坦多了。實習六 圖像平移一、實習目的和意義熟悉圖像幾何處理:圖像平移、旋轉(zhuǎn)、縮放的一般方法,掌握圖像幾何處理:圖像平移、旋轉(zhuǎn)、縮放的算法和原理,會用編程方法實現(xiàn)其算法二、實習原理和方法將圖像中所有的點都按照指定的平移量水平、垂直移動。設(x0,y0)為原圖像上的一點,圖像水平平移量tx,垂直平移量為ty,則平移后點(x0,y0)的坐標變?yōu)椋▁1,y1)。(x0,y0)與(x1,y1)之間的關系為:x1=x0+tx;y1=y0+ty;平移后的圖像中每個像素的顏色是由原圖像中的對應點顏色確定。三、實習過程和步驟1、打開項目2009302590120;2、添加菜單項“平移”菜單項;3、新建平移對話框,要求用戶自己分別輸入X或Y方向的平移量。并建立相應的對話框類,為對話框類定義成員變量和成員函數(shù)。4、為菜單項建立消息處理函數(shù);5、在函數(shù)體內(nèi)添加實現(xiàn)平移的源代碼。for(i=0;irows+y;i+)for(j=0;jcols+x;j+)newbmp.m_pImgDati*(cols+x)+j=255;for(i=0;irows+y;i+)for(j=0;jcols+x;j+)if(i-y)=0)&(j-x)=0)newbmp.m_pImgDati*(cols+x)+j=pDoc-m_bmpfile.m_pImgDat(i-y)*cols+j-x;pDoc-m_bmpfile=newbmp;6、編譯檢查語法錯誤,若編譯通過,運行程序,檢查是否能實現(xiàn)平移功能。四、實習結(jié)果分析與評價打開一幅圖像,在彈出的對話框中,分別輸入X、Y方向的平移量,點擊“OK”,可以看到圖像在相應的方向上進行了平移。實習七 圖像旋轉(zhuǎn)、轉(zhuǎn)置一、實習目的和意義熟悉圖像幾何處理:圖像平移、旋轉(zhuǎn)、縮放的一般方法,掌握圖像幾何處理:圖像平移、旋轉(zhuǎn)、縮放的算法和原理,會用編程方法實現(xiàn)其算法二、實習原理和方法通常是以圖像的中心為圓心旋轉(zhuǎn),按順時針方向旋轉(zhuǎn)。旋轉(zhuǎn)前:x0=r*cos(b); y0=r*sin(b);旋轉(zhuǎn)a 角度后:x1=r*cos(b-a)=r*cos(b)*cos(a)+r*sin(b)*sin(a)=x0*cos(a)+y0*sin(a)y1=r*sin(b-a)=r*sin(b)*cos(a)-r*cos(b)*sin(a)=-x0*sin(a)+y0*cos(a)以矩陣的形式表示坐標系是以圖像的中心為原點,向右為x 軸正方向,向上為y 軸正方向。它和以圖像左上角為原點,向右為x 軸正方向,向下為y 軸正方向的坐標系之間的轉(zhuǎn)換關系三、實習過程和步驟1、打開所建項目2009302590120;2、添加菜單項“旋轉(zhuǎn)”,“轉(zhuǎn)置”;3、新建旋轉(zhuǎn)對話框,要求用戶自己選擇旋轉(zhuǎn)角度。并建立相應的對話框類,為對話框類定義成員變量和成員函數(shù)。4、為該菜單項建立消息處理函數(shù);5、在函數(shù)定義處添加自己的源代碼。旋轉(zhuǎn)核心代碼:double a=dlg.m_ea*PI/180;double sina=sin(a),cosa=cos(a);double Ox=(cols-1)/2,Oy=(rows-1)/2; /中心坐標double sx1=-Ox,sy1=Oy, sx2=Ox,sy2=Oy, sx3=-Ox,sy3=-Oy, sx4=Ox,sy4=-Oy; /原圖像四角坐標double dx1=cosa*sx1+sina*sy1,dy1=-sina*sx1+cosa*sy1, dx2=cosa*sx2+sina*sy2,dy2=-sina*sx2+cosa*sy2, dx3=cosa*sx3+sina*sy3,dy3=-sina*sx3+cosa*sy3, dx4=cosa*sx4+sina*sy4,dy4=-sina*sx4+cosa*sy4; /新圖四角坐標Ncols=(int)(max(abs(dx1-dx4),abs(dx3-dx2)+0.5);Nrows=(int)(max(abs(dy1-dy4),abs(dy2-dy3)+0.5); /定義新的行和列newbmp.CreateBmp(Ncols,Nrows,1);f1=-(Ncols-1)/2*cosa-(Nrows-1)/2*sina+Ox;f2=(Ncols-1)/2*sina-(Nrows-1)/2*cosa+Oy;for(i=0;iNrows;i+)for(j=0;jNcols;j+)newbmp.m_pImgDati*Ncols+j=255;for(i=0;iNrows;i+)for(j=0;j=0&y=0&xm_bmpfile.m_pImgDaty*cols+x;pDoc-m_bmpfile=newbmp;轉(zhuǎn)置核心代碼:for(i=0;iNrows;i+)for(j=0;jNcols;j+)newbmp.m_pImgDati*Ncols+j=pImgj*cols+i;6、編譯檢查語法錯誤,若編譯通過,運行程序,檢查是否能實現(xiàn)旋轉(zhuǎn)變換。四、實習結(jié)果分析與評價打開一幅圖像,點擊“旋轉(zhuǎn)”,輸入相應的旋轉(zhuǎn)角度,可以看到圖像進行了相應的旋轉(zhuǎn)變換。同理,點擊“轉(zhuǎn)置”,可以實現(xiàn)對圖像的轉(zhuǎn)置變換。實習八 圖像縮放一、實習目的和意義熟悉圖像幾何處理:圖像平移、旋轉(zhuǎn)、縮放的一般方法,掌握圖像幾何處理:圖像平移、旋轉(zhuǎn)、縮放的算法和原理,會用編程方法實現(xiàn)其算法二、實習原理和方法假設放大因子為ratio,縮放的變換矩陣為:三、實習過程和步驟1、打開所建項目2009302590120;2、添加菜單項“縮放”;3、新建縮放對話框,要求用戶自己分別選擇X方向和Y方向的縮放系數(shù),如果用戶不選擇,則默認縮放系數(shù)為1,即既不放大也不縮小。并建立相應的對話框類,為對話框類定義成員變量和成員函數(shù)。4、為該菜單項建立消息處理函數(shù);5、在函數(shù)定義處添加自己的源代碼。for(i=0;ir;i+)for(j=0;jc;j+)newbmp.m_pImgDati*c+j=255;for(i=0;ir;i+)for(j=0;j=0&y=0&xm_bmpfile=newbmp;6、編譯檢查語法錯誤,若編譯通過,運行程序,檢查是否能實現(xiàn)縮放變換。四、實習結(jié)果分析與評價打開一幅圖像,點擊“縮放”,在彈出的縮放對話框中分別輸入X、Y方向的縮放系數(shù),如果用戶不選擇,則默認縮放系數(shù)為1,即既不放大也不縮小。然后點擊“OK”,可以看到圖像在相應方向上的縮放變換。實習九 灰度圖像邊緣檢測一、實習目的和意義熟悉圖像幾何處理:圖像平移、旋轉(zhuǎn)、縮放的一般方法,掌握圖像幾何處理:圖像平移、旋轉(zhuǎn)、縮放的算法和原理,會用編程方法實現(xiàn)其算法二、實習原理和方法圖像邊緣檢測的原理與局部處理類似,采用卷積算法來實現(xiàn)。卷積可以簡單地看成加權求和的過程。卷積時使用的權用一個很小的矩陣來表示,矩陣的大小是奇數(shù),而且與使用的區(qū)域的大小相同。這種權矩陣叫做卷積核,區(qū)域中的每個像素分別與卷積核中的每個元素相乘,所有乘積之和即為區(qū)域中心像素的新值。三、實習過程和步驟1、打開所建項目2009302590120;2、添加菜單項“邊緣檢測”“Roberts算子”,“Prewitt算子”,“Sobel算子”,“Laplace算子”,“自定義算子”;3、新建自定義算子對話框,要求用戶自己自己輸入邊緣檢測算子。并建立相應的對話框類,為對話框類定義成員變量和成員函數(shù)。4、分別為各種算子菜單項建立消息處理函數(shù);5、分別在函數(shù)定義處添加自己的源代碼。以Roberts算子為例,其核心代碼:for(i=0;irows;i+)for(j=0;j255) y=255;if(ym_bmpfile.m_pImgDati*cols+j=y;6、編譯檢查語法錯誤,若編譯通過,運行程序,檢查是否能實現(xiàn)。四、實習結(jié)果分析與評價打開一幅圖像,點擊“邊緣檢測”,選擇相應的算子,觀察不同算子對圖像邊緣檢測的效果差異。如果用戶想要自己輸入算子,可以選擇“自定義算子”,在彈出的自定義算子對話框中輸入相應的算子即可。實習十 圖像二值化一、實習目的和意義加深對圖像分割的理解,掌握最簡單圖像分割的原理與方法,提高圖像處理與分析能力與實際動手能力。二、實習原理與方法狀態(tài)法(峰谷法):如果一幅灰度圖像的直方圖有雙峰和明顯的谷,那么選擇兩峰之間的谷所對應的T作為閾值,對圖像進行分割。判斷分析法:假定圖像的灰度區(qū)間為0,L-1,則選擇一閾值T 將圖像的像素分為兩組。顯然,組內(nèi)方差越小,則組內(nèi)像素越相似;組間方差越大,則組間的差別越大。因此為最大值所對應的T,就是所求判斷分析法的分割閾值。三、實習過程和步驟1、添加菜單項“狀態(tài)法(峰谷法)”,“判斷分析法”,“熵值法”,“自定義閾值”;2、分別為菜單項建立消息處理函數(shù),并在函數(shù)定義處添加自己的源代碼。以狀態(tài)法和判斷分析法為例:狀態(tài)法核心代碼:for(i=0;irows;i+)for(j=0;jcols;j+)int gray=pImgi*cols+j;histgray+;int t,nt=127;for(i=0;t!=nt&i100;i+)t=nt;double p1=0.0,p2=0.0;int s1=0,s2=0;for(j=0;j=t;j+)p1+=(double)(j*histj);s1+=histj;double v1=p1/s1; /閾值左邊的灰度均值for(j=t+1;j=255;j+)p2+=(double)(j*histj);s2+=histj;double v2=p2/s2; /閾值右邊灰度均值nt=(int)(v1+v2)/2);判斷分析法核心代碼:for(i=0;irows;i+)for(j=0;jcols;j+)int gray=pImgi*cols+j;histgray+;int t=0;double MAX=0.0;double P=0.0;int S=0;for(i=1;i256;i+)P+=(double)(i*histi);S+=histi;int s1=0,s2=0;double p1=0.0;double v1,v2,d1,d2,din,dout;double ratio;for(i=1;i256;i+)s1+=histi;if(!s1) continue;s2=S-s1;if(s2=0) break;p1+=(double)(i*histi);v1=p1/s1; /左邊像素均值for(j=1;j=i;j+) /計算左邊像素間方差/double d1;d1+=(j-v1)*(j-v1)*histj;v2=(P-p1)/s2; /右邊像素均值for(j=i+1;jMAX)MAX=ratio;t=i;4、編譯檢查語法錯誤,若編譯通過,運行程序,檢查是否能實現(xiàn)。四、實習結(jié)果分析與評價打開一幅圖像,點擊“二值化”,選擇相應的菜單項“狀態(tài)法(峰谷法)”、“判斷分析法”、“熵值法”,可以看到每種方法進行二值化得到的閾值以及二值化后圖像效果。如果用戶想自己輸入閾值,可以點擊菜單項“自定義閾值”,在彈出的對話框中輸入閾值(0到255),可以得到相應的二值化圖像。實習十一 模板匹配一、實習目的和意義加深對圖像目標識別方法的理解與應用,掌握模板匹配的基本算法,啟發(fā)學生深入研究圖像識別
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025供暖工程合同范本
- 2025年電工(高級)考試試卷及答案
- 2025股票發(fā)行輔導合同
- 腎下垂的臨床護理
- 腸系膜脂膜炎的臨床護理
- 新質(zhì)生產(chǎn)力杉杉股份
- 2025技術實施許可合同書
- 2025年天津市房屋租賃合同模板
- 2025地下車庫租賃合同范本
- 2025家居智能小家電區(qū)域代理商銷售合同書
- 廣州市黃埔區(qū)教育局招聘事業(yè)編制教職員考試真題2024
- 全過程工程咨詢投標方案(技術方案)
- 《住宅室內(nèi)防水工程技術規(guī)范JGJ298-2013》
- GB 14934-2016食品安全國家標準消毒餐(飲)具
- 英語高考3500詞帶音標
- 泥水平衡頂管施工方案(專家論證)
- 框架結(jié)構(gòu)柱、梁板模板安裝技術交底
- 呼吸衰竭臨床表現(xiàn)及鑒別診療精編ppt
- 自然辯證法(2023修訂版)課后思考題
- 《大學物理》說課課件
- CJJ 63-2018 聚乙烯燃氣管道工程技術標準
評論
0/150
提交評論