mieki256's diary



2012/02/01(水) [n年前の日記]

#1 [nitijyou] 自転車で買い物に

親父さんの電動自転車を借りて買い物に。セブンイレブンとケーズデンキに。

ケーズデンキを出たところで雪が降り始めた。吹雪(?)にならないうちに、急いで帰宅。

#2 [processing][digital] USBカメラを購入

ケーズデンキで、 _BUFFALO BSWHD01BK を購入。980円…だったかな。100万画素、1280x720までキャプチャ可能、UVC対応、らしい。

とりあえず、UVC対応品なら実験ができそうなので、安いものを選んだ。…昔、USBカメラの類を買った時は、千円未満ではせいぜい30万画素の品しか購入できなかった記憶がある。じわじわと性能が上がり、じわじわと価格も下がってるのだなと改めて実感。

帰宅後、Win7 x64上で繋いでみたが、すんなり動いてくれた。UVC対応を謳っているだけあって、接続すると自動でドライバをインストールしてくれる。また、AMCAPなるソフトがCD-ROMに入っていたので実行してみたところ、アプリのインストーラが起動した。インストール後、スタートメニューでAMCapと打てば見つかる。…とあるサイトで配布されている、AMCAP日本語版と、動作内容は同じに見えた。そちらをDLして起動したほうが楽かもしれない。

WinVDIG 1.0.1 インストール済みの環境で、Processing 上からもキャプチャできた。しかし、Processing + GSVideo Windows版は反応しなかった。GSVideo なるソレは、Linux上でしか動作しないのだろうか。まあ、現状でもキャプチャできているから問題はないのかもしれないけれど。

USBカメラの画質については、自分の手持ちのアレコレと変わらない印象。どうせ、どれもこれも安物CMOSセンサだし、期待してはいけない。

#3 [processing] Processingをまだ触っていたり

せっかくUSBカメラを買ってきたので、もうちょっと実験。こんな感じ。


_http://youtu.be/ZKj8iJ5kWh0
import processing.video.*;
/*
 Webカメラのキャプチャテストその2.
 cap.available() を利用してみる。
 sキーを押せば動画保存処理開始
 eキーを押せば動画保存処理終了
 */

Capture cap;
int imgw = 240;
int imgh = 180;
PImage img;
PImage[] p = new PImage[imgh];
int frame;
int rframe;
int idx;
boolean stop_fg;

boolean mov_out = false;
MovieMaker mm;

void setup()
{
  size(240 * 3, 180 * 3);
  background(0);
  cap = new Capture(this, imgw, imgh);
  img = new PImage(imgw, imgh);
  for ( int i=0; i<p.length; i++ ) {
    p[i] = new PImage(imgw, imgh);
  }
  frame = 0;
  rframe = 0;
  idx = 0;
  stop_fg = false;
  mov_out = false;
  frameRate(15);
}

void draw()
{
  if (cap.available()) {
    cap.read(); // Webカメラからキャプチャ
    image(cap, 0, 0); // キャプチャ結果を左画面に描画

    if ( !stop_fg ) {
      int xb = imgw;
      int yb = 0;
      for ( int mode=0; mode <= 5; mode++ ) {
        switch(mode) {
        case 0:
          // 過去画像をラスター単位で遅らせて描画

          // 画像を記憶
          p[idx].copy(cap, 0, 0, imgw, imgh, 0, 0, imgw, imgh);
          int j = idx;
          idx++;
          idx %= p.length;

          // ラスター(?)単位で過去画像をずらしつつ描画
          int h = imgh / 80;
          for ( int y=0; y<imgh; y += h ) {
            copy(p[j], 0, y, imgw, h, xb, yb+y, imgw, h);
            j--;
            if ( j < 0 ) j += p.length;
          }
          break;
        case 1:
          // 疑似多重露光
          int m = 32;
          int n = m - 1;
          for (int y=0; y<imgh; y++) {
            for (int x=0; x<imgw; x++) {
              color c0 = get(xb+x, yb+y);
              color c1 = cap.get(x, y);
              float r = (red(c0) * n + red(c1)) / m;
              float g = (green(c0) * n + green(c1)) / m;
              float b = (blue(c0) * n + blue(c1)) / m;
              set(xb+x, yb+y, color(r, g, b));
            }
          }
          break;
        case 2:
          // ネガポジ反転
          for ( int y=0; y<imgh; y++ ) {
            for (int x=0; x<imgw; x++) {
              color c = cap.get(x, y);
              float r = 255 - red(c);
              float g = 255 - green(c);
              float b = 255 - blue(c);
              set(xb+x, yb+y, color(r, g, b));
            }
          }
          break;
        case 3:
          // モザイク
          int cw = 8;
          noStroke();
          for ( int y=0; y<imgh; y+=cw ) {
            for ( int x=0; x<imgw; x+=cw ) {
              fill(get(x, y));
              rect(xb+x, yb+y, cw, cw);
            }
          }
          break;
        case 4:
          // ラスタスクロールもどき
          for ( int y=0; y<imgw; y++ ) {
            float ang = radians(y * 8 + rframe * 20);
            int rw = 8;
            int x0 = (int)(rw * sin(ang) + rw);
            x0 %= imgw;
            for ( int x=0; x<imgw; x++ ) {
              color c = cap.get(x0, y);
              set(xb+x, yb+y, c);
              x0++;
              x0 %= imgw;
            }
          }
          break;
        case 5:
          // 某シューティングのタイトル画面風
          for ( int y=0; y<imgw; y++ ) {
            int y0 = y + (int)(10 * cos(radians(y * 5 + rframe * 4)));
            if ( y0 < 0 ) y0 = 0;
            if ( y0 >= imgh ) y0 = imgh-1;
            copy(cap, 0, y0, imgw, 1, xb, yb+y, imgw, 1);
          }
          break;
        }
        xb += imgw;
        if ( xb >= width ) {
          xb = 0;
          yb += imgh;
        }
      }
    }
    rframe++;
  } 
  else {
    println("not available frame = "+frame);
  }
  frame++;
  if ( mov_out ) {
    mm.addFrame();
  }
}

