2011年2月27日日曜日

箱根:雲助だんご

天気がよかったので箱根に行ってきました。箱根新道が社会実験のおかげで無料となっているのでちょっと登ってくるという感じで行けるようになりました。芦ノ湖出口で降りて芦ノ湖へ。


出るときは天気がよかったんですが、箱根に登ったときには曇っていたのと5時近かったのとでこんな感じで、富士山は見えませんでした。

箱根関所近くの雲助だんごさんへ。みたらし団子とお汁粉をあったかいお茶と頂き、温まって帰りました(^^V



2011年2月26日土曜日

dll:dllのロードに失敗

あるdllをロードするときに「dllのロードに失敗しました」といってロード出来ない時があります。もちろんそのdllへのpathが通っていることは必須ですが、dllが他のdllに依存しているときには、その依存しているdllへのpathも通しておく必要があります。

VC++でやっている場合にpath環境変数を変更したら、VC++自体を1度落として立ち上げ直さないと有効でにならない。

OpenCVの場合には<OpenCVインストールディレクトリ>\binに様々なdllが入っていますので、これに依存したdllを作ったり使ったりする場合には、このbinディレクトリをpathに入れておかなければなりません。

OpenCV:CUDA, TBB付きのインストール

OpenCVを使っていてかなり計算時間がかかる(RandomTreeを使っています)処理をやっていました。あまりにも時間がかかるので、CUDATBBがOpenCV2.2では使えることを思い出し、インストールしてみました。そのメモです。結局RandomTreeの処理自体がCUDAで実装し直されているわけではなかったようで高速化はしませんでしたが(^^;

CUDAやTBBが利用出来るバイナリは提供されていませんので、ソースをダウンロードしてmake/buildする必要があります。ここ

■安定版をインストール(ソースから)

を参考にインストールしていきます。インストールするのはWindows版の

CUDAここの下の方にある表の中のCUDA Toolkitの32bitとか自分の環境に合わせて)
NPP(Nvidia Performance Primitives)(ここの下の方にある表の中のNVIDIA Performance Primitives (NPP) libraryの32bitとか自分の環境に合わせて)
TBB(Intel Threading Building Block)(ここの一番新しいやつ、一番上ですね)
OpenCV2.2 (ここのzipファイル)

です。

ダウンロードが終わったらCmakeを立ち上げます。GUIでいろいろな設定をします。まず今回はVisualStudio2005を利用するので、




のように設定します。こうするとコンパイラにVC++2005を採用してくれ、またOpenCVのVS2005用のsolutionを作ってくれるようです。

次に、


のような画面が現れるので”Where is the source code:” に OpenCV2.2を展開したディレクトリ を、 “Where to build the binaries:” に 好きなディレクトリ(僕は参考URLに従ってOpenCV2.2のディレクトリの下にbuildというディレクトリを作り、そこを指定しました。図は別なときにやった画面なのでディレクトリは違っています。) を選択します。

それからビルドオプションを選択します。

・WITH_TBBとWITH_CUDAにチェックを入れます。
・BUILD_DOXYGEN_DOCS のチェックを外します。こうしないとbuildするときに延々とhtmlファイルを作って終了しないバグがあるようです。このときのエラーもこれが原因だったのですね(^^;

それでConfigureボタンを押すと

NPPのinclude/librariesディレクトリが見つからない

などというディレクトリの設定エラーが出ます。

こんな感じです。


例えば上の例では TBB_INCLUDE_DIR-NOTFOUNDなどとなっていますのでTBBのincludeディレクトリを設定します。

NPPに関してはNPPをダウンロードしたzipファイルの中にあるSDKディレクトリ(npp_3.2.16_win_32.zipではSDKディレクトリが中にあるだけです)を適当なところに移して、そこをCUDA_NPP_LIBRARY_ROOT_DIRにセットしたらConfigure出来て、Generateも通りました(^^V

続いてOpenCVのbuildに移ります。buildディレクトリにVS2005用のソリューションファイル(.sln)が出来ていますので、これを立ち上げます。後はここに書いてあるようにALL_BUILDとINSTALLのdebugとreleaseプロジェクトをbuildします。そのときにTBBに関連して

critical_section.h(109) : error C3861: 'TryEnterCriticalSection': identifier not found

のようなエラーが出ますので、ここに書いてあるように

Project Property -> C/C++ -> Preprocesor -> Preprocesor definitions に
_WIN32_WINNT=0x0400

を付け加えます。

opencv_mlとopencv_objdetectの2つのプロジェクトでTBBを使っているようですので、これら2つのプロジェクトのプロパティの設定を行います。releaseとdebugの両方の設定が必要です。これでbuildすればめでたくOpenCV2.2のCUDA、TBB利用版が完成です(^^V buildには結構時間がかかりますので気長に待ちましょう。

2011年2月24日木曜日

OpenCV:Reference Manual

いろいろ探していたらOpenCV Reference ManualのPDFを見つけました。メモっておきます。

2011年2月23日水曜日

Ruby:Eclipseでのデバッガ

ひさびさにRubyでプログラムしようと思ってEclipseを立ち上げました。で、デバッガを使おうと思ったのですが、なにやらエラーが(^^;

で、ここにあるように

gem install ruby-debug-base -l
gem install ruby-debug
gem install ruby-debug-ide -v 0.4.6

をやっていきます。が、1番目をやる前に

gem install linecache-0.43-mswin32.gem

しておかないといけないようです。それでインストールは出来たんですがやっぱりデバッガは動きません。

結局、Ruby1.9では動かない?ようです。Ruby1.8.7を入れて、同様にgemで必要なものを入れたら動くようになりました。

2011年2月19日土曜日

Google Toolbar:Firefox4.0

Firefox4.0b10(って今見たらb11が出てました)をVmware上のUbuntuで使っています。で、GoogleToolbarのアドオンを使おうとしていたのですが、4.0ではincompatibleといわれて、Nightly Tester Toolsで動かそうとしましたが動きません。Nightly Tester Toolsは大概のincompatibilityを解決してくれていたのですが、Firefox4はなかなか手強いようでいくつかのお気に入りアドオンが動きません(^^;

それで諦めておりましたら今日GoogleToolbarについては動くことを発見しました。ここをよく見ると

IMPORTANT: Google Toolbar is no longer updated on Mozilla Add-ons. To download the latest version, visit http://www.google.com/toolbar/.

と書いてあり、Mozillaのアドオンサイトではもうサポートしないということのようです。それで

http://toolbar.google.com/

からToolbarをインストールしたところ無事動きました。MozillaのアドオンサイトにあるToolbarは古いバージョンのものだったんですね(^^; これでBookmarkを共有でき快適です(^^V

注)上のIMPORTANTの記事にあるURL:http://www.google.com/toolbar/. をクリックすると最後のピリオドが入ってしまって
Invalid address.
と言われてしまいますのでご注意ください。

2011年2月12日土曜日

Blender:2.56βの図形間の演算

図形を足しあわせたり、引いたりして図形の演算をすることが出来ます。これも2.56βでインタフェースが変わっているようなのでメモっておきます。

まず図のように立方体と球を重ねた状態に設定します。


次にPropertiesのWindow(図では右の方の黄色い四角で囲んだところです。設定によって場所などは変わります。)で、黄色い円で囲んだModifiersを選びます。また赤い円で囲んである部分にCube(立方体)が設定されていることを確認して下さい。これは先ほど選んだオブジェクトのうち、最後に選んだオブジェクトが表示されます。これから行なう図形演算はこのオブジェクトに対して実行されます。


そうしておいて、Add Modifiersと書いてあるボタンを押すと下のようなドロップダウンメニューが出てきますので、ここからBooleanを選びます。Booleanでは図形を足したり、引いたり、図形から共通部分を取り出したりする操作が出来ます。


差の演算を行いたいので、図の黄色の円で示してあるようにDifferenceを選びます。


そして、Cubeとの演算を行なう相手のオブジェクトを選びます。ここでは球体が相手なのでSphereを選びます。これを選んでいないとApplyボタンを押して演算を実行するときに"Modifier is disabled, skipping apply"というエラーが出て悩まされます(^^;


そしてApplyボタンを押して、左のWindowで、球体を移動させると球との交わりが取り除かれた立方体が残っています。

Blender:2.56βのWindowの分割

Windowの分割も少しずつ変わっているようで、2.56βでは次のようにします。

まずWindowの右上の斜線の入った小さい三角形 のところにマウスカーソルを持って行きます。するとマウスカーソルが+字に変わります(図の黄色い円で囲んだ部分)。


アップで示すと次のようになります。


このとき左マウスボタンをクリックしたまま左にドラッグすると下の図のように横に2つの画面に分割します。引っ張る量の違いで画面の分割の大きさは変わります。


左マウスボタンをクリックしたまま下にドラッグすると下の図のように縦に2つの画面に分割します。


さらに分割したWindowでも同様に左マウスボタンをクリックしたままドラッグすると下の図のように2つの画面に分割します。


次に戻す時ですが、今度は分割したWindowの右上の三角形を左クリックでドラッグしてくっつけたいWindow上に持って行きます。下の図では下の左のWindowを右のWindowとくっつけています。


上の矢印の元側のWindowで表示しているものがくっつけた後のWindowに表示されます。


最後に右のWindowを左にくっつける時ですが、普通にやってしまうとドラッグしたときに分割されてしまいます。ドラッグの軌跡が自分のWindow内を通ると分割されるようです。


ということで下の図のように自分のWindowを避けてドラッグすると右のWindowを左にくっつけることができます。上下の場合も同じようにします。

Blender:2.56βでの画面・オブジェクトの移動・回転など

Blenderを使いかけては挫折しているのですが(^^; そろそろマスターしようと思って再度使い始めました。ところがバージョン毎にどんどんUIが変更になっているのでネット上の入門記事(例えばこの素晴らしい記事)とキーやマウスの使い方が違ったりして困ります。ということで2.56βの使い方を気付いたときに書いておきます。

画面全体の水平線回りの回転Shift+Alt+マウスホイール回転
画面全体の垂直線回りの回転Ctrl+Alt+マウスホイール回転
画面全体の横方向平行移動Ctrl+マウスホイール回転
画面全体の縦方向平行移動Shift+マウスホイール回転
画面全体のズームイン/アウトマウスホイール回転


個々のオブジェクトを移動回転させるときには次のようにします。(こちらは以前のバージョンから変更なしかもしれません。)どの場合にも最後に左クリックで確定、右クリックあるいはEscキーを押すと元に戻ります。

オブジェクトの移動オブジェクトを右クリックで選択し、そのまま右クリックしたままマウスを移動。右クリックを外す。
オブジェクトの移動オブジェクトを右クリックで選択し、キーボードでGを押す。ここでマウスを動かすと(このときには左も右もクリック無し)オブジェクトが移動する。
オブジェクトのある軸に沿った移動オブジェクトを右クリックで選択し、キーボードでGを押す。この後続けて移動したい軸をキーボードのx,y,zを押すことで指定する。xを押すとx軸に沿って移動する。マウスを動かすと移動します。
オブジェクトの回転オブジェクトを右クリックで選択し、キーボードでRを押す。ここでマウスを動かすと(このときには左も右もクリック無し)オブジェクトが回転する。
オブジェクトのある軸に沿った回転オブジェクトを右クリックで選択し、キーボードでRを押す。この後続けて回したい軸をキーボードのx,y,zを押すことで指定する。xを押すとx軸回りに回転する。マウスを動かすと回転します。
オブジェクトのスケール変更オブジェクトを右クリックで選択し、キーボードでSを押す。ここでマウスを動かすと(このときには左も右もクリック無し)オブジェクトがスケール変更(拡大/縮小)する。
オブジェクトのある軸に沿ったスケール変更オブジェクトを右クリックで選択し、キーボードでSを押す。ここでマウスを動かすと(このときには左も右もクリック無し)オブジェクトがスケール変更(拡大/縮小)する。この後続けてスケール変更したい軸をキーボードのx,y,zを押すことで指定する。xを押すとx軸にのみスケール変更する。マウスを動かすとスケール変更します。


オブジェクトの操作に関しては3DマニピュレータというUIからも行えます。


Blenderで3D ViewというEditorを選んでいると(デフォルトで立ち上がったときにこうなっています)、図の黄色で囲んだところのような3Dマニピュレータが出てきています。


図の一番左が3Dマニピュレータの切り替えボタンで、左から2番目のボタンがオブジェクトの移動のボタンです。3番目がオブジェクトの回転、4番目がスケール変更のボタンです。


移動を選択するとこのように座標系の矢印と原点に白い円が表示されます。白い円を左クリックしてマウスを動かすといろいろな方向にオブジェクトが移動します。青、赤、緑の矢印の近くを左クリックして矢印方向(逆方向もOK)にマウスを動かすとその軸の方向に動きます。下の図のように軸に沿った長い線が表示されます。


回転を選択すると下の図のように回転方向の丸い線と原点に白い円が表示されます。白い円を左クリックしてマウスを動かすといろいろな方向にオブジェクトが回転しま す。青、赤、緑の線の近くを左クリックすると、長い直線の回転軸が表示され、マウスを動かすとその軸の回りにオブジェクトが回転します。


スケール変更を選択すると下の図のように変更方向の軸に沿った線と原点に白い円が表示されます。白い円を左クリックしてマウスを動かすとオブジェクトがすべての軸に対して同様にスケール変更します。青、赤、緑の線の近くを左クリックすると、長い直線の軸が表示され、マウスを動かすとその軸の方向にのみオブジェクトがスケール変更(拡大/縮小)します。

2011年2月9日水曜日

夕日の滝→小田原フラワーガーデンの梅→曽我の梅林

今日、休暇を取って夕日の滝などに行ってきました。ここのページなどを見て以前から氷瀑が見たかったのです。今日は生憎昨夜からの雨で少し溶けているかもしれないなと思いながら、行ってみます。地蔵堂から細い道を抜けて夕日の滝駐車場に。道は幸いにして凍っておらず(ところどころに雪のあとは有りましたが)駐車場までたどり着きました。途中で道端にチェーン着用の標識が立っていましたので、地蔵堂からの道が凍っている場合には地蔵堂のところにある駐車場に止めて歩いた方がいいかもしれません。1kmあるようですが(^^;


大きな地図で見る

駐車場から、このような感じの道を歩いて行くと、


川沿いの広場に出ます。橋を渡って反対側に行き、右手奥に向かって進むと、


奥の方に滝が見えてきました。足元はかなり悪いのでしっかりした運動靴などを履いていくことをお勧めします。そして、ゆっくり歩いて到着。




滝全体が凍るというわけにはいきませんでしたが、りっぱに凍っていました(^^V

続いて小田原フラワーガーデンの梅を見に行きました。いろんな色の梅が咲いております。しだれはまだでしたが、他は満開かと。





最後にダメ押しで曽我の梅林へ。

  

曽我の梅まつり開催中ですが、4:30過ぎに行ったのと平日だったので閑散としています。ですが、休日はものすごく混んでますのでご注意を。



こちらはこれでもかといわんばかりに咲き誇っています(^^;


しだれも少し咲いていました。