特征提取代碼精選_第1頁
特征提取代碼精選_第2頁
特征提取代碼精選_第3頁
特征提取代碼精選_第4頁
特征提取代碼精選_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、特征提取代碼總結(jié)顏色提取Ø 顏色直方圖提?。篊ode:#include <cv.h>#include <highgui.h>#include <iostream>using namespace std; int main( int argc, char* argv )IplImage * src= cvLoadImage("E:Downloadtest1.jpg",1); IplImage* hsv = cvCreateImage( cvGetSize(src), 8, 3 );IplImage* h_plane = cvCre

2、ateImage( cvGetSize(src), 8, 1 );IplImage* s_plane = cvCreateImage( cvGetSize(src), 8, 1 );IplImage* v_plane = cvCreateImage( cvGetSize(src), 8, 1 );IplImage* planes = h_plane, s_plane ; /* H 分量劃分為16個(gè)等級(jí),S分量劃分為8個(gè)等級(jí)*/int h_bins = 16, s_bins = 8;int hist_size = h_bins, s_bins; /* H 分量的變化范圍*/float h_ran

3、ges = 0, 180 ; /* S 分量的變化范圍*/float s_ranges = 0, 255 ;float* ranges = h_ranges, s_ranges ; /* 輸入圖像轉(zhuǎn)換到HSV顏色空間*/cvCvtColor( src, hsv, CV_BGR2HSV );cvCvtPixToPlane( hsv, h_plane, s_plane, v_plane, 0 ); /* 創(chuàng)建直方圖,二維, 每個(gè)維度上均分*/CvHistogram * hist = cvCreateHist( 2, hist_size, CV_HIST_ARRAY, ranges, 1 );/*

4、根據(jù)H,S兩個(gè)平面數(shù)據(jù)統(tǒng)計(jì)直方圖*/cvCalcHist( planes, hist, 0, 0 ); /* 獲取直方圖統(tǒng)計(jì)的最大值,用于動(dòng)態(tài)顯示直方圖*/float max_value;cvGetMinMaxHistValue( hist, 0, &max_value, 0, 0 ); /* 設(shè)置直方圖顯示圖像*/int height = 240;int width = (h_bins*s_bins*6);IplImage* hist_img = cvCreateImage( cvSize(width,height), 8, 3 );cvZero( hist_img ); /* 用來

5、進(jìn)行HSV到RGB顏色轉(zhuǎn)換的臨時(shí)單位圖像*/IplImage * hsv_color = cvCreateImage(cvSize(1,1),8,3);IplImage * rgb_color = cvCreateImage(cvSize(1,1),8,3);int bin_w = width / (h_bins * s_bins);for(int h = 0; h < h_bins; h+)for(int s = 0; s < s_bins; s+)int i = h*s_bins + s;/* 獲得直方圖中的統(tǒng)計(jì)次數(shù),計(jì)算顯示在圖像中的高度*/float bin_val = c

6、vQueryHistValue_2D( hist, h, s );int intensity = cvRound(bin_val*height/max_value); /* 獲得當(dāng)前直方圖代表的顏色,轉(zhuǎn)換成RGB用于繪制*/cvSet2D(hsv_color,0,0,cvScalar(h*180.f / h_bins,s*255.f/s_bins,255,0);cvCvtColor(hsv_color,rgb_color,CV_HSV2BGR);CvScalar color = cvGet2D(rgb_color,0,0); cvRectangle( hist_img, cvPoint(i*b

7、in_w,height),cvPoint(i+1)*bin_w,height - intensity),color, -1, 8, 0 ); cvNamedWindow( "Source", 1 );cvShowImage( "Source", src ); cvNamedWindow( "H-S Histogram", 1 );cvShowImage( "H-S Histogram", hist_img ); cvWaitKey(0);運(yùn)行效果截圖: 形狀提取Ø Candy算子對(duì)邊緣提?。篊ode: #

8、include "cv.h"#include "cxcore.h"#include "highgui.h" int main( int argc, char* argv ) /聲明IplImage指針 IplImage* pImg = NULL; IplImage* pCannyImg = NULL; /載入圖像,強(qiáng)制轉(zhuǎn)化為GraypImg = cvLoadImage( "E:Downloadtest.jpg", 0); /為canny邊緣圖像申請(qǐng)空間pCannyImg = cvCreateImage(cvGetS

