版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、機(jī)器人及視覺(jué)技術(shù)實(shí)驗(yàn)指導(dǎo)書(shū) 浙江工業(yè)大學(xué)機(jī)械學(xué)院2012年1月目錄 第一部分:基礎(chǔ)編程方法3第二部分:分組實(shí)驗(yàn)內(nèi)容18題目一:基于機(jī)器視覺(jué)白葉片面積測(cè)量系統(tǒng) 18題目二:基于機(jī)器視覺(jué)的硬幣計(jì)數(shù)系統(tǒng) 18題目三:基于機(jī)器視覺(jué)的實(shí)時(shí)測(cè)距系統(tǒng) 18題目四:基于機(jī)器視覺(jué)的實(shí)時(shí)定位系統(tǒng) 18題目五:基于機(jī)器視覺(jué)的水果識(shí)別系統(tǒng) 19題目六:基于機(jī)器視覺(jué)白目標(biāo)位姿測(cè)定系統(tǒng) 19題目七:基于機(jī)器視覺(jué)的形狀識(shí)別系統(tǒng) 19第一部分:基礎(chǔ)編程方法(一)、實(shí)驗(yàn)?zāi)康?、了解VC6.0的運(yùn)行環(huán)境及基本操作;2、了解基于對(duì)話框的程序的編寫(xiě);3、了解PC機(jī)USB攝像頭的控制;4、熟悉數(shù)字圖像的存儲(chǔ)形式以及常用處理方法;5、利
2、用VC對(duì)攝像頭對(duì)圖像進(jìn)行采集與處理。(二)、實(shí)驗(yàn)設(shè)備1、硬件環(huán)境:PC機(jī)與USB攝像頭;2、軟件環(huán)境:Windows操作系統(tǒng)、VC6.0編輯器、OpenCVI.0開(kāi)源庫(kù)。(三)、實(shí)驗(yàn)方法編寫(xiě)程序前,首先下載 OpenCVI.0,下載地址: ,按照網(wǎng)站的 VC6 下安裝與配置OpenCV1.0",對(duì)VC和操作系統(tǒng)進(jìn)行設(shè)置,正確操作完成后,按照下面的步驟編 寫(xiě)程序。一、開(kāi)始菜單 一>Microsoft Visual Studio 6.0> Microsoft Visual C+ 6.0 ,如圖 1 所 示,VC6.0運(yùn)行界面如圖2所示圖1圖2二、File >new彈出圖
3、3所小的對(duì)話框圖3在對(duì)話框中選擇“MFC AppWizard(exe;并在“Project name寸話框中填寫(xiě)程序名稱,點(diǎn)擊“OK退出對(duì)話框圖4、添加文件至camera文件下,包括 “DirectShowCJ件夾、“CameraDS.cp附CameraDS.h"圖5四、將工程文件的樹(shù)形結(jié)構(gòu)展開(kāi),添加“CameraDS.cppi “Source Files添加Add FilesCameraDS.hK “Header Files 右鍵單擊 “Source FileS單出菜單,選擇to Folder 弓單出窗口,選擇“CameraDS.cppt件,并確定;同理添加“CameraDS.演件
4、。添加后,這兩個(gè)文件出現(xiàn)在目錄樹(shù)中。jJCCaweraDlg, cliiss memberWorkspace 'csmers1: 1 project|-camera filesSoLjAdd Files to Folder.-_J Hea * Geeking V1#W=1( Mi deProperti esStdAfx.h圖6五、項(xiàng)目配置,Project>Setting 彈出圖7所示的對(duì)話框,選擇 C+”標(biāo)簽頁(yè),在 “Categoryp選擇 preprocessor,在 Additional include directories”中添力口 DirectShow/Include&
5、quot;;選擇 Link”標(biāo)簽頁(yè),在 “Category選擇 Input”,在 Additional include path”中添加 DirectShow/Lib ";在 Object/library modules”中添力口 cxcore.lib cv.lib cvaux.lib highgui.lib cvcam.lib "。選擇 C+”標(biāo)簽頁(yè),在 “Category 中選擇 Precompiled Headers, 修改默認(rèn)選項(xiàng)為 Automatic use of precompiled headers o圖7六、編譯程序,打開(kāi)對(duì)話框資源,如圖 8所示圖10圖8I
6、D為七、將Picture”控件拖入窗口,設(shè)置合適的大小,并修改其屬性,更改IDC_PICL", IDC_PICR”。圖9八、在 CameraDlg.h”中添加頭文件,"camerads.h"、"highgui.h"、九、在CCameraDlg類中(即在cameraDlg.h文件中),添加公共變量。CDC *pDCL, *pDCR ; /圖形設(shè)備環(huán)境指針HDC hDCL, hDCR ; 設(shè)備上下文的句柄CRect rectL, rectR; 窗 口區(qū)域CCameraDS camera /CCameraDS 類的對(duì)象CvvImage m_image
7、L ;/左窗口圖像數(shù)據(jù)CvvImage m_imageR |/右窗口圖像數(shù)據(jù)int m_iWidth; /圖像寬度int m_iHeight; /圖像高度bool m_bCameraOpen/判斷圖像是否已經(jīng)打開(kāi),標(biāo)志變量int cam_count;/攝像頭數(shù)目bool m_bImageShow ;/圖像是否正在顯示圖11十、對(duì)上述定義的部分變量進(jìn)行初始化,初始化放在構(gòu)造函數(shù)中m_iWidth = 320 ;m_iHeight = 240 ;m_bCameraOpen =false ;m_bImageShow =false ;圖12一、添加按鈕,實(shí)現(xiàn)查找攝像頭,并對(duì)攝像頭進(jìn)行初始化void C
8、CameraDlg二OnOpenCamera(/將代碼添加到這個(gè)函數(shù)中圖13void CCameraDlg二OnOpenCamera(if (m_bCameraOpenreturn ;cam_count = CCameraDS二CameraCount(;if(!cam_countMessageBox('未查找到攝像頭!","",MB_ICONINFORMATION;else/獲取所有攝像頭的名稱CString str ;for(int i=0; i < cam_count; i+char camera_name1024;int retval = CC
9、ameraDS二CameraName(i, camera_namsjzeof(camera_name ;if(retval >0str.Format("加號(hào)為 d假像機(jī)的名,為 |%s",i,camera_name ;/MessageBox(str,"",MB_ICONINFORMATION;elsestr.Format(懷能獲得編號(hào)為|%d 假像機(jī)的名,|",i ;MessageBox(str"",MB_ICONINFORMATION;/左邊顯示窗口設(shè)置關(guān)聯(lián)pDCL = GetDlgItem(IDC_PICL->
10、;GetDC(;hDCL= pDCL->GetSafeHdc(;GetDlgItem(IDC_PICL->GetClientRect(&rectL;/右邊顯示窗口設(shè)置關(guān)聯(lián)pDCR = GetDlgItem(IDC_PICR->GetDC(;hDCR= pDCR->GetSafeHdc(;GetDlgItem(IDC_PICR->GetClientRect(&rectR;if(!camera.OpenCamera(0,0,320,240MessageBox(,h 能打開(kāi)攝像頭 E","",MB_ICONINFORMATI
11、ON;elseMessageBoxC 攝像頭初始完畢!","",MB_ICONINFORMATION;m_bCameraOpen =true ;二、添加多線程函數(shù),實(shí)現(xiàn)圖像的采集和處理年一上一”尊尊圖14UINT CCameraDlg二ReceiveThread(void *param CCameraDlg *pDlg = (CCameraDlg*param ;while(1 if(!pDlg->m_bImageShowreturn 0 ;/獲取一幀IplImage *pFrame = pDlg->camera.QueryFrame(;/左邊顯示窗口,
12、顯示原始圖像pDlg->m_imageL.CopyOf(pFrame;SetRect(pDlg->rectL, 0,0,pFrame->width,pFrame->height;pDlg->m_imageL.DrawToHDC(pDlg->hDCL,&(pDlg->rectL;/可以添加一個(gè)函數(shù)用于圖像處理,將處理后的結(jié)果顯示在右邊窗口/圖像處理函數(shù)到添加這里/右邊顯示窗口,顯示處理后的圖像pDlg->m_imageR.CopyOf(pFrame,1;SetRect(pDlg->rectR, 0,0,pFrame->width
13、,pFrame->height;pDlg->m_imageR.DrawToHDC(pDlg->hDCR,&(pDlg->rectR;/延時(shí)200毫秒Sleep(200 ; return 0 ;十三、為按鈕 顯示圖像”添加函數(shù),調(diào)用線程函數(shù)。void CCameraDlg二OnImageShow(if(!m_bCameraOpenreturn ;m_bImageShow =true ;AfxBeginThread(ReceiveThread,this ;圖15十四、添加停止顯示"按鈕,并為其添加函數(shù)。圖16void CCameraDlg二OnImageS
14、top(m_bImageShow =false ;十五、由此編譯程序,并運(yùn)行,可以得到17所示的界面,因?yàn)闆](méi)有添加圖像處理函數(shù),所以兩個(gè)窗口得到的畫(huà)面一致。圖17十六、添加圖像處理函數(shù)圖18void CCameraDlg:ImageThresholdChar *pImageData, int width, int height, int nChannels,int widthStep char *RImageData,*GImageData,*BImageData ;for(int i=0; i < height; i+for(int j =0 ; j < width; j+RIm
15、ageData = pImageData + i*widthStep + j*nChannels + 2 ;GImageData = pImageData + i*widthStep + j*nChannels + 1 ;BImageData = pImageData + i*widthStep + j*nChannels + 0 ; if(uchar*RImageData <100 *RImageData = (uchar255 ;*GImageData = (uchar255 ;* BImageData = (uchar255 ;else* RImageData = 0 ;* GIm
16、ageData = 0 ;* BImageData = 0 ;十七、在線程函數(shù)中,調(diào)用圖像處理函數(shù)。將下面的語(yǔ)句添加到十二步驟中的紅色標(biāo)識(shí)區(qū)域。pDlg->ImageThreshold(pFrame->imageData,pFrame->width,pFrame->height,pFrame- >nChannels,pFrame->widthStep ;圖19十八、程序運(yùn)行結(jié)果圖20十九、添加 關(guān)閉攝像頭”按鈕,并為其添加函數(shù)。圖21void CCameraDlg二OnCloseCamera(MessageBox"請(qǐng)先停止顯示圖像!",&
17、quot;",MB_ICONINFORMATION;return ;if(m_bCameraOpencamera.CloseCamera(;m_bCameraOpen =false ;提示:在對(duì)程序進(jìn)行參數(shù)配置完畢,添加代碼的同時(shí),建議對(duì)程序少有改進(jìn),即進(jìn) 行編譯處理,以檢查是否出現(xiàn)錯(cuò)誤。如果出現(xiàn)很多錯(cuò)誤,使用菜單Build->Rebuild All ,對(duì)程序進(jìn)行完全編譯。第二部分:分組實(shí)驗(yàn)內(nèi)容在熟悉以上基本操作步驟的基礎(chǔ)上,進(jìn)行 5-7人分組實(shí)驗(yàn),實(shí)驗(yàn)題目可在以下 題目中選擇或自行定義,通過(guò)教師審核后,開(kāi)始實(shí)驗(yàn)。題目一:基于機(jī)器視覺(jué)的葉片面積測(cè)量系統(tǒng)基本要求:將一葉片放置在攝
18、像頭正下方(圖像采集背景自制,背景不能更 換),采集一幅圖像保存至計(jì)算機(jī),程序能夠計(jì)算出該葉片的實(shí)際面積(以平方毫 米為單位)。葉片測(cè)試對(duì)象不少于 40片。程序其他功能可自由添加。作業(yè)上交內(nèi)容:可正確執(zhí)行的程序源代碼,程序開(kāi)發(fā)文檔(主要介紹程序編寫(xiě) 過(guò)程、采用的算法、測(cè)試的數(shù)據(jù)統(tǒng)計(jì)等)。題目二:基于機(jī)器視覺(jué)的硬幣計(jì)數(shù)系統(tǒng)基本要求:將多個(gè)硬幣(若干個(gè)一元、五角、一角)放置在攝像頭正下方(圖 像采集背景自制),計(jì)算機(jī)能實(shí)時(shí)給出圖像中硬幣的數(shù)量,并實(shí)時(shí)顯示在程序界面 上。程序其他功能可自由添加。作業(yè)上交內(nèi)容:可正確執(zhí)行的程序源代碼,程序開(kāi)發(fā)文檔(主要介紹程序編寫(xiě) 過(guò)程、采用的算法、測(cè)試的數(shù)據(jù)統(tǒng)計(jì)等)。題目三:基于機(jī)器視覺(jué)的實(shí)時(shí)測(cè)距系統(tǒng)基本要求:將一個(gè)特征比較明顯的物體放置在攝像頭正前方(目標(biāo)物體自 選),計(jì)算機(jī)能實(shí)時(shí)給出目標(biāo)與攝像頭中心的距離(單位:毫米),并實(shí)時(shí)顯示在 程序界面上。程序其他功能可自由添加。作業(yè)上交內(nèi)容:可正確執(zhí)行的程序源代碼,程序開(kāi)發(fā)文檔(主要介紹程序編寫(xiě) 過(guò)程、采用的算法、測(cè)試的數(shù)據(jù)統(tǒng)計(jì)等)。題目四:基于機(jī)器視覺(jué)的實(shí)時(shí)定位系統(tǒng)基本要求:將一個(gè)物體(目標(biāo)物體自選)放置 A4紙上,移動(dòng)物體,計(jì)算機(jī)能 實(shí)時(shí)給出物體相對(duì)于A4紙張的位置(單位:毫米),坐標(biāo)系以 A4紙的一角為基 準(zhǔn)原點(diǎn),兩個(gè)邊分別為X、Y軸,計(jì)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 期間核查記錄表(計(jì)量)
- 廠房租賃解除協(xié)議范本:2024年
- 卡丁車俱樂(lè)部運(yùn)營(yíng)合同范本
- 平塘買(mǎi)房合同范本
- 車位購(gòu)置協(xié)議示例 2024 年
- 2024年創(chuàng)業(yè)合伙人協(xié)議樣本
- 2024購(gòu)物中心裝修工程承包協(xié)議
- 2024年鮮雞蛋采購(gòu)與銷售協(xié)議范本
- 二手房交易居間協(xié)議2024年
- 賣果合同范本
- 車用動(dòng)力電池回收利用 管理規(guī)范 第2部分:回收服務(wù)網(wǎng)點(diǎn)征求意見(jiàn)稿編制說(shuō)明
- 新劍橋少兒英語(yǔ)第六冊(cè)全冊(cè)配套文本
- 科學(xué)預(yù)測(cè)方案
- 職業(yè)生涯規(guī)劃網(wǎng)絡(luò)與新媒體專業(yè)
- T-WAPIA 052.2-2023 無(wú)線局域網(wǎng)設(shè)備技術(shù)規(guī)范 第2部分:終端
- 市政管道開(kāi)槽施工-市政排水管道的施工
- 人工智能在教育行業(yè)中的應(yīng)用與管理
- 心衰合并胸腔積液的護(hù)理Ppt
- 酒精戒斷綜合征護(hù)理查房課件
- 計(jì)算機(jī)應(yīng)用與人工智能基礎(chǔ)項(xiàng)目9 人工智能
- 人教版九年級(jí)化學(xué)上冊(cè)第六單元課題3-二氧化碳和一氧化碳說(shuō)課稿
評(píng)論
0/150
提交評(píng)論