画像処理ライブラリOpenCVで画像をファイルに保存するにはimwriteを使う。
OpenCVを使うには次のようにインポートが必要。
import cv2
1. imwriteの書式
imwriteの書式は以下
cv2.imwrite(filename, img[, params])
引数 | 意味 |
---|---|
filename | パスとファイル名(+拡張子)。
サポートされている拡張子は以下(OpenCV 4.5.5) -Windows bitmaps - *.bmp, *.dib -JPEG files - *.jpeg, *.jpg, *.jpe -JPEG 2000 files - *.jp2 -Portable Network Graphics - *.png -WebP - *.webp -Portable image format - *.pbm, *.pgm, *.ppm *.pxm, *.pnm -PFM files - *.pfm -Sun rasters - *.sr, *.ras -TIFF files - *.tiff, *.tif -OpenEXR Image files - *.exr -Radiance HDR - *.hdr, *.pic -Raster and Vector geospatial data supported by GDAL |
img | 保存する画像 |
params | オプション。Imwrite flagsを指定。 パラメーターID、パラメーター値をセットで指定する。 |
jpegファイルを読み出して、pngファイルに保存する例。
import cv2 img = cv2.imread('test.jpg') cv2.imwrite('test.png', img)
2. jpeg保存時のcv2.IMWRITE_JPEG_QUALITY
jpegファイルで保存する際にImwrite flagsとしてcv2.IMWRITE_JPEG_QUALITYと値を指定することで保存時のクオリティ設定ができる。値は0-100の間で設定する(大きいほど高品質)。指定しない場合はデフォルト値の95となる。
下の画像 'promenade.jpg' を保存する(フリー写真素材ぱくたそより)。画像サイズ400x600ピクセルでファイルサイズ239KB。
品質80で保存。ファイルサイズが102KBになる。
import cv2 img = cv2.imread('promenade.jpg') cv2.imwrite('promenade_80.jpg', img, (cv2.IMWRITE_JPEG_QUALITY, 80))
品質20で保存。ファイルサイズが28.6KBになる。
import cv2 img = cv2.imread('promenade.jpg') cv2.imwrite('promenade_20.jpg', img, (cv2.IMWRITE_JPEG_QUALITY, 20))
3. リファレンス
OpenCV > Image file reading and writing > imwrite()
OpenCV > Flags used for image file reading and writing > ImwriteFlags
使用したバージョン:Python 3.8.12 / OpenCV 4.5.5
0 件のコメント:
コメントを投稿