Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

Monesti

...

on

...

hyödyllistä

...

jonkin

...

ehdon

...

perusteella

...

rajata

...

kuvan

...

kokoa.

...

Seuraavassa

...

esimerkissä

...

näytetään

...

kuvan

...

rajaus.

{
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}

{code}
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}

Seuraava

...

esimerkki

...

rajaa

...

kuvan

...

alueen

...

kuvassa

...

olevien

...

kappaleiden

...

ympärille

Code Block



{code}
function KuvanRajausOsienYmparille()
I = imread('Palikoita.bmp');
%I=rgb2gray(I); %jos rgb kuva
BW=I;%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))
 %round() pyoristaa lahimpaan kokonaislukuun   
ylakulma(1)=round(box(i,1))
end
%haetann ylakulma y-suunnassa
if(box(i,2)<ylakulma(2))
ylakulma(2)=round(box(i,2))
end
%haetaan alakulma x-suunnassa
if(box(i,1)+box(i,3)>alakulma(1))
alakulma(1)=round(box(i,1)+box(i,3))
end
%haetaan alakulma y-suunnassa
if(box(i,2)+box(i,4)>alakulma(2))
alakulma(2)=round(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);
{code}
{code}
{code}
Code Block