Python灰度變換中的對(duì)數(shù)變換專項(xiàng)分析實(shí)現(xiàn)
1. 原理
對(duì)數(shù)變換的公式為:

其中:c是伸縮系數(shù),常設(shè)為1。src為輸入的原圖像,dst為經(jīng)過(guò)對(duì)數(shù)變換的輸出圖像
對(duì)數(shù)變換的曲線為:

由曲線的形狀可以發(fā)現(xiàn),對(duì)數(shù)變換將輸入中范圍較窄的低灰度值映射為輸出中灰度值較寬的部分。也就是對(duì)數(shù)變換可以提升原圖中暗區(qū)的對(duì)比度,同時(shí)可以壓縮明亮區(qū)的對(duì)比度。
反對(duì)數(shù)變換的效果剛好相反
2. 代碼
import numpy as np
import cv2
def log(x):
y =np.log(1+x)
ym = y- y.min()
dst = (ym / ym.max()) * 255
return dst.astype(np.uint8)
img = cv2.imread('./f.jpg',0)
dst = log(img)
cv2.imshow('img',np.hstack((img,dst)))
cv2.waitKey()
cv2.destroyAllWindows()處理的結(jié)果為

注:
因?yàn)閳D像經(jīng)過(guò)對(duì)數(shù)變換后的值域很小,所以需要放大到0-255范圍當(dāng)中
- 一般來(lái)說(shuō)可以直接將對(duì)數(shù)變換后的圖像dst / dst.max(),然后在乘上255
- 圖中演示的代碼為圖像處理書上給出的縮放Gm = Gm - Gm.min() , dst = Gm / Gm.max()在乘上255
- 兩者的區(qū)別是。書上的可以將灰度值最低的部分映射為0,而第一種方法有時(shí)候會(huì)出現(xiàn)這樣的情況。這是因?yàn)閳D像的背景部分雖然是黑色,但灰度值不是0,經(jīng)過(guò)對(duì)數(shù)變換會(huì)將灰度值低的區(qū)域?qū)Ρ榷壤?,所以?huì)出現(xiàn)灰蒙蒙的樣子

而使用書上的方法則不會(huì)出現(xiàn)這種情況

到此這篇關(guān)于Python灰度變換中的對(duì)數(shù)變換專項(xiàng)分析實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Python對(duì)數(shù)變換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解如何使用Python和正則表達(dá)式處理XML表單數(shù)據(jù)
在日常的Web開發(fā)中,處理表單數(shù)據(jù)是一個(gè)常見(jiàn)的任務(wù),而XML是一種常用的數(shù)據(jù)格式,用于在不同的系統(tǒng)之間傳遞和存儲(chǔ)數(shù)據(jù),本文通過(guò)闡述一個(gè)技術(shù)問(wèn)題并給出解答的方式,介紹如何使用Python和正則表達(dá)式處理XML表單數(shù)據(jù),需要的朋友可以參考下2023-09-09
python之生產(chǎn)者消費(fèi)者模型實(shí)現(xiàn)詳解
這篇文章主要介紹了python之生產(chǎn)者消費(fèi)者模型實(shí)現(xiàn)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
python中使用smtplib和email模塊發(fā)送郵件實(shí)例
python腳本發(fā)郵件,一般會(huì)用到smtplib和email這兩個(gè)模塊。看看該模塊怎么使用,先看smtplib模塊。 smtplib模塊定義了一個(gè)簡(jiǎn)單的SMTP客戶端,可以用來(lái)在互聯(lián)網(wǎng)上發(fā)送郵件2014-04-04
Python中requirements.txt簡(jiǎn)介(推薦)
Python項(xiàng)目中必須包含一個(gè)?requirements.txt?文件,用于記錄所有依賴包及其精確的版本號(hào),以便新環(huán)境部署,這篇文章主要介紹了Python中requirements.txt簡(jiǎn)介,需要的朋友可以參考下2022-11-11
Python實(shí)現(xiàn)遞歸遍歷文件夾并刪除文件
本文給大家匯總了3個(gè)Python實(shí)現(xiàn)遍歷文件夾并刪除的代碼,主要是給大家分享下這3種方法的實(shí)現(xiàn)思路,有需要的小伙伴可以參考下2016-04-04
python網(wǎng)絡(luò)編程 使用UDP、TCP協(xié)議收發(fā)信息詳解
這篇文章主要介紹了python網(wǎng)絡(luò)編程 使用UDP、TCP協(xié)議收發(fā)信息詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
Python使用pyaudio實(shí)現(xiàn)錄音功能
pyaudio是一個(gè)跨平臺(tái)的音頻I/O庫(kù),使用PyAudio可以在Python程序中播放和錄制音頻,本文將利用它實(shí)現(xiàn)錄音功能,并做到停止說(shuō)話時(shí)自動(dòng)結(jié)束2023-05-05

