²é¿´: 297  |  »Ø¸´: 0

ÌÀºÍ¼Ó·Æ

Òø³æ (СÓÐÃûÆø)

[ÇóÖú] ÏÂÃæµÄCanny±ßÔµÌáÈ¡´úÂë´íÔÚÄÄÀ

ÏÂÃæµÄ³ÌÐò´íÔÚÄÄÀΪʲôÌáÈ¡³öµÄ±ßԵͼÏñÈ«ºÚ£¬¶øÈç¹ûɾµô¸ß˹Â˲¨´úÂ룬·´¶øÄܹ»³öÀ´½á¹û£¿


I=imread('F:\rose.jpg');%¶ÁÈëԭʼͼƬ
figure, imshow(I),title('ԭͼ');
Y=rgb2gray(I); %°Ñ²ÊɫͼƬת»¯³É»Ò¶ÈͼƬ£¬256¼¶
figure, imshow(Y),title('»Ò¶ÈͼÏñ');
I1=double(Y);
[m,n]=size(I1);
%£¨1£©Óøß˹Â˲¨Æ÷ƽ»¬Í¼Ïñ
sigma=2;N=5;%¶¨Òå¸ß˹²ÎÊý
[d,f]=meshgrid([-(N-1)/2N-1)/2],[-(N-1)/2N-1)/2]);
g=exp(-((d.*d+f.*f)/(2*sigma.*sigma)));
S=conv2(Y,g,'same');%¶þά¾í»ýµÃµ½¸ß˹Â˲¨ºóµÄͼÏó  
I1=mat2gray(S);%¹éÒ»»¯£¬Ê¹¾ØÕóÖÐÿ¸öÔªËØµÄÖµ¶¼ÔÚ0-1Ö®¼ä
% gaussian=[1/79 2/79 3/79 2/79 1/79; 2/79 4/79 6/79 4/79 2/79; 3/79 6/79 7/79 6/79 3/79; 2/79 4/79 6/79 4/79 2/79; 1/79 2/79 3/79 2/79 1/79];
%  I1 =conv2(I1,gaussian);  
imshow(I1);title('¸ß˹Â˲¨½á¹û');
%£¨2£©ÓÃÒ»½×Æ«µ¼µÄÓÐÏÞ²î·ÖÀ´¼ÆËãÌݶȵķùÖµºÍ·½Ïò£»
IP=zeros(m,n);
IQ=zeros(m,n);
f=zeros(m,n);
a=zeros(m,n);
for x=1:m-1
for y=1:n-1
    IP(x,y)=(I1(x,y+1)-I1(x,y)+I1(x+1,y+1)-I1(x+1,y))/2;
    IQ(x,y)=(I1(x,y)-I1(x+1,y)+I1(x,y+1)-I1(x+1,y+1))/2;
    f(x,y)=sqrt(IP(x,y)^2+IQ(x,y)^2);%ÌݶȷùÖµ¾ØÕó
    a(x,y)=0;
    if(IP(x,y)<0)
        a(x,y)=atan(IQ(x,y)/IP(x,y))+pi/2;
    else
        a(x,y)=atan(IQ(x,y)/IP(x,y));
    end
end
end
% H1 = [-1 -1; 1 1];
% H2 = [1 -1; 1 -1];
% fx = conv2(I1,H1);
% fy = conv2(I1,H2);
% f = sqrt(fx.^2 + fy.^2);
% a = atan(fx./eps(fy));
for i = 1:m
    for j = 1:n
        if(a(i,j) > -pi/8 && a(i,j) <= pi/8)
            a(i,j) = 0;
        elseif(a(i,j) > pi/8 && a(i,j) <= 3*pi/8)
            a(i,j) = 1;
        elseif((a(i,j) > 3*pi/8 || a(i,j) <= -3*pi/8))
            a(i,j) = 2;
        else
            a(i,j) = 3;
        end
    end
end
%£¨3£©¶ÔÌݶȷùÖµ½øÐзǼ«´óÖµÒÖÖÆ£»
F = f;
for i =2m-1)  
    for j=2n-1)
        switch(a(i,j))
            case 0
                if(F(i,j) <= F(i,j-1) || F(i,j) <= F(i,j+1))
                    f(i,j) = 0;
                end
            case 1
                if(F(i,j) <= F(i-1,j+1) || F(i,j) <= F(i+1,j-1))
                    f(i,j) = 0;
                end
            case 2
                 if(F(i,j) <= F(i-1,j) || F(i,j) <= F(i+1,j))
                    f(i,j) = 0;
                 end
            case 3
                 if(F(i,j) <= F(i-1,j-1) || F(i,j) <= F(i+1,j+1))
                    f(i,j) = 0;
                 end
        end
    end
end
figure,imshow(f),title('·Ç¼«´óÖµÒÖÖÆºó½á¹û');
%step4:ÓÃË«ãÐÖµËã·¨¼ì²âºÍÁ¬½Ó±ßÔµ¡£
t1 =str2double(get(handles.edit1,'string'));%µÍãÐÖµ
t2 =str2double(get(handles.edit2,'string'));%¸ßãÐÖµ
Canny_1 = zeros(m,n);
Canny_2 = zeros(m,n);
for i = 1:m
    for j =1:n
        if(f(i,j) >= t1 )
            Canny_1(i,j) = 255;
        else
            Canny_1(i,j) = 0;
        end
        if(f(i,j) >= t2 )
            Canny_2(i,j) = 255;
        else
            Canny_2(i,j) = 0;
        end
    end
end

