Monesti on hyödyllistä jonkin ehdon perusteella rajata kuvan kokoa. Seuraavassa esimerkissä näytetään kuvan rajaus.
function KuvaRajaus() I = imread('SuorakaiteitaErikulmissa.bmp'); figure;imshow(I);title('Alkuperäinen kuva'); siirrosYsuunnassaAlas=10; Yalku=1; Yloppu=256; siirrosXsuunnassaOikealle=222; %I = I(10+[1:256],222+[1:256],:); % rajattu kuva Xalku=1; Xloppu=256; I=I(siirrosYsuunnassaAlas +[Yalku:Yloppu],siirrosXsuunnassaOikealle+[Xalku:Xloppu],:); figure;imshow(I);title('Rajattu kuva'); end
Seuraava esimerkki rajaa kuvan alueen kuvassa olevien kappaleiden ympärille
function KuvanRajausOsienYmparille() I = imread('kuva.JPG'); I=rgb2gray(I); BW=edge(I, 'sobel', (graythresh(I) * .05)); imshow(BW); L=bwlabel(BW); s=regionprops(L,'all'); maara=max(L(:)); % yhdistetaan cat funktiolla kaikkien osien rajaavat suorakaiteet yhdeksi matriisiksi % yksi rivi edustaa yhden osan rajaavaa suorakaidetta % Boundinbox = ylakulmax, ylakulmay, leveysx, korkeusy box = cat(1, s.BoundingBox) ylakulma=[10000,10000]; alakulma=[0,0]; for i=1:maara %haetaan ylakulam x-suunnassa if(box(i,1)<ylakulma(1)) ylakulma(1)=box(i,1) end %haetann ylakulma y-suunnassa if(box(i,2)<ylakulma(2)) ylakulma(2)=box(i,2) end %haetaan alakulma x-suunnassa if(box(i,1)+box(i,3)>alakulma(1)) alakulma(1)=box(i,1)+box(i,3) end %haetaan alakulma y-suunnassa if(box(i,2)+box(i,4)>alakulma(2)) alakulma(2)=box(i,2)+box(i,4) end end %rajataan alkuperaisesta kuvasta osat sisaltava alue uusikuva=I(ylakulma(2):alakulma(2), ylakulma(1):alakulma(1)); figure, imshow(uusikuva);