- 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 - Haralick 特征
- 标记区域的权重
- 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 - Haar 逆变换
Haar 逆变换是指从 Haar 变换后的图像重建原始图像的技术。在了解 Haar 逆变换之前,让我们先了解一下 Haar 变换。
Haar 变换是一种将图像从像素强度值转换为小波系数(表示图像不同频率的值)的技术。
在 Haar 变换中,图像被分解成一组称为 Haar 小波的 正交基函数。
Haar 逆变换通过以特定方式(如下所述)组合 Haar 小波,将小波系数转换为像素强度值。
在 Mahotas 中进行 Haar 逆变换
在 Mahotas 中,我们可以使用 **mahotas.ihaar()** 函数执行 Haar 逆变换。以下是执行逆 Haar 变换的基本方法:
首先,从 Haar 变换中获取 Haar 小波系数。
接下来,将每个系数乘以一个缩放因子和 Haar 小波。对于 Haar 小波,近似系数的缩放因子通常为 $\mathrm{1/\sqrt{2}}$,细节系数的缩放因子为 1。
然后,将这些缩放后的系数对于高频(细节)和低频(近似)系数求和。
最后,组合重建的系数,如果像素值不在 0 到 255 的范围内,则执行归一化。
完成这些步骤后,原始图像将从 Haar 变换后的图像中重建。
mahotas.ihaar() 函数
mahotas.ihaar() 函数以 Haar 变换后的图像作为输入,并返回原始灰度图像作为输出。
由于 Haar 变换是一个可逆过程,因此逆变换后的图像是对原始图像的完美重建。
语法
以下是 mahotas 中 ihaar() 函数的基本语法:
mahotas.ihaar(f, preserve_energy=True, inline=False)
其中,
**f** - 输入图像。
**preserve_energy (可选)** - 指定是否保留输出图像的能量(默认为 True)。
**inline (可选)** - 指定是返回新图像还是修改输入图像(默认为 False)。
示例
在以下示例中,我们使用 mh.ihaar() 函数来反转 Haar 变换对图像的影响。
import mahotas as mh import numpy as np import matplotlib.pyplot as mtplt # Loading the image image = mh.imread('sun.png') # Converting it to grayscale image = mh.colors.rgb2gray(image) # Applying Haar transformation haar_transform = mh.haar(image) # Reversing Haar transformation reverse_haar = mh.ihaar(haar_transform) # Creating a figure and axes for subplots fig, axes = mtplt.subplots(1, 3) # Displaying the original image axes[0].imshow(image, cmap='gray') axes[0].set_title('Original Image') axes[0].set_axis_off() # Displaying the Haar transformed image axes[1].imshow(haar_transform, cmap='gray') axes[1].set_title('Haar Transformed Image') axes[1].set_axis_off() # Displaying the reversed image axes[2].imshow(reverse_haar, cmap='gray') axes[2].set_title('Reverse Haar Image') axes[2].set_axis_off() # Adjusting spacing between subplots mtplt.tight_layout() # Showing the figures mtplt.show()
输出
以下是上述代码的输出:
不保留能量
我们还可以反转 Haar 变换对图像的影响,而不保留其能量。图像的能量指的是其亮度,在图像变换时可能会发生变化。
在 mahotas 中,我们可以将 mh.ihaar() 函数中的 **preserve_energy** 参数设置为 'False' 以防止能量保留。因此,输出图像的亮度将与原始输入图像不同。
如果此参数设置为 True,则输出图像和输入图像将具有相同的亮度。
示例
在下面提到的示例中,我们正在对图像执行 Haar 逆变换,而不保留其能量。
import mahotas as mh import numpy as np import matplotlib.pyplot as mtplt # Loading the image image = mh.imread('tree.tiff') # Converting it to grayscale image = mh.colors.rgb2gray(image) # Applying Haar transformation haar_transform = mh.haar(image) # Reversing Haar transformation reverse_haar = mh.ihaar(haar_transform, preserve_energy=False) # Creating a figure and axes for subplots fig, axes = mtplt.subplots(1, 3) # Displaying the original image axes[0].imshow(image, cmap='gray') axes[0].set_title('Original Image') axes[0].set_axis_off() # Displaying the Haar transformed image axes[1].imshow(haar_transform, cmap='gray') axes[1].set_title('Haar Transformed Image') axes[1].set_axis_off() # Displaying the reversed image axes[2].imshow(reverse_haar, cmap='gray') axes[2].set_title('Reverse Haar Image') axes[2].set_axis_off() # Adjusting spacing between subplots mtplt.tight_layout() # Showing the figures mtplt.show()
输出
上述代码的输出如下:
内联 Haar 逆变换
另一种执行 Haar 逆变换的方法是执行内联 Haar 逆变换。内联是指在原始图像本身上应用变换,而无需创建新图像,从而节省了变换过程中的空间。
在 mahotas 中,可以通过在 mh.ihaar() 函数中将 **inline** 参数设置为布尔值 'True' 来实现内联 Haar 逆变换。
示例
在这里,我们对 Haar 变换后的图像执行内联 Haar 逆变换。
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 image = mh.colors.rgb2gray(image) # Reversing Haar transformation mh.ihaar(mh.haar(image), inline=True) # Creating a figure and axes for subplots fig, axes = mtplt.subplots(1, 1) # Displaying the reversed image axes.imshow(image, cmap='gray') axes.set_title('Reverse Haar Image') axes.set_axis_off() # Adjusting spacing between subplots mtplt.tight_layout() # Showing the figures mtplt.show()
输出
执行上述代码后,我们将得到以下输出: