Opencv第三章練習(xí)題答案_第1頁
Opencv第三章練習(xí)題答案_第2頁
Opencv第三章練習(xí)題答案_第3頁
Opencv第三章練習(xí)題答案_第4頁
Opencv第三章練習(xí)題答案_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Opencv第三章練習(xí)題答案我的編譯環(huán)境是vs2012,opencv-2.4.9,要在附加依賴項中添加:opencv_core249d.lib opencv_highgui249d.lib opencv_imgproc249d.lib 。也可以在代碼添加以下內(nèi)容:cpp01. #pragma comment(lib,opencv_core249d.lib)02. #pragma comment(lib,opencv_highgui249d.lib)03. #pragma comment(lib,opencv_imgproc249d.lib)2.下這個聯(lián)系是幫助掌握矩陣類型。創(chuàng)造個三通道維矩陣,

2、字節(jié)類型,為100X100,并設(shè)置所有數(shù)值為0。a.在矩陣中使void cvCircle(CvArr* img,CvPoint center,int radius,CvScalar color,int thickness=1,int line_type=8,int shift=0)畫個圓。b.使第2章所學(xué)的法來顯這幅圖像。CvMat* mat=cvCreateMat(100,100,CV_8UC3);cvSetZero(mat);cvCircle(mat,cvPoint(mat-width/2,mat-height/2),mat-width/3,CV_RGB(255,0,0) );cvWait

3、Key(0);3.創(chuàng)建個有三個通道的維字節(jié)類型矩陣,為100X100,并將所有值賦為0。通過函數(shù)cvPtr2D將指針指向中間的通道(“”綠“)。以(20,5)與(40,20)為頂點間畫個綠的長形。CvMat* mat=cvCreateMat(100,100,CV_8UC3);unsigned char* pMat=cvPtr2D(mat,0,0);if (isThePointInRectangel(i,j)= true)cvReleaseMat(&mat);cvDestroyWindow(winName);4.創(chuàng)建個為100X100的三通道RGB圖像。將它的元素全部置0。使指針?biāo)惴ㄒ裕?0,5

4、)與(40,20)為頂點繪制個綠平。 IplImage* img=cvCreateImage(cvSize(100,100),8,3);cvZero(img);for (int y=5;yimageData+y*img-widthStep);for (int x=20;x=40;x+)/3個通道*(pImg+3 * x +1)=255;/或/pImg3 * x +1=255;cvDestroyWindow(winName);5.練習(xí)使感興趣區(qū)域(ROI)。創(chuàng)建個210X210的單通道圖像并將其歸0。在圖像中使ROI和cvSet()建個增長如字塔狀的數(shù)組。也就是:外部邊界為0,下個內(nèi)部邊界應(yīng)該為

5、20,再下個內(nèi)部邊界為40依此類推,直到最后內(nèi)部值為200;所有的邊界應(yīng)該為10個像素的寬度。最后顯這個圖形。 int x=0;int y=0;int edge=10;width-=2*edge;cvResetImageROI(img);if (colornBreakValue)break;cvWaitKey(0);cvReleaseImage(&img);cvDestroyWindow(winName);6.為個圖像創(chuàng)建多個圖像頭。讀取個少為100X100的圖像。另創(chuàng)建兩個圖像頭并設(shè)置它們的origion,depth,nChannels和widthStep屬性同之前讀取的圖像樣。在新的圖像頭

6、中,設(shè)置寬度為20,度為30。最后,將imageData指針分別指向像素(5,10)和(50,60)像素位置。傳遞這兩個新的圖像頭給cvNot()。最后顯最初讀取的圖像,在那個圖像中應(yīng)該有兩個矩形,矩形內(nèi)的值是原始值的求反值。cvReleaseImage(&img1);cvReleaseImage(&img2);cvReleaseImage(&img);cvDestroyWindow(winName);7.使cvCmp()創(chuàng)建個掩碼。加載個真實的圖像。使cvSplit()將圖像分割成紅,綠,藍(lán)三個當(dāng)通道圖像。a.找到并顯綠圖。b.克隆這個綠圖兩次(分別命名為clone1和clone2)。c求出

7、這個綠平的最值和最值。d.將clone1的所有元素賦值為thresh=(unsigned char)(最值-最值)/2.0)。e.將clone2所有元素賦值為0,然后調(diào)函數(shù)cvCmp(green_image,clone1,clone2,CV_CMP_GE)?,F(xiàn)在clone2將是個標(biāo)識綠圖中值超過thresh的掩碼圖像。f.最后,使cvSubS(green_image,thresh/2,green_image,clone2)函數(shù)并顯結(jié)果。 const char* winImgPre=img_pre;const char* winImgG=img_Green;const char* winImgG

8、A=img_Green_after;IplImage* imgR=cvCreateImage(cvSize(img-width,img-height),img-depth,1);IplImage* imgG=cvCreateImage(cvSize(img-width,img-height),img-depth,1);IplImage* imgB=cvCreateImage(cvSize(img-width,img-height),img-depth,1);cvSplit(img,imgG,imgB,imgR,NULL);IplImage* clone1=cvCloneImage(imgG);

9、IplImage* clone2=cvCloneImage(imgG);double maxNum,minNum;double scalar=(maxNum-minNum)/2;cvSet(clone1,cvScalar(scalar) );cvSetZero(clone2);cvReleaseImage(&img);cvReleaseImage(&imgG);cvDestroyWindow(winName);cvDestroyWindow(winImgG);cvDestroyWindow(winImgGA);cvReleaseImage(&clone2);8.創(chuàng)建個結(jié)構(gòu),結(jié)構(gòu)中包含個整數(shù),個

10、CvPoint和個CvRect;稱結(jié)構(gòu)為my_struct。a.寫兩個函數(shù):void write_my_struct(CvFileStorage* fs,const char* name,my_struct* ms)和void read_my_struct(CvFileStorage*fs,CvFileNode* ms_node,my_struct* ms)。它們讀、寫my_struct。b.創(chuàng)建個元素為my_struct結(jié)構(gòu)體且長度為10的數(shù)組,并將數(shù)組寫磁盤和從磁盤讀內(nèi)存。typedef structvoid write_my_struct(CvFileStorage* fs,const

11、char* name,my_struct* ms)cvStartWriteStruct(fs,rect,CV_NODE_SEQ);cvWriteInt(fs,0,ms-rect.x);cvWriteInt(fs,0,ms-rect.y);cvWriteInt(fs,0,ms-rect.width);cvWriteInt(fs,0,ms-rect.height);cvEndWriteStruct(fs);assert(fs !=0);ms-i=cvReadIntByName(fs,0,i,0);CvSeq* s=cvGetFileNodeByName(fs,0,pt)-data.seq;ms-pt.x=cvReadInt(CvFileNode*)cvGetSeqElem(s,0) );ms-pt.y=cvReadInt(CvFi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論