日本語のOpenCV 3.x 本の比較

(2017年の)6〜8月とOpenCV 関連本の出版ラッシュだったようなので簡単なまとめ。個人の主観によるものであり、独断と偏見に基づくものです。悪しからず。

opencv.org

環境構築、OpenCVの基本、応用(著者の得意分野)の3つのうち2つ、もしくは全てというのが基本パターン。 対象バージョンは3.0、3.1、3.2のいずれかで言語は基本的にC++。

[2018/05/09 追記・更新]

新しく出版された書籍の情報を追加。

さすがに最新のバージョン3.3(8月3日リリース)を対象にした本はない。 工学社から発売されている「画像処理アルゴリズム入門 」は新しいバージョンを前提にしている(基礎的なトピックだけだけど)。

オライリー

詳解 OpenCV 3 ―コンピュータビジョンライブラリを使った画像処理・認識

詳解 OpenCV 3 ―コンピュータビジョンライブラリを使った画像処理・認識

詳解 OpenCV 3 ―コンピュータビジョンライブラリを使った画像処理・認識

  • 作者: Gary Bradski,Adrian Kaehler,松田晃一,小沼千絵,永田雅人,花形理
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2018/05/26
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログを見る

ついにきたかという感じ。予約受付中。プログラミング言語はC++で1024ページ。

すいません英語版買ったのに全然読めてないです。機械学習関係でページ数が増えているはず。

英語版はあまりわかりやすい英語ではなかったので日本語版の存在は大きいと思います。

中途半端に日本人の書いた本を買ってしまうよりは良さそう。ただし厚みに注意。

こういう分厚い本こそ電子書籍のメリットが生きると思うのだけど、紙媒体しか無い……。

このページ数だと書見台、使えないかも。

actto BST-02 ブックスタンド(OEM品番:EDH-004)

actto BST-02 ブックスタンド(OEM品番:EDH-004)

講談社サイエンティフィック(KS情報科学専門書)

『OpenCVによる画像処理入門 改訂第2版 (KS情報科学専門書)』

OpenCVによる画像処理入門 改訂第2版 (KS情報科学専門書)

OpenCVによる画像処理入門 改訂第2版 (KS情報科学専門書)

出版社サイト: OpenCVによる画像処理入門 | 書籍情報 | 株式会社 講談社サイエンティフィク

一冊で画像処理の基本的な手法と、OpenCVを用いた実現方法を両方解説しようという本。

C言語によるOpenCVを使用しないサンプルと、OpenCVを使用したPython、C++のサンプルが掲載されているのが特徴。

反面、欠点としては以下のとおり。

  • 教科書くさい
  • 基本のみで応用がない
  • 正味の情報量がやや少なめ

コンセプトの都合とPython/C++の両方のサンプルを掲載している関係でどっちつかずな感じは否めない。

OpenCV未経験かつ画像処理も未経験というケース向き。 対象のバージョンはOpenCV 3.2。

大学の研究室で、先輩が後輩に「とりあえずこれ読んどいて」とか言いながら手渡す光景が目にうかぶ。

カラーページは巻頭のみで、あとは2色刷り。そのぶん価格は他より安め。

『OpenCVによるコンピュータビジョン・機械学習入門 (KS情報科学専門書)』

OpenCVによるコンピュータビジョン・機械学習入門 (KS情報科学専門書)

OpenCVによるコンピュータビジョン・機械学習入門 (KS情報科学専門書)

出版社サイト: OpenCVによるlコンピュータビジョン・機械学習入門 | 書籍情報 | 株式会社 講談社サイエンティフィク

同じシリーズでこっちは応用トピック。上記の本を読んでいる前提。

強化学習ではなくて機械学習なんで注意。

マイナビ

『画像処理・機械学習プログラミング OpenCV 3対応』

画像処理・機械学習プログラミング OpenCV 3対応

画像処理・機械学習プログラミング OpenCV 3対応

  • 作者: 浦西友樹,青砥隆仁,井村誠孝,大倉史生,金谷一朗,小枝正直,中島悠太,藤本雄一郎,山口明彦,山本豪志朗
  • 出版社/メーカー: マイナビ出版
  • 発売日: 2017/06/21
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログを見る

出版社ページ:画像処理・機械学習プログラミング OpenCV 3対応 | マイナビブックス

サポートサイト:『画像処理・機械学習プログラミング』サポートサイト | マイナビブックス

出版社のサイトからPDFが購入可能。 機械学習特化。176ページしかないので広く浅くか。

達人出版会でも購入可能。

画像処理・機械学習プログラミング OpenCV 3対応【委託】 - 達人出版会

『OpenCV 3 プログラミングブック』

OpenCV 3 プログラミングブック

OpenCV 3 プログラミングブック

  • 作者: 藤本雄一郎,青砥隆仁,浦西友樹,大倉史生,小枝正直,中島悠太,山本豪志朗
  • 出版社/メーカー: マイナビ
  • 発売日: 2015/09/29
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログ (1件) を見る

