»ùÓÚͼÏñ´¦ÀíµÄ³µÅÆÊ¶±ð¶¨Î»Ëã·¨Ñо¿ ÏÂÔØ±¾ÎÄ

´óѧ±¾¿Æ±ÏÒµÂÛÎÄ£¨Éè¼Æ£©

Á˳õ²½µÄÁ˽⡣Ôڼ̳ÐǰÈËÑо¿³É¹ûµÄ»ù´¡ÉÏ£¬ÎÒÃǶԳµÅÆÊ¶±ðϵͳÖгµÅƵÄ×Ô¶¯¶¨Î»Ìá³öÁËÐµķ½·¨£¬¼´ÀûÓóµÅÆÍ¼ÏñµÄ»Ò¶È´¹Ö±±ßÔµµÄÌØÕ÷£¬Ê¹ÓñßÔµ¼ì²âËã×Ó£¬Ê¹Æä³µÅÆÇøÓòµÄÌØÕ÷¸ü¼ÓÃ÷ÏÔ£¬Í¬Ê±¾¡¿ÉÄÜÒÖÖÆ³µÉí¡¢»·¾³ÖеĸÉÈÅÇøÓò;ÀûÓÃÐÎ̬ѧÖеÄÅòÕÍ¡¢¸¯Ê´µÈÔËËã¶ÔͼÏñ½øÐзָÂ˳ýÁËͼÏñÖкܶàÔÓÉ¢ÇøÓò£¬Ò²Ê¹ºóÐøÉ¨ÃèµÄÊý¾ÝÁ¿´ó´ó¼õÉÙ£¬¼ÈÌá¸ßÁ˳µÅƶ¨Î»µÄ¾«¶È£¬¼õÉÙÁËÐèÒªµÄ´æ´¢¿Õ¼ä£¬Ò²Ê¹µÃϵͳµÄÔËÐÐËٶȸü¼Ó¿ì½Ý£¬¿ÉÒÔÂú×ãϵͳʵ¼ÊÓ¦ÓõÄÒªÇó¡£ÔÚ³µÅÆ×Ö·ûµÄʶ±ð¹ý³ÌÖУ¬ÎÒÃÇÌá³öÁË»ùÓÚ×Ö·û½á¹¹ÌØÕ÷µÄʶ±ð·½·¨£¬»ùÓÚ×Ö·û½á¹¹ÌØÕ÷µÄʶ±ð·½·¨Ê¶±ðËٶȿ죬ÎÞÐèÇãбУÕý¡¢¹éÒ»»¯µÈ´¦Àí£¬ÓÈÆäÊÇʹÓø÷½·¨¶Ô×Ö·û½øÐÐʶ±ð¿ÉÒÔʹµÃ×Ö·ûʶ±ðµÄ´íʶÂʽµÎªÁã¡£

ÔÚ³µÅÆ×Ô¶¯Ê¶±ðϵͳµÄÑо¿ÖУ¬»¹´æÔںܶ಻×ãÖ®´¦ºÍÖµµÃ¸Ä½øµÄµØ·½£¬Ö÷ÒªÌåÏÖÔÚÒÔÏÂһЩ·½Ãæ:

1. ÔÚͼÏñ·Ö¸î·½Ã棬ãÐÖµµÄѡȡ·½·¨»¹Ó¦¸Ã×öһЩеij¢ÊÔ£¬Ñ°ÕÒ¶Ô²»Í¬»Ò¶È

Ìõ¼þÏÂÆû³µÍ¼Ïñ¶¼ÄÜÈ¡µÃ½ÏºÃ·Ö¸îЧ¹ûµÄãÐֵѡȡ·½·¨¡£±¾ÎÄËù²ÉÓõķ½·¨¹é¸ùµ½µ×»¹ÊÇÒ»ÖÖÈ«¾ÖãÐÖµ·¨£¬Ëü²»¿ÉÄÜÊÊÓ¦ËùÓеÄÅÆÕÕ¡£ËüµÄ¶þÖµ»¯·½·¨»¹ÓкܴóµÄ¸Ä½øÓàµØ¡£±ÈÈ磬Èç¹ûÀûÓÃÅÆÕÕµÄÑÕÉ«ºÍ¹âÕյIJ»¾ùÔȵÄÇé¿ö¶ÔÅÆÕÕ×÷²»Í¬µÄ»®·Ö£¬È»ºó×ÔÊÊÓ¦µØÑ¡Ôñ¶þÖµ»¯ãÐÖµ£¬»òÕßÀûÓÃÅÆÕÕµÄÎÆÀíÌØÕ÷¶ÔÅÆÕÕÇøÓò×÷²»Í¬µÄ»®·Ö£¬È»ºó²ÉÓþֲ¿ãÐÖµ·¨£¬Ó¦¸Ã»áÈ¡µÃ¸üºÃµÄЧ¹û¡£ 2. ÔÚÐÎ̬ѧÖнṹËã×ÓµÄѡȡ»áÓ°Ïìµ½³µÅƵľ«È·¶¨Î»¡£½á¹¹Ëã×ÓѡȡµÃÌ«

С£¬¿ÉÄÜÎÞ ·¨°Ñ³µÅÆÁ¬³ÉÒ»¸öÁ¬Í¨µÄÇøÓò£¬ÕâÖ÷ÒªÊÇÔÚµÚ¶þºÍµÚÈý×Ö·ûÖ®¼ä;Èôѡȡ¹ý´ó£¬¿ÉÄܰѳµµÆ¡¢±£ÏոܵÈÁ¬Í¨ÔÚÒ»ÆðÁË¡£Òò´Ë½á¹¹Ëã×ÓµÄѡȡºÜ´ó³Ì¶ÈÉϾö¶¨Á˳µÅÆÄÜ·ñ¾«È·¶¨Î»¡£

ÔÚÆû³µ³µÅÆÊ¶±ðµÄÕû¸ö¹ý³ÌÖУ¬²éÕÒÁ˺ܶà×ÊÁÏ£¬×ÛºÏÁ˸÷·½ÃæµÄÐÅÏ¢¡£

ÅÆÊµÏÖµÄÿһ²½¶¼ÓÐÐí¶àµÄ·½·¨£¬¸÷ÖÖ·½·¨¶¼ÓÐÆäÓÅÁÓ£¬µ«ÊǶÔÓÚ¾ßÌåµÄͼÏñ´¦Àí£¬²¢²»ÊÇÿһÖÖÀíÂÛÔÚʵ¼ùÖж¼¿ÉÒÔʵÏÖ£¬¼´Ê¹ÊµÏÖÁËÒ²ºÜÄÑ˵ÄÄÒ»ÖÖ·½·¨×îºÏÊÊ£¬»¹µÃÔÚ¾ßÌåµÄʵÑéÖбȽÏÑ¡Ôñ¡£

³µÅÆÊ¶±ð³ÌÐòÉè¼ÆÄܹ»µÃÒÔ˳ÀûÍê³É¡£Ôںܴó³Ì¶ÈÉϵÃÀûÓÚMATLABÕâÌ×Èí¼þ£¬ MATLAB¹¦ÄÜÇ¿´ó£¬Ëü°üÀ¨ÊýÖµ¼ÆËãºÍ·ûºÅ¼ÆË㣬²¢ÇÒ¼ÆËã½á¹ûºÍ±à³Ì¿ÉÊÓ»¯¡£ÕâΪ±à³Ìµ÷ÊÔ´´ÔìÁËÒ»¸ö±ãÀûµÄ»·¾³¡£×÷ΪͼÏñ´¦Àí×îÊÊÓõŤ¾ßÖ®Ò»£¬ÆäÍ»³öµÄÌØµãÊÇËü°üº¬Ò»¸öͼÏñ´¦Àí¹¤¾ß°ü£¬Õâ¸ö¹¤¾ß°üÓÉһϵÁÐÖ§³ÖͼÏñ´¦Àí²Ù

29

´óѧ±¾¿Æ±ÏÒµÂÛÎÄ£¨Éè¼Æ£©

×÷µÄº¯Êý×é³É¡£ËùÖ§³ÖµÄͼÏñ´¦Àí²Ù×÷ÓÐ:ͼÏñµÄ¼¸ºÎ²Ù×÷¡¢ÁÚÓòºÍÇøÓò²Ù×÷¡¢Í¼Ïñ±ä»»¡¢Í¼Ïñ»Ö¸´ÓëÔöÇ¿¡¢ÏßÐÔÂ˲¨ºÍÂ˲¨Æ÷Éè¼Æ¡¢±ä»»(DCT ±ä»»µÈ) ¡¢Í¼Ïñ·ÖÎöºÍͳ¼Æ¡¢¶þֵͼÏñ²Ù×÷µÈ¡£ÔÚͼÏñµÄÏÔʾ·½Ã棬MATLAB ÌṩÁËͼÏñÎļþ¶ÁÈ뺯Êýimread ( ) £¬ÓÃÀ´¶ÁÈ¡Èç: bmp ¡¢tif ¡¢jpg¡¢pcx¡¢tiff ¡¢jpeg¡¢hdf ¡¢xwd µÈ¸ñʽͼÏñÎļþ£»Í¼Ïñд³öº¯Êýimwrite () £¬»¹ÓÐͼÏñÏÔʾº¯Êýimage ( ) ¡¢imshow() µÈµÈ¡£ÕâЩ£¬¶¼Ê¹±à³ÌЧÂÊ´óΪÌá¸ß¡£

¸½Â¼£º

1.³µÅƶ¨Î»³ÌÐò£º

I=imread('car.jpg'); imshow(I); I1=rgb2gray(I); figure,imshow(I1);

I2=edge(I1,'robert',0.15,'both'); figure,imshow(I2); se=[1;1;1]; I3=imerode(I2,se); figure,imshow(I3); se=strel('rectangle',[25,25]); I4=imclose(I3,se); figure,imshow(I4); I5=bwareaopen(I4,2000); figure,imshow(I5); [y,x,z]=size(I5); myI=double(I5); tic

white_y=zeros(y,1); for i=1:y for j=1:x

30

´óѧ±¾¿Æ±ÏÒµÂÛÎÄ£¨Éè¼Æ£©

if(myI(i,j,1)==1)

white_y(i,1)= white_y(i,1)+1; end end end

[temp MaxY]=max(white_y); PY1=MaxY;

while ((white_y(PY1,1)>=26)&&(PY1>1)) PY1=PY1-1; end PY2=MaxY;

while ((white_y(PY2,1)>=5)&&(PY2

IY=I(PY1:PY2,:,:); white_x=zeros(1,x); for j=1:x

for i=PY1:PY2

if(myI(i,j,1)==1)

white_x(1,j)= white_x(1,j)+1; end end end PX1=1;

while ((white_x(1,PX1)<3)&&(PX1

while ((white_x(1,PX2)<3)&&(PX2>PX1))

31

´óѧ±¾¿Æ±ÏÒµÂÛÎÄ£¨Éè¼Æ£©

PX2=PX2-1; end PX1=PX1-2; PX2=PX2+2;

Plate=I(PY1-7:PY2+7,PX1:PX2,:); t=toc

figure,plot(white_y);grid figure,plot(white_x);grid figure,imshow(IY); figure,imshow(Plate);

2.³µÅÆÊ¶±ð³ÌÐò

I = imread('car.jpg'); I2 = rgb2gray(I); I4 = im2bw(I2, 0.2); bw = bwareaopen(I4, 500); se = strel('disk',15); bw = imclose(bw,se); bw = imfill(bw,[1 1]); [B,L] = bwboundaries(bw,4); imshow(label2rgb(L, @jet, [.5 .5 .5])) hold on

for k = 1:length(B) boundary = B{k};

plot(boundary(:,2),boundary(:,1),'w','LineWidth',2) end

stats = regionprops(L,'Area','Centroid'); for k = 1:length(B)

% »ñȡһÌõ±ß½çÉϵÄËùÓеã

32