計(jì)算機(jī)視覺(jué):圖像增強(qiáng):圖像增強(qiáng)技術(shù)概覽_第1頁(yè)
計(jì)算機(jī)視覺(jué):圖像增強(qiáng):圖像增強(qiáng)技術(shù)概覽_第2頁(yè)
計(jì)算機(jī)視覺(jué):圖像增強(qiáng):圖像增強(qiáng)技術(shù)概覽_第3頁(yè)
計(jì)算機(jī)視覺(jué):圖像增強(qiáng):圖像增強(qiáng)技術(shù)概覽_第4頁(yè)
計(jì)算機(jī)視覺(jué):圖像增強(qiáng):圖像增強(qiáng)技術(shù)概覽_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

計(jì)算機(jī)視覺(jué):圖像增強(qiáng):圖像增強(qiáng)技術(shù)概覽1計(jì)算機(jī)視覺(jué)基礎(chǔ)1.1圖像處理基本概念在計(jì)算機(jī)視覺(jué)領(lǐng)域,圖像處理是分析和解釋圖像數(shù)據(jù)的關(guān)鍵步驟。圖像可以被視為由像素組成的二維矩陣,每個(gè)像素包含顏色信息,通常以RGB(紅、綠、藍(lán))或灰度值表示。圖像處理技術(shù)包括圖像增強(qiáng)、圖像分割、特征提取等,其中圖像增強(qiáng)是提升圖像質(zhì)量,使其更適合人類視覺(jué)或計(jì)算機(jī)分析的過(guò)程。1.1.1圖像增強(qiáng)的重要性圖像增強(qiáng)在計(jì)算機(jī)視覺(jué)中至關(guān)重要,因?yàn)樗梢愿纳茍D像的視覺(jué)效果,提高圖像的對(duì)比度、亮度和清晰度,從而幫助算法更準(zhǔn)確地識(shí)別和分析圖像中的特征。例如,在低光照條件下拍攝的圖像可能對(duì)比度低,細(xì)節(jié)模糊,通過(guò)圖像增強(qiáng)技術(shù)可以顯著改善這些圖像的質(zhì)量,使其更適合后續(xù)的計(jì)算機(jī)視覺(jué)任務(wù)。1.1.2計(jì)算機(jī)視覺(jué)中的圖像增強(qiáng)應(yīng)用圖像增強(qiáng)技術(shù)廣泛應(yīng)用于計(jì)算機(jī)視覺(jué)的多個(gè)領(lǐng)域,包括但不限于:目標(biāo)檢測(cè):通過(guò)增強(qiáng)圖像的對(duì)比度和清晰度,使目標(biāo)更易于檢測(cè)。圖像分類:增強(qiáng)圖像的特征,提高分類算法的準(zhǔn)確性。醫(yī)學(xué)影像分析:在醫(yī)學(xué)影像中,增強(qiáng)技術(shù)可以突出病變區(qū)域,幫助醫(yī)生更準(zhǔn)確地診斷。自動(dòng)駕駛:在自動(dòng)駕駛系統(tǒng)中,圖像增強(qiáng)可以提高在不同光照條件下的道路識(shí)別能力。1.2圖像增強(qiáng)技術(shù)示例1.2.1直方圖均衡化直方圖均衡化是一種常用的圖像增強(qiáng)技術(shù),它通過(guò)重新分配圖像的像素強(qiáng)度值,以增強(qiáng)圖像的對(duì)比度。這種方法特別適用于改善全局對(duì)比度,使圖像看起來(lái)更清晰。代碼示例importcv2

importnumpyasnp

#讀取圖像

img=cv2.imread('path_to_your_image.jpg',0)

#應(yīng)用直方圖均衡化

equ=cv2.equalizeHist(img)

#顯示原圖和均衡化后的圖像

cv2.imshow('OriginalImage',img)

cv2.imshow('HistogramEqualization',equ)

cv2.waitKey(0)

cv2.destroyAllWindows()1.2.2對(duì)數(shù)變換對(duì)數(shù)變換是一種非線性增強(qiáng)技術(shù),適用于增強(qiáng)圖像中的暗區(qū)域,同時(shí)保持圖像的高亮度區(qū)域不受影響。這種方法通過(guò)應(yīng)用對(duì)數(shù)函數(shù)來(lái)調(diào)整像素強(qiáng)度值。代碼示例importcv2

importnumpyasnp

#讀取圖像

img=cv2.imread('path_to_your_image.jpg',0)

#應(yīng)用對(duì)數(shù)變換

c=255/np.log(1+np.max(img))

log_transformed=c*(np.log(img+1))

log_transformed=np.array(log_transformed,dtype=np.uint8)

#顯示原圖和對(duì)數(shù)變換后的圖像

cv2.imshow('OriginalImage',img)

cv2.imshow('LogTransformation',log_transformed)

cv2.waitKey(0)

cv2.destroyAllWindows()1.2.3Gamma校正Gamma校正是一種用于調(diào)整圖像亮度和對(duì)比度的技術(shù),特別適用于增強(qiáng)圖像的暗部或亮部細(xì)節(jié)。Gamma值小于1會(huì)增強(qiáng)暗部細(xì)節(jié),而大于1則會(huì)增強(qiáng)亮部細(xì)節(jié)。代碼示例importcv2

importnumpyasnp

#讀取圖像

img=cv2.imread('path_to_your_image.jpg',0)

#定義Gamma值

gamma=0.5

#應(yīng)用Gamma校正

lookUpTable=np.empty((1,256),np.uint8)

foriinrange(256):

lookUpTable[0,i]=np.clip(pow(i/255.0,gamma)*255.0,0,255)

res=cv2.LUT(img,lookUpTable)

#顯示原圖和Gamma校正后的圖像

cv2.imshow('OriginalImage',img)

cv2.imshow('GammaCorrection',res)

cv2.waitKey(0)

cv2.destroyAllWindows()1.2.4高斯模糊高斯模糊是一種圖像平滑技術(shù),用于減少圖像中的噪聲和細(xì)節(jié),使圖像看起來(lái)更柔和。在圖像增強(qiáng)中,高斯模糊可以作為預(yù)處理步驟,幫助后續(xù)算法更好地處理圖像。代碼示例importcv2

