一、簡介
1 區域生長演算法的基本思想
將有相似性質的像素點合并到一起,對每一個區域要先指定一個種子點作為生長的起點,然后將種子點周圍領域的像素點和種子點進行對比,將具有相似性質的點合并起來繼續向外生長,直到沒有滿足條件的像素被包括進來為止,這樣一個區域的生長就完成了,這個程序中有幾個關鍵的問題:
a> 給定種子點(種子點如何選取?)
種子點的選取很多時候都采用人工互動的方法實作,也有用其他方式的,比如尋找物體并提取物體內部點作為種子點,
b> 確定在生長程序中能將相鄰像素包括進來的準則
灰度影像的差值;彩色影像的顏色等等,都是關于像素與像素間的關系描述,
c> 生長的停止條件
2 演算法步驟 :
a> 創建一個空白的影像(全黑);
b> 將種子點存入vector中,vector中存盤待生長的種子點;
c> 依次彈出種子點并判斷種子點如周圍8鄰域的關系(生長規則),相似的點則作為下次生長的種子點;
d> vector中不存在種子點后就停止生長,

二、源代碼
clear all, close all, clc
f = imread('defective_weld.tif');
imshow(f), title('原始圖象')
figure, [counts,x] = imhist(f); bar(x,counts), title('原始圖象的直方圖')
S = 255;
T = 65;
[g, NR, SI, TI] = regiongrow(f, S, T);
figure, imshow(SI), title('種子點圖象')
figure, imshow(TI), title('閾值測驗后的圖象')
figure, imshow(g), title('8連通性分析后的圖象')
bw = edge(g, 'canny');
figure, imshow(bw), title('邊緣圖象')
ff = f;
ff(bw) = 0;
figure, imshow(ff), title('疊加圖象')
三、運行結果



四、備注
完整代碼或者代寫添加QQ 1564658423
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/280574.html
標籤:其他