9、ize(pImg), IPL_DEPTH_8U, 1);/canny邊緣檢測cvCanny(pImg, pCannyImg, 50, 150, 3); /創(chuàng)建窗口cvNamedWindow("src", 1);cvNamedWindow("canny",1);/顯示圖像cvShowImage( "src", pImg ); cvShowImage( "canny", pCannyImg ); /等待按鍵cvWaitKey(0);/銷毀窗口cvDestroyWindow( "src" ); cvD

10、estroyWindow( "canny" );/釋放圖像cvReleaseImage( &pImg ); cvReleaseImage( &pCannyImg );return 0; 運(yùn)行效果截圖:Ø 角點(diǎn)提?。篊ode: #include <stdio.h>#include "cv.h"#include "highgui.h"#define MAX_CORNERS 100int main(void)int cornersCount=MAX_CORNERS;/得到的角點(diǎn)數(shù)目CvPoint2D32

11、f cornersMAX_CORNERS;/輸出角點(diǎn)集合IplImage *srcImage = 0,*grayImage = 0,*corners1 = 0,*corners2 = 0;int i;CvScalar color = CV_RGB(255,0,0);cvNamedWindow("image",1);/Load the image to be processedsrcImage = cvLoadImage("E:Download1.jpg",1);grayImage = cvCreateImage(cvGetSize(srcImage),I

12、PL_DEPTH_8U,1);/copy the source image to copy image after converting the format/復(fù)制并轉(zhuǎn)為灰度圖像cvCvtColor(srcImage,grayImage,CV_BGR2GRAY);/create empty images os same size as the copied images/兩幅臨時(shí)位浮點(diǎn)圖像,cvGoodFeaturesToTrack會(huì)用到corners1 = cvCreateImage(cvGetSize(srcImage),IPL_DEPTH_32F,1);corners2 = cvCrea

13、teImage(cvGetSize(srcImage),IPL_DEPTH_32F,1);cvGoodFeaturesToTrack(grayImage,corners1,corners2,corners,&cornersCount,0.05,30,/角點(diǎn)的最小距離是0,/整個(gè)圖像3,0,0.4);printf("num corners found: %dn",cornersCount);/開始畫出每個(gè)點(diǎn)if (cornersCount>0)for (i=0;i<cornersCount;i+)cvCircle(srcImage,cvPoint(int)

14、(cornersi.x),(int)(cornersi.y),2,color,2,CV_AA,0);cvShowImage("image",srcImage);cvSaveImage("imagedst.png",srcImage);cvReleaseImage(&srcImage);cvReleaseImage(&grayImage);cvReleaseImage(&corners1);cvReleaseImage(&corners2);cvWaitKey(0);return 0; 運(yùn)行效果截圖: Ø Houg

15、h直線提?。篊ode: #include <cv.h>#include <highgui.h>#include <math.h> int main(int argc, char* argv) IplImage* src = cvLoadImage( "E:Download2.jpg" , 0 ); IplImage* dst; IplImage* color_dst; CvMemStorage* storage = cvCreateMemStorage(0); CvSeq* lines = 0; int i; if( !src ) ret

16、urn -1; dst = cvCreateImage( cvGetSize(src), 8, 1 ); color_dst = cvCreateImage( cvGetSize(src), 8, 3 ); cvCanny( src, dst, 50, 200, 3 ); cvCvtColor( dst, color_dst, CV_GRAY2BGR );#if 0 lines = cvHoughLines2( dst, storage, CV_HOUGH_STANDARD, 1, CV_PI/180, 100, 0, 0 ); for( i = 0; i < MIN(lines->

