今日も微速転進

ここではないどこかへ

高級なバリカンを買ってみた話

f:id:atuyosi:20161223002230j:plain

いつも髪をセルフカットするのに使っていたバリカンがお亡くなりになったので買い替えました。

正確にいうと、取り外し式の刃を固定するバネの付け根のプラスチック部品が割れた状態。本体側は生きているけどバッテリーがへたっているので買い替えを決断。

なんだかんだで2年半ぐらいは使っているはずで、完全に元は取ったと思う。おそらく替え刃が存在するので延命措置は可能。

以前から気になていた高級(?)バリカンに買い換えることに。メンテのたびに油をさす必要がないという点がいちばんの魅力。そして高級バリカンというパワーワード。

はてなの某界隈のビッグネームが紹介していたたやつ。

新しく買ったバリカンが素晴らしい品質だった

はてなインターンで優勝して,高級バリカン買った - 人権真骨頂

ちなみに以前使っていたのは「TESCOM スキカット 電動バリカン 充電・交流式 ブルー TC395-A」という商品。

どのモデルにするか

上記のエントリで紹介されているフィリップスの高級バリカン、付属品の違いで上位モデルと下位モデルの二つがある。

さらに旧モデル(型落ち品)も販売されているので2かける2で4モデルある。

上位モデルと下位モデルの違いは付属品のみっぽい。

  • 収納ポーチ
  • スキンヘッド用のアダプタ

スキンヘッドにする予定はないですが、わざわざちょうどいい大きさの収納ポーチを探すのも面倒かなってことで上位モデルの方を購入。あとから付属品だけ買いたくても入手できないだろうってことで*1

上位モデルを購入したわけですが、購入後の感想としては下位モデルで十分だと思いました。付属のポーチは仕切りも何もない、 ただのちょうどいいサイズのポーチだったので。


さらに安いモデルもあるけど、こっちは充電式ではない(常に電源ケーブルをつなぐ必要がある)ので却下。

上位モデルの旧式は以下(販売元に注意)。新モデルは充電残量の表示があるけど旧モデルはないとか。

フィリップス 電動バリカン シェービングヘッド付セルフヘアカッター 【180度回転ヘッド】QC5580 メンズ グルーミング

製品の詳細

私の記憶違いでなければ、フィリップスの製品は電動の髭剃り(円形の刃が回転するやつ)以来です。ちなみに電動の髭剃りは全然深剃りできない上に洗浄液が高いので1ヶ月も経たずに廃棄、です。

f:id:atuyosi:20161223002214j:plain

本体と付属品

f:id:atuyosi:20161223005918j:plain
主な付属品一式。詳細はAmazonの方へ。

本体の刃の部分が左右それぞれ90度まで回転するのでセルフカットする場合に非常に便利。主に後頭部。

f:id:atuyosi:20161223012039j:plain
収納ポーチ。

仕切りも何もないので本体と付属品を一式詰め込むだけです。率直に申し上げて、百円ショップに売っている適当なポーチで十分かと。

コームとか

f:id:atuyosi:20161223002157j:plain

標準コームを装着した状態。本体の白い出っ張りのある場所を回すとコームの高さ(刃との間隔)が調整できる。3mmから2mm刻みで。

f:id:atuyosi:20161223005929j:plain

細部コームの拡大。同じ要領で高さを調整できる。1mmから3mmまで0.5mm刻み。こっちはちょっと見にくい。

なお、コームをはずすと0.5mmにできます。


スキンヘッドにする予定はないのでヘアーシェービングヘッドについてはノーコメントです。ヒゲを剃るにも無理がありそうに見えるし。

充電表示

f:id:atuyosi:20161223010128j:plain

充電中は点滅。完了すると点滅しない(点灯状態)。

説明書によると電池残量が少なくなるとオレンジ色になるそうです。

感想

高級バリカンなだけのことはあります。切れ味は普通だろうと思いますが*2、使い買っては非常に良いです。ヘッドの部分が回転するおかげでセルフカットに最適だと思います。

