




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第Python圖像運(yùn)算之圖像灰度直方圖對比詳解目錄一.灰度增強(qiáng)直方圖對比二.灰度減弱直方圖對比三.圖像反色直方圖對比四.圖像對數(shù)變換直方圖對比五.圖像閾值化處理直方圖對比六.總結(jié)
一.灰度增強(qiáng)直方圖對比
圖像灰度上移變換使用的表達(dá)式為:
DB=DA+50
該算法將實現(xiàn)圖像灰度值的上移,從而提升圖像的亮度,結(jié)合直方圖對比的實現(xiàn)代碼如下所示。
#-*-coding:utf-8-*-
#By:Eastmount
importcv2
importnumpyasnp
importmatplotlib.pyplotasplt
#讀取圖像
img=cv2.imread('lena-hd.png')
#圖像灰度轉(zhuǎn)換
grayImage=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
#獲取圖像高度和寬度
height=grayImage.shape[0]
width=grayImage.shape[1]
result=np.zeros((height,width),np.uint8)
#圖像灰度上移變換DB=DA+50
foriinrange(height):
forjinrange(width):
if(int(grayImage[i,j]+50)255):
gray=255
else:
gray=int(grayImage[i,j]+50)
result[i,j]=np.uint8(gray)
#計算原圖的直方圖
hist=cv2.calcHist([img],[0],None,[256],[0,255])
#計算灰度變換的直方圖
hist_res=cv2.calcHist([result],[0],None,[256],[0,255])
#原始圖像
plt.figure(figsize=(8,6))
plt.subplot(221),plt.imshow(img,'gray'),plt.title("(a)"),plt.axis('off')
#繪制掩膜
plt.subplot(222),plt.plot(hist),plt.title("(b)"),plt.xlabel("x"),plt.ylabel("y")
#繪制掩膜設(shè)置后的圖像
plt.subplot(223),plt.imshow(result,'gray'),plt.title("(c)"),plt.axis('off')
#繪制直方圖
plt.subplot(224),plt.plot(hist_res),plt.title("(d)"),plt.xlabel("x"),plt.ylabel("y")
plt.show()
其運(yùn)行結(jié)果如圖1所示,其中(a)表示原始圖像,(b)表示對應(yīng)的灰度直方圖,(c)表示灰度上移后的圖像,(d)是對應(yīng)的直方圖。對比發(fā)現(xiàn),圖1(d)比圖1(b)的灰度級整體高了50,曲線整體向右平移了50個單位。
二.灰度減弱直方圖對比
該算法將減弱圖像的對比度,使用的表達(dá)式為:
DB=DA0.8
Python結(jié)合直方圖實現(xiàn)灰度對比度減弱的代碼如下所示。
#-*-coding:utf-8-*-
#By:Eastmount
importcv2
importnumpyasnp
importmatplotlib.pyplotasplt
#讀取圖像
img=cv2.imread('lena-hd.png')
#圖像灰度轉(zhuǎn)換
grayImage=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
#獲取圖像高度和寬度
height=grayImage.shape[0]
width=grayImage.shape[1]
result=np.zeros((height,width),np.uint8)
#圖像對比度減弱變換DB=DA×0.8
foriinrange(height):
forjinrange(width):
gray=int(grayImage[i,j]*0.8)
result[i,j]=np.uint8(gray)
#計算原圖的直方圖
hist=cv2.calcHist([img],[0],None,[256],[0,255])
#計算灰度變換的直方圖
hist_res=cv2.calcHist([result],[0],None,[256],[0,255])
#原始圖像
plt.figure(figsize=(8,6))
plt.subplot(221),plt.imshow(img,'gray'),plt.title("(a)"),plt.axis('off')
#繪制掩膜
plt.subplot(222),plt.plot(hist),plt.title("(b)"),plt.xlabel("x"),plt.ylabel("y")
#繪制掩膜設(shè)置后的圖像
plt.subplot(223),plt.imshow(result,'gray'),plt.title("(c)"),plt.axis('off')
#繪制直方圖
plt.subplot(224),plt.plot(hist_res),plt.title("(d)"),plt.xlabel("x"),plt.ylabel("y")
plt.show()
其運(yùn)行結(jié)果如圖2所示,其中(a)和(b)表示原始圖像和對應(yīng)的灰度直方圖,(c)和(d)表示灰度減弱或?qū)Ρ榷瓤s小的圖像及對應(yīng)的直方圖。圖2(d)比圖2(b)的灰度級整體縮小了0.8倍,繪制的曲線更加密集。
三.圖像反色直方圖對比
該算法將圖像的顏色反色,對原圖像的像素值進(jìn)行反轉(zhuǎn),即黑色變?yōu)榘咨?,白色變?yōu)楹谏?,使用的表達(dá)式為:
DB=255-DA
實現(xiàn)代碼如下所示。
#-*-coding:utf-8-*-
#By:Eastmount
importcv2
importnumpyasnp
importmatplotlib.pyplotasplt
#讀取圖像
img=cv2.imread('lena-hd.png')
#圖像灰度轉(zhuǎn)換
grayImage=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
#獲取圖像高度和寬度
height=grayImage.shape[0]
width=grayImage.shape[1]
result=np.zeros((height,width),np.uint8)
#圖像灰度反色變換DB=255-DA
foriinrange(height):
forjinrange(width):
gray=255-grayImage[i,j]
result[i,j]=np.uint8(gray)
#計算原圖的直方圖
hist=cv2.calcHist([img],[0],None,[256],[0,255])
#計算灰度變換的直方圖
hist_res=cv2.calcHist([result],[0],None,[256],[0,255])
#原始圖像
plt.figure(figsize=(8,6))
plt.subplot(221),plt.imshow(img,'gray'),plt.title("(a)"),plt.axis('off')
#繪制掩膜
plt.subplot(222),plt.plot(hist),plt.title("(b)"),plt.xlabel("x"),plt.ylabel("y")
#繪制掩膜設(shè)置后的圖像
plt.subplot(223),plt.imshow(result,'gray'),plt.title("(c)"),plt.axis('off')
#繪制直方圖
plt.subplot(224),plt.plot(hist_res),plt.title("(d)"),plt.xlabel("x"),plt.ylabel("y")
plt.show()
其運(yùn)行結(jié)果如圖3所示,其中(a)和(b)表示原始圖像和對應(yīng)的灰度直方圖,(c)和(d)表示灰度反色變換圖像及對應(yīng)的直方圖。圖3(d)與圖3(b)是反相對稱的,整個灰度值滿足DB=255-DA表達(dá)式。
四.圖像對數(shù)變換直方圖對比
該算法將增加低灰度區(qū)域的對比度,從而增強(qiáng)暗部的細(xì)節(jié),使用的表達(dá)式為:
下面代碼實現(xiàn)了圖像灰度的對數(shù)變換及直方圖對比。
#-*-coding:utf-8-*-
#By:Eastmount
importcv2
importnumpyasnp
importmatplotlib.pyplotasplt
#讀取圖像
img=cv2.imread('lena-hd.png')
#圖像灰度轉(zhuǎn)換
grayImage=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
#獲取圖像高度和寬度
height=grayImage.shape[0]
width=grayImage.shape[1]
result=np.zeros((height,width),np.uint8)
#圖像灰度對數(shù)變換
foriinrange(height):
forjinrange(width):
gray=42*np.log(1.0+grayImage[i,j])
result[i,j]=np.uint8(gray)
#計算原圖的直方圖
hist=cv2.calcHist([img],[0],None,[256],[0,255])
#計算灰度變換的直方圖
hist_res=cv2.calcHist([result],[0],None,[256],[0,255])
#原始圖像
plt.figure(figsize=(8,6))
plt.subplot(221),plt.imshow(img,'gray'),plt.title("(a)"),plt.axis('off')
#繪制原始圖像直方圖
plt.subplot(222),plt.plot(hist),plt.title("(b)"),plt.xlabel("x"),plt.ylabel("y")
#灰度變換后的圖像
plt.subplot(223),plt.imshow(result,'gray'),plt.title("(c)"),plt.axis('off')
#灰度變換圖像的直方圖
plt.subplot(224),plt.plot(hist_res),plt.title("(d)"),plt.xlabel("x"),plt.ylabel("y")
plt.show()
其運(yùn)行結(jié)果如圖4所示,其中(a)和(b)表示原始圖像和對應(yīng)的灰度直方圖,(c)和(d)表示灰度對數(shù)變換圖像及對應(yīng)的直方圖。
五.圖像閾值化處理直方圖對比
該算法原型為threshold(Gray,127,255,cv2.THRESH_BINARY),當(dāng)前像素點(diǎn)的灰度值大于thresh閾值時(如127),其像素點(diǎn)的灰度值設(shè)定為最大值(如9位灰度值最大為255);否則,像素點(diǎn)的灰度值設(shè)置為0。二進(jìn)制閾值化處理及直方圖對比的Python代碼如下所示。
#-*-coding:utf-8-*-
#By:Eastmount
importcv2
importnumpyasnp
importmatplotlib.pyplotasplt
#讀取圖像
img=cv2.imread('lena-hd.png')
#圖像灰度轉(zhuǎn)換
grayImage=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
#二進(jìn)制閾值化處理
r,result=cv2.threshold(grayImage,127,255,cv2.THRESH_BINARY)
#計算原圖的直方圖
hist=cv2.calcHist([img],[0],None,[256],[0,256])
#計算閾值化處理的直方圖
hist_res=cv2.calcHist([result],[0],None,[256],[0,256])
#原始圖像
plt.figure(figsize=(8,6))
plt.subplot(221),plt.imshow(img,'gray'),plt.title("(a)"),plt.axis('off')
#繪制原始圖像直方圖
plt.subplot(2
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中藥材改良品種的育種風(fēng)險評估與管理體系構(gòu)建考核試卷
- 體育場館夜間光影秀考核試卷
- 資金管理中的金融衍生品應(yīng)用與風(fēng)險管理考核試卷
- 團(tuán)隊風(fēng)險管理能力提升策略考核試卷
- 房地產(chǎn)交易合同爭議解決機(jī)制風(fēng)險考核試卷
- 綠色制造技術(shù)在保健護(hù)理電器具生產(chǎn)中的應(yīng)用考核試卷
- 信貸政策與環(huán)境保護(hù)政策協(xié)同機(jī)制考核試卷
- 遼陽市某中學(xué)2024-2025學(xué)年七年級下學(xué)期期中考試數(shù)學(xué)試卷(含解析)
- 期末綜合試題-2024-2025學(xué)年人教版七年級數(shù)學(xué)下冊
- 2025至2030年中國鉻合金行業(yè)發(fā)展前景預(yù)測及投資戰(zhàn)略規(guī)劃研究報告
- 《資治通鑒》與為將之道知到課后答案智慧樹章節(jié)測試答案2025年春武警指揮學(xué)院
- (正式版)JBT 3300-2024 平衡重式叉車 整機(jī)試驗方法
- GB 1344-1999礦渣硅酸鹽水泥、火山灰質(zhì)硅酸鹽水泥及粉煤灰硅酸鹽水泥
- (完整版)歐姆龍E3X-HD光纖放大器調(diào)試SOP
- 租船相關(guān)格式匯編logo版
- 建筑工人出勤表
- DB32-T 2972-2016水稻機(jī)插工廠化多層育秧技術(shù)規(guī)程-(高清現(xiàn)行)
- DB32-T 4065-2021建筑幕墻工程技術(shù)標(biāo)準(zhǔn)-(高清現(xiàn)行)
- 中藥材、中藥飲片養(yǎng)護(hù)記錄表
- 通信施工事故案例
- 《食品的化學(xué)性污染》PPT課件.ppt
評論
0/150
提交評論