第3章 Python 數字圖像處理(DIP) - 灰度變換與空間濾波1 - 灰度變換和空間濾波基礎、Sigmoid激活函數

這里寫目錄標題

    • 本節的目標
  • 背景
      • 灰度變換和空間濾波基礎

本節的目標

  • 了解空間域圖像處理的意義,以及它與變換域圖像處理的區別
  • 熟悉灰度變換所有的主要技術
  • 了解直方圖的意義以及如何操作直方圖來增強圖像
  • 了解空間濾波的原理
import sys
import numpy as np
import cv2
import matplotlib 
import matplotlib.pyplot as plt
import PIL
from PIL import Imageprint(f"Python version: {sys.version}")
print(f"Numpy version: {np.__version__}")
print(f"Opencv version: {cv2.__version__}")
print(f"Matplotlib version: {matplotlib.__version__}")
print(f"Pillow version: {PIL.__version__}")
Python version: 3.6.12 |Anaconda, Inc.| (default, Sep  9 2020, 00:29:25) [MSC v.1916 64 bit (AMD64)]
Numpy version: 1.16.6
Opencv version: 3.4.1
Matplotlib version: 3.3.2
Pillow version: 8.0.1
def normalize(mask):return (mask - mask.min()) / (mask.max() - mask.min() + 1e-5)

背景

灰度變換和空間濾波基礎

g(x,y)=T[f(x,y)](3.1)g(x, y) = T[f(x, y)] \tag{3.1} g(x,y)=T[f(x,y)](3.1)

式中f(x,y)f(x, y)f(x,y)是輸入圖像, g(x,y)g(x, y)g(x,y)是輸出圖像,TTT是在點(x,y)(x, y)(x,y)的一個鄰域上定義的針對f的算子。

最小的鄰域大小為1×11\times 11×1
則式(3.1)中的TTT稱為灰度(也稱灰度級或映射)變換函數,簡寫為如下:
s=T(r)(3.2)s=T(r) \tag{3.2}s=T(r)(3.2)

對比度拉伸

  • 通過將kkk以下的灰度級變暗,并將高于kkk的灰度級變亮,產生比原圖像對比度更高的一幅圖像

閾值處理函數

  • 小于kkk的處理為0,大于kkk的設置為1,產生一幅二級(二值)圖像
# 顯示一個圖像的3x3鄰域
height, width = 18, 18
img_ori = np.ones([height, width], dtype=np.float)# 圖像3x3=9個像素賦了不同的值,以便更好的顯示
kernel_h, kernel_w = 3, 3
img_kernel = np.zeros([kernel_h, kernel_w], dtype=np.float)
for i in range(img_kernel.shape[0]):for j in range(img_kernel.shape[1]):img_kernel[i, j] = 0.3 + 0.1 * i + 0.1 * j
img_kernel[kernel_h//2, kernel_w//2] = 0.9img_ori[5:5+kernel_h, 12:12+kernel_w] = img_kernelfig = plt.figure(figsize=(7, 7), num='a')
plt.matshow(img_ori, fignum='a', cmap='gray', vmin=0, vmax=1)
plt.show()

在這里插入圖片描述

為什么會把Sigmoid函數寫在這里

從Sigmoid函數的圖像曲線來看,與分段線性函數的曲線類似,所以在一定程度上可以用來代替對比度拉伸,這樣就不需要輸入太多的參數。當然,有時可能也得不到想要的結果,需要自己多做實驗。

sigmoid函數也是神經網絡用得比較多的一個激活函數。

def sigmoid(x, scale):"""simgoid fuction, return ndarray value [0, 1]param: input x: array like param: input scale: scale of the sigmoid fuction, if 1, then is original sigmoid fuction, if < 1, then the values between 0, 1will be less, if scale very low, then become a binary fuction; if > 1, then the values between 0, 1 will be more, if scalevery high then become a y = x"""y = 1 / (1 + np.exp(-x / scale))return y
# sigmoid fuction plot
x = np.linspace(0, 10, 100)
x1 = x - x.max() / 2        # Here shift the 0 to the x center, here is 5, so x1 = [-5,  5]
t_stretch = sigmoid(x1, 1)
t_binary = sigmoid(x1, 0.001)plt.figure(figsize=(10, 5))
plt.subplot(121), plt.plot(x, t_stretch), plt.title('s=T(r)'), plt.ylabel('$s_0 = T(r_0)$', rotation=0)
plt.xlabel('r'), plt.xticks([]), plt.yticks([])
plt.subplot(122), plt.plot(x, t_binary), plt.title('s=T(r)'), plt.ylabel('$s_0 = T(r_0)$', rotation=0)
plt.xlabel('r'), plt.xticks([]), plt.yticks([])
plt.tight_layout
plt.show()

在這里插入圖片描述

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

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

相關文章

微軟Edge擴展工具箱旨在將Chrome擴展帶至Edge

微軟Windows 10新工具Edge擴展工具箱旨在讓開發人員可以輕松地將Chrome擴展轉換為微軟Edge擴展。\\微軟Edge擴展工具箱的目標是在少修改或不修改的情況下將Chrome擴展移植到微軟Edge。按照微軟官方的描述&#xff0c;“該工具會創建必要的JSON清單項&#xff0c;架起一座從chro…

absolute 必須 relative_Workfine如何控制身份證號碼必須為18位?

在信息化系統的設計中&#xff0c;由于業務的需要&#xff0c;我們往往需要設置許多控制項&#xff0c;以保證系統能夠按照業務要求流轉&#xff0c;必須出庫數量不能超過庫存&#xff0c;人員信息不能重復錄入&#xff0c;考勤區間不能有交叉等。此篇以實例的方式告訴大家如果…

angularAMD快速入門

ngularAMD是作者 marcoslin 使用 RequireJS &#xff0b; AngularJS開發的前端mvvm框架,因此你可以使用它快速創建一款Web App.他特別適合快速開發SPA應用&#xff0c;適當的和更簡單的方式。 我們整合AngularJS和RequireJS不應該是復雜的&#xff0c;它不是angularAMD。在行動…

ASP.NET MVC5 網站開發實踐(二) Member區域 - 用戶部分(2)用戶登錄、注銷

上次實現了用戶注冊&#xff0c;這次來實現用戶登錄&#xff0c;用到IAuthenticationManager的SignOut、SignIn方法和基于聲明的標識。最后修改用戶注冊代碼實現注冊成功后直接登錄。 目錄&#xff1a; ASP.NET MVC5 網站開發實踐 - 概述 ASP.NET MVC5 網站開發實踐(一) - 項目…

第3章 Python 數字圖像處理(DIP) - 灰度變換與空間濾波2 - 圖像反轉、對數變換

目錄一些基本的灰度變換函數圖像反轉對數變換一些基本的灰度變換函數 如下圖顯示了在圖像處理中頻繁使用的3類基本函數&#xff1a; 線性&#xff08;反轉和恒等變換&#xff09;函數對數&#xff08;對數和反對數變換&#xff09;函數冪律&#xff08;nnn次冪和nnn次根變換&…

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

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

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

智友新聞2020-11-05本期摘要&#xff1a;①安卓手機雙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; 查看鎖…