91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 2KB
    文件類型: .m
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-13
  • 語言: Matlab
  • 標簽:

資源簡介

Matlab寫的區域生長圖像分割程序。 %區域生長算法:region function LabelImage=region(image,seed,Threshold,maxv) %image:輸入圖像 %seed:種子點坐標堆棧 %threshold:用鄰域近似生長規則的閾值 %maxv:所有生長的像素的范圍小于maxv % LabelImage:輸出的標記圖像,其中每個像素所述區域標記為rn [seedNum,tem]=size(seed);%seedNum為種子個數 [Width,Height]=size(image); LabelImage=zeros(Width,Height); rn=0;%區域標記號碼 for i=1:seedNum %從沒有被標記的種子點開始進行生長 if LabelImage(seed(i,1),seed(i,2))==0 rn=rn+1;% %對當前生長區域賦標號值 LabelImage(seed(i,1),seed(i,2))=rn; % end stack(1,1)=seed(i,1);%將種子點壓入堆棧(堆棧用來在生長過程中的數據坐標) stack(1,2)=seed(i,2); Start=1;%定義堆棧起點和終點 End=1; while(Start<=End) %當前種子點坐標 CurrX=stack(Start,1); CurrY=stack(Start,2); %對當前點的8鄰域進行遍歷 for m=-1:1 for n=-1:1 % %判斷像素(CurrX,CurrY)是否在圖像內部 % rule1=(CurrX+m)=1&(CurrY+n)=1; % %判斷像素(CurrX,CurrY)是否已經處理過 % rule2=LabelImage(CurrX+m,CurrY+n)==0; % %判斷生長條件是否滿足 % rule3=abs(double(image(CurrX,CurrY))-double(image(CurrX+m,CurrY+n)))<Threshold; % %條件組合 % rules=rule1&rule2&rule3; if (CurrX+m)=1&(CurrY+n)=1&LabelImage(CurrX+m,CurrY+n)==0&abs(double(image(CurrX,CurrY))-double(image(CurrX+m,CurrY+n)))<=Threshold&image(CurrX+m,CurrY+n)0 %堆棧的尾部指針后移一位 End=End+1; %像素(CurrX+m,CurrY+n)壓入堆棧 stack(End,1)=CurrX+m; stack(End,2)=CurrY+n; %把像素(CurrX,CurrY)設置成邏輯1 LabelImage(CurrX+m,CurrY+n)=rn; end end end %堆棧的尾部指針后移一位 Start=Start+1; end end

資源截圖

代碼片段和文件信息

%區域生長算法:region
function?LabelImage=region(imageseedThresholdmaxv)
%image:輸入圖像
%seed:種子點坐標堆棧
%threshold:用鄰域近似生長規則的閾值
%maxv:所有生長的像素的范圍小于maxv
%?LabelImage:輸出的標記圖像,其中每個像素所述區域標記為rn


[seedNumtem]=size(seed);%seedNum為種子個數
[WidthHeight]=size(image);
LabelImage=zeros(WidthHeight);
rn=0;%區域標記號碼

for?i=1:seedNum?
???%從沒有被標記的種子點開始進行生長
????if?LabelImage(seed(i1)seed(i2))==0
???????????rn=rn+1;%?%對當前生長區域賦標號值
???????????LabelImage(seed(i1)seed(i2))=rn;
????%?????end
????????stack(11)=seed(i1);%將種子點壓入堆棧(堆棧用來在生長過程中的數據坐標)
????????stack(12)=seed(i2);
????????Start=1;%定義堆棧起點和終點
????????End=1;
????????while(Start<=End)
????????????%當前種子點坐標
????????????CurrX=stack(Start1);
????????????CurrY=stack(Start2);
????????????%對當前點的8鄰域進行遍歷
????????????for?m=-1:1
????????????????for?n=-1:1
%???????????????????????%判斷像素(CurrX,CurrY)是否在圖像內部
%???????????????????????rule1=(CurrX+m)<=Width&(CurrX+m)>=1&(CurrY+n)<=Height&(CurrY+n)>=1;
%????????????????????????%判斷像素(CurrX,CurrY)是否已經處理過
%???????????????????????rule2=LabelImage(CurrX+mCurrY+n)==0;
%??????

評論

共有 條評論