《MATLAB應用圖像處理》課件第9章_第1頁
《MATLAB應用圖像處理》課件第9章_第2頁
《MATLAB應用圖像處理》課件第9章_第3頁
《MATLAB應用圖像處理》課件第9章_第4頁
《MATLAB應用圖像處理》課件第9章_第5頁
已閱讀5頁,還剩88頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第9章數(shù)學形態(tài)學以及二值圖像形態(tài)學處理

9.1數(shù)學形態(tài)學概述

9.2數(shù)學形態(tài)學基本操作—腐蝕和膨脹9.3數(shù)學形態(tài)學其它操作

9.4二值圖像的連通性

9.5查表操作9.6數(shù)學形態(tài)學在二值圖像處理中的應用習題

9.1數(shù)學形態(tài)學概述

9.1.1數(shù)學形態(tài)學簡介數(shù)學形態(tài)學(MathematicalMorphology)誕生于1964年。法國巴黎礦業(yè)學院博士生賽拉(J.Serra)和導師馬瑟榮,在從事鐵礦核的定量巖石學分析及預測其開采價值的研究中提出“擊中/擊不中變換”,并在理論層面上第一次引入了形態(tài)學的表達式,建立了顆粒分析方法。他們的工作奠定了這門學科的理論基礎(chǔ),如擊中/擊不中變換、開閉運算、布爾模型及紋理分析器的原型等。數(shù)學形態(tài)學的基本思想是用具有一定形態(tài)的結(jié)構(gòu)元素去量度和提取圖像中的對應形狀以達到對圖像分析和識別的目的。數(shù)學形態(tài)學的數(shù)學基礎(chǔ)和所用語言是集合論,因此它具有完備的數(shù)學基礎(chǔ),這為形態(tài)學用于圖像分析和處理、形態(tài)濾波器的特性分析和系統(tǒng)設(shè)計奠定了堅實的基礎(chǔ)。數(shù)學形態(tài)學的應用可以簡化圖像數(shù)據(jù),保持它們基本的形狀特性,并除去不相干的結(jié)構(gòu)。數(shù)學形態(tài)學的算法具有天然的并行實現(xiàn)的結(jié)構(gòu),實現(xiàn)了形態(tài)學分析和處理算法的并行,大大提高了圖像分析和處理的速度。數(shù)學形態(tài)學是一種應用于圖像處理和模式識別領(lǐng)域的新方法。形態(tài)學是生物學的一個分支,常用它來處理動物和植物的形狀和結(jié)構(gòu)。1964年,法國學者Serra對鐵礦石的巖相進行定量分析,以預測鐵礦石的可扎性。幾乎同時,Matheron研究了多孔介質(zhì)的幾何結(jié)構(gòu)、滲透性及兩者的關(guān)系,他們的研究成果直接導致數(shù)學形態(tài)學的形成。隨后Serra和Matheron在法國共同建立了Fontainebleau數(shù)學形態(tài)學研究中心。在以后幾年的研究中,他們逐步建立并完善了數(shù)學形態(tài)學的理論體系。此后,又研究了基于數(shù)學形態(tài)學的圖像處理系統(tǒng)。

