




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 The Learning of OpenCVHere contains just the exercises in book Learning OpenCV and of course I believe there is better solution for blems: 1. If you set cvSetImageCOI, dont forget to set it back with parameter 0, otherwise you may end up with single channel.2. If you get your IplImage from
2、cvCapture, then do NOT release it as it is not created by you!3. There is some memory allocation in cvSubImageHeader, and do NOT forget to release them. 4. I tried to erase my drawing lines by xor it again, but it seems not working by using cvGetRow. Maybe it is because I mess up with cvSetImageROI
3、without reset it. So, I just use cvCopy to overwrite it.5. When you draw your rectangle of some width of line, be careful that the rectangle is bigger than that width of line.6. The color sequence in bytes order is BGR. The following are exercises in chapter 4./#include #include #include #include #i
4、nclude #include #include #include #pragma comment(lib, cvd.lib)#pragma comment(lib, cxcored.lib)#pragma comment(lib, highguid.lib)CvFont myfont = cvFont(1, 2);char* szCombineName = combine image;bool bMouseButtonDown = false;int x = 0, y = 0;void doDrawing(IplImage* pImage)char buffer256;int winX =
5、0, winY = 0;if (bMouseButtonDown)winX = x;winY = y;sprintf(buffer, mouse click at %d,%d, x, y);cvPutText(pImage, buffer, cvPoint(winX, winY), &myfont, cvScalar(255,0,0);void myMouseCallback(int event, int myx, int myy, int flag, void* pUser)switch (event)case CV_EVENT_LBUTTONDOWN:bMouseButtonDown =
6、true;x = myx;y = myy;break;case CV_EVENT_LBUTTONUP:bMouseButtonDown = false;break;void exercise1()char* szVideoName = e:mytest.avi;char* szWindowName = my video;char* szGrayName = gray image;char* szCannyName = canny image;CvCapture* pCapture = NULL;IplImage* pImage = NULL;IplImage* pGrayImg = NULL;
7、IplImage* pCannyImg = NULL;IplImage* pCombineImg = NULL;IplImage* pSub1= NULL;IplImage* pSub2= NULL;IplImage* pSub3= NULL;int nWidth = 0, nHeight = 0;cvNamedWindow(szWindowName);cvNamedWindow(szGrayName);cvNamedWindow(szCannyName);cvNamedWindow(szCombineName);pCapture = cvCreateFileCapture(szVideoNa
8、me);if (pCapture)nWidth = (int) cvGetCaptureProperty(pCapture, CV_CAP_PROP_FRAME_WIDTH);nHeight = (int) cvGetCaptureProperty(pCapture, CV_CAP_PROP_FRAME_HEIGHT);pGrayImg = cvCreateImage(cvSize(nWidth, nHeight), 8, 1);pCannyImg = cvCreateImage(cvSize(nWidth, nHeight), 8, 1);pCombineImg = cvCreateImag
9、e(cvSize(nWidth, 3*nHeight), 8, 1);pSub1 = cvCreateImageHeader(cvSize(nWidth, nHeight), 8, 1);pSub2 = cvCreateImageHeader(cvSize(nWidth, nHeight), 8, 1);pSub3 = cvCreateImageHeader(cvSize(nWidth, nHeight), 8, 1);pSub1-origin = pCombineImg-origin;pSub2-origin = pCombineImg-origin;pSub3-origin = pComb
10、ineImg-origin;pSub1-widthStep = pCombineImg-widthStep;pSub2-widthStep = pCombineImg-widthStep;pSub3-widthStep = pCombineImg-widthStep;pSub1-imageData = pCombineImg-imageData;pSub2-imageData = pCombineImg-imageData + nHeight*pCombineImg-widthStep;pSub3-imageData = pCombineImg-imageData + nHeight*2*pC
11、ombineImg-widthStep;cvSetMouseCallback(szCombineName, myMouseCallback, pCombineImg);/cvResizeWindow(szCombineName, pCombineImg-width, pCombineImg-height);doif (cvWaitKey(15) = 27)break;pImage = cvQueryFrame(pCapture);if (pImage)cvConvertImage(pImage, pGrayImg, 0);cvCanny(pGrayImg, pCannyImg, 1, 2, 5
12、);/cvShowImage(szWindowName, pImage);/cvShowImage(szGrayName, pGrayImg);/cvShowImage(szCannyName, pCannyImg);cvSetImageCOI(pImage, 1);cvCopy(pImage, pSub1, NULL);cvCopy(pGrayImg, pSub2, NULL);cvCopy(pCannyImg, pSub3, NULL);cvPutText(pSub1, szWindowName, cvPoint(nWidth/2, nHeight/2), &myfont, cvScala
13、r(255,0,0);cvPutText(pSub2, szGrayName, cvPoint(nWidth/2, nHeight/2), &myfont, cvScalar(255,0,0);cvPutText(pSub3, szCannyName, cvPoint(nWidth/2, nHeight/2), &myfont, cvScalar(255,0,0);doDrawing(pCombineImg);cvShowImage(szCombineName, pCombineImg);cvSetImageCOI(pImage, 0);while (true);/ do NOT releas
14、e pImage because it is only retrieved from capture/cvReleaseImage(&pImage);cvReleaseImageHeader(&pSub1);cvReleaseImageHeader(&pSub2);cvReleaseImageHeader(&pSub3);cvReleaseImage(&pGrayImg);cvReleaseImage(&pCannyImg);cvReleaseImage(&pCombineImg);cvReleaseCapture(&pCapture);cvDestroyAllWindows();void m
15、yMouseOnClick(int event, int x, int y, int flag, void* pUser)char buffer256;CvFont myFont = cvFont(2, 2);IplImage* pImage = (IplImage*)pUser;char* ptr = NULL;unsigned char r=0, g=0, b=0;switch (event)case CV_EVENT_LBUTTONDOWN:ptr = pImage-imageData + y*pImage-widthStep + x * pImage-depth* pImage-nCh
16、annels/8;r = ptr0;g = ptr1;b = ptr2;sprintf(buffer, rgb %d,%d,%d, r,g,b);cvPutText(pImage, buffer, cvPoint(x, y), &myFont, cvScalar(255,0,0);break;void exercise2()IplImage* pImage = NULL; /, *pCloneImage = NULL;pImage = cvLoadImage(mytest.jpg);/pCloneImage = cvCloneImage(pImage);cvNamedWindow(mytest
17、);cvSetMouseCallback(mytest, myMouseOnClick, pImage);docvShowImage(mytest, pImage);if (cvWaitKey(1000)=27)break;while (true);cvReleaseImage(&pImage);cvDestroyWindow(mytest);#define HistogramWidth 48#define HistogramHeight 800IplImage* pImage = NULL, *pCloneImage = NULL, *pHistImage= NULL;CvRect rect
18、 = cvRect(0,0,0,0);bool bStart = false;#if 0void eraseFrame()CvMat vecSrc, vecDst;cvSetImageROI(pImage, rect);cvSetImageROI(pCloneImage, rect);cvGetRow(pImage, &vecSrc, 0);cvGetRow(pCloneImage, &vecDst, 0);cvCopy(&vecSrc, &vecDst);cvGetRow(pImage, &vecSrc, rect.height-1);cvGetRow(pCloneImage, &vecDs
19、t, rect.height-1);cvCopy(&vecSrc, &vecDst);cvGetCol(pImage, &vecSrc, 0);cvGetCol(pCloneImage, &vecDst, 0);cvCopy(&vecSrc, &vecDst);cvGetCol(pImage, &vecSrc, rect.width-1);cvGetCol(pCloneImage, &vecDst, rect.width-1);cvCopy(&vecSrc, &vecDst);cvResetImageROI(pImage);cvResetImageROI(pCloneImage);#elsev
20、oid eraseFrame()cvSetImageROI(pImage, rect);cvSetImageROI(pCloneImage, rect);cvCopy(pCloneImage, pImage);cvResetImageROI(pImage);cvResetImageROI(pCloneImage);#endif#define LINE_WIDTH 1void drawFrame()cvRectangle(pImage, cvPoint(rect.x, rect.y), cvPoint(rect.x+rect.width-1, rect.y+rect.height-1), cvS
21、calarAll(255), LINE_WIDTH);/cvLine(pImage, cvPoint(rect.x, rect.y), cvPoint(rect.x+rect.width, rect.y+rect.height), cvScalarAll(255), LINE_WIDTH);void drawHistogram()char* ptr = NULL, *pRow = NULL, *pCol = NULL;char buffer32;int hist38= 0;int index = 0;int nPixWidth = 0;int r, c, i, nOffset = 0;int
22、x = 0 , y = 0;CvFont myFont = cvFont(1,1);int nMax = 0, nScale=1;nPixWidth = pCloneImage-nChannels*pCloneImage-depth/8;ptr = pCloneImage-imageData + rect.y*pCloneImage-widthStep + rect.x*nPixWidth;pRow = ptr;for (r = 0; r rect.height; r +)pCol = pRow;for (c = 0; c rect.width; c +)for (i =0; i nMax)n
23、Max = histiindex;pCol += nPixWidth;pRow += pCloneImage-widthStep;cvSet(pHistImage, cvScalarAll(255);y = HistogramHeight;nScale = HistogramHeight / HistogramHeight;if (nScale = 0)nScale = 1;for (c = 0; c 8; c +)for (i = 0; i LINE_WIDTH & h LINE_WIDTH)if (w != rect.width | h != rect.height)if (rect.wi
24、dth 0 & rect.height 0)eraseFrame();/rect.width = w;rect.height = h;/cvSetImageROI(pImage, rect);/cvSetImageROI(pCloneImage, rect);/cvSet(pImage, cvScalarAll(255);drawFrame();/cvResetImageROI(pImage);/cvResetImageROI(pCloneImage);break;case CV_EVENT_LBUTTONDOWN:if (rect.width 0 & rect.height 0)cvSetI
25、mageROI(pImage, rect);cvSetImageROI(pCloneImage, rect);cvCopy(pCloneImage, pImage);cvResetImageROI(pImage);cvResetImageROI(pCloneImage);/rect.x = x;rect.y = y;rect.width = rect.height = 0;bStart = true;break;case CV_EVENT_LBUTTONUP:if (rect.width 0 & rect.height 0)cvSetImageROI(pImage, rect);cvSet(p
26、Image, cvScalarAll(255);cvResetImageROI(pImage);drawHistogram();/bStart = false;break;void exercise3()pImage = cvLoadImage(mytest.jpg);pCloneImage = cvCloneImage(pImage);cvNamedWindow(histogram);cvNamedWindow(mytest);cvSetMouseCallback(mytest, myMouseCallback3, NULL);pHistImage = cvCreateImage(cvSiz
27、e(8 * HistogramWidth * 3, HistogramHeight+200), 8, 3);docvShowImage(mytest, pImage);if (cvWaitKey(100)=27)break;while (true);cvReleaseImage(&pImage);cvReleaseImage(&pCloneImage);cvDestroyWindow(mytest);int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)exer
28、cise3();/myTest();return 0;/There is a problem that I dont know how to control the program flow. For example, I setup two cvWaitKey because I place one in my main program and another one in the while loop of playing video. You see, if you dont place a cvWaitKey inside the video playing loop, then th
29、ere is simply no redrawing of window. Just image there is no overlapping threads to either decode video or draw window.The following is a simple program acting as an video player(exercise4)#include #include #include #include #include #include #include #include #pragma comment(lib, cvd.lib)#pragma co
30、mment(lib, cxcored.lib)#pragma comment(lib, highguid.lib)int g_nProgress = 0;int g_nPause = 0;int g_nWait = 0;CvCapture* pCapture = NULL;int nValue = -1;char* szWindowName = myplayer;void switchCallback4(int nPos)double fPos = 0.0;fPos = (double)nPos / (double)10;if (pCapture)cvSetCaptureProperty(pC
31、apture, CV_CAP_PROP_POS_AVI_RATIO, fPos);void myPlayer()IplImage* pImage = NULL;doif (g_nPause = 0)break;pImage = cvQueryFrame(pCapture);if (pImage)cvShowImage(szWindowName, pImage);nValue = cvWaitKey(50);while (nValue = -1);void switchCallback5(int nPos)if (nPos = 1)myPlayer();void exercise4()pCapt
32、ure = cvCreateFileCapture(mytest.avi);if (pCapture)cvNamedWindow(szWindowName);cvCreateTrackbar(progress, szWindowName, &g_nProgress, 10, switchCallback4);cvCreateTrackbar(pause, szWindowName, &g_nPause, 1, switchCallback5);doif (cvWaitKey(0) = 27)break;while(true);cvReleaseCapture(&pCapture);cvDest
33、royWindow(szWindowName);int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)exercise4();return 0;chapter 5 exercises:#include #include #include #include #include #include #include #include #pragma comment(lib, cvd.lib)#pragma comment(lib, cxcored.lib)#pragma
34、 comment(lib, highguid.lib)void exercise1()char* szWindowName = loadImage, simpleImage, simpleNoScale, NoMedian, Guassian, bilateral;IplImage* pImage = NULL, *pSimpleImg = NULL, *pNoScaleImg = NULL, *pMedianImg = NULL, *pGaussianImg = NULL, *pBilateralImg = NULL;int i = 0;for (i = 0; i width, pImage
35、-height), pImage-depth, pImage-nChannels);pNoScaleImg = cvCreateImage(cvSize(pImage-width, pImage-height), IPL_DEPTH_16S, pImage-nChannels);pMedianImg = cvCreateImage(cvSize(pImage-width, pImage-height), pImage-depth, pImage-nChannels);pGaussianImg = cvCreateImage(cvSize(pImage-width, pImage-height)
36、, pImage-depth, pImage-nChannels);pBilateralImg = cvCreateImage(cvSize(pImage-width, pImage-height), pImage-depth, pImage-nChannels);cvSmooth(pImage, pSimpleImg, CV_BLUR, 5,5, 5,5);cvSmooth(pImage, pNoScaleImg, CV_BLUR_NO_SCALE,11,11, 32,0.5);cvSmooth(pImage, pMedianImg, CV_MEDIAN,5,5, 5,5);cvSmooth
37、(pImage, pGaussianImg, CV_GAUSSIAN,5,5, 5,5);cvSmooth(pImage, pBilateralImg, CV_BILATERAL, 3,3,0.01, 0.003);cvShowImage(szWindowName0, pImage);cvShowImage(szWindowName1, pSimpleImg);cvShowImage(szWindowName2, pNoScaleImg);cvShowImage(szWindowName3, pMedianImg);cvShowImage(szWindowName4, pGaussianImg
38、);cvShowImage(szWindowName5, pBilateralImg);cvWaitKey(0);cvReleaseImage(&pImage);cvReleaseImage(&pSimpleImg);cvReleaseImage(&pNoScaleImg);cvReleaseImage(&pMedianImg);cvReleaseImage(&pGaussianImg);cvReleaseImage(&pBilateralImg);cvDestroyAllWindows();void exercise2()char* szWindowName = original, 3x3,
39、 5x5, 5x5 second, 9x9, 11x11;IplImage* pImage = NULL, *pImage3 = NULL, *pImage5 = NULL, *pImage5_2 = NULL, *pImage7 = NULL, *pImage9 = NULL, *pImage11 = NULL;int i = 0;for (i = 0; i width, pImage-height), pImage-depth, pImage-nChannels);pImage5 = cvCreateImage(cvSize(pImage-width, pImage-height), pI
40、mage-depth, pImage-nChannels);pImage5_2 = cvCreateImage(cvSize(pImage-width, pImage-height), pImage-depth, pImage-nChannels);pImage7 = cvCreateImage(cvSize(pImage-width, pImage-height), pImage-depth, pImage-nChannels);pImage9 = cvCreateImage(cvSize(pImage-width, pImage-height), pImage-depth, pImage-
41、nChannels);pImage11 = cvCreateImage(cvSize(pImage-width, pImage-height), pImage-depth, pImage-nChannels);cvSmooth(pImage, pImage3, CV_GAUSSIAN, 3,3);cvSmooth(pImage, pImage5, CV_GAUSSIAN, 5,5);cvSmooth(pImage5, pImage5_2, CV_GAUSSIAN, 5,5);cvSmooth(pImage, pImage7, CV_GAUSSIAN,7,7);cvSmooth(pImage,
42、pImage9, CV_GAUSSIAN,9,9);cvSmooth(pImage, pImage11, CV_GAUSSIAN,11,11);cvShowImage(szWindowName0, pImage);cvShowImage(szWindowName1, pImage3);cvShowImage(szWindowName2, pImage5);cvShowImage(szWindowName3, pImage5_2);cvShowImage(szWindowName4, pImage7);cvShowImage(szWindowName5, pImage9);cvShowImage
43、(szWindowName6, pImage11);cvWaitKey(0);cvReleaseImage(&pImage);cvReleaseImage(&pImage3);cvReleaseImage(&pImage5);cvReleaseImage(&pImage5_2);cvReleaseImage(&pImage7);cvReleaseImage(&pImage9);cvReleaseImage(&pImage11);cvDestroyAllWindows();void exercise3()IplImage* pImage = NULL, *pImage5 = NULL, *pIm
44、age9 = NULL, *pImage5_second = NULL;char* ptr = NULL;int i = 0;char* szWindowName = original, 5x5, 9x9, 5x5 second;pImage = cvCreateImage(cvSize(100, 100), 8, 1);pImage5 = cvCreateImage(cvSize(100, 100), 8, 1);pImage5_second = cvCreateImage(cvSize(100, 100), 8, 1);pImage9 = cvCreateImage(cvSize(100,
45、 100), 8, 1);cvSetZero(pImage);cvSetZero(pImage5);cvSetZero(pImage9);ptr = pImage-imageData + pImage-widthStep * 49 + 50 * pImage-depth * pImage-nChannels/8;*ptr = 255;for (i = 0; i 1-9=9-1, 0-0-9-9,9-9-0-0;for (i = 0; i width, pImage0-height), pImage0-depth, pImage0-nChannels);cvNamedWindow(szWindo
46、wNamei);for (i = 0; i 3; i +)cvSmooth(pImage0, pImage1, CV_GAUSSIAN, 9,9,fSizei);cvSmooth(pImage0, pImage2, CV_GAUSSIAN, 0,0,fSizei);cvShowImage(szWindowName0, pImage0);cvShowImage(szWindowName1, pImage1);cvShowImage(szWindowName2, pImage2);cvWaitKey(0);/ c.cvSmooth(pImage0, pImage3, CV_GAUSSIAN, 0,
47、0,1,9);cvShowImage(szWindowName3, pImage3);/ d.cvSmooth(pImage0, pImage4, CV_GAUSSIAN, 0,0,9,1);cvShowImage(szWindowName4, pImage4);/ ecvSmooth(pImage3, pImage5, CV_GAUSSIAN, 0,0,9,1);cvShowImage(szWindowName5, pImage5);/ f.cvSmooth(pImage3, pImage6, CV_GAUSSIAN, 0,0,9,9);cvShowImage(szWindowName6,
48、pImage6);cvSmooth(pImage3, pImage7, CV_GAUSSIAN, 9,9,0,0);cvShowImage(szWindowName7, pImage7);cvShowImage(szWindowName0, pImage0);/cvWaitKey(0);for (i = 0; i sizeof(szWindowName)/sizeof(char*); i +)cvReleaseImage(&pImagei);cvDestroyAllWindows();int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPre
49、vInstance,LPSTR lpCmdLine,int nCmdShow)exercise4();return 0;/ these are chapter 5 exercises:#include #include #include #include #include #include #include #include #pragma comment(lib, cvd.lib)#pragma comment(lib, cxcored.lib)#pragma comment(lib, highguid.lib)void exercise5()CvCapture* pCapture = NU
50、LL;char* szWinName = image-diff;IplImage* pSrc = NULL, * pImage1 = NULL, * pImage2 = NULL, *pDst = NULL;cvNamedWindow(szWinName);pCapture = cvCreateCameraCapture(0);if (pCapture)pSrc = cvQueryFrame(pCapture);pImage1 = cvCreateImage(cvSize(pSrc-width, pSrc-height), pSrc-depth, pSrc-nChannels);cvCopy(
51、pSrc, pImage1);cvShowImage(szWinName, pImage1);cvWaitKey(0);pSrc = cvQueryFrame(pCapture);pImage2 = cvCreateImage(cvSize(pSrc-width, pSrc-height), pSrc-depth, pSrc-nChannels);cvCopy(pSrc, pImage2);cvShowImage(szWinName, pImage2);cvWaitKey(0);pDst = cvCreateImage(cvSize(pImage1-width, pImage1-height)
52、, pImage1-depth, pImage1-nChannels);/cvSub(pImage1, pImage2, pDst);cvShowImage(szWinName, pDst);cvWaitKey(0);cvAnd(pImage1, pImage2, pDst);cvShowImage(szWinName, pDst);cvWaitKey(0);cvReleaseImage(&pDst);cvReleaseImage(&pImage1);cvReleaseImage(&pImage2);cvReleaseCapture(&pCapture);cvDestroyWindow(szW
53、inName);void exercise6()CvCapture* pCapture = NULL;char* szWinName = image-diff;IplImage* pImage = NULL, * pImage1 = NULL, * pImage2 = NULL, *pSrc = NULL, *pErodeImage = NULL, *pDilateImage = NULL;cvNamedWindow(szWinName);pCapture = cvCreateCameraCapture(0);if (pCapture)pSrc = cvQueryFrame(pCapture)
54、;pImage1 = cvCreateImage(cvSize(pSrc-width, pSrc-height), pSrc-depth, pSrc-nChannels);cvCopy(pSrc, pImage1);cvShowImage(szWinName, pImage1);cvWaitKey(0);pSrc = cvQueryFrame(pCapture);pImage2 = cvCreateImage(cvSize(pSrc-width, pSrc-height), pSrc-depth, pSrc-nChannels);cvCopy(pSrc, pImage2);cvShowImag
55、e(szWinName, pImage2);cvWaitKey(0);pImage = cvCreateImage(cvSize(pImage1-width, pImage1-height), pImage1-depth, pImage1-nChannels);/cvSub(pImage1, pImage2, pImage);cvShowImage(szWinName, pImage);cvWaitKey(0);pErodeImage = cvCreateImage(cvSize(pImage1-width, pImage1-height), pImage1-depth, pImage1-nC
56、hannels);/pDilateImage = cvCreateImage(cvSize(pImage1-width, pImage1-height), pImage1-depth, pImage1-nChannels);/cvErode(pImage, pErodeImage);cvShowImage(szWinName, pErodeImage);cvWaitKey(0);cvDilate(pImage, pDilateImage);cvShowImage(szWinName, pDilateImage);cvWaitKey(0);cvReleaseImage(&pErodeImage)
57、;cvReleaseImage(&pDilateImage);cvReleaseImage(&pImage);cvReleaseImage(&pImage1);cvReleaseImage(&pImage2);cvReleaseCapture(&pCapture);cvDestroyWindow(szWinName);void exercise7()CvCapture* pCapture = NULL;char* szWinName = image-diff;IplImage* pThreshold = NULL, * pImage1 = NULL, * pImage2 = NULL, *pS
58、rc = NULL, *pDiffImage = NULL, *pMorphImg = NULL;cvNamedWindow(szWinName);pCapture = cvCreateCameraCapture(0);if (pCapture)pSrc = cvQueryFrame(pCapture);pImage1 = cvCreateImage(cvSize(pSrc-width, pSrc-height), pSrc-depth, 1);cvConvertImage(pSrc, pImage1);cvShowImage(szWinName, pImage1);cvWaitKey(0);
59、pSrc = cvQueryFrame(pCapture);pImage2 = cvCreateImage(cvSize(pSrc-width, pSrc-height), pSrc-depth, 1);cvConvertImage(pSrc, pImage2);cvShowImage(szWinName, pImage2);cvWaitKey(0);pDiffImage = cvCreateImage(cvSize(pSrc-width, pSrc-height), pSrc-depth, 1);pThreshold = cvCreateImage(cvSize(pSrc-width, pS
60、rc-height), pSrc-depth, 1);/pMorphImg = cvCreateImage(cvSize(pSrc-width, pSrc-height), pSrc-depth, 1);cvAbsDiff(pImage1, pImage2, pDiffImage);cvShowImage(szWinName, pDiffImage);cvWaitKey(0);cvThreshold(pDiffImage, pThreshold, 70, 255, CV_THRESH_BINARY);cvShowImage(szWinName, pThreshold);cvWaitKey(0)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 航空航天復(fù)合材料 課件知識點(diǎn)4 納米復(fù)合材料
- 農(nóng)電工基礎(chǔ)試題及答案
- 快樂工作總結(jié)匯報
- 中國電信業(yè)務(wù)培訓(xùn)
- 小班熊貓美術(shù)課件
- 安全事故范例培訓(xùn)
- 整容術(shù)前護(hù)理常規(guī)
- 毛球畫花卉課件
- 大出血的急救護(hù)理措施
- 主動脈瘤超聲表現(xiàn)
- 老公出軌保證書范文
- 2024年山東普通高中學(xué)業(yè)水平等級考試化學(xué)(原卷版)
- 接警員試題題庫
- 湖南省岳陽市2024年八年級下學(xué)期期末物理試卷附答案
- DZ∕T 0284-2015 地質(zhì)災(zāi)害排查規(guī)范(正式版)
- 《風(fēng)電功率預(yù)測功能規(guī)范》
- 關(guān)于讀后續(xù)寫的可行操作課件-高三英語一輪復(fù)習(xí)
- 港口企業(yè)財(cái)務(wù)風(fēng)險分析報告
- 2023年貴州黔西南州專項(xiàng)招聘國企業(yè)工作人員21人考前自測高頻難、易考點(diǎn)模擬試題(共500題)含答案詳解
- 中醫(yī)護(hù)理實(shí)訓(xùn)報告總結(jié)
- 動畫制作與電影特效課件
評論
0/150
提交評論