for i = 2m-1)
    for j = 2n-1)
        if((Canny_1(i,j)==255) && (Canny_2(i,j)~=255))
            if((Canny_2(i-1,j-1)==255) || (Canny_2(i-1,j)==255) || (Canny_2(i-1,j+1)==255)|| ( Canny_2(i,j-1)==255 ) || (Canny_2(i,j+1)==255) || (Canny_2(i+1,j-1)==255) || (Canny_2(i+1,j)==255) ||(Canny_2(i+1,j+1) ==255))
                Canny_2(i,j)=255;
            end
        end
    end
end
Canny=Canny_2;      
title('CannyËã×ÓÌáÈ¡µÄ±ßÔµ');
»Ø¸´´ËÂ¥
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

ÖÇÄÜ»úÆ÷ÈË

Robot (super robot)

ÎÒÃǶ¼°®Ð¡Ä¾³æ

ÕÒµ½Ò»Ð©Ïà¹ØµÄ¾«»ªÌû×Ó£¬Ï£ÍûÓÐÓÃŶ~

¿ÆÑдÓСľ³æ¿ªÊ¼£¬ÈËÈËΪÎÒ£¬ÎÒΪÈËÈË
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ ÌÀºÍ¼Ó·Æ µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 317Çóµ÷¼Á +3 Éê×ÓÉêÉê 2026-03-19 7/350 2026-03-20 08:53 by Éê×ÓÉêÉê
[¿¼ÑÐ] ÕÐÊÕµ÷¼Á˶ʿ +4 lidianxing 2026-03-19 10/500 2026-03-19 16:05 by Óà÷ëÓà
[¿¼ÑÐ] 286Çóµ÷¼Á +6 lemonzzn 2026-03-16 10/500 2026-03-19 14:31 by lemonzzn
[¿¼ÑÐ] Çóµ÷¼Á +3 Mqqqqqq 2026-03-19 3/150 2026-03-19 14:11 by peike
[¿¼ÑÐ] 0703»¯Ñ§ 305Çóµ÷¼Á +4 FY_yy 2026-03-14 4/200 2026-03-19 05:54 by anny19840123
[¿¼ÑÐ] Ò»Ö¾Ô¸»ªÖпƼ¼´óѧ£¬080502£¬354·ÖÇóµ÷¼Á +4 ÊØºòϦÑôCF 2026-03-18 4/200 2026-03-18 22:16 by li123456789.
[¿¼ÑÐ] 311Çóµ÷¼Á +4 ¶¬Ê®Èý 2026-03-18 4/200 2026-03-18 21:47 by ¾¡Ë´Ò¢1
[¿¼ÑÐ] 311Çóµ÷¼Á +6 26ÑÐ0 2026-03-15 6/300 2026-03-18 14:43 by haxia
[¿¼ÑÐ] Ò»Ö¾Ô¸Î÷ÄϽ»´ó£¬Çóµ÷¼Á +4 ²Ä»¯ÖðÃÎÈË 2026-03-18 4/200 2026-03-18 14:22 by 007_lilei
[¿¼ÑÐ] 0854£¬¼ÆËã»úÀàÕÐÊÕµ÷¼Á +3 ºúÀ±ÌÀ·ÅÌÇ 2026-03-15 6/300 2026-03-18 12:09 by Éϰ¶Éϰ¶¡­¡­..
[¿¼ÑÐ] ¿¼Ñл¯Ñ§Ñ§Ë¶µ÷¼Á£¬Ò»Ö¾Ô¸985 +4 ÕÅvvvv 2026-03-15 6/300 2026-03-17 17:15 by ruiyingmiao
[¿¼ÑÐ] ²ÄÁÏר˶326Çóµ÷¼Á +6 Ä«ìÏæ¦Ý· 2026-03-15 7/350 2026-03-17 17:10 by ruiyingmiao
[¿¼²©] 26É격 +4 °Ë6°Ë68 2026-03-16 4/200 2026-03-17 13:00 by ÇáËɲ»ÉÙËæ
[¿¼ÑÐ] 275Çóµ÷¼Á +4 Ì«Ñô»¨ÌìÌ쿪ÐÄ 2026-03-16 4/200 2026-03-17 10:53 by ¹¦·ò·è¿ñ
[¿¼ÑÐ] ¶«ÄÏ´óѧ364Çóµ÷¼Á +5 JasonYuiui 2026-03-15 5/250 2026-03-16 21:28 by ľ¹Ï¸à
[¿¼ÑÐ] ÖпÆÔº²ÄÁÏ273Çóµ÷¼Á +4 yzydy 2026-03-15 4/200 2026-03-16 15:59 by Gaodh_82
[¿¼ÑÐ] 277²ÄÁÏ¿ÆÑ§Ó빤³Ì080500Çóµ÷¼Á +3 ×ÔÓɼå±ý¹û×Ó 2026-03-16 3/150 2026-03-16 14:10 by ÔËÆøyunqi
[¿¼ÑÐ] 327Çóµ÷¼Á +6 ʰ¹âÈÎȾ 2026-03-15 11/550 2026-03-15 22:47 by ʰ¹âÈÎȾ
[¿¼ÑÐ] Öпƴó²ÄÁÏÓ뻯¹¤319Çóµ÷¼Á +3 ÃÏöβÄÁÏ 2026-03-14 3/150 2026-03-14 20:10 by ms629
[¿¼ÑÐ] Ò»Ö¾Ô¸¹þ¹¤´ó²ÄÁÏ324·ÖÇóµ÷¼Á +5 ãÆÐñ¶« 2026-03-14 5/250 2026-03-14 14:53 by ľ¹Ï¸à
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û