巨大なaviやbmpもcommitしたいけどbitbucket.orgの容量を使いたくないので、さくらにhgweb.cgiで置くことにした
http://shokai.org/projects/opencv-study/
.hg/hgrc に
[web]
#style = gitweb
allow_archive = gz,zip
と書いてzipでくれ機能を出した。styleはgitwebにしようと思ったけどやっぱりデフォルトにした
wordのOCR機能がCOM APIから使えるとの事だったので試した。
まちみのな::C#で文字認識を行うとCodeProject: OCR with Microsoft? Office. Free source code and programming helpを参考にした、というかほぼそのままで、UIを付けただけ。
日本語OCRは商用の物しか見つからなくて、クセロReaderに入ってるとかどうやってか自分で作ってる人もいるけど、高嶺の花だった。英語はオープンソースプロジェクトがいくつかあるのになあ・・・
できたもの。
画像をドラッグアンドドロップするとOCR発動、文字を読み取る。この画質の写真でも相当間違える。

■作ったサンプル
shokai / OCR C# Sample / overview — bitbucket.org (VS2008 C#.NET用)
右上のDownloadからzipでもダウンロードできます
wordについてるDocument Image Writerがインストールされているマシンなら動くと思う。
■Microsoft Office Document Image Writerのセットアップ
Word2007には入っていたのでCDからインストールしなおした。普通にインストールするとチェックが外れててインストールされない。

Read more
openFrameworksをやっていて詰まったのでとりあえずOpenCVをやってみることにした。
openFrameworksはOpenCV・OpenGL・シリアルポート関連・音声関連のC++ライブラリをまとめたWin/Mac/Ubuntuで動作するクロスプラットフォームラッパーで、processingの影響を受けているらしいのだが、その中のOpenCVとOpenGL自体がまず巨大なライブラリなのでこいつらを扱う作法を知っていないとopenFrameworksが使いこなせない。
今回はOpenCVを単体で扱ってみてどんなもんか探ってみた。
■OpenCVのセットアップ、サンプル実行、コンパイル環境と対応カメラの確認
マシンに3つOSが入っているので実行環境も3つ揃えてみた。
MacとUbuntuはgccで、WinはVS2008でコンパイル。Ubuntuは色々ためしたけどiSightを認識しなかったが古い外付けUSBカメラを認識して使えた。
この内Macだけが駄目。描画が異常に重い。ググったらhighguiとCarbonの組み合わせが悪さしている?ような情報もあったがよくわからなかった。でもちゃんと動いていると報告してる人がたくさんいる。悔しい。
- MacにMacportsでインストール、サンプルをgccでコンパイルしi-Sightで実行
- VMWare+Ubuntuにaptでインストール、サンプルをgccでコンパイルしLogicoolの古いカメラQV-40で実行
- Windowsにインストーラからいれて、VisualStudio2008でコンパイルする設定、iSightでキャプチャ
- VMWare+Ubuntuで単純なカメラキャプチャプログラムとMakefileを1から書く
- おまけ:Macにソースからインストールしなおし(意味無かった、相変わらず重い)
本当はMacかUbuntuで動かしたかったけど、WindowsでVS2008でやる事にした。
俺が電車で移動中プログラムを書く事が多いので、Windowsからは内蔵i-Sightを使えて一番都合が良い。
cvWaitKey(msec)の待ち時間を短くしすぎなければ(30ぐらいなら大丈夫)どの環境でも動く事が確認できたので、後述するプログラムはどの環境でも動くと思う。少なくともWindowsとUbuntuでは動いている。
■画像処理の勉強
この本でやった。プログラムの途中重要な定数宣言部分が省略されまくったりしていて困ったけど、理論的な所は詳しく解説してくれているのでこの本と翻訳版ドキュメントとサンプル集を見ればなんとかなった。
毎日コミュニケーションズ
売り上げランキング: 58513

とっかかりとしてはよい本
OpenCVを日本語でまとまって解説した初めての本
肩すかしOpenCVというとまっさきに「顔認識」を思い浮かべるけど、機械学習を用いた分類器については巻末のリファレンスに少し書かれている程度で、この本では基本的なOpenCVの組み込み関数を使った2値化やノイズ除去や表色系の変換、輪郭、エッジ抽出、テンプレートマッチング、物体追跡、背景差分法などが書かれている。書かれている内容はbuilt with processingやディジタル画像処理の基礎と応用なんかに書かれている内容と被っている部分が多いけど、OpenCVの関数を使っているから滅茶苦茶処理が速い。やばい。もっと早くOpenCVに移れば良かった。
Read more
WindowsでVisualStudio2008 Professional C++で、openFrameworks v0.05のサンプルをコンパイルする所まで。
今のところDirectX SDKは必要ないみたいだ。
openFrameworks: downloadの「visual studio FAT」をダウンロード。ライブラリと、サンプルプロジェクトのソースコードが入っている。
同じ場所にある「win32 example apps」にはコンパイル済みの実行ファイルが入っている。動的に波形を生成して音を出したり、3Dを回したりカメラの画像にエフェクトをかけるサンプルがたくさん入っている。
まず適当なソリューション(.slnファイル)を開いてビルドする。
エラーがでる。GLaux.libが見つからないらしい。
OpenGL関係のライブラリらしくて、
C:\Program Files\Microsoft SDKs\Windows\v5.0\Lib\IA64
で発見したので
\libs\glu
にコピーして置いた。
VS2003の頃はPlatform SDKの下にあるらしいけど、俺はMicrosoft SDKの下にあった。無いと言っている人もいる。
VS2005も過去にこのマシンにインストールしていたから、この位置にあるのかな?
どうしても見つからない人は連絡ください。
再びビルド。今度はrtAudioD.libでエラーが起こる。
libs\rtAudio\rtAudioD.libのバージョンが古いらしい。
http://www.openframeworks.cc/files/rtaudio-vs2008.zip
をダウンロードしてきて
Release\rtAudio.libをrtAudioD.libにリネームして
\libs\rtAudio
に置く。
これでコンパイル通って動く。
文字コードがCP932だよというwarningが出るので、後で文字コードは後でUTF-8に統一しよう
openCVのサンプルを動かしてみた。背景差分とblob判定してる。

ofVideoGrabberのサンプル。processing並にカメラの画像取得のコードが短い。


