function edge=ROA(image,height,width)
len=7;
if (mod(len,2)==1)
middle_l=(len+1)/2;
else
return;
end
image_1=image;
%将数据复制给窗口
for i=1:(height-len+1)
for j=1:(width-len+1)
window=image(i:i+len-1,j:j+len-1);
%对窗口进行处理
middle=window_pro(window,len,middle_l);
image_1(middle_l+i-1,middle_l+j-1)=middle;
end
end
%image_1(image_1<0.45)=0;
%image_1(image_1>=0.45)=1;
edge=image_1;
function rmin=window_pro(window,len,middle_l)
%n=len*(len-1)/2;
s1=sum(window(1:middle_l-1,:));
s2=sum(window(middle_l+1:len,:));
r0=s1/s2;
if(r0>1)
r0=1/r0;
end
s1=sum(window(:,1:middle_l-1));
s2=sum(window(:,middle_l+1:len));
r90=s1/s2;
if(r90>1)
r90=1/r90;
end
s1=sum(sum(tril(window)))-trace(window);
s2=sum(sum(triu(window)))-trace(window);
r135=s1/s2;
if(r135>1)
r135=1/r135;
end
w=rot90(window);
s1=sum(sum(tril(w)))-trace(w);
s2=sum(sum(triu(w)))-trace(w);
r45=s1/s2;
if(r45>1)
r45=1/r45;
end
R=[r0 r90 r135 r45];
rmin=min(R);