1. 程式人生 > >形態學影象處理——影象膨脹&影象腐蝕

形態學影象處理——影象膨脹&影象腐蝕



一、準備知識1——概念介紹

1.形態學是什麼

形態學在數字影象處理中表示的是影象的數學形態裡的內容,將數學形態學作為工具從影象中提取區域影象形狀的有用的影象分量,如邊緣、骨架,區域分割等。

如例:


如例:

如例:


2、數學形態學的語言是集合論。這個集合表示的是影象中的物件。
3、有哪些物件呢?
在二值影象中,每一個畫素點都是一個物件,畫素點的值只有0,1之分,所以,所有值為1的畫素的集合就是一個完整的形態學描述。在這個集合裡,每個元素都是一個二維向量(畫素值都是1,只有x,y座標資訊不一致)。在灰度影象中,一個圖片包含了一個畫素點的座標值、畫素的亮度值。所以可以將其看作是三位空間上的一個集合。還有些影象有更高維的資訊,如RGB影象,有R、G、B三個影象通道,每個通道都有座標和畫素值,RGB-D感測器有四個通道。

二、關於影象知識

1、反射


2、平移


3、結構元(SE):

即:研究影象感興趣部分時用的小集合或小圖片
SE裡包含了成員和原點(原點的設立依賴於問題)


4.結構元的使用


三、原理

1、腐蝕


2、膨脹


四、程式碼

clear all;
clc;

%影象進行中值濾波,並顯示影象
%讀進影象
 [filename, pathname] = uigetfile({'*.jpg'; '*.bmp'; '*.gif'}, '選擇原圖片');

%沒有影象
if filename == 0
    return;
end

picture = imread([pathname, filename]);
[m, n, z] = size(picture);

%彩色圖片轉化為二進位制圖片
if z>1
    graypicture = rgb2gray(picture);%轉換為灰度圖
    level = graythresh(graypicture);%使用最大類間方差法找到圖片的一個合適的閾值
    imgbw = im2bw(graypicture,level);%將灰度影象 picture 轉換為二進位制影象 
end

%影象膨脹
b=[0 1 0;1 1 1;0 1 0];
c=imdilate(imgbw,b);

%影象腐蝕
d=imerode(imgbw,b);

figure(1)
 subplot(1,4,1);
    imshow(picture);
    title('原圖片');
 subplot(1,4,2);
    imshow(imgbw);
    title('二值圖片');
 subplot(1,4,3);
    imshow(c);
    title('膨脹圖片');
 subplot(1,4,4);
    imshow(d);
    title('腐蝕圖片');

五、實驗結果