計(jì)算機(jī)視覺大作業(yè)_第1頁
計(jì)算機(jī)視覺大作業(yè)_第2頁
計(jì)算機(jī)視覺大作業(yè)_第3頁
計(jì)算機(jī)視覺大作業(yè)_第4頁
計(jì)算機(jī)視覺大作業(yè)_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、基于OpenCV的切水果外掛設(shè)計(jì)第一章 引言1.1 背景在計(jì)算機(jī)視覺課程的前幾課中,聽覃老師說,曾經(jīng)有個學(xué)長自己動手做了一個游戲的外掛,獲得了很大的成功。跟人感覺這位學(xué)長能將自己所學(xué)與個人的技能相結(jié)合,成功的做出了實(shí)際的東西,著實(shí)厲害;同時這個過程將會對于個人的學(xué)習(xí)和成長都將有積極影響和意義。筆者在聽了覃老師的介紹后,對于與計(jì)算機(jī)視覺相關(guān)的游戲外掛的設(shè)計(jì)產(chǎn)生了濃厚的興趣。有考慮到筆者在外來兩年內(nèi)的研究方向都將圖像處理或是計(jì)算機(jī)視覺,且近期筆者正在使用QT+OpenCV+OpenGL進(jìn)行基于嵌入式Linux的圖像處理和開發(fā)。所以筆者若選擇一個類似的外掛程序的編寫和設(shè)計(jì),將對個人今后的學(xué)習(xí)有著積極

2、的意義。因此筆者在網(wǎng)上搜索了很多與圖像處理有關(guān)網(wǎng)頁游戲,如圖1所示。筆者試玩了多種計(jì)算機(jī)視覺相關(guān)的游戲,并最終決定寫一個切水果的游戲的外掛程序。 圖 1 各種網(wǎng)頁游戲 圖2 各類切水果的游戲1.2 OpenCV簡介OpenCV1的全稱是:Open Source Computer Vision Library。OpenCV是一個基于(開源)發(fā)行的跨平臺計(jì)算機(jī)視覺庫, OpenCV是由英特爾公司發(fā)起并參與開發(fā),以BSD許可證授權(quán)發(fā)行,可以在商業(yè)和研究領(lǐng)域中免費(fèi)使用,可以運(yùn)行在Linux、Windows和Mac OS操作系統(tǒng)上。OpenCV庫的所有代碼都經(jīng)過優(yōu)化,計(jì)算效率很高,因?yàn)椋鼘W⒂谠O(shè)計(jì)成

3、為一種用于實(shí)時系統(tǒng)的開源庫。OpenCV采用C語言進(jìn)行優(yōu)化,而且,在多核機(jī)器上面,其運(yùn)行速度會更快。它的一個目標(biāo)是提供友好的機(jī)器視覺接口函數(shù),從而使得復(fù)雜的機(jī)器視覺產(chǎn)品可以加速面世。該庫包含了橫跨工業(yè)產(chǎn)品檢測、醫(yī)學(xué)圖像處理、安防、用戶界面、攝像頭標(biāo)定、三維成像、機(jī)器視覺等領(lǐng)域的超過500個接口函數(shù)。近年來,在入侵檢測、特定目標(biāo)跟蹤、目標(biāo)檢測、人臉檢測、人臉識別、人臉跟蹤等領(lǐng)域,OpenCV可謂大顯身手,而這些,僅僅是其應(yīng)用的冰山一角。本文便是通過在Visual Studio 2013平臺下安裝OpenCV,通過編寫C+程序,并調(diào)用OpenCV計(jì)算機(jī)視覺和圖像處理的API,對游戲中的圖像進(jìn)行處理

4、、識別,為程序的下一步操作提供基礎(chǔ)。1.3游戲外掛簡介游戲外掛2,其實(shí)是一種游戲外輔助程序,他可以協(xié)助玩家自動產(chǎn)生游戲動作、修改游戲網(wǎng)絡(luò)數(shù)據(jù)包以及游戲內(nèi)存數(shù)據(jù)等,以實(shí)現(xiàn)玩家用最少的時間和金錢完成功力升級和過關(guān)斬將。根據(jù)游戲的類型,游戲外掛可以大致分為兩類:(1)將游戲中大量繁瑣和無聊的攻擊動作使用外掛自動完成,以幫助玩家輕松搞定攻擊對象并可以跨度增加玩家的經(jīng)驗(yàn)值,并取得更好的成績。(2)由外掛程序產(chǎn)生的欺詐性的網(wǎng)絡(luò)游戲封包,并將這些封包發(fā)送到網(wǎng)絡(luò)游戲服務(wù)器,利用這些虛假的信息欺騙服務(wù)器進(jìn)行游戲數(shù)值的修改,達(dá)到修改角色能力數(shù)值的目的。具體有可以分為模擬操作型、修改內(nèi)存型、封包型等。本文所編寫的既

5、是第一類游戲外掛。在切水果的游戲中,游戲玩家需要注意在頁面底側(cè)飛出來的各種水果和炸彈,在游戲的初期水果和炸彈飛出的速度較慢,玩家玩起來很輕松。伴隨著游戲的進(jìn)行,游戲的難度將增加,水果和炸彈的出現(xiàn)速度將越來越快。眼花繚亂的水果和炸彈不僅增加了游戲的難度,對于該類游戲的愛好者的視力也將有一定的損傷。因此,本文編寫的外掛的目的既是自動識別水果和炸彈,并通過編寫程序模擬鼠標(biāo)操作,進(jìn)而自動的完成大量的繁瑣的切水果的操作。第二章 開發(fā)環(huán)境搭建筆者在開始安裝OpenCV的過程3中,遇到了很多問題,浪費(fèi)了一些時間。這里我給出一個簡單的安裝步驟。具體如下所示:Step 1、下載一個較新的OpenCV安裝包。注意

6、:不要過新的OpenCV版本,筆者在開始時下載了最新的3.0版本的OpenCV,但是該版本與2.x版本的OpenCV有一定區(qū)別。網(wǎng)絡(luò)上也沒有相關(guān)的教程,因此浪費(fèi)了些時間。筆者最終使用的是版本的OpenCV。Step 2、下載OpenCV后,雙擊運(yùn)行exe,選擇輸出(解壓)目錄,我選擇的是C:opencv。然后解壓縮后就完成了整個安裝。Step 3、配置OpenCV,這里是整個環(huán)境搭建的核心內(nèi)容。Step 3.1在“我的電腦”右擊彈出“系統(tǒng)屬性”對話框,選擇“高級”再點(diǎn)擊“環(huán)境變量”,然后在“系統(tǒng)變量”中的Path對話框中輸入:“;C:opencvopencvbuildx64vc12bin”;

7、具體如圖3所示。圖3 配置環(huán)境變量Step 3.2 打開項(xiàng)目的屬性頁面,單擊“配置屬性”,然后點(diǎn)擊“VC+目錄”,然后手動的加入庫文件、引用文件和包含文件。具體操作如圖4所示。圖4 OpenCV 配置截圖1Step 3.3 在已經(jīng)打開的項(xiàng)目的屬性頁面中,點(diǎn)擊“鏈接器”,然后點(diǎn)擊“輸入”,然后手動添加附加依賴項(xiàng)。具體操作如圖5所示。圖5 OpenCV 配置截圖2至此,整個OpenCV環(huán)境已經(jīng)搭建、配置完成。但仍需說明的是,在程序運(yùn)行時,需要在工程的Debug目錄下添加一些DLL文件。筆者為了方便,所以在該目錄下添加了程序可能需要的OpenCV的全部DLL文件。具體如圖6所示:圖6 添加DLL文件

