質問: ### やりたいこと OpenCVによって色を変化させずに画素を落としたいです。 以下のコードの通りにリサイズすると 自動的にバイリニア法が適応され、画素数を落とした時に 元の画像の色と違う色が出力されてしまいます。 ``` img= cv2.resize(img,(640, 480)) ``` 色の変化をさせずに画素を落とすことのできるOpenCVはあるでしょうか。 参考になるサイトや知恵を教えて頂きたいです。 よろしくお願いします。
回答: > > 色を変化させずに画素数を落とす方法 > > > 元の画像にない画素値がリサイズ後に現れないようにしたいということでしょうか? そうであれば、リサイズした際に最近傍にある画素をそのまま使う「最近傍補完」がそれにあたります。OpenCV では resize() の引数 interpolation で補完方法を指定できるので、`cv2.INTER_NEAREST` を指定すればよいです。 ``` import cv2 img = cv2.imread('test.jpg') resized = cv2.resize(img, dsize=None, fx=0.2, fy=0.2, interpolation=cv2.INTER_NEAREST) print('{} -> {}'.format(img.shape, resized.shape)) cv2.imwrite('resized.png', resized) # (1960, 1960, 3) -> (588, 588, 3) ```