MATLAB 中的影象侵蝕

Ammar Ali 2021年11月29日
MATLAB 中的影象侵蝕

本教程將討論使用 Matlab 中的 imerode() 函式查詢影象的侵蝕。

使用 MATLAB 中的 imerode() 函式查詢影象的侵蝕

影象的侵蝕意味著影象的縮小。為了找到影象的侵蝕,我們需要在矩陣上移動結構元素,並用鄰居的最小值替換畫素的值。如果鄰域中的最小值為零,則畫素值將設定為零。首先,我們將使用函式 imread() 讀取影象並將其儲存在一個變數中。之後,我們需要使用函式 im2bw() 將影象值轉換為二進位制,如果它不是二進位制的。我們還必須建立結構元素。之後,我們需要使用 imerode() 函式,它將檢查每個畫素的鄰居並將畫素值替換為畫素的最小值。例如,讓我們在 Matlab 中使用矩陣作為結構元素來查詢影象的侵蝕,並使用 subplot()inshow() 函式將它們顯示在圖形中。請參閱下面的程式碼。

OriginalImg = imread('text.png');
OriginalImg = im2bw(OriginalImg);
ErodMat = ones(3,3);
ErodedImg = imerode(OriginalImg,ErodMat);
figure
subplot(1,2,1)
imshow(OriginalImg)
title('Orignal Image')
subplot(1,2,2)
imshow(ErodedImg)
title('Eroded Image')

輸出:

影象侵蝕

在上面的程式碼中,我們使用了一個包含 1 的 3×3 矩陣來侵蝕原始影象。矩陣的大小與影象的侵蝕成正比。增加矩陣的大小會增加對圖片的侵蝕。你可以使用所需的結構元素來侵蝕影象。例如,你可以使用另一個影象來侵蝕影象。

Author: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

相關文章 - MATLAB Image