【Python/OpenCV】画像の圧縮(エンコード)と復号(デコード)

Python版OpenCVのcv2.imencodeとcv2.imdecodeでOpenCVで画像をエンコードおよびデコードを行う方法を解説します。

画像の圧縮(エンコード)と復号(デコード)

Python版OpenCVのcv2.imencodeとcv2.imdecodeは、OpenCVで画像をエンコードおよびデコードするためのメソッドです。
画像をメモリ内で圧縮したり、圧縮された画像データを元の画像に戻したりすることができます。

サンプルコード① 画像のエンコード

import cv2

# 画像を読み込む
img = cv2.imread('input.jpg')

# 画像をJPEG形式でエンコード
result, encoded_img = cv2.imencode('.jpg', img)

# エンコードされた画像データをファイルに保存
with open('encoded_img.jpg', 'wb') as f:
    f.write(encoded_img)

サンプルコード② 画像のデコード

import cv2
import numpy as np

# エンコードされた画像データを読み込む
with open('encoded_img.jpg', 'rb') as f:
    encoded_img = f.read()

# バッファから画像データをデコード
decoded_img = cv2.imdecode(np.frombuffer(encoded_img, np.uint8), cv2.IMREAD_COLOR)

# デコードされた画像を表示
cv2.imshow('Decoded Image', decoded_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

関連ページ

【Python版OpenCV超入門】使い方とサンプルコードを解説
Python版OpenCVで画像処理プログラミングを行う方法を入門者向けにソースコード付きで解説するページです。
【画像処理入門】アルゴリズム&プログラミング
画像処理における基本的なアルゴリズムとその実装例(プログラム)についてまとめました。

コメント