快速學(xué)完OpenCV+python計算機(jī)視覺圖像處理(二)_第1頁
快速學(xué)完OpenCV+python計算機(jī)視覺圖像處理(二)_第2頁
快速學(xué)完OpenCV+python計算機(jī)視覺圖像處理(二)_第3頁
快速學(xué)完OpenCV+python計算機(jī)視覺圖像處理(二)_第4頁
快速學(xué)完OpenCV+python計算機(jī)視覺圖像處理(二)_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

快速學(xué)完OpenCV+python計算機(jī)視覺圖像處理(?)2計算機(jī)視覺?門之OpenCV?門、TensorFlow?門2-1本章介紹本章主要內(nèi)容:OpenCV初識OpenCV?件結(jié)構(gòu)Demo1圖?讀?。簣D?封裝格式、壓縮編碼Demo2圖?寫?:圖?質(zhì)量Demo3像素操作:矩陣顏?空間課程?結(jié)OpenCV是?個開源的計算機(jī)視覺庫,應(yīng)?領(lǐng)域很?泛,在地圖、導(dǎo)航、?機(jī)、嵌?式等等應(yīng)?很常見。2-2下Mac?站式開發(fā)環(huán)境anaconda搭建Mac版本的詳細(xì)搭建流程我??試了,其實?同?異,?家可以根據(jù)下?我給的鏈接按照操作?步?步搭建,很簡單的。1.下載并安裝anaconda2.下載并安裝tensorflow和OpenCV3.下載并安裝notebook點擊,附上Mac詳細(xì)安裝教程2-3Windows下?站式開發(fā)環(huán)境anaconda搭建這個視頻??講的是tf1.x版本的,雖然現(xiàn)在?業(yè)界很多都還是使?的1.x版本,但是2.x確實?1.x強(qiáng)?很多,也在慢慢轉(zhuǎn)換成2.x,?家也可以學(xué)習(xí)2.x版本的TensorFlow。1.下載并安裝anaconda2.下載并安裝tensorflow和OpenCV3.下載并安裝notebook點擊,附W上indows詳細(xì)安裝教程2-4測試案例HelloWorld#1import2string3printimporttensorflowastfhello=tf.constant('hellotf!')sess=tf.Session()print(sess.run(hello))#常量sessprint這?必須使?tf1.x版本,如果你的是tf2.x版本建議降級之后再使?importcv2print('helloopencv')2-5案例1:圖?的讀取和展?importcv2img=cv2.imread('image0.jpg',1)cv2.imshow('image',img)cv2.waitKey(0)2-6Opencv模塊組織結(jié)構(gòu)這?介紹了各個模塊中的功能。其中,?較重要的模塊有core、imgcodecs、imgproc、ml、photo這?個模塊。2-7案例2:圖?寫?圖??件分為?件頭和?件數(shù)據(jù),不同的?件格式(jpg、png等),?件頭和?件數(shù)據(jù)都是不?樣的,?件數(shù)據(jù)也是?件進(jìn)?壓縮編碼后的?件數(shù)據(jù),??部分的?件頭描述的就是數(shù)據(jù)部分的的解碼信息和以及附加信息,解碼器可以根據(jù)附加信息將?件數(shù)據(jù)還原成圖像最原始的數(shù)據(jù)。代碼如下:importcv2#1?件的讀取2封裝格式解析3數(shù)據(jù)解碼4數(shù)據(jù)加載img=cv2.imread('image0.jpg',1)cv2.imshow('image',img)#jpgpng1?件頭2?件數(shù)據(jù)cv2.waitKey(0)#1.14M130kimportcv2img=cv2.imread('image0.jpg',1)cv2.imwrite('image1.jpg',img)#1name2data2-8案例3:不同圖?質(zhì)量保存不同圖?質(zhì)量也就是不同壓縮?的圖?。1.JPEGJPEG是有損壓縮,壓縮?為0-100,為0時,壓縮?越?,越模糊;為100時,壓縮?越低,越清晰(見下圖)importcv2img=cv2.imread('image_jpg.jpg',1)#1M100k10k0-100有損壓縮cv2.imwrite('imageTest0.jpg',img,[cv2.IMWRITE_JPEG_QUALITY,0])cv2.imwrite('imageTest100.jpg',img,[cv2.IMWRITE_JPEG_QUALITY,100])imageTest0=cv2.imread('imageTest0.jpg',1)imageTest100=cv2.imread('imageTest100.jpg',1)cv2.imshow('img',img)cv2.imshow('imageTest0',imageTest0)cv2.imshow('imageTest100',imageTest100)cv2.waitKey(0)2.PNGPNG是?損壓縮,壓縮?為0-9;為0時,壓縮?越低,越清晰;為9時,壓縮?越?,越模糊importcv2image_png=cv2.imread('image_png.png',1)#1M100k10k0-100有損壓縮cv2.imwrite('imageTest0.png',image_png,[cv2.IMWRITE_PNG_COMPRESSION,0])cv2.imwrite('imageTest9.png',image_png,[cv2.IMWRITE_PNG_COMPRESSION,9])imageTest0=cv2.imread('imageTest0.png',1)imageTest9=cv2.imread('imageTest9.png',1)cv2.imshow('image_png',image_png)cv2.imshow('imageTest0',imageTest0)cv2.imshow('imageTest9',imageTest9)cv2.waitKey(0)直觀上,PNG圖?看不出來有啥?變化,但是看直接看圖???,我們可以清晰的看到為0時圖???和原圖?樣,為9時?了很多。2-9像素操作基礎(chǔ)我們看到的每?張圖?或者視頻??的每?幀,其實都是由像素點組成的,那么什么是像素點呢?百度吧!,上?都有,這?就不說了。下圖中,表??個像素點由RGB三種顏?組成,RGB每?個基?都有8位,也就是0~255,?計算機(jī)只能識別?進(jìn)制,所以下?那串?dāng)?shù)字就是對應(yīng)計算機(jī)中讀取到的這個像素點的數(shù)值。下圖中,第6點是png圖?有個α系數(shù),表?透明系數(shù)。還有,我們的彩?圖像的通道由B、G、R這個順序組成的。2-10案例4:像素讀取寫?不要偷懶,?動敲?邊。這?有個?技巧,當(dāng)我們輸?某?個函數(shù),不知道這個函數(shù)括號??的變量是什么意思的時候,我們輸??個左括號或者第?個變量之后輸??個逗號,都會提?你下?個變量寫什么,如果真的不知道什么意思,可以按住ctrl+點擊?標(biāo)左鍵進(jìn)?函數(shù)內(nèi)部查看也有可能是ctrl+alt+?標(biāo)左鍵,就?如我的電腦按住ctrl+左鍵就只是顯??堆|這個豎線。根據(jù)個?情況?議。接下來就是像素讀取寫?代碼:importcv2img=cv2.imread('1.jpg',1)#讀取圖?,其中0表?讀?彩?圖?,-1表?灰度圖?,1表?保留讀取圖?原有的顏?通道#上??句也可以?以下?式表?img_color=cv2.imread('1.jpg',cv2.IMREAD_COLOR)#可以?0表?cv2.IMREAD_COLORimg_gray=cv2.imread('1.jpg',cv2.IMREAD_GRAYSCALE)#可以?-1表?cv2.IMREAD_GRAYSCALEimg_unchanged=cv2.imread('1.jpg',cv2.IMREAD_UNCHANGED)#可以?1表?cv2.IMREAD_UNCHANGED(b,g,r)=img[50,50]#img[50,50]表?img50,50在這個位置的像素點,因為是三通道,分別對應(yīng)著、BG、R,千萬不能弄錯print(b,g,r)#輸出結(jié)果為251252250#50,150-->150,150,即畫?條豎線foriinrange(1,150):img[50+i,150]=(0,0,255)#(0,0,255)表?紅?#150,50-->150,150,即畫?條橫線foriinrange(1,150):img_color[150,50+i]=(0,255,0)#(0,255,0)表?綠?#50,50-->150,150,即將左上到右下組成的的矩形進(jìn)?內(nèi)部填充foriinrange(1,150):forjinrange(1,150):img_gray[50+i,50+j]=255#255??#50,150-->150,50,即將左下到右上組成的的矩形進(jìn)?內(nèi)部填充foriinrange(1,150):forjinrange(1,150):img_unchanged[50+i,150-j]=(255,0,0)#(255,0,0)表?藍(lán)?cv2.imshow("img",img)cv2.imshow("img_color",img_color)cv2.imshow("img_gray",img_gray)cv2.imshow("img_unchanged",img_unchanged)cv2.waitKey(0)2-11tensorflow常量變量定義importtensorflowastfdata1=tf.constant(2,dtype=32)data2=tf.Variable(10,name='var')print(data1)print(data2)sess=tf.Session()print(sess.run(data1))sess.run(tf.global_variables_initializer())print(sess.run(data2))2-12tensorflow運算原理下?內(nèi)容只適?于tf1.x版本,tf2.x拋棄了張量,所以想要運?必須下載1.x版本。importtensorflowastfdata1=tf.constant(2,dtype=32)data2=tf.Variable(10,name='var')print(data1)print(data2)sess=tf.Session()print(sess.run(data1))'''sess.run(tf.global_variables_initializer())print(sess.run(data2))sess.close()#關(guān)閉會話,如果不?close,也可以?with進(jìn)?關(guān)閉#本質(zhì)tf=tensor+計算圖#tensor數(shù)據(jù)#op#graphs數(shù)據(jù)操作#session'''init=tf.global_variables_initializer()sess=tf.Session()withsess:sess.run(init)print(sess.run(data2))2-13常量變量四則運算importtensorflowastfdata1=tf.constant(6)data2=tf.constant(2)dataAdd=tf.add(data1,data2)dataSub=tf.subtract(data1,data2)dataMul=tf.multiply(data1,data2)dataDiv=tf.divide(data1,data2)withtf.Session()assess:print("data1+data2={}".format(sess.run(dataAdd)))print("data1-data2={}".format(sess.run(dataSub)))print("data1*data2={}".format(sess.run(dataMul)))print("data1/data2={}".format(sess.run(dataDiv)))print('end!')運?結(jié)果為:data1+data2=8data1-data2=4data1*data2=12data1/data2=3.0end!上?都是常亮的加減乘除,下?修改?個值為變量進(jìn)?加減乘除看看效果:importtensorflowastfdata1=tf.constant(6)#data2=tf.constant(2)將data2=tf.Variable(2)#data2改為變量dataAdd=tf.add(data1,data2)dataCopy=tf.assign(data2,dataAdd)#dataAdd的值復(fù)制給data2將data26+2=8為,這時dataSub=tf.subtract(data1,data2)dataMul=tf.multiply(data1,data2)dataDiv=tf.divide(data1,data2)init=tf.global_variables_initializer()#存在變量,需要進(jìn)?初始化withtf.Session()assess:sess.run(init)print("data1+data2={}".format(sess.run(dataAdd)))print("data1-data2={}".format(sess.run(dataSub)))print("data1*data2={}".format(sess.run(dataMul)))print("data1/data2={}".format(sess.run(dataDiv)))print("sess.run(dataCopy)=",sess.run(dataCopy))#值為8print("dataCopy.eval()=",dataCopy.eval())#8+6=14->dataCopyprint("tf.get_default_session()=",tf.get_default_session().run(dataCopy))#14+6=20->dataCopy,eval功能?樣和上?print('end!')運?結(jié)果為:data1+data2=8data1-data2=4data1*data2=12data1/data2=3.0sess.run(dataCopy)=8dataCopy.eval()=14tf.get_default_session()=20end!2-14矩陣基礎(chǔ)1placeholder,中?意思是占位符,在tensorflow中類似于函數(shù)參數(shù),運?時必須傳?值。importtensorflowastfdata1=tf.placeholder(tf.float32)#這?通過placeholder先填坑data2=tf.placeholder(tf.float32)dataAdd=tf.add(data1,data2)withtf.Session()assess:#通過feed_dict()函數(shù)向占位符喂?數(shù)據(jù),?字典的?式填坑print(sess.run(dataAdd,feed_dict={data1:8,data2:6}))print('end')運?結(jié)果:14.0end以下是矩陣基礎(chǔ)知識:importtensorflowastf#外?的中括號表?這是?個矩陣,??的中括號表?這是???列data1=tf.constant([[8,8]])data2=tf.constant([[2],[2]])data3=tf.Variable(6,name='var')print('data1:',data1)#直接輸出不會打印矩陣,輸出的第?個表?常量還是變量,第?個表?形狀,第三個表?類型print('data2:{}'.format(data2))#format?法和上??樣data3=tf.constant([[3,3]])data4=tf.constant([[1,3],[2,4],[7,8]])print('data3.shape:',data3.shape)print('data4.shape:',data4.shape)withtf.Session()assess:print(sess.run(data4))#打印整體print(sess.run(data4[1]))#打印某??print(sess.run(data4[:,0]))#表:?打印所有?,0表?打印第?列print(sess.run(data4[0,1]))#0,1表?打印第1?第?列的數(shù)print('end!')運?結(jié)果:data1:Tensor("Const:0",shape=(1,2),dtype=int32)data2:Tensor("Const_1:0",shape=(2,1),dtype=int32)data3.shape:(1,2)data4.shape:(3,2)[[13][24][78]][24][127]3end!2-15矩陣基礎(chǔ)2矩陣的?播在??有介紹。importtensorflowastfdata1=tf.constant([[6,6]])data2=tf.constant([[2],[3]])data3=tf.constant([[2,2]])data4=tf.constant([[1,2],[4,5],[8,9]])#相同維度的矩陣加法matAdd=tf.add(data1,data3)#這?data1data4的維度不同,?了?播的特性,將低維擴(kuò)展成?維data1,變成data4相同維度,且每??相同和matAdd2=tf.add(data1,data4)#矩陣乘法,要滿?矩陣相乘格式,即第?個矩陣列要和第?個矩陣?相同matMul=tf.matmul(data1,data2)#這?乘法是將矩陣中對應(yīng)元素各?相乘,不同維度??播特性,并且數(shù)據(jù)類型必須相同,否則報錯matMul2=tf.multiply(data1,data4)withtf.Session()assess:print(sess.run(matAdd))print(sess.run(matAdd2))print(sess.run(matMul))print(sess.run(matMul2))運?結(jié)果如下:[[88]][[78][1011][1415]][[30]][[612][2430][4854]]2-16矩陣基礎(chǔ)3?定要???敲,多動?,多思考,??寫?遍寫多遍,代碼如下:importtensorflowastf#這?定義了?個2?3列全0的矩陣,很?煩data1=tf.constant([[0,0,0],[0,0,0]])#這?直接?zeros函數(shù)給定?個2?3列全0的矩陣,默認(rèn)float32型,很簡單data2=tf.zeros([2,3])#這?直接?ones函數(shù)給定?個3?2列全1的矩陣,格式轉(zhuǎn)為int32型data3=tf.ones([3,2],dtype=32)#這?直接?fill函數(shù)填充?個全為8866的?列的矩陣data4=tf.fill([6,6],88)#這?定義了?個3?1列的矩陣data5=tf.constant([[6],[8],[6]])#這?直接?zeros_like給定了?個格式像data5全為0的矩陣data6=tf.zeros_like(data5)#這?直接?ones_like給定了?個格式像data5全為1的矩陣data7=tf.ones_like(data5)#這?調(diào)?了linspace函數(shù),將0.0-3.0等分為5等份,開始為0.0,結(jié)束為3.0data8=tf.linspace(0.,3.,5)#這?調(diào)?random_uniform函數(shù),隨機(jī)?成-2~2之間的6?6列的數(shù)組,最?值為-2,最?值為2data9=tf.random_uniform([6,6],-2,2)withtf.Session()assess:print('===========data1===========')print(sess.run(data1))print('===========data2===========')print(sess.run(data2))print('===========data3===========')print(sess.run(data3))print('===========data4===========')print(sess.run(data4))print('===========data5===========')print(sess.run(data5))print('===========data6===========')print(sess.run(data6))print('===========data7===========')print(sess.run(data7))print('===========data8===========')print(sess.run(data8))print('===========data9===========')print(sess.run(data9))運?結(jié)果如下:===========data1===========[[000][000]]===========data2===========[[0.0.0.][0.0.0.]]===========data3===========[[11][11][11]]===========data4===========[[888888888888][888888888888][888888888888][888888888888][888888888888][888888888888]]===========data5===========[[6][8][6]]===========data6===========[[0][0][0]]===========data7===========[[1][1][1]]===========data8===========[0.0.751.52.253.]===========data9===========[[0.111971861.41248081.0134263-1.9970236-0.47386456-0.9146967][1.03463130.63341760.422109131.95678230.5573721-0.5008154][-1.36026050.28631544-1.11301761.01303430.254903321.5334082][-1.5158668-1.18222621.2910948-0.194971561.22649531.0197816][1.9740758-0.839287760.094179151.73914670.5077319-0.6977172][-0.21380329-1.28175590.6250396-0.394576071.6598969-0.43963957]]2-17numpy模塊使?更多numpy相關(guān)的功能請查看代碼如下:#使?numpy模塊進(jìn)?增(Create)\(Delete)\(Update)\(Read)==CURD刪改查importnumpyasnp?#array創(chuàng)建?個?維數(shù)組data1=np.array([1,2,3,4,5,6])#array創(chuàng)建?個?維數(shù)組?data2=np.array([[1,2,3],[4,5,6]])print(data1)print('===========beforeupdate===========')print(data2)#shape表?維度print('data1.shape:{0}\ndata2.shape:{1}'.format(data1.shape,data2.shape))#numpyoneszeros這些都和TensorFlow?樣的和print(np.ones([3,3]))print(np.zeros(([2,2])))#修改data2中第2?第2列的數(shù)據(jù)為88data2[1,1]=88print('===========afterupdate===========')print(data2)#讀取data2第2?第2列的數(shù)據(jù)print(data2[1,1])#定義?個2?3列全為1的矩陣data3=np.ones([2,3])#矩陣與數(shù)字基本運算print('data3=\n',data3)print('data3+3=\n',data3+3)#data3直接與3相加print('data3-3=\n',data3-3)#data3直接與3相減print('data3*3=\n',data3*3)#data3直接與3相乘print('data3/3=\n',data3/3)#data3直接與3相除#兩個矩陣的+和*,當(dāng)然不同,不同維度就會產(chǎn)??播特性data4=np.array([[1,2,1],[4,5,4]])print('data3+data4=\n',data3+data4)#由于data3為全為1print('data3*data4=\n',data3*data4)運?結(jié)果如下:[123456]===========beforeupdate===========[[123][456]]data1.shape:(6,)data2.shape:(2,3)[[1.1.1.][1.1.1.][1.1.1.]][[0.0.][0.0.]]===========afterupdate===========[[123][4886]]88data3=[[1.1.1.][1.1.1.]]data3+3=[[4.4.4.][4.4.4.]]data3-3=[[-2.-2.-2.][-2.-2.-2.]]data3*3=[[3.3.3.][3.3.3.]]data3/3=[[0.333333330.333333330.33333333][0.333333330.333333330.33333333]]data3+data4=[[2.3.2.][5.6.5.]]data3*data4=[[1.2.1.][4.5.4.]]2-18matplotlib模塊的使?更多numpy相關(guān)的功能請查看代碼如下:importnumpyasnpimportmatplotlib.pyplotasplt#x=np.array([1,2,3,4,5,6,7,8,9])#y=np.array([5,2,3,7,4,8,10,13,15])#?成1~10(不包括10),步長為1的9組數(shù)x=np.arange(1,10,1)#隨機(jī)?成3~20之間,??為9的數(shù)組y=np.random.randint(3,20,size=9)#plot是折線圖,x為x軸坐標(biāo),y為y軸左邊,'r'為顏?,lw=5表?線寬plt.plot(x,y,'r',lw=5)#plt.show()#show就會將折線圖和柱狀圖分為兩個窗?顯?如果這?加上x=np.arange(1,10,1)y=np.random.randint(3,20,size=9)#bar表?,柱狀圖和png圖??樣,這?的alpha也表?透明度,0(完全透明)~1(不透明)plt.bar(x,y,alpha=0.5,color='g')plt.show()運?結(jié)果如下:2-19?綜合:??神經(jīng)?絡(luò)逼近股票價格1股票相信?家都應(yīng)該玩過吧,開盤價<收盤價就是紅?K線圖,我們?情就像吃了蜜?樣甜。開盤價>收盤價就是綠?K線圖,我們的?情就?吃了苦??樣,整個?都不好受。下?就是具體的K線圖。代碼如下所?:importnumpyasnpimporttensorflowastfimportmatplotlib.pyplotasplt#先?linspace?成?組1~15的個數(shù)為15個的等差數(shù)列data=np.linspace(1,15,15,dtype=32)data2=np.arange(1,16)#輸出結(jié)果上??樣,np.arange(1,16)輸出不包括16startPrice=np.array([2438.71,2500.88,2534.95,2512.52,2594.04,2743.26,2697.47,2695.24,2678.23,2722.13,2674.93,2744.13,2717.46,2832.73,2877.40])endPrice=np.array([2511.90,2538.26,2510.68,2591.66,2732.98,2701.69,2701.29,2678.67,2726.50,2681.50,2739.17,2715.07,2823.58,2864.90,2919.08])#?動?成隨機(jī)的開始結(jié)束價格#startPrice=np.random.uniform(2500,2600,15)#endPrice=np.random.uniform(2550,2700,15)print("data2:",data2)print('startPrice:',startPrice)print('endPrice:',endPrice)#figure作?為連續(xù)畫?個圖,如果只?畫?個圖,可以不需要,這?只有?個圖,所以可以不?要#plt.figure(num='stock')foriinrange(0,15):#柱狀圖dataSet=np.zeros([2])#?成兩組值為0的數(shù)組,分別?來存放開始結(jié)束價格的橫坐標(biāo)dataSet[0]=idataSet[1]=ipriceSet=np.zeros([2])#?成兩組值為0的數(shù)組,分別?來存放開始結(jié)束價格的價格值priceSet[0]=startPrice[i]priceSet[1]=endPrice[i]#畫線進(jìn)?判斷,如果開始價格結(jié)>束價格,說明是價格下降了,對應(yīng)綠?線KifstartPrice[i]>endPrice[i]:plt.plot(dataSet,priceSet,color='g',lw=6)else:#如果開始價格<結(jié)束價格,說明是價格上漲了,對應(yīng)紅?線Kplt.plot(dataSet,priceSet,color='r',lw=6)plt.show()運?結(jié)果如下:2-20?綜合:??神經(jīng)?絡(luò)逼近股票價格2這?節(jié)的內(nèi)容是將?成的股票價格K線圖?傳統(tǒng)的神經(jīng)?絡(luò)來模擬,下?是具體的過程:從上圖可以看出,輸?層對應(yīng)著天數(shù),可以??定義,這?是?個15?1列的矩陣。隱藏層設(shè)的是?個1x10的矩陣,輸出層是15x1的矩陣,是?個Javascript庫,?于完全在您的瀏覽器中訓(xùn)練深度學(xué)習(xí)模型(神經(jīng)?絡(luò)),?家可以試試看看。這?是?個訓(xùn)練數(shù)據(jù)的循環(huán)體,將每?次的輸出值和輸?值做差,若果差異?于2%,就會進(jìn)?梯度下降,然后循環(huán),?直到它們的差異?于2%才會結(jié)束循環(huán)。2-21~2-22?綜合:??神經(jīng)?絡(luò)逼近股票價格3-4代碼如下:#導(dǎo)?必要模塊importtensorflowastfimportnumpyasnpimportmatplotlib.pyplotasplt#date=np.arange(1,16)date=np.linspace(1,15,15)#print(date)startPrice=np.array([2438.71,2500.88,2534.95,2512.52,2594.04,2743.26,2697.47,2695.24,2678.23,2722.13,2674.93,2744.13,2717.46,2832.73,2877.40])endPrice=np.array([2511.90,2538.26,2510.68,2591.66,2732.98,2701.69,2701.29,2678.67,2726.50,2681.50,2739.17,2715.07,2823.58,2864.90,2919.08])#print(startPrice)#print(endPrice)plt.f

溫馨提示

  • 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

提交評論