?? p0702.m
字號:
I=imread('cancer02.bmp'); % 注意必須保證二值圖像中,細(xì)胞區(qū)域?yàn)榘咨珔^(qū)域或者像素點(diǎn)值為“1”
[x,y]=size(I);
BW = bwperim(I,8); % 檢測細(xì)胞的邊緣跟蹤,用于計算周長
%檢測垂直方向連讀的周長像素點(diǎn)%
P1=0;
P2=0;
Ny=0; % 記錄垂直方向連續(xù)周長像素點(diǎn)的個數(shù)
for i=1:x
for j=1:y
if (BW(i,j)>0)
P2=j;
if ((P2-P1)==1) % 判斷是否為垂直方向連續(xù)的周長像素點(diǎn)
Ny=Ny+1;
end
P1=P2;
end
end
end
%檢測水平方向連讀的周長像素點(diǎn)%
P1=0;
P2=0;
Nx=0; % 記錄水平方向連續(xù)周長像素點(diǎn)的個數(shù)
for j=1:y
for i=1:x
if (BW(i,j)>0)
P2=i;
if ((P2-P1)==1) % 判斷是否為水平方向連續(xù)的周長像素點(diǎn)
Nx=Nx+1;
end
P1=P2;
end
end
end
SN=sum(sum(BW)); % 計算周長像素點(diǎn)的總數(shù)
Nd=SN-Nx-Ny; % 計算奇數(shù)碼的鏈碼數(shù)目
H=max(sum(I)); % 計算細(xì)胞的高度
W=max(sum(I')); % 圖象I經(jīng)矩陣轉(zhuǎn)置后,計算寬度
L=sqrt(2)*Nd+Nx+Ny; % 計算周長
%====四個形態(tài)特征值計算===%
A=bwarea(I); % 計算細(xì)胞的面積
C=4*pi*A/(L*L); % 計算圓度
R=A/(H*W); % 計算矩形度
E=min(H,W)/max(H,W); % 計算伸長度
%==設(shè)定相關(guān)閾值,識別癌細(xì)胞==%
Ath1=10000; Ath2=50000;
Cth=0.5; Rth=0.5; Eth=0.8;
if ((A>=Ath1)&&(A<Ath2))
if ((C>=Cth)&&(R<=Rth)&&(E>Eth))
Cancer_Right=1 % 結(jié)論為癌細(xì)胞
end
else if (A>=Ath2)
Cancer_Right=2 % 結(jié)論為可疑小細(xì)胞癌細(xì)胞
else
Cancer_Right=0 % 結(jié)論為正常細(xì)胞
end
end
figure(1);
imshow(I);
figure(2);
imshow(BW);
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -