OpenCV 4.13.0
Open Source Computer Vision
読み込み中...
検索中...
見つかりません
🤖 AIによる機械翻訳(非公式) — これは OpenCV 4.13.0 公式リファレンス(英語)を AI (Claude) で自動翻訳したものです。訳に誤りを含む場合があります。正確な情報は 公式英語版(原文) を参照してください。
画像の基本操作

前のチュートリアル: CUDAを用いたTegra向けOpenCVのビルド
次のチュートリアル: OpenCVのドキュメント作成

原著者Ana Huamán
互換性OpenCV >= 3.4.4
警告
このチュートリアルには古い情報が含まれている可能性がある。

目標

このチュートリアルでは、以下の方法を学ぶ:

  • ファイルから画像を読み込む(cv::imread を使用)
  • OpenCVウィンドウに画像を表示する(cv::imshow を使用)
  • 画像をファイルに書き出す(cv::imwrite を使用)

ソースコード

解説

それでは、メインのコードを分析しよう。最初のステップとして、OpenCVのサンプルから画像「starry_night.jpg」を読み込む。そのために、cv::imread 関数を呼び出し、第1引数で指定したファイルパスを使って画像を読み込む。第2引数は省略可能で、画像をどの形式で取得したいかを指定する。これは次のいずれかである:

  • IMREAD_COLOR は画像をBGRの8ビット形式で読み込む。これはここで使用されるデフォルトである。
  • IMREAD_UNCHANGED は画像をそのまま(存在する場合はアルファチャンネルも含めて)読み込む
  • IMREAD_GRAYSCALE は画像を輝度画像として読み込む

読み込みの後、画像データは cv::Mat オブジェクトに格納される。

覚え書き
OpenCVは画像形式のWindowsビットマップ(bmp)、ポータブル画像形式(pbm、pgm、ppm)、Sunラスター(sr、ras)をサポートする。プラグインの助けを借りれば(自分でライブラリをビルドする場合はそれらを使用するよう指定する必要があるが、私たちが配布するパッケージにはデフォルトで含まれている)、JPEG(jpeg、jpg、jpe)、JPEG 2000(jp2 - CMake内ではJasperというコードネーム)、TIFFファイル(tiff、tif)、ポータブルネットワークグラフィックス(png)といった画像形式も読み込める。さらに、OpenEXRも利用可能である。

その後、画像が正しく読み込まれたかどうかのチェックが実行される。

次に、cv::imshow 関数の呼び出しによって画像が表示される。第1引数はウィンドウのタイトルで、第2引数は表示される cv::Mat オブジェクトである。

ユーザーがキーを押すまでウィンドウを表示し続けたい(そうしないとプログラムがあまりにも早く終了してしまう)ため、cv::waitKey 関数を使用する。その唯一の引数は、ユーザー入力をどれだけ待つか(ミリ秒単位で計測)である。ゼロは無限に待つことを意味する。戻り値は押されたキーである。

最後に、押されたキーが「s」キーだった場合、画像がファイルに書き出される。このために cv::imwrite 関数が呼び出され、ファイルパスと cv::Mat オブジェクトを引数に取る。