1998-11-21[n年前へ]
■同心円を描くPhotohoのプラグインを作る。
「モアレのデバイス依存について考える。」の過程で作成した、同心円を描くPhotoshopのプラグインについてメモしておく。
作ったプラグインの名前はCirclePlotである。プラグインメニューではJunHiraxというジャンルの中に現れる設定にしてある。
Windows版 プラグインファイル (circleplot.8bf)
右クリックで「ソースを保存」すれば良いと思う。
これがCirclePlotプラグインの画面である。スライダーを動かすことにより、同心円の周期、中心位置のX座標、中心位置のY座標、振幅の最大値を調節できるようになっている。
例えば、このような画像を作成することができる。フィルターをかけると、元画像がどのようなものであっても、とにかく同心円を描く。
ちなみに、使ったパラメータは以下のようになる。このパラメータを使えば、Macintosh版でも同じくCirclePlotを使うことができる、と思う。また、パラメータを見れば、どのようにして同心円を描いているかわかるだろう。
1999-02-25[n年前へ]
■微小4次元計測をしてみたい
デジタルカメラ、実体顕微鏡、動画の三題話
最近はデジタルカメラ(以降、デジカメと呼ぶ)が大流行りである。実験の記録に使うと大変便利だ。ところで、実体顕微鏡の接眼部からデジカメで撮影するという話題が
の辺りにある。この撮影法の難しさは、デジカメの種類によって違う。例えば、FujiFilmのFinePix700では光軸合わせに結構苦労する。ところが、ソニーの「DigitalMavica(技術者向けのオプション(例えばオシロスコープ・フード)などもあって便利)」ではこの撮影方法はとても簡単である。「Mavica」のレンズを実体顕微鏡の接眼部に合わせるだけで、視野をうまく合わせることができる。といっても、実体顕微鏡にはCCDなどを接続してあることが多いため、単に実体顕微鏡の接眼部をデジカメで撮影するだけでは面白味が少ない。もちろん、高いCCDカメラの代りにメガピクセルのデジカメを使えるメリットは大きいとは思う。
しかし、実体顕微鏡(双眼式)で何が良いかといえば、立体に見えることである。しかし、CCDカメラの接続は一眼式になってしまう。これまで、一つの実体顕微鏡に2つのCCDを接続できるような実体顕微鏡は見たことがない。そこで、接眼部からデジカメ撮影をする方法なら、立体撮影をすることができるので、実体顕微鏡の長所を生かすことができる。
これがそのサンプルである。交差法と平行法の両方を示す。立体に見えるはずである。
それでは、3次元計測を行ってみる。まずは、マーキングをする。基板上とICチップ上にA,B,C,Dという4つのマーキングを行う。
奥行き方向(Z方向としておく)に違いがある場合には、左右の画像でX方向のずれが生じる。そのずれ量を計算してやれば、Z方向の計測を行うことができる。つまり3次元計測を行うことができる。
左 | X | Y | 右 | X | Y |
A | 124 | 33 | A | 133 | 35 |
B | 13 | 55 | B | 22 | 55 |
C | 136 | 167 | C | 144 | 167 |
D | 101 | 100 | D | 99 | 102 |
左右画像の(x,y)の差をとり視差を出す。すると、(A,B,C)とDの間で違いが有り、Z方向の距離が違うのがわかる。
左-右 | X | Y |
A | -9 | -2 |
B | -9 | 0 |
C | -8 | 0 |
D | 2 | -2 |
この結果から、(x,y,z)を描くと以下のようになる。x-y座標上にzの値を書いてある。Dのポイントのみがz方向に近いのがわかる。
もちろん、本来は光学系から係数などを導くのだが、今回は行っていない。大雑把な説明である。また、同じようなやり方で、3次元表面計測も行うことができる。
ソニーの「DigitalMavica」の素晴らしい所は光軸合わせが簡単なだけではない。動画をmpegファイルとして撮影することができる。というわけで、2台買えば実体顕微鏡の画面を立体動画として保存できる。それが微小四次元計測である。
残念ながら、今回は1台しか使えないので、動画サンプルを示すだけである。mpegファイルをgifに変換したものを以下に載せておく。TFT液晶の拡大画面である。映像の終わりで実体顕微鏡の接眼部からカメラを外しているのがわかると思う。
動画サンプル MPEG形式 507kB
動画サンプル GIF形式155kB (上を縮小したもの)
その他関連情報
1999-08-09[n年前へ]
■色を伝える時に、考え忘れていたこと(色弱と色空間 その1)
We can work it out!
オプトニューズ (1999) No.4の光の話題に三楽病院の岡島修氏が「レーザポインタと色覚異常」という小文を書いている。色弱の人の感じ方とプレゼンテーション(特にレーザポインタの色)に関する提言である。それを読んであることを思い出した。何年か前、Labofinder(Macintoshを科学分野で使うユーザーグループ)でプレゼンテーションについて特集していた発表会だったと思う。どなたかが発表を行った後に、次のような質問があった。
「私は色弱なのですが、プレゼンテーションを行う際に使う色などについて、そのような人を意識して作成されているでしょうか?」
恥ずかしいことに、私はあまり考えたことがなかった。そして、本WEBを作るに際してもそういった点はおろそかになっていると思う。そういう自分自身への反省を込めて、色弱と色空間について考えてみたいと思う。
まずは、色弱に関する情報を調べよう。
- COLOR HANDICAP( http://www.sakuranet.or.jp/~tks/color/text/ )
- からーふぃくしょん( http://sun.endless.ne.jp/users/tanafic/ )
- Dr.MeMeの おめめ講座 (http://www.so-net.ne.jp/vivre/eye/ )
それでは、私なりの理解と考察を始めてみたい。
目に映る明るさって何ですか? - 君は天然色- (1999.07.05)
の回で触れたが、人間が光を感じる網膜内の光受容器には錐体と桿体がある。この内、色(すなわち光の波長方向に関する感じ方)を感じるのは、錐体の働きによるものである。錐体には3種類有り、
- L錐体 -> 赤
- M錐 -> 緑
- S錐体 -> 青
目に映る明るさって何ですか? - 君は天然色- (1999.07.05)
を参照のこと)。それらの錐体に異常がある時に、色弱もしくは色盲が発生する。
L錐体 (赤) | M錐体 | S錐体 | 先天性色覚異常の分類 |
O | O | O | 正常 |
X | X | X | 桿体1色覚 (全色盲) |
O | X | X | 錐体1色覚 (赤) |
X | O | X | 錐体1色覚 (緑) |
X | X | O | 錐体1色覚 (青) |
X | O | O | 第1色盲 (赤色盲) |
O | X | O | 第2色盲 (緑色盲) |
O | O | X | 第3色盲 (青色盲) |
OX | O | O | 第1色弱 (赤色弱) |
O | OX | O | 第2色弱 (緑色弱) |
O | O | OX | 第3色弱 (青色弱) |
この図中でOは正常、Xは欠損、OXは機能低下である。
M,L錐体に関する異常はX染色体劣勢遺伝をする。また、錐体1色覚、および、S錐体に異常がある第3色盲・第3色弱は比較的少ないという。
それでは、これらの錐体に異常があるとどのような色を識別できなくなるのだろうか? 私は先に挙げたようなWEBを読んだくらいの知識がないので、数学的な考察をおこなってみる。現実をよく知らないため、実際の症例とはかなりの違いがあるかもしれない、ということは先に断っておく。
現実の症例の参考としては、岡島修氏の「レーザポインタと色覚異常」中に挙げられているCIEXYZ表色系における強度色覚異常者(第1異常、および、第2異常)の混同色を用いる。その図を加工し、XY色度図を重ねたものを以下に示す。それぞれの図において、白い直線上の色を混同してしまうのである。
今回は、通常の(Red,Green,Blue)データを基本として考える。PCなどで表示を行う際に一番よく使うからである。任意のRGBデータをCIEXYZ表色系に直すためには、
WEBページは会社の顔色 -WEBページの色空間を考える2- (1999.04.26)
で用いたハイビジョンTVの色空間を例に用いて、
- X= 0.412391R + 0.357584G + 0.180481B
- Y= 0.212639R + 0.715169G + 0.072192B
- Z= 0.019331R + 0.119195G + 0.950532B
- x=X/(X+Y+Z)
- y=Y/(X+Y+Z)
それでは、通常、第1色盲(赤色盲)、第2色盲(緑色盲)の3種類についてxy色度図の計算例を示してみる。ある錐体に異常が存在する場合に、どのような色空間が再現されるかの計算を行ってみる。通常のxy色度の位置において、ある錐体の刺激を無くした場合に色がどう変化するかを示したものである。であるから、第1色盲(赤色盲)、第2色盲(緑色盲)においては通常使われるxy色度図とは異なるものになる。また、ここで示した色が色弱の人が見ている色という意味でもない。
単純に、ある錐体が得るであろう情報を無くしたときに、情報の識別がどのように困難になるかを確認した、と言った方がいいかもしれない。
また、本来3錐体の波長感度特性はRed,Green,Blueの単波長というわけでもない。しかし、今回は簡単のために、3錐体の波長感度特性はRed,Green,Blueの単波長であるという仮定の元に計算を行っている。そのため、かなり現実とは違う結果になっている。近々、きちんとした計算をするつもりである。
ここでは、Z方向(明るさ方向)に対して無視を行っているので、かなりの誤差が存在すると思う。また、計算の中で一つの錐体に異常があるときの、RGBデータの再配分を計算する部分に極めて大雑把な近似をおこなっているので、その部分でも誤差が大きいと思う。
また、Red,Green,Blueの三色により色空間を形成しているため、各点を頂点とする三角形内に色空間は収まることになる。
この計算結果を眺めながら、岡島修氏の「レーザポインタと色覚異常」中に記述されている色弱における混同しやすい色の例、
- 第1色盲
- 赤と黒
- ピンクと青
- 第2色盲
- 赤と緑
- オレンジと黄緑
- 緑と茶
- 青と紫
- ピンクと白
- 緑と灰色
例えば、通常の色空間において赤(すなわち右上)の場所を第1色盲の色空間の中で見て欲しい。黒との識別が困難なのは一目瞭然だろう。また、下の図に示すように、通常の色空間でピンク(1)と青(2)が第1色盲の色空間の中でどうなっているかを見れば、
これも1と2の識別が困難であることが容易に想像がつく。第2色盲でも同じように見てみて確認して欲しい。
なお、上の図中で中心部が暗くなっているが、それはグリッド線のためであり、本来の色はもっと白っぽい色である。また、今回は岡島修氏の「レーザポインタと色覚異常」中の図と比較するために、CIExy色度図を用いたが、もともとxy色度図は人間の感じ方とは結びつけにくい。いずれ、均等色空間における解析を行うつもりである。また、先に記述したようにきちんと錐体の波長感度特性を考慮に入れた計算をするつもりである。今回はあくまでごく簡単な実験である。
というわけで、今回は色弱の方がどのような色空間を感じているかを考察してみた。今回の話中には色々間違いもあると思う。なにか訂正すべき情報を見つけてくださったら、教えて欲しい。
画像出力に携わる方でこのWEBをご覧になっている人もいるはずだ。色を正しく伝えることを日夜考えている人もいるだろう。しかし、色を正しく伝えることを考えるときに、考え忘れていることはないだろうか? 「正しい伝え方」は、誰にとって「正しい」のだろうか?私達が当然のように感じている色についても、異なる感じ方をする人のことを考え忘れてはいないだろうか?
そういった人は少数だと言われる方もいるかもしれない。しかし、あなたが当然の権利のように享受しているものは果たして全ての人が得ているものだろうか? もしかしたら、その権利を享受している人の方が少数派であるものもあるのではないだろうか?
やることは至極簡単なことだ。技術的に言うならば、人の知覚も「デバイスの一部」として考えた際に、「人の知覚」が数種類あるものとして、異なるデバイス間のカラーマッチングを考えれば良いだけのことだ。もちろん、一筋縄ではいかないだろうが、得られるものの大きさからしたら、やってみる価値はあるだろう。
プレゼンテーションソフト、あるいは数多くのソフトウェアにそういったことをきちんと考えたテンプレートが現れ、WEBサイトの色、画像機器のカラーマネジメントにそういった「全ての人(健常者と呼ばれる人のモデルだけでない)の感じ方まで含めたカラーマッチング」が適用されていく日も必ず来るはずだ。もしかしたら、このWEBサイトに来ている人の中には、今すぐにでもそういうことを始めることが出来る人もいるかと思う。果たして、そんなことが「できるかな?」と思われる人もいるかもしれないが、きっとできる筈だ。
こういったことは色覚に限る話ではないと思う。考え忘れていることは数多くある。できることも数多くある、と私は思う。
1999-12-16[n年前へ]
■スキー場の特殊相対性理論
ジャンプの飛距離は何メートルだ?
突然ではあるが、HIRAX.NETのドメインレコードを調べてみると、
Record created on 16-Dec-1998.となっている。自分のドメインのレコードをわざわざ調べたのは、一体いつ取得したのか私自身が忘れてしまったからである。何しろ、「できるかな?」は当初異なる場所での二本立てで公開していたため、私の記憶がごっちゃになっているのである。あと各回の公開順序も実はかなりシャッフルされている。そのため、完全に忘れていたのである。
「できるかな?」はHIRAX.NETのコンテンツの一部である。しかし、HIRAX.NETの誕生日よりも、「できるかな?」の誕生日の方が実は早い。
で書いたように、「できるかな?」はすでに満一年を迎えていたわけである。そしてやっと、本日でHIRAX.NETも満一歳になったわけだ。何はともあれ、目出度いことである。子供の頃やらされた「ドリル」でも3日も続かなかったのに、1年続くとは、正に奇跡である。奇跡はそうそう続かないような気もするが... さて、関係ない話はここまでである。今回の舞台は万座温泉だ。なぜなら、先週末私は万座温泉でスキーをしていたからだ。何故だか理不尽な話しではあるが、私は万座温泉でローレンツ収縮を考える羽目になったのだ。もう少し正確に言えば、スキー場で特殊相対性理論を考える羽目になったのである。(先に断っておくが、私はトンデモ話をマジメな顔で言うことが多い。)
話の発端はスキーに行く前に遡る。職場の今年の新入社員であるタカノリ君(仮名)とスキーの話をしていた。彼は秋田出身であり、子供の頃からスキー三昧の生活をしていた。大学に入り京都へ行ってからは、スキーをやる頻度は下がったが、チョコチョコ行ってはいたという。
そのタカノリ君(仮名)と話していると、彼はさりげなくこう言った。
「10m位のジャンプはよくするスよ。」10mである。2mの身長の人の5人分である。それは、スゴイ。
「えぇ、本当かぁ〜〜」
「いやぁ、そんなのよくやることじゃないスか?」
今回のスキー&温泉旅行は職場(と何故か競合他社)の人達30人程で行った。ほとんどの人は、割にスキーは好きな人が多い。従って、スキーも上手い人が多い。その人達に囲まれながら、タカノリ君(仮名)は断言した。
「6,7mは簡単だけど、10mってスゴイなぁ。」タカノリ君(仮名)、ただ者ではない。
「本当かぁ〜〜」
「えっ、だってただ飛ぶだけじゃないっスか。」
そこで、スキー場でその確認をしたわけである。場所は万座プリンスゲレンデの下部である。リフトとコースが交差する辺りに、ジャンプできる場所があったのだ。そこで、彼は軽く滑り出し、力一杯ジャンプした。
果たして、タカノリ君(仮名)は何メーター飛んだのであろうか? それとも、ただのホラ吹き男爵であったのだろうか?
ところが、その答えをすぐに書くわけにはいかないのである。なぜなら、タカノリ君(仮名)がジャンプをしてみせた時に事件は起こったのである。
「どうスか!10mはいったんじゃないスか!」
「3,4mしかいってねーぞ!おイ!」
これは、一体どうしたことだろうか? しかも、会話はまだ続くのである。
「何でっスか!軽く1秒は宙に浮いてたっスよ!」ますます不思議なことに、時間感覚すら違っているのである。一体何が起こっているのだろうか?
「そんなことはねぇぞ!コンマ数秒だろう!」
私はここで気づいたのである。観測者の間で時間と空間の不一致が生じているのであれば、ここはもちろんアレの登場である。アレと言えば言うまでもない、もちろん特殊相対性理論である。
そう、万座温泉スキー場ではローレンツ収縮を実感することができるのである。「スキー場でジャンプする」という現象を考える際には、「スキー場におけるhiraxの特殊相対性理論」を導入しなければならないのであった。
それでは、簡単に「スキー場におけるhiraxの特殊相対性理論」を説明しよう。今回、生じている不思議な現象は以下のようになる。
登場人物
- タカノリ君(仮名) 速度vでジャンプをしている。
- 観客 静止している。
タカノリ君(仮名) | 観客 | |
飛んだ距離 | 10 | 3 |
飛んでた時間 | 1 | 0.3 |
つまり、速度vで飛んでいるタカノリ君(仮名)の感じる空間や時間といったものは、静止している観客に比べて、いずれも3倍程度に膨張しているのである。
通常の世界で生じるローレンツ収縮は、速度vで移動している観測者の空間軸も時間軸も
倍縮むのであるが(ここでは光速c=1の単位系を使用している)、
であるが、「スキー場におけるhiraxの特殊相対性理論」では、速度vで移動している観測者の空間軸も時間軸も静止している観測者に対して、逆に
倍に延びてしまうのである。もし、ミンコフスキーの時空図を書いて確認しようとする人がいるならば、座標軸の傾きの変化も通常のローレンツ変換と逆に考えてみてもらいたい(その延長で考えていくと、矛盾があるというご指摘メールはノーサンキューである。)。
さて、そもそもローレンツ収縮は、マイケルソン - モーリーの実験結果(エーテルの影響が検出できない)を説明し、なおかつエーテルの存在を認めるために立てられた。それは、「運動体はすべてその運動方向に収縮する」という仮説である。その仮説を理論的に完成させたのが、アインシュタインの特殊相対性理論である(考え方としては根本的に異なるが)。
今回の話の中で「エーテル」に変わるのは、「空気」だろうか? いや、違う。私はむしろ、速度そのものであると、考える。つまり、特殊相対性理論と同じである。スピードを出して飛んでいるという感覚、速度が与える感覚の変化、すなわち速度そのものが、「スキー場におけるhiraxの特殊相対性理論」を要請するのである。
今シーズン、スキー場でせっせとジャンプをする人がいるならば、ぜひ「スキー場におけるhiraxの特殊相対性理論」について考えてみてもらいたい。
このWEBへ来る人の中で、同時期に万座温泉スキー場にいた人はいるだろうか?12/11.12に万座温泉スキー場のプリンスゲレンデの下部でジャンプにいそしんでいたのが、私達の一行である。そして、その中の一人(ショートスキーでせっせと飛び跳ねていたヤツ)はこんなことをずっと考えていたのである。
さて、実際のタカノリ君(仮名)の飛距離がどの程度であるか知りたいと思う人も多いだろう。オマエらの主観的な評価でなくて、実測定した距離を教えろと思う人も多いに違いない。
「絶対的な基準など存在しないから、そんなことは私はわからない。」と言い放ちたいところだが、タカノリ君(仮名)の名誉のために書いておく。彼が飛んだ距離は、2m弱のスキー板で4本分はあった。実は、タカノリ君(仮名)の基準が一番正しかったのである。彼は、「やるときはやる有言実行の人」なのであった。
2000-02-06[n年前へ]
■パノラマ写真と画像処理 Pt.1
パノラマ写真を実感する
「パノラマ」という言葉は何故か大正ロマンを感じさせる。かつて、流行ったパノラマ館や江戸川乱歩の「パノラマ島奇譚」という言葉がそういったものを連想させるのだろう。私も自分で写真の現像・焼き付けをしていた頃は、フィルム一本まるまる使ってベタ焼きでパノラマ写真を撮るのが好きだった。
そういう癖は持ち歩くカメラが「写るんです」と「デジカメ」へ変化した今でも変わらない。例えば、
の時に撮ったこの写真もそうである。 そしてまた、次に示す写真もそうだ。これは1999年夏頃の早朝に箱根の湖尻で撮影したものである。360度のパノラマを撮影したものだ。
観光に行った先で撮影したと思われるかもしれないが、残念ながら違う。出勤途中に撮影したものである。豊かな自然がありすぎて、涙が出そうである。
パノラマ写真としては、こういう景色を撮ったものも良いが、人が写っているものも良い。私の勤務先がこの大自然の中に移転してくる前、都会の中にあった頃に居室で撮ったパノラマ写真などはとても面白い。窓の向こうにはビルが見えたり、周りに写っている人ですでに退職した人が何人もいたりして、涙無しには見られない。
もちろん、こういった写真はパノラマ写真で楽しむのも良いが、もっと実感できるものに加工しても楽しい。私がかつて都会の居室で撮影したものは、当時はAppleのQuicktimeVRのムービーファイルに変換して遊んでいた。今はもうない居室の中をグリグリ動かすのはホロ哀しいものがあり、とても味わい深かった。
ところで、WEB上でそういうパノラマのVRファイルを見せるにはどうしたら良いだろうか?もちろん、AppleのQuicktimeVRを用いれば良いわけではあるが、プラグインが必要である。私はQuicktimeは好きであるが、ブラウザーのQuicktimeのプラグインは嫌いである。WEBを眺めているときに、「Quicktimeのアップグレードはいかがでしょう?」というダイアログが出ると、少しムッとしてしまう。そこで、Javaを使うことにした。いや、もちろんJavaをサポートしていないブラウザーもたくさんあるが、こちらの方がまだ好きなのである。
そのようなパノラマのVRを実現するJavaアプレットには、例えば
- Panoramania
- http://www.lamatek.com/lamasoft/Panoramic/test.html
- Javaアプレット(パノラマver1.1)
- http://village.infoweb.ne.jp/~fwbc6098/java/panorama/panorama.htm
- TheVRApplet1.0
- http://www.physik.uni-greifswald.de/~jonas/VRApplet/VRApplet.html
- how toinsert the panorama show (java applet) inside your home page ?
- http://persoweb.francenet.fr/~carl/brique/exapano1.htm
さて、ここまでは単なる前振りである。本題は、実はこれから始まる。先日このようなメールを頂いた。
私はWindowsを使っているのですが、AppleのQuicktimeVRに興味があって、QuicktimeVRのパノラマ・ムービーを作っています。しかし、素材となる画像の作成に四苦八苦しております。ご承知の通り、
- ライカ版カメラに24ミリ広角レンズをつけて、
- 三脚にパノラマヘッドをつけて、ぐるりと周囲を12枚撮りして、
- 現像、プリントし、
- スキャニングして、ステッチャソフトでレンダリングし、
- それをMacintosh上でMake-QTVR-Panoramaにドロップして、
- 8ミリビデオに広角レンズを付け、
- 90度横倒しにして、10秒程度で1回転するようにステッピングモーターで駆動するパノラマヘッド(自作)に乗せ、
- 高速シャッター撮影し、
- マックのAV機能で円周12枚の静止画を取り出
- し、
- 8ミリビデオを横倒しにして、
- モーター回転するヘッドでぐるりと360度撮影し、
- その撮影した動画ファイルの、各フレームから走査線にして数本分を抽出し(インターレースで256本のうちセンター128本目の前後数本の走査線分)、
- それを貯めて1枚のjpgファイルにする、
- そのJPEG画像をMakeQTVRPanoramaの入力にして、パノラマムービーを作る、
その場合には、スリットスキャンカメラを入手し、それをカラープリントする設備を準備すればいいのでしょうけど、高価です。
そこで、
長々と分かりにくいことを書きましたが、要は、「マックで動く電子スリットスキャンソフト」をなんとか作っていただけないでしょうか?もし、そのようなソフトがあれば、
まずは、答えを先に書いてしまおう。私が作らなくても、
- NIH-Image (MacOS)
- ScionImagePC (Windows)
- 複数画像(動画)からの走査線抽出
ScionImagePCの動作画面を以下に示す。NIH-Imageとほぼ同じである。
これらのソフトのStack-Slice機能を用いれば「複数画像(動画)からの走査線抽出」ができる。その使用例と、その面白い座標軸変換について考えてみたい。しかし、このページは少々重くなってきた。まして、走査線の抽出の話は使用画像が多くならざるをえない。そこで、次回、詳しく使用例を紹介することにする。よく、次回といったまま数ヶ月経つことがあるが、今回は大丈夫である。少なくとも数日後には登場することと思う(多分)。
あれっ、ここまで書いてからinfoseekで検索すると、
- パノラマ写真のひっみっつっ!
- http://www.imagica.com/nomad/sig98/hitachi/