8、第三章 預(yù)分析與預(yù)處理3.1 游戲選擇在確定游戲?yàn)椤扒兴鳖愋偷闹螅P者試完了多個不同版本的切水果的游戲。通過試玩,筆者發(fā)現(xiàn)一部分游戲背景復(fù)雜,與傳統(tǒng)的切水果游戲相差較大,需要處理內(nèi)容較多,需要程序進(jìn)行的控制,以及游戲策略均很復(fù)雜,這一類游戲如圖7中的“切水果完美版”所示。 圖7 切水果完美版 圖8喜洋洋切水果還有一部分游戲,游戲開發(fā)者可能是為了開發(fā)速度,或是降低玩家的難度,不需要用鼠標(biāo)滑過水果(可能是食物),只需要用鼠標(biāo)左鍵點(diǎn)擊食物的周圍區(qū)域即可。這類游戲如圖8中的“喜洋洋切水果”所示。通過試玩,筆者發(fā)現(xiàn)這一類游戲很容易“錯切”。還有一部分游戲,與傳統(tǒng)的切水果游戲很接近,水果飛出速度合理

9、,鼠標(biāo)滑過水果后,屏幕出現(xiàn)劃痕,切碎的水果自動掉落,如圖9中的“簡約切水果”所示。個人感覺這樣的游戲,控制策略簡單;需要的圖像處理始終;需要識別的內(nèi)容也叫簡單。因此很適合筆者來寫這第一個游戲外掛程序。 圖 9簡約切水果3.2 獲取實(shí)驗(yàn)源圖像確定具體游戲后,筆者編寫了一個簡單小程序。通過簡單的人機(jī)交互,即可獲得目標(biāo)區(qū)域的圖像,通過設(shè)置定時器時間,可以每個30ms讀取一次屏幕中目標(biāo)區(qū)域,并將目標(biāo)區(qū)域圖像保存至特定目錄。本文中人機(jī)交互圖片如圖10所示,實(shí)驗(yàn)中保存了500張實(shí)驗(yàn)圖片,其中部分實(shí)驗(yàn)圖如圖11所示。圖 10 人機(jī)交互圖圖11 部分實(shí)驗(yàn)圖3.3 背景減除考慮到實(shí)驗(yàn)圖中背景單一不變,且游戲運(yùn)行

10、開始時,游戲中并沒有飛出任何水果或是炸彈。因此筆者多次調(diào)試程序,終于獲得了背景圖片,如圖12所示。圖12 游戲背景圖片而后,筆者編寫簡單的背景減除代碼,去掉了全部背景,結(jié)果如圖13所示。圖 14 背景減除后效果圖3.4 顏色空間分析考慮到后期需要檢測和識別水果、水漬、切過的水果和炸彈等。因此如果這些在顏色空間有不同的分布,那么便可選擇一種對水果更加敏感的色彩空間來表示本文中的實(shí)驗(yàn)圖像。接下來的處理過程復(fù)雜度將會大大減小。因此筆者簡單學(xué)習(xí)了一下四種顏色模型4,5。(1)RGB顏色模型RGB(Red, Green, Blue)顏色模型是最常見的顏色模型,RGB描述的是紅綠藍(lán)三色光的數(shù)值。其中R代表

11、著Red紅色,G代表著Green綠色,B代表這Blue藍(lán)色。通過這3種基本的顏色不同組合,即可合成約1670萬種顏色。(2)YUV顏色模型YUV顏色模型是視頻中常采用的色彩表示方法,Y指顏色的亮度(Brightness),U和V是兩個色差信號 。YUV顏色模型的亮度信號和色差信號U、V是分離的,可以單獨(dú)處理。根據(jù)一個場景內(nèi)色度總是基本一致且單一,即使是屬于不同攝像頭的相鄰兩幀,其色度也具有變化不大的特點(diǎn)。它和紅、綠、藍(lán)三色光的關(guān)系可用如下式的方程描述:Y=0.3R+0.59G+0.11B 這就是常用的亮度公式。色差U、V是由BY、RY按不同比例壓縮而成的。(3)HSV顏色模型HSV (色相hu

12、e,飽和度saturation, 明度value), 也稱HSB (B指brightness) 是藝術(shù)家們常用的,因?yàn)榕c加法減法混色的術(shù)語相比,使用色相,飽和度等概念描述色彩更自然直觀。HSV 是RGB色彩空間的一種變形,它的內(nèi)容與色彩尺度與其出處RGB色彩空間有密切聯(lián)系。(4)HSL顏色模型HSL (色相hue, 飽和度saturation,亮度lightness/luminance), 也稱HLS 或 HSI (I指intensity) 與 HSV非常相似,僅用亮度(lightness)替代了明度(brightness)。二者區(qū)別在于,一種純色的明度等于白色的明度,而純色的亮度等于中度灰的

