形態學處理 連通分量的提取

2022-04-08 04:57:43 字數 2637 閱讀 7755

實際上,在二值影象中提取連通分量是許多自**像分析應用中的核心任務。 令 y 表示乙個包含於集合 a 中的連通分量,並假設 y 中的乙個點 p 是已知的。而後,用下列的迭代表示式生成 y 的所有元素:

queue_head=1; %佇列頭

queue_tail=1; %佇列尾

neighbour=[-1 -1;-1 0;-1 1;0 -1;0 1;1 -1;1 0;1 1]; %和當前畫素座標相加得到八個鄰域座標

%neighbour=[-1 0;1 0;0 1;0 -1]; %四鄰域用的

q=[y x];

queue_tail=queue_tail+1;

[ser1 ser2]=size(neighbour);

while queue_head~=queue_tail

pix=q;

for i=1:ser1

pix1=pix+neighbour(i,:);

if pix1(1)>=1 && pix1(2)>=1 &&pix1(1)<=m && pix1(2)<=n

if img(pix1(1),pix1(2))==0

img(pix1(1),pix1(2))=1;

result(pix1(1),pix1(2))=1;

q=[pix1(1) pix1(2)];

queue_tail=queue_tail+1;

end

endend

queue_head=queue_head+1;

endfigure(1)

imshow(mat2gray(result));

title(

'提取之後的結果

結果:

clear all; %清理記憶體

close all; %關閉視窗

clc %清屏

%影象分割

ii=imread('

shape.bmp

'); %讀取彩色影象並轉換為灰度影象

quyufenge(ii); %區域分割(8鄰域區域生長)

function quyufenge(ii)

figure,subplot(1,2,1),imshow(ii),title('

二值化影象

'); %顯示輸入影象

%通過「滑鼠點選+回車」,選取種子點(x0,y0)

%規定:只允許在物件(白色區域)中選取乙個種子點

x0=1;

y0=1;

while ii(x0,y0) == 255[y0,x0]=getpts;

x0=uint32(x0);

y0=uint32(y0);

end[m,n]=size(ii);

%todo: 初始化大小為m×n、畫素值為0的輸出影象io

io=zeros(m,n);

io=quyushengzhang(x0,y0,io,ii); %對io執行區域迭代生長

subplot(1,2,2),imshow(io,),title('

分割後影象

'); %顯示分割後影象

function io=quyushengzhang(x0,y0,io,ii)

[m,n]=size(ii);

for i=[-1,0,1]%todo: 對於每個種子點(x0,y0),遍歷它的每個8鄰域畫素(xn,yn)

for j=[-1 0 1]%todo

%todo: 計算xn, yn

xn=x0+i;

yn=y0+j;

if (xn>0&&xn<=m && yn>0 && yn<=n &&ii(x0,y0)==ii(xn,yn) && io(xn,yn)==0) %todo: 如果(xn,yn)位於影象空間內,並且同時滿足ii(x0,y0)=ii(xn,yn),io(xn,yn)=0

io(xn,yn)=255;%todo: 區域生長

io=quyushengzhang(xn,yn,io,ii); %將(xn,yn)作為新的種子點,重複此步驟

形態學處理

腐蝕,膨脹 效果就是暗的地方侵入亮的地方 使用 給乙個結構元 二維陣列 結構元中有乙個錨點,計算過程就是如果結構元對應的區域有暗的,那錨點就變為暗的 記作 import cv2 as cv import numpy as np s cv.getstructuringelement cv.morph ...

opencv 形態學處理

影象形態學中的幾個基本操作 腐蝕 膨脹 開操作 閉操作。1.1 腐蝕 結構a被結構b腐蝕的定義為,a b a b 可以理解為,移動結構b,如果結構b與結構a的交集完全屬於結構a的區域內,則儲存該位置點,所有滿足條件的點構成結構a被結構b腐蝕的結果。1.2 膨脹 結構a被結構b膨脹的定義為,a b a...

OpenCV 形態學處理

形態學主要處理二值影象 0黑1白 kernel np.ones 5 5 np.uint8 numpy庫生成1陣列,資料型別為整形 img2 cv2.erode img,kernel,iterations 迭代次數,預設為1 膨脹又叫逆腐蝕。先腐蝕後膨脹,可用於降噪。我們把先腐蝕後膨脹的操作合併為開運...