




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第python之?dāng)?shù)字圖像處理方式目錄基本概念圖像增強(qiáng)整體代碼線性變換分段線性變換對數(shù)變換冪律變換直方圖圖像濾波平滑圖像銳化圖像總結(jié)
基本概念
數(shù)字圖像定義
對于一幅圖像,我們可以將其放入坐標(biāo)系中,這里取圖像左上定點為坐標(biāo)原點,x軸向右,和笛卡爾坐標(biāo)系x軸相同;y軸向下,和笛卡爾坐標(biāo)系y軸相反。
這樣我們可將一幅圖像定義為一個二維函數(shù)f(x,y),圖像中的每個像素就可以用(x,y)坐標(biāo)表示,而在任何一對空間坐標(biāo)(x,y)處的幅值f稱為圖像在該點的強(qiáng)度或灰度,當(dāng)x,y和灰度值f是有限離散數(shù)值時,便稱該圖像為數(shù)字圖像
注:f的取值為區(qū)間[Lmin,Lmax],也將其稱為圖像的灰度級,實際情況下常常令該區(qū)間為[0,L-1],其中f=0時為黑色,f=1時在灰度級中為白色,所有中間值是從黑色到白色之間變化的灰度色調(diào),而圖像最高和最低灰度級之間的灰度差便為對比度
注:圖像亮度、對比度、飽和度和銳化之間并不是彼此獨立的,改變其中一個特征可能會同時引起圖像其他特征的變化,至于變化的程度取決于圖像本身的特性。
圖像亮度通俗理解便是圖像的明暗程度,如果灰度值在[0,255]之間,則f值越接近0亮度越低,f值越接近255亮度越高。
指的是圖像暗和亮的落差值,即圖像最大灰度級和最小灰度級之間的差值
飽和度指的是圖像顏色種類的多少,上面提到圖像的灰度級是[Lmin,Lmax],則在Lmin、Lmax的中間值越多,便代表圖像的顏色種類多,飽和度也就更高,外觀上看起來圖像會更鮮艷,調(diào)整飽和度可以修正過度曝光或者未充分曝光的圖片。使圖像看上去更加自然
圖像銳化是補(bǔ)償圖像的輪廓,增強(qiáng)圖像的邊緣及灰度跳變的部分,使圖像變得清晰。圖像銳化在實際圖像處理中經(jīng)常用到,因為在做圖像平滑,圖像濾波處理的時候經(jīng)過會把丟失圖像的邊緣信息,通過圖像銳化便能夠增強(qiáng)突出圖像的邊緣、輪廓
就是每英寸圖像內(nèi)有多少個像素點
圖像增強(qiáng)
概述:主要分為空間域增強(qiáng)和頻率域增強(qiáng),本文主要介紹空間域增強(qiáng)方法:也就是直接對圖片像素進(jìn)行處理。
整體代碼
importmath
importcv2
importnumpyasnp
importmatplotlib.pyplotasplt
plt.rcParams['font.sans-serif']=['FangSong']#設(shè)置字體以便正確顯示漢字
plt.rcParams['axes.unicode_minus']=False#正確顯示連字符
MEDTH_ID=8
#計算圖片清晰度
defgetImageVar(img):
img2gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)#轉(zhuǎn)化成灰度圖
#對圖片用3x3拉普拉斯算子做卷積得到邊緣計算出方差,并最后返回。
#函數(shù)求完導(dǎo)數(shù)后會有負(fù)值,還有會大于255的值。而原圖像是uint8,即8位無符號數(shù),所以建立的圖像位數(shù)不夠,會有截斷。因此要使用64位有符號的數(shù)據(jù)類型,即cv2.CV_64F。
#再用var函數(shù)求方差
imageVar=cv2.Laplacian(img2gray,cv2.CV_64F).var()
returnimageVar
#轉(zhuǎn)接器
defhandle(idx,img):
ifidx==1:returnhandle_specific(img,linear)#線性變化
ifidx==2:returnhandle_specific(img,linear_up)#分段線性變化
ifidx==3:returnhandle_specific(img,Logarithmic)#對數(shù)變換
ifidx==4:returnhandle_specific(img,power)#冪指變換
ifidx==5:returnhandle_specific(img,cv2.equalizeHist)#直方圖均衡化
ifidx==6:returnhandle_specific(img,auto_equalizeHist)#自適應(yīng)直方圖均衡化
ifidx==7:returnhandle_specific(img,laplacian)#laplacian算子圖像銳化
ifidx==8:returnhandle_specific(img,non_sharpening)#非銳化掩蔽
#處理函數(shù)
defhandle_specific(img,func):
img_list=[func(i)foriincv2.split(img)]
result=cv2.merge((img_list[0],img_list[1],img_list[2]))
returnresult
#線性變化
deflinear(img):
a,b=1.5,0
foriinrange(img.shape[0]):
forjinrange(img.shape[1]):
ifimg[i][j]*a+b255:
img[i][j]=255
else:
img[i][j]=img[i][j]*a+b
returnimg
#分段線性變換-線性對比度拉伸,增強(qiáng)感興趣區(qū)域
deflinear_up(img):
#灰度值的最大最小值
r_min,r_max=255,0
foriinrange(img.shape[0]):
forjinrange(img.shape[1]):
ifimg[i,j]r_max:
r_max=img[i,j]
ifimg[i,j]r_min:
r_min=img[i,j]
r1,s1=r_min,0
r2,s2=r_max,255
k=(s2-s1)/(r2-r1)
foriinrange(img.shape[0]):
forjinrange(img.shape[1]):
ifr1=img[i,j]=r2:
img[i,j]=k*(img[i,j]-r1)
returnimg
#對數(shù)變換
defLogarithmic(img):
foriinrange(img.shape[0]):
forjinrange(img.shape[1]):
img[i][j]=math.log(1+img[i][j])
cv2.normalize(img,img,0,255,cv2.NORM_MINMAX)
img=cv2.convertScaleAbs(img)
returnimg
#對數(shù)變換
defpower(img):
foriinrange(img.shape[0]):
forjinrange(img.shape[1]):
img[i][j]=math.pow(img[i][j],1.2)
cv2.normalize(img,img,0,255,cv2.NORM_MINMAX)
img=cv2.convertScaleAbs(img)
returnimg
#自適應(yīng)的直方圖均衡化-非線性的對比度拉伸,增強(qiáng)感興趣區(qū)域
defauto_equalizeHist(img):
clahe=cv2.createCLAHE(clipLimit=2.0,tileGridSize=(8,8))
img=clahe.apply(img)
returnimg
deflaplacian(img):
kernel=np.array([[0,1,0],[1,-4,1],[0,1,0]])#laplacian卷積核的一個模板
lapkernel_img=cv2.filter2D(img,-1,kernel)#做卷積
img=img-lapkernel_img
returnimg
defnon_sharpening(img):
blur_img=cv2.blur(img,(5,5))
mask_img=img-blur_img
img=img+mask_img
returnimg
img=cv2.imread(filename='img/CB.61.20251203152034_crop_0.jpg',flags=1)
result=handle(MEDTH_ID,img)
print('原圖的清晰度:',getImageVar(img))
print('處理之后的清晰度',getImageVar(result))
fig,axes=plt.subplots(nrows=1,ncols=2,figsize=(10,8),dpi=100)
axes[0].imshow(img)
axes[0].set_title("原圖")
axes[1].imshow(result)
axes[1].set_title("處理之后的圖片")
plt.show()
線性變換
線性變換主要可以對圖像的對比度和亮度進(jìn)行調(diào)整(但是比較暴力),線性變換公式如下:f(x,y)=f(x,y)a+bf(x,y)=f(x,y)*a+bf(x,y)=f(x,y)a+b,參數(shù)a影響圖像的對比度,參數(shù)b影響圖像的亮度,具體分為可分為以下幾種情況:
a1:增強(qiáng)圖像的對比度,圖像看起來更加清晰a1:減小了圖像的對比度,圖像看起來變暗,b0:增加圖像的亮度,圖像變亮,b0:減少圖像的亮度,圖像變暗a=-1andb=255:圖像翻轉(zhuǎn)
a=1.5,b=0的結(jié)果:
分段線性變換
對比度拉伸
將原圖的灰度范圍限制為自定義范圍,增強(qiáng)感興趣區(qū)域。如將原來的[lmin,lmax][l_{min},l_{max}][lmin?,lmax?]拉到[0,255][0,255][0,255]
得到二值圖,按照門限將灰度值變?yōu)?或者255
灰度級分層
為了在數(shù)字圖像中突出我們感興趣的灰度級區(qū)域[A,B],在實際情況下可以有兩種處理方式。
突出灰度范圍在[A,B]的區(qū)域,將其他區(qū)域灰度級降低到一個更低的級別突出灰度范圍在[A,B]的區(qū)域,其他區(qū)域保持原灰度級不變
對比度拉伸結(jié)果:
對數(shù)變換
對數(shù)變換將圖像的低灰度值部分?jǐn)U展,將其高灰度值部分壓縮,以達(dá)到強(qiáng)調(diào)圖像低灰度部分的目的;同時可以很好的壓縮像素值變化較大的圖像的動態(tài)范圍,目的是突出我們需要的細(xì)節(jié)。
反對數(shù)變換則與對數(shù)函數(shù)不同的是,強(qiáng)調(diào)的是圖像的高灰度部分。
結(jié)果:
冪律變換
冪律變換主要用于圖像的校正,對漂白的圖片或者是過黑的圖片進(jìn)行修正,根據(jù)的大小,主要可分為一下兩種情況:
1:處理漂白的圖片,進(jìn)行灰度級壓縮1:處理過黑的圖片,對比度增強(qiáng),使得細(xì)節(jié)看的更加清楚
直方圖
對比度較低的圖像適合使用直方圖均衡化方法來增強(qiáng)圖像細(xì)節(jié)
直方圖均衡化結(jié)果:
自適應(yīng)直方圖均衡化結(jié)果:
圖像濾波
平滑圖像
通過模糊圖像達(dá)到圖像降噪的目的,但同時存在一個問題就是會使得圖像的邊緣被淡化。
銳化圖像
主要目的是突出灰度的過渡部分,即突出圖像的邊緣(銳化空間濾波)
圖像銳化濾波中圖像平滑是一個積分的過程,圖像銳化便是通過圖像微分增強(qiáng)邊緣和其他突變,削弱灰度變換緩慢的區(qū)域。
laplacian算子
其強(qiáng)調(diào)的是圖像中灰度的變換,忽視圖像灰度變換緩慢的區(qū)域。
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 火鍋店門店轉(zhuǎn)讓合同協(xié)議
- 城市蔬菜訂購協(xié)議書
- 隔斷圍欄轉(zhuǎn)讓協(xié)議書
- 餐飲勞動外包協(xié)議書
- 長期供銷食品合同協(xié)議
- 粉條產(chǎn)品購銷合同協(xié)議
- 節(jié)能改造工程拆遷補(bǔ)償與補(bǔ)償金管理協(xié)議
- 法人變更合同協(xié)議書模板
- 違章雙方協(xié)議書
- 橋梁檢測維護(hù)協(xié)議書
- 鐵磁材料漏磁信號高效計算與缺陷精準(zhǔn)反演的關(guān)鍵技術(shù)探索
- 產(chǎn)業(yè)園 可行性研究報告
- 星河季度工作總結(jié)
- 海外不動產(chǎn)買賣中介合同范本
- DB44-T 2605-2025 生活垃圾焚燒發(fā)電設(shè)施能源消耗計算與限額
- 2025江蘇中考:化學(xué)必背知識點
- 2024-2025學(xué)年度廣東省廣州市南沙區(qū)中考英語一模試卷(含解析)
- 高標(biāo)準(zhǔn)農(nóng)田項目規(guī)劃設(shè)計方案
- 混凝土預(yù)制構(gòu)件項目可行性研究報告
- 2025年公牛插座市場調(diào)研報告
- 無人機(jī)拍攝培訓(xùn)課件
評論
0/150
提交評論