²é¿´: 351  |  »Ø¸´: 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)

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

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

¿ÆÑдÓСľ³æ¿ªÊ¼£¬ÈËÈËΪÎÒ£¬ÎÒΪÈËÈË
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ ÌÀºÍ¼Ó·Æ µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[»ù½ðÉêÇë] FileCodeÄÜ¿´³öɶ£¿ +8 ÒªÀÖ¹ÛÒ«¸ç 2026-08-10 21/1050 2026-08-12 16:08 by ÔÆÉÏÇåÑï
[»ù½ðÉêÇë] ³¤ÄêÂúÆÁµÄ¹ã¸æ£¬°æÖ÷Ì«²»ÔðÈÎÁË¡£»ù½ðÒ²µÈµÄ¼± +4 gltch 2026-08-12 4/200 2026-08-12 16:08 by eulota
[»ù½ðÉêÇë] filecode +13 documentary 2026-08-10 15/750 2026-08-12 15:56 by ÔÆÉÏÇåÑï
[»ù½ðÉêÇë] Ææ¹Ö£¬Á½¸öÈ˵Äfilecode¹Ì¶¨¶Î´ÓÍ·µ½Î²Ò»Ä£Ò»Ñù +7 ²¼²¼ºÍÒ»¶þ 2026-08-10 10/500 2026-08-12 09:12 by ²¼²¼ºÍÒ»¶þ
[»ù½ðÉêÇë] ÓÐʱºò£¬×ÔÈ»»ù½ðÕæµÄ²»ÄÜÌ«ÈÏÕæ £¨ÎÒµÄÉ걨¾­Ñ飩 +3 majunge000 2026-08-11 4/200 2026-08-11 20:13 by lch2012
[»ù½ðÉêÇë] °ïæ¿´¿´fileCode +7 wwncly 2026-08-10 13/650 2026-08-11 19:36 by ±ùÐÄÓñºøÇç
[»ù½ðÉêÇë] ʲôʱºò³ö½á¹û£¬ÓÐ×ÉѯÇþµÀ£¿£¿£¿ +3 Tide man 2026-08-11 3/150 2026-08-11 17:54 by kudofaye
[»ù½ðÉêÇë] Ìý˵½ñÌìfilecode±äÁË +26 ²¼²¼ºÍÒ»¶þ 2026-08-06 49/2450 2026-08-11 13:18 by WH3796
[»ù½ðÉêÇë] »ù½ðÖÐÁË +15 laoda193707 2026-08-06 15/750 2026-08-11 00:11 by jiafei2190
[»ù½ðÉêÇë] È·¶¨ÁË£¬¹ú×ÔÈ»21ºÅ·Å°ñ +6 ²¼²¼ºÍÒ»¶þ 2026-08-10 7/350 2026-08-10 19:15 by 2000zf36392
[»ù½ðÉêÇë] ¹ØÓÚ´úÂë±ä»¯ÎÊÌ⣬ÏëÖªµÀµÄ½øÀ´ +17 ÇÒÌý»¢Ð¥ 2026-08-07 24/1200 2026-08-10 18:35 by zhangduo2008
[»ù½ðÉêÇë] ¾²µÈ»ù½ð½á¹û +5 gjjjzhong 2026-08-10 16/800 2026-08-10 17:19 by Tide man
[»ù½ðÉêÇë] ¹ú×ÔÈ»½á¹û +4 Vierhys 2026-08-10 8/400 2026-08-10 15:06 by Vierhys
[»ù½ðÉêÇë] 2026¹ú×ÔÈ»·Å°ñʱ¼ä +9 ²¼²¼ºÍÒ»¶þ 2026-08-08 9/450 2026-08-10 11:22 by xxxx2020
[»ù½ðÉêÇë] filecodeÓëÖÐ±ê¹ØÏµµÄÔ¤²â +5 ²¼²¼ºÍÒ»¶þ 2026-08-07 5/250 2026-08-09 16:15 by Ô¬ÏòÑô007
[»ù½ðÉêÇë] fileCodeÓÐнâ¶Á£¿ +10 Tide man 2026-08-08 18/900 2026-08-09 12:55 by ÈÊÑâн´«
[»ù½ðÉêÇë] ¹ØÓÚfilecode£¬ºÜ¸ºÔðÈεĸæËß´ó¼Ò +6 °®¿´ÊéµÄ¿ÉÀÖ 2026-08-08 7/350 2026-08-08 22:13 by a_niu
[»ù½ðÉêÇë] ¹ØÓÚfilecode +4 ²¼²¼ºÍÒ»¶þ 2026-08-07 7/350 2026-08-07 22:55 by zhanghaozhu
[»ù½ðÉêÇë] »¯Ñ§¿Údownload_prp&amp;fileCodeµÄ¹Ì¶¨¶ÎºÃÏñÕ⼸Ììһֱû±ä£¬ÓбäµÄ´óÉñô£¿ +3 Tide man 2026-08-07 4/200 2026-08-07 22:39 by Tide man
[»ù½ðÉêÇë] filecode +8 ²¼²¼ºÍÒ»¶þ 2026-08-06 11/550 2026-08-06 20:41 by tangpu318
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û