
- 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 - Haralic特徵
- 標記區域的權重
- Mahotas - Zernike特徵
- Mahotas - Zernike矩
- Mahotas - 排序濾波器
- Mahotas - 二維拉普拉斯濾波器
- Mahotas - 多數濾波器
- Mahotas - 均值濾波器
- Mahotas - 中值濾波器
- Mahotas - Otsu方法
- Mahotas - 高斯濾波
- Mahotas - Hit & Miss變換
- Mahotas - 標記最大值陣列
- Mahotas - 影像平均值
- Mahotas - SURF密集點
- Mahotas - SURF積分影像
- Mahotas - Haar變換
- 突出顯示影像最大值
- 計算線性二值模式
- 獲取標籤邊界
- 反轉Haar變換
- Riddler-Calvard方法
- 標記區域的大小
- Mahotas - 模板匹配
- 加速魯棒特徵
- 去除邊界標記
- Mahotas - Daubechies小波
- Mahotas - Sobel邊緣檢測
Mahotas影像閉運算
閉運算與開運算相反。首先進行膨脹操作,然後進行腐蝕操作。膨脹檢查每個畫素及其相鄰畫素。
如果任何相鄰畫素為白色,則中心畫素也變為白色。此步驟有助於擴充套件或加厚影像,並可以填充小的間隙或孔洞。
膨脹之後,腐蝕檢查每個畫素及其相鄰畫素。如果任何相鄰畫素為黑色,則中心畫素也變為黑色。此步驟有助於收縮或去除不需要的細節,例如細小的突出部分和內部噪聲。
閉運算有效地關閉二值影像中的小孔或間隙,並平滑或消除小的前景區域。
Mahotas中的影像閉運算
要在Mahotas中執行閉運算,我們使用`mahotas.close()`函式。此方法允許順序應用膨脹和腐蝕操作。
膨脹擴充套件剩餘結構,同時透過用其鄰域中的最大值替換每個畫素來保留其關鍵特徵。
隨後,腐蝕透過考慮每個畫素的鄰域並將其替換為最小值來減少噪聲並消除小的結構。
`mahotas.close()`函式
Mahotas中的`close()`函式有兩個主要引數:二值影像和結構元素(核心)。該函式首先將膨脹操作應用於輸入二值影像。然後,它將腐蝕操作應用於膨脹後的影像。
`close()`函式在執行膨脹和腐蝕操作後返回生成的閉合影像。
語法
以下是Mahotas中`close()`函式的基本語法:
mahotas.close(f, Bc={3x3 cross}, out={np.empty_like(f)})
其中,
f - 它是表示為NumPy陣列的輸入二值影像。
Bc - 它是用於膨脹和腐蝕操作的結構元素。預設為3x3十字形結構元素。
out - 它是輸出陣列。結果將儲存在一個與輸入影像f具有相同形狀和資料型別的新陣列中。
示例
在下面的示例中,我們對影像執行閉運算:
import mahotas as mh import numpy as np import matplotlib.pyplot as plt image = mh.imread('sun.png') closed_image = mh.close(image) # Create a figure with subplots fig, axes = plt.subplots(1, 2, figsize=(7,5 )) # Display the original image axes[0].imshow(image) axes[0].set_title('Original Image') axes[0].axis('off') # Display the closed image axes[1].imshow(closed_image, cmap='gray') axes[1].set_title('Closed Image') axes[1].axis('off') # Adjust the layout and display the plot plt.tight_layout() plt.show()
輸出
執行上述程式碼後,我們得到以下輸出:

使用隨機二值影像
我們還可以透過建立隨機二值影像來對影像執行閉運算。為此,我們首先使用NumPy建立一個隨機二值影像,其中畫素為0(背景)或1(前景)。
一旦我們有了二值影像,就可以使用結構元素進行形態學閉運算。它將定義膨脹和腐蝕操作的鄰域的形狀和大小。
此外,我們建立一個與輸入影像形狀相同的空陣列來儲存結果。最後,我們得到最終的閉合影像。
示例
在這裡,我們嘗試透過建立隨機二值影像來對影像執行閉運算:
import mahotas as mh import numpy as np from pylab import imshow, show # Create a random binary image image = np.random.randint(0, 2, size=(100, 50), dtype=np.bool_) Bc=np.ones((3,3)) # Perform morphological closing with a 3x3 cross structuring element result = mh.close(image, Bc, out=np.empty_like(image)) # Show the result imshow(result) show()
輸出
生成的輸出如下所示:

使用灰度影像
我們也可以在mahotas中對灰度影像執行閉運算。為此,我們在讀取影像時只需傳遞`as_grey=True`引數,確保影像以灰度影像載入。接下來,我們將對灰度影像執行形態學閉運算。
示例
現在,我們在mahotas中對灰度影像執行閉運算:
import mahotas as mh import numpy as np from pylab import imshow, show # Create a grayscale image image = mh.imread('nature.jpeg', as_grey = True).astype(np.uint8) Bc=np.ones((20,15)) # Perform morphological closing with a 3x3 cross structuring element result = mh.close(image, Bc, out=np.empty_like(image)) # Show the result imshow(result) show()
輸出
以下是上述程式碼的輸出:
