
- 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()
輸出
以下是上述程式碼的輸出:
