第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()

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/260841.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/260841.shtml
英文地址,請注明出處:http://en.pswp.cn/news/260841.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

為Android應用程序添加社會化分享功能

正在做個android的小應用,有點想嘗試一下社會化分享,比如分享到新浪微博啥的。看一下新浪,人人網的API,說實話功能很全很強大,但雖說有相對的SDK,但是總覺得不方便。因為正在使用友盟的統計SDK,…

安卓手機瀏覽器排行_安卓手機雙11性價比排行發布|拯救者手機發透明版|小米發大光圈手機鏡頭...

智友新聞2020-11-05本期摘要:①安卓手機雙11性價比排行榜發布②聯想拯救者電競手機 Pro 至尊透明版啟動預約③小米發伸縮式大光圈鏡頭概念安卓手機雙11性價比排行榜發布 安兔兔近日發布了安卓手機雙11性價比排行榜。該榜單的統計維度為 2020年10月1日至10月31日。其…

jQuery隨筆1-CDN加載

如果您不希望下載并存放 jQuery&#xff0c;那么也可以通過 CDN&#xff08;內容分發網絡&#xff09; 引用它。 谷歌和微軟的服務器都存有 jQuery 。 如需從谷歌或微軟引用 jQuery&#xff0c;請使用以下代碼之一&#xff1a; Google CDN: <head> <script src"h…

SQL Server 2008故障轉移集群+數據庫鏡像配置實例之三

前兩篇文章已經建立了SQL 2008 的故障轉移集群&#xff0c;由于故障轉移集群存在一個單點故障&#xff0c;既是當網絡存儲設備不可用時&#xff0c;整個集群就不可用了。所以為了獲得更好的高可用特性和容災機制&#xff0c;我們可以將集群中的某一特定SQL數據庫配置一個鏡像數…

第3章 Python 數字圖像處理(DIP) - 灰度變換與空間濾波3 -冪律變換、伽馬變換

目錄冪律&#xff08;伽馬&#xff09;變換冪律&#xff08;伽馬&#xff09;變換 scrγ(3.5)s c r^{\gamma} \tag{3.5}scrγ(3.5) c和γc和\gammac和γ是正常數。考慮到偏移&#xff08;即輸入為0時的一個可度量輸出&#xff09;&#xff0c;可改寫為sc(r?)γs c (r \epsi…

DBCP|C3P0參數詳解

1.<!-- 數據源1 --> 2. <bean id"dataSource" 3. class"org.apache.commons.dbcp.BasicDataSource" 4. destroy-method"close"> 5. <property name"driverClassName" value"com.mysql.jdbc.Driver"/> 6. …

沒有與參數列表匹配的 重載函數 strcpy_s 實例_Zemax光學設計實例(84)Ftheta掃描平場透鏡的設計...

導論&#xff1a;F-theta透鏡又叫激光掃描聚焦鏡&#xff0c;是激光加工行業必不可少的光學元件之一。對于理想薄透鏡&#xff0c;光束的偏轉角度與軌跡位置的關系為YF*tan(θ)&#xff0c;這種非線性關系會使得勻速偏轉的振鏡掃描速度與軌跡運動速度是不匹配的&#xff0c;導致…

MongoDB學習筆記(一)--基礎

Insert MongoDB在執行插入時&#xff0c;首先會將插入的數據轉換成BSON格式。然后MongoDB數據庫會對BSON進行解剖&#xff0c;并檢查是否存在_id建。 >doc {"_id" : 1…

第3章 Python 數字圖像處理(DIP) - 灰度變換與空間濾波4 - 分段線性變換 - 對比度拉伸

目錄分段線性變換對比度拉伸最大最小值拉伸分段線性變換 優點 形式可以任意復雜 缺點 要求用戶輸入很多參數 對比度拉伸 光照不足、成像傳感器的動態范圍偏小、圖像獲取過程中鏡頭孔徑的設置錯誤 點(r1,s1)和點(r2,s2)(r_1, s_1)和點(r_2, s_2)(r1?,s1?)和點(r2?,s2?…

2017網易內推編程題(判斷單詞):解答代碼

2019獨角獸企業重金招聘Python工程師標準>>> 小易喜歡的單詞具有以下特性&#xff1a; 1.單詞每個字母都是大寫字母 2.單詞沒有連續相等的字母 3.單詞沒有形如“xyxy”(這里的x&#xff0c;y指的都是字母&#xff0c;并且可以相同)這樣的子序列&#xff0c;子序列可…

Debian下IPv6設定主地址 Set primary IPv6 address under Debian Linux

Linux下選擇IPv6主地址是按照一定規則來的 #RFC3484 (davidc) Prefer same address. (i.e. destination is local machine) Prefer appropriate scope. (i.e. smallest scope shared with the destination) Avoid deprecated addresses. Prefer home addresses.Prefer outgo…

iphone查看刪除的短信_想要恢復已經刪除的的短信怎么辦?

閱讀本文前&#xff0c;請您先點擊上面的藍色字體&#xff0c;再點擊“關注”&#xff0c;這樣您就可以繼續免費收到文章了。每天都有分享&#xff0c;完全是免費訂閱&#xff0c;請放心關注。 …

獲取套接字相關聯信息

前言 知道套接字描述符&#xff0c;如何獲取這個套接字連接的相關信息呢&#xff1f;顯然&#xff0c;這是一個必須要清楚的問題。 獲取本地協議信息 函數原型&#xff1a;int getsockname ( int sockfd, struct sockaddr *localaddr, socklen_t *addrlen ) 函數功能&#xff1…

第3章 Python 數字圖像處理(DIP) - 灰度變換與空間濾波5 - 分段線性變換 - 灰度級分層

目錄灰度級分層灰度級分層 二值圖像 將感興趣范圍內的所有灰顯示為一個值&#xff08;白色&#xff09;&#xff0c;而將其它灰度值顯示為另一個值&#xff08;黑色&#xff09; 其他灰度級不變 使期望的灰度范圍變量&#xff08;或變暗&#xff09;&#xff0c;但保持圖像中…

Oracle查看鎖表

查看鎖表進程SQL語句1&#xff1a; select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode from v$locked_object lo, dba_objects ao, v$session sess where ao.object_id lo.object_id and lo.session_id sess.sid; 查看鎖…

SQL Server聚集索引的選擇

先聲明文章非原創&#xff0c;摘自博客園&#xff1a;http://www.cnblogs.com/CareySon/archive/2012/03/06/2381582.html 簡介 在SQL Server中&#xff0c;數據是按頁進行存放的。而為表加上聚集索引后&#xff0c;SQL Server對于數據的查找就是按照聚集索引的列作為關鍵字進行…

c++突破網關屏蔽_為什么加了屏蔽罩,測試效果反而不好?

來自專治PCB疑難雜癥微信群群友(群友突破1200人啦&#xff0c;文末添加楊老師微信號&#xff0c;可添加入群)的問題討論&#xff1a;設計時我加了屏蔽罩&#xff0c;結果在測試的時候不加屏蔽罩的效果要比加了屏蔽罩的效果好&#xff0c;這是為何&#xff1f;跟PCB設計的屏蔽罩…

第3章 Python 數字圖像處理(DIP) - 灰度變換與空間濾波6 - 分段線性變換 - 比特平面分層

目錄比特平面分層比特平面分層 在一幅256級灰度圖像中&#xff0c;圖像的值是由8比特&#xff08;1字節&#xff09;組成的 def convert_bin(data, n):"""convert decimal to binary, return n th bit, 0 if bit value 0 else 1""" #---------…

與眾不同 windows phone (5) - Chooser(選擇器)

與眾不同 windows phone (5) - Chooser&#xff08;選擇器&#xff09; 原文:與眾不同 windows phone (5) - Chooser&#xff08;選擇器&#xff09;[索引頁][源碼下載] 與眾不同 windows phone (5) - Chooser&#xff08;選擇器&#xff09;作者&#xff1a;webabcd介紹與眾不…

iOS GCD

from&#xff1a;http://www.cnblogs.com/dsxniubility/p/4296937.html 一般&#xff1a; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{// 耗時操作dispatch_async(dispatch_get_main_queue(), ^{// 更新UI});}); 本文是對以往學習的多線…