importnumpyasnp

#讀取圖像

img=cv2.imread('path_to_your_image.jpg')

#應(yīng)用高斯模糊

blurred=cv2.GaussianBlur(img,(5,5),0)

#顯示原圖和模糊后的圖像

cv2.imshow('OriginalImage',img)

cv2.imshow('GaussianBlur',blurred)

cv2.waitKey(0)

cv2.destroyAllWindows()1.2.5圖像銳化圖像銳化是一種增強(qiáng)圖像邊緣和細(xì)節(jié)的技術(shù),使圖像看起來(lái)更清晰。這通常通過(guò)增強(qiáng)圖像的高頻成分來(lái)實(shí)現(xiàn)。代碼示例importcv2

importnumpyasnp

#讀取圖像

img=cv2.imread('path_to_your_image.jpg')

#定義銳化濾波器

kernel=np.array([[-1,-1,-1],[-1,9,-1],[-1,-1,-1]])

#應(yīng)用圖像銳化

sharp=cv2.filter2D(img,-1,kernel)

#顯示原圖和銳化后的圖像

cv2.imshow('OriginalImage',img)

cv2.imshow('ImageSharpening',sharp)

cv2.waitKey(0)

cv2.destroyAllWindows()1.3結(jié)論圖像增強(qiáng)技術(shù)是計(jì)算機(jī)視覺(jué)中不可或缺的一部分,它通過(guò)改善圖像的對(duì)比度、亮度和清晰度,幫助算法更準(zhǔn)確地識(shí)別和分析圖像中的特征。上述示例展示了幾種常見(jiàn)的圖像增強(qiáng)技術(shù),包括直方圖均衡化、對(duì)數(shù)變換、Gamma校正、高斯模糊和圖像銳化。這些技術(shù)可以根據(jù)具體的應(yīng)用場(chǎng)景和需求進(jìn)行選擇和調(diào)整,以達(dá)到最佳的圖像增強(qiáng)效果。2圖像增強(qiáng)技術(shù)分類2.1空間域增強(qiáng)技術(shù)2.1.11.1對(duì)比度增強(qiáng)對(duì)比度增強(qiáng)是空間域增強(qiáng)技術(shù)中的一種,通過(guò)調(diào)整圖像的對(duì)比度,使圖像的細(xì)節(jié)更加清晰。一種常見(jiàn)的方法是直方圖均衡化,它通過(guò)重新分布圖像的像素強(qiáng)度,以增強(qiáng)圖像的對(duì)比度。示例代碼importcv2

importnumpyasnp

#讀取圖像

img=cv2.imread('example.jpg',0)

#應(yīng)用直方圖均衡化

equ=cv2.equalizeHist(img)

#顯示原圖和增強(qiáng)后的圖像

cv2.imshow('OriginalImage',img)

cv2.imshow('EnhancedImage',equ)

cv2.waitKey(0)

cv2.destroyAllWindows()數(shù)據(jù)樣例假設(shè)example.jpg是一張灰度圖像,其像素強(qiáng)度分布不均,通過(guò)直方圖均衡化后,像素強(qiáng)度分布更加均勻,圖像對(duì)比度得到增強(qiáng)。2.1.21.2顏色空間轉(zhuǎn)換顏色空間轉(zhuǎn)換是另一種空間域增強(qiáng)技術(shù),通過(guò)將圖像從一種顏色空間轉(zhuǎn)換到另一種顏色空間,然后在新空間中進(jìn)行增強(qiáng),最后再轉(zhuǎn)換回原顏色空間。例如,從RGB空間轉(zhuǎn)換到HSV空間,增強(qiáng)飽和度和亮度,再轉(zhuǎn)換回RGB空間。示例代碼importcv2

importnumpyasnp

#讀取圖像

img=cv2.imread('example.jpg')

#轉(zhuǎn)換到HSV顏色空間

hsv=cv2.cvtColor(img,cv2.COLOR_BGR2HSV)

#增強(qiáng)飽和度和亮度

hsv[...,1]=hsv[...,1]*1.5

hsv[...,2]=hsv[...,2]*1.5

#轉(zhuǎn)換回BGR顏色空間

img_enhanced=cv2.cvtColor(hsv,cv2.COLOR_HSV2BGR)

#顯示增強(qiáng)后的圖像

cv2.imshow('EnhancedImage',img_enhanced)

cv2.waitKey(0)

cv2.destroyAllWindows()數(shù)據(jù)樣例假設(shè)example.jpg是一張彩色圖像,通過(guò)顏色空間轉(zhuǎn)換,圖像的顏色更加鮮艷,亮度也有所提升。2.2頻率域增強(qiáng)技術(shù)2.2.12.1高通濾波高通濾波是一種頻率域增強(qiáng)技術(shù),用于增強(qiáng)圖像的邊緣和細(xì)節(jié)。它通過(guò)抑制低頻成分,增強(qiáng)高頻成分來(lái)實(shí)現(xiàn)。示例代碼importcv2

importnumpyasnp

fromscipyimportsignal

#讀取圖像

img=cv2.imread('example.jpg',0)

#高通濾波器

kernel=np.array([[0,-1,0],

[-1,4,-1],

[0,-1,0]])

#應(yīng)用高通濾波

img_filtered=signal.convolve2d(img,kernel,boundary='symm',mode='same')

#顯示增強(qiáng)后的圖像

cv2.imshow('EnhancedImage',img_filtered)

cv2.waitKey(0)

cv2.destroyAllWindows()數(shù)據(jù)樣例假設(shè)example.jpg是一張灰度圖像,通過(guò)高通濾波,圖像的邊緣和細(xì)節(jié)更加突出。2.2.22.2低通濾波低通濾波用于平滑圖像,減少噪聲。它通過(guò)抑制高頻成分,增強(qiáng)低頻成分來(lái)實(shí)現(xiàn)。示例代碼importcv2

importnumpyasnp

fromscipyimportsignal

#讀取圖像

img=cv2.imread('example.jpg',0)

#低通濾波器

kernel=np.array([[1,1,1],

[1,1,1],

[1,1,1]])/9.0

