gaijin3.m

来自「灰色斜率关联度的改进 判断非边缘点为基准」· M 代码 · 共 36 行

M
36
字号
%灰色斜率关联度的改进模型 判断非边缘点为基准
clc;clear;
I=imread('lena.jpg');
[m,n]=size(I);                                   %补行补列
append1=I(1,:);append2=I(m,:);
I1=[append1;I];I1=[I1;append2];
m=m+2;
append1=I1(:,1);append2=I1(:,n);
I1=[append1,I1];I1=[I1,append2];
n=n+2;

x=[1 1 1 1 1 1 1 1 1];mn_x=mean(x);
a=0.925;                                                    %阈值a   三个阈值分别写在边缘图像的名称前
for i=2:m-1
    for j=2:n-1
        y=[I1(i-1,j-1),I1(i-1,j),I1(i-1,j+1),I1(i,j-1),I1(i,j),I1(i,j+1),I1(i+1,j-1),I1(i+1,j),I1(i+1,j+1)];
        y=double(y);ymax=max(y);
        mn_y=mean(y);
        for t=1:8
            dx1(t)=x(t+1)-x(t);
            dy1(t)=y(t+1)-y(t);
            if dx1(t)*dy1(t) >= 0 sgn=1; else sgn=-1; end
            r(t)=(1+abs(dx1(t)/mn_x))/(1+abs(dx1(t)/mn_x)+abs(dx1(t)/mn_x-dy1(t)/mn_y));
            c_r(t)=sgn*r(t);
        end
        p=mean(c_r);
        if p<a
           I(i,j)=0;
        else
           I(i,j)=255;
        end
     end
end
for i=1:m   I(i,1)=255;I(i,n)=255; end
for j=1:n   I(1,j)=255;I(m,j)=255; end
figure;imshow(I);imwrite(I,'0.925lena1.jpg');

⌨️ 快捷键说明

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