peak.m

来自「matlab模拟产生中心应力集中光学条纹图」· M 代码 · 共 40 行

M
40
字号
function y=Peak(x,sita)

[M N]=size(sita);
Sign=zeros(M,N)-1;
for i=2:M-1
    for j=2:N-1
        if (sita(i,j)>=0 && sita(i,j)<pi/8)
            if (x(i+1,j)-x(i-1,j)>0)
                Sign(i,j)=1;
            end
        elseif (sita(i,j)>=pi/8 && sita(i,j)<pi*3/8)
            if (x(i+1,j+1)-x(i-1,j-1)>0)
                Sign(i,j)=1;
            end
        elseif (sita(i,j)>=pi*3/8 && sita(i,j)<pi*5/8)
            if (x(i,j+1)-x(i,j-1)>0)
                Sign(i,j)=1;
            end
        elseif (sita(i,j)>=pi*5/8 && sita(i,j)<pi*7/8)
            if (x(i-1,j+1)-x(i+1,j-1)>0)
                Sign(i,j)=1;
            end
        else
            if (x(i-1,j)-x(i+1,j)>0)
                Sign(i,j)=1;
            end
        end
    end
end

% se=strel('disk',6);
% Sign=255.0.*(Sign-min(min(Sign)))/(max(max(Sign))-min(min(Sign)));
% Sign=uint8(Sign);
% BWc = imclose(Sign,se);
% BWco=imopen(BWc,se);
% figure, imshow(BWc);
% figure, imshow(BWco);
% y=BWco;   
y=Sign;
            

⌨️ 快捷键说明

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