2013年1月31日木曜日

OpenCVで取り込んだ画像をARToolKitで用いる形式に変換

フォームアプリケーションを作ったりするときにbmpファイルでないとimageboxに表示できない。 そこで、ARUint8からOpenCVで扱える形式にして、更に変換してBoxに突っ込んだことがある。 その時に使った関数のメモ
上記説明は間違いです。正しくは、
OpenCVでWebカメラから画像を取り込み、Pictureboxに表示させ、OpenCVの画像をARToolKitで使用できるものに変換し、ARToolKit内部の関数で処理を行う。
でした。

//cv::MatからARUint8へ変換
void Cvt_AR_CV(const cv::Mat& cvImage, ARUint8* arImage)
{
 int width = cvImage.cols;
 int height = cvImage.rows;
 int channels = cvImage.channels();
 int cvStep = cvImage.step;
 int arStep = width * 4;

 for(int i = 0; i < height; i++){
  for(int j = 0; j < width; j++){  
   for(int c = 0; c < channels; c++){
    arImage[arStep * i + j * 4 + c] = cvImage.data[cvStep * i + j * channels + c];
   }
  }
 } 
}

//IplImageからARUint8へ変換
void Cvt_AR_CV(IplImage* cvImage, ARUint8* arImage)
{
 int width = cvImage->width;
 int height = cvImage->height;
 int channels = cvImage->nChannels;
 int cvStep = cvImage->widthStep;
 int arStep = width * 4;

 for(int i = 0; i < height; i++){
  for(int j = 0; j < width; j++){  
   for(int c = 0; c < channels; c++){
    arImage[arStep * i + j * 4 + c] = cvImage->imageData[cvStep * i + j * channels + c];
   }
  }
 } 
}

個人的備忘録

リアルタイムトラッカーの吐き出したCSV

俺のプログラムで読み込ませるときはyawとpitchを交換な。

2013年1月20日日曜日

あの人の研究所について

バーチャル・リアリティとかメディア・アートなんかに興味がある人は見てみたら面白いかも知れません。
あの人の研究所

あの人って誰よ?
 あの人です。僕も今日正体、知りました。自分で知ったほうが喜びが増すかと。

あの人の研究論文が面白い
 あの人との関係があるのか無いのかよくわかりませんが、あの人の研究論文と言うものが発行されているらしく、コミケでも売られています。Vol.1No.1、Vol.1No.2、Vol.2No.1については全編PDFで閲覧可能です。『技術を無駄遣いすることによって情報科学研究とコンテンツの分野の双方に新しい刺激を与えている, と判断された選り抜きの論文をまとめる』というコンセプトで募集された論文集です。一例で論文タイトルを挙げて行きます。
  • 衛生写真から地形のエロ度を判別するための基礎検討~体位四十八手を題材として~
  • 夢のなかでエロいVR体験をするためのヘッドマウントオナペッツ(HMO)の提案
  • 何気ない日常をドMが少しだけ幸せに過ごすための一手法 -願望顔プロジェクション-
 
「変態だー」
 一部を取り上げて全体を決めちゃいけない。と僕は思います。全部見てから判断してください。僕はこういうの大好きです。
 「うわー。気持ち悪い」「これだから理系は」「このむっつりさんめ」みたいな声が聞こえてきそうです。それは褒め言葉です。多分。

最後に
 論文の投稿者の半分くらいが東大(東京大学)っぽい。
 が、それで見直しちゃうのはおかしい。変態は変態。

2013年1月17日木曜日

専攻科研究期間が半分終わったので振り返り

先日、専攻科研究報告が終わりました。これで本科五年生から3年間の青木研での研究の半分以上が終わったことになります。ちょうどいい機会だと思うので、僕の研究とか学校生活について振り返ってみようと思います。

なぜ専攻科に入ったか
 僕が専攻科に入ったのは「まだ就職したくなかった」ということ、かといって「大学に編入する学力がなかった」こと、それから「先生から学び取りたいことが多かった」からだと思う。
 当時なんとなくプログラムが書けたのできっと就職するならソフトウェアハウスかIT系の企業しか無いと思っていた。世間一般的には高専生というとすごい技術を持っていたり、深い専門知識を持っているようなイメージがあると思うが、実情はそんなことはなくてある一人握りの人間が活躍するからそのようなイメージを持たれていると思う。高専生で情報系の学科に所属していたとしてもプログラムが嫌いだったり、書かないという人もいる。だからプログラムが少し得意だからといってそのまま会社に就職すれば欝になって死ぬか、地獄の研修で死ぬかのどちらかだと思っていた。それに学生にしかできないことがきっとあってそれができるチャンスを失ってしまうのが嫌だった。そんな訳で就職をすることは最初から頭になかった。
 青木先生との関わりが始まったのはハイテク鬼ごっこの計画の時からであった。そのころ僕はTwitterを初めて、天才プログラマーとして認定されている高専生や高専カンファレンスで活躍する高専生というものを初めて知った。そこで僕も「なにかやり遂げ、インターネットの世界に名を成したい。」と始めたのがTechKidsでありハイテク鬼ごっこであった。結局一回実施した後やっていないのだが。その時に僕の背中を蹴っ飛ばしてくれたのが先生だった。先生の人柄に惚れ込んでしまった僕はどうにかして先生の研究室で研究したいと考えた。その末に僕は「大学の編入試験を受験して合格する自信はない。しかし学生で居たい。専攻科単願すれば必ず青木研に入れるだろう。」ということで研究室配属会議の直前に専攻科単願を決めた。このことはクラスや学科に大きな迷惑をかけた。無理を押し通すようなことになることは解っていたのだけど、これが僕に取って最善の策だった。すごく自己中心的な考え方だった。申し訳ありませんでした。

