簡(jiǎn)易photoshop代碼數(shù)字圖像處理實(shí)驗(yàn)報(bào)告_第1頁(yè)
簡(jiǎn)易photoshop代碼數(shù)字圖像處理實(shí)驗(yàn)報(bào)告_第2頁(yè)
簡(jiǎn)易photoshop代碼數(shù)字圖像處理實(shí)驗(yàn)報(bào)告_第3頁(yè)
簡(jiǎn)易photoshop代碼數(shù)字圖像處理實(shí)驗(yàn)報(bào)告_第4頁(yè)
簡(jiǎn)易photoshop代碼數(shù)字圖像處理實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡(jiǎn)介

一.一個(gè)簡(jiǎn)單的“photoshop”軟件二.設(shè)計(jì)目的:數(shù)字圖像處理,就是用數(shù)字計(jì)算機(jī)及其他有關(guān)數(shù)字技術(shù),對(duì)圖像進(jìn)行處理,以達(dá)到預(yù)期的目的。隨著計(jì)算機(jī)的發(fā)展,圖像處理技術(shù)在許多領(lǐng)域得到了廣泛應(yīng)用,數(shù)字圖像處理已成為電子信息、通信、計(jì)算機(jī)、自動(dòng)化、信號(hào)處理等專業(yè)的重要課程。數(shù)字圖像處理課程設(shè)計(jì)是在完成數(shù)字圖像處理的相關(guān)理論的學(xué)習(xí)后,進(jìn)行的綜合性訓(xùn)練課程,其目的主要包括:1、使學(xué)生進(jìn)一步鞏固數(shù)字圖像處理的基本概念、理論、分析方法和實(shí)現(xiàn)方法;2、增強(qiáng)學(xué)生應(yīng)用VC++編寫數(shù)字圖像處理的應(yīng)用程序及分析、解決實(shí)際問(wèn)題的能力;3、嘗試將所學(xué)的內(nèi)容解決實(shí)際工程問(wèn)題,培養(yǎng)學(xué)生的工程實(shí)踐能力,提高工科學(xué)生的就業(yè)能力。三.設(shè)計(jì)內(nèi)容:1.打開(kāi)圖像:主要代碼:staticcharszFilter[]="BMP文件(*.bmp)|*.bmp||";//定義過(guò)濾文件的類型 CFileDialogdlg(TRUE,"bmp",NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,szFilter);//定義文件對(duì)話框?qū)ο?CStringfilename;intret=dlg.DoModal();//運(yùn)行打開(kāi)文件對(duì)方框 if(ret==IDOK) { filename=dlg.GetFileName();//獲取所選擇圖像的路徑 m_dib.LoadFromFile(filename);//加載圖像 if(!m_dib.m_bLoaded)//判斷是否加載圖像成功 { AfxMessageBox("圖像打不開(kāi)"); return; }效果圖:2.水平鏡像:把圖像的第一列和最后一列調(diào)轉(zhuǎn),第二列和倒數(shù)第二列換過(guò)來(lái),以此類推下去,直到第nw/2為止。代碼:inttemp,i,j;for(j=0;j<nh;j++) for(i=0;i<nw/2;i++) { temp=m_dib.m_pdata[j*nw+i]; m_dib.m_pdata[j*nw+i]=m_dib.m_pdata[nw-i-1+j*nw];m_dib.m_pdata[nw-i-1+j*nw]=temp; }效果圖:3.素描風(fēng)格:先把灰度值與右下的作對(duì)比,如果差值大于一個(gè)值則說(shuō)明這是輪廓,先把非輪廓的位置像素置為黑色,最后對(duì)所有像素進(jìn)行底片化處理代碼:inttemp,i,j;for(j=0;j<nh;j++) for(i=0;i<nw;i++) { temp=m_dib.m_pdata[j*nw+i]-m_dib.m_pdata[(j+1)*nw+i+1]; if(temp<10) m_dib.m_pdata[j*nw+i]=0;//黑色為0 }for(j=0;j<nh;j++) for(i=0;i<nw;i++) { intgray=m_dib.m_pdata[j*nw+i]; m_dib.m_pdata[j*nw+i]=255-gray; }效果圖:4圖像霧化:在圖像中引入一定的隨機(jī)值,打亂圖像中的像素值代碼:inti,j,k,dat;//i表示列,j表行byte*ptemp=(byte*)newbyte[nw*nh];memset(ptemp,0,nw*nh);for(j=0;j<nh;j++) for(i=0;i<nw;i++) { k=rand()%8;//取任意的隨機(jī)值 dat=j*nw+i+k; if(dat>=nw*nh) dat=nw*nh-1; ptemp[j*nw+i]=m_dib.m_pdata[dat]; }memcpy(m_dib.m_pdata,ptemp,nw*nh);效果圖:5.浮雕處理:通過(guò)勾畫圖象輪廓和降低周圍像素色值,從而生成具有凹凸感的浮雕效果。其方法是生成一緩沖區(qū),計(jì)算當(dāng)前像素的左上角與右下角的像素值之差,再加上一個(gè)補(bǔ)值。將其存儲(chǔ)到緩沖區(qū)。再將緩沖區(qū)的數(shù)據(jù)逐點(diǎn)替換到圖像中并顯示出來(lái)。代碼:intw=3,i,j;//w為模板寬度BYTE*p=newBYTE[nw*nh];memcpy(p,m_dib.m_pdata,nw*nh);for(j=w/2;j<nh-w/2;j++) for(i=w/2;i<nw-w/2;i++) { p[j*nw+i]=m_dib.m_pdata[(j-1)*nw+i-1]*(1)+m_dib.m_pdata[(j+1)*nw+i+1]*(-1)+120; }memcpy(m_dib.m_pdata,p,nw*nh); delete[]p;效果圖:6.直方圖均衡化代碼:intn[256]={0},g[256]={0};//定義頻數(shù)數(shù)組n,均衡化每個(gè)像素的灰度級(jí)的數(shù)組gdoublef[256],t[256];//定義頻率數(shù)組f,累加的頻率數(shù)組tintg_max=0,g_mim=255;inti,j,k,z;for(j=0;j<nh;j++)//統(tǒng)計(jì)灰度級(jí)的頻數(shù)n for(i=0;i<nw;i++) { z=m_dib.m_pdata[j*nw+i];n[z]++; } for(k=0;k<=255;k++)//統(tǒng)計(jì)每個(gè)灰度級(jí)出現(xiàn)的頻率 f[k]=n[k]/(nw*nh*1.0); //累計(jì)灰度級(jí)的頻率t[0]=f[0]; for(k=1;k<=255;k++) t[k]=t[k-1]+f[k]; for(j=0;j<nh;j++) for(i=0;i<nw;i++) { BYTEw=m_dib.m_pdata[j*nw+i]; g_max=w>g_max?w:g_max;//得到最大值 g_mim=w<g_mim?w:g_mim; //得到最小值 } for(k=0;k<=255;k++)//利用公式求每個(gè)像素均衡化后的灰度級(jí) g[k]=(int)((g_max-g_mim)*t[k]+g_mim+0.5); for(j=0;j<nh;j++)//逐個(gè)替換 for(i=0;i<nw;i++) { k=m_dib.m_pdata[j*nw+i]; m_dib.m_pdata[j*nw+i]=g[k]; } for(j=0;j<nh;j++)//計(jì)算均衡化的直方圖 for(i=0;i<nw;i++) {BYTEtemp=m_dib.m_pdata[j*nw+i]; m_hist[temp]++; } m_bHist=true;{//繪制原圖像的直方圖 CStringstr; intnh=m_dib.GetDIBHeight(); inti; // 畫坐標(biāo)軸 //繪制坐標(biāo)軸 pDC->MoveTo(410,nh+20);//(410,nh+20)是直方圖的左上角坐標(biāo) //垂直軸 pDC->LineTo(410,nh+200);//(410,nh+200)是直方圖的左下角坐標(biāo) //水平軸 pDC->LineTo(710,nh+200);//(710,nh+200)是直方圖的右下角坐標(biāo) //寫X軸刻度值 str.Format("0"); pDC->TextOut(410,nh+200+10,str); str.Format("50"); pDC->TextOut(460,nh+200+10,str); str.Format("100"); pDC->TextOut(510,nh+200+10,str); str.Format("150"); pDC->TextOut(560,nh+200+10,str); str.Format("200"); pDC->TextOut(610,nh+200+10,str); str.Format("255"); pDC->TextOut(665,nh+200+10,str); //繪制X軸刻度 for(i=0;i<256;i+=25) { if((i&1)==0) { //10的倍數(shù) pDC->MoveTo(i+10,nh+200-2); pDC->LineTo(i+10,nh+200+2); } else { //10的倍數(shù) pDC->MoveTo(i+10,nh+200-2); pDC->LineTo(i+10,nh+200+2); } } //繪制X軸箭頭 pDC->MoveTo(705,nh+200-5); pDC->LineTo(710,nh+200); pDC->LineTo(705,nh+200+5); //繪制y軸箭頭 pDC->MoveTo(410,nh+20); pDC->LineTo(405,nh+20+5); pDC->MoveTo(410,nh+20); pDC->LineTo(415,nh+20+5); intmax=0; for(i=0;i<256;i++) if(m_yuan[i]>max) max=m_yuan[i]; for(i=0;i<256;i++) { pDC->MoveTo(410+i,nh+200); pDC->LineTo(410+i,nh+200-(m_yuan[i]*160/max)); } } } if(m_bHist==true)//繪畫新的直方圖 { CStringstr; intnh=m_dib.GetDIBHeight(); inti; // 畫坐標(biāo)軸 //繪制坐標(biāo)軸 pDC->MoveTo(10,nh+20);//(10,nh+20)是直方圖的左上角坐標(biāo) //垂直軸 pDC->LineTo(10,nh+200);//(10,nh+200)是直方圖的左下角坐標(biāo) //水平軸 pDC->LineTo(310,nh+200);//(310,nh+200)是直方圖的右下角坐標(biāo) //寫X軸刻度值 str.Format("0"); pDC->TextOut(10,nh+200+10,str); str.Format("50"); pDC->TextOut(60,nh+200+10,str); str.Format("100"); pDC->TextOut(110,nh+200+10,str); str.Format("150"); pDC->TextOut(160,nh+200+10,str); str.Format("200"); pDC->TextOut(210,nh+200+10,str); str.Format("255"); pDC->TextOut(265,nh+200+10,str); //繪制X軸刻度 for(i=0;i<256;i+=25) { if((i&1)==0) { //10的倍數(shù) pDC->MoveTo(i+10,nh+200-2); pDC->LineTo(i+10,nh+200+2); } else { //10的倍數(shù) pDC->MoveTo(i+10,nh+200-2); pDC->LineTo(i+10,nh+200+2); } } //繪制X軸箭頭 pDC->MoveTo(305,nh+200-5); pDC->LineTo(310,nh+200); pDC->LineTo(305,nh+200+5); //繪制y軸箭頭 pDC->MoveTo(10,nh+20); pDC->LineTo(5,nh+20+5); pDC->MoveTo(10,nh+20); pDC->LineTo(15,nh+20+5); intmax=0; for(i=0;i<256;i++) if(m_hist[i]>max) max=m_hist[i]; for(i=0;

溫馨提示

  • 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)論