13、亮度。由于以上顏色模型均很常見,所以各個顏色模型間的轉(zhuǎn)換關(guān)系這里就不一一列出了。同時為了更加清晰了解每個色彩模型對本實(shí)驗(yàn)中圖像的敏感程度,筆者手動合成了一張幾乎包含所有可能出現(xiàn)的圖形的圖片,如圖15所示。而后筆者通過MATLAB展示了圖15在RGB、YUV、HSV、HIS四種顏色模型中的具體表現(xiàn)效果,分別如圖16(a)、圖16(b)、圖16(c)、圖16(d)所示。圖15 合成圖片(a) RGB顏色空間顯示效果(b) YUV顏色空間顯示效果(c) HSV顏色空間顯示效果(d) HSI顏色空間顯示效果圖16 不同顏色空間的顯示效果對比圖色彩空間分析比較:通過分析比較,可以發(fā)現(xiàn)切過的水果和未切的水

14、果,在不同的模型和分量下,顯示效果相近,并未出現(xiàn)對某個特定的顏色空間特別敏感這一現(xiàn)象。有考慮到,數(shù)據(jù)讀入時便是RGB形式,如果采用其他顏色空間還需要再次進(jìn)行轉(zhuǎn)換,無疑增加了計(jì)算量。因此筆者采用的是RGB顏色模型。因?yàn)镽GB顏色模型中,B分量與背景差異最大,因此選用該分量進(jìn)行后續(xù)的處理。3.5 目標(biāo)區(qū)域下采樣考慮到本文所寫程序?yàn)橛螒蛲鈷?,因此游戲的處理時間越短越好。因此本文從每個角度上考慮,以盡可能的減少程序占用的資源與運(yùn)行時間,因此本文首先將目標(biāo)區(qū)域中的1/2作為最終的目標(biāo)區(qū)域,如圖17中紅框內(nèi)的圖像所示,此時圖像的分辨率為760*200,數(shù)據(jù)量為760*400*3=912000 Bytes=

15、890.6KB。因此,筆者在此將圖像下采樣處理,圖像依舊保留原來的特征,而且最終圖像的分辨率為380*100,數(shù)據(jù)量變?yōu)樵繕?biāo)區(qū)域的1/4大小,一定程度上減少了處理內(nèi)容,提高了程序運(yùn)行速度。最終圖像下采樣后的圖像如圖18所示。圖17 縮小后的目標(biāo)區(qū)域示意圖圖18 下采樣后圖像示意圖3.6 中值濾波中值濾波6是一種非線性平滑技術(shù),它將每一像素點(diǎn)的灰度值設(shè)置為該點(diǎn)某鄰域窗口內(nèi)的所有像素點(diǎn)灰度值的中值。中值濾波是基于排序統(tǒng)計(jì)理論的一種能有效抑制噪聲的非線性信號處理技術(shù),中值濾波的基本原理是把數(shù)字圖像或數(shù)字序列中一點(diǎn)的值用該點(diǎn)的一個鄰域中各點(diǎn)值的中值代替,讓周圍的像素值接近的真實(shí)值,從而消除孤立的噪聲

