高級なバリカンを買ってみた話
いつも髪をセルフカットするのに使っていたバリカンがお亡くなりになったので買い替えました。
正確にいうと、取り外し式の刃を固定するバネの付け根のプラスチック部品が割れた状態。本体側は生きているけどバッテリーがへたっているので買い替えを決断。
なんだかんだで2年半ぐらいは使っているはずで、完全に元は取ったと思う。おそらく替え刃が存在するので延命措置は可能。
以前から気になていた高級(?)バリカンに買い換えることに。メンテのたびに油をさす必要がないという点がいちばんの魅力。そして高級バリカンというパワーワード。
はてなの某界隈のビッグネームが紹介していたたやつ。
はてなインターンで優勝して,高級バリカン買った - 人権真骨頂
ちなみに以前使っていたのは「TESCOM スキカット 電動バリカン 充電・交流式 ブルー TC395-A」という商品。
どのモデルにするか
上記のエントリで紹介されているフィリップスの高級バリカン、付属品の違いで上位モデルと下位モデルの二つがある。
さらに旧モデル(型落ち品)も販売されているので2かける2で4モデルある。
フィリップス 電動バリカン セルフヘアーカッター 充電・交流式 QC5582/15
- 出版社/メーカー: Philips (フィリップス)
- メディア: ホーム&キッチン
- この商品を含むブログを見る
フィリップス 電動バリカン セルフヘアーカッター 充電・交流式 QC5572/15
- 出版社/メーカー: Philips (フィリップス)
- メディア: ホーム&キッチン
- この商品を含むブログを見る
上位モデルと下位モデルの違いは付属品のみっぽい。
- 収納ポーチ
- スキンヘッド用のアダプタ
スキンヘッドにする予定はないですが、わざわざちょうどいい大きさの収納ポーチを探すのも面倒かなってことで上位モデルの方を購入。あとから付属品だけ買いたくても入手できないだろうってことで*1。
上位モデルを購入したわけですが、購入後の感想としては下位モデルで十分だと思いました。付属のポーチは仕切りも何もない、 ただのちょうどいいサイズのポーチだったので。
さらに安いモデルもあるけど、こっちは充電式ではない(常に電源ケーブルをつなぐ必要がある)ので却下。
上位モデルの旧式は以下(販売元に注意)。新モデルは充電残量の表示があるけど旧モデルはないとか。
フィリップス 電動バリカン シェービングヘッド付セルフヘアカッター 【180度回転ヘッド】QC5580 メンズ グルーミング
製品の詳細
私の記憶違いでなければ、フィリップスの製品は電動の髭剃り(円形の刃が回転するやつ)以来です。ちなみに電動の髭剃りは全然深剃りできない上に洗浄液が高いので1ヶ月も経たずに廃棄、です。
本体と付属品
主な付属品一式。詳細はAmazonの方へ。
本体の刃の部分が左右それぞれ90度まで回転するのでセルフカットする場合に非常に便利。主に後頭部。
収納ポーチ。
仕切りも何もないので本体と付属品を一式詰め込むだけです。率直に申し上げて、百円ショップに売っている適当なポーチで十分かと。
コームとか
標準コームを装着した状態。本体の白い出っ張りのある場所を回すとコームの高さ(刃との間隔)が調整できる。3mmから2mm刻みで。
細部コームの拡大。同じ要領で高さを調整できる。1mmから3mmまで0.5mm刻み。こっちはちょっと見にくい。
なお、コームをはずすと0.5mmにできます。
スキンヘッドにする予定はないのでヘアーシェービングヘッドについてはノーコメントです。ヒゲを剃るにも無理がありそうに見えるし。
充電表示
充電中は点滅。完了すると点滅しない(点灯状態)。
説明書によると電池残量が少なくなるとオレンジ色になるそうです。
感想
高級バリカンなだけのことはあります。切れ味は普通だろうと思いますが*2、使い買っては非常に良いです。ヘッドの部分が回転するおかげでセルフカットに最適だと思います。
メンテナンスも丸洗い可で毎回油をさす必要はないので特に問題なし。
強いて改善点を挙げるとすれば、ヘッドの回転角度が0度、45度、90度の3パターンという点。15度と60度の位置で固定できるようにして欲しかった。
購入したのはQC5582/15ですが、付属の収納ポーチの出来からしてQC5572/15で十分だったかな、とは思います。
まあそんなこんなで以上です。写真は気が向いたらマシなのに差し替えるかも。
フィリップス 電動バリカン セルフヘアーカッター 充電・交流式 QC5572/15
- 出版社/メーカー: Philips (フィリップス)
- メディア: ホーム&キッチン
- この商品を含むブログを見る
白内障手術から1年と6ヶ月
さすがにこのネタを引っ張るのもどうかという感じですが、ちょうどいい表現を思いついたので。
健康な人の目をカメラに例えると
可変フォーカスかつオートフォーカス
最高ですね。人体って良くできてますよね。手持ちのWebカメラだとロジテックのC525。
オートフォーカスはいいものです。スマートフォンのカメラも基本的にマクロ撮影もできるので可変かつオートフォーカス。
白内障手術後の目をカメラに例えると
固定フォーカスですね。
可変フォーカスの方がいいに決まっていますが、パソコンに搭載されているカメラの焦点範囲が広いのと同様に意外とボケたりしないものです。
どんなレンズを埋めるかは医師と応相談。
遠見用レンズ
焦点を遠方に合わせた固定フォーカス。本を読むとき(ある意味マクロ撮影)はメガネが必要。
近見用レンズ
焦点を手元に合わせた固定フォーカス。遠方はどうしてもボケるのでメガネが必要。ただし、目から10〜20センチの極端に近い位置はぼやけて見えない。
私の目に埋め込まれてるのはこれ。詳細なスペック情報は提供してもらえず*1。
意外なほど焦点範囲が広いです。
多焦点レンズ
いくつか種類があるようですが、基本的には「写ルンです」のレンズみたいなやつ。
保険は効かないそうです。
Webカメラ系で搭載しているかどうかは不明。
というわけで
目の手術の術後の経過は良好です。
調子に乗って目を酷使しがちなのでちょっと反省。
それでは。
*1:医師に言えばくれるのか?
ラズパイ(Raspbian Jessie)とスワップメモリ容量の変更(環境設定の続き)
過去記事についても分割・統合して整理する予定。
以前はどうだったのかよくわかりませんが、現在のRaspbian は初期設定の状態でChromium(Google Chromeのオープンソース版)がインストールされているので、Youtubeの動画が見れたり、それなり普段使いの環境になります。
さりげなくFlash再生プラグインが導入済みなのである程度はFlashゲームも遊べたりします。
ただ、メインメモリ容量が1GBなうえにスワップメモリ容量も少ないのでChromeでたくさんタブを開くとかなりの確率でハングします。そこで対処法としてSwapをの容量を変更します。
スワップの設定
理由はわかりませんが、dphys-swapfile
というプログラムにより管理されています。
初期状態では100MBになっていて、調子に乗ってChromiumでタブをたくさん開くとハングアップ。
GUIベースで作業したいとか、サイズの大きい画像ファイルを扱う場合は物理メモリと同じぐらいのサイズに設定しておきたい。
サーバー用途ならSwapなしでも大丈夫な場合もあるので用途に応じて容量は調整する必要があります。また、microSD の寿命から考えると、USBメモリを接続してそっちにSwap領域を作ってメインのmicroSDへの負荷を減らすのも一つの方法。
dphys-swapfile
についてざっくり整理すると以下のようになります。
- インストール直後の初期設定:100MB
- 明示的に上限値を変更しない限り、2GB以下の値に切り捨て
- MB単位で指定する方法と、実メモリの容量に対する倍率を指定する方法の二通り
ラズパイ3の搭載メモリは1024MB。実際にカーネルが認識するのはこの値からGPU用に割り当てた容量を引いた値になる。
固定値を指定する方法
エディタで/etc/dphys-swapfile
を開き、CONF_SWAPSIZE
という行の値を変更。例えば2048MB(2GB)なら以下のように変更。
CONF_SWAPSIZE=2048
設定したいSwapのサイズをMB単位で指定。
$ sudo systemctl stop dphys-swapfile $ sudo systemctl start dphys-swapfile
systemctl
経由でstop/start する。実際に呼び出されるのは/etc/init.d/dphys-swapfile
。
なお、swapの容量を変更した直後は内部でdd
コマンドが呼び出されるので非常に時間がかかります。
最後にfree -h
で意図した容量に設定されているか確認。
$ free -h total used free shared buffers cached Mem: 862M 833M 28M 6.3M 36M 656M -/+ buffers/cache: 140M 721M Swap: 2.0G 0B 2.0G
-h
は人間が読みやすい単位で出力するというオプション。
free
コマンドに-m
オプションを指定するケースをよく見かけるのでついでに書いておくと、-b
、-k
、-m
、-g
、--tera
オプションでそれぞれバイト、キロバイト、メガバイト、ギガバイト、テラバイトの単位で出力(小数点以下切り捨て)
)。デフォルトはキロバイト単位。ちなみに-t
はトータル容量表示。
倍率指定による方法
もし倍率指定で設定する場合は。修正箇所は、
- CONF_SWAPSIZE=100 という行をコメントアウト。
- CONF_SWAPFACTOR=2 という行の行頭のコメント記号を削除
これでカーネルが認識しているメモリ量の2倍に設定される。もしGPUへの割り当てメモリを頻繁に変えるなら固定値にしておいた方がいいと思います。
注意点
もし2048(2GB)以上の値を設定するなら、CONF_MAXSWAP=2048
という行の行等のコメントを削除、等号の右側の2048
という値を4096などの大きい値にする。
このパラメータを指定しない場合、古い32ビットカーネルを考慮しているのか、2048より大きい値を指定しても自動的に2048(2GB)にセットされるので注意。
どこかのサイトで2GB以上に設定できないという話はこの設定を変更していないせいだろうと思います。
そのほか
もちろんWebサイトによってはユーザーエージェントで弾かれたりします。
スワップの容量を増やした状態でもmicroSDへのデータアクセスの最中にプチフリのような現象が発生したり、色々ツライ場面は多々あります。
コンパイルの待ち時間に暇つぶししたりする分には十分です。購入当初の目論見とは違うところで活躍していますがまあドンマイってことで。
たかだかスワップ容量の変更にグダグダと書けるとは自分でも意外ですが以上です。
MacPorts と開発版 Inkscape (0.92pre3)
普通に開発版のパッケージも提供されてるじゃないですか、MacPorts経由で。
なるほど、それでHomebrew向けの情報が無いのか……。
MacPortsだといくつかビルドしているサイトが見つかる。
しかもXQuartz非依存のパッケージを作るオプションも用意されてるという……。
なんか時代に逆行するようですが、Homebrew から MacPorts へ移行してみます。
Homebrew のアンインストール
公式サイトの指示に従う。
brew/FAQ.md at master · Homebrew/brew · GitHub
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
実行すると、以下のように問い合わせてくるので、"y"と入力。
Are you sure you want to uninstall Homebrew? [y/N]
正常に終了すると以下のようなメッセージが出る。 最後に「下記のファイルは削除しないので自分で消してくれ」という趣旨のメッセージが表示されています。
しかしながら、他のソフト(VirtualBoxやDockerなどインストーラーを使用したもの)が作成したファイルがあるので/usr/local
配下のフォルダはそのままにしておく必要があります。
==> Homebrew uninstalled! The following possible Homebrew files were not deleted: /usr/local/bin/ /usr/local/etc/ /usr/local/share/ /usr/local/var/ You may wish to remove them yourself.
MacPorts のインストール
必要なもの
Homebrew をインストールしていたのであれば不要なはずですが、念のため。
$ xcode-select --install
あとはダイアログの指示に従う。
インストーラの実行
公式サイトから使用中のmacOSのバージョンに合わせたインストーラーをダウンロード。 Sierraの場合はMacPorts-2.3.5-10.12-Sierra.pkg
。
ダウンロードしたpkgファイルをダブルクリックしてインストール開始。
アップデート
$ sudo port -v selfupdate
パッケージのデータベースの更新と、必須パッケージのアップデート。
Inkscape 開発版パッケージ
inkscape-devel
という名前で開発版をインストールすることができるようなので、これを使います。RedHat系Linuxの場合、*-devel
というパッケージ名ははヘッダファイルとスタティック形式のライブラリファイルになりますが、MacPortsでは(少なくともInkscapeの場合は)命名規則が異なるようです。
ただし、この記事を書いている時点では(macOS側の仕様変更なのかよくわかりませんが)、SierraでビルドするとLANG=Cでしか起動しないバイナリが生成されルようです。
起動する際に、以下のようにすれば回避可能。
$ LANG=ja_JP inkscape
LANG=C
でもOKですが、LANG=ja_JP.UTF-8
の場合はダメ。
XQuartz (+x11) 版
$ sudo port install inkscape-devel
XQuartzに依存したバイナリが/opt/local
配下にインストールされます。.app
形式ではないので/opt/local/bin/inkscape
。
上記の問題の関係で、以下のように起動。
$ LANG=ja_JP inkscape
自動的にXQuartzが実行され、そのあとInkscapeが起動します。
ネイティブ版
XQuartzなしで動作するバージョンとしてビルドします。
依存ライブラリも+quartz
でビルドする必要があります。万全を期すために一度依存ライブラリをアンインストールします。一時的に依存ライブラリをdeactive
することもできるようですが、確実な方法を。
$ sudo port uninstall gtk2 gtkmm cairo pango gtkspell2 pangomm cairomm harfbuzz poppler gobject-introspection atk gdk-pixbuf2 atkmm
下記のコマンドで依存ライブラリも再構築される。
$ sudo port install inkscape-devel +quartz +svg2
実行時は上記と同様に。
$ LANG=ja_JP inkscape
XQuartzに依存していないので、OS側の日本語入力を使用できるようです。ただし相変わらず未確定の文字列は表示されませんが。
.app
形式にもチャレンジしてみたい今日この頃。
関連URL
ビルドエラーとかそういうの。+strict
つけちゃダメよってことのようです。
とりあえずここまで。
OpenCV関連本いろいろ(洋書)
本のタイトルから対象にしているOpenCVのバージョンが判断しづらいケースや、内容の違いがよくわからないものが多いのでリスト化してみました。
随時更新予定です。
確実に言えることは、Amazon から買うより出版元の割引セールで買うか、電子版なら定額読み放題サービスを利用するのがリーズナブルだということです。
特にPackt の本をAmazonのKindle版で購入しようとするとなぜか価格が高いケースが多いので出版元のサイトから購入することを強く推奨。
Pact の本は定額読み放題サービス(Mapt )のWeb版で確認した情報。
オライリー(英語版)の英文よりもPacktという出版社の英文の方が個人的に読みやすいです。
ごちゃごちゃと書いてある本は少なくとも半分以上目を通したか、サンプルコードの一部を入力して実行した*1書籍になります。逆言うとそれ以外は基本的に導入部分の説明(対象バージョンや前提条件)のみ確認しています。
なお、日本語の関連本についてもまとめ記事を作成しました。
C++
Packtの方は本文で例示しているソースコードとダウンロードしたソースが微妙に違うケースがあるので注意されたし。
基本的にバージョン3.xの本が出揃っているようなので2.x系を対象にした本は除きます。
Learning Opencv 3: Computer Vision in C++ With the Opencv Library
Learning OpenCV 3: Computer Vision in C++ with the OpenCV Library
- 作者: Adrian Kaehler,Gary Bradski
- 出版社/メーカー: O'Reilly Media
- 発売日: 2017/01/08
- メディア: ペーパーバック
- この商品を含むブログを見る
米オライリーの方針変更でDRMフリーの電子版(epub, pdf, mobi)の単体購入はできなくなりました。定期購読か紙媒体、Kindle版のみ、です。
絶賛リリース遅延中?どうにか正式リリースされた安心安全のオライリー本。Amazonでは夏頃発売になってたんですよ、ホントに。
私の英語力ではちょっと読みにくい。そのうち翻訳本が出るはず。
日本語版が発売されています。
詳解 OpenCV 3 ―コンピュータビジョンライブラリを使った画像処理・認識
- 作者: Gary Bradski,Adrian Kaehler,松田晃一,小沼千絵,永田雅人,花形理
- 出版社/メーカー: オライリージャパン
- 発売日: 2018/05/26
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
この本に限らず、もう少しモダンな組版とかレイアウトになるといいのだけど。
サンプルコードはGitHub経由で。
GitHub - oreillymedia/Learning-OpenCV-3_examples
Learning OpenCV 3 Application Development
Learning OpenCV 3 Application Development
- 作者: Samyak Datta
- 出版社/メーカー: Packt Publishing
- 発売日: 2016/12/19
- メディア: Kindle版
- この商品を含むブログを見る
12月正式リリース予定。Mapt 経由では未だ読めず 。
- OpenCV 3.1
- 著者はカナダの大学教授
- 特筆すべき内容は顔認識とか静止画からの3次元再構築とか
OpenCV 3 Computer Vision Application Programming Cookbook - Third Edition
OpenCV 3 Computer Vision Application Programming Cookbook - Third Edition
- 作者: Robert Laganiere
- 出版社/メーカー: Packt Publishing
- 発売日: 2017/02/09
- メディア: Kindle版
- この商品を含むブログを見る
12月正式リリース予定。Mapt 経由では未だ読めず。
著者はGoogle でインターンしたことがあるとかなんとか。南インドのインド情報技術大学ハイデラバード校の研究者(research intern)。
OpenCV 3 Blueprints
- 紹介されている機材を持っていないとツラい(いわゆるデプスカメラとか)
- OpenCV の解説というよりは応用例の紹介
- 機械学習による表情(Facial Expressions)の判別(Chapter 3)
- パノラマ画像を合成するAndoroid アプリ(Chapter 4)
- 物体検出(Chapter 5)
- 生体認証(顔、指紋、虹彩)の実例(Chapter 6)
- ジャイロセンサ(スコープ)によるビデオ安定化(Gyroscopic Video Stabilization): 手ぶれ補正の話(Chapter 7)
体系的に解説しているタイプの本ではない。OpenCV経験者向けだと思う。
サンプルコード:GitHub - OpenCVBlueprints/OpenCVBlueprints: OpenCVBlueprints
Mastering OpenCV 3 - Second Edition
Mastering OpenCV 3 - Second Edition
- 作者: Daniel Lélis Baggio,Shervin Emami,David Millán Escrivá,Khvedchenia Ievgen,Naureen Mahmood,Jason Saragih,Roy Shilkrot
- 出版社/メーカー: Packt Publishing
- 発売日: 2017/05/04
- メディア: Kindle版
- この商品を含むブログを見る
Mastering OpenCV 3 - Second Edition | PACKT Books
OpenCV 3.1がターゲット。
特徴はChapter 3 のナンバープレート読み取り(英数字)。ラズパイを使ったサンプルもある。 あとは顔認識とか姿勢推定とか。
かなり応用重視の本。
OpenCV By Example
- 作者: Prateek Joshi,David Millan Escriva,Vinicius Godoy
- 出版社/メーカー: Packt Publishing
- 発売日: 2016/01/22
- メディア: Kindle版
- この商品を含むブログを見る
- OpenCV 3.0
- 比較的平易な英語
- CMake の初歩など
- 画像から単純なオブジェクトを検出(Chapter 5/6)
- 顔認識、顔の一部をトラッキング(Chapter 7)
- Tesseract OCR 連携(chapter 10)
人間の視覚の話から入る。最初だけの脳科学の用語とか出てくるので注意。Chapter 6 から機械学習の話が始まる。網羅的にOpenCVの機能を解説しているわけではない。
文中で度々OCRに言及している点も特徴のひとつ。「こういう処理はOCRでも有益だ」とか、「典型的な応用例としてはOCRが挙げられる」という文章が何度か出てくる。
気になった点など
ヘッダファイルの追加についてスルーしている箇所があったり、本文中で説明しているコードとダウンロードしたソースコードが微妙に一致していない箇所があるので注意*2。
また、OpenCVの関数のうち、引数に整数で範囲をしているするものについては「範囲にその値を含むか含まないか」を説明して欲しかった。上限値を指定する場合、255を引数とするのか、256(範囲に含まない)を引数として与えるのかは明記指定欲しい。プログラムのコメントに0から255と書いておきながら関数の引数が256とあれば誤植でないか、疑問に思って手が止まってしまう。上限値+1など書いてくれた方がいい。
下限値は範囲に含むが、上限値は範囲に含まないというのは個人的には違和感がある。Python とか Go でもそういうAPIの場合はあるから違和感がないのかもしれないが。
サンプルコードに関連して
基本的にダウンロードしたソースはちゃんとコンパイル通るのでそっちをメインに参照するといい。ただし、文中にファイル名は明示されていない(少なくともMapt経由で読む分には)。
ただし、Chapter 6のSVMを使ったサンプルについては本文が正しく、ダウンロードしたファイルの方がおかしい。
具体的にいうと、ソースコード側でml
モジュールの、SVM::Params
クラスのオブジェクトを使用しているせいでコンパイルが通らない。OpenCV のバージョン3.xにはこのサブクラスはない。
少なくとも3.0 Beta のある時期まではこのSVM::Params
が存在した模様。まともなOpenCV 3.x のSVMまわりは仕様が変更されたとのことなので、使い方としてはこのSVM::Params
を使うのは正しくない。
本文側は公式のチュートリアルと同様にSVM::create()
を使っている。なのでこの部分は本文側を信じてサンプルのコードを書き換える。
Python 系
Python 3.x なのか 2.x かそれが問題です。
Python 2.x が対象の書籍でもprint
関数など一部を修正すれば大丈夫だろうと思うが、OpenCV以外に利用されているライブラリまでは判断できない。
ググればサンプルが出てくるので本を買う必要はないのかもしれない。
参考書もPython 3系に移行してくれないと、せっかくPython 3系を勉強した初学者が本格的にPythonを利用する際にやっぱり2系の知識も…という話になってしまう。
OpenCV with Python by Example
OpenCV with Python BluePrints
- 作者: Michael Beyeler
- 出版社/メーカー: Packt Publishing
- 発売日: 2015/10/19
- メディア: ペーパーバック
- この商品を含むブログを見る
Learning OpenCV 3 Computer Vision with Python - Second Edition
Learning Opencv 3 Computer Vision With Python
- 作者: Joe Minichino
- 出版社/メーカー: Packt Publishing
- 発売日: 2015/09/29
- メディア: ペーパーバック
- この商品を含むブログを見る
OpenCV: Computer Vision Projects with Python
Mac環境の場合は、MacPorts、Homebrew 両方とも解説あり。
extra
モジュールを有効にしていればOpenCV 3.x でも問題はなさそうに見える。
Raspberry Pi for Python Programmers cookbook Second Edition
Raspberry Pi for Python Programmers Cookbook, Second Edition
- 作者: Tim Cox
- 出版社/メーカー: Packt Publishing
- 発売日: 2016/10/07
- メディア: ペーパーバック
- この商品を含むブログを見る
ちょこっとだけOpenCVが出てくる。旧版と間違えないよう注意。
- Python 3.4
- OpenCV 3.0
- Raspberry Pi 3 model B を推奨しているが、他のモデルでもOK
- Pi Camera module or Webカメラ
改訂版のはずだが現行のRaspbian に存在しないはずのmencoder を使う例がある。mpv
で代用できると思う。
ネットワーク接続を含めて環境構築周りが詳しい。ソースからOpenCV 3.0 + contlib でビルドして
Chapter 2 からPythonプログラミング。最初は換字式暗号(シーザー暗号)のプログラムからスタート。Python/Tk のGUIプログラミングとかゲーム作成の初歩とか。OpenCV はChapter 8の後半のみ。
Computer Vision with Python 3
- 作者: Saurabh Kapur
- 出版社/メーカー: Packt Publishing
- 発売日: 2017/08/24
- メディア: ペーパーバック
- この商品を含むブログを見る
Computer Vision with Python 3 | PACKT Books
OpenCV オンリーではないけど一応。Pillow, Scikit-Image, and OpenCVの3つを解説している。バランスは良さそう。
トータル206ページなのでそれほど読むのもしんどくないはず。
for iOS
IOS Application Development with Opencv 3
- 作者: Joseph Howse
- 出版社/メーカー: Packt Publishing
- 発売日: 2016/06/30
- メディア: ペーパーバック
- この商品を含むブログを見る
- Objective-C
- OpenCV 3.1
- iOS 9
- 画像の合成
- 顔認識、顔画像合成
- コインの判別など
GitHubでもソースコードが公開されている。出版社のページから入手できるソースより更新されている場合がある。 また、正誤訂正(ERRATA)もGitHubで。
- GitHub - JoeHowse/iOSWithOpenCV: These are the projects for my book, iOS Application Development with OpenCV 3.
- iOSWithOpenCV/ERRATA.md at master · JoeHowse/iOSWithOpenCV · GitHub
iOS 9 を前提にしているので、微妙に'deprected'で警告が出たりするが、適宜修正すればいい。GitHubで公開されている方のコードはiOS 10対応になっている。
Mapt経由で読んでいるせいなのか、本文中のソースコードのインデント(というかメソッド定義の先頭)がおかしい箇所がある(Chapter 2)。
OpenCV 3.1系の、特にCvVideoCamera
クラスのバグ対策のノウハウが色々と記載されている。ただし、OpenCV 3.2系でどこまで修正されているのかは未確認。
Objective-Cでのアプリ開発の経験があるならなかなか良い本。難点を挙げるとすればアルゴリズムの説明がちょっと雑。例えば画像合成の説明で複数の合成アルゴリズムを使用するのはいいのだけれど、アルゴリズムAの前処理、アルゴリズムBの前処理、…と続いてアルゴリズムAの処理、アルゴリズムBの処理、と続くのはかえって混乱する。
少なくとも現在のSwiftから直接C/C++のライブラリを使用することはできない。そのためこの本はObjective-C/C++でアプリを開発するサンプルになっている。 OpenCVに関係ない部分はSwiftで、残りはObjective-CでC++をラップすれば問題ないはずだがやはり混在させると面倒なのだろうと思った。
そのほか
日本語のOpenCV解説ページなど。
結論
身もふたもないが、定額読み放題サービス(Safari Books Online or Mapt )に加入すれば悩む必要なし。ざっくり1冊読んでおいて、あとは必要に迫られた時に参考になりそうなトピックが書いてあるものを読めばいいのではないでしょうか。
個人的なおすすめはOpenCV Exampleです。
OpenCV 3.x + Python 3.x はGoogle 先生がサンプルのありかを教えてくれます。関数の名称は変化していないのできっとなんとかなる。
……以上です。