// マウスボタンを押した時の処理
void mousePressed() {
  // 画面を停止
  stop_fg = !stop_fg;
}

// キー入力
void keyPressed() {
  if ( key == 's' ) {
    if ( !mov_out ) {
      mm = new MovieMaker(this, width, height, "test.mov", 15, MovieMaker.MOTION_JPEG_A, MovieMaker.BEST);
      mov_out = true;
    }
  } 
  else if ( key == 'e' ) {
    if ( mov_out ) {
      mm.finish();
      mov_out = false;
    }
  }
}

Processingのエディタのフォントを変更。 :

「:」「;」の見分けがつかないので、フォントを変更。自分の環境の場合、
C:\Users\(アカウント名)\AppData\Roaming\Processing\preferences.txt
が設定ファイルだった。xyzzyで開いて、
editor.font=Ricty,plain,13
に修正。

Rictyフォントについては、VMware PlayerでUbuntuを動かして、そこで作成したものをWin7機にインストール済み。

ぬいぐるみの類が欲しいかもしれない。 :

カメラの被写体として適切なモノが部屋の中に見当たらず。ぬいぐるみでもあれば便利なんだろうけど。

自分の顔を映す…のはちょっと気が引ける。玩具店でプリキュアのお面でも買ってこようか。嘘。というか、そもそも須賀川市に玩具店は無かったような気もする。ダイソーあたりでその手の品が売ってないかな。今度行ったときに探してみようか。

上から紐で吊るした操り人形でもあれば便利かもしれない。自作してみようかしら。…何か本筋とずれてきている気もするけど。

#4 [anime][neta] 鳥に乗る

ダチョウに乗って移動する夢を見た。

目が覚めて考え込んでしまった。なんでダチョウなんだろう。気が付いた。ナウシカだ。夢の中で、ユパ様が乗ってたカイとクイの記憶に電気が流れたのだろう。

アレって、どうして鳥なんだろう…? フツーの人なら、フツーに馬を設定すると思うのだけど。

二足歩行だからか? STAR WARS EP5でも、 _二足歩行の生物を人間の移動手段として使っていた 記憶がある。また、 _キャプテンフューチャーの表紙絵 でも、同様の絵を見たことがある。つまりSF作品において二足歩行する生物を移動手段として使う設定は定番なのではあるまいか。

宮崎駿作品においては、他にも変わった動物が移動手段として使われている気がしてきた。「シュナの旅」「もののけ姫」に出てくるヤックルとか。アレは馬ではなく鹿の類だと思うのだけど。…これは四足歩行か。ファンタジー作品では二足歩行の生物を移動手段にしない設定が定番、だったりするのかしら。二足歩行生物ではリアリティが無くなってしまうとか?

娯楽コンテンツ中で、移動手段として使われる動物をリストアップしてみたい気分になってきた。
生物使ってる作品等
風の谷のナウシカ
ヤックルシュナの旅、もののけ姫
もののけ姫
となりのトトロ、猫の恩返し
暴れん坊将軍、仮面ライダー
イルカイルカに乗った少年、海のトリトン
クジラストライダー飛竜
浦島太郎
くらげ犬夜叉(かごめ+子狐妖怪変化形態)
トカゲ(ワニ?)獣の奏者エリン
アルスラーン戦記
クマ金太郎
パンダ遊園地
人間アイドルマスター(ハムスター?が人間を操縦)
意外とやり尽くされている感じがする。

「ソレに乗せるのはちょっと無理が」と思えてくる動物って何かないかな。見た瞬間、笑える動物はないものか。

全然関係ないけど。鳥が地面を走ることしかできなくて、代わり?に、人工的に作った鳥に似せたモノ ―― メーヴェやガンシップが空を飛んでいるナウシカの世界設定って、面白いというか、何か意味が込められてたのかなと思えてきた。

更に関係ないけど。動物が移動手段として使われる設定だと、動物もキャラクターとして扱える利点がありそうだなと思えてきた。「シュナの旅」「もののけ姫」におけるヤックルの活躍が思い起こされる。言葉は交わせないけど、乗り物が搭乗者に対して意思を見せることができる。車やバイクではこうはいかない。と思ったが、ナイト2000や、ライダー555のオートバジンがあったか。

この記事へのツッコミ

Re: 鳥に乗る by がんした    2012/04/12 23:29
>「ソレに乗せるのはちょっと無理が」と思えてくる動物って何かないかな。
ネコバスとか、猫ってより百足ぽいけど。

>ナイト2000や、ライダー555のオートバジンがあったか。
SPTレイズナーに出てきたホロンの事も、思い出してあげてください。

以上、1 日分です。

過去ログ表示

Prev - 2012/02 - Next
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project