
- Mahotas 教程
- Mahotas - 首頁
- Mahotas - 簡介
- Mahotas - 計算機視覺
- Mahotas - 歷史
- Mahotas - 特性
- Mahotas - 安裝
- Mahotas 處理影像
- Mahotas - 處理影像
- Mahotas - 載入影像
- Mahotas - 載入灰度影像
- Mahotas - 顯示影像
- Mahotas - 顯示影像形狀
- Mahotas - 儲存影像
- Mahotas - 影像質心
- Mahotas - 影像卷積
- Mahotas - 建立 RGB 影像
- Mahotas - 影像的尤拉數
- Mahotas - 影像中零的比例
- Mahotas - 獲取影像矩
- Mahotas - 影像中的區域性最大值
- Mahotas - 影像橢圓軸
- Mahotas - 影像拉伸 RGB
- Mahotas 顏色空間轉換
- Mahotas - 顏色空間轉換
- Mahotas - RGB 到灰度轉換
- Mahotas - RGB 到 LAB 轉換
- Mahotas - RGB 到 Sepia 轉換
- Mahotas - RGB 到 XYZ 轉換
- Mahotas - XYZ 到 LAB 轉換
- Mahotas - XYZ 到 RGB 轉換
- Mahotas - 增加伽馬校正
- Mahotas - 拉伸伽馬校正
- Mahotas 標籤影像函式
- Mahotas - 標籤影像函式
- Mahotas - 標註影像
- Mahotas - 過濾區域
- Mahotas - 邊界畫素
- Mahotas - 形態學操作
- Mahotas - 形態學運算元
- Mahotas - 查詢影像均值
- Mahotas - 裁剪影像
- Mahotas - 影像的偏心率
- Mahotas - 疊加影像
- Mahotas - 影像的圓度
- Mahotas - 調整影像大小
- Mahotas - 影像直方圖
- Mahotas - 膨脹影像
- Mahotas - 腐蝕影像
- Mahotas - 分水嶺
- Mahotas - 影像開運算
- Mahotas - 影像閉運算
- Mahotas - 填充影像孔洞
- Mahotas - 條件膨脹影像
- Mahotas - 條件腐蝕影像
- Mahotas - 影像條件分水嶺
- Mahotas - 影像中的區域性最小值
- Mahotas - 影像區域最大值
- Mahotas - 影像區域最小值
- Mahotas - 高階概念
- Mahotas - 影像閾值化
- Mahotas - 設定閾值
- Mahotas - 軟閾值
- Mahotas - Bernsen 區域性閾值化
- Mahotas - 小波變換
- 製作影像小波中心
- Mahotas - 距離變換
- Mahotas - 多邊形工具
- Mahotas - 區域性二值模式
- 閾值鄰域統計
- Mahotas - Haralic 特徵
- 標記區域的權重
- Mahotas - Zernike 特徵
- Mahotas - Zernike 矩
- Mahotas - 排序濾波器
- Mahotas - 2D 拉普拉斯濾波器
- Mahotas - 多數濾波器
- Mahotas - 均值濾波器
- Mahotas - 中值濾波器
- Mahotas - Otsu 方法
- Mahotas - 高斯濾波
- Mahotas - 擊中-不擊中變換
- Mahotas - 標記最大陣列
- Mahotas - 影像的平均值
- Mahotas - SURF 密集點
- Mahotas - SURF 積分
- Mahotas - Haar 變換
- 突出顯示影像最大值
- 計算線性二值模式
- 獲取標籤的邊界
- 反轉 Haar 變換
- Riddler-Calvard 方法
- 標記區域的大小
- Mahotas - 模板匹配
- 加速魯棒特徵
- 移除帶邊界的標記
- Mahotas - Daubechies 小波
- Mahotas - Sobel 邊緣檢測
Mahotas - 增加伽馬校正
在瞭解如何增加伽馬校正之前,讓我們先了解一下什麼是伽馬校正。
伽馬校正調整影像的亮度,以匹配我們眼睛感知光線的方式。我們的眼睛不會以線性方式感知光線,因此,如果沒有校正,影像可能會顯得太暗或太亮。
伽馬校正將數學變換應用於亮度值,透過調整亮度級別使影像看起來更自然。
現在,**增加伽馬校正**指的是調整伽馬值以使整個影像更亮。當伽馬值增加時,暗區看起來更亮,並增強影像的整體對比度。
在 Mahotas 中增加伽馬校正
在 Mahotas 中,增加伽馬校正指的是在改變畫素亮度時調整伽馬值。
伽馬是一個正值,其中 -
伽馬值小於 1 將使影像變亮。
伽馬值大於 1 將使影像變暗。
伽馬值為 1 表示沒有校正,並指示畫素值和亮度之間的線性關係。
Mahotas 中的伽馬校正涉及將冪律變換應用於影像的強度值。冪律變換定義如下 -
new_intensity = old_intensity^gamma
這裡,
**old_intensity** - 它是一個畫素的原始強度值
**new_intensity** - 它是伽馬校正後變換後的強度值。
**gamma** 決定了應用於影像的校正程度。
當在 Mahotas 中增加伽馬時,這意味著強度值被提升到更高的冪。此調整會影響影像的整體亮度。
Mahotas 沒有提供直接進行伽馬校正的方法,但是可以透過使用 mahotas 和 numpy 庫來實現。
示例
在以下示例中,我們透過降低伽馬值來使灰度影像變暗 -
import mahotas as mh import numpy as np import matplotlib.pyplot as mtplt # Loading the image image = mh.imread('sea.bmp') # Converting it to grayscale gray_image = mh.colors.rgb2gray(image) # Decreasing gamma value corrected_gamma = 1.5 # Updating the image to use the corrected gamma value gamma_correction = np.power(gray_image, corrected_gamma) # Creating a figure and axes for subplots fig, axes = mtplt.subplots(1, 2) # Displaying the original image axes[0].imshow(gray_image, cmap='gray') axes[0].set_title('Original Image') axes[0].set_axis_off() # Displaying the gamma corrected image axes[1].imshow(gamma_correction, cmap='gray') axes[1].set_title('Gamma Corrected Image') axes[1].set_axis_off() # Adjusting spacing between subplots mtplt.tight_layout() # Showing the figures mtplt.show()
輸出
以下是上述程式碼的輸出 -