メンテナンスも丸洗い可で毎回油をさす必要はないので特に問題なし。

強いて改善点を挙げるとすれば、ヘッドの回転角度が0度、45度、90度の3パターンという点。15度と60度の位置で固定できるようにして欲しかった。

購入したのはQC5582/15ですが、付属の収納ポーチの出来からしてQC5572/15で十分だったかな、とは思います。


まあそんなこんなで以上です。写真は気が向いたらマシなのに差し替えるかも。

*1:後で悔やむぐらいなら千円ちょっとの価格差ならいいかなーみたいな

*2:そもそも異様に良くても困る

白内障手術から1年と6ヶ月

さすがにこのネタを引っ張るのもどうかという感じですが、ちょうどいい表現を思いついたので。

健康な人の目をカメラに例えると

可変フォーカスかつオートフォーカス

最高ですね。人体って良くできてますよね。手持ちのWebカメラだとロジテックC525

オートフォーカスはいいものです。スマートフォンのカメラも基本的にマクロ撮影もできるので可変かつオートフォーカス

白内障手術後の目をカメラに例えると

固定フォーカスですね。

可変フォーカスの方がいいに決まっていますが、パソコンに搭載されているカメラの焦点範囲が広いのと同様に意外とボケたりしないものです。

どんなレンズを埋めるかは医師と応相談。

遠見用レンズ

焦点を遠方に合わせた固定フォーカス。本を読むとき(ある意味マクロ撮影)はメガネが必要。

近見用レンズ

焦点を手元に合わせた固定フォーカス。遠方はどうしてもボケるのでメガネが必要。ただし、目から10〜20センチの極端に近い位置はぼやけて見えない。

私の目に埋め込まれてるのはこれ。詳細なスペック情報は提供してもらえず*1

意外なほど焦点範囲が広いです。

多焦点レンズ

いくつか種類があるようですが、基本的には「写ルンです」のレンズみたいなやつ。

東京歯科大学水道橋病院 眼科|多焦点眼内レンズ

保険は効かないそうです。

Webカメラ系で搭載しているかどうかは不明。

というわけで

目の手術の術後の経過は良好です。

調子に乗って目を酷使しがちなのでちょっと反省。


それでは。

*1:医師に言えばくれるのか?

ラズパイ(Raspbian Jessie)とスワップメモリ容量の変更(環境設定の続き)

過去記事についても分割・統合して整理する予定。


以前はどうだったのかよくわかりませんが、現在のRaspbian は初期設定の状態でChromiumGoogle 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はトータル容量表示。

倍率指定による方法

もし倍率指定で設定する場合は。修正箇所は、

  1. CONF_SWAPSIZE=100 という行をコメントアウト
  2. CONF_SWAPFACTOR=2 という行の行頭のコメント記号を削除

これでカーネルが認識しているメモリ量の2倍に設定される。もしGPUへの割り当てメモリを頻繁に変えるなら固定値にしておいた方がいいと思います。

注意点

もし2048(2GB)以上の値を設定するなら、CONF_MAXSWAP=2048という行の行等のコメントを削除、等号の右側の2048という値を4096などの大きい値にする。

このパラメータを指定しない場合、古い32ビットカーネルを考慮しているのか、2048より大きい値を指定しても自動的に2048(2GB)にセットされるので注意。

どこかのサイトで2GB以上に設定できないという話はこの設定を変更していないせいだろうと思います。

そのほか

もちろんWebサイトによってはユーザーエージェントで弾かれたりします。

スワップの容量を増やした状態でもmicroSDへのデータアクセスの最中にプチフリのような現象が発生したり、色々ツライ場面は多々あります。

コンパイルの待ち時間に暇つぶししたりする分には十分です。購入当初の目論見とは違うところで活躍していますがまあドンマイってことで。

たかだかスワップ容量の変更にグダグダと書けるとは自分でも意外ですが以上です。

MacPorts と開発版 Inkscape (0.92pre3)

普通に開発版のパッケージも提供されてるじゃないですか、MacPorts経由で。