16、點(diǎn)。方法是用某種結(jié)構(gòu)的二維滑動模板,將板內(nèi)像素按照像素值的大小進(jìn)行排序,生成單調(diào)上升(或下降)的為二維數(shù)據(jù)序列。二維中值濾波輸出為g(x,y)=medf(x-k,y-l),(k,lW) ,其中,f(x,y),g(x,y)分別為原始圖像和處理后圖像。W為二維模板,通常為3*3,5*5區(qū)域,也可以是不同的的形狀,如線狀,圓形,十字形,圓環(huán)形等??紤]到圖像減除背景后,其B分量圖像中存在少量白色噪聲點(diǎn),在后期的處理中會在一定程度上影響處理效果,因此本文采用中值濾波方法對圖像進(jìn)行鋁箔處理。原圖像與處理后的圖像如圖19和圖20所示。圖19 B分量原始圖圖20 中值濾波后圖像3.7膨脹與腐蝕通過觀察,發(fā)現(xiàn)如

17、果圖像中出現(xiàn)水漬的話,那么會有很多的小的輪廓出現(xiàn)。后續(xù)的計(jì)算中,這些小的水漬也將增加計(jì)算的時間。因此筆者采用膨脹和腐蝕處理方法對圖像進(jìn)行處理。需要說明的是:OpenCV中膨脹和腐蝕均是針對白色區(qū)域進(jìn)行的。本文中原始圖像、腐蝕之后的圖像、膨脹之后的圖像如圖21所示。(a)原始圖像 (b)腐蝕之后的圖像(c)膨脹之后的圖像圖21 膨脹與腐蝕操作示意圖通過對比可以發(fā)現(xiàn),最后經(jīng)過膨脹處理后,圖像中較小的水漬幾乎都已經(jīng)被處理掉了,效果很好。第四章 檢測與識別在基本的圖像預(yù)處理之后,已經(jīng)獲得了較好的待處理圖像。因此筆者開始著手目標(biāo)的檢測與識別工作。筆者選擇了一些常見的方法,對圖像中的未切水果、非未切水果和

18、炸彈進(jìn)行檢測和識別。4.1霍夫變換檢測圓霍夫變換簡介:計(jì)算機(jī)視覺中經(jīng)常需要識別或者定位某些幾何圖形,比如直線、圓、橢圓,還有其他一些圖形。檢測直線的霍夫變換提供了在圖像中尋找直線的一種算法,是最簡單的一種情形,后來發(fā)展到檢測圓、橢圓、還有一般圖形的霍夫變換,其核心思想是把圖像中屬于某種圖形的點(diǎn)集(二維)映射到一個點(diǎn)(可以是高維)上,這個點(diǎn)記錄了點(diǎn)集中點(diǎn)的數(shù)目,使得程序通過搜索峰值找到該點(diǎn),這個點(diǎn)就是后面要說到的圖形的參數(shù),而該參數(shù)的范圍就叫做參數(shù)空間?;舴蜃儞Q檢測圓的原理這里不再贅述,如有需要請參考文獻(xiàn)8。另外對于OpenCV下該函數(shù)原型,以及各項(xiàng)參數(shù)的含義這里也不再給出,如有需要請參考文獻(xiàn)9

19、。筆者在用該函數(shù)進(jìn)行識別時發(fā)現(xiàn),檢測效果與參數(shù)設(shè)置有很大的關(guān)系,經(jīng)常會出現(xiàn)錯誤檢測和漏檢。錯檢的示意圖如圖22所示。通過多次嘗試,筆者發(fā)現(xiàn)該方法錯誤率和漏檢率太高,難以應(yīng)用于本文的應(yīng)用。圖22 霍夫變換檢測圓示意圖4.2 邊緣檢測圖像邊緣檢測大幅度地減少了數(shù)據(jù)量,并且剔除了可以認(rèn)為不相關(guān)的信息,保留了圖像重要的結(jié)構(gòu)屬性。有許多方法用于邊緣檢測,它們的絕大部分可以劃分為兩類:基于查找一類和基于零穿越的一類?;诓檎业姆椒ㄍㄟ^尋找圖像一階導(dǎo)數(shù)中的最大和最小值來檢測邊界,通常是將邊界定位在梯度最大的方向?;诹愦┰降姆椒ㄍㄟ^尋找圖像二階導(dǎo)數(shù)零穿越來尋找邊界,通常是Laplacian過零點(diǎn)或者非線性差

