- Matlab 教程
- MATLAB - 首頁
- MATLAB - 概述
- MATLAB - 功能
- MATLAB - 環境設定
- MATLAB - 編輯器
- MATLAB - 線上版
- MATLAB - 工作區
- MATLAB - 語法
- MATLAB - 變數
- MATLAB - 命令
- MATLAB - 資料型別
- MATLAB - 運算子
- MATLAB - 日期和時間
- MATLAB - 數字
- MATLAB - 隨機數
- MATLAB - 字串和字元
- MATLAB - 文字格式化
- MATLAB - 時間表
- MATLAB - M 檔案
- MATLAB - 冒號表示法
- MATLAB - 資料匯入
- MATLAB - 資料匯出
- MATLAB - 資料歸一化
- MATLAB - 預定義變數
- MATLAB - 決策
- MATLAB - 決策語句
- MATLAB - if end 語句
- MATLAB - if else 語句
- MATLAB - if…elseif else 語句
- MATLAB - 巢狀 if 語句
- MATLAB - switch 語句
- MATLAB - 巢狀 switch
- MATLAB - 迴圈
- MATLAB - 迴圈
- MATLAB - for 迴圈
- MATLAB - while 迴圈
- MATLAB - 巢狀迴圈
- MATLAB - break 語句
- MATLAB - continue 語句
- MATLAB - end 語句
- MATLAB - 陣列
- MATLAB - 陣列
- MATLAB - 向量
- MATLAB - 轉置運算子
- MATLAB - 陣列索引
- MATLAB - 多維陣列
- MATLAB - 相容陣列
- MATLAB - 分類陣列
- MATLAB - 元胞陣列
- MATLAB - 矩陣
- MATLAB - 稀疏矩陣
- MATLAB - 表格
- MATLAB - 結構體
- MATLAB - 陣列乘法
- MATLAB - 陣列除法
- MATLAB - 陣列函式
- MATLAB - 函式
- MATLAB - 函式
- MATLAB - 函式引數
- MATLAB - 匿名函式
- MATLAB - 巢狀函式
- MATLAB - return 語句
- MATLAB - 無返回值函式
- MATLAB - 區域性函式
- MATLAB - 全域性變數
- MATLAB - 函式控制代碼
- MATLAB - 濾波函式
- MATLAB - 階乘
- MATLAB - 私有函式
- MATLAB - 子函式
- MATLAB - 遞迴函式
- MATLAB - 函式優先順序順序
- MATLAB - map 函式
- MATLAB - mean 函式
- MATLAB - end 函式
- MATLAB - 錯誤處理
- MATLAB - 錯誤處理
- MATLAB - try…catch 語句
- MATLAB - 除錯
- MATLAB - 繪圖
- MATLAB - 繪圖
- MATLAB - 繪製陣列
- MATLAB - 繪製向量
- MATLAB - 條形圖
- MATLAB - 直方圖
- MATLAB - 圖形
- MATLAB - 二維線圖
- MATLAB - 三維圖
- MATLAB - 格式化繪圖
- MATLAB - 對數座標軸圖
- MATLAB - 繪製誤差條
- MATLAB - 繪製三維等高線圖
- MATLAB - 極座標圖
- MATLAB - 散點圖
- MATLAB - 繪製表示式或函式
- MATLAB - 繪製矩形
- MATLAB - 繪製頻譜圖
- MATLAB - 繪製網格曲面圖
- MATLAB - 繪製正弦波
- MATLAB - 插值
- MATLAB - 插值
- MATLAB - 線性插值
- MATLAB - 二維陣列插值
- MATLAB - 三維陣列插值
- MATLAB - 多項式
- MATLAB - 多項式
- MATLAB - 多項式加法
- MATLAB - 多項式乘法
- MATLAB - 多項式除法
- MATLAB - 多項式的導數
- MATLAB - 變換
- MATLAB - 變換函式
- MATLAB - 拉普拉斯變換
- MATLAB - 拉普拉斯濾波器
- MATLAB - 高斯-拉普拉斯濾波器
- MATLAB - 逆傅立葉變換
- MATLAB - 傅立葉變換
- MATLAB - 快速傅立葉變換
- MATLAB - 二維逆餘弦變換
- MATLAB - 向座標軸新增圖例
- MATLAB - 面向物件
- MATLAB - 面向物件程式設計
- MATLAB - 類和物件
- MATLAB - 函式過載
- MATLAB - 運算子過載
- MATLAB - 使用者自定義類
- MATLAB - 複製物件
- MATLAB - 代數
- MATLAB - 線性代數
- MATLAB - 高斯消元法
- MATLAB - 高斯-約旦消元法
- MATLAB - 簡化行階梯形式
- MATLAB - 特徵值和特徵向量
- MATLAB - 積分
- MATLAB - 積分
- MATLAB - 二重積分
- MATLAB - 梯形法則
- MATLAB - 辛普森法則
- MATLAB - 其他
- MATLAB - 微積分
- MATLAB - 微分
- MATLAB - 矩陣的逆
- MATLAB - GNU Octave
- MATLAB - Simulink
- MATLAB - 有用資源
- MATLAB - 快速指南
- MATLAB - 有用資源
- MATLAB - 討論
MATLAB - 拉普拉斯濾波器
拉普拉斯濾波器是一種用於影像處理的影像增強濾波器。它透過強調快速強度變化的區域來銳化影像。拉普拉斯濾波器基於拉普拉斯運算元,這是一種用於檢測影像邊緣和精細細節的二階導數運算元。
在後面的部分,我們將瞭解拉普拉斯濾波器在影像上使用的不同方法。
使用 Matlab 中的 imfilter() 函式對影像進行拉普拉斯濾波
在 MATLAB 中,可以使用 imfilter 函式將拉普拉斯濾波器應用於影像。imfilter 函式將影像與表示拉普拉斯運算元的核進行卷積。此核突出顯示影像中快速強度變化的區域,使邊緣顯得更清晰。
語法
output_image = imfilter(input_image, filter_kernel);
輸入影像 − 這是要濾波的輸入影像。它可以是灰度影像(二維陣列)或彩色影像(具有 [高度,寬度,通道] 維度的三維陣列)。
濾波器核 − 這是定義如何執行濾波操作的濾波器核或掩碼。它通常是一個二維陣列(對於二維影像)或三維陣列(對於三維影像),表示濾波器的權重。濾波器核的大小決定了應用濾波的鄰域大小。常見的濾波器核包括拉普拉斯濾波器、高斯濾波器、Sobel 濾波器等。
輸出影像 − 這是應用濾波器後的輸出影像。它的大小和資料型別與輸入影像相同。
讓我們看看 imfilter() 函式中拉普拉斯濾波器的一個示例
示例 1:在 imfilter() 中使用拉普拉斯濾波器
我們的程式碼如下:
% Read the image
img = imread('peppers.png');
% Display the original image
imshow(img);
title('Original Image');
% Apply the Laplacian filter
laplacian_filter = [0 -1 0; -1 4 -1; 0 -1 0];
filtered_img = imfilter(img, laplacian_filter);
% Display the filtered image
subplot(1, 2, 2);
imshow(filtered_img, []);
title('Laplacian Filtered Image');
在上例中,
- 程式碼使用 imread() 函式從當前目錄讀取名為 'peppers.png' 的影像檔案。影像儲存在變數 img 中。
- 程式碼使用 subplot 函式建立一個包含 1 行 2 列子圖的圖形,然後選擇第一個子圖 (1, 2, 1)。imshow() 函式用於在此子圖中顯示影像 img。title 函式設定子圖的標題為“原始影像”。
- 程式碼定義了一個 3x3 拉普拉斯濾波器核 laplacian_filter,用於執行影像濾波。使用 imfilter() 函式將拉普拉斯濾波器應用於原始影像,結果儲存在變數 filtered_img 中。
- 與顯示原始影像類似,程式碼使用 subplot 選擇第二個子圖 (1, 2, 2) 並使用 imshow() 顯示濾波後的影像 filtered_img。此子圖的標題設定為“拉普拉斯濾波影像”。
我們得到的輸出如下:
使用 Matlab 中的 conv2() 函式對影像進行拉普拉斯濾波
conv2() 是 MATLAB 中用於二維卷積的函式,它是影像處理中的一個基本運算。它通常用於將濾波器應用於影像,例如模糊、銳化、邊緣檢測等。
語法
C = conv2(A, B, 'same');
在語法中
- A 是輸入影像或矩陣。
- B 是二維濾波器核(例如拉普拉斯濾波器)。
- 'same' 是一個可選引數,它指定輸出矩陣 C 的大小與輸入矩陣 A 相同。
讓我們來看一個相同的例子
例子
我們的程式碼如下:
% Read the image as grayscale
img_gray = imread('peppers.jpg');
% Define the Laplacian filter kernel
laplacian_filter = [0 -1 0; -1 4 -1; 0 -1 0];
% Apply the Laplacian filter using conv2
filtered_img = conv2(double(img_gray), laplacian_filter, 'same');
% Display the original and filtered images
subplot(1, 2, 1);
imshow(img_gray);
title('Original Image');
subplot(1, 2, 2);
imshow(uint8(filtered_img));
title('Laplacian Filtered Image');
在上例中,
- 將影像 'peppers.jpg' 作為灰度影像讀取並將其儲存在變數 img_gray 中。
- 定義一個 3x3 拉普拉斯濾波器核 laplacian_filter。此核用於邊緣檢測。
- 使用 conv2 進行拉普拉斯濾波:使用 double(img_gray) 將灰度影像轉換為雙精度矩陣。使用 conv2 應用拉普拉斯濾波器到灰度影像,這將執行二維卷積。'same' 選項確保輸出影像與輸入影像大小相同。
- 顯示原始影像和濾波影像:為此,使用 subplot 建立一個包含兩個子圖的圖形。在第一個子圖中顯示原始灰度影像。在第二個子圖中顯示拉普拉斯濾波影像(使用 uint8(filtered_img) 將其轉換回 uint8 格式)。
當我們在 matlab 命令視窗中執行程式碼時,我們得到的輸出為:
廣告