


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、計算機圖像處理技術(shù)前言:隨著計算機軟件、硬件技術(shù)的日新月異的發(fā)展和普及,人類已經(jīng)進入一個高速發(fā)展的信息化時代,人類大概有80%的信息來自圖像,科學研究、技術(shù)應(yīng)用中圖像處理技術(shù)越來越成為不可缺少的手段。圖像處理所涉及的領(lǐng)域有軍事應(yīng)用、醫(yī)學診斷、工業(yè)監(jiān)控、物體的自動分檢識別系統(tǒng)等等,這些系統(tǒng)無不需要計算機提供實時動態(tài),效果逼真的圖像?;趫D像采集卡的視頻圖像處理系統(tǒng) 計算機圖像處理系統(tǒng)從系統(tǒng)層次上可分為高、中、低檔三個層次,目前一般比較普及的是低檔次的系統(tǒng),該系統(tǒng)由CCD(攝像頭)、圖像采集卡、計算機三個部分組成,其結(jié)構(gòu)簡單,應(yīng)用方便,效果也比較不錯,得到的圖像較清晰。目前網(wǎng)上基于VC開發(fā)經(jīng)驗的文
2、章不少,可是關(guān)于如何在VC開發(fā)平臺上使用圖像采集卡的文章確沒發(fā)現(xiàn),筆者針對在科研開發(fā)中積累的使用圖像采集卡經(jīng)驗,介紹如何自己是如何將采集卡集成到圖像開發(fā)系統(tǒng)中,希望能夠給目前正需要利用圖像采集卡開發(fā)自己的圖像處理系統(tǒng)的朋友有所幫助。 使用的攝像機采用臺灣BENTECH INDUSTRIAL 有限公司生產(chǎn)的CV-155L黑白攝像機。該攝像機分辨率為752x582。圖象采集卡我們采用北京中科院科技嘉公司開發(fā)的基于PCI 總線的CA-MPE 1000 黑白圖象采集卡。使用圖像采集卡分三步,首先安裝采集卡的驅(qū)動程序,并將虛擬驅(qū)動文件VxD.vxd拷貝到Windows的SYSTEM目錄下;這時候就可以進
3、入開發(fā)狀態(tài)了,進入VC開發(fā)平臺,生成新的項目,由于生產(chǎn)廠家為圖像采集卡提供了以mpew32.dll、mpew32.lib命名的庫文件,庫中提供了初始硬件、采集圖像等函數(shù),為使用這些函數(shù),在新項目上連接該動態(tài)庫;最后一步就是采集圖像并顯示處理了,這一步要設(shè)置系統(tǒng)調(diào)色板,因為采集卡提供的是裸圖形式,既純圖像數(shù)據(jù),沒有圖像的規(guī)格和調(diào)色板信息,這些需要開發(fā)者自己規(guī)定實現(xiàn),下面是實現(xiàn)的部分代碼: CTestView:CTestView() W32_Init_MPE1000();/初始化采集卡W32_Modify_Contrast(50);/下面的函數(shù)是為了對采集卡進行預設(shè)置W32_Modify_Brig
4、htness(45);/設(shè)置亮度W32_Set_HP_Value(945);/設(shè)置水平采集點數(shù)wCurrent_Frame = 1;/當前幀為1,獲取的圖像就是從這幀取得的/ 設(shè)置采集信號源,僅對MPE1000有效W32_Set_Input_Source(1);W32_CACardParam(AD_SETHPFREQ,hpGrabFreq);W32_Set_PAL_Range(1250, 1024);/設(shè)置水平采集范圍W32_Set_VGA_Mode ( 1 );wGrabWinX1 = 0; / 采集窗口的左上角的坐標wGrabWinY1 = 0;firstTime=TRUE;bGrabMo
5、de = FRAME;bZipMode = ZIPPLE; /lpDib=NULL;/存放獲取的圖像數(shù)據(jù) CTestView:CTestView()W32_Close_MPE1000();/關(guān)閉采集卡/顯示采集的圖象,雙擊鼠標采集停止void CTestView:OnGraboneframe()/ TODO: Add your command handler code herewCurrent_Frame = 1;/ 設(shè)置采集目標為內(nèi)存W32_CACardParam (AD_SETGRABDEST, CA_GRABMEM);/ 啟動采集if (lpDib != NULL)GlobalUnloc
6、k( hglbDIB );GlobalFree( hglbDIB );/ 分配內(nèi)存hglbDIB=GlobalAlloc(GHND, (DWORD)wImgWidth*(DWORD)wImgHeight );lpDib = (BYTE *)GlobalLock( hglbDIB );hdc = GetDC()-GetSafeHdc( ) ;if(lpDib != NULL)cxDib = wImgWidth;cyDib = wImgHeight;SetLogicPal( hdc, cxDib, cyDib, 8 ); SetStretchBltMode (hdc, COLORONCOLOR)
7、; bGrabMark = TRUE; while (bGrabMark = TRUE)if(msg.message=WM_LBUTTONDBLCLK)bGrabMark = FALSE; W32_ReadXMS2Buf (wCurrent_Frame,lpDib) ;SetDIBitsToDevice (hdc, 0, 0, cxDib, cyDib, 0, 0,0, cyDib, (LPSTR) lpDib,bmi,DIB_RGB_COLORS) ;/ 停止采集W32_CAStopCapture();:ReleaseDC( GetSafeHwnd(), hdc );return ;/將下面
8、這個函數(shù)添加在視圖類的CTestView:OnSize()函數(shù)中,就可以對系統(tǒng)的調(diào)色板進行設(shè)置。void WINAPI InitLogicPal( HDC hdc , short width, short height, WORD bitCount )int j, i;short cxDib, cyDib;LOGPALETTE * pLogPal; j=256 ; if (pLogPal=(LOGPALETTE *)malloc(sizeof(LOGPALETTE) + (j*sizeof(PALETTEENTRY) = NULL)return ; pLogPal-palVersion=0x3
9、00;pLogPal-palNumEntries=j; for (i=0;i pLogPal-palPalEntryi.peRed = i ;pLogPal-palPalEntryi.peGreen = i ;pLogPal-palPalEntryi.peBlue = i ;pLogPal-palPalEntryi.peFlags = 0; hPal = :CreatePalette(pLogPal);delete pLogPal;:SelectPalette(hdc,hPal,0);:RealizePalette(hdc); cxDib = width; cyDib = height; if
10、 ( (bmi = (BITMAPINFO *)malloc(sizeof(BITMAPINFOHEADER) + j*sizeof(RGBQUAD) = NULL )return ;/bmi為全局變量,用于顯示圖像時用bmi-bmiHeader.biSize = 40;bmi-bmiHeader.biWidth = cxDib;bmi-bmiHeader.biHeight = cyDib;bmi-bmiHeader.biPlanes = 1 ; bmi-bmiHeader.biBitCount = bitCount ; bmi-bmiHeader.biCompression = 0 ;bmi
11、-bmiHeader.biSizeImage = 0 ;bmi-bmiHeader.biXPelsPerMeter = 0;bmi-bmiHeader.biYPelsPerMeter = 0;bmi-bmiHeader.biClrUsed = 0;bmi-bmiHeader.biClrImportant = 0; for (i=0;i bmi-bmiColorsi.rgbBlue = i ;bmi-bmiColorsi.rgbGreen = i ;bmi-bmiColorsi.rgbRed = i ;bmi-bmiColorsi.rgbReserved = 0 ; 視頻畫中畫技術(shù) 畫中畫這個概
12、念類似與彩色電視機畫中畫,就是在一幅大的圖像內(nèi)顯示另外一幅內(nèi)容不同的小的圖像,小圖像的尺寸大小一般地說為大圖像尺寸的1/4或1/9,顯示位置在大圖像的右上角。這種技術(shù)不僅在電視技術(shù)中,在可視電話系統(tǒng)也可以發(fā)現(xiàn)這種技術(shù)的身影,它們都是依靠硬件來實現(xiàn)的,但是如何在VC開發(fā)平臺上用編程語言來將該功能添加到自己開發(fā)的視頻監(jiān)控軟件,為使用者提供更大的信息量呢?也許讀者最容易想到的是首先顯示大圖像,然后再在一個固定位置畫第二幅小圖像,這種技術(shù)技術(shù)如果對于靜止圖像當然沒有問題,但是對于視頻流,由于每一秒鐘需要畫25?,即25幅圖像,這樣一來計算機需要不停的畫不停的擦除,會給用戶以閃爍的感覺,如何解決這個問題
13、呢?有的參考書上將大小圖像分快顯示,這種方法要將待顯示的圖像數(shù)據(jù)與顯示位置的關(guān)系對應(yīng)起來,容易出錯不說,而且麻煩,且速度慢,為此,我對該方法進行了改進,得到了滿意的效果。實現(xiàn)的代碼如下: void pictureinpicture( ).CBitmap bitmap,*oldmap;pData1=(BYTE*)new charbiWidth*biHeight *3;/biWidth和biHeight為視頻采集卡獲取/的圖像尺寸。Read(pData1,bih.biWidth*bih.biHeight *3);/該函數(shù)從采集卡中獲取數(shù)據(jù)CClientDC dc(this);m_pBMI1= ne
14、w BITMAPINFO;/自定義的BMP文件信息結(jié)構(gòu),用于后面的圖像顯示m_pBMI1-bmiHeader.biBitCount=24;m_pBMI1-bmiHeader.biClrImportant=0;m_pBMI1-bmiHeader.biClrUsed=0;m_pBMI1-bmiHeader.biCompression=0;m_pBMI1-bmiHeader.biHeight=biHeight;m_pBMI1-bmiHeader.biPlanes=1;m_pBMI1-bmiHeader.biSize=40;m_pBMI1-bmiHeader.biSizeImage=WIDTHBYTE
15、S(biWidth*8)*biHeight*3;m_pBMI1-bmiHeader.biWidth=biWidth;m_pBMI1-bmiHeader.biXPelsPerMeter=0;m_pBMI1-bmiHeader.biYPelsPerMeter=0;/pData2=(BYTE*)new charbiWidth1*biHeight1 *3;/申請存放小圖像的緩沖區(qū)Read(pData2,biWidth1*biHeight1 *3);/向該緩沖區(qū)讀數(shù)據(jù)m_pBMI2= new BITMAPINFO;m_pBMI2-bmiHeader.biBitCount=24;m_pBMI2-bmiHe
16、ader.biClrImportant=0;m_pBMI2-bmiHeader.biClrUsed=0;m_pBMI2-bmiHeader.biCompression=0;m_pBMI2-bmiHeader.biHeight=biHeight1;m_pBMI2-bmiHeader.biPlanes=1;m_pBMI2-bmiHeader.biSize=40;m_pBMI2-bmiHeader.biSizeImage=WIDTHBYTES(biWidth1*8)*biHeight1*3;m_pBMI2-bmiHeader.biWidth=biWidth1;m_pBMI2-bmiHeader.bi
17、XPelsPerMeter=0;m_pBMI2-bmiHeader.biYPelsPerMeter=0;/下面實現(xiàn)畫中畫的顯示 CDC MemDc;MemDc.CreateCompatibleDC(&dc);bitmap.CreateCompatibleBitmap(&dc,biWidth,biHeight);oldmap=MemDc.SelectObject(&bitmap);:StretchDIBits(MemDc.m_hDC,0,0,biWidth,biHeight,0,0,biWidth,biHeight,pData1,m_pBMI1,DIB_RGB_COLORS,SRCCOPY);/首先將大圖像畫在內(nèi)寸上下文中 :StretchDIBits(MemDc.m_hDC,20,20,biWidth1,biHeight1,_0,0,biW
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國激光項目創(chuàng)業(yè)計劃書
- 中國口腔種植耗材項目創(chuàng)業(yè)計劃書
- 中國APE項目創(chuàng)業(yè)計劃書
- 中國仁用杏深加工項目創(chuàng)業(yè)計劃書
- 中國金銀花種植項目創(chuàng)業(yè)計劃書
- 中國計算機輔助制造(CAM)軟件項目創(chuàng)業(yè)計劃書
- 中國光聲成像系統(tǒng)項目創(chuàng)業(yè)計劃書
- 中國內(nèi)容分發(fā)網(wǎng)絡(luò)項目創(chuàng)業(yè)計劃書
- 數(shù)據(jù)驅(qū)動的資源分析與預測-洞察闡釋
- 安全教育應(yīng)聘試題及答案
- 2025屆浙江省杭州市建蘭中學八年級英語第二學期期末綜合測試試題含答案
- 小麥收割合同協(xié)議書模板
- 商鋪退押金協(xié)議書
- 廣東省惠州市惠陽區(qū)2023-2024學年一年級下學期語文期末隨堂練習試卷(含答案)
- 冷鏈物流配送中心建設(shè)項目可行性研究報告
- 起重吊裝作業(yè)安全與操作規(guī)范培訓
- 2025遼寧沈陽副食集團所屬企業(yè)招聘25人筆試參考題庫附帶答案詳解
- 2023電氣裝置安裝工程 旋轉(zhuǎn)電機施工及驗收規(guī)范
- 第六單元 年、月、日 單元測試(含答案)2024-2025學年三年級下冊數(shù)學人教版
- 2025-2030中國工業(yè)鉸接式機器人行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 國家開放大學2025年《機電控制工程基礎(chǔ)》形考任務(wù)1-4答案
評論
0/150
提交評論