20、分表示的過零點(diǎn)。本文采用的是OpenCV自帶函數(shù) cvCanny(),函數(shù) cvCanny 采用 CANNY 算法發(fā)現(xiàn)輸入圖像的邊緣而且在輸出圖像中標(biāo)識這些邊緣。函數(shù)的參數(shù)這里同樣不予給出,如有需要請參考文獻(xiàn)10。邊緣檢測的示意圖如圖23所示。 (a) 邊緣檢測示意圖1 (b) 邊緣檢測示意圖2圖22 邊緣檢測示意圖4.3 輪廓周長與面積約束邊緣檢測后,筆者發(fā)現(xiàn)一些邊緣的輪廓很長,有一些很多;有些輪廓的面積很大,有些則很??;而這些都不是未切的水果。而在筆者查找資料的過程中發(fā)現(xiàn),OpenCV中自帶檢測輪廓面積和周長的函數(shù),因此筆者調(diào)用函數(shù)去除掉了這些周長和面積不符合要求的輪廓。實(shí)際繪制后,目標(biāo)的

21、輪廓為多邊形。這對于后期的再次處理有一定的影響,因此,筆者根據(jù)輪廓的位置,對目標(biāo)在此處理用矩形框框住目標(biāo)輪廓。實(shí)驗(yàn)結(jié)果示意圖如圖24所示。有本圖可以看出,本文的處理時間基本滿足實(shí)時性的需要,單幀處理時間為25ms左右。圖 24 輪廓約束并外接矩形框示意圖 4.4保留檢測出的樣本為了更好地分析,不同的目標(biāo)之間的區(qū)別與識別,筆者編寫了一個簡單的小程序,保存了300張目標(biāo)圖像。如圖25所示。圖25 目標(biāo)圖像示意圖4.5 樣本分類為了找出不同的目標(biāo)圖像之間的區(qū)別,筆者計(jì)算了各個目標(biāo)矩形框的內(nèi)圖像的像素差值的均值和均方差,甚至還計(jì)算了目標(biāo)圖像的頻譜信息。但是都沒有找到明顯的區(qū)別。當(dāng)然,全黑的炸彈可以非常

22、輕松的識別出來。本文還通過MATLAB的imtool()工具詳細(xì)觀察了圖像上的每一個像素值,其示意圖如圖26所示。圖26 查看圖像的像素值示意圖4.6 顏色對比通過多種方法,依舊沒有去除掉已經(jīng)切過的水果,因此筆者編寫了一段小程序,檢測圖像中出現(xiàn)的特殊顏色,如圖27中的紅色。檢測到特殊顏色后即標(biāo)記這個目標(biāo)區(qū)域?yàn)橐呀?jīng)切過的水果,不再此切割。最終去除掉了已經(jīng)切過的西瓜、劃痕、切過的梨子等。圖27中最右側(cè)對比圖中的白色區(qū)域?yàn)闄z測到的紅色,本文的程序即是根據(jù)這些白點(diǎn)的多少判斷是否為未切水果。圖27 顏色對比排除示意圖第五章 C+程序模擬鼠標(biāo)操作接下來,筆者學(xué)習(xí)了如何通過編寫程序來模擬鼠標(biāo)11的一系列動作。包括鼠標(biāo)的單擊和左鍵按住滑動(切水果時的動作)。雖然筆者研究了很長時間的C+模擬鼠標(biāo)的操作,也查找了很多的參考資料,但是,可能是由于筆者接觸Windows編程較少,僅僅實(shí)現(xiàn)了鼠標(biāo)的單擊操作。未能實(shí)現(xiàn)鼠標(biāo)的拖動操作。因此也導(dǎo)致最終本文未能完成預(yù)期的設(shè)計(jì)。圖28 模擬鼠標(biāo)操作函數(shù)第六章 總結(jié)本文,使用了多種圖像處理的方法,對于游戲中的動畫圖像進(jìn)行了大量的處理。最終成功的識別出了未切水果,當(dāng)然其中包含少量的已經(jīng)切過的水果。但是由于

溫馨提示

  • 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

提交評論