Átméretezés (OpenCV)
dst = cv2.resize(src, dsize, dst, fx=0, fy=0, interpolation=INTER_LINEAR)
dst | Célkép. Nem lehet azonos a forrással! (Függvény paraméterként átadhatunk None értéket helyette, ha a visszatérési értéket használjuk.) |
src | Forráskép. |
dsize | Eredmény kép mérete. Felsorolási objektumként kell megadni, például dsize = (200, 100). Az első érték a szélesség, a második a magasság! Ha None méretet adunk át, akkor az OpenCV számolja ki, ekkor viszont meg kell adni az fx és fy paramétereket: dsize = (round(fx * src.shape[1]), round(fy * src.shape[0])) |
fx | Skálázás mértéke az X-tengely mentén. Ha 0, akkor az OpenCV számolja ki a két képmátrix szélességének arányából: fx = dsize[0] / src.shape[1] |
fy | Skálázás mértéke az Y-tengely mentén. Ha 0, akkor az OpenCV számolja ki a két kép magasságának arányából: fy = dsize[1] / src.shape[0] |
interpolation |
A kép újramintavételezésekor használt interpolációs módszer.
|
Kicsinyítéskor a cv2.INTER_AREA a legcélszerűbb. Nagyításra a cv2.INTER_LANCZOS4 vagy a cv2.INTER_LINEAR (gyorsabb).
Példák:
- Az új kép méretét explicit megadjuk, a nagyítási mértékek a forrás és a cél méretének aránya alapján számítódnak:
dst = cv2.resize(src, (200, 100), intepolation=cv2.INTER_LINEAR) - A skálázás mértékét adjuk meg, az eredménykép méretét az OpenCV számítja ki (a példában irányonként a felére):
dst = cv2.resize(src, None, fx=0.5, fy=0.5, interpolation=cv2.INTER_LINEAR)