數(shù)學形態(tài)學是一門建立在嚴密的數(shù)學理論基礎(chǔ)上的科學。Matheron于1975年出版的《RandomSetsandIntegralGeometry》一書中嚴謹而詳細地論證了隨機集論和積分幾何,為數(shù)學形態(tài)學奠定了理論基礎(chǔ)。1982年,Serra出版的專著《ImageAnalysisandImageProcessing》是數(shù)學形態(tài)學發(fā)展的里程碑,它表明數(shù)學形態(tài)學在理論上已經(jīng)趨于完備,在實踐應用中不斷深入。此后,經(jīng)過科學工作者的不斷努力,Serra主編的《ImageAnalysisandMathematicalMorphology》第2、3卷相繼出版。數(shù)學形態(tài)學已經(jīng)構(gòu)成一種新的圖像處理方法和理論,成為計算機數(shù)字圖像處理的一個重要研究領(lǐng)域,并且已經(jīng)應用于多門學科的數(shù)字圖像分析和處理過程中。這門學科在計算機文字識別,計算機顯微圖像分析(如定量金相分析,顆粒分析),醫(yī)學圖像處理,圖像編碼壓縮,工業(yè)檢測(如食品檢驗和印刷電路自動檢測),機器人視覺,汽車運動情況監(jiān)測等方面都取得了非常成功的應用。另外,它在指紋檢測、經(jīng)濟地理、合成音樂和斷層X光照像等領(lǐng)域也有良好的應用前景。形態(tài)學方法已成為圖像應用領(lǐng)域工程技術(shù)人員的必備工具。9.1.2數(shù)學形態(tài)學的集合理論基礎(chǔ)數(shù)學形態(tài)學是以集合論為基礎(chǔ)來描述的。下面列出幾個必要的集合論概念和定義。集合用大寫字母表示,如A,B;元素用小寫字母表示,如a,b;集合中的內(nèi)容表示為{·},如C?=?{w|w?=?-d,d∈D},即集合C是元素w的集合,而w是通過-1與集合D中的所有元素d相乘得到的。集合與元素之間是包含和不包含的關(guān)系,如。對于,稱A為B的子集;集合為A和B的并集;為A和B的交集;如果則稱A和B互斥的或不相容的;A的補集記為;A和B的差集記為A-B,且A-B

。集合之間的基本運算可由圖9.1形象地表達。圖9.1集合之間的基本運算將A用z=(z1,z2)位移,記為(A)z,(A)z?=;A的映像記為,。圖9.2形象地表達了集合的位移和鏡像運算。圖9.2集合的位移和鏡像9.2數(shù)學形態(tài)學基本操作——腐蝕和膨脹

數(shù)學形態(tài)學是由一組形態(tài)學的集合運算組成的,其基本運算有:膨脹、腐蝕、開運算和閉運算、擊中/擊不中、細化和粗化。這些基本運算在二值圖像和灰度圖像中各有特點?;谶@些基本運算還可推導和組合成各種數(shù)學形態(tài)學實用算法。其中膨脹和腐蝕是數(shù)學形態(tài)學方法中最基本的運算。膨脹和腐蝕的原理是利用一個稱作結(jié)構(gòu)元素的“探針”收集圖像的信息,當探針在圖像中不斷移動時,通過簡單的邏輯運算便可考察圖像各個部分之間的相互關(guān)系,從而了解圖像的結(jié)構(gòu)特征,如圖9.3所示。圖9.3形態(tài)學處理的基本原理9.2.1膨脹

A用B來膨脹(Dilation)定義為,,其中B稱為結(jié)構(gòu)元素。膨脹的過程為將B平移x,結(jié)果是平移后與A交集不為空的x集合。也就是說,用B來膨脹A得到的集合是B的位移與A至少有一個非零元素相交時B的原點位置的集合。膨脹可用圖9.4形象地說明。設(shè)圖9.4中灰色像素值為1,白色像素值為0,B作為結(jié)構(gòu)元素來膨脹A,B中的“+”號作為B的原點。在的圖像中,黑色像素為膨脹出來的值為1的像素。圖9.4膨脹示意圖圖9.5進一步說明了膨脹的原理。結(jié)構(gòu)元素的值與輸入圖像的值做“或”運算,當值是1時,輸出圖像對應位置上的值為1,反之為0。圖9.5二值圖像的膨脹運算

MATLAB中用于實現(xiàn)膨脹的函數(shù)為imdilate(IM,SE),IM為待膨脹的圖像,SE為結(jié)構(gòu)元素。下面一段代碼實現(xiàn)矩陣的膨脹運算。

BW=zeros(9,10);

BW(4:6,4:7)=1;

BW=SE=strel('square',3)SE=%構(gòu)建3?×?3矩陣元素結(jié)構(gòu)

111111111BW2=imdilate(BW,SE)BW2=

%BW2中的陰影部分為膨脹出來的數(shù)值下面一段代碼使用3?×?3元素實現(xiàn)圖像腐蝕,計算結(jié)果如圖9.6所示。

bw=imread('test.bmp');

se=strel(square,3); %創(chuàng)建線形Strel對象

bw2=imdilate(bw,se); %膨脹圖像

imshow(bw),title('原圖像')

