...
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 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); |
Code Block |
---|