OpenCVを使って画像形式(フォーマット)を変換する方法をご紹介します。
目次
【OpenCV】画像形式(フォーマット)を変換する方法
環境
これから説明するコードに対応している実行環境は次の通りです。
- Jupyter Notebook
- Google Colaboratory
※上記以外の環境でも、基本的にPytonが使える環境であればコードはそのまま使えます。
今回は以下のjpegの画像をpng変換する方法を例にご紹介します。
変換できる画像フォーマット
OpenCVで変換できる画像フォーマットは以下の通りです。
20のフォーマットに対応しており、相互に変換可能です。
- jpg
- jpeg
- jpe
- jp2
- png
- webp
- bmp
- pbm
- pgm
- ppm
- pxm
- pnm
- sr
- ras
- tiff
- tif
- exr
- hdr
- pic
- dib
画像形式(フォーマット)を変換する方法
では、jpeg画像をpngに変換してみます。
概要
OpenCVのフォーマットの変換はとても簡単です。
変換方法:
- 変換したい画像を読み込む
- 読み込んだ画像を保存(拡張子:変換したい画像フォーマットを指定)
これだけです。
ポイントは保存時のファイル名の拡張子に変換したい画像フォーマットの拡張子を指定するだけです。
指定出来る拡張子は「変換出来る画像フォーマット」の20通りです。
コード
実際のコードは以下の通りです。
まず、jpegの画像を読み込んで表示してみます。
import cv2 import matplotlib.pyplot as plt # 画像の読み込み img = cv2.imread('fox_img.jpg') # カラーデータの色空間の変換 plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) # 画像の表示 plt.show()
次に、pngの画像フォーマットに変換しながらファイルを保存します。
#画像の書き込み
cv2.imwrite('fox_img.png',img)
これで、jprgからpngフォーマットに画像が変化され保存されます。
これで変換完了ですが、ちゃんと変換されているか表示して確認してみましょう。
# 画像の読み込み img = cv2.imread('fox_img.png') # カラーデータの色空間の変換 plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) # 画像の表示 plt.show()
ちゃんとpngファイルとして読み込めて、画像も表示できていますね。
今回はjpegをpngに変換してみましたが。
みなさんは、ご自身の変換したフォーマットを指定して変換してみて下さい。
尚、imread()は読み込む画像を指定しています。
ここはみなさんの環境(パス、ファイル名)に応じて適宜変更して下さい。
まとめ
OpenCVで画像フォーマットを変換する方法をご紹介しました。
最後に、上記のサンプルコードを実行しても画像が表示されないという人の為に、対処方法の解説ページを作りましたので、お困りの方は参考にしてみて下さい。
【OpenCV】matplotlib show()で画像が表示されない場合の対処方法
OpenCVで画像処理を行った場合、matplotlibを使って編集した画像を表示て確認したいと思う事が多いと思います。 しかし、多く環境で画像が表示されないという問題に遭遇...