ここでは、Python と OpenCV を使って、「画像のリサイズ」に関する方法についてまとめています。
参考
画像の表示や保存については「画像の表示と保存」にまとめていますので参考にどうぞ。
OpenCV で画像をリサイズ
OpenCV を使って画像をリサイズするのは、とても簡単です。
標準APIである resize(<リサイズ後の幅>, <リサイズ後の高さ>) を使って、次のように記述します。
1 2 3 4 5 6 7 8 9 10 11 |
import cv2 img = cv2.imread("sample.jpg") print(img.shape) # (540, 720, 3) size = (300, 200) resized_img = cv2.resize(img, size) cv2.imshow("resized", resized_img) cv2.waitKey(0) cv2.destroyAllWindows() |
OpenCV で画像のリサイズ(補間方法の変更)
画像をリサイズする場合、足りない画素値の情報(拡大時)や画素値の間引き方(縮小時)など、
データの補間が必要になります。
OpenCV では、いくつかの補間方法が準備されています。
今回は INTER_AREA と INTER_LINEAR をご紹介いたします。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import cv2 img = cv2.imread("sample.jpg") size = (300, 200) img_area = cv2.resize(img, size, interpolation=cv2.INTER_AREA) img_linear = cv2.resize(img, size, interpolation=cv2.INTER_LINEAR) cv2.imshow("area", img_area) cv2.imshow("linear", img_linear) cv2.waitKey(0) cv2.destroyAllWindows() |
- 1~5行目はでは、前述と同じです
- 6~7行目で、resize() API を使用しています
resize() を呼出す際に、interpolation のオプションを指定して呼出すと、補間方法を変更できます - 9~12行目で、画像を表示していますので、違いを確認してみてください