figure,imshow(bw2),title('膨脹圖像')圖9.6圖像膨脹結(jié)果上述代碼中,strel(shape,parameters)函數(shù)用于建立各種結(jié)構(gòu)元素,在形態(tài)學處理中很重要。shape參數(shù)指定結(jié)構(gòu)元素的形狀,除上述square形狀外,還可以實現(xiàn)下列形狀的構(gòu)建,例如:

se1=strel(‘rectangle’,MN),其中MN=[3,5]用于建立矩形結(jié)構(gòu)元素,即

se4=strel('diamond',R),其中R?=?3,可以建立菱形結(jié)構(gòu)元素,即

se4=strel('diamond',R),其中R?=?3,可以建立菱形結(jié)構(gòu)元素,即

se2=strel('line',,LEN,DEG)可建立長度為LEN,角度DEG的直線結(jié)構(gòu)元素,即

se3=strel('disk',R),其中R?=?3,可建立半徑為R個像素的圓結(jié)構(gòu)元素,即9.2.2腐蝕另一種基本的形態(tài)學處理是腐蝕(erosion),腐蝕和膨脹的過程相反。A用B來腐蝕記作,。通過腐蝕可以縮小圖像的區(qū)域,得到可以完全包含B的A中的原點x的區(qū)域。腐蝕可以由圖9.7表達,圖中黑色部分為腐蝕剩下的像素。

MATLAB中用于實現(xiàn)腐蝕的函數(shù)為imerode(IM,SE),IM為待膨脹的圖像,SE為結(jié)構(gòu)元素。下面一段代碼實現(xiàn)矩陣的腐蝕運算。運行結(jié)果如圖9.8所示。

bw=imread('test.bmp');

se=strel('square',3); %創(chuàng)建線形Strel對象

bw2=imerode(bw,se); %腐蝕圖像

imshow(bw),title('原圖像')

figure,imshow(bw2),title('腐蝕后的圖像')圖9.8圖像腐蝕結(jié)果9.2.3膨脹和腐蝕的對偶性膨脹和腐蝕是一種對偶的關(guān)系:使用結(jié)構(gòu)元素對圖像進行膨脹后的背景相當于使用該結(jié)構(gòu)元素的背景對圖像的背景進行腐蝕,反之相同。這種關(guān)系可以寫為或9.3數(shù)學形態(tài)學其它操作

9.3.1開操作開操作(opening)定義:B對A進行的開操作就是先用B對A腐蝕,然后用B對結(jié)果進行膨脹。開操作可表示為的邊界可理解為通過B在A的邊界內(nèi)轉(zhuǎn)動時,B中的點所能達到的最遠點。開操作可等價地表示為其中(B)z為B在圖像內(nèi)原點為z的平移。開操作的原理可以用圖9.9形象地說明。圖9.9開操作示意圖

MATLAB中使用IM2=imopen(IM,SE)實現(xiàn)開操作。下面一段代碼實現(xiàn)圖像的開操作,計算結(jié)果如圖9.10所示。從圖9.10可以看出,開操作保留了圖像中較大的點,濾除了較小的點。

I=imread('test2.bmp');

imshow(I)

se=strel('disk',5);

I_opened=imopen(I,se);

figure

imshow(I_opened,[])圖9.10開操作結(jié)果9.3.2閉操作閉操作(close)的定義:B對A進行的閉操作就是先用B對A膨脹,然后用B對結(jié)果進行腐蝕。閉操作可以表示為

A·B=?

A·B的邊界可理解為B在A的邊界外轉(zhuǎn)動時,B中的點所能達到的最遠點。開操作可等價地表示為其中(B)z為B在圖像內(nèi)原點為z的平移。開操作的原理可以用圖9.11形象地說明。圖9.11閉操作示意圖

MATLAB中使用IM2=imclose(IM,SE)實現(xiàn)開操作。下面一段代碼實現(xiàn)圖像的閉操作,計算結(jié)果如圖9.12所示。從圖9.12可以看出,閉操作將圖像中的圓連成一片,濾除中間的空區(qū)域。

originalBW=imread('circles.png');

imshow(originalBW);

se=strel('disk',10);

closeBW=imclose(originalBW,se);