研究室での生活
 そのようなごたごたの末に青木研究室に入った僕は、「研究では一番になろう」と決めた。それでしか周りの人を納得されられないと考えたからだった。アルバイトも終電で家に帰ったあとにできるものに決めた。5年生の時には学会にも二回行かせていただいて貴重な体験をすることができた。僕は研究発表がとても苦手であると知った。高専シンポジウムの発表などは青木先生にしてあんな発表は見たことがないと言わしめたほどであった。その後二回ほど学会発表を経験したが少しは成長したかなと思う。とにかく研究室にはやることが山ほどあって僕ができていることはその中のちょびっとでしか無いので残りの一年半で少しでも貢献出来たらと思う。

専攻科というところ
 専攻科というところはとにかく人との関わりの輪が小さくなる。研究室、同学年、アルバイトぐらいの出会いしかない。去年の4月頃、先生にカタリバの大人カフェに連れて行ってもらった。その時感じたのは人に自分のことを話すことはとても気持ちがいいということだった。会場はホテルの会議室のようなところだったのだが、窓が曇って外が見えなくなるほどの熱気だった。このように輪を自ら広げていくこともいいと思うが、専攻科が良くないとは思っていない。小さい輪であるからこそ強い輪になると僕は思う。

休みグセ
 専攻科に入って僕についてしまった悪いものは休みグセだと思う。深夜アルバイトをしていたことも理由の一つに入るのかもしれないが、講義に遅刻したり欠席してしまうようになった。直さねばならないと思う。

考え方
 対して僕が先生から盗みとったのは仕事などの依頼に対する考え方。たとえできないかもしれなくとも失礼であっても誘いにはできるだけ早く良い返事をすること。そういう時にはこの人ならできると依頼者は考えているということなので落胆させる可能性があっても「自分の実力じゃ…」とか考えず、少しでも自分にプラスになるなら受けたほうがいいと思うようになった。今日、行く?にすぐ返事できるように。それは心構えと準備を日頃からしっかりしておきゃなきゃいけないって事にもなると思うけど。断ることもあるので僕はまだまだ。

これから
 青木研での生活は後半戦に入ったがこれから更に忙しくなると思う。大学院へ行くことを考えているので勉強もしなくちゃいけない。やるべきことを見極めるということをしっかりできるようになろうと思う。

2013年1月10日木曜日

【GMail】これさえあればマウスいらずのショートカット4選

マウスを使うことが作業効率の低下につながっている…!
最近そう考えるようになったイイタニです。

Gmailのキーボードショートカットをよく使う順にまとめました。

① 読んでないけど未読メールをまとめて既読にしちゃう!

     * + u : 未読メール選択
     Shift + i :既読にする
     * + n : 全メール選択解除

② JKで移動!

     j : 以前のメール(スレッド)へ
     k : 直近のメール(スレッド)へ

③ スター☆でメールにしるしを。

     s : 選択中のメールにスターを付ける
      
④ ワンタッチで返信メール作成

     r : 返信の作成
     Shift + r :新しいウインドウで返信の作成

とりあえずこれだけ覚えればマウスに触らずにバリバリメールを送れるはず!

その他の便利なキーボードショートカットは
http://support.google.com/mail/bin/answer.py?hl=ja&ctx=mail&answer=6594
で見ることができます。

快適なGMailライフを!

2013年1月7日月曜日

新研究機材!


新年あけましておめでとうございます。

我々学生は2013年初めての講義を受けたところでした。
昼休み研究室で「3月のライオン」を読んでいるところにこんなものが…

 


なにかと思ったらエプソンのMOVERIO BT-1とソニーのHDZ-T1でした。
圧倒的じゃないか、我が軍は!


ところで
(友人Wの許諾済み)








こういうことですか?


MOVERIOはAndroid2.2を搭載していてスタンドアロン可能なシースルーヘッドマウントディスプレイとしては世界初のものだそうです。
外でこれを使えば、”確実”に変態の称号を与えられるでしょうね。

最近プログラムを書いてませんが、やらなきゃなあという感じです。
こうすればできそうということがわかってるとなかなか手がつかないですね。
キッカケが足りないかな…

以下二台のヘッドマウントディスプレイを使っての感想
・MOVERIOはシースルー型にしては画面外の視界が暗いような気がする
・でかい(故に屋内、一人でいるときにしか使えない。)
・2つとも画面はそれなりに大きい。音質にかなりこだわっているような感じ。