f:id:atuyosi:20161210213930p:plain

なるほど、それでHomebrew向けの情報が無いのか……。

MacPortsだといくつかビルドしているサイトが見つかる。

barry-tangram.blogspot.jp

しかも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
  • Command Line Tools
  • Xcodeの使用許諾条件に同意しておく(xcodebuild -license)
  • XQuartz
$ xcode-select --install

あとはダイアログの指示に従う。

インストーラの実行

公式サイトから使用中のmacOSのバージョンに合わせたインストーラーをダウンロード。 Sierraの場合はMacPorts-2.3.5-10.12-Sierra.pkg

The MacPorts Project -- Home

ダウンロードしたpkgファイルをダブルクリックしてインストール開始。

アップデート

$ sudo port -v selfupdate

パッケージのデータベースの更新と、必須パッケージのアップデート。

Inkscape 開発版パッケージ

inkscape-develという名前で開発版をインストールすることができるようなので、これを使います。RedHatLinuxの場合、*-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側の日本語入力を使用できるようです。ただし相変わらず未確定の文字列は表示されませんが。

f:id:atuyosi:20161210213013p:plain

.app形式にもチャレンジしてみたい今日この頃。

関連URL

ビルドエラーとかそういうの。+strictつけちゃダメよってことのようです。


とりあえずここまで。

OpenCV関連本いろいろ(洋書)

本のタイトルから対象にしているOpenCVのバージョンが判断しづらいケースや、内容の違いがよくわからないものが多いのでリスト化してみました。


随時更新予定です。

確実に言えることは、Amazon から買うより出版元の割引セールで買うか、電子版なら定額読み放題サービスを利用するのがリーズナブルだということです。

特にPackt の本をAmazonKindle版で購入しようとするとなぜか価格が高いケースが多いので出版元のサイトから購入することを強く推奨。

Pact の本は定額読み放題サービス(Mapt )のWeb版で確認した情報。

さすがに全部は無理なんで、オライリーPackt のみ。

オライリー(英語版)の英文よりもPacktという出版社の英文の方が個人的に読みやすいです。

ごちゃごちゃと書いてある本は少なくとも半分以上目を通したか、サンプルコードの一部を入力して実行した*1書籍になります。逆言うとそれ以外は基本的に導入部分の説明(対象バージョンや前提条件)のみ確認しています。

なお、日本語の関連本についてもまとめ記事を作成しました。

a244.hateblo.jp

C++

Packtの方は本文で例示しているソースコードとダウンロードしたソースが微妙に違うケースがあるので注意されたし。

基本的にバージョン3.xの本が出揃っているようなので2.x系を対象にした本は除きます。

Learning Opencv 3: Computer Vision in C++ With the Opencv Library

shop.oreilly.com

Learning OpenCV 3: Computer Vision in C++ with the OpenCV Library

Learning OpenCV 3: Computer Vision in C++ with the OpenCV Library

オライリーの方針変更でDRMフリーの電子版(epub, pdf, mobi)の単体購入はできなくなりました。定期購読か紙媒体、Kindle版のみ、です。

絶賛リリース遅延中?どうにか正式リリースされた安心安全のオライリー本。Amazonでは夏頃発売になってたんですよ、ホントに。

私の英語力ではちょっと読みにくい。そのうち翻訳本が出るはず。

日本語版が発売されています。

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

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

この本に限らず、もう少しモダンな組版とかレイアウトになるといいのだけど。

サンプルコードはGitHub経由で。

GitHub - oreillymedia/Learning-OpenCV-3_examples

Learning OpenCV 3 Application Development

www.packtpub.com

Learning OpenCV 3 Application Development

Learning OpenCV 3 Application Development

12月正式リリース予定。Mapt 経由では未だ読めず 。

  • OpenCV 3.1
  • 著者はカナダの大学教授
  • 特筆すべき内容は顔認識とか静止画からの3次元再構築とか

OpenCV 3 Computer Vision Application Programming Cookbook - Third Edition

OpenCV 3 Computer Vision Application Programming Cookbook - Third Edition

