2006-06-04[n年前へ]
■Mathematicaでマリリン・モンロー
今週、「Mathematica 初級・入門コース」で90分程度の実演講師をするので、実演用テキストを作ってみました。Mathematicaを使ったことがない人を対象にしている…ということで、難しい機能を使わずに、画像入出力と三次元レンダリング動画とクラスタリングによる減色…といったような内容を扱っています。作った資料は、画像も入ったPDF版(3.2MB)・画像を削ったMathematicaのノートブック(26kB) といった感じになります。
2006-08-16[n年前へ]
■なかなかグッド!な「手振れ補正アルゴリズム」の仕組み
Tech総研ブログ 平林 純@「hirax.net」の科学と技術と男と女になかなかグッド!な「手振れ補正アルゴリズム」の仕組みを書きました。自分の興味に動かされるままに、他人のプレゼンテーション・ファイルに貼り付けられている画像を勝手に解析したりしながら書き始めたのですが、「なんとも一般受け」しそうにない内容になってしまいました。そんな「気配りを忘れてしまう」瞬間もあります…よね? (いつもそうなんですが…)
「どのように手振れしたか」がわからないシステムの場合、「自然な画像とはどのようなものか」という理解が重要になります(多分)。例えば、二次元キャラが写っている画像、あるいは、三次元の現実人間キャラが写っている画像…どんな画像かによって「自然で、あるべき姿」は異なります。自分が好きな画像に対し、「自然で、あるべき姿」はどのようであるかを調べてみるのも面白いかもしれません。
2007-08-17[n年前へ]
■「面白いこと」
暑い夏に考えたこと from n年前へ
自分にとって「面白い」か「否」か、「好き」か「どうでもいい」か、という軸で行動している理系な人々なら、よく見かけるかもしれません。
マンデルブロしか能がない専用のハードウェアを作ってしまいました。…と言うのは簡単なのですが、完成まで実に丸2年かかりました。
なまじ才能をひけらかしていると、天寿を全うできない。
「どのように手振れしたか」がわからないシステムの場合、「自然な画像とはどのようなものか」という理解が重要になります(多分)。
1914年のイギリスとドイツはクリスマスに一時休戦に入る。イギリス人将校とドイツ人将校はお互いの家族の写真を交換して見せ合う。他の兵士達はサッカーに興じている。
私はパンの耳で食いつなぐような貧乏学生だったので、人件費は労力でカバーが基本方針でした。ゆっくりと時間をかけて、とにかく楽しく設計した事を覚えています。
例えば、二次元キャラが写っている画像、あるいは、三次元の現実人間キャラが写っている画像…どんな画像かによって「自然で、あるべき姿」は異なります。
建築の材料には使えない曲がりくねっている木そんな役立たずの木は、切られることがなく天寿を全うする。
2009-06-22[n年前へ]
■まるで古墳のテーマパーク!!天皇陵4基を3Dで再現
岸本准教授は調査にちなんで、宮内庁が昭和初めに作製した測量図をコンピューター処理したうえで、専門業者の協力で3Dに仕上げた。
完成した3Dでは、日葉酢媛命陵を含めた計4基の古墳が並ぶ姿が、パソコン操作によって真上や斜めなどあらゆる角度から見ることができ、“古墳のテーマパーク”のように再現される。
2009-12-04[n年前へ]
■Thinkpad 加速度センサでExcel3次元グラフを未来のディスプレイ風にしよう
Ruby版 Thinkpad 加速度センサ類取得クラスを作ったので、さっそく何か加速度センサを使って遊んでみることにしましょう。まずは、とても簡単に「未来のディスプレイ」を作る風のことを、Ruby+Microsoft Excelで行ってみることにしましょう。
というわけで、Thinkpadを傾けると、それに応じてエクセルの三次元グラフを(傾けた方向に応じた)さまざまな方向から眺めることができるという次のようなスクリプトを書いてみました。
このスクリプトはまずエクセルで(適当な値を代入した)三次元グラフを作成し、(その後の30秒間にあなたがグラフを色々カスタマイズする時間を与えた上で)、30秒経た後にThinkpadの傾きに応じて三次元グラフを好きな方向からリアルタイムにグリグリ動かしながら眺めることができる、というスクリプトです。(動画は「Thinkpad 加速度センサ+RubyによるExcel3次元グラフ動画」で観ることができます)
require 'accelerometer' require 'win32ole' excel=WIN32OLE.new("excel.application") excel['Visible']=TRUE excel.Workbooks.Add() excel.Range("a1")['Value']=1 excel.Range("a2")['Value']=1 excel.Range("a3")['Value']=1 excel.Range("a4")['Value']=1 excel.Range("b1")['Value']=1 excel.Range("b2")['Value']=2 excel.Range("b3")['Value']=2 excel.Range("b4")['Value']=1 excel.Range("c1")['Value']=1 excel.Range("c2")['Value']=3 excel.Range("c3")['Value']=2 excel.Range("c4")['Value']=1 excel.Range("d1")['Value']=1 excel.Range("d2")['Value']=1 excel.Range("d3")['Value']=1 excel.Range("d4")['Value']=1 excel.Range("a1:d4").Select() excelchart=excel.Charts.Add() excelchart['Type']=-4100 sleep 30 # wait time for custumize accelerometer=Accelerometer.new 300.to_i.times do accelerometer.getAccelerometerData x=accelerometer.x y=accelerometer.y r=Math.sqrt(x*x+y*y) elevation=90-r.to_i rot=360-(Math.atan2(y,r)+Math::PI)/(2*Math::PI)*360 excelchart.rotation=rot # 0 to 360 excelchart.elevation=elevation # -90 to 90 sleep(0.2) end excel.ActiveWorkbook.Close(0) excel.Quit()このスクリプトを動かせば、Thinkpadを傾ければ、低い角度からグラフを眺めたり、左右に倒せば左右の異なる方向からグラフを眺めたりする…ということができます。「未来風」かはさておき、現実世界で行う動作に適切に対応した動作、つまりは「実感・体感できる」ソフトウェアを作る、というのは何だかとても面白いものです。
今回作ったスクリプトを動かしているようす、Thinkpad+Ruby+Microsoftエクセルでグラフを未来風にグリグリ動かしている様子を撮影した動画は、「Thinkpad 加速度センサ+RubyによるExcel3次元グラフ動画」として、公開しました。