2012/01/27

OpenCV 2.x系のC++ APIを勉強するのにおすすめな本

ちょっと前だけど、OpenCVの本を購入。
OpenCV 2.x系から、CスタイルのAPIに加えて、C++スタイルのAPIが使えるようになった。この本の中のコードは、すべてC++のAPIを使って書かれている。

今までのOpenCV関連の本や、ネット上のサンプルプログラムはC言語のAPIを使って実装されたものが多いけれど、もしC++のAPIを使って実装してみたい、と考えている人には参考になると思う。一度C++のAPIを覚えてしまうと、もう二度とCのAPIを書いたり読んだりしたくなくなると思う。

QtというUI Frameworkと組み合わせて使う方法についても書かれているので、OpenCVのHighGUIではちょっと機能が足りないな、と感じている人にとっても参考になる。

また、メモリ管理周りや、効率の良いデータアクセスの方法など、実践的なことについて書かれているので、いろいろと参考になると思う。英語版だけど、簡潔な英語で書かれているので、割と読みやすい方だと思う。

1章(1. Playing with Images)のみ著者のHP上で公開されてる。CMakeの使い方、環境変数の設定方法など、初心者がつまづきそうな点を丁寧に説明しているのもいい感じ。
紙の本でなくてもいい人は、Kindle版がおすすめ。日本のAmazonで購入するよりも、半額以下で買えるし。
ただ、OpenCVのAPIについて網羅的に書かれた本ではないので、OpenCVでどんな事ができるのか詳しく知りたい人は、他の本も参照した方がいいと思う。

2012/01/19

SonyEricsson SmartWatch Extensionの開発

LiveViewの後継機種、SmartWatchが発表になった。
SDKは以下のサイトから既にダウンロード可能になっている。ドキュメント、サンプルコード、開発用Emulatorが含まれているので、デバイスがなくてもExtensionの開発が可能になっている。
残念ながら初代LiveViewのPluginとSmartWatchのExtensionの間に互換性はない。SmartWatch specificationsを読んでみてざっと初代LiveViewとの比較をまとめてみた。

LiveViewとSmartWatchの比較
  • ディスプレイサイズは同じ(128x128)
  • 加速度センサが追加
  • LiveViewの右上にあったようなH/WボタンにExtensionからアクセスできなくなった
  • LiveViewの左上にあったLEDがなくなった
  • タッチパネルディスプレイに変更
  • LiveViewにあった上下左右のタッチエリアはなくなった。そのかわりに、タッチパネル上で上下左右にスワイプが可能に
実際の使い勝手の違いは、実機が手に入らないと分からないけど、UIがだいぶ変わっているので、過去のLiveView向けに開発したPluginをSmartWatchのExtension向けに移植するには、いろいろと考えないといけなさそう。MicroTracksでは周辺の上下左右のタッチエリアの長押しに各機能を割り当てていたので、SmartWatchでどういうUIに変更するべきか考えなくては。しばらくはLiveViewとSmartWatchの両方に対応させたいし。

今回、新たにSDKにEmulatorが追加された。Emulatorを使えば、実機がなくてもExtensionを動かしてみることができる。実際に、SDKに付属されていたサンプルコードをビルド&実行してみた。
まったく色気のないUIだが、いちおう動作確認には使えそうだ。

2012/01/13

Mac OS X (Lion)上にHomebrewを使ってPostgreSQLをインストール


Install Homebrew
$ ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"

Install PostgreSQL
$ brew install postgresql
# /usr/local/binが先に来るようにパスの設定を変更。これやんないと"psql: could not connect to server: Permission denied"ってエラーになる
$ vi ~/.bash_profile
export PATH=/usr/local/bin:$PATH
$ source ~/.bash_profile
# DB初期化
$ initdb /usr/local/var/postgres
# server起動
$ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
# server停止
$ pg_ctl -D /usr/local/var/postgres stop -s -m fast

Install Taps
# HerokuにローカルのDBをPushできるように
Heroku | Dev Center | Importing and Exporting Your Data
$ sudo gem install taps $ sudo env ARCHFLAGS="-arch x86_64" gem install pg

2012/01/12

Mac OS X上にnode.js + express環境を構築してHerokuにデプロイするまで

Install nave
# インストールするnode.jsのバージョンを指定したいので、Homebrewではなくnaveを使ってインストール
$ git clone git://github.com/isaacs/nave.git ~/.nave

Install node.js
# Herokuで使えるnode.jsのバージョンは0.4.7なので
$ ~/.nave/nave.sh install 0.4.7
$ ~/.nave/nave.sh use 0.4.7

Install npm
$ curl http://npmjs.org/install.sh | sh

Install Foreman
$ sudo gem install foreman

後は以下のチュートリアルを見ながらやればOK。