OpenCV 3 Computer Vision Application Programming Cookbook - Third Edition

12月正式リリース予定。Mapt 経由では未だ読めず。

  • OpenCV 3系
  • Cookbook というタイトル通りサンプル数が多いのか
  • 特筆すべき内容は機械学習による顔画像からの性別判定?

著者はGoogleインターンしたことがあるとかなんとか。南インドのインド情報技術大学ハイデラバード校の研究者(research intern)。

インド情報技術大学 - Wikipedia

OpenCV 3 Blueprints

www.packtpub.com

  • 紹介されている機材を持っていないとツラい(いわゆるデプスカメラとか)
  • 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

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

GitHub - PacktPublishing/Mastering-OpenCV3-Second-Edition: Mastering OpenCV 3 - Second Edition by Packt

OpenCV 3.1がターゲット。

特徴はChapter 3 のナンバープレート読み取り(英数字)。ラズパイを使ったサンプルもある。 あとは顔認識とか姿勢推定とか。

かなり応用重視の本。

OpenCV By Example

www.packtpub.com

OpenCV By Example

OpenCV By Example

  • 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

www.packtpub.com

OpenCV with Python Blueprints: Design and Develop Advanced Computer Vision Projects Using Opencv With Python

OpenCV with Python Blueprints: Design and Develop Advanced Computer Vision Projects Using Opencv With Python

Learning OpenCV 3 Computer Vision with Python - Second Edition

Learning Opencv 3 Computer Vision With Python

Learning Opencv 3 Computer Vision With Python

OpenCV: Computer Vision Projects with Python

www.packtpub.com

Mac環境の場合は、MacPorts、Homebrew 両方とも解説あり。

extraモジュールを有効にしていればOpenCV 3.x でも問題はなさそうに見える。

Raspberry Pi for Python Programmers cookbook Second Edition

www.packtpub.com

Raspberry Pi for Python Programmers Cookbook, Second Edition

Raspberry Pi for Python Programmers Cookbook, Second Edition

ちょこっとだけOpenCVが出てくる。旧版と間違えないよう注意。

改訂版のはずだが現行のRaspbian に存在しないはずのmencoder を使う例がある。mpvで代用できると思う。

ネットワーク接続を含めて環境構築周りが詳しい。ソースからOpenCV 3.0 + contlib でビルドして

Chapter 2 からPythonプログラミング。最初は換字式暗号(シーザー暗号)のプログラムからスタート。Python/Tk のGUIプログラミングとかゲーム作成の初歩とか。OpenCV はChapter 8の後半のみ。

Computer Vision with Python 3

Computer Vision with Python 3

Computer Vision with Python 3

Computer Vision with Python 3 | PACKT Books

GitHub - PacktPublishing/Computer-Vision-with-Python-3: Code files for Computer Vision with Python 3, uploaded by Packt

OpenCV オンリーではないけど一応。Pillow, Scikit-Image, and OpenCVの3つを解説している。バランスは良さそう。

トータル206ページなのでそれほど読むのもしんどくないはず。

for iOS

www.packtpub.com

IOS Application Development with Opencv 3

IOS Application Development with Opencv 3

GitHubでもソースコードが公開されている。出版社のページから入手できるソースより更新されている場合がある。 また、正誤訂正(ERRATA)も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-CC++をラップすれば問題ないはずだがやはり混在させると面倒なのだろうと思った。

そのほか

日本語のOpenCV解説ページなど。

結論

身もふたもないが、定額読み放題サービス(Safari Books Online or Mapt )に加入すれば悩む必要なし。ざっくり1冊読んでおいて、あとは必要に迫られた時に参考になりそうなトピックが書いてあるものを読めばいいのではないでしょうか。

個人的なおすすめはOpenCV Exampleです。

OpenCV 3.x + Python 3.x はGoogle 先生がサンプルのありかを教えてくれます。関数の名称は変化していないのできっとなんとかなる。


……以上です。

*1:俗に言う写経

*2:まあよくある話ではあるけど

広告