figure,imshow(closeBW)圖9.12閉操作結(jié)果9.3.3擊中/擊不中變換擊中和擊不中的概念可由圖9.13表示。結(jié)構(gòu)元素B完全在A中時,稱為B擊中A;B完全在A外部時,稱為B擊不中A。圖9.13擊中和擊不中示意圖擊中和擊不中變換(hit-misstransformation)用于在圖形A中尋找某一個特定結(jié)構(gòu)X的位置。B與X相關(guān),一般分為X與B?-?X兩部分,如圖9.14所示。B是比X稍大一點的結(jié)構(gòu),B?-?X是B除去X以外的邊緣。為了尋找圖形A中X的位置,首先以X對A做腐蝕處理,即AX。X的原點通常選在X的重心處。腐蝕的結(jié)果也就是B擊中A的區(qū)域,如圖9.14所示,不但包含了X的重心位置,也包含了Y中的一部分區(qū)域。為了進一步找到X的位置,用B?-?X對A的補Ac做腐蝕操作,即Ac(B?-?X)。由于Y區(qū)域比B大,所以Ac(B?-?X)中不含有Y中的點,也就是B?-?X擊不中Ac中的Y區(qū)域。因此,為了得到X的位置,擊中和擊不中變換可表達為A*B=AXAc(B-X)。圖9.14二值圖像的擊中和擊不中變換

MATLAB中用bwhitmiss(BW1,INTERVAL)實現(xiàn)擊中/擊不中變換。其中BW1為待變換圖像,INTERVAL表示結(jié)構(gòu)元素,結(jié)構(gòu)元素中?+1表示E的1元素,-1表示F的1元素。下面一段代碼演示bwhitmiss的使用。

bw=[000000

001100

011110

011110

001100

001000]

interval=[0-1-111-1010];bw2=bwhitmiss(bw,interval)bw2=9.4二值圖像的連通性

9.4.1像素的連通性像素的連通性是像素之間的基本關(guān)系。對于二維圖像而言,除圖像邊緣外,每個像素都有8個自然的相鄰點。在處理技術(shù)上可以有兩種定義:4連通和8連通。4連通認為一個像素只與水平和垂直方向上的相鄰點連通,8連通認為一個像素與所有相鄰點連通,如圖9.15所示。圖9.154連通和8連通示意圖當然還可以在8個相鄰像素中任意選取像素來定義連通性。像素的連通性在圖像的識別、細化和填充中有重要的應用。在MATLAB中用一個3?×?3矩陣來定義像素的連通性,1代表連通,0代表不連通,如4連通的定義如下:

CONN=

010

111

010“南北”連通的定義如下:

CONN=

010

010

010需要注意的是連通性矩陣CONN的定義必須關(guān)于中心對稱。9.4.2二值圖像的對象二值圖像的對象是指值為1且連通在一起的像素集合,比如圖9.16中含有一個環(huán)形的對象。圖像中對象的個數(shù)與像素的連通性定義相關(guān)。例如就圖9.17而言,在4連通條件下,含有2個對象,而在8連通條件下只有1個對象。圖9.16二值環(huán)形對象圖9.17不同連通條件下的對象有時需要將一幅圖像中的某個對象選取出來。MATLAB中用bwselect(BW,c,r,n)實現(xiàn)對象的分離選取。bwselect的參數(shù)c、r分別標出對象中任意像素所在的像素坐標,n表示像素連通性,可以取4或8。下面一段代碼實現(xiàn)文字對象的選取,結(jié)果如圖9.18所示。

BW1=imread('text.png');

c=[43185212];

r=[3868181];

BW2=bwselect(BW1,c,r,4);

imshow(BW1),figure,imshow(BW2)圖9.18對象的選取

bwselect(BW,n)可以用鼠標在交互模式下實現(xiàn)更為直接的對象選取,按回車鍵結(jié)束選取,如圖9.19所示。

BW1=imread('text.png');

BW2=bwselect(BW1,4);

imshow(BW1),

figure,imshow(BW2)圖9.19交互式對象選取

MATLAB不但可以實現(xiàn)對象的選取也可以對各個對象進行標記。bwlabel(BW,n)函數(shù)實現(xiàn)對象從1~n的標記,n表示像素連通性,可以取4或8。

