第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波2 - 图像反转、对数变换
生活随笔
收集整理的這篇文章主要介紹了
第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波2 - 图像反转、对数变换
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
目錄
- 一些基本的灰度變換函數(shù)
- 圖像反轉(zhuǎn)
- 對(duì)數(shù)變換
一些基本的灰度變換函數(shù)
如下圖顯示了在圖像處理中頻繁使用的3類基本函數(shù):
- 線性(反轉(zhuǎn)和恒等變換)函數(shù)
- 對(duì)數(shù)(對(duì)數(shù)和反對(duì)數(shù)變換)函數(shù)
- 冪律(nnn次冪和nnn次根變換)函數(shù)
圖像反轉(zhuǎn)
s=L?1?r(3.3)s = L-1 -r \tag{3.3}s=L?1?r(3.3)
采用這種方式反轉(zhuǎn)圖像的灰度級(jí),會(huì)得到類似于照片底片的結(jié)果。這種類型的處理可用于增強(qiáng)圖像暗色區(qū)域中的白色或灰色細(xì)節(jié),暗色安全閥人尺寸很大時(shí)這種增強(qiáng)效果更好
# 圖像反轉(zhuǎn),也可以縮放到[0, 1], 然后再用1減去 img_ori = cv2.imread('DIP_Figures/DIP3E_Original_Images_CH03/Fig0304(a)(breast_digital_Xray).tif', 0) img_reversed = 256 - 1 - img_ori # L = 2^8plt.figure(figsize=(18, 15)) plt.subplot(1, 2, 1), plt.imshow(img_ori, cmap='gray', vmin=0, vmax=255), plt.title('Original') plt.subplot(1, 2, 2), plt.imshow(img_reversed, cmap='gray', vmin=0, vmax=255), plt.title('Reversed') plt.tight_layout() plt.show()對(duì)數(shù)變換
s=c?log(1+r)(3.4)s= c*log(1+r) \tag{3.4}s=c?log(1+r)(3.4)
這個(gè)變換將輸入中范圍較窄的低灰度值映射為輸出中范圍較寬的灰度級(jí)。相反,輸入中的高灰度值則被映射為輸出中范圍較窄的灰度級(jí)。使用這類變換來(lái)擴(kuò)展圖像中的暗像素值,同時(shí)壓縮高灰度級(jí)值。
反對(duì)數(shù)(指數(shù))變換的功能正好相反。
# 對(duì)數(shù)變換 img_ori = cv2.imread('DIP_Figures/DIP3E_Original_Images_CH03/Fig0305(a)(DFT_no_log).tif', 0)#------------------------傅里葉變換 fft = np.fft.fft2(img_ori) fft_shift = np.fft.fftshift(fft) #中心化#------------------------直接顯示變換后的頻譜 amp = np.abs(fft_shift) amp = np.uint8(normalize(amp) * 255)#------------------------對(duì)頻譜進(jìn)行對(duì)數(shù)變換后 amp_log = np.abs(np.log(1 + np.abs(fft_shift))) amp_log = np.uint8(normalize(amp_log) * 255)plt.figure(figsize=(16, 6)) plt.subplot(1, 3, 1), plt.imshow(img_ori, cmap='gray', vmin=0, vmax=255), plt.title('Original'), plt.xticks([]), plt.yticks([]) plt.subplot(1, 3, 2), plt.imshow(amp, cmap='gray', vmin=0, vmax=255), plt.title('FFT result without log'), plt.xticks([]), plt.yticks([]) plt.subplot(1, 3, 3), plt.imshow(amp_log, cmap='gray', vmin=0, vmax=255), plt.title('FFT result with Long'), plt.xticks([]), plt.yticks([]) plt.tight_layout() plt.show()總結(jié)
以上是生活随笔為你收集整理的第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波2 - 图像反转、对数变换的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 斗鱼大数据的玩法
- 下一篇: 第3章 Python 数字图像处理(DI