17、;total,100); i+ ) float* line = (float*)cvGetSeqElem(lines,i); float rho = line0; float theta = line1; CvPoint pt1, pt2; double a = cos(theta), b = sin(theta); double x0 = a*rho, y0 = b*rho; pt1.x = cvRound(x0 + 1000*(-b); pt1.y = cvRound(y0 + 1000*(a); pt2.x = cvRound(x0 - 1000*(-b); pt2.y = cvRoun

18、d(y0 - 1000*(a); cvLine( color_dst, pt1, pt2, CV_RGB(255,0,0), 3, CV_AA, 0 ); #else lines = cvHoughLines2( dst, storage, CV_HOUGH_PROBABILISTIC, 1, CV_PI/180, 50, 50, 10 ); for( i = 0; i < lines->total; i+ ) CvPoint* line = (CvPoint*)cvGetSeqElem(lines,i); cvLine( color_dst, line0, line1, CV_R

19、GB(255,0,0), 3, CV_AA, 0 ); #endif cvNamedWindow( "Source", 1 ); cvShowImage( "Source", src ); cvNamedWindow( "Hough", 1 ); cvShowImage( "Hough", color_dst ); cvWaitKey(0); return 0;運(yùn)行效果截圖: Ø Hough圓提?。篊ode:#include <cv.h>#include <highgui.h>#i

20、nclude <math.h>#include <iostream>using namespace std;int main(int argc, char* argv) IplImage* img;img=cvLoadImage("E:Download3.jpg", 1); IplImage* gray = cvCreateImage( cvGetSize(img), 8, 1 ); CvMemStorage* storage = cvCreateMemStorage(0); cvCvtColor( img, gray, CV_BGR2GRAY );

21、 cvSmooth( gray, gray, CV_GAUSSIAN, 5, 15 );/ smooth it, otherwise a lot of false circles may be detectedCvSeq* circles = cvHoughCircles( gray, storage, CV_HOUGH_GRADIENT, 2, gray->height/4, 200, 100 ); int i; for( i = 0; i < circles->total; i+ ) float* p = (float*)cvGetSeqElem( circles, i

22、); cvCircle( img, cvPoint(cvRound(p0),cvRound(p1), 3, CV_RGB(0,255,0), -1, 8, 0 ); cvCircle( img, cvPoint(cvRound(p0),cvRound(p1), cvRound(p2), CV_RGB(255,0,0), 3, 8, 0 ); cout<<"圓心坐標(biāo)x= "<<cvRound(p0)<<endl<<"圓心坐標(biāo)y= "<<cvRound(p1)<<endl; cout&l

23、t;<"半徑="<<cvRound(p2)<<endl; cout<<"圓數(shù)量="<<circles->total<<endl; cvNamedWindow( "circles", 1 ); cvShowImage( "circles", img ); cvWaitKey(0); return 0;運(yùn)行效果截圖: Ø Hough矩形提?。篊ode: #include "cv.h"#include "hig

24、hgui.h"#include <stdio.h>#include <math.h>#include <string.h>載入數(shù)張包含各種形狀的圖片,檢測出其中的正方形int thresh = 50; /閾值設(shè)為50IplImage* img = 0;IplImage* img0 = 0;CvMemStorage* storage = 0; /內(nèi)存存儲(chǔ)器是一個(gè)可用來存儲(chǔ)諸如序列,輪廓,圖形,子劃分等動(dòng)態(tài)增長數(shù)據(jù)結(jié)構(gòu)的底層結(jié)構(gòu) CvPoint pt4;const char* wndname = "Square Detection Demo&

25、quot; /定義四個(gè)整數(shù)坐標(biāo)點(diǎn)angle函數(shù)用來返回(兩個(gè)向量之間找到角度的余弦值)double angle( CvPoint* pt1, CvPoint* pt2, CvPoint* pt0 ) double dx1 = pt1->x - pt0->x; double dy1 = pt1->y - pt0->y; double dx2 = pt2->x - pt0->x; double dy2 = pt2->y - pt0->y; return (dx1*dx2 + dy1*dy2)/sqrt(dx1*dx1 + dy1*dy1)*(dx2*

26、dx2 + dy2*dy2) + 1e-10); /返回圖像中找到的所有輪廓序列,并且序列存儲(chǔ)在內(nèi)存存儲(chǔ)器中CvSeq* findSquares4( IplImage* img, CvMemStorage* storage ) /創(chuàng)建序列 CvSeq* contours;int i, c, l, N = 11; CvSize sz = cvSize( img->width & -2, img->height & -2 ); /定義矩形框大小IplImage* timg = cvCloneImage( img ); IplImage* gray = cvCreateI

27、mage( sz, 8, 1 ); IplImage* pyr = cvCreateImage( cvSize(sz.width/2, sz.height/2), 8, 3 ); IplImage* tgray; CvSeq* result; /創(chuàng)建結(jié)果序列double s, t; 創(chuàng)建一個(gè)空序列用于存儲(chǔ)輪廓角點(diǎn)CvSeq* squares = cvCreateSeq( 0, sizeof(CvSeq), sizeof(CvPoint), storage ); /創(chuàng)建序列 cvSetImageROI( timg, cvRect( 0, 0, sz.width, sz.height ); /基于

28、給定矩形設(shè)置感興趣區(qū)域 / down-scale and upscale the image to filter out the noise 過濾噪音cvPyrDown( timg, pyr, 7 ); /對(duì)輸入圖像向下采樣,timg為輸入圖像,pyr為輸出圖像,高度與寬度為輸入圖像一半cvPyrUp( pyr, timg, 7 ); /對(duì)輸入圖像向上采樣,輸出圖像, 寬度和高度應(yīng)是輸入圖像的2倍tgray = cvCreateImage( sz, 8, 1 ); 紅綠藍(lán)3色分別嘗試提取/ find squares in every color plane of the image for(

29、c = 0; c < 3; c+ ) 提取 the c-th color plane cvSetImageCOI( timg, c+1 ); /設(shè)置圖像感興趣通道,選擇1和2和3通道 cvCopy( timg, tgray, 0 ); /把timg(輸入)賦值給tgray(輸出)嘗試各種閾值提取得到的(N=11) for( l = 0; l < N; l+ ) if( l = 0 ) cvCanny( tgray, gray, 0, thresh, 5 ); /對(duì)圖像進(jìn)行邊緣檢測(tgray輸入單通道圖像,gray輸出邊緣圖像) 使用任意結(jié)構(gòu)元素膨脹圖像 cvDilate( gra

30、y, gray, 0, 1 ); /對(duì)輸入圖像進(jìn)行膨脹 else cvThreshold( tgray, gray, (l+1)*255/N, 255, CV_THRESH_BINARY );/自適應(yīng)二值化 找到所有輪廓并且存儲(chǔ)在序列中 cvFindContours( gray, storage, &contours, sizeof(CvContour),CV_RETR_LIST, CV_CHAIN_APPROX_SIMPLE, cvPoint(0,0) ); /從二值圖像中提取輪廓(gray是單通道二值圖像,storage返回輪廓的容器) 遍歷找到的每個(gè)輪廓contours whil

31、e( contours ) 用指定精度逼近多邊形曲線 result = cvApproxPoly( contours, sizeof(CvContour), storage,CV_POLY_APPROX_DP, cvContourPerimeter(contours)*0.02, 0 ); /多邊形逼近輪廓,是頂點(diǎn)數(shù)目變少if( result->total = 4 && fabs(cvContourArea(result,CV_WHOLE_SEQ) > 1000 && cvCheckContourConvexity(result) ) /當(dāng)輪廓數(shù)為4

32、,fabs為取絕對(duì)值 輪廓為凸cvContourArea計(jì)算整個(gè)輪廓的面積 s = 0; for( i = 0; i < 5; i+ ) if( i >= 2 ) t = fabs(angle( (CvPoint*)cvGetSeqElem( result, i ),(CvPoint*)cvGetSeqElem( result, i-2 ),(CvPoint*)cvGetSeqElem( result, i-1 ); s = s > t ? s : t; if 余弦值 足夠小,可以認(rèn)定角度為90度直角 cos0.1=83度,能較好的趨近直角 if( s < 0.3 )

33、for( i = 0; i < 4; i+ ) cvSeqPush( squares, (CvPoint*)cvGetSeqElem( result, i ); 繼續(xù)查找下一個(gè)輪廓 contours = contours->h_next; cvReleaseImage( &gray ); cvReleaseImage( &pyr ); cvReleaseImage( &tgray ); cvReleaseImage( &timg ); return squares; drawSquares函數(shù)用來畫出在圖像中找到的所有正方形輪廓/ the funct

34、ion draws all the squares in the imagevoid drawSquares( IplImage* img, CvSeq* squares ) CvSeqReader reader; IplImage* cpy = cvCloneImage( img ); int i; cvStartReadSeq( squares, &reader, 0 ); for( i = 0; i < squares->total; i += 4 ) CvPoint* rect = pt; int count = 4; memcpy( pt, reader.ptr,

35、 squares->elem_size ); CV_NEXT_SEQ_ELEM( squares->elem_size, reader ); memcpy( pt + 1, reader.ptr, squares->elem_size ); CV_NEXT_SEQ_ELEM( squares->elem_size, reader ); memcpy( pt + 2, reader.ptr, squares->elem_size ); CV_NEXT_SEQ_ELEM( squares->elem_size, reader ); memcpy( pt + 3,

36、 reader.ptr, squares->elem_size ); CV_NEXT_SEQ_ELEM( squares->elem_size, reader ); cvPolyLine( cpy, &rect, &count, 1, 1, CV_RGB(0,255,0), 3, CV_AA, 0 ); cvShowImage( wndname, cpy ); cvReleaseImage( &cpy );void on_trackbar( int a ) if( img ) drawSquares( img, findSquares4( img, stor

37、age ) );char* names = "1.jpg", 0 ;int main(int argc, char* argv) int i, c; storage = cvCreateMemStorage(0); for( i = 0; namesi != 0; i+ ) img0 = cvLoadImage( namesi, 1 ); if( !img0 ) printf("Couldn't load %sn", namesi ); continue; img = cvCloneImage( img0 ); cvNamedWindow( wn

38、dname, 1 ); cvCreateTrackbar( "canny thresh", wndname, &thresh, 1000, on_trackbar ); on_trackbar(0); c = cvWaitKey(0); cvReleaseImage( &img ); cvReleaseImage( &img0 ); cvClearMemStorage( storage ); if( c = 27 ) break; cvDestroyWindow( wndname ); return 0; 運(yùn)行效果截圖: Ø 邊緣直方圖提取

39、:Code: #include "cv.h"#include "highgui.h"#include <stdio.h>#include <ctype.h>#define PI 3.14int main() IplImage *src = 0; / source imagre IplImage *histimg = 0; / histogram image CvHistogram *hist = 0; / define multi_demention histogram IplImage* canny; CvMat* canny_

40、m; IplImage* dx; / the sobel x difference IplImage* dy; / the sobel y difference CvMat* gradient; / value of gradient CvMat* gradient_dir; / direction of gradient CvMat* dx_m; / format transform to matrix CvMat* dy_m; CvMat* mask; CvSize size; IplImage* gradient_im; int i,j; float theta; int hdims =

41、 8; / 劃分HIST的個(gè)數(shù),越高越精確 float hranges_arr = -PI/2,PI/2; / 直方圖的上界和下界 float* hranges = hranges_arr; float max_val; / int bin_w; src=cvLoadImage("E:Downloadtest.jpg", 0); / force to gray image if(src=0) return -1; cvNamedWindow( "Histogram", 0 ); /cvNamedWindow( "src", 0); s

42、ize=cvGetSize(src); canny=cvCreateImage(cvGetSize(src),8,1);/邊緣圖像 dx=cvCreateImage(cvGetSize(src),32,1);/x方向上的差分/此處的數(shù)據(jù)類型為U 不怕溢出嗎? dy=cvCreateImage(cvGetSize(src),32,1); gradient_im=cvCreateImage(cvGetSize(src),32,1);/梯度圖像 canny_m=cvCreateMat(size.height,size.width,CV_32FC1);/邊緣矩陣 dx_m=cvCreateMat(si

43、ze.height,size.width,CV_32FC1); dy_m=cvCreateMat(size.height,size.width,CV_32FC1); gradient=cvCreateMat(size.height,size.width,CV_32FC1);/梯度矩陣 gradient_dir=cvCreateMat(size.height,size.width,CV_32FC1);/梯度方向矩陣 mask=cvCreateMat(size.height,size.width,CV_32FC1);/掩碼 cvCanny(src,canny,60,180,3);/邊緣檢測 cvC

44、onvert(canny,canny_m);/把圖像轉(zhuǎn)換為矩陣 cvSobel(src,dx,1,0,3);/ 一階X方向的圖像差分:dx cvSobel(src,dy,0,1,3);/ 一階Y方向的圖像差分:dy cvConvert(dx,dx_m); cvConvert(dy,dy_m); cvAdd(dx_m,dy_m,gradient); / value of gradient/梯度不是等于根號(hào)下x的導(dǎo)數(shù)的平方加上y導(dǎo)數(shù)的平方嗎? cvDiv(dx_m,dy_m,gradient_dir); / direction for(i=0;i<size.height;i+) for(j=

45、0;j<size.width;j+) if(cvmGet(canny_m,i,j)!=0 && cvmGet(dx_m,i,j)!=0)/此行是什么意思?只看邊緣上的方向? theta=cvmGet(gradient_dir,i,j); theta=atan(theta); cvmSet(gradient_dir,i,j,theta); else cvmSet(gradient_dir,i,j,0); hist = cvCreateHist( 1, &hdims, CV_HIST_ARRAY, &hranges, 1 ); / 創(chuàng)建一個(gè)指定尺寸的直方圖,并

46、返回創(chuàng)建的直方圖指針 histimg = cvCreateImage( cvSize(320,200), 8, 3 ); / 創(chuàng)建一個(gè)圖像,通道 cvZero( histimg ); / 清; cvConvert(gradient_dir,gradient_im);/把梯度方向矩陣轉(zhuǎn)化為圖像 cvCalcHist( &gradient_im, hist, 0, canny ); / 計(jì)算直方圖 cvGetMinMaxHistValue( hist, 0, &max_val, 0, 0 ); / 只找最大值 cvConvertScale( hist->bins, hist-

47、>bins, max_val ? 255. / max_val : 0., 0 ); / 縮放bin 到區(qū)間0,255 ,比例系數(shù) cvZero( histimg ); bin_w = histimg->width /16; / hdims: 條的個(gè)數(shù),則bin_w 為條的寬度 / 畫直方圖 for( i = 0; i < hdims; i+ ) double val = ( cvGetReal1D(hist->bins,i)*histimg->height/255 );/ 返回單通道數(shù)組的指定元素, 返回直方圖第i條的大小,val為histimg中的i條的高度

48、CvScalar color = CV_RGB(255,255,0); /(hsv2rgb(i*180.f/hdims);/直方圖顏色 cvRectangle( histimg, cvPoint(100+i*bin_w,histimg->height),cvPoint(100+(i+1)*bin_w,(int)(histimg->height - val), color, 1, 8, 0 ); / 畫直方圖畫矩形,左下角,右上角坐標(biāo) cvShowImage( "src", src); cvShowImage( "Histogram", his

49、timg ); cvWaitKey(0); cvDestroyWindow("src"); cvDestroyWindow("Histogram"); cvReleaseImage( &src ); cvReleaseImage( &histimg ); cvReleaseHist ( &hist ); return 0;運(yùn)行效果截圖: Ø 視頻流中邊緣檢測:Code: #include "highgui.h"#include "cv.h"#include "stdio.

50、h"#include <ctype.h> int main(int argc,char * argv) IplImage * laplace = 0; IplImage * colorlaplace = 0; IplImage * planes3 = 0,0,0; CvCapture *capture = 0; /從攝像頭讀取 /*if(argc = 1 |( argc=2 && strlen(argv1)=1 && isdigit(argv10) ) capture = cvCaptureFromCAM(argc = 2 ? argv10

51、 -'0':0);*/ /從文件中讀取 /* else if(argc = 2)*/ capture = cvCaptureFromAVI("1.avi"); if(!capture) fprintf(stderr,"Could not initialize capturing.n"); return -1; cvNamedWindow("Laplacian",1); cvNamedWindow("video",1); /循環(huán)捕捉,直到用戶按鍵跳出循環(huán)體 for(;) IplImage * frame =0; /抓起一禎 frame = cvQueryFrame(capture); if(!frame) break; i

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論