使用互動式伽馬校正滑塊
互動式伽馬校正滑塊是一個 GUI 元素,允許使用者動態調整伽馬值。使用者可以透過拖動滑塊來增加或減少伽馬值,從而在顯示屏上提供即時反饋。
我們可以在 mahotas 中使用互動式伽馬校正滑塊來增加伽馬校正,方法是首先確定所需的伽馬值以增加校正。
然後,透過將畫素值提升到反伽馬值的冪來對影像應用冪律變換。
語法
以下是建立互動式滑塊的基本語法 -
from matplotlib.widgets import Slider Slider(slider_axis, name, min_value, max_value, valint)
其中,
**slider_axis** - 它是一個定義滑塊位置和尺寸的列表。
**name** - 它是滑塊的名稱。
**mini_value** - 它是滑塊可以到達的最小值。
**max_value** - 它是滑塊可以到達的最大值。
**valint** - 它是滑塊的起始值。
示例
這裡,我們嘗試使用互動式伽馬校正滑塊來增加伽馬校正 -
import mahotas as mh import numpy as np import matplotlib.pyplot as mtplt from matplotlib.widgets import Slider # Loading the image image = mh.imread('tree.tiff') # Converting it to grayscale image = mh.colors.rgb2gray(image) # Creating a figure and axes for the plot fig, axis = mtplt.subplots() # Displaying the original image axis.imshow(image, cmap='gray') axis.set_title('Gamma Correction') axis.set_axis_off() # Creating a slider for gamma adjustment slider_axis = mtplt.axes([0.2, 0.05, 0.6, 0.03]) gamma_slider = Slider(slider_axis, 'Gamma', 0.1, 5.0, valinit=1.0) # Updating the gamma correction and plot on change of slider value def update_gamma(val): gamma = gamma_slider.val corrected_image = np.power(image, gamma) axis.imshow(corrected_image, cmap='gray') fig.canvas.draw_idle() gamma_slider.on_changed(update_gamma) # Showing the figure mtplt.show()
輸出
上述程式碼的輸出如下所示。首先,我們嘗試使用滑塊來增加伽馬校正,如下所示 -

現在,使用滑塊降低伽馬校正 -

使用批次伽馬校正
批次伽馬校正將多個伽馬值應用於單個影像。這有助於在不同的伽馬值下並排比較原始影像,以檢視增加伽馬校正的影響。
在 Mahotas 中,我們可以透過首先迭代預定伽馬值的列表來使用批次伽馬校正調整影像的亮度。然後使用不同的伽馬值對輸入影像應用冪律變換。
示例
現在,我們嘗試使用批次伽馬校正來增加伽馬值 -
import mahotas as mh import numpy as np import matplotlib.pyplot as mtplt from matplotlib.widgets import Slider # Loading the image image = mh.imread('sun.png') # Converting it to grayscale image = mh.colors.rgb2gray(image) # Defining a list of gamma values gamma_values = [0.21, 0.82, 2, 5] # Creating subplots to display images for each gamma value fig, axes = mtplt.subplots(1, len(gamma_values) + 1) axes[0].imshow(image, cmap='gray') axes[0].set_title('Original Image') axes[0].set_axis_off() # Applying gamma correction for each gamma value for i, gamma in enumerate(gamma_values): corrected_image = np.power(image, gamma) axes[i + 1].imshow(corrected_image, cmap='gray') axes[i + 1].set_title(f'Gamma={gamma}') axes[i + 1].set_axis_off() # Adjusting spacing between subplots mtplt.tight_layout() # Showing the figures mtplt.show()
輸出
以下是上述程式碼的輸出 -
