OpenCV/Patch to support WebP format on OpenCV 2.4.2 †
#multilang(ja){{
概要
OpenCV 2.4.2でWebP形式のフォーマットを扱えるようにするパッチです.
※OpenCV 2.4.2を対象としたパッチです.
ダウンロード
Version | Filename | Size | Date | Type | Download |
1.0 | opencv2.4.2_webp_enable_patch_20120809.zip | 31.6 KB | 20120809 | zip | |
変更履歴
Version | Date | 変更内容 |
1.0 | 20120809 | 新規作成 |
使い方
WebPライブラリのビルド
- こちらからWebPのソースをダウンロードする.※今回はlibwebp-0.2.0.tar.gzを用いた.
- libwebp-0.2.0.tar.gzを展開する.
- Visual Studio コマンド プロンプトを起動する.
- コマンド プロンプトでlibwebp-0.2.0のディレクトリに移動する.
- 下記のコマンドを実行する(release用ライブラリが生成される).
nmake /f Makefile.vc CFG=release-static RTLIBCFG=static OBJDIR=output
※Linux,Macの場合は以下のコマンドを実行する.
make -f makefile.unix
OpenCV WebPパッチの適用
- 上記リンクからopencv2.4.2_webp_enable_patch_20120809.zipをダウンロードして展開します.
- 展開したディレクトリを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を用いてビルドする.
- WITH_WEBPにチェックを入れて,「Configure」ボタンを押す.
- WEBP_INCLUDE_DIRSにWebPのソースがあるディレクトリを指定して,「Generate」ボタンを押す.
おまけ(1)
下記のような設定をすることでデコード時のquality(0~100)を指定できる.
※以下の例では最大品質の100を指定.
C API
int param[2];
param[0] = CV_IMWRITE_WEBP_QUALITY;
param[1] = 100;
cvSaveImage("img.webp", img, ¶m[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, ¶m[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が指定される.
}}
#multilang(en){{
Abstract
This page describes the method to use WebP format on OpenCV 2.4.2.
Download
Version | Filename | Size | Date | Type | Download |
1.0 | opencv2.4.2_webp_enable_patch_20120809.zip | 31.6 KB | 20120809 | zip | |
ChangeLog?
Version | Date | Changes |
1.0 | 20120809 | First Release |
Usage
Build WebP library
- Please download WebP source code from Official page. I used libwebp-0.2.0.tar.gz for testing.
- Please extract libwebp-0.2.0.tar.gz.
- Please start Visual Studio command prompt.
- Please move to libwebp-0.2.0 directory.
- Please run the following command to make WebP library(release build).
nmake /f Makefile.vc CFG=release-static RTLIBCFG=static OBJDIR=output
If you use on Linux or Max, please run the following command to make WebP library
make -f makefile.unix
Applying WebP patch
- Please download opencv2.4.2_webp_enable_patch_20120809.zip. And,extract this file.
- Please overwrite to OpenCV's directory.
If you want to apply this patch to OpenCV-2.4.2(Linux or Mac), please convert newline character of these file to LF from CRLF.
- 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
Build OpenCV
Please build OpenCV using CMake.
- Please check WITH_WEBP and push Configure button.
- Please specify WebP source's directory to WEBP_INCLUDE_DIRS and push Generate button.
Tips(1)
You can specify the compression quality(min:0, max:100) by the following settings.
C API
int param[2];
param[0] = CV_IMWRITE_WEBP_QUALITY;
param[1] = 100;
cvSaveImage("img.webp", img, ¶m[0]);
C++ API
vector<int> param = vector<int>(2);
param[0] = CV_IMWRITE_WEBP_QUALITY;
param[1] = 100;
imwrite("img.webp", img, param);
Tips(2)
You can specify the lossless compression by the following settings.
C API
int param[2];
param[0] = CV_IMWRITE_WEBP_LOSSLESS;
param[1] = 1;
cvSaveImage("img.webp", img, ¶m[0]);
C++ API
vector<int> param = vector<int>(2);
param[0] = CV_IMWRITE_WEBP_LOSSLESS;
param[1] = 1;
imwrite("img.webp", img, param);
Limitation
- I have only tested this environment.
- Windows 32bit and Mac 64bit
- Save image depth supports 8U only.
Notes
- If you does not specify the quality by CV_IMWRITE_WEBP_QUALITY, 95 is specified by default.
}}