癌细胞图像均匀化归一化二值化处理
I=imread('F:cancer.bmp');%%读图像
I=I(:,:,1);
figure(1)
subplot(1,2,1)
imshow(I)
title('原图像')
subplot(1,2,2)
imhist(I)
I2=histeq(I);
figure(2)
subplot(1,2,1)
imshow(I2)
title('直方图均衡化')
subplot(1,2,2)
imhist(I2)
[m,n]=size(I2);
I1=double(I2);%归一化
M0=150;var0=200;
M = 0 ; var = 0; %%M为原图像的均值,var为方差,先进行初始化0
M=double(M);
var=double(var);
for x = 1 : m
for y = 1 : n
M = M + I1(x,y); %%求所有像素的灰度和
end
M=M/(m*n); %%M1整幅图像的灰度均值
for x=1:m
for y=1:n
var=var+(I1(x,y)-M).^2;
end
end
end
var=var/(m*n); %%var1整幅图像的方差
for x=1:m
%%使用归一化的公式进行计算
for y=1:n
if I1(x,y)>=M
%%如果大于均值
I1(x,y)=M0+sqrt(var0*((I1(x,y)-M).^2)/var);
I1(x,y)=M0-sqrt(var0*((M-I1(x,y)).^2)/var);
else
end
end
end
Igrey = uint8(I1*255);
figure(3);subplot(1,2,1);imshow(I);title('均衡化后图像')
subplot(1,2,2);imshow(uint8(I1));title('归一化后的图像')
[x,y]=size(I);
for i=1:x
for j =1:y
if(I(i,j)>105)
I(i,j)=1;
else
end;
I(i,j)=0;
end
end
癌细胞图像形态学分析
clc;
G=imread('F:4.jpg');%%读图像
I=rgb2gray(G);
[x,y]=size(I);
BW=bwperim(I,8);
P1=0;
P2=0;
Ny=0;
for i=1:x
for j=1:y
if(BW(i,j)>0)
P2=j;
if((P2-P1)==1)
Ny=Ny+1;
end
P1=P2;
end
end
end
P1=0;
P2=0;
Nx=0;
for j=1:y
for i=1:x
if(BW(i,j)>0)
P2=i;
if((P2-P1)==1)
Nx=Nx+1;
end
P1=P2;
end
end
end
SN=sum(sum(BW));
Nd=SN-Nx-Ny;
H=max(sum(I));
W=max(sum(I'));
L=sqrt(2)*Nd+Nx+Ny
A=bwarea(I);
C=4*pi*A/(L*L);
R=A/(H*W);
E=min(H,W)/max(H,W);
Ath1=10000;
Ath2=50000;
Cth=0.5;
Rth=0.5;
Eth=0.8;
if((A>Ath1)&&(A
Cth)&&(R<=Rth)&&(E>Eth))
Cancer_Right=1 %结论为癌细胞
end
else if(A>Ath2)
Cancer_Rignt=2 %结论可疑小细胞癌细胞
Cancer_Rignt=0 %结论为正常细胞
else
end
end
figure(1);
imshow(I);
figure(2);
imshow(BW);
癌细胞图像色度学分析
clc;
I=imread('F:cancer.bmp');
[x,y,z]=size(I);
myI=double(I);
H=zeros(y,x);
S=H;
HS_I=H;
for j=1:x
for i=1:y
end
if(myI(j,i,2)>=myI(j,i,3))
H(j,i)=Hdegree;
H(j,i)=(2*pi-Hdegree);
else
end
if((H(j,i)>=Hth1)||(H(j,i)<=Hth2))
Nred=Nred+1;
HS_I(j,i)=((myI(j,i,1)+myI(j,i,2)+myI(j,i,3))/3);
S(j,i)=1-3*min(myI(j,i,:))/(myI(j,i,1)+myI(j,i,2)+myI(j,i,3));
if((myI(j,i,1)==myI(j,i,2))&&(myI(j,i,1)==myI(j,i,3)))
Hdegree=0;
else
Hdegree=acos(0.5*(2*myI(j,i,1)-myI(j,i,2)-myI(j,i,3))/((myI(j,i,1)
-myI(j,i,2))^2+(myI(j,i,1)-myI(j,i,3))*(myI(j,i,2)-myI(j,i,3)))^0.
5);
end
end
Hth1=0.9*2*pi;
Hth2=0.1*2*pi;
Nred=0;
for i=1:x
for j=1:y
end
end
end
Ratio=Nred/(x*y);
if(Ratio>=0.6)
else
Red=1
Red=0
end
HS_I=uint8(HS_I);
figure(1);
imshow(I);
figure(2);
imshow(HS_I);