Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
function f = HaePalikatomiinKuviinsa()
I2 = imread('Palikoita.bmp');
imshow(I2), title('alkuperäinen kuva');
L = bwlabel(I2);%numeroi alueet
Maara=max(L(:))%hae kpl määrä numeroitujen alueiden perusteella
KaikkiOminaisuudet = regionprops(I2,'all');
for i=1:Maara %kelataan kaikki kuvan osat läpi
    kulmat=KaikkiOminaisuudet(i).BoundingBox % haetaan jokaisen kuvan kulmat
    %kulmat on rect tyyppinen muuttuja, joka sisältää vas.yläkulman x,y,leveys,korkeus
    I3=imcrop(I2,kulmat); %tehdään rajoittavan suorakaiteen perusteella uudet kuvat
    figure,imshow(I3);
end

Code Block
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
Code Block

Seuraava

...

esimerkki

...

rajaa

...

kuvan

...

alueen

...

kuvassa

...

olevien

...

kappaleiden

...

ympärille

Code Block



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
&nbsp;&nbsp;&nbsp; if(box(i,1)<ylakulma(1))

...


&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ylakulma(1)=box(i,1)

...


&nbsp;&nbsp;&nbsp; end
&nbsp;&nbsp;&nbsp; %haetann ylakulma y-suunnassa
&nbsp;&nbsp;&nbsp; if(box(i,2)<ylakulma(2))

...


&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ylakulma(2)=box(i,2)

...


&nbsp;&nbsp;&nbsp; end
&nbsp;&nbsp;&nbsp; %haetaan alakulma x-suunnassa
&nbsp;&nbsp;&nbsp; if(box(i,1)+box(i,3)>alakulma(1))

...


&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alakulma(1)=box(i,1)+box(i,3)

...


&nbsp;&nbsp;&nbsp; end
&nbsp;&nbsp;&nbsp; %haetaan alakulma y-suunnassa
&nbsp;&nbsp;&nbsp; if(box(i,2)+box(i,4)>alakulma(2))

...


&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alakulma(2)=box(i,2)+box(i,4)

...


&nbsp;&nbsp;&nbsp; end
end
%rajataan alkuperaisesta kuvasta osat sisaltava alue
uusikuva=I(ylakulma(2):alakulma(2), ylakulma(1):alakulma(1));

...


figure, imshow(uusikuva);
Code Block