比較的早い時期に発売された日本語の本だけど、内容が偏っていてAmazonのレビュー欄がひどいことになってたという。

内容がまずいというより読者がタイトルから想像する内容と、実際の内容が乖離しているのが原因。

もっと特定のトピックを対象にしていることを強調するようなタイトルにしておけばよかったのではないかと思う。

環境構築については詳しいけど、最新版の情報ではないので注意。

対象のバージョンはOpenCV 3.0。

目次を見たうえで必要な情報が記載されていると確信できない限り購入するのはやめた方がいいと思う。とにかく偏りすぎ。

カットシステム

計3冊でうち2冊が同じ著者で片方がC++。もう一方がJava。

この出版社の特徴としてサンプルコードの入手に(巻末に袋とじされている)パスワードとユーザー登録が必要。また価格が高めなのと、製本に使われている紙が厚め。

過去に酷い地雷本をつかまされているのでこの出版社の本はあまり買いたいくない。

誠に遺憾ながら私はこの出版社嫌いです。

どうせ出すなら他の出版社に原稿持ち込みましょうよ……。

『さらに進化した画像処理ライブラリの定番 OpenCV 3基本プログラミング』

さらに進化した画像処理ライブラリの定番 OpenCV 3基本プログラミング

さらに進化した画像処理ライブラリの定番 OpenCV 3基本プログラミング

可もなく不可もなく。基本的な内容がメイン。ただ、Webでよく紹介されている内容が中心で目新しさに欠ける。

OpenCVのビルド・インストールに関しては巻末付録扱い。

『Javaで始めるOpenCV3プログラミング』

Javaで始めるOpenCV3プログラミング

Javaで始めるOpenCV3プログラミング

上記と同じ著者のJava バージョン?

『実践OpenCV 3 for C++画像映像情報処理』

実践OpenCV 3 for C++画像映像情報処理

実践OpenCV 3 for C++画像映像情報処理

出版社サイト:CUTT System:実践OpenCV 3 for C++

タイトルのとおり動画よりのテーマを解説している。Windows 環境向け。開発環境としてVisualStudio を前提にしている。

他の本ではあまり解説されていないhighguiモジュールや周波数フィルタリングについて解説しているなど他とは傾向が異なる。
カットシステムのOpenCV関連の本の中では一番良いと思う。

工学社

『画像処理アルゴリズム入門 (I・O BOOKS)』

[2018/05/09 追記]

画像処理アルゴリズム入門 (I・O BOOKS)

画像処理アルゴリズム入門 (I・O BOOKS)

PythonとOpenCVで画像処理の基礎を学ぶという趣旨の本。

知っている内容がメインのようなので買わなかった。ページ数が少ないので未経験者にはおすすめだと思う。

pronama.azurewebsites.net

何処かで見たことのあるイラストだと思ったらそういうことなの?

『OpenCV3ではじめるWindowsアプリ開発』

OpenCV3ではじめるWindowsアプリ開発 (I・O BOOKS)

OpenCV3ではじめるWindowsアプリ開発 (I・O BOOKS)

タイトル通りWindows 環境向けのはず。実物を一度も見たことがない。 安いけどページ数少な目で古いのでオススメしない。

番外編

Interface 2017年5月号

Interface(インターフェース) 2017年 05 月号

Interface(インターフェース) 2017年 05 月号

特集記事でOpenCVの機能を網羅的に紹介している。対象としているOpenCVのバージョンは2.4系だけどいろんな処理をどういう時に使うか網羅的に紹介している。

ある画像に対して特定のフィルタ処理を適用する前と適用後の画像が掲載されている。

サンプルコートがC言語だったりイマイチな面は否定しないが、画像処理の用語とOpenCV のモジュールの関係の把握には役に立つ。 どういう時にどのモジュールのどの関数を使うのかさえ把握できればあとは自分の使っているバージョンのリファレンスを調べればいい。

Interface 2018年7月号

Interface(インターフェース) 2018年 07 月号

Interface(インターフェース) 2018年 07 月号

相変わらずOpenCV 2.X。サンプルコードは3.xでも動くと書いてある。

まとめ

選択の際の注目ポイントは大きく3つではないかと思います。

  • OpenCV の使用経験の有無
  • 画像処理自体の知識の有無
  • 機械学習関連か、あるいは何か特定のテーマに興味がある

ただの便利な画像処理ライブラリとして使いたいならweb上のチュートリアル系の記事ととリファレンスで十分。特にPython + OpenCV の記事はQiitaにたくさんあるはずです。

画像処理もOpenCVも未経験ならKS情報科学専門書シリーズの『OpenCVによる画像処理入門』が無難。あとは目次をよく見て自分の知りたいテーマについて記載があるかどうかで判断するのがベターだと思います。

特定のテーマに興味があるなら洋書の方がいいかもしれません。例えば顔画像から性別や年齢を推定する、車のナンバープレートの認識、などの応用について章を割いている本がPacktから出ていたはずです。

どうも決定打に欠ける感じ。

随時更新予定です。