BW=[1110000011101100111011001110001011100010111000101110011011100000];

L=bwlabel(BW,4)

L=

11100000

11102200

11102200

11100030

11100030

11100030

11100330

111000009.5查表操作

查表操作適于處理2×2和3×3的鄰域情況,如圖9.20所示。設(shè)圖9.20中的圓圈像素位置為原點。對于2×2和3×3的鄰域分別有16和512種可能的組合情況。MATLAB中將所有情況按順序列出,并根據(jù)每種情況下的像素值設(shè)定一定的條件,滿足條件時,圓圈位置的像素值設(shè)為1,否則為0。圖9.202×2和3×3的查表鄰域由于每種條件下的各個鄰域矩陣的值事先計算出來并存入表中,因此可以大大提高計算的速度。對于4×4以上的情況,至少有65536種可能組合,使得查表運算意義不大,因此MATLAB的函數(shù)不支持4×4以上情況的查表運算。

MATLAB中的makelut(fun,n)函數(shù)用于建立表單,fun為設(shè)定判斷條件的函數(shù),n為鄰域大小,可以選為2或3。下面一段代碼用于建立一個2×2的鄰域表,條件為鄰域矩陣的所有值的和不小于2。f=@(x)(sum(x(:))>=2);lut=makelut(f,2)lut=0??0??0??1??0??1??1??1??0??1??1??1??1??1??1

applylut(BW,LUT)函數(shù)用于實現(xiàn)查表操作,BW為被處理圖像,LUT為表單。下面一段代碼使用sum(x(:))==4創(chuàng)建2?×?2的鄰域表單,實際上是當2?×?2鄰域內(nèi)的值全為1時,查表值才為1,這實際上是使用2?×?2的全1矩陣作為結(jié)構(gòu)元素對圖像進行腐蝕。代碼運行結(jié)果如圖9.21所示。lut=makelut('sum(x(:))==4',2);BW=imread('text.png');BW2=applylut(BW,lut);imshow(BW),figure,imshow(BW2)圖9.21查表操作結(jié)果9.6數(shù)學形態(tài)學在二值圖像處理中的應用

9.6.1噪聲去除通過開操作和閉操作可以去除圖像中孤立的噪聲點,同時保留圖像中本來的細節(jié)結(jié)構(gòu),相對于一般二維圖像低通濾波器效果更好。下面一段代碼實現(xiàn)指紋圖像的噪聲去除,使用2?×?2的方形結(jié)構(gòu)元素對圖9.22(a)中的噪聲圖像進行開操作實現(xiàn)噪聲的去除。小于2?×?2的方形結(jié)構(gòu)元素的噪聲孤立點在腐蝕操作中被去除,指紋細節(jié)被保留,如圖9.22(b)所示。BW=imread('fg.bmp');imshow(BW)se=strel('square',2);I_open=imopen(BW,se);figureimshow(I_open)圖9.22指紋圖像的噪聲去除9.6.2圖像細化和骨化將圖像變換成單像素厚度組成的細線稱為圖像細化。留圖像中心線的細化稱為骨化。細化和骨化可以去除圖像的冗余信息,有利于提取圖像的本質(zhì)特征,是很多圖像處理必要的預處理過程。一般細化過程是在不破壞連通性的前提下進行的。通常的算法步驟如下:

(1)做腐蝕操作,但不立刻刪除像素,只打標記。

(2)將不破壞連通性的標記點刪掉。

(3)重復執(zhí)行,直到圖像結(jié)果不發(fā)生變化,得到了細化結(jié)果。

MATLAB中使用bwmorph(BW,operation,n)函數(shù)實現(xiàn)圖像的細化和骨化,BW為被處理圖像;operation為算法參數(shù),可以取為'dilate'、'erode'和'open'等基本形態(tài)學操作,也可以取為'skel'和'thin',表示骨化和細化;n表示操作的次數(shù),當取Inf時表示重復處理直到圖像結(jié)果不發(fā)生變化。下面一段代碼實現(xiàn)圖像細化處理,處理結(jié)果如圖9.23所示。

originalBW=imread('circles.png');

imshow(originalBW)

BW_thin=bwmorph(originalBW,'thin',Inf);

figure,

