版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
OpenCV入門Section圖像讀寫感興趣區(qū)域色彩空間視頻讀寫照相機程序圖像讀寫其中我們使用cv2.imread()函數(shù)讀取image.jpg的圖像數(shù)據(jù),再通過cv2.imwrite()函數(shù)將讀取到的img圖像數(shù)據(jù)寫入image_new.jpg圖像文件中。運行后我們可以發(fā)現(xiàn)在根目錄下出現(xiàn)了與image.jpg圖像數(shù)據(jù)相同的image_new.jpg。實現(xiàn)圖片的讀取與顯示cv2.imread(filename,flags)->retval用于圖像數(shù)據(jù)的讀取函數(shù):第一個參數(shù),str類型的filename,表示讀取圖像的路徑。第二個參數(shù),int類型的flags,表示讀取圖像的模式,具體參數(shù)見表“圖像讀取模式”。第一個返回的參數(shù),numpy.ndarray類型的retval,表示讀取的圖像數(shù)據(jù)。圖像讀取模式cv2.imwrite(filename,img,params)->retval用于圖像數(shù)據(jù)的寫入函數(shù):第一個參數(shù),str類型的filename,表示寫入圖像的路徑。第二個參數(shù),numpy.ndarray類型的img,表示寫入圖像的數(shù)據(jù)。第三個參數(shù),list類型的param,針對不同格式的圖像保存質(zhì)量,這個參數(shù)有默認(rèn)值,并且后面不會用到,這里不展開說明。第一個返回的參數(shù),bool類型的retval,表示圖像寫入成功與否。cv2.imshow(winname,mat)用于圖像數(shù)據(jù)的顯示函數(shù):第一個參數(shù),str類型的winname,表示顯示圖像的窗口名稱,同樣也是窗口的標(biāo)識。第二個參數(shù),numpy.ndarray類型的mat,表示要顯示的圖像。cv2.waitKey(delay)->retval用于窗口刷新的等待函數(shù):第一個參數(shù),int類型的delay,表示等待用戶按鍵的時間,當(dāng)用戶按鍵后則刷新窗口。默認(rèn)值為0,表示一直等待按鍵觸發(fā)。第一個返回的參數(shù),int類型的retval,表示按鍵觸發(fā)的鍵值的ASCII,若按下的是Q鍵,則返回值為113。感興趣區(qū)域在計算機視覺中,感興趣區(qū)域(RegionOfInterest,ROI)表示圖像中需要處理的地方。在現(xiàn)實生活中,越來越多的地方開始采用人臉識別進(jìn)行身份驗證,如火車站的人臉閘機、手機的快捷支付。而在進(jìn)行人臉識別驗證中,人們常??梢宰⒁獾斤@示屏上除了人臉,還會實時用方框?qū)⑷四槝?biāo)識出來,而標(biāo)識出來的圖形對象將會用于程序后續(xù)的處理,標(biāo)識出來的區(qū)域便可理解為ROI(RegionofInterest)。計算機如何知道人臉的位置在后面章節(jié)會進(jìn)行講解,我們現(xiàn)在將對關(guān)于OpenCV中的ROI區(qū)域的標(biāo)識和截取功能進(jìn)行學(xué)習(xí)。NumPy一個用Python實現(xiàn)的科學(xué)計算,常用于矩陣和矢量計算,支持List的常用功能,如切片等。OpenCV將NumPy作為圖像處理的基本數(shù)據(jù)類型,讀取操作的圖像數(shù)據(jù)類型就是NumPy的多維數(shù)組numpy.ndarray。Numpy庫可使用命令行CMD輸入指令pipinstallnumpy進(jìn)行安裝。為了能更加直觀和方便地對圖像進(jìn)行處理,OpenCV采用了NumPy的多維數(shù)組來對圖像數(shù)據(jù)進(jìn)行存儲。通過已知的人臉區(qū)域的坐標(biāo)對圖像數(shù)據(jù)進(jìn)行切片操作后得到了人臉區(qū)域的圖像數(shù)據(jù)并顯示。圖像截取起始點為(150,240)的人臉數(shù)據(jù)xiaohe圖像中人臉的坐標(biāo)中心點為(150,240),我們可以通過對圖像數(shù)據(jù)進(jìn)行切片操作將人臉截取出來對人臉區(qū)域中的所有像素進(jìn)行賦值為0對圖像區(qū)域的截取和對圖像區(qū)域值的更改,可以看出圖像處理本質(zhì)上是對NumPy多維數(shù)組的操作在OpenCV中,我們可以通過幾何變換進(jìn)行對圖像的處理。幾何變換是對圖像平面上的像素進(jìn)行重新安排。通過幾何變換可以大幅度減少圖像數(shù)據(jù)中的不必要的或者多余的干擾信息,有利于我們在后續(xù)的處理和識別工作中將注意力集中在圖像中目標(biāo)內(nèi)容的本身。幾何變換常常作為圖像處理應(yīng)用的預(yù)處理步驟,是圖像歸一化的核心工作之一。一個幾何變換需要兩部分運算:首先是空間變換所需的運算,如平移、縮放、旋轉(zhuǎn)和正平行投影等,需要用它來表示輸出圖像與輸入圖像之間的(像素)映射關(guān)系;此外,還需要使用灰度差值算法,因為按照這種變換關(guān)系進(jìn)行計算,輸出圖像的像素可能被映射到輸入圖像的非整數(shù)坐標(biāo)上。我們接下來學(xué)習(xí)OpenCV的仿射函數(shù),并對xiaohe圖像進(jìn)行平移變換的處理在OpenCV平移之前,我們需要構(gòu)造一個仿射矩陣,仿射矩陣的第一個數(shù)組為目標(biāo)圖像在x軸方向上移動多少距離,第二數(shù)組為在y軸方向移動多少距離。所以在該程序中,我們首先用Numpy數(shù)組來構(gòu)造這個仿射矩陣,并將其傳給cv2.warpAffine()函數(shù)中,從而實現(xiàn)目標(biāo)圖像的平移。對xiaohe的圖像進(jìn)行平移處理用于對圖像進(jìn)行仿射變換:第一個參數(shù),numpy.ndarray類型的src,表示需要進(jìn)行仿射變換的圖像。第二個參數(shù),numpy.ndarray類型的M,表示2×3的仿射矩陣。第三個參數(shù),tuple類型的dsize,表示輸出的圖像大小。第四個參數(shù),numpy.ndarray類型的dst,表示輸出的圖像。第五個參數(shù),int類型的borderMode,表示邊界像素模式,默認(rèn)值為BORDER_CONSTANT。第六個參數(shù),int類型的borderValue,表示邊界取值,默認(rèn)值為0。cv2.warpAffine(src,M,dsize,dst=None,flags=None,borderMode=None,borderValue=None)對xiaohe的圖像進(jìn)行平移處理對xiaohe的圖像進(jìn)行縮放顯示處理OpenCV提供了一個專門用于縮放的函數(shù),為cv2.resize()函數(shù)。該函數(shù)有兩種辦法進(jìn)行圖像的縮放處理,一是設(shè)置圖像縮放因子對圖像進(jìn)行縮放處理,二是設(shè)置圖像的像素大小進(jìn)行縮放處理。在該程序中,我們采用設(shè)置圖像縮放因子對圖像進(jìn)行放大并顯示,采用設(shè)置圖像的像素大小對圖像進(jìn)行縮小并顯示。對xiaohe的圖像進(jìn)行縮放顯示處理cv2.resize(src,dsize,dst=None,fx=None,fy=None,interpolation=None)第一個參數(shù),numpy.ndarray類型的src,表示需要進(jìn)行縮放的圖像。第二個參數(shù),tuple類型的dsize,表示縮放處理后的圖像像素大小。如果用縮放因子進(jìn)行縮放,則設(shè)置為None。第三個參數(shù),numpy.ndarray類型的dst,表示輸出的圖像。第四個參數(shù),float類型的fx,表示圖像的寬度縮放因子大小,即寬度縮放比例。第五個參數(shù),float類型的fx,表示圖像的高度縮放因子大小,即高度縮放比例。第六個參數(shù),int類型的interpolation,表示插值方法,常用的插值方法枚舉如表“OpenCV常用插值方法枚舉表”所示。默認(rèn)為cv2.INTER_LINER。對xiaohe的圖像進(jìn)行縮放顯示處理OpenCV常用插值方法枚舉表對xiaohe的圖像進(jìn)行旋轉(zhuǎn)處理首先我們通過cv2.getRotationMatrix2D()函數(shù)生成一個仿射矩陣,這個函數(shù)需要三個參數(shù),分別是旋轉(zhuǎn)中心、旋轉(zhuǎn)角度、旋轉(zhuǎn)后圖像的縮放因子大小。從程序中設(shè)置圖像繞圖像的中心節(jié)點進(jìn)行逆時針45°旋轉(zhuǎn),并縮小圖像大小的50%,最終顯示該圖像。對xiaohe的圖像進(jìn)行旋轉(zhuǎn)處理cv2.getRotationMatrix2D()用于生成旋轉(zhuǎn)類型的2×3仿射矩陣:第一個參數(shù),tuple類型的center,表示圖像中的旋轉(zhuǎn)中心坐標(biāo)。第二個參數(shù),float類型的angle,表示以度為單位的旋轉(zhuǎn)角度。正值為逆時針旋轉(zhuǎn)。第三個參數(shù),float類型的scale,表示圖像的總縮放因子大小。對xiaohe的圖像進(jìn)行旋轉(zhuǎn)處理對xiaohe的圖像進(jìn)行透視變換處理我們首先需要編寫2個4×2的矩陣,第一個為變換后的四邊形頂點的坐標(biāo),第二個為圖像目標(biāo)的四邊形頂點的坐標(biāo)。將2個矩陣傳入cv2.getPerspectiveTransForm()函數(shù)中,從而生成3×3的透視變換矩陣,將該透視變換矩陣傳入cv2.warpPerspective()函數(shù)中,從而完成透視變換處理,最后將其結(jié)果顯示。對xiaohe的圖像進(jìn)行透視變換處理cv2.getPerspectiveTransform()用于生成3×3透視變換矩陣:第一個參數(shù),numpy.adarray類型的src,表示變換后的四邊形頂點的坐標(biāo)。第二個參數(shù),numpy.adrray類型的dst,表示圖像目標(biāo)的四邊形頂點的坐標(biāo)。對xiaohe的圖像進(jìn)行透視變換處理cv2.warpPerspective(src,M,dsize,dst=None,flags=None,borderMode=None,borderValue=None)用于對圖像進(jìn)行透視變換:第一個參數(shù),numpy.ndarray類型的src,表示需要進(jìn)行透視變換的圖像。第二個參數(shù),numpy.ndarray類型的M,表示3×3的透視變換矩陣。第三個參數(shù),tuple類型的dsize,表示輸出的圖像大小。第四個參數(shù),numpy.ndarray類型的dst,表示輸出的圖像。第五個參數(shù),int類型的borderMode,表示邊界像素模式,默認(rèn)值為BORDER_CONSTANT。第六個參數(shù),int類型的borderValue,表示邊界取值,默認(rèn)值為0。對xiaohe的圖像進(jìn)行透視變換處理在獲取到ROI區(qū)域的數(shù)據(jù)后,就可以對該區(qū)域進(jìn)行標(biāo)識,在接下來的程序中將會對xiaohe的人臉進(jìn)行標(biāo)識其中,cv2.rectangle()函數(shù)和cv2.putText()函數(shù)分別用來在圖像上繪制矩形和文字。cv2.rectangle(img,pt1,pt2,color,thickness,lineType,shift)用于在圖像上繪制矩形:第一個參數(shù),numpy.ndarray類型的img,表示需要進(jìn)行繪制的圖像。第二個參數(shù),tuple類型的pt1,表示繪制的矩形的左上角坐標(biāo)。第三個參數(shù),tuple類型的pt2,表示繪制的矩形的右下角坐標(biāo)。第四個參數(shù),tuple類型的color,表示繪制的矩形的BGR顏色。第五個參數(shù),int類型的thickness,表示繪制的矩形線條的粗細(xì)。第六個參數(shù),int類型的lineType,表示繪制的矩形的線條類型,默認(rèn)值為LINE_8,即為實線。第七個參數(shù),int類型的shift,表示位置的指數(shù)偏移,默認(rèn)值為0。cv2.putText(img,text,org,fontFace,fontScale,color,thickness,lineType,bottomLeftOrigin)用于在圖像上繪制文字:第一個參數(shù),numpy.ndarray類型的img,表示需要進(jìn)行繪制的圖像。第二個參數(shù),str類型的text,表示繪制的文字文本。第三個參數(shù),tuple類型的org,表示繪制文本的左下角坐標(biāo)。第四個參數(shù),int類型的fontFace,表示文本的字體。第五個參數(shù),int類型的fontScale,表示文本的縮放比例。第六個參數(shù),tuple類型的color,表示文本的BGR顏色。第七個參數(shù),int類型的thickness,表示繪制文本線條的粗細(xì)。第八個參數(shù),int類型的lineType,表示繪制文字的線條類型,有默認(rèn)值。第九個參數(shù),bool類型的bottomLeftOrigin,為true時文字的原點位于左下角,否則位于左上角。默認(rèn)為true。色彩空間計算機領(lǐng)域廣泛應(yīng)用的色彩空間為RGB,即Red(紅色)、Green(綠色)、Blue(藍(lán)色)這三種基色就構(gòu)成了RGB幾何色彩空間坐標(biāo)系,其本質(zhì)是通過不同基色的深淺組合成各種顏色。需要注意的是在OpenCV中的RGB為BGR,即藍(lán)色和紅色順序有所變化,其本質(zhì)與RGB相同。在OpenCV中常用到Gray、BGR等色彩空間。通過以上我們得知BGR色彩空間的像素值是B、G、R三個值組成的三元組,分別對應(yīng)藍(lán)色、綠色和紅色可以看到,該為xiaohe圖像的BGR色彩空間。需要注意三原色的深淺范圍也是在0~255之間。故同樣也是用np.uint8的數(shù)據(jù)類型來存儲圖像數(shù)據(jù)。cv2.createTrackbar(trackbarName,windowName,value,count,onChange)用于創(chuàng)建滑動條:第一個參數(shù),str類型的trackbarName,表示滑動條的名字。第二個參數(shù),str類型的windowName,表示滑動條所在窗體的名稱。第三個參數(shù),int類型的value,表示滑動條當(dāng)前位置,同時也是創(chuàng)建時的初始位置。第四個參數(shù),int類型的count,表示滑動條的最大值。第五個參數(shù),function類型的onChange,表示滑動條每次改變時這個函數(shù)都會被自動調(diào)用。cv2.createTrackbar(trackbarName,windowName,value,count,onChange)滑動條(TrackBar)常用于OpenCV中的動態(tài)調(diào)節(jié)參數(shù),其主要作用可以讓用戶最直觀了解到相關(guān)函數(shù)(算子)的閾值對圖像的影響。cv2.getTrackbarPos(trackbarname,winname)用于獲取滑動條當(dāng)前所處位置:第一個參數(shù),str類型的trackbarname,表示滑動條的名字。第二個參數(shù),str類型的winname,表示滑動條所在窗口的名字。我們將BGR三原色中B的數(shù)值滑動到255,可以看到下方的面板顯示為藍(lán)色。其中,先創(chuàng)建了高度為300、寬度為512的空白圖像,然后將窗口命名為'image',并通過cv2.createTrackbar()函數(shù)創(chuàng)建BGR三原色的滑動條且將其設(shè)置在窗口'image'上。在循環(huán)中通過獲取滑動條對象的值從而將其賦值到圖像的像素值中并顯示,來實現(xiàn)滑動條實時更改圖像顏色的功能。通過cv2.waitKey()函數(shù)獲取當(dāng)前鍵盤按下按鍵的ASCII值,27對應(yīng)Esc鍵的ASCII值,故當(dāng)按下Esc鍵時程序正常退出。如圖,灰度(GrayScale)顏色空間,顧名思義即是由不同灰度值的像素組成的圖像可以看一個680×1020大小的灰度圖像,相當(dāng)于680×1020個像素值組成的矩陣(圖中的矩陣省略了部分?jǐn)?shù)據(jù))。因為其灰度值在0~255這個區(qū)間內(nèi),所以通常用np.uint8的數(shù)據(jù)類型存儲,即8位的無符號整數(shù)??梢钥吹轿覀冏x取的圖像數(shù)據(jù)是由不同的灰度值組成的NumPy二維數(shù)組視頻讀寫我們先思考一下一個視頻里面存儲的是什么?讓我們先觀看一個視頻,如圖2-14所示。通過觀看這個視頻后,我們可以得知該視頻給我們傳遞了火箭從點火到升空的一系列動作信息。所以一個視頻實質(zhì)上是由一幅幅圖像組成的集合,通過在不同的時間點顯示不同的圖像來傳遞信息的一個視頻是由不同時間點的多張圖像組成的,這里所說的時間點以一秒為單位。如果是一秒顯示一幅圖像便會有明顯的卡頓。所以這里引入了幀率(Framerate)這個屬性,意指以幀為單位的位圖圖像連續(xù)出現(xiàn)在顯示器上的頻率(速率),默認(rèn)單位為幀每秒(frame/sec,FramePerSecond),即是這個視頻一秒鐘顯示多少張(幀)圖像。在Windows系統(tǒng)中可以在對應(yīng)視頻的右鍵菜單的屬性中查看視頻的具體屬性如時長、幀高度、幀寬度等,可以看到RocketLaunch.mp4視頻的幀速率為25幀/秒,即這個視頻一秒鐘顯示25張圖像。視頻讀取通常分為對視頻或?qū)z像頭的逐幀圖像捕獲。在OpenCV中我們需要創(chuàng)建一個視頻捕獲器VideoCapture對這些視頻中的圖像進(jìn)行逐幀地讀取。接下來通過讀取并顯示RocketLaunch.mp4視頻的例子來學(xué)習(xí)OpenCV中的視頻捕獲功能程序中我們可以通過調(diào)用capture.open()函數(shù)來指定打開視頻的文件路徑,也可以在創(chuàng)建視頻捕獲器時調(diào)用構(gòu)造方法來指定文件路徑。在循環(huán)中通過capture對象來迭代捕獲并顯示逐幀圖像。對于電腦安裝了攝像頭的同學(xué),我們可以將視頻的路徑'RocketLaunch.mp4'改成0來打開并捕獲系統(tǒng)的默認(rèn)攝像頭的圖像。在進(jìn)入循環(huán)前為了讓視頻按照其正常速率播放,我們設(shè)置了wait_time參數(shù),因為cv2.waitKey()函數(shù)是以毫秒為單位,而視頻的幀率的單位是以秒為單位,所以需要計算一幀等待的毫秒數(shù)。新建一個視頻捕獲器的對象:第一個參數(shù),當(dāng)傳入的是str類型的object時,表示視頻文件的路徑,即當(dāng)前模式為讀取視頻。當(dāng)傳入的是int類型的object時,表示攝像頭的序號,即當(dāng)前模式為讀取攝像頭。索引從0開始,默認(rèn)值為0。cv2.VideoCapture(object)用于打開視頻文件或攝像頭:第一個參數(shù),str類型的filename,表示捕獲器指定打開的視頻文件路徑。第一個返回的參數(shù),bool類型的retval,表示打開視頻成功與否。cv2.VideoCapture.open(filename)->retval用于打開視頻文件或攝像頭:第一個參數(shù),int類型的index,表示打開的攝像頭的索引。第一個返回的參數(shù),bool類型的retval,表示打開攝像頭成功與否。cv2.VideoCapture.open(index)->retval用于迭代捕獲逐幀圖像:第一個參數(shù),bool類型的retval,表示視頻幀讀取成功與否。第二個參數(shù),numpy.ndarray類型的image,表示從視頻中讀取到的圖像。cv2.VideoCapture.read()->retval,image用于迭代捕獲逐幀圖像:第一個參數(shù),bool類型的retval,表示視頻幀讀取成功與否。第二個參數(shù),numpy.ndarray類型的image,表示從視頻中讀取到的圖像。cv2.VideoCapture.read()->retval,image用于關(guān)閉視頻捕獲器:此函數(shù)一般在逐幀捕獲圖像迭代結(jié)束后由capture對象自動調(diào)用。cv2.VideoCapture.release()我們常常會對視頻捕獲的視頻進(jìn)行逐幀處理,并保存下來。對于圖像我們可以直接使用cv2.imwrite()函數(shù)進(jìn)行保存,而對于視頻或攝像頭的逐幀圖像時,就像前面介紹的視頻讀取一樣,我們需要先創(chuàng)建一個cv2.VideoWriter對象來創(chuàng)建一個新的視頻文件并進(jìn)行逐幀保存。
接下來通過在根目錄下創(chuàng)建一個帶發(fā)射過程字幕的火箭發(fā)射視頻的程序的例子來學(xué)習(xí)接下來通過在根目錄下創(chuàng)建一個帶發(fā)射過程字幕的火箭發(fā)射視頻的程序的例子來學(xué)習(xí)。程序中我們先讀取需要處理的視頻,再對讀取的每一幀進(jìn)行處理并通過writer對象將其寫入到新的視頻中。對于新的視頻的屬性這里選擇沿用原視頻的參數(shù)。其中關(guān)于新視頻的編碼格式參數(shù)fourcc(全稱為Four-CharacterCodes,是一種通過4字符代碼標(biāo)示視頻數(shù)據(jù)流格式),我們可以通過cv2.VideoWriter_fourcc()函數(shù)來獲取對應(yīng)的fourcc或是沿用原視頻的fourcc。獲取capture對象的視頻屬性:第一個參數(shù),int類型的propId,表示獲取該視頻的信息。若propId為3則獲取視頻的寬度,常用參數(shù)可以參考表2-3。第一個返回的參數(shù),float類型的retval。表示返回查詢的視頻捕獲器的參數(shù)。cv2.VideoCapture.get(propId)->retval獲取capture對象的視頻屬性:第一個參數(shù),int類型的propId,表示獲取該視頻的信息。若propId為3則獲取視頻的寬度,常用參數(shù)可以參考“cv2.VideoCapture.get()函數(shù)常用參數(shù)對照表”。第一個返回的參數(shù),float類型的retval。表示返回查詢的視頻捕獲器的參數(shù)。c
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)校圖書閱覽室管理制度范文
- 消防隊籃球賽題目及答案
- 浙江中醫(yī)藥藥學(xué)題目及答案
- 養(yǎng)老院老人生活照料服務(wù)規(guī)范制度
- 養(yǎng)老院老人緊急救援人員職業(yè)發(fā)展規(guī)劃制度
- 體育賽事面試題目及答案
- 教招編制考試題目及答案
- 辦公室員工工作環(huán)境改善制度
- 鐵路營業(yè)線施工三會制度
- 進(jìn)貨檢驗驗收制度
- 2026中國電信四川公用信息產(chǎn)業(yè)有限責(zé)任公司社會成熟人才招聘備考題庫及完整答案詳解一套
- DB45∕T 2364-2021 公路路基監(jiān)測技術(shù)規(guī)范
- 智能客戶服務(wù)實務(wù)-教案
- 2025年云南省中考數(shù)學(xué)真題試卷及答案
- 2022危險廢物管理計劃和管理臺賬制定技術(shù)導(dǎo)則
- CISP(CISO與CISE)題庫及答案解析(700道)
- 《CAD的簡介和作用》課件
- 配電箱移交協(xié)議書模板
- 2024-2030年中國桉葉(油)素市場專題研究及市場前景預(yù)測評估報告
- 攝像機基礎(chǔ)知識攝像機基礎(chǔ)知識
- 齒軌卡軌車資料
評論
0/150
提交評論