VC數(shù)字圖像處理編程講座之五

VC數(shù)字圖像處理編程講座之五

ID:37913927

大?。?5.00 KB

頁(yè)數(shù):5頁(yè)

時(shí)間:2019-06-02

VC數(shù)字圖像處理編程講座之五_第1頁(yè)
VC數(shù)字圖像處理編程講座之五_第2頁(yè)
VC數(shù)字圖像處理編程講座之五_第3頁(yè)
VC數(shù)字圖像處理編程講座之五_第4頁(yè)
VC數(shù)字圖像處理編程講座之五_第5頁(yè)
資源描述:

《VC數(shù)字圖像處理編程講座之五》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、VC數(shù)字圖像處理編程講座之五第四節(jié)BMP圖像操作的補(bǔ)充篇  上一講中我們介紹了圖像特效顯示操作的實(shí)現(xiàn)方法,如隨機(jī)顯示效果、馬賽克效果、拉幕顯示效果等,由于篇幅的限制,還有許多效果沒(méi)有介紹;本期講座將接著上一講的內(nèi)容,繼續(xù)介紹一些圖像特效顯示效果。另外,我們前面的學(xué)習(xí)都是針對(duì)現(xiàn)成的BMP圖像,在實(shí)際工作學(xué)習(xí)中,絕大部分處理圖像過(guò)程都是在一個(gè)系統(tǒng)環(huán)境中,也就是說(shuō)需要和圖像數(shù)據(jù)的獲取設(shè)備直接打交道,一般情況下,計(jì)算機(jī)圖像處理系統(tǒng)從系統(tǒng)層次上可分為高、中、低檔三個(gè)層次,目前比較普及的是低檔次的系統(tǒng),該系統(tǒng)由CCD(攝像頭)、圖像采集卡、計(jì)算

2、機(jī)三個(gè)部分組成,其結(jié)構(gòu)簡(jiǎn)單,應(yīng)用方便,效果也比較不錯(cuò),得到的圖像較清晰,所以目前在工程應(yīng)用中采用的比較多。這就給開(kāi)發(fā)人員帶來(lái)一個(gè)現(xiàn)實(shí)的問(wèn)題,如何使用圖像采集卡呢?目前雖然各種編程資源中基于VC開(kāi)發(fā)經(jīng)驗(yàn)的文章不少,但是關(guān)于如何在VC開(kāi)發(fā)平臺(tái)上使用圖像采集卡的文章的確沒(méi)發(fā)現(xiàn),筆者借這期講座的寶貴機(jī)會(huì),補(bǔ)充介紹一下如何在程序中編寫自己的代碼來(lái)操作圖像采集卡,從而搭建一個(gè)完整的圖像處理系統(tǒng)。希望通過(guò)這部分內(nèi)容的學(xué)習(xí),在讀者的腦海里就可以建立一個(gè)完整的圖像操作系統(tǒng)概念;同時(shí)也能夠給目前正需要利用圖像采集卡開(kāi)發(fā)自己的圖像處理系統(tǒng)的朋友有所幫助。

3、  1.抖動(dòng)圖像  在上一節(jié)講座中,我們講到了如何實(shí)現(xiàn)圖象的"雕刻"和"浮雕"效果,它們的實(shí)現(xiàn)思想是通過(guò)求取"沒(méi)有處理過(guò)的相鄰兩個(gè)像素之間的差值"來(lái)實(shí)現(xiàn)的。如果沒(méi)有限制"以前沒(méi)有處理過(guò)的兩個(gè)像素之間的操作",取而代之的是"處理以前已經(jīng)操作過(guò)的像素",那末就可以將一個(gè)像素的灰度值傳遞到與其相鄰的若干像素。事實(shí)上,有時(shí)后我們必須通過(guò)上述的約定才能實(shí)現(xiàn)一些效果,如圖像的抖動(dòng)效果。例如,為了使圖象看起來(lái)好象從左上角向右下角掃過(guò),以產(chǎn)生運(yùn)動(dòng)的感覺(jué),必須要反復(fù)拷貝左上方的那些像素的灰度值,逐步把它們?nèi)诤显谝黄?,看起?lái)好象圖像后邊有一些顏色在逐漸

4、的消失,這就是我們要講的圖象的抖動(dòng)效果。下面給出了該效果的實(shí)現(xiàn)代碼:voidCDibView::OnDouDongImage()//產(chǎn)生"抖動(dòng)"效果圖函數(shù){ HANDLEdata1handle;//用來(lái)存放圖像數(shù)據(jù)的句柄; LPBITMAPINFOHEADERlpBi;//圖像的信息頭結(jié)構(gòu); CDibDoc*pDoc=GetDocument();//得到文擋指針; HDIBhdib;//用來(lái)存放圖像數(shù)據(jù)的句柄; unsignedchar*pData;//指向原始圖像數(shù)據(jù)的指針; unsignedchar*data;//指向處理后圖像

5、數(shù)據(jù)的指針; hdib=pDoc->m_hDIB;//拷貝存放已經(jīng)讀取的圖像文件數(shù)據(jù)句柄; lpBi=(LPBITMAPINFOHEADER)GlobalLock((HGLOBAL)hdib);//獲取圖像信息頭;pData=(unsignedchar*)FindDIBBits((LPSTR)lpBi);//FindDIBBits是我定義的一個(gè)函數(shù),根據(jù)圖像的結(jié)構(gòu)得到位圖的灰度值數(shù)據(jù);pDoc->SetModifiedFlag(TRUE);//設(shè)置文檔修改標(biāo)志為"真",為后續(xù)的修改存盤作準(zhǔn)備;data1handle=GlobalAl

6、loc(GMEM_SHARE,WIDTHBYTES(lpBi->biWidth*8)*lpBi->biHeight); //聲明一個(gè)緩沖區(qū)用來(lái)暫存處理后的圖像數(shù)據(jù);data=(unsignedchar*)GlobalLock((HGLOBAL)data1handle);//得到該緩沖區(qū)的指針;AfxGetApp()->BeginWaitCursor();inti,j,buf;for(i=lpBi->biHeight;i>=2;i--)//從圖像右下角開(kāi)始對(duì)圖像的各個(gè)像素進(jìn)行"抖動(dòng)"處理;  for(j=lpBi->biWidth;j

7、>=2;j--)  {//抖動(dòng)處理、從圖像的右下角開(kāi)始計(jì)算圖像斜上方相鄰像素的均值;buf=(*(pData+(lpBi->biHeight-i)*WIDTHBYTES(lpBi->biWidth*8)+j)+*(pData+(lpBi->biHeight-i+1)*WIDTHBYTES(lpBi->biWidth*8)+j-1))/2;if(buf>255)buf=255;//限制像素點(diǎn)的灰度范圍為0-255;if(buf<0)buf=0;*(data+(lpBi->biHeight-i)*WIDTHBYTES(lpBi->biW

8、idth*8)+j)=(BYTE)buf;}for(j=0;jbiWidt

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。