- 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到褐色转换
- 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 - 图像叠加
图像叠加是指将一个图像放置在另一个图像的顶部。它涉及组合两个图像的像素值以创建合成图像。
在叠加图像时,顶部图像放置在背景图像上,允许顶部图像的像素部分或完全覆盖背景图像的像素。
这可以通过不同程度的透明度来完成,从而允许背景图像在一定程度上透视。
在 Mahotas 中叠加图像
我们可以使用 overlay() 函数在 mahotas 中叠加图像。此函数确保叠加图像与底层图像对齐,同时考虑其尺寸和像素值。
如果需要,它会自动处理调整叠加图像的大小或裁剪以匹配底层图像的大小。
要在 mahotas 中叠加图像,我们需要为叠加图像定义透明度或 alpha 值。此值决定叠加图像将覆盖背景图像的程度。
mahotas.overlay() 函数
在 mahotas 中,我们使用 mahotas.overlay() 函数来叠加图像。此函数接受单通道图像作为输入并返回叠加后的结果图像。
mahotas.overlay() 函数为每个像素位置选择最大像素值,有效地组合两个图像的视觉内容。
当叠加图像具有透明度信息(例如,alpha 通道)时,此操作特别有用,因为它允许叠加图像的透明部分显示底层图像的内容。
语法
以下是 mahotas 中 overlay() 函数的基本语法:
mahotas.overlay(gray, red=None, green=None, blue=None, if_gray_dtype_not_uint8= 'stretch')
参数
以下是 mahotas 中 overlay() 函数接受的参数:
gray − 它是将颜色通道叠加其上的灰度图像。它充当叠加的画布。
red, blue , green (可选) − 这些表示将叠加到灰度图像上的各个颜色通道。它们可以作为表示每个颜色通道强度的单独数组提供。
如果未指定这些颜色通道中的任何一个(设置为 None),则生成的叠加图像将仅包含灰度信息。
if_gray_dtype_not_uint8 (可选) − 如果输入图像的数据类型不是“np.uint8”,则定义要执行的操作。默认值为 stretch。
示例
在以下示例中,我们尝试使用二值掩码(像素值要么为 0(背景)要么为 1(前景))叠加图像:
import numpy as np import mahotas as mh import matplotlib.pyplot as plt # Load the images image1 = mh.imread('sea.bmp') image2 = mh.imread('tree.tiff') image = mh.imread('sea.bmp', as_grey=True) # foreground image mask = mh.imread('tree.tiff', as_grey=True) > 0 overlay = mh.overlay(image, mask) # Display all three images in one plot plt.figure(figsize=(10, 5)) # Display image1 plt.subplot(1, 3, 1) plt.imshow(image1) plt.title('Image 1') plt.axis('off') # Display image2 plt.subplot(1, 3, 2) plt.imshow(image2) plt.title('Image 2') plt.axis('off') # Display the overlayed image plt.subplot(1, 3, 3) plt.imshow(overlay, cmap='gray') plt.title('Overlayed Image') plt.axis('off') plt.tight_layout() plt.show()
输出
获得的输出如下所示:
将透明图像叠加到另一个图像上
要将透明图像叠加到另一个图像上,我们通过创建 alpha 通道来创建透明叠加,该通道决定每个像素的透明度。我们使用与背景图像相同形状的零数组初始化 alpha 通道。
对于叠加图像中非零的像素,我们将透明度值设置为大于 0。
现在,我们可以通过组合背景图像、叠加图像和 alpha 通道来叠加图像。
我们将背景图像乘以 (1 − alpha) 以降低叠加图像存在区域的强度,并将叠加图像乘以 alpha 通道以控制其透明度。最后,我们将这两个组件加在一起。
示例
在这里,我们尝试将透明图像叠加到另一个图像上:
import numpy as np import mahotas as mh from pylab import imshow, show # Load the images image = mh.imread('tree.tiff', as_grey=True) overlay = mh.imread('sea.bmp', as_grey=True) # Create a transparent overlay alpha = np.zeros(image.shape) alpha[overlay > 0] = 0.5 # Set transparency value for non-zero pixels in overlay # Overlay the images result = mh.stretch(mh.stretch(image) * (1 - alpha) + overlay * alpha) # Display the result imshow(result) show()
输出
上述代码的输出如下:
将图像叠加到具有指定透明度级别的图像上
要将图像叠加到具有指定透明度级别的图像上,我们需要首先定义所需的叠加图像的透明度级别。
透明度级别是 0.0(完全透明)到 1.0(完全不透明)之间的值。此值决定背景图像和叠加图像之间的混合比例。
然后使用 alpha 混合,我们可以根据定义的透明度级别将图像合并在一起。然后我们需要通过降低叠加图像存在区域的背景图像强度来调整背景图像强度。
为此,我们将背景图像乘以 (1 − alpha)。然后我们通过将其与 alpha 值相乘来控制叠加图像的透明度。
然后将调整后的背景图像和具有受控透明度的叠加图像加在一起以创建最终的叠加图像。
示例
现在,我们尝试将图像叠加到具有指定透明度级别的图像上:
import numpy as np import mahotas as mh from pylab import imshow, show # Load the images image = mh.imread('tree.tiff') overlay = mh.imread('sea.bmp') # Define the transparency level alpha = 0.5 # Blend the images using alpha blending and transparency level result = mh.stretch(mh.stretch(image) * (1 - alpha) + overlay * alpha) # Display the result imshow(result) show()
输出
以下是上述代码的输出: