




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quá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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2026學年樂業(yè)縣三上數(shù)學期末質(zhì)量跟蹤監(jiān)視模擬試題含解析
- 2025-2026學年江蘇省淮安市淮陰師范學院第一附屬小學數(shù)學三年級第一學期期末復習檢測試題含解析
- 2024年興隆臺區(qū)三上數(shù)學期末綜合測試模擬試題含解析
- 2024年烏恰縣三上數(shù)學期末聯(lián)考模擬試題含解析
- 2024年麗江地區(qū)古城區(qū)數(shù)學三年級第一學期期末質(zhì)量檢測試題含解析
- 2024年濟寧市曲阜市數(shù)學三上期末預測試題含解析
- 公共營養(yǎng)師二級資格考試-膳食調(diào)查和評價試題大全課件
- 2025年執(zhí)業(yè)藥師考試學科交叉知識點試題及答案
- 2025年經(jīng)濟法新變化試題及答案揭曉
- 護理實習感想試題及答案總結(jié)
- 獻血法知識試題及答案
- 2025年北京市租賃合同模板
- 高通量透析與血液透析濾過介紹
- 2024年甘肅省臨潭縣事業(yè)單位公開招聘醫(yī)療衛(wèi)生崗筆試題帶答案
- 23G409先張法預應(yīng)力混凝土管樁
- MOOC 國情分析與商業(yè)設(shè)計-暨南大學 中國大學慕課答案
- 第十二講 建設(shè)社會主義生態(tài)文明PPT習概論2023優(yōu)化版教學課件
- 【學習課件】第七章天然氣處理與輕烴回收
- Thermo Form 311 CO2培養(yǎng)箱中文說明書
- 常用生物化學檢驗技術(shù)
- 提高鋼管樁接頭焊接質(zhì)量圖文
評論
0/150
提交評論