#應(yīng)用低通濾波

img_filtered=signal.convolve2d(img,kernel,boundary='symm',mode='same')

#顯示增強(qiáng)后的圖像

cv2.imshow('SmoothedImage',img_filtered)

cv2.waitKey(0)

cv2.destroyAllWindows()數(shù)據(jù)樣例假設(shè)example.jpg是一張灰度圖像,其中包含一些噪聲,通過(guò)低通濾波,圖像變得更加平滑,噪聲被有效減少。2.3基于深度學(xué)習(xí)的圖像增強(qiáng)方法2.3.13.1深度學(xué)習(xí)超分辨率深度學(xué)習(xí)超分辨率是一種基于深度學(xué)習(xí)的圖像增強(qiáng)方法,通過(guò)訓(xùn)練神經(jīng)網(wǎng)絡(luò),將低分辨率圖像轉(zhuǎn)換為高分辨率圖像。示例代碼importcv2

importnumpyasnp

fromtensorflow.keras.modelsimportload_model

#加載預(yù)訓(xùn)練的超分辨率模型

model=load_model('sr_model.h5')

#讀取圖像并縮小

img=cv2.imread('example.jpg')

img_small=cv2.resize(img,(img.shape[1]//4,img.shape[0]//4))

#將圖像轉(zhuǎn)換為模型輸入格式

img_small=img_small.astype('float32')/255.

img_small=np.expand_dims(img_small,axis=0)

#應(yīng)用超分辨率

img_enhanced=model.predict(img_small)

#將圖像轉(zhuǎn)換回原格式并顯示

img_enhanced=np.squeeze(img_enhanced,axis=0)

img_enhanced=(img_enhanced*255).astype('uint8')

cv2.imshow('EnhancedImage',img_enhanced)

cv2.waitKey(0)

cv2.destroyAllWindows()數(shù)據(jù)樣例假設(shè)example.jpg是一張低分辨率圖像,通過(guò)深度學(xué)習(xí)超分辨率模型,圖像的分辨率得到顯著提升,細(xì)節(jié)更加豐富。2.3.23.2深度學(xué)習(xí)去噪深度學(xué)習(xí)去噪是另一種基于深度學(xué)習(xí)的圖像增強(qiáng)方法,通過(guò)訓(xùn)練神經(jīng)網(wǎng)絡(luò),去除圖像中的噪聲。示例代碼importcv2

importnumpyasnp

fromtensorflow.keras.modelsimportload_model

#加載預(yù)訓(xùn)練的去噪模型

model=load_model('dn_model.h5')

#讀取圖像并添加噪聲

img=cv2.imread('example.jpg')

img_noisy=img+np.random.normal(0,25,img.shape)

#將圖像轉(zhuǎn)換為模型輸入格式

img_noisy=img_noisy.astype('float32')/255.

img_noisy=np.expand_dims(img_noisy,axis=0)

#應(yīng)用去噪

img_clean=model.predict(img_noisy)

#將圖像轉(zhuǎn)換回原格式并顯示

img_clean=np.squeeze(img_clean,axis=0)

img_clean=(img_clean*255).astype('uint8')

cv2.imshow('CleanedImage',img_clean)

cv2.waitKey(0)

cv2.destroyAllWindows()數(shù)據(jù)樣例假設(shè)example.jpg是一張包含噪聲的圖像,通過(guò)深度學(xué)習(xí)去噪模型,圖像的噪聲被有效去除,圖像質(zhì)量得到提升。3空間域增強(qiáng)技術(shù)詳解3.11對(duì)比度增強(qiáng)對(duì)比度增強(qiáng)是圖像增強(qiáng)技術(shù)中的一種,旨在提高圖像中不同區(qū)域的差異,使圖像細(xì)節(jié)更加清晰。常見(jiàn)的對(duì)比度增強(qiáng)方法包括直方圖均衡化和自適應(yīng)直方圖均衡化。3.1.1直方圖均衡化直方圖均衡化是一種全局增強(qiáng)技術(shù),通過(guò)變換圖像的灰度級(jí)分布,使得圖像的灰度級(jí)分布更加均勻,從而提高圖像的對(duì)比度。代碼示例importcv2

importnumpyasnp

#讀取圖像

img=cv2.imread('example.jpg',0)

#直方圖均衡化

equ=cv2.equalizeHist(img)

#顯示原圖和均衡化后的圖像

cv2.imshow('OriginalImage',img)

cv2.imshow('HistogramEqualization',equ)

cv2.waitKey(0)

cv2.destroyAllWindows()3.1.2自適應(yīng)直方圖均衡化自適應(yīng)直方圖均衡化是一種局部增強(qiáng)技術(shù),它將圖像分割成小區(qū)域,然后對(duì)每個(gè)區(qū)域進(jìn)行直方圖均衡化,適用于光照不均勻的圖像。代碼示例importcv2

importnumpyasnp

#讀取圖像

img=cv2.imread('example.jpg',0)

#創(chuàng)建自適應(yīng)直方圖均衡化對(duì)象

clahe=cv2.createCLAHE(clipLimit=2.0,tileGridSize=(8,8))

#應(yīng)用自適應(yīng)直方圖均衡化

cl1=clahe.apply(img)

#顯示原圖和自適應(yīng)直方圖均衡化后的圖像

cv2.imshow('OriginalImage',img)

cv2.imshow('AdaptiveHistogramEqualization',cl1)

cv2.waitKey(0)

cv2.destroyAllWindows()3.22亮度調(diào)整亮度調(diào)整是通過(guò)改變圖像的灰度級(jí)來(lái)實(shí)現(xiàn)的,可以使得圖像整體更亮或更暗,適用于圖像整體過(guò)暗或過(guò)亮的情況。3.2.1代碼示例importcv2

importnumpyasnp

#讀取圖像

img=cv2.imread('example.jpg',0)

#定義亮度調(diào)整函數(shù)

defadjust_brightness(img,value=30):

hsv=cv2.cvtColor(img,cv2.COLOR_BGR2HSV)

h,s,v=cv2.split(hsv)

v=np.clip(v+value,0,255).astype(hsv.dtype)

final_hsv=cv2.merge((h,s,v))

img=cv2.cvtColor(final_hsv,cv2.COLOR_HSV2BGR)

returnimg

#調(diào)整亮度

bright_img=adjust_brightness(img)

#顯示原圖和亮度調(diào)整后的圖像

cv2.imshow('OriginalImage',img)

cv2.imshow('BrightnessAdjustedImage',bright_img)

cv2.waitKey(0)

cv2.destroyAllWindows()3.33銳化處理銳化處理是通過(guò)增強(qiáng)圖像的邊緣和細(xì)節(jié)來(lái)提高圖像的清晰度。常見(jiàn)的銳化方法包括拉普拉斯算子和高斯差分算子。3.3.1拉普拉斯算子拉普拉斯算子是一種二階微分算子,用于檢測(cè)圖像中的邊緣。代碼示例importcv2

importnumpyasnp

#讀取圖像

img=cv2.imread('example.jpg',0)

#應(yīng)用拉普拉斯算子

laplacian=cv2.Laplacian(img,cv2.CV_64F)

#顯示原圖和銳化后的圖像

cv2.imshow('OriginalImage',img)

cv2.imshow('LaplacianSharpenedImage',laplacian)

cv2.waitKey(0)

cv2.destroyAllWindows()3.3.2高斯差分算子高斯差分算子是通過(guò)先對(duì)圖像進(jìn)行高斯模糊,然后計(jì)算模糊前后的差分來(lái)實(shí)現(xiàn)銳化。代碼示例importcv2

importnumpyasnp

#讀取圖像

img=cv2.imread('example.jpg',0)

#高斯模糊

blur=cv2.GaussianBlur(img,(0,0),3)

#計(jì)算差分

sharp=cv2.addWeighted(img,1.5,blur,-0.5,0)

#顯示原圖和銳化后的圖像

cv2.imshow('OriginalImage',img)

cv2.imshow('GaussianDifferenceSharpenedImage',sharp)

cv2.waitKey(0)

cv2.destroyAllWindows()3.44圖像平滑圖像平滑是通過(guò)去除圖像中的噪聲來(lái)提高圖像的質(zhì)量。常見(jiàn)的圖像平滑方法包括均值濾波和中值濾波。3.4.1均值濾波均值濾波是一種線性濾波器,通過(guò)計(jì)算濾波器窗口內(nèi)的像素平均值來(lái)替換中心像素的值,從而達(dá)到平滑的效果。代碼示例importcv2

importnumpyasnp

#讀取圖像

img=cv2.imread('example.jpg')

#應(yīng)用均值濾波

blur=cv2.blur(img,(5,5))

#顯示原圖和平滑后的圖像

cv2.imshow('OriginalImage',img)

cv2.imshow('MeanFilteredImage',blur)

cv2.waitKey(0)

cv2.destroyAllWindows()3.4.2中值濾波中值濾波是一種非線性濾波器,通過(guò)計(jì)算濾波器窗口內(nèi)的像素中值來(lái)替換中心像素的值,對(duì)于去除椒鹽噪聲有很好的效果。代碼示例importcv2

importnumpyasnp

#讀取圖像

img=cv2.imread('example.jpg')

#應(yīng)用中值濾波

median=cv2.medianBlur(img,5)

#顯示原圖和平滑后的圖像

cv2.imshow('OriginalImage',img)

cv2.imshow('MedianFilteredImage',median)

cv2.waitKey(0)

cv2.destroyAllWindows()3.55幾何變換幾何變換是通過(guò)改變圖像的幾何形狀來(lái)實(shí)現(xiàn)圖像增強(qiáng),常見(jiàn)的幾何變換包括旋轉(zhuǎn)、縮放和翻轉(zhuǎn)。3.5.1旋轉(zhuǎn)旋轉(zhuǎn)是通過(guò)改變圖像的坐標(biāo)系來(lái)實(shí)現(xiàn)的,可以使得圖像中的對(duì)象處于更有利于識(shí)別的角度。代碼示例importcv2

importnumpyasnp

#讀取圖像

img=cv2.imread('example.jpg')

#定義旋轉(zhuǎn)矩陣

rows,cols=img.shape[:2]

M=cv2.getRotationMatrix2D((cols/2,rows/2),90,1)

#應(yīng)用旋轉(zhuǎn)

dst=cv2.warpAffine(img,M,(cols,rows))

#顯示原圖和旋轉(zhuǎn)后的圖像

cv2.imshow('OriginalImage',img)

cv2.imshow('RotatedImage',dst)

cv2.waitKey(0)

cv2.destroyAllWindows()3.5.2縮放縮放是通過(guò)改變圖像的尺寸來(lái)實(shí)現(xiàn)的,可以使得圖像中的對(duì)象大小更適中。代碼示例importcv2

#讀取圖像

img=cv2.imread('example.jpg')

#縮放圖像

res=cv2.resize(img,None,fx=2,fy=2,interpolation=cv2.INTER_CUBIC)

#顯示原圖和縮放后的圖像

cv2.imshow('OriginalImage',img)

cv2.imshow('ScaledImage',res)

cv2.waitKey(0)

cv2.destroyAllWindows()3.5.3翻轉(zhuǎn)翻轉(zhuǎn)是通過(guò)改變圖像的方向來(lái)實(shí)現(xiàn)的,可以使得圖像中的對(duì)象處于更有利于識(shí)別的位置。代碼示例importcv2

#讀取圖像

img=cv2.imread('example.jpg')

#翻轉(zhuǎn)圖像

flip_img=cv2.flip(img,1)#1表示沿y軸翻轉(zhuǎn),0表示沿x軸翻轉(zhuǎn),-1表示沿x和y軸翻轉(zhuǎn)

#顯示原圖和翻轉(zhuǎn)后的圖像

cv2.imshow('OriginalImage',img)

cv2.imshow('FlippedImage',flip_img)

cv2.waitKey(0)

cv2.destroyAllWindows()4頻率域增強(qiáng)技術(shù)詳解4.11傅里葉變換基礎(chǔ)傅里葉變換是圖像處理中一種重要的數(shù)學(xué)工具,它將圖像從空間域轉(zhuǎn)換到頻率域,使得圖像的局部特征和全局特征得以分離,便于進(jìn)行各種圖像處理操作。傅里葉變換的基本原理是將圖像視為一系列正弦波的疊加,通過(guò)變換可以得到這些正弦波的頻率、振幅和相位信息。4.1.1理論基礎(chǔ)傅里葉變換可以表示為:F其中,fx,y4.1.2Python代碼示例importnumpyasnp

importcv2

frommatplotlibimportpyplotasplt

#讀取圖像

img=cv2.imread('example.jpg',0)

#應(yīng)用傅里葉變換

dft=cv2.dft(np.float32(img),flags=cv2.DFT_COMPLEX_OUTPUT)

dft_shift=np.fft.fftshift(dft)

#計(jì)算幅度譜

magnitude_spectrum=20*np.log(cv2.magnitude(dft_shift[:,:,0],dft_shift[:,:,1]))

#顯示原圖和幅度譜

plt.subplot(121),plt.imshow(img,cmap='gray')

plt.title('InputImage'),plt.xticks([]),plt.yticks([])

plt.subplot(122),plt.imshow(magnitude_spectrum,cmap='gray')

plt.title('MagnitudeSpectrum'),plt.xticks([]),plt.yticks([])

plt.show()這段代碼首先讀取一個(gè)灰度圖像,然后應(yīng)用傅里葉變換,并計(jì)算變換后的幅度譜,最后使用matplotlib庫(kù)顯示原圖和幅度譜。4.22低通濾波器與高通濾波器在頻率域中,低通濾波器和高通濾波器是兩種常用的濾波器,它們分別用于去除高頻噪聲和增強(qiáng)圖像邊緣。4.2.1低通濾波器低通濾波器通過(guò)抑制高頻分量來(lái)平滑圖像,減少噪聲。理想低通濾波器(IdealLow-PassFilter,ILPF)和高斯低通濾波器(GaussianLow-PassFilter,GLPF)是兩種常見(jiàn)的低通濾波器。4.2.2高通濾波器高通濾波器通過(guò)抑制低頻分量來(lái)增強(qiáng)圖像邊緣,提高圖像的對(duì)比度。理想高通濾波器(IdealHigh-PassFilter,IHPF)和高斯高通濾波器(GaussianHigh-PassFilter,GHPF)是兩種常見(jiàn)的高通濾波器。4.2.3Python代碼示例importnumpyasnp

importcv2

frommatplotlibimportpyplotasplt

#讀取圖像

img=cv2.imread('example.jpg',0)

#應(yīng)用傅里葉變換

dft=cv2.dft(np.float32(img),flags=cv2.DFT_COMPLEX_OUTPUT)

dft_shift=np.fft.fftshift(dft)

#創(chuàng)建低通濾波器

rows,cols=img.shape

crow,ccol=rows//2,cols//2

mask=np.zeros((rows,cols,2),np.uint8)

mask[crow-30:crow+30,ccol-30:ccol+30]=1

#應(yīng)用濾波器

fshift=dft_shift*mask

f_ishift=np.fft.ifftshift(fshift)

img_back=cv2.idft(f_ishift)

img_back=cv2.magnitude(img_back[:,:,0],img_back[:,:,1])

#顯示原圖和濾波后的圖像

plt.subplot(121),plt.imshow(img,cmap='gray')

plt.title('InputImage'),plt.xticks([]),plt.yticks([])

plt.subplot(122),plt.imshow(img_back,cmap='gray')

plt.title('LowPassFilteredImage'),plt.xticks([]),plt.yticks([])

plt.show()這段代碼首先讀取一個(gè)灰度圖像,然后應(yīng)用傅里葉變換,創(chuàng)建一個(gè)低通濾波器,應(yīng)用濾波器后,再進(jìn)行傅里葉逆變換,最后顯示原圖和濾波后的圖像。4.33頻率域中的圖像增強(qiáng)應(yīng)用頻率域中的圖像增強(qiáng)技術(shù)主要通過(guò)設(shè)計(jì)不同的濾波器來(lái)實(shí)現(xiàn)。例如,使用低通濾波器可以去除圖像中的高頻噪聲,使用高通濾波器可以增強(qiáng)圖像的邊緣和細(xì)節(jié)。4.3.1Python代碼示例importnumpyasnp

importcv2

frommatplotlibimportpyplotasplt

#讀取圖像

img=cv2.imread('example.jpg',0)

#應(yīng)用傅里葉變換

dft=cv2.dft(np.float32(img),flags=cv2.DFT_COMPLEX_OUTPUT)

dft_shift=np.fft.fftshift(dft)

#創(chuàng)建高通濾波器

rows,cols=img.shape

crow,ccol=rows//2,cols//2

mask=np.ones((rows,cols,2),np.uint8)

r=30

center=[crow,ccol]

x,y=np.ogrid[:rows,:cols]

mask_area=(x-center[0])**2+(y-center[1])**2<=r*r

mask[mask_area]=0

#應(yīng)用濾波器

fshift=dft_shift*mask

f_ishift=np.fft.ifftshift(fshift)

img_back=cv2.idft(f_ishift)

img_back=cv2.magnitude(img_back[:,:,0],img_back[:,:,1])

#顯示原圖和濾波后的圖像

plt.subplot(121),plt.imshow(img,cmap='gray')

plt.title('InputImage'),plt.xticks([]),plt.yticks([])

plt.subplot(122),plt.imshow(img_back,cmap='gray')

plt.title('HighPassFilteredImage'),plt.xticks([]),plt.yticks([])

plt.show()這段代碼首先讀取一個(gè)灰度圖像,然后應(yīng)用傅里葉變換,創(chuàng)建一個(gè)高通濾波器,應(yīng)用濾波器后,再進(jìn)行傅里葉逆變換,最后顯示原圖和濾波后的圖像。通過(guò)對(duì)比原圖和濾波后的圖像,我們可以看到高通濾波器增強(qiáng)了圖像的邊緣和細(xì)節(jié)。5基于深度學(xué)習(xí)的圖像增強(qiáng)方法5.1卷積神經(jīng)網(wǎng)絡(luò)在圖像增強(qiáng)中的應(yīng)用5.1.1原理卷積神經(jīng)網(wǎng)絡(luò)(ConvolutionalNeuralNetwork,CNN)是一種深度學(xué)習(xí)模型,特別適用于處理具有網(wǎng)格結(jié)構(gòu)的數(shù)據(jù),如圖像。在圖像增強(qiáng)中,CNN可以學(xué)習(xí)到圖像的局部特征,并通過(guò)多層的卷積和池化操作,對(duì)圖像進(jìn)行去噪、銳化、對(duì)比度增強(qiáng)等處理。CNN的訓(xùn)練通常需要大量的圖像數(shù)據(jù)和相應(yīng)的增強(qiáng)目標(biāo),通過(guò)反向傳播算法調(diào)整網(wǎng)絡(luò)參數(shù),以最小化預(yù)測(cè)增強(qiáng)結(jié)果與實(shí)際目標(biāo)之間的差異。5.1.2示例代碼以下是一個(gè)使用Keras庫(kù)實(shí)現(xiàn)的簡(jiǎn)單CNN圖像增強(qiáng)模型示例,該模型用于圖像去噪:importnumpyasnp

fromkeras.modelsimportModel

fromkeras.layersimportInput,Conv2D,MaxPooling2D,UpSampling2D

fromkeras.datasetsimportmnist

fromkeras.utilsimportnormalize

#加載MNIST數(shù)據(jù)集

(x_train,_),(x_test,_)=mnist.load_data()

#數(shù)據(jù)預(yù)處理

x_train=x_train.astype('float32')/255.

x_test=x_test.astype('float32')/255.

x_train=np.reshape(x_train,(len(x_train),28,28,1))

x_test=np.reshape(x_test,(len(x_test),28,28,1))

#添加高斯噪聲

noise_factor=0.5

x_train_noisy=x_train+noise_factor*np.random.normal(loc=0.0,scale=1.0,size=x_train.shape)

x_test_noisy=x_test+noise_factor*np.random.normal(loc=0.0,scale=1.0,size=x_test.shape)

x_train_noisy=np.clip(x_train_noisy,0.,1.)

x_test_noisy=np.clip(x_test_noisy,0.,1.)

#構(gòu)建CNN模型

input_img=Input(shape=(28,28,1))

x=Conv2D(32,(3,3),activation='relu',padding='same')(input_img)

x=MaxPooling2D((2,2),padding='same')(x)

x=Conv2D(32,(3,3),activation='relu',padding='same')(x)

encoded=MaxPooling2D((2,2),padding='same')(x)

x=Conv2D(32,(3,3),activation='relu',padding='same')(encoded)

x=UpSampling2D((2,2))(x)

x=Conv2D(32,(3,3),activation='relu',padding='same')(x)

x=UpSampling2D((2,2))(x)

decoded=Conv2D(1,(3,3),activation='sigmoid',padding='same')(x)

autoencoder=Model(input_img,decoded)

pile(optimizer='adam',loss='binary_crossentropy')

#訓(xùn)練模型

autoencoder.fit(x_train_noisy,x_train,

epochs=50,

batch_size=128,

shuffle=True,

validation_data=(x_test_noisy,x_test))

#測(cè)試模型

decoded_imgs=autoencoder.predict(x_test_noisy)5.1.3描述此代碼示例展示了如何使用CNN構(gòu)建一個(gè)自動(dòng)編碼器(Autoencoder)模型,用于圖像去噪。首先,我們加載了MNIST數(shù)據(jù)集,并對(duì)圖像進(jìn)行了預(yù)處理,包括歸一化和重塑。然后,我們向圖像添加了高斯噪聲,以模擬實(shí)際應(yīng)用中可能遇到的噪聲情況。接下來(lái),構(gòu)建了一個(gè)包含卷積層、池化層和上采樣層的CNN模型,用于學(xué)習(xí)圖像的特征并重建去噪后的圖像。最后,我們訓(xùn)練并測(cè)試了模型,以評(píng)估其去噪性能。5.2生成對(duì)抗網(wǎng)絡(luò)(GAN)用于圖像增強(qiáng)5.2.1原理生成對(duì)抗網(wǎng)絡(luò)(GenerativeAdversarialNetwork,GAN)由兩個(gè)部分組成:生成器(Generator)和判別器(Discriminator)。生成器的目標(biāo)是生成與真實(shí)數(shù)據(jù)相似的樣本,而判別器的目標(biāo)是區(qū)分生成器生成的樣本和真實(shí)數(shù)據(jù)。在圖像增強(qiáng)中,GAN可以用于生成更高質(zhì)量的圖像,如超分辨率重建、色彩增強(qiáng)等。通過(guò)對(duì)抗訓(xùn)練,生成器逐漸學(xué)習(xí)到如何生成更逼真的圖像,從而實(shí)現(xiàn)圖像增強(qiáng)。5.2.2示例代碼以下是一個(gè)使用PyTorch庫(kù)實(shí)現(xiàn)的簡(jiǎn)單GAN模型示例,用于圖像超分辨率重建:importtorch

importtorch.nnasnn

fromtorch.autogradimportVariable

fromtorchvisionimporttransforms,datasets

fromtorchvision.utilsimportsave_image

#定義生成器

classGenerator(nn.Module):

def__init__(self):

super(Generator,self).__init__()

self.conv1=nn.ConvTranspose2d(100,256,4,1,0,bias=False)

self.bn1=nn.BatchNorm2d(256)

self.conv2=nn.ConvTranspose2d(256,128,4,2,1,bias=False)

self.bn2=nn.BatchNorm2d(128)

self.conv3=nn.ConvTranspose2d(128,64,4,2,1,bias=False)

self.bn3=nn.BatchNorm2d(64)

self.conv4=nn.ConvTranspose2d(64,1,4,2,1,bias=False)

self.tanh=nn.Tanh()

defforward(self,input):

x=self.conv1(input)

x=self.bn1(x)

x=nn.functional.relu(x)

x=self.conv2(x)

x=self.bn2(x)

x=nn.functional.relu(x)

x=self.conv3(x)

x=self.bn3(x)

x=nn.functional.relu(x)

x=self.conv4(x)

x=self.tanh(x)

returnx

#定義判別器

classDiscriminator(nn.Module):

def__init__(self):

super(Discriminator,self).__init__()

self.conv1=nn.Conv2d(1,64,4,2,1,bias=False)

self.conv2=nn.Conv2d(64,128,4,2,1,bias=False)

self.bn2=nn.BatchNorm2d(128)

self.conv3=nn.Conv2d(128,256,4,2,1,bias=False)

self.bn3=nn.BatchNorm2d(256)

self.conv4=nn.Conv2d(256,1,4,1,0,bias=False)

self.sigmoid=nn.Sigmoid()

defforward(self,input):

x=self.conv1(input)

x=nn.functional.leaky_relu(x,0.2)

x=self.conv2(x)

x=self.bn2(x)

x=nn.functional.leaky_relu(x,0.2)

x=self.conv3(x)

x=self.bn3(x)

x=nn.functional.leaky_relu(x,0.2)

x=self.conv4(x)

x=self.sigmoid(x)

returnx

#加載數(shù)據(jù)集

transform=transforms.Compose([transforms.Resize(64),transforms.ToTensor()])

dataset=datasets.ImageFolder(root='path_to_dataset',transform=transform)

dataloader=torch.utils.data.DataLoader(dataset,batch_size=64,shuffle=True)

#初始化模型

G=Generator()

D=Discriminator()

#定義損失函數(shù)和優(yōu)化器

criterion=nn.BCELoss()

optimizerD=torch.optim.Adam(D.parameters(),lr=0.0002,betas=(0.5,0.999))

optimizerG=torch.optim.Adam(G.parameters(),lr=0.0002,betas=(0.5,0.999))

#訓(xùn)練模型

forepochinrange(100):

fori,(real_images,_)inenumerate(dataloader):

#訓(xùn)練判別器

D.zero_grad()

real_images=Variable(real_images)

real_labels=Variable(torch.ones(real_images.size(0)))

fake_labels=Variable(torch.zeros(real_images.size(0)))

real_outputs=D(real_images)

real_loss=criterion(real_outputs,real_labels)

real_score=real_outputs

noise=Variable(torch.randn(real_images.size(0),100,1,1))

fake_images=G(noise)

fake_outputs=D(fake_images)

fake_loss=criterion(fake_outputs,fake_labels)

fake_score=fake_outputs

d_loss=real_loss+fake_loss

d_loss.backward()

optimizerD.step()

#訓(xùn)練生成器

G.zero_grad()

noise=Variable(torch.randn(real_images.size(0),100,1,1))

fake_images=G(noise)

output=D(fake_images)

g_loss=criterion(output,real_labels)

g_loss.backward()

optimizerG.step()

if(i+1)%100==0:

print(f'Epoch[{epoch+1}/{100}],d_loss:{d_loss.item()},g_loss:{g_loss.item()},D(x):{real_score.mean().item()},D(G(z)):{fake_score.mean().item()}')

#保存生成的圖像

if(epoch+1)==100:

save_image(fake_images.data[:25],'generated_images.png',nrow=5,normalize=True)5.2.3描述此代碼示例展示了如何使用GAN進(jìn)行圖像超分辨率重建。我們首先定義了生成器和判別器的網(wǎng)絡(luò)結(jié)構(gòu),生成器用于生成高分辨率圖像,而判別器用于判斷圖像的真實(shí)性。然后,我們加載了圖像數(shù)據(jù)集,并對(duì)圖像進(jìn)行了預(yù)處理,包括調(diào)整大小和轉(zhuǎn)換為張量。接下來(lái),我們初始化了模型和優(yōu)化器,并定義了損失函數(shù)。在訓(xùn)練過(guò)程中,我們交替訓(xùn)練生成器和判別器,以實(shí)現(xiàn)對(duì)抗訓(xùn)練。最后,我們保存了生成的高分辨率圖像,以評(píng)估模型的性能。5.3超分辨率重建技術(shù)5.3.1原理超分辨率重建(Super-ResolutionReconstruction,SRR)是一種將低分辨率圖像轉(zhuǎn)換為高分辨率圖像的技術(shù)。在深度學(xué)習(xí)中,SRR通常通過(guò)訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò)模型來(lái)實(shí)現(xiàn),該模型學(xué)習(xí)低分辨率圖像與高分辨率圖像之間的映射關(guān)系。SRR技術(shù)可以應(yīng)用于各種場(chǎng)景,如視頻監(jiān)控、衛(wèi)星圖像處理等,以提高圖像的細(xì)節(jié)和清晰度。5.3.2示例代碼以下是一個(gè)使用TensorFlow庫(kù)實(shí)現(xiàn)的超分辨率重建模型示例,使用了深度殘差網(wǎng)絡(luò)(DeepResidualNetwork,ResNet)結(jié)構(gòu):importtensorflowastf

fromtensorflow.keras.layersimportInput,Conv2D,UpSampling2D,Lambda

fromtensorflow.keras.modelsimportModel

fromtensorflow.keras.optimizersimportAdam

fromtensorflow.keras.lossesimportMeanSquaredError

fromtensorflow.keras.datasetsimportcifar10

importnumpyasnp

#加載CIFAR-10數(shù)據(jù)集

(x_train,_),(x_test,_)=cifar10.load_data()

#數(shù)據(jù)預(yù)處理

x_train=x_train.astype('float32')/255.

x_test=x_test.astype('float32')/255.

x_train=np.reshape(x_train,(len(x_train),32,32,3))

x_test=np.reshape(x_test,(len(x_test),32,32,3))

#定義超分辨率模型

defsr_resnet(input_shape,scale):

input_img=Input(shape=input_shape)

x=Conv2D(64,(3,3),activation='relu',padding='same')(input_img)

x=Conv2D(64,(3,3),activation='relu',padding='same')(x)

x=UpSampling2D(size=(scale,scale))(x)

x=Conv2D(3,(3,3),activation='relu',padding='same')(x)

model=Model(input_img,x)

returnmodel

#構(gòu)建模型

model=sr_resnet((32,32,3),2)

#編譯模型

pile(optimizer=Adam(learning_rate=0.001),loss=MeanSquaredError())

#訓(xùn)練模型

model.fit(x_train,x_train,

epochs=100,

batch_size=128,

shuffle=True,

validation_data=(x_test,x_test))

#測(cè)試模型

x_test_lr=tf.image.resize(x_test,(16,16))

x_test_hr=model.predict(x_test_lr)5.3.3描述此代碼示例展示了如何使用深度殘差網(wǎng)絡(luò)(ResNet)結(jié)構(gòu)構(gòu)建一個(gè)超分辨率重建模型。我們首先加載了CIFAR-10數(shù)據(jù)集,并對(duì)圖像進(jìn)行了預(yù)處理。然后,定義了一個(gè)包含卷積層、上采樣層和殘差連接的ResNet模型,用于學(xué)習(xí)低分辨率圖像到高分辨率圖像的映射。接下來(lái),我們編譯并訓(xùn)練了模型,以評(píng)估其超分辨率重建性能。最后,我們測(cè)試了模型,通過(guò)將測(cè)試圖像縮放到更低的分辨率,然后使用模型進(jìn)行重建,以觀察重建效果。5.4深度學(xué)習(xí)圖像增強(qiáng)的實(shí)際案例分析5.4.1案例描述在實(shí)際應(yīng)用中,深度學(xué)習(xí)圖像增強(qiáng)技術(shù)被廣泛應(yīng)用于各種場(chǎng)景,如醫(yī)學(xué)圖像分析、自動(dòng)駕駛、衛(wèi)星圖像處理等。以下是一個(gè)使用深度學(xué)習(xí)進(jìn)行醫(yī)學(xué)圖像增強(qiáng)的案例分析,具體是使用U-Net模型進(jìn)行圖像分割和增強(qiáng)。5.4.2示例代碼以下是一個(gè)使用PyTorch庫(kù)實(shí)現(xiàn)的U-Net模型示例,用于醫(yī)學(xué)圖像分割和增強(qiáng):importtorch

importtorch.nnasnn

fromtorch.utils.dataimportDataLoader

fromtorchvisionimporttransforms,datasets

importnumpyasnp

fromskimageimportio

fromskimage.transformimportresize

#定義U-Net模型

classUNet(nn.Module):

def__init__(self):

super(UNet,self).__init__()

self.conv1=nn.Sequential(

nn.Conv2d(1,64,3,padding=1),

nn.ReLU(inplace=True),

nn.Conv2d(64,64,3,padding=1),

nn.ReLU(inplace=True),

nn.MaxPool2d(2,stride=2)

)

self.conv2=nn.Sequential(

nn.Conv2d(64,128,3,padding=1),

nn.ReLU(inplace=True),

nn.Conv2d(128,128,3,padding=1),

nn.ReLU(inplace=True),

nn.MaxPool2d(2,stride=2)

)

self.conv3=nn.Sequential(

nn.Conv2d(128,256,3,padding=1),

nn.ReLU(inplace=True),

nn.Conv2d(256,256,3,padding=1),

nn.ReLU(inplace=True),

nn.MaxPool2d(2,stride=2)

)

self.conv4=nn.Sequential(

nn.Conv2d(256,512,3,padding=1),

nn.ReLU(inplace=True),

nn.Conv2d(512,512,3,padding=1),

nn.ReLU(inplace=True),

nn.MaxPool2d(2,stride=2)

)

self.conv5=nn.Sequential(

nn.Conv2d(512,1024,3,padding=1),

nn.ReLU(inplace=True),

nn.Conv2d(1024,1024,3,padding=1),

nn.ReLU(inplace=True)

)

self.upconv6=nn.ConvTranspose2d(1024,512,2,stride=2)

self.conv6=nn.Sequential(

nn.Conv2d(1024,512,3,padding=1),

nn.ReLU(inplace=True),

nn.Conv2d(512,512,3,padding=1),

nn.ReLU(inplace=True)

)

self.upconv7=nn.ConvTranspose2d(512,256,2,stride=2)

self.conv7=nn.Sequential(

nn.Conv2d(512,256,3,padding=1),

nn.ReLU(inplace=True),

nn.Conv2d(256,256,3,padding=1),

nn.ReLU(inplace=True)

)

self.upconv8=nn.ConvTranspose2d(256,128,2,stride=2)

self.conv8=nn.Sequential(

nn.Conv2d(256,128,3,padding=1),

nn.ReLU(inplace=True),

nn.Conv2d(128,128,3,padding=1),

nn.ReLU(inplace=True)

)

self.upconv9=nn.ConvTranspose2d(128,64,2,stride=2)

self.conv9=nn.Sequential(

nn.Conv2d(128,64,3,padding=1),

nn.ReLU(inplace=True),

nn.Conv2d(64,64,3,padding=1),

nn.ReLU(inplace=True)

)

self.conv10=nn.Conv2d(64,1,1)

defforward(self,x):

conv1=self.conv1(x)

conv2=self.conv2(conv1)

conv3=self.conv3(conv2)

conv4=self.conv4(conv3)

conv5=self.conv5(conv4)

upconv6=self.upconv6(conv5)

upconv6=torch.cat([upconv6,conv4],dim=1)

conv6=self.conv6(upconv6)

upconv7=self.upconv7(conv6)

upconv7=torch.cat([upconv7,conv3],dim=1)

conv7=self.conv7(upconv7)

upconv8=self.upconv8(conv7)

upconv8=torch.cat([upconv8,conv2],dim=1)

conv8=self.conv8(upconv8

#圖像增強(qiáng)技術(shù)的評(píng)估與選擇

##6.1圖像質(zhì)量評(píng)估指標(biāo)

在計(jì)算機(jī)視覺(jué)領(lǐng)域,圖像增強(qiáng)技術(shù)的評(píng)估至關(guān)重要,它確保了增強(qiáng)后的圖像能夠更好地服務(wù)于后續(xù)的圖像處理和分析任務(wù)。圖像質(zhì)量評(píng)估指標(biāo)(ImageQualityAssessment,

溫馨提示

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