日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波2 - 图像反转、对数变换

發布時間:2023/12/10 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波2 - 图像反转、对数变换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 一些基本的灰度變換函數
      • 圖像反轉
      • 對數變換

一些基本的灰度變換函數

如下圖顯示了在圖像處理中頻繁使用的3類基本函數:

  • 線性(反轉和恒等變換)函數
  • 對數(對數和反對數變換)函數
  • 冪律(nnn次冪和nnn次根變換)函數
# 灰度變換函數為了圖像好看,歸一化后再乘于255,縮放到相同的數值范圍 x = np.arange(0, 256, 1) x1 = x + 1equal = normalize(x) * 255 revers = (1 - normalize(x)) * 255 log = normalize(np.log(x1)) * 255 n_sqrt = normalize(np.power(x, 1/3)) * 255 n_power = normalize(np.power(normalize(x), 3)) * 255 log_1 = normalize(np.exp(log)) * 255plt.figure(figsize=(6, 6)) plt.plot(x, equal, label='equal') plt.plot(x, revers, label='reversed') plt.plot(x, log, label='log') plt.plot(x, n_sqrt, label='n sqrt root') plt.plot(x, n_power, label='n power') plt.plot(x, log_1, label='exp')plt.ylim([0, 256]) plt.xlim([0, 256]) plt.legend(loc='upper left') plt.show()

圖像反轉

s=L?1?r(3.3)s = L-1 -r \tag{3.3}s=L?1?r(3.3)

采用這種方式反轉圖像的灰度級,會得到類似于照片底片的結果。這種類型的處理可用于增強圖像暗色區域中的白色或灰色細節,暗色安全閥人尺寸很大時這種增強效果更好

# 圖像反轉,也可以縮放到[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()

對數變換

s=c?log(1+r)(3.4)s= c*log(1+r) \tag{3.4}s=c?log(1+r)(3.4)

這個變換將輸入中范圍較窄的低灰度值映射為輸出中范圍較寬的灰度級。相反,輸入中的高灰度值則被映射為輸出中范圍較窄的灰度級。使用這類變換來擴展圖像中的暗像素值,同時壓縮高灰度級值。

反對數(指數)變換的功能正好相反。

# 對數變換 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)#------------------------對頻譜進行對數變換后 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()

總結

以上是生活随笔為你收集整理的第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波2 - 图像反转、对数变换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。