imshow(BW_thin)圖9.23圖像細化結(jié)果下面一段代碼實現(xiàn)圖像骨化處理,處理結(jié)果如圖9.24所示。對比圖9.23和圖9.24,可見骨化是在細化結(jié)果基礎(chǔ)上,增加了一些分支結(jié)構(gòu)。

originalBW=imread('circles.png');

imshow(originalBW)

BW_skel=bwmorph(originalBW,'skel',Inf);

figure,

imshow(BW_skel)圖9.24圖像骨化結(jié)果9.6.3邊界提取邊界提取是圖像識別中常用的處理步驟。使用形態(tài)學方法可以方便地提取二值圖像的邊界和輪廓。對于二值圖像而言,簡單的邊界提取算法可以表示成β(A)?=?A?-?(),也就是用圖像A減去A被B腐蝕后的圖像。

MATLAB中用bwperim(BW,CONN)實現(xiàn)圖像邊界提取,其中BW表示被處理圖像;CONN表示像素連通性,可取為4連通和8連通,缺省值為4。在bwperim的算法中,一個像素是否屬于圖像的邊界的判斷條件為像素的值為1且像素在規(guī)定的連通方向上至少有一個方向上的相鄰像素為0。下面一段代碼使用bwperim實現(xiàn)8連通條件下的圖像邊界提取,結(jié)果如圖9.25所示。

originalBW=imread('circles.png');

imshow(originalBW);

BW2=bwperim(originalBW,8);

figure,imshow(BW2)

圖9.25圖像邊界提取9.6.4區(qū)域填充區(qū)域填充的目的是將一個二值對象內(nèi)部的0值像素填充為1。填充的算法是在被填充的區(qū)域內(nèi)找一個像素作為種子,根據(jù)像素的連通性不斷地將0值像素填充為1來實現(xiàn)區(qū)域填充。MATLAB使用imfill(BW,locations,CONN)實現(xiàn)區(qū)域填充,其中BW為被填充圖像,locations為種子像素的位置,CONN為像素連通性。下面一段代碼實現(xiàn)矩陣的填充:BW1=logical([10000000?11111000?10001010?10001110?11110111?10011010?10001010?10001110]);BW2=imfill(BW1,[33],8)BW2=

10000000

11111000

11111010

11111110

11111111

10011110

10001110

10001110調(diào)用BW2=imfill(BW,CONN,'holes')可實現(xiàn)對圖形中圓形對象的填充,代碼如下:

BW4=im2bw(imread('coins.png')); %im2bw實現(xiàn)圖像二值化

BW5=imfill(BW4,'holes');

imshow(BW4),figure,imshow(BW5)結(jié)果如圖9.26所示。圖9.26圓形對象的填充調(diào)用BW2=imfill(BW)可以實現(xiàn)用戶交互模式下的填充,用戶可以使用鼠標來選取種子像素的位置。使用imfill函數(shù)還可以實現(xiàn)灰度圖像中的圓形區(qū)域的填充,代碼如下:

I=imread('tire.tif');

I2=imfill(I,'holes');

figure,imshow(I),

figure,imshow(I2)結(jié)果如圖9.27所示。這時,圖像中被較亮像素包圍的較暗的像素將被作為填充對象來填充。圖9.27灰度圖像的填充9.6.5圖像特征提取在進行圖像處理時,有時會希望獲取圖像中某些改變的信息,例如在進行膨脹操作時,希望知道有多少像素的值由0變?yōu)?,或者想知道圖像中對象的數(shù)目是否改變。利用MATLAB中的bwarea函數(shù)和bweuler函數(shù)可以實現(xiàn)對圖像特征的提取操作。

bwarea函數(shù)計算圖像中非0像素的個數(shù),調(diào)用格式為total=bwarea(BW),返回值為圖像中非零像素所占的面積。在統(tǒng)計面積時,不單看像素的值,還要參考相鄰的對角線上的像素值,這些像素在圖9.28中用黑色標出。圖9.28面積計算參考像素9.6.5圖像特征提取在進行圖像處理時,有時會希望獲取圖像中某些改變的信息,例如在進行膨脹操作時,希望知道有多少像素的值由0變?yōu)?,或者想知道圖像中對象的數(shù)目是否改變

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論