- 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()
输出
以下是上述代码的输出 -