- 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 - 二維拉普拉斯濾波器
拉普拉斯濾波器用於檢測影像中的邊緣和強度變化。在數學上,拉普拉斯濾波器定義為影像在x和y方向上二階導數的和。
二階導數提供關於每個畫素強度變化率的資訊。
拉普拉斯濾波器強調影像中強度快速變化的區域,例如邊緣和角點。它的工作原理是從中心畫素中減去周圍畫素的平均值,這給出了強度二階導數的度量。
在二維情況下,拉普拉斯濾波器通常由一個方形矩陣表示,通常為3×3或5×5。這是一個3×3拉普拉斯濾波器的示例:
0 1 0 1 -4 1 0 1 0
Mahotas中的二維拉普拉斯濾波器
為了在Mahotas中應用二維拉普拉斯濾波器,我們可以使用`mahotas.laplacian_2D()`函式。以下是Mahotas中二維拉普拉斯濾波器工作原理概述:
輸入影像
該濾波器採用灰度輸入影像。
卷積
拉普拉斯濾波器使用卷積核對輸入影像進行卷積運算。卷積核決定了卷積過程中應用於相鄰畫素的權重。
卷積運算包括在整個影像上滑動卷積核。在每個畫素位置,拉普拉斯濾波器將對應的卷積核權重與鄰域中的畫素值相乘並計算總和。
拉普拉斯響應
拉普拉斯響應是透過將拉普拉斯運算元應用於影像獲得的。
它表示影像中的強度變化或不連續性,這些與邊緣相關。
`mahotas.laplacian_2D()`函式
`mahotas.laplacian_2D()`函式以灰度影像作為輸入,並對其執行二維拉普拉斯運算。結果影像突出顯示強度快速變化的區域,例如邊緣。
語法
以下是Mahotas中`laplacian_2D()`函式的基本語法:
mahotas.laplacian_2D(array, alpha=0.2)
其中:
array - 輸入影像。
alpha (可選) - 介於0和1之間的標量值,控制拉普拉斯濾波器的形狀。較大的alpha值會增加拉普拉斯濾波器對邊緣的靈敏度。預設值為0.2。
示例
以下是使用`laplacian_2D()`函式檢測影像邊緣的基本示例:
import mahotas as mh
import numpy as np
import matplotlib.pyplot as mtplt
image = mh.imread('picture.jpg', as_grey = True)
# Applying a laplacian filter
filtered_image = mh.laplacian_2D(image)
# Displaying the original image
fig, axes = mtplt.subplots(1, 2, figsize=(9, 4))
axes[0].imshow(image, cmap='gray')
axes[0].set_title('Original Image')
axes[0].axis('off')
# Displaying the laplacian filtered featured image
axes[1].imshow(filtered_image, cmap='gray')
axes[1].set_title('Laplacian Filtered')
axes[1].axis('off')
mtplt.show()
輸出
執行上述程式碼後,我們將得到以下輸出:
縮放拉普拉斯響應
透過改變alpha引數,我們可以控制拉普拉斯響應的尺度。較小的alpha值,例如0.2,會產生相對細微的響應,突出顯示更精細的細節和邊緣。
另一方面,較大的alpha值,例如0.8,會放大響應,使其更加明顯,並強調更突出的邊緣和結構。
因此,我們可以在拉普拉斯濾波器中使用不同的alpha值來反映邊緣檢測的變化。
示例
在這裡,我們使用拉普拉斯濾波器中的不同alpha值來反映邊緣檢測的變化:
import mahotas as mh
import matplotlib.pyplot as plt
# Load an example image
image = mh.imread('pic.jpg', as_grey=True)
# Apply the Laplacian filter with different alpha values
filtered_image_1 = mh.laplacian_2D(image, alpha=0)
filtered_image_2 = mh.laplacian_2D(image, alpha=0.5)
filtered_image_3 = mh.laplacian_2D(image, alpha=1)
# Display the original and filtered images with different scales
fig, axes = plt.subplots(1, 4, figsize=(12, 3))
axes[0].imshow(image, cmap='gray')
axes[0].set_title('Original Image')
axes[0].axis('off')
axes[1].imshow(filtered_image_1, cmap='gray')
axes[1].set_title('Filtered Image (alpha=0)')
axes[1].axis('off')
axes[2].imshow(filtered_image_2, cmap='gray')
axes[2].set_title('Filtered Image (alpha=0.5)')
axes[2].axis('off')
axes[3].imshow(filtered_image_3, cmap='gray')
axes[3].set_title('Filtered Image (alpha=1)')
axes[3].axis('off')
plt.show()
輸出
上述程式碼的輸出如下:
使用隨機生成的陣列
我們也可以對隨機生成的陣列應用拉普拉斯濾波器。為此,我們首先需要建立一個隨機的二維陣列。我們可以使用NumPy庫的`np.random.rand()`函式建立陣列。
此函式生成0到1之間的值,表示陣列的畫素強度。
接下來,我們將隨機生成的陣列傳遞給`mahotas.laplacian_2D()`函式。此函式將拉普拉斯濾波器應用於輸入陣列並返回已濾波的陣列。
示例
現在,我們嘗試將拉普拉斯濾波器應用於隨機生成的陣列:
import mahotas as mh
import numpy as np
import matplotlib.pyplot as plt
# Generate a random 2D array
array = np.random.rand(100, 100)
# Apply the Laplacian filter
filtered_array = mh.laplacian_2D(array)
# Display the original and filtered arrays
plt.figure(figsize=(10, 5))
plt.subplot(1, 2, 1)
plt.imshow(array, cmap='gray')
plt.title('Original Array')
plt.axis('off')
plt.subplot(1, 2, 2)
plt.imshow(filtered_array, cmap='gray')
plt.title('Filtered Array')
plt.axis('off')
plt.show()
輸出
上述程式碼的輸出如下: