




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《溝通與協(xié)作實(shí)訓(xùn)》實(shí)習(xí)報(bào)告專業(yè)班級(jí):學(xué)號(hào):姓名:第一部分認(rèn)知實(shí)習(xí)總結(jié)經(jīng)過(guò)這五天的認(rèn)知實(shí)習(xí)我收獲很大,首先是我們的東營(yíng)之旅,回到我們的老校區(qū),在那里的食堂吃飯,看薈萃湖盛開的荷花,看“東營(yíng)版”的創(chuàng)造太陽(yáng)雕塑,參觀各個(gè)學(xué)院的辦公樓,教學(xué)樓,實(shí)驗(yàn)樓,包括宿舍,都讓我覺(jué)得有種新鮮感,那是種陌生又熟悉的感覺(jué),作為石油大學(xué)的學(xué)生,看見老校區(qū)著實(shí)有種情切的感覺(jué),尤其是來(lái)到我們計(jì)算機(jī)與通信工程學(xué)院樓前,腦中浮現(xiàn)出的是我的學(xué)長(zhǎng)們?cè)谶@所建筑物中拼搏的景象,聽見老師講述當(dāng)年的一切,我們都很感興趣心中充滿了好奇,暗暗為自己加油,希望有一天我們走出校門的時(shí)候,也能做出與我們學(xué)校名聲相配的成績(jī),只有這樣才不會(huì)辱沒(méi)我們石油大學(xué)這六十年的光輝校史,只有這樣才對(duì)得起師長(zhǎng)的教誨,只有這樣我們才能稱自己是石大人,因?yàn)槲覀冇衅D苦奮斗的傳統(tǒng),有令人羨慕的成績(jī),我為你感到驕傲石油大學(xué)。之后我們來(lái)到了東營(yíng)的中國(guó)聯(lián)通公司,在那里我們參觀了它的計(jì)算中心,我非常興奮,因?yàn)榈谝淮慰匆娔敲炊嗟木W(wǎng)線,和那么大的主機(jī),那么多的機(jī)器,之前我從未想過(guò)我所學(xué)習(xí)的軟件工程專業(yè)竟然需要這么多的設(shè)備來(lái)支持,我知道這些設(shè)備運(yùn)行的背后是靠著大量的代碼來(lái)支撐的,只是多么好的硬件和軟件相結(jié)合啊,讓我不禁感嘆這個(gè)計(jì)算機(jī)的世界真是太美秒了,它帶動(dòng)著整個(gè)世界在飛速發(fā)展,而我有一天也會(huì)投身在這一行業(yè),發(fā)揮自己的力量,燃燒總記得光和熱,為社會(huì)奉獻(xiàn)自己的力量,第一次來(lái)聯(lián)通公司的內(nèi)部,感覺(jué)這里很神秘,在里面我們還了解到了GIS,看見工作人員通過(guò)電腦實(shí)時(shí)查看道路交通狀況,甚至連那個(gè)車在做什么有沒(méi)有在工作都看的一清二楚,我又一次感到自己要學(xué)的東西還有太多太多,自己不知道的世界還很大很大,自己要看清自己的渺小,通過(guò)不斷學(xué)習(xí)來(lái)充實(shí)自己的大腦,希望自己可以在計(jì)算機(jī)領(lǐng)域可以取得令自己滿意的成績(jī),因?yàn)檫@個(gè)領(lǐng)域真的是太神奇了,如果只是表面的認(rèn)識(shí)我會(huì)覺(jué)得很失敗,因此我會(huì)努力學(xué)習(xí),在更深層次認(rèn)識(shí)計(jì)算機(jī),認(rèn)識(shí)軟件工程。之后我們參觀了東營(yíng)軟件園,當(dāng)然只是一些簡(jiǎn)單的參觀,聽工作人員的講解,雖然大部分不太懂,但是這樣反而會(huì)激起我們的學(xué)習(xí)興趣,大家對(duì)這次行程都感到很滿意,覺(jué)得很有意義,大約五點(diǎn)左右我們一行人啟程返回學(xué)校,一路上大家都在思考,今天的所見所聞對(duì)任何人來(lái)說(shuō)都是一次絕妙的旅行,到達(dá)學(xué)校后回到宿舍大家又開始討論,忽然覺(jué)得計(jì)算機(jī)中有很大的樂(lè)趣,值得我們用一生來(lái)探求。第二天我們聽了學(xué)校網(wǎng)絡(luò)中心的老師介紹我校的一卡通系統(tǒng),知道了有關(guān)信息化校園的信息,了解了我們學(xué)校,數(shù)字化校園建設(shè)的進(jìn)程,以及一些我們之前不熟悉有關(guān)一卡通的知識(shí),比如可以在網(wǎng)上繳費(fèi),在網(wǎng)上還可以做許多是,只是我們認(rèn)識(shí)的太少了,我校的一卡通系統(tǒng)還在進(jìn)一步的完善之中,完善后還會(huì)有更多的功能,我知道這些完善都是需要代碼來(lái)完成的,我有更進(jìn)一步的認(rèn)識(shí)到了軟件工程專業(yè)的重要性,以及想要做成智能化,信息化,數(shù)字化軟件工程都在其中起到了舉足輕重的作用,這更使我有信心學(xué)好自己的專業(yè),為學(xué)校為社會(huì)貢獻(xiàn)自己的力量,當(dāng)然知一切的前提是我們必須學(xué)好自己的專業(yè)知識(shí)。此外在認(rèn)知實(shí)習(xí)期間,我們還聽取了學(xué)校就業(yè)指導(dǎo)中心老師的報(bào)告,老師為我們就自己未來(lái)能做什么等方面做了深刻的講解,讓我們對(duì)自己有了更深的了解讓我們知道了堅(jiān)持自己的夢(mèng)想的重要性,老師在不斷地鼓勵(lì)我們,提升我們的信心,讓我們對(duì)自己專業(yè)有了更清楚的認(rèn)識(shí),讓我們知道了自己還有許多不知道的東西,外面的世界也是我們不曾接觸的,讓我們認(rèn)清了只要現(xiàn)在努力就會(huì)有美好的未來(lái)的事實(shí),我知道自己會(huì)面臨就業(yè)的問(wèn)題,但是我相信只要我認(rèn)真的學(xué)習(xí),就業(yè)不會(huì)有問(wèn)題,可能工資不高,但是只要我積累足夠的經(jīng)驗(yàn)就一定可以,但是我認(rèn)為更深一步的是我想對(duì)這個(gè)領(lǐng)域有更深刻的認(rèn)識(shí),因?yàn)檫@樣一個(gè)精彩的世界我不能不參與,如果只是為了生存而學(xué)習(xí)我會(huì)覺(jué)得自己很失敗。在那之后,我們參觀了學(xué)校的計(jì)算中心,和我們計(jì)算機(jī)與通信工程學(xué)院的實(shí)驗(yàn)樓,看見在那里實(shí)習(xí)的學(xué)長(zhǎng)們,并且?guī)ьI(lǐng)他們實(shí)習(xí)的老師也為我們做了關(guān)于他們實(shí)習(xí)內(nèi)容介紹,一些基本設(shè)施的介紹,在學(xué)校的計(jì)算中心我們看見了和在東營(yíng)聯(lián)通公司同樣的設(shè)備,我認(rèn)識(shí)到原來(lái)自己每天都使用的網(wǎng)絡(luò)是通過(guò)這些大家伙來(lái)實(shí)現(xiàn)的,當(dāng)天晚上我們聽取了校網(wǎng)絡(luò)中心老師對(duì)我們的校園網(wǎng)做的介紹,發(fā)現(xiàn)有許多地方我們還是不了解,校園網(wǎng)的功能我們大部分都沒(méi)使用,例如進(jìn)入校園網(wǎng)自己的主頁(yè)只需進(jìn)入WWW.i.upc.edu.cn,在那里面有我們的個(gè)人信息,我們每個(gè)人都有一個(gè)自己的郵箱,等等。之后就是為了程序設(shè)計(jì)實(shí)習(xí)的準(zhǔn)備工作,李曉旭老師為我們講解了MFC類庫(kù),并且要求我們?cè)诮酉聛?lái)的幾天查閱資料為了后面的實(shí)習(xí)做準(zhǔn)備,至此認(rèn)知實(shí)習(xí)全部結(jié)束,等待我們的是程序設(shè)計(jì)實(shí)習(xí)。經(jīng)過(guò)這幾天的認(rèn)知實(shí)習(xí),我收獲很大,認(rèn)識(shí)到自己要學(xué)的東西還有很多,自己在計(jì)算機(jī)的世界簡(jiǎn)直太渺小了,唯有經(jīng)過(guò)不斷的努力才能學(xué)到新的知識(shí),才能更多的探索計(jì)算機(jī)這個(gè)領(lǐng)域,才能認(rèn)清軟件工程專業(yè),才會(huì)有更多的樂(lè)趣,才能讓生活不再乏味,因?yàn)槲壹热贿x擇了計(jì)算機(jī),選擇了軟件工程就一定要把它弄明白要不然學(xué)著也就沒(méi)有意義了,為了以后現(xiàn)在所做的一切都是必須的,都是基礎(chǔ)是為了更進(jìn)一步所做的鋪墊,我們每個(gè)人都必須這么做,因?yàn)檫@在今后可能就是我們生活中最重要的組成部分?!冻绦蛟O(shè)計(jì)實(shí)習(xí)》實(shí)習(xí)報(bào)告圖像簡(jiǎn)易處理_圖像模糊化一、題目介紹要求設(shè)計(jì)并實(shí)現(xiàn)一個(gè)簡(jiǎn)易的圖像處理軟件,能夠從文件讀取并顯示BMP圖像數(shù)據(jù);對(duì)圖像進(jìn)行一些常規(guī)的處理,包括圖像的放大/縮小、圖像滾動(dòng)、彩色轉(zhuǎn)灰度、圖像模糊化;能夠?qū)⑻幚砗蟮膱D像數(shù)據(jù)保存至文件。1.讀取并顯示BMP圖像:通過(guò)VC提供的文件打開對(duì)話框讓用戶選擇要打開的BMP文件,讀取文件數(shù)據(jù),將BMP圖像顯示到主窗口的客戶區(qū)。首次顯示時(shí)保持BMP圖像的原始尺寸。若圖像在寬度或高度上超過(guò)窗口客戶區(qū),則需要提供滾動(dòng)條對(duì)圖像進(jìn)行滾動(dòng)操作。網(wǎng)絡(luò)上存在很多讀取并顯示BMP圖像的源碼,可下載并改造至程序中,也可以使用現(xiàn)成的圖像處理類庫(kù)或組件(如著名的CxImage類庫(kù))。2.圖像模糊化:圖像中各個(gè)部分(如人的眼睛)通常比較清晰,與周圍其他部分截然不同,此功能是將圖像模糊化,使得整個(gè)圖像變得“發(fā)虛”,增加了不同部分過(guò)渡的平滑性,但降低了圖像原本的清晰度。圖像模糊化通常采用基于區(qū)域的像素重整策略,也就是說(shuō),一個(gè)像素的顏色值要根據(jù)它周圍其他像素的顏色值通過(guò)一定的算法(如平均或加權(quán)平均)獲得,每個(gè)像素經(jīng)過(guò)同樣處理之后,其顏色值均由周圍像素混合而成,從而增加了圖像各個(gè)部分過(guò)渡的平滑性,實(shí)現(xiàn)模糊化。3.保存圖像至文件:通過(guò)VC提供的保存文件對(duì)話框讓用戶選擇要保存的目錄位置及文件名,將窗口中處理過(guò)的圖像保存至BMP文件。軟件界面不做具體的規(guī)定,可自行設(shè)計(jì)。但要本著簡(jiǎn)潔使用、操作方便、視覺(jué)美觀的原則。二、主要內(nèi)容(詳細(xì)介紹系統(tǒng)總體功能、模塊劃分,以及每個(gè)模塊的具體實(shí)現(xiàn))系統(tǒng)的總體功能是實(shí)現(xiàn)圖像的模糊化,主要分為三個(gè)模塊:1.讀取并顯示BMP圖像,2.圖像模糊化,3.保存圖像至文件。首先是讀取并顯示BMP圖片:第一步:建立MFC工程文件--新建--MFCAppWizardd(exe)工程--單文檔—確定。第二步:設(shè)置打開函數(shù)查看--建立類導(dǎo)向(Ctrl+W)--CpictureXSView(類名)--ID_FILE_OPEN(IDs列表)--COMMAND(Messages列表)--默認(rèn)成員函數(shù)名為OnFileOpen--MemberFunctions(成員函數(shù))中雙擊該函數(shù)進(jìn)入函數(shù)編輯。建立如下函數(shù):打開圖片、保存圖片為重點(diǎn)。對(duì)象標(biāo)識(shí)符消息函數(shù)名所屬類ID_FILE_OPENCOMMANDOnFileOpenCpainterViewID_FILE_SAVECOMMANDOnFileSaveCpainterViewID_FILE_NEWUPDATE_COMMAND_UIOnUpdateFileNewCpainterViewID_FILE_MRU_FILE1UPDATE_COMMAND_UIOnUpdateFileMruFile1CpainterView注意:在添加Messages列表中:ON_COMMAND是點(diǎn)了按鈕或菜單項(xiàng)后的響應(yīng)消息;ON_UPDATE_COMMAND_UI是用來(lái)表示對(duì)應(yīng)的按鈕和菜單項(xiàng)的狀態(tài)的響應(yīng)消息,比如你打開這個(gè)菜單時(shí),處理這個(gè)菜單的狀態(tài),比如選中、變灰等。UPDATE_COMMAND_UI處理程序的參數(shù)是個(gè)「指向CCmdUI對(duì)象的指針」,而CCmdUI對(duì)象就代表著對(duì)應(yīng)的選單命令項(xiàng),因此你只需呼叫CCmdUI所準(zhǔn)備的,專門用來(lái)處理命令項(xiàng)外觀的函式(如Enable或SetCheck)即可。第三步:View類添加成員函數(shù)和成員變量//參數(shù)定義
public:
CStringBmpName;
//保存圖像文件文件名
CStringEntName;
//保存圖像文件擴(kuò)展名
CBitmapm_bitmap;
//創(chuàng)建位圖對(duì)象
void
ShowBitmap(CDC*pDC,CStringBmpName);
//用來(lái)顯示指定位圖bmp的函數(shù)
BOOLShowJpgGif(CDC*
pDC,CStringstrPath,
int
x,
int
y);//用來(lái)顯示指定位圖jpg、gif的函數(shù)添加方法:選中ClassView區(qū)--選中View類右鍵--增加成員變量函數(shù)。第四步:為ID_FILE_OPEN消息添加打開函數(shù)//**************文件打開****************//voidCPictureMapView::OnFileOpen(){//四種格式的文件:bmpgifjpgtiff CStringfilter; filter="所有文件(*.bmp,*.jpg,*.gif,*tiff)|*.bmp;*.jpg;*.gif;*.tiff|BMP(*.bmp)|*.bmp|JPG(*.jpg)|*.jpg|GIF(*.gif)|*.gif|TIFF(*.tiff)|*.tiff||"; CFileDialogdlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,filter,NULL); //按下確定按鈕dlg.DoModal()函數(shù)顯示對(duì)話框 if(dlg.DoModal()==IDOK) { //獲取路徑文件名擴(kuò)展文件名 BmpName=dlg.GetPathName(); //BmpName.Format(_T("%s",str));//重點(diǎn):錯(cuò)誤會(huì)出現(xiàn)錯(cuò)誤的路徑 //AfxMessageBox(BmpName);//顯示圖片的路徑:打樁功能 EntName=dlg.GetFileExt(); EntName.MakeLower();//此成員函數(shù)將此CString對(duì)象轉(zhuǎn)換為一個(gè)小寫字符串 /**********************************************/ /**使用CString處理字符串可處理Unicode、ANSI**/ /**CString中的Format進(jìn)行字符串轉(zhuǎn)換**/ /**********************************************/ Invalidate();//調(diào)用該函數(shù)就會(huì)調(diào)用ONDRAW畫圖 }}第五步:新建菜單和最近使用菜單不可用MFCClassWizard(ctrl+W)--CpictureXSView(類名)--ID_FILE_NEW(IDs列表)—UPDATE_COMMAND_UI(Messages列表)—選擇默認(rèn)成員函數(shù)名--MemberFunctions(成員函數(shù))中雙擊該函數(shù)進(jìn)入函數(shù)編輯。添加函數(shù)://************使新建菜單不可用*********//voidCPictViewView::OnUpdateFileNew(CCmdUI*pCmdUI){ //TODO:AddyourcommandupdateUIhandlercodehere pCmdUI->Enable(FALSE);}同理:最近使用菜單//************使“最近的文件”不可用*********//voidCPictViewView::OnUpdateFileMruFile1(CCmdUI*pCmdUI){ //TODO:AddyourcommandupdateUIhandlercodehere pCmdUI->Enable(FALSE);}第六步:編寫顯示bmp格式圖片函數(shù)//***************顯示bmp格式圖片******************//voidCPictureMapView::ShowBitmap(CDC*pDC,CStringBmpName){ //顯示圖片函數(shù)LoadImage HBITMAPm_hBitmap; m_hBitmap=(HBITMAP)LoadImage(NULL,BmpName,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_DEFAULTSIZE|LR_CREATEDIBSECTION); //AfxMessageBox(BmpName); /**************************************************/ /**1.要裝載OEM圖像,則設(shè)此參數(shù)值為0**/ /**OBM_OEM:位圖;OIC_OEM圖標(biāo);OCR_OEM:光標(biāo)**/ /**2.BmpName要裝載圖片的文件名**/ /**3.裝載圖像類型:IMAGE_BITMAP-裝載位圖**/ /**IMAGE_CURSOR-裝載光標(biāo)**/ /**IMAGE_ICON-裝載圖標(biāo)**/ /**4.指定圖標(biāo)或光標(biāo)的寬度和長(zhǎng)度以像素為單位**/ /**此參數(shù)為零并且值LR_DEFAULTSIZE沒(méi)有被使用那么**/ /**函數(shù)使用目前的資源寬度**/ /**************************************************/ if(m_bitmap.m_hObject) { m_bitmap.Detach();//m_bitmap為創(chuàng)建的位圖對(duì)象 } m_bitmap.Attach(m_hBitmap); //邊界 CRectrect; GetClientRect(&rect); //定義并創(chuàng)建一個(gè)內(nèi)存設(shè)備環(huán)境 CDCdcBmp; if(!dcBmp.CreateCompatibleDC(pDC))//創(chuàng)建兼容性的DC return; BITMAPm_bmp;//臨時(shí)bmp圖片變量 //MessageBox("圖片正在導(dǎo)入!"); m_bitmap.GetBitmap(&m_bmp);//將圖片載入位圖中//MFCafxwin1.inl錯(cuò)誤GetBitmap中 CBitmap*pbmpOld=NULL; dcBmp.SelectObject(&m_bitmap);//將位圖選入臨時(shí)內(nèi)存設(shè)備環(huán)境//圖片顯示調(diào)用函數(shù)BitBlt pDC->BitBlt(0,0,m_bmp.bmWidth,m_bmp.bmHeight,&dcBmp,0,0,SRCCOPY);/******************************************************/ /**參數(shù)x、y位圖目標(biāo)矩形左上角x、y的坐標(biāo)值居中**/ /**nWidth、nHeigth位圖目標(biāo)矩形的邏輯寬度和高度**/ /**pSrcDC表示源設(shè)備CDC指針**/ /**xSrc、ySrc表示位圖源矩形的左上角的x、y邏輯坐標(biāo)值**/ /**dwRop表示顯示位圖的光柵操作方式**/ /**SRCCOPY用于直接將位圖復(fù)制到目標(biāo)環(huán)境中**/ /******************************************************/ dcBmp.SelectObject(pbmpOld);//恢復(fù)臨時(shí)DC的位圖 DeleteObject(&m_bitmap);//刪除位圖 dcBmp.DeleteDC();//刪除后臺(tái)DC//Invalidate();//一直調(diào)用OnDraw顯示圖片}第六步:實(shí)現(xiàn)圖片顯示voidCPictureMapView::OnDraw(CDC*pDC){ CPictureMapDoc*pDoc=GetDocument(); ASSERT_VALID(pDoc); //TODO:adddrawcodefornativedatahere /*在OnDraw函數(shù)中實(shí)現(xiàn)圖片的最后顯示功能*/ if(!pDoc) return;if(EntName.Compare(_T("bmp"))==0)//bmp格式 { ShowBitmap(pDC,BmpName); } elseif(EntName.Compare(_T("jpg"))==0) { ShowJpgGif(pDC,BmpName,1,1); }之后是對(duì)圖像進(jìn)行模糊化處理:其中主要是利用了高斯平滑作為數(shù)學(xué)模板對(duì)圖像進(jìn)行模糊化處理,以及改變像素的算法,下面是對(duì)高斯平滑的簡(jiǎn)單說(shuō)明:圖像的高斯平滑也是利用鄰域平均的思想,對(duì)圖像進(jìn)行平滑處理的一種方法。與圖像的簡(jiǎn)單平滑不同的是,圖像的高斯平滑中,在對(duì)圖像鄰域進(jìn)行平均時(shí),不同位置的像素被賦予了不同的權(quán)值。在圖像的簡(jiǎn)單平滑處理中,算法利用卷積模板逐一處理圖像中的每個(gè)像素,最終得到處理結(jié)果,這一過(guò)程可以形象地比作對(duì)源圖像中的像素一一進(jìn)行過(guò)濾整理,同時(shí)進(jìn)行必要的運(yùn)算,最后產(chǎn)生結(jié)果數(shù)據(jù)。圖像處理中把對(duì)像素鄰域逐一處理的算法過(guò)程稱為濾波器。平滑線性濾波器的工作原理是利用模板對(duì)鄰域內(nèi)像素灰度進(jìn)行加權(quán)平均,因此平滑線性濾波器也被稱為均值濾波器,圖像的簡(jiǎn)單平滑就是平滑線性濾波器的一種應(yīng)用。平滑線性濾波器的衰減因子一般選用模板中所有權(quán)值的和,這樣就可避免處理對(duì)圖像整體屬性的影響。另外,線性濾波器不僅能用于圖像的平滑,也可以用于圖像的其他增強(qiáng)處理,這些會(huì)在后面的章節(jié)為大家介紹。高斯平滑的原理:圖像的高斯平滑是平滑線性濾波器的另一種應(yīng)用,與圖像的簡(jiǎn)單平滑不同的是,它在對(duì)鄰域內(nèi)像素灰度進(jìn)行平均時(shí),給予了不同位置像素不同的權(quán)值。圖11-8顯示的是3×3鄰域的高斯模板,模板上越是靠近鄰域中心的位置,其權(quán)值就越高。如此安排權(quán)值的意義在于用此模板進(jìn)行圖像平滑時(shí),在對(duì)圖像細(xì)節(jié)進(jìn)行模糊的同時(shí),可以更多地保留圖像總體的灰度分布特征。相比圖像的簡(jiǎn)單平滑,高斯平滑對(duì)高對(duì)比度圖像的平滑效率較低,在離散型雜點(diǎn)的消除方面,高斯平滑的效果并不理想。然而如果需要在平滑過(guò)程中保留源圖像的總體特征,高斯平滑就具有很大的優(yōu)勢(shì)。圖11-9對(duì)比了圖像的簡(jiǎn)單平滑和高斯平滑的處理差異,圖中a表示一個(gè)5×5鄰域內(nèi)的像素灰度,從圖中可以看出此鄰域內(nèi)有兩處灰度較高的亮點(diǎn),b為對(duì)a進(jìn)行3×3鄰域簡(jiǎn)單平滑的結(jié)果,從b中可以看出,源圖像中的兩處亮點(diǎn)被連接在一起,失去了源圖像的特征,c為對(duì)a進(jìn)行3×3鄰域高斯平滑的結(jié)果,可以發(fā)現(xiàn)c中依然保留著源圖像的特征。高斯平滑不僅能進(jìn)行3×3鄰域的圖像平滑處理,也可以對(duì)更大范圍的鄰域進(jìn)行平滑,高斯模板上的權(quán)值是由高斯分布函數(shù)確定的,有興趣的讀者可以參考概率論中統(tǒng)計(jì)分布部分的內(nèi)容。高斯平滑的算法實(shí)現(xiàn):考慮圖像為灰度圖,則圖像的簡(jiǎn)單平滑算法如下:BYTE**
CreatImage(BYTE*
image,unsigned
int
width,
unsigned
int
height,
int
bt=4);BYTE
GetAsh(BYTE**
imageBuf0,
int
x,int
y);void
SetPixelXY(BYTE**
imageBuf1,
intx,
int
y,
int
a);int
TempltExcuteAsh(BYTE**
imageBuf0,int
w,
int
h,int*
templt,
int
tw,
int
x,
inty);static
void
SmoothGaussAsh(BYTE*image0,BYTE*
image1,unsignint
w,unsigned
inth){//將圖像轉(zhuǎn)化為矩陣形式BYTE**imageBuf0
=
CreatImage(image0,
w,
h);BYTE**imageBuf1
=
CreatImage(image1,
w,
h);//設(shè)定模板Inttemplt[9]={1,2,1,2,4,2,1,2,1};int
x,y;int
a;intscale;//設(shè)定衰減因子scale
=16;//依次對(duì)源圖像的每個(gè)像素進(jìn)行處理for(y=1;y<h-1;
y++){
for(x=1;
x<w-1;
x++){//利用高斯模板對(duì)鄰域進(jìn)行處理
a=TempltExcuteAsh(imageBuf0,w,h,templt,3,x,y);a/=
scale;//過(guò)限處里a
=a>255?255:a;
a
=
a<0?0:a;SetPixelXY(imageBuf1,x,y,a);
}}//清理內(nèi)存free(imageBuf0);free(imageBuf1);}可以將圖像的高斯平滑推廣到彩色圖像的處理,實(shí)現(xiàn)如下:BYTE**
CreatImage(BYTE*
image,unsigned
int
width,
unsigned
int
height,
int
bt=4)int
TempltExcuteCl(BYTE**
imageBuf0,int
w,
int
h,int*
templt,
int
tw,
int
x,
int
y,
intcn);static
void
SmoothGaussCl(BYTE*image0,
BYTE*
image1,
unsigned
int
w,unsigned
inth){//將圖像轉(zhuǎn)化為矩陣形式BYTE**imageBuf0
=
CreatImage(image0,
w,
h);BYTE**imageBuf1
=
CreatImage(image1,
w,
h);//設(shè)定模板inttemplt[9]={1,2,1,2,4,2,1,2,1};intx,y,c;int
a;intscale;
//設(shè)定衰減因子
scale
=16;
//依次對(duì)源圖像的每個(gè)像素進(jìn)行處理
for(y=1;y<h-1;
y++)
for(x=1;
x<w-1;
x++)
for(c=0;
c<3;
c++)
{//利用高斯模板對(duì)鄰域進(jìn)行處理a=TempltExcuteCl(imageBuf0,w,h,templt3,,x,y,c);a/=
scale;//過(guò)限處理a
=a>255?255:a;
a
=
a<0?0:a;
imageBuf1[y][x*4+c]=a;}
//清理內(nèi)存
free(imageBuf0);
free(imageBuf1);}最后一個(gè)模塊是:圖像的保存主要用到了如下代碼:
bool
SaveBitmapToFile(CBitmap*
bitmap,
LPSTR
lpFileName)
{
HBITMAP
hBitmap;
//
為剛才的屏幕位圖句柄
HDC
hDC;
//設(shè)備描述表
int
iBits;
//當(dāng)前顯示分辨率下每個(gè)像素所占字節(jié)數(shù)
WORD
wBitCount;
//位圖中每個(gè)像素所占字節(jié)數(shù)
DWORD
dwPaletteSize
=
0,
//定義調(diào)色板大小
dwBmBitsSize,
//位圖中像素字節(jié)大小
dwDIBSize,
//位圖文件大小
dwWritten;
//寫入文件字節(jié)數(shù)
BITMAP
Bitmap;
//位圖屬性結(jié)構(gòu)
BITMAPFILEHEADER
bmfHdr;
//位圖文件頭結(jié)構(gòu)
BITMAPINFOHEADER
bi;
//位圖信息頭結(jié)構(gòu)
LPBITMAPINFOHEADER
lpbi;
//指向位圖信息頭結(jié)構(gòu)
HANDLE
fh,
//定義文件
hDib,
//分配內(nèi)存句柄
hPal,
//調(diào)色板句柄
hOldPal
=
NULL;
//計(jì)算位圖文件每個(gè)像素所占字節(jié)數(shù)
hBitmap
=
(HBITMAP)*bitmap;
hDC
=
CreateDC("DISPLAY",NULL,NULL,NULL);iBits=GetDeviceCaps(hDC,BITSPIXEL)*GetDeviceCaps(hDC,
PLANES);
DeleteDC(hDC);
if
(iBits
<=
1)
wBitCount
=
1;
else
if
(iBits
<=
4)
wBitCount
=
4;
else
if
(iBits
<=
8)
wBitCount
=
8;
else
if
(iBits
<=
24)
wBitCount
=
24;
else
if
(iBits
<=
32)
wBitCount
=
32;
//計(jì)算調(diào)色板大小
if
(wBitCount
<=
8)
dwPaletteSize
=
(1
<<
wBitCount)
*
sizeof
(RGBQUAD);
//設(shè)置位圖信息頭結(jié)構(gòu)
GetObject(hBitmap,
sizeof
(BITMAP),
(LPSTR)&Bitmap);
bi.biSize
=
sizeof
(BITMAPINFOHEADER);
bi.biWidth
=
Bitmap.bmWidth;bi.biHeight
=
Bitmap.bmHeight;
bi.biPlanes
=
1;
bi.biBitCount
=
wBitCount;bi.biCompression
=
BI_RGB;bi.biSizeImage
=
0;bi.biXPelsPerMeter
=
0;
bi.biYPelsPerMeter
=
0;
bi.biClrUsed
=
0;
bi.biClrImportant
=
0;
dwBmBitsSize
=
((Bitmap.bmWidth
*
wBitCount+31)
/
32)
*
4
*
Bitmap.bmHeight;
//為位圖內(nèi)容分配內(nèi)存
hDib
=
GlobalAlloc(GHND,
dwBmBitsSize
+
dwPaletteSize
+
sizeof
(BITMAPINFOHEADER));
lpbi
=
(LPBITMAPINFOHEADER)GlobalLock(hDib);
*lpbi
=
bi;
//
處理調(diào)色板
hPal
=
GetStockObject(DEFAULT_PALETTE);
if
(hPal)
{
hDC
=
::GetDC(NULL);
hOldPal
=
::SelectPalette(hDC,
(HPALETTE)hPal,
FALSE);
RealizePalette(hDC);
}
//
獲取該調(diào)色板下新的像素值
GetDIBits(hDC,
hBitmap,
0,
(UINT)
Bitmap.bmHeight,
(LPSTR)lpbi
+
sizeof
(BITMAPINFOHEADER)
+
dwPaletteSize,(LPBITMAPINFO)lpbi,
DIB_RGB_COLORS);
//恢復(fù)調(diào)色板
if
(hOldPal)
{
SelectPalette(hDC,
(HPALETTE)hOldPal,
TRUE);
RealizePalette(hDC);
::ReleaseDC(NULL,
hDC);
}
//創(chuàng)建位圖文件
fh
=
CreateFile(lpFileName,GENERIC_WRITE,0,
NULL,
CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL
|
FILE_FLAG_SEQUENTIAL_SCAN,
NULL);
if
(fh
==
INVALID_HANDLE_VALUE)
return
FALSE;
//
設(shè)置位圖文件頭
bmfHdr.bfType
=
0x4D42;
//
"BMP"
dwDIBSize
=
sizeof
(BITMAPFILEHEADER)+
sizeof
(BITMAPINFOHEADER)
+
dwPaletteSize
+
dwBmBitsSize;
bmfHdr.bfSize
=
dwDIBSize;
bmfHdr.bfReserved1
=
0;
bmfHdr.bfReserved2
=
0;
bmfHdr.bfOffBits
=
(DWORD)sizeof
(BITMAPFILEHEADER)+
(DWORD)sizeof
(BITMAPINFOHEADER)+
dwPaletteSize;WriteFile(fh,
(LPSTR)&bmfHdr,
sizeof(BITMAPFILEHEADER),
&dwWritten,
NULL);W
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年河南省信陽(yáng)市單招職業(yè)傾向性測(cè)試題庫(kù)學(xué)生專用
- 工業(yè)4.0下的SAP智能制造方案-聶蘭華
- 2025年衡陽(yáng)幼兒師范高等??茖W(xué)校單招職業(yè)技能測(cè)試題庫(kù)附答案
- 2025年廣西信息職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)審定版
- SMIC ERP BPR項(xiàng)目軟件版本升級(jí)正式變更 BDC程序變更 2-4-019-某大型企業(yè)SAP ERP方案1
- SMIC ERP BPR項(xiàng)目軟件版本升級(jí)正式變更 標(biāo)準(zhǔn)類變更 1-3-001-某大型企業(yè)SAP ERP方案17
- SMIC ERP BPR項(xiàng)目軟件版本升級(jí)模擬變更 CLONE程序變更 2-1-024-某大型企業(yè)SAP ERP方案14
- SMIC ERP BPR項(xiàng)目軟件版本升級(jí)模擬變更 標(biāo)準(zhǔn)程序變更 1-3-046-某大型企業(yè)SAP ERP方案48
- 2025年河南醫(yī)學(xué)高等??茖W(xué)校單招職業(yè)適應(yīng)性測(cè)試題庫(kù)一套
- 2025云南省安全員-A證考試題庫(kù)附答案
- 股權(quán)糾紛案例分析申訴報(bào)告
- 2022云南省中考道法真題試卷和答案
- 如何在質(zhì)保到期后提供售后服務(wù)
- 勞務(wù)經(jīng)濟(jì)人培訓(xùn)課件
- 海爾集團(tuán)周云杰發(fā)表主題為《無(wú)界生態(tài) 無(wú)限可能》戰(zhàn)略報(bào)告
- 漢字真有趣教學(xué)設(shè)計(jì)
- 經(jīng)典成語(yǔ)故事葉公好龍
- 自導(dǎo)式教學(xué)心得體會(huì)范文【3篇】
- 防范游戲充值詐騙保護(hù)個(gè)人游戲賬號(hào)安全
- 數(shù)學(xué)與體育融合課程設(shè)計(jì)
- 七年級(jí)英語(yǔ)閱讀理解專項(xiàng)訓(xùn)練(含答案)共20篇
評(píng)論
0/150
提交評(píng)論