⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 total1.m

📁 尿沉渣图像识别
💻 M
字号:
N=imread('1_0.jpg');
N=rgb2gray(N);

se = strel('disk', 15);
Itop = imtophat(N, se);  % 高帽变换
Ibot = imbothat(N, se);  % 低帽变换
figure, imshow(Itop, []);   % 高帽变换,体现原始图像的灰度峰值
figure, imshow(Ibot, []);   % 低帽变换,体现原始图像的灰度谷值
Ienhance = imsubtract(imadd(Itop, N), Ibot);% 高帽图像与低帽图像相减,增强图像


T=graythresh(Ienhance);
IM=Ienhance>=255*T;
IM=imcomplement(IM);
se=strel('disk',4);
f=imopen(IM,se);
f=imclearborder(f,8);
g=imreconstruct(f,IM);

g=imfill(g,'holes');
[L,num]=bwlabel(g,4);

num
para=zeros(num,9);
for ii=1:num
    [r,c]=find(L==ii);
    r1=size(r);
    xmax=0;
    xmin=r(1);
    ymax=0;
    ymin=c(1);
    for i1=1:r1 
        if r(i1)>xmax
            xmax=r(i1);
        end
        if r(i1)<xmin
            xmin=r(i1);
        end
        if c(i1)>ymax
            ymax=c(i1);
        end
        if c(i1)<ymin
            ymin=c(i1);
        end
    end
    sample=Ienhance(xmin:xmax,ymin:ymax);
    I=sample;
    imwrite(sample,'wo.jpg');
    

figure,imshow(sample);

%textstate





%     
% 注意必须保证二值图像中,细胞区域为白色区域或者像素点值为“1”
[x,y]=size(I);
%@@@@@@@@@@@@@@@@@@@@@@@@@
T=graythresh(I);
IM=sample>=255*T;
IM=imcomplement(IM);
se=strel('disk',2);
f=imopen(IM,se);

g=imreconstruct(f,IM);

g=imfill(g,'holes');
figure,imshow(g)




%@@@@@@@@@@@@@@@@@@@@@@@@@ 
BW = bwperim(g,8); % 检测细胞的边缘跟踪,用于计算周长 

% figure(2);
% imshow(BW);

%检测垂直方向连读的周长像素点%
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'));  % 图象I经矩阵转置后,计算宽度
LL=sqrt(2)*Nd+Nx+Ny;   % 计算周长

%====四个形态特征值计算===%
A=bwarea(I);     % 计算细胞的面积
C=4*pi*A/(LL*LL);   % 计算圆度
R=A/(H*W);   % 计算矩形度
E=min(H,W)/max(H,W);  % 计算伸长度








para(ii,1)=Nd;
para(ii,2)=H;
para(ii,3)=W;
para(ii,4)=LL;
para(ii,5)=A;
para(ii,6)=C;
para(ii,7)=R;
para(ii,8)=E;

IN=imread('wo.jpg');
para(ii,9)=GrayExitMonentR(IN);
 

 


 
 
    
end
Tpara=para'
som(Tpara);


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -