Képek transzformációja

Képek forgatása

Képek forgatását az imrotate() függvénnyel végezhetjük. A függvény paramétereként megahatjuk a forgatási szöget fokban, a forgatás során végrehajtott interpolációt, valamint vágás mértékét.

Interpolációs módszerek:

  • legközelebbi szomszéd,
  • bilineáris,
  • köbös interpoláció

A vágási módszerek lehetnek befoglaló téglalapra vonatkozó, vagy pedig "levágó" módszerek. A befoglaló téglalap esetén az eredménykép akkora lesz, mint az elforgatott kép befoglalló téglalapja, az üres területek kitöltésre kerülnek. A "levágó" módszer megőrzi a kép eredeti méretét és a kilógó részeket levágja a képről.

Példa:

>> img = imread('szeder.jpg');
>> img_40 = imrotate(img, 40, 'bilinear');
>> img_40_crop = imrotate(img, 40, 'bilinear', 'crop');

 

Példa kép forgatására a befoglaló téglalap meghagyásávalPélda kép forgatására a befoglaló a kép levágásával

 

 

Kép átméretezése

A kép átméretezését az imresize() függvény végzi. A függvény paramétereként itt is meg lehet adni a skálafaktorokat, valamint lehetőség van kép méretének beállítására, valamint az interpolációs módszer kiválasztására is.

Példa:

>> img = imread('szeder.jpg');
>> img_3x = imresize(img,3, 'bilinear');

Példa kép nagyítására

 

Képek általános transzformációja

Általános transzformáció végrehajtására is van lehetőség. Az imtransform() és imwarp() függvények általános transzformációkat hajtanak végre. A függvények paramétereként meg kell adni a képmátrixot és a transzformációs mátrixot. További paraméterként megadható az interpoláció típusa.

Példa:

>> img = imread('szeder.jpg');
>> tform = maketform('affine', [ 1, 0, 0;  0.5, 1, 0;   0, 0, 1   ]);
>> img_shear = imtransform(img, tform);
>> imshow(img_shear);

 

Példa általános transformációra (nyírásra)