6.3.1¡¢ÉÏÏ·ת
º¯ÊýflipudÊÇʵÏÖÒ»¸ö¶þά¾ØÕóµÄÉÏÏ·ת£¬Èç
a=[1 2;3 4],¾¹ý¸Ãº¯Êý´¦Àíºó£¬Ô¾ØÕó±äΪ[3 4;1 2];ËùÒÔÀûÓøú¯ÊýÒ²¿ÉÒÔ¶ÔͼÏñ½øÐÐÉÏÏ·ת´¦Àí£¬µ«ÓÉÓڸú¯ÊýÕë¶Ô¶þάÊý¾ÝµÄ´¦Àí£¬ËùÒÔÔÚд³ÌÐòʱ£¬Òª¶ÔRGBͼÏñºÍ»Ò¶ÈͼÏñ·Ö¿ª´¦Àí£¬Õâ¾ÍÒªÓõ½isrgbº¯ÊýÀ´Åжϣ¬Èç¹ûÊǻҶÈͼÏñ£¬
Ôò¿ÉÒÔÖ±½ÓÓÃÕâ¸öº¯Êý½øÐд¦Àí£¬·ñÔò¾ÍÒª¶ÔRGBͼÏñ½øÐнµÎ¬´¦Àí£¬ for k=1:3
y(:,:,k)=flipud(x(:,:,k)); end
´¦Àí½á¹ûÈçͼ£º
6.3.2¡¢×óÓҷת
¶ÔͼÏñµÄ×óÓҷתҲ¿ÉÒÔÓÃfliplrº¯ÊýÀ´´¦Àí£¬Í¬ÑùµÄ£¬Ò²Òª¶Ô»Ò¶ÈºÍ²ÊɫͼÏñ·Ö¿ª´¦Àí£¬´¦Àí½á¹ûÈçͼ£º
6.3.3ÈÎÒâ½Ç¶È·×ª
Óú¯ÊýimrotateÀ´ÊµÏÖ¶ÔͼÏñµÄ²åÖµÐýת¡£ ¸Ãº¯ÊýµÄµ÷ÓøñʽÈçÏ£º
B£½imrotate(A£¬angle£¬method£¬¡¯crop¡¯)
ÆäÖУ¬²ÎÊýmethodÓÃÓÚÖ¸¶¨²åÖµµÄ·½·¨£¬¿ÉÑ¡µÄÖµ¿ÉÒÔÓÐÈýÖÖ£¬·Ö±ðΪÁÚ½ü²åÖµ£¬Ë«ÏßÐÔ²åÖµ£¬Ë«Èý´Î²åÖµ£¬È±Ê¡Ê±ÎªÁÚ½ü²åÖµ£¬²ÎÊýangle´ú±íÐýתµÄ½Ç¶È¡£
Ò»°ãÀ´Ëµ£¬ÐýתºóµÄͼÏñ»á±ÈÔͼ´ó£¬Óû§¿ÉÒÔÖ¸¶¨¡°crop¡±²ÎÊý¶ÔÐýתºó
9
µÄͼÏñ½øÐмôÇÐ(ȡͼÏñµÄÖм䲿·Ö)£¬Ê¹·µ»ØµÄͼÏñÓëÔͼ´óСÏàͬ¡£Ö´Ðнá¹ûΪ£º
6.4¡¢ ÔëÉù
¾³£Óõ½µÄÔëÉùÓÐÈýÖÖ£¬¸ß˹ÔëÉù£¬½·ÑÎÔëÉù£¬³ËÐÔÔëÉù£¬¿ÉÒÔͨ¹ýÒÔÏÂÈý¸öº¯ÊýÀ´ÊµÏÖ£º
y=imnoise(handles.img,'gaussian',p1,p2);%¸ß˹ÔëÉù y=imnoise(x,'salt & pepper',p1); %½·ÑÎÔëÉù y=imnoise(handles.img,'speckle',p1); %³ËÐÔÔëÉù
p1£¬p2µÄ²ÎÊýҲͨ¹ýÊäÈë¶Ô»°¿òµÄÐÎʽµÃµ½£¬Ôͼ¼ÓÈë¸ß˹ÔëÉùºó½á¹ûÈçÏÂËùʾ£º
6.5¡¢ Â˲¨
ÕâÀïÑ¡ÔñÈýÖÖÂ˲¨·½·¨£¬
k=medfilt2(handles.noise_img);%ÖÐÖµÂ˲¨
k=wiener2(handles.noise_img,[5,5]);%×ÔÊÊÓ¦Â˲¨
k=filter2(fspecial('average',3),handles.noise_img)/255;%ƽ»¬Â˲¨
ͬÑùµÄ£¬ÕâЩº¯ÊýÒ²ÊÇÕë¶Ô¶þάÊý¾Ý£¬ËùÒÔÒªÏÈÅжÏÊDzÊɫͼÏñ»¹ÊǻҶÈͼÏñ£¬È»ºó·Ö±ð½øÐд¦Àí£¬ÏÂÃæÊǶԲÊɫͼÏñµÄ×ÔÊÊÓ¦Â˲¨´¦Àí£º i=handles.noise_img;
10
if isrgb(i)
a=handles.noise_img(:,:,1); b=handles.noise_img(:,:,2); c=handles.noise_img(:,:,3);
k(:,:,1)=wiener2(a,[5,5]); k(:,:,2)=wiener2(b,[5,5]); k(:,:,3)=wiener2(c,[5,5]); imshow(k); Ö´Ðнá¹ûÈçͼ£º
¶ÔÆäËû·½·¨µÄÂ˲¨³ÌÐòÒ²ÀàËÆ£¬ÓÉÓڰѸ÷¸öÂ˲¨·½·¨·ÅÔÚÒ»¸öÑ¡Ôñ¿òÀËùÒÔ³ÌÐòÒªÓÃÒÔϵÄÑ¡ÔñÓï¾ä£º
switch str
case 'ÖÐÖµÂ˲¨' case '×ÔÊÊÓ¦Â˲¨' case 'ƽ»¬Â˲¨'
end
6.6¡¢ Ö±·½Í¼Í³¼Æ
ÓÃimhistº¯Êý¶ÔͼÏñÊý¾Ý½øÐÐÖ±·½Í¼Í³¼Æ£¬
x=imhist(handles.img(:,:,1)); bar(horz,x);
ÆäÖУ¬x¾ØÕóµÄÊý¾ÝÊÇ0~255»Ò¶ÈÖµµÄͳ¼Æ¸öÊý£¬Èç¹ûÖ±½Ó¶Ôx¾ØÕóÊý¾Ý½øÐÐͼÐÎͼÏÔʾ£¬ÓÉÓÚÓÐ256¸öÊý¾Ý£¬ÔÚ×ø±êϵÖоͻáºÜÃܼ¯£¬ÎªÁ˸üÇå³þµÄÏÔʾÌõÐÎͼ£¬ËùÒÔÔÚ³ÌÐòÉè¼ÆÊ±£¬°ÑxÊý¾Ý½øÐв¿·ÖÌáÈ¡£¬
x1=x(1:10:256); horz=1:10:256; bar(horz,x1);
³ýÁËÏÔʾÊý¾ÝµÄÖ±·½Í¼Í³¼ÆÍ⣬»¹¿ÉÒÔ¶ÔͼÏñ½øÐоùºâ´¦Àí£¬ËùÓõ½µÄº¯ÊýÊÇhisteq£¬ÕâÁ½¸öº¯ÊýͬÑùֻʹÓÃÓÚ¶þάÊý¾Ý£¬ËùÒÔÒ²Òª¶Ô¶þάºÍÈýάÊý¾Ý·Ö¿ª´¦Àí¡£
Ö±·½Í¼ÏÔʾºÍ¾ùºâºóµÄͼÏñ·Ö±ðÈçÏÂͼËùʾ
11
6.7¡¢ ƵÆ×·ÖÎö 6.7.1¡¢ÆµÆ×ͼ
ΪÁ˵õ½Í¼ÏñµÄƵÆ×ͼ£¬ÏÈÒª¶ÔÊý¾Ý½øÐиµÀïÒ¶±ä»»£¬ÓÃfft2º¯Êý¶Ô¶þάÊý¾Ý½øÐпìËÙ¸µÀïÒ¶±ä»»£¬Í¬Ê±ÎªÁ˸üºÃµÄ¹Û²ìƵÆ×ͼ£¬ÐèÒª°Ñfft2±ä»»ºóµÄÊý¾Ý½øÐÐÆ½ÒÆ£¬ÀûÓÃfftshiftº¯Êý£¬°Ñ¿ìËÙ¸µÀïÒ¶±ä»»µÄDC ×é¼þÒÆµ½¹âÆ×ÖÐÐÄ¡£ÕâÑùͼÏñÄÜÁ¿µÄµÍƵ³É·Ö½«¼¯Öе½ÆµÆ×ÖÐÐÄ£¬Í¼ÏñÉϵıßÔµ¡¢ÏßÌõϸ½ÚÐÅÏ¢µÈ¸ßƵ³É·Ö½«·ÖÉ¢ÔÚͼÏñƵÆ×µÄ±ßÔµ¡£ÈçÏÂͼËùʾ£º
6.7.2¡¢Í¨¹ý¸ßͨÂ˲¨Æ÷
axes(handles.axes2); x=(handles.img); if isrgb(x)
msgbox('ÕâÊDzÊɫͼÏñ,²»ÄÜͨ¹ý¸ßͨÂ˲¨Æ÷','ʧ°Ü'); else
y1=imnoise(x,'gaussian'); %¼Ó¸ß˹ÔëÉù f=double(y1); % Êý¾ÝÀàÐÍת»» k=fft2(f); % ¸µÁ¢Ò¶±ä»» g=fftshift(k); % ת»»Êý¾Ý¾ØÕó [M,N]=size(g); nn=2;
d0=3; %½ØÖ¹ÆµÂÊΪ3 m=fix(M/2); n=fix(N/2); for i=1:M
12