mathpython thesaurus

広告

PythonのOpenCVで画像を左右・上下に反転させる(線対称にひっくり返す)

Python で OpenCV を使うと画像を反転した画像を作ることができます。OpenCV を使うときは cv2 というライブラリをインポートします。

もとの画像

import cv2

img = cv2.imread('president.jpg')

x = cv2.flip(img, 0)
y = cv2.flip(img, 1)
xy = cv2.flip(img, -1)

cv2.imwrite('x.jpg', x)
cv2.imwrite('y.jpg', y)
cv2.imwrite('xy.jpg', xy)

x 軸を中心に反転した画像

x

y 軸を中心に反転した画像

y

その両方

xy

cv2.imread で画像を読みます。第一引数はファイル名、第二引数はモード。モードは省略可能で、今回はなにも指定していません。

imread で画像オブジェクトを作った後、flip 関数でオブジェクトをひっくり返します。第一引数にオブジェクト、第二引数に中心軸を入れます。

0 を入れると x 軸を中心にひっくり返り、1 を入れると y 軸を中心にひっくり返ります。-1 を入れるとその両方が行われます。

反転して加工後のオブジェクトを作ったら、imwrite 関数で出力します。

広告

広告