%本函数图像清晰度进行检测
%目的是控制用于细胞识别的图像质量
%Mqxd--------图像清晰度,用单位边缘面积的梯度来度量;
%YCFlag-------图像染色异常标示;
%MAYB---------YB的最大值;
%QD-----------为红细胞的强度;
function [YCFlag,MqxdL]=Mqxd_JC10(I,YB,YZqxd,MAYB,QD)
[M,N]=size(I);
MA=M*N;
I1=I(10:M-10,10:N-10);
YZI=graythresh(I1);
AS=(I1<YZI);
XBA=bwarea(AS);
XBBLA=XBA/MA;
if XBBLA<0.1%I红细胞分割出错,采用去背景的方法分割得到红细胞分割
MAI=max(max(I1)');
I2=imadjust(I1,[0,MAI],[0,1],1);
AS=(I2<0.9);
XBA=bwarea(AS);
XBBLA=XBA/MA;
if XBBLA<0.1
YCFlag=2;
end
end
AS=IMOPEN_AS(AS,2);
AS=DILATE_AS(AS,2);
TD=abs(gradient(I1));
%EGE=edge(I1,'prewitt');
EGE=edge(I1,'canny');
EGE=EGE&AS;
%Aege=bwarea(EGE);
IDX=find(EGE);
%Mqxd=sum(TD(IDX))/(Aege+eps);
Mqxd=median(TD(IDX));
Lxs=1/QD;
MqxdL=Mqxd*Lxs;
YCFlag=1;
if MqxdL<YZqxd
YCFlag=2;
end
%白细胞面积比例学习,用于异常增多建模型
fid = fopen('Mqxd.txt','a');
fprintf(fid,'%8.6f\n',Mqxd);
fclose(fid);
fid = fopen('MqxdL.txt','a');
fprintf(fid,'%8.6f\n',MqxdL);
fclose(fid);