EDA365µç×ÓÂÛÌ³Íø

±êÌâ: ²Î¿¼Ò»ÆªÎÄÏ×À´Ñ§Ï°Ò»µãMATLABͼÏñ´¦ÀíµÄ֪ʶ¡ª¡ªÓÃÓÚȱÏݼì²â [´òÓ¡±¾Ò³]

×÷Õß: fanichicl    ʱ¼ä: 2019-1-16 07:00
±êÌâ: ²Î¿¼Ò»ÆªÎÄÏ×À´Ñ§Ï°Ò»µãMATLABͼÏñ´¦ÀíµÄ֪ʶ¡ª¡ªÓÃÓÚȱÏݼì²â
²Î¿¼Ò»ÆªÎÄÏ×À´Ñ§Ï°Ò»µãMATLABͼÏñ´¦ÀíµÄ֪ʶ¡ª¡ªÓÃÓÚȱÏݼì²â) H; ~( a. N5 [, \" g
2 \6 ~1 I0 r) t( ?% p) t8 J

8 j0 x; I( v7 t/ T
. [- Q0 r* _  x. \8 {6 y

clc,clear all,close all

% T = imread ('bat.bmp');%¶ÁÈëͼÏñ

T = imread ('IMG.jpg');%¶ÁÈëͼÏñ

M = imresize ( T ,[256 ,256 ]);%½«Í¼Ïñµ÷Õû256 ¡Á256 ,ΪÁËÏÔʾ·½±ã

YT = rgb2gray(M);%½«RGB ¸ñʽת»»Îª»Ò¶ÈͼÏñ

figure , imshow( YT) ;

title ('ԭʼͼÏñ')%ÏÔʾԭʼͼÏñ

% È¥Ôë%

%1 ÖÐÖµÂ˲¨È¥Ôë%

Z1 = medfilt2 (YT ,[5 ,5 ]);

%2 С²¨·ÖÎöÈ¥Ôë%

%ʹÓÃsym4 С²¨,É趨ȫ¾ÖãÐֵȥÔë%

[ THR ,SORH ,KEEPAPP] = ddencmp('den','wv', Z1);

X = wdencmp( 'gbl',Z1, 'sym4',2 ,THR ,SORH ,KEEPAPP);

figure, imshow(X,[ ]);

title ('È¥ÔëͼÏñ') %ÏÔʾȥÔëͼÏñ

[Z1,s ] = wavedec2 (X ,2, 'sym4');

%½øÐжþ²ãС²¨·Ö½â

len = length ( Z1 );

%´¦Àí·Ö½âϵÊý,Í»³öÂÖÀª,Èõ»¯Ï¸½Ú%

for i = 1 :len

    if (Z1(i) > 800)

        Z1(i) = 2*Z1(i);

    else

        Z1(i) = 0.5*Z1(i);

    end

end

Z = waverec2 (Z1 ,s, 'sym4'); %·Ö½âϵÊýÖØ¹¹

figure , imshow(Z ,[ ]);

title ('ÔöǿͼÏñ') ;%ÏÔʾÔöǿͼÏñ

BW1 = edge(Z, 'canny',0.3); %canny±ßÔµ¼ì²â

figure, imshow(BW1 );

title ('canny ¼ì²âЧ¹û');%ÏÔʾ±ßÔµ¼ì²âͼÏñ

% Ìî²¹·ì϶%

se90 = strel ('line',3 ,90);

se0 = strel ('line',3 ,0);

% ÅòÕͲÙ×÷%

BWsdil = imdilate (BW1 ,[ se90 ,se0 ]);

figure , imshow(BWsdil);

title ('ÅòÕÍͼÏñ') ;%ÏÔʾÅòÕÍͼÏñ

% Ìî³ä%

BWdfill = imfill (BWsdil, 'holes');

figure , imshow(BWdfill);

title ('Ìî³äͼÏñ'); %ÏÔʾÌî³äͼÏñ

% ÒÆ³ýÓë±ß½çÁ¬Í¨µÄÄ¿±ê%

BWnobord = imclearborder (BWdfill ,4);

figure , imshow(BWnobord);

title ('ÒÆ³ýÓë±ß½çÁ¬Í¨µÄͼÏñ');

%ÏÔÊ¾ÒÆ³ýÓë±ß½çÁ¬Í¨µÄͼÏñ

% ƽ»¬%

seD = strel ('diamond',1);

BWfinal1 = imerode (BWnobord ,seD);

BWfinal2 = imerode (BWfinal1 ,seD);

figure , imshow(BWfinal2);

title ('ƽ»¬Í¼Ïñ'); %ÏÔʾƽ»¬Í¼Ïñ

% ¼ÆËãÁÑÎÆµÄÃæ»ý%

count = 0; % ¼Ç¼ÁÑÎÆÍ¼ÏñÏñËØµãµÄ¸öÊý

[ i , j ] = size (BWfinal2);

for m = 1 : i

    for n = 1 : j

        if BWfinal2 (m , n) > 0% ÅжÏÊÇ·ñΪÁÑÎÆÍ¼ÏñÏñËØµã

        count = count + 1 ;

        end

    end

end

S = count %ͳ¼ÆÁÑÎÆÍ¼ÏñÏñËØµãµÄ¸öÊý

BWfinal3 = uint8 (BWfinal2);

BW2 = edge (BWfinal3, 'canny');% ±ßÔµÌáÈ¡

figure ,imshow(BW2 );

title('canny ¼ì²âЧ¹û') ;%ÏÔʾ±ßÔµ¼ì²âͼÏñ

[ x , y ] = size (BW2 );

BW = bwperim(BW2 ,8);

% ¼ì²âÄ¿±êµÄ±ßÔµ¸ú×Ù,ÓÃÓÚ¼ÆËãÖܳ¤

% ¼ì²â´¹Ö±·½ÏòÁ¬ÐøµÄÖܳ¤ÏñËØµã%

P1 = 0;

P2 = 0;

Ny = 0;%¼Ç¼´¹Ö±·½ÏòÁ¬ÐøÖܳ¤ÏñËØµãµÄ¸öÊý

for i = 1 : x

        for j = 1 : y

        if (BW( i , j) > 0)

            P2 = j;

            if ( ( P2 - P1 ) == 1)

% ÅжÏÊÇ·ñΪ´¹Ö±·½ÏòÁ¬ÐøµÄÖܳ¤ÏñËØµã

                Ny = Ny + 1;

            end

            P1 = P2;

        end

        end

end

% ¼ì²âˮƽ·½ÏòÁ¬ÐøµÄÖܳ¤ÏñËØµã%

P1 = 0;

P2 = 0;

Nx = 0;%¼Ç¼ˮƽ·½ÏòÁ¬ÐøÖܳ¤ÏñËØµãµÄ¸öÊý

for j = 1 : y

        for i = 1 : x

        if (BW( i , j) > 0)

            P2 = i;

            if ( ( P2 - P1 ) == 1)

% ÅжÏÊÇ·ñΪˮƽ·½ÏòÁ¬ÐøµÄÖܳ¤ÏñËØµã

                Nx = Nx + 1;

            end

            P1 = P2;

        end

    end

end

Ns = sum( sum(BW) );%¼ÆËãÖܳ¤ÏñËØµã×ÜÊý

Nd = Ns - Nx - Ny ;% ¼ÆËãÆæÊýÂëµÄÁ´ÂëÊý

L = sqrt (2) * Nd + Nx + Ny;% ¼ÆËãÖܳ¤

for i=1:9

    saveas(figure(i),['figure' num2str(i) '.png'])

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%¸÷¸ö²½Öè´¦ÀíºóµÄͼÏñЧ¹û

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

& a0 ]4 C& n, z
6 m$ q/ J: ]1 |. h

×÷Õß: helendcany    ʱ¼ä: 2019-1-16 14:47
ºÃÎÄÕÂ




»¶Ó­¹âÁÙ EDA365µç×ÓÂÛÌ³Íø (https://bbs.eda365.com/) Powered by Discuz! X3.2