Top > OpenCV > Patch to support WebP format on OpenCV 2.4.2

OpenCV/Patch to support WebP format on OpenCV 2.4.2

概要

OpenCV 2.4.2でWebP形式のフォーマットを扱えるようにするパッチです.
OpenCV 2.4.2を対象としたパッチです.

ダウンロード

VersionFilenameSizeDateTypeDownload
1.0opencv2.4.2_webp_enable_patch_20120809.zip31.6 KB20120809ziphttp://www.atinfinity.info/opencv/extension/opencv2.4.2_webp_enable_patch_20120809.zip

変更履歴

VersionDate変更内容
1.020120809新規作成

使い方

WebPライブラリのビルド

  1. こちらからWebPのソースをダウンロードする.※今回はlibwebp-0.2.0.tar.gzを用いた.
  2. libwebp-0.2.0.tar.gzを展開する.
  3. Visual Studio コマンド プロンプトを起動する.
  4. コマンド プロンプトでlibwebp-0.2.0のディレクトリに移動する.
  5. 下記のコマンドを実行する(release用ライブラリが生成される).
    nmake /f Makefile.vc CFG=release-static RTLIBCFG=static OBJDIR=output
    
     ※Linux,Macの場合は以下のコマンドを実行する.
    make -f makefile.unix

OpenCV WebPパッチの適用

  1. 上記リンクからopencv2.4.2_webp_enable_patch_20120809.zipをダウンロードして展開します.
  2. 展開したディレクトリをOpenCVディレクトリに上書きします.  ※Linux,Macに適用する場合には,パッチ(下記ファイル)の改行コードをあらかじめnkfコマンド等でLFに変換して下さい.
  • opencv2.4.2_webp_enable_patch_20120809\CMakeLists.txt
  • opencv2.4.2_webp_enable_patch_20120809\cmake\OpenCVFindLibsGrfmt.cmake
  • opencv2.4.2_webp_enable_patch_20120809\cmake\OpenCVFindWebP.cmake
  • opencv2.4.2_webp_enable_patch_20120809\modules\highgui\CMakeLists.txt
  • opencv2.4.2_webp_enable_patch_20120809\modules\highgui\include\opencv2\highgui\highgui.hpp
  • opencv2.4.2_webp_enable_patch_20120809\modules\highgui\include\opencv2\highgui\highgui_c.h
  • opencv2.4.2_webp_enable_patch_20120809\modules\highgui\src\grfmt_webp.cpp
  • opencv2.4.2_webp_enable_patch_20120809\modules\highgui\src\grfmt_webp.hpp
  • opencv2.4.2_webp_enable_patch_20120809\modules\highgui\src\grfmts.hpp
  • opencv2.4.2_webp_enable_patch_20120809\modules\highgui\src\loadsave.cpp

OpenCVのビルド

OpenCVをCMakeを用いてビルドする.

  1. WITH_WEBPにチェックを入れて,「Configure」ボタンを押す.
    cmake_with_webp_0001.png


  2. WEBP_INCLUDE_DIRSにWebPのソースがあるディレクトリを指定して,「Generate」ボタンを押す.
    cmake_with_webp_0002.png


おまけ(1)

下記のような設定をすることでデコード時のquality(0~100)を指定できる.
※以下の例では最大品質の100を指定.

C API

int param[2];
param[0] = CV_IMWRITE_WEBP_QUALITY;
param[1] = 100;
cvSaveImage("img.webp", img, &param[0]);

C++ API

vector<int> param = vector<int>(2);
param[0] = CV_IMWRITE_WEBP_QUALITY;
param[1] = 100;
imwrite("img.webp", img, param);

おまけ(2)

下記のような設定をすることでlossless圧縮を指定できる.

C API

int param[2];
param[0] = CV_IMWRITE_WEBP_LOSSLESS;
param[1] = 1;
cvSaveImage("img.webp", img, &param[0]);

C++ API

vector<int> param = vector<int>(2);
param[0] = CV_IMWRITE_WEBP_LOSSLESS;
param[1] = 1;
imwrite("img.webp", img, param);

制限事項

  • Windows 32bit/Mac 64bitのみで動作検証.
  • 保存対象画像となるdepthは8Uのみ.

注意点

  • CV_IMWRITE_WEBP_QUALITYによる指定が無い場合,デフォルトで95が指定される.

リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: Mon, 10 Sep 2012 22:18:04 JST (1661d)