hirax.net::Keywords::「道具」のブログ



1998-12-30[n年前へ]

12月のサナトリウム 



 とある診療所に行った。
かつての療養所の玄関付近前景

 今は使われていない部屋の風景。
療養所の中の一室

 昔の機械が雑然と置かれている。
かつて使われていた道具


 診療所で療養していた人達の名簿もある。名を聞いたことのある多くの人がいた。
堀 辰雄
横溝正史
竹久夢二
佐々木葉

この診療所はある高原の中腹に建っている。

病室の外観
 先の療養所内の一室の写真は、この写真の2階の中央の部屋にあたる。



病室へ上がる階段にある窓
 このような療養所へ入ることのできなかったもっと多くの人も、やはり同じような窓を眺めていたはずだ。
 かつては、結核にかかった人が寝ている部屋、めったに開かない窓、というのはよくある風景だったという。そして、その人達が出てくることはなかった。


1999-01-14[n年前へ]

ボケたエアーブラシで細かな字がかけるか? 

画像復元を勉強してみたい その2

「宇宙人はどこにいる? - 画像復元を勉強してみたい その1-」ではボケた画像からオリジナルのシャープな画像を復元してみた。前回の話を例えて言うと、

  1. 太郎君が細かい字をエアーブラシで書いた。
  2. ボケボケのエアーブラシを使ったから、ボケボケの画になった。
  3. そのボケボケの画から、太郎君が何を画こうとしたか、考える。

ということであった。
 今回、やってみたいのは以下のようなことである。

  1. 太郎君は太いエアーブラシで字を書きたい。
  2. しかも細かな字を書きたい。
  3. そんなことができるか?

 直感的には、ボケボケのエアーブラシで細かい字など書けないように思う。その直感が正しいか調べてみたい。考え方は前回と同じく、

 出力画像から、ボケ分布でデコンボリューション処理により、オリジナルの画像を計算する。

というやり方である。前回と違うのは出力画像がシャープな画像(先の例で言うと、細かな字)である、という所である。道具は今回もMathematicaを使う。

 出力したい画像ファイルを読み込む。
<< Utilities`BinaryFiles`
StreamFile = OpenReadBinary["E:\jun\private\dekirukana\ufo\ufo.raw"]
ImageData = Table[ ReadBinary[ StreamFile , Byte] ,{x,64},{y,64}];
ListDensityPlot[ImageData,Mesh->False,PlotRange->{0,255}]

これが得たい出力画像である
画像:1

 この細かな字を太いボケボケなエアーブラシで字を書けるか考える。


 まずは、エアーブラシのボケボケ度をつくる。

(*正規分布=ガウス分布によるぼけパラメータを作成する*)
δ=10;
μ=32;

ListPlot3D[NormalBoke,ColorFunction ->Hue,Mesh->False,PlotRange->All]

ガウス分布のボケ(例で言うと、中央にエアーブラシを吹いた場合に相当する)
画像:2

 ボケボケの太いエアーブラシである。

 デコンボリューション用にガウス分布の場所をずらす。
NormalBoke = RotateRight[NormalBoke,32];
NormalBoke = Transpose[ RotateRight[Transpose[NormalBoke],32] ]; (*上へShift*)
ListPlot3D[NormalBoke,ColorFunction ->Hue,Mesh->False,PlotRange->All]

場所をずらしたボケ
画像:3

 出力画像をエアーブラシのボケボケ度でデコンボリューションする。そうすれば、太郎君がどのように画を画けば良いかがわかる。はたして答えはでるのだろうか?

 計算してみると答えが出てしまう。
SharpImage = Re[InverseFourier[ Fourier[ImageData] / Fourier[NormalBoke]] ];
ListDensityPlot[SharpImage/4,Mesh->False,PlotRange->All]

これが計算されたオリジナル画像
画像:4

 まず、本当にこれ(画像:4)にそってエアーブラシで画を画くと出力画像(画像:1)が再現できるか確認してみる。そこで画像:4と画像:3でコンボリューションしてやる。太郎君に実際にエアーブラシを使って画を画いてもらうわけである。
 それでは、画いてみる。
ResImage = InverseFourier[Fourier[SharpImage] Fourier[NormalBoke]];
ListDensityPlot[Re[ResImage],Mesh->False,PlotRange->All]
出力画像を確認したもの
画像:5

 画像:1が再現できた。つまり、太いボケボケのエアーブラシで細かい字が書けてしまうわけである。直感的には納得しがたい結果である(私だけかもしれないが)。

 これには実はタネがある。画像:4を鳥瞰図でみると判るが、画像4は正負の値が高周波で並んでいる。
ListPlot3D[SharpImage/4,ColorFunction ->Hue,Mesh->False,PlotRange->All]

計算されたオリジナル画像(画像:4の鳥瞰図表示)
画像:6

 太郎君が使ったエアーブラシは太いボケボケのエアーブラシではあるが、吹き量に正負が両方ともあったのである。そのようなエアーブラシを使うと太郎君の腕(高テクニシャン)ならば細かな字が書けるわけだ。どんなパターンもかけるかはどうかまでは知らないが、少なくとも"hirax"という字は画ける。

 前回のような光学系の例でも、これが何に対応しているかはすぐわかるが、一番分かりやすいのは電荷と電位の例だと思う。
 電荷が周囲につくる電位分布はボケボケの分布である。ところが、金属などを適当に配置して、その金属に電位を印加してやると、鋭い電位分布をつくることができる。つまり、ボケボケの分布から鋭い電位分布を作成してやることができる。こちらなら直感的にもすぐ納得できるだろう。その際には、金属表面に電荷が鋭く集中するのも、よく知っている話だ。

 実感用に電場計算を行った例を以下に示しておく。使った道具はCUPSの電場計算プログラムである。CUPSは教育用のプログラム集である。
 一応、2次元膜の例で、金属を配置し、適当に電位を印加し、電位・電荷量計算を行ってみる。

電位分布を表示したもの

もちろん、金属内部では均一な電位である。それを条件に解いているのだから当たり前だが。
 その時の電荷分布を下に示す。金属表面に鋭い電荷分布が生じているのがわかるだろう。
 ここでは大雑把な金属の配置にしてしまったが、格子状の金属配置にして、互い違いに違う極性の電位を印加すれば(細かい字に相当する)、正負の極性の電荷分布が鋭く現れるのは当たり前の話だ。

電荷量分布を表示したもの

 電位、電場、電荷量を一緒に示しておく。

電位(左上)、電場の大きさ(左下)、電荷量(右上)、電場(右下)

 今回の話は、単なる計算上の話である。それに、何かどこかで仮定を間違っているような気もするんだよなぁ。信用度アルファ版だからまぁいいか...

1999-01-19[n年前へ]

小人閑居して... 

情報をポケットに入れて持ち歩きたい

ラテン語入門(http://www.hiei.kit.ac.jp/~taro/latin.html)

The Internet DictionaryProject (http://www.june29.com//IDP/IDPsearch.html)

によれば、「学者=scholar」はギリシャ語の「スコレー」を語源にしているという。語源を素直に訳せば、「暇人」となる。その中で、真理のために学ぼうとする人を「スコレー」と呼ぶのだという。
 また、教育する=educateはラテン語でerudioであり、 「外に引き出す」を意味するという。生徒一人一人の中に潜んでいる才能を外に引き出す、というのが本来の意味であるという。なんとも、深い意味である。

 とは言っても、昔のギリシャ人とは私は違う。「小人閑居して...」、と言う通りである。そこで、反省のために、「暇な時には真理を学んでみる」ことにした。といっても、何かを覚えるというのは面倒くさいし、無意味でもあるので、ポケットに情報を入れて持ち歩くことにした。

 今回使う道具は

である。InterGetで自動巡回してダウンロードしたさまざまな情報をPalm-sizePCであるCASIOE-55の中に入れて持ち歩こうというわけである。CASIO E-55には30MBytesのCF(コンパクトフラッシュ)カードが挿してあるので、容量には結構余裕がある。

InterGetの動作画面

Palm-size PCの便利な点であるmobile channelを自分で作成してやれば、更新も自動化できてとても便利なのだが、CFカードの領域にchannelのファイルを作成するやり方が分からなかったので、ひとまずあきらめた。大切なRAM領域を食いつぶす訳にもいかないだろう。

毎日のmobile channnel

mobile channelを自分で簡単に作成するためのMobile Channel Wizard
http://www.microsoft.com/windowsce/downloads/pccompanions/mcwizard.asp
からダウンロードすることができる。いずれ自分用にチャンネルを作成してみたい。

 まず持ち歩いてみたい資料は、RICOH情報通信研究所 有志による
英語技術文献の日本語要約(http://www.ricoh.co.jp/rdc/ic/misc/abs_club/index.html)
が面白くて良い。ここから、

  • Science
  • Computer Vision and Image Understanding
  • Graphical Models and Image Processing
  • IEEE Multimedia
  • IEEE Software
  • IEEE Transactions on Pattern Analysis and Machine Intelligence
といった雑誌のアブストラクトの和訳を読むことができる。有り難いことだ。まずは、Scienceでも持ち歩くことにする。
Scienceのアブストラクトを表示している。

 このボディーの中に1995-1999のScienceのアブストラクトが詰まっているのである。
 あと、ゲームも...

1999-03-25[n年前へ]

電界計算をしてみたい[有限要素法編その1] 

有限と微小のパン

 今回のサブタイトルは一目瞭然であるが、森博嗣のミステリのタイトルそのままである。

森博嗣 著 「有限と微小のパン」

 何故、「電界計算をしてみたい-有限要素法編その1-」が「有限と微小のパン」に繋がるのか。もちろん、"有限要素法"と"有限と微小のパン"の「有限」をかけた駄洒落ではない。有限要素法を考えるとき、私は森博嗣に足を向けては寝ることができない。それが、なぜかは下の本を見ればわかる。

森博嗣 著 「C言語による有限要素法入門」

 これは、学生時代に有限要素法を勉強するために使った本である。「森 博嗣 著」と書いてあるのがわかるだろうか。いや、まさかこの本の作者がミステリを量産するとは想像もしなかった。ビックリである。講談社ノベルズと森北出版の両方から本を出している人は他にはいそうにない。

 本題と関係のない話はここまでにしておく。今回はMathematicaで有限要素法を用いて静電界計算を行いたい。とりあえず、ソルバーとプリ・プロセッサまでつくる。その応用は続きの回で行いたい。Mathematicaで有限要素法を勉強するには、森北出版の依田 潔 著「Mathematicaによる電磁界シミュレーション入門」を参考にした。任意の電荷配置のPoisson方程式を解くようにしてある。

 今回使用したMathematicaのNotebookをHTMLで出力したものをここに示す。Notebook中でエラーが表示されているところは初期設定の変数をきちんと設定してやれば、エラーは出ないはずである。

次回に詳しく計算モデルの説明を行うので、今回は計算モデルの詳細については記述しない。Notebook内に、モデルの詳細は記述してある。

 このNotebookを使った計算、出力例を以下に示す。

電界計算の例

平行平板電極の間に誘電体層があるモデル

平板電極と三角柱電極の間に誘電体層があるモデル

平板電極と円柱電極の間に誘電体層があるモデル

分割要素

分割要素

分割要素

電位表示(色がきちんとしたhueでないことに注意)

電位表示(色がきちんとしたhueでないことに注意)

電位表示(色がきちんとしたhueでないことに注意)

半分の領域の電位を鳥瞰図にしたもの

半分の領域の電位を鳥瞰図にしたもの

半分の領域の電位を鳥瞰図にしたもの

 Mathematica3.0のHTML出力は大変便利だが、漢字が化けるのが困りものだ。しかも、ちょっと似た漢字に化けてしまうからわかりにくい。今回のNotebook中で化けた漢字を以下に示す。

  • 油界 <- 電界
  • 堰素 <- 要素
  • 誘油 <- 誘電
  • 姦み込む <- 組み込む
  • 表傭 <- 表面
  • 壓さ <- 高さ
  • 堆心 <- 重心
  • 肖似 <- 近似
  • 内占 <- 内部
  • 傭積 <- 面積
  • 回寂 <- 回転
  • 進当 <- 適当
  • 懷瞰 <- 鳥瞰


中国語みたいな化け方である。しかも、意味としても何か変な化け方である。いつか、この対処方法と理由を考えてみたい。それにしても、週末の遊び道具としてはMathematicaは素晴らしいと思う。

1999-08-12[n年前へ]

不思議な品揃え 

パンティーププラザの未来

 下の写真はバンコクのパンティーププラザの内部である。丸井のビルの内部をラジオ会館の店子で置換しまくったようなビルである。いや、ラジオデパートのスケールを長さで10倍、面積で100倍にしたといった方がいいだろうか。

パンティーププラザの内部

 こういった電脳ビルに関しては詳しいサイトがたくさんあるのでここでは言及しない。

 私が興味を惹かれたのは、その品揃えの不思議さである。パンティーププラザ内には数多くの店がある。どの店も展示しているソフトウェアは技術者向けのソフトのコーナーがかなり広いのである。それが結構面白いのだ。展示しているソフトウェア自体はどこの店も対して変わらない。例えば、

  • AVS/Express Developer
  • MATLAB5.3
  • Mathematica4.0
  • 様々なCAD/EM Simulator
といったような種類のソフトが売り場の中で結構な面積をとっているのだ。とはいえ、せいぜい広くても1店の面積の1/10位ではあるが、こういったソフトウェアは日本の大きなソフトショップでも在庫を置いてすらないようなものばかりである。(言うまでもないがこういったソフトウェアは全て海賊版であり、1枚のCDが日本円にして400円位である。)

 もちろん、他の国では海賊版のソフトウェアに対する規制が厳しいため、売り場が縮小するとともに、売れ線のソフトのみが残ったというようなこともあるのだろう。(あるいは、売れ線のソフトの面積を広くするのが面倒で、全てのソフトをただ並べているのだろうか?)
 香港などでは、数年前はFDベースという形で技術的なソフトウェアの在庫が結構あった。しかし、今では技術的なソフトウェアはほんの片隅に残るだけである。現在は、ほとんどがゲームかオフィス・グラフィックス用のソフトウェアである。FDベースだった理由はCDをプレスで作成してしまうと、少数しか売れない技術ソフトウェアは利益が出ないからである。

 ただし、最近の技術ソフトウェアはFDベースでなくてCD-Rベースのものが多い。FDよりもCD-Rの方が安いし、本物がCDベースだとCD-Rでないと駄目だろう。しかし、CD-Rベースのソフトウェアを400円程で売っていると、利益が出るのか心配になってしまう位だ。

 いずれにせよ、パンティーププラザにこんなに技術ソフトがおいてある理由はよくわからないし、その倫理性についても難しい問題だと思う。ただ、私が興味があるのはこいうソフトウェアを買うのはどんな客であるのか、だ。 別に、客の倫理性に興味があるわけではない。素晴らしい道具を簡単に入手できる世界の未来に興味があるのだ。それに一時期タイの人達と一緒に働いていた時期があるので、なおさら気にかかってしまうのかもしれない。ハンバーガーと同じ値段で、こういった素晴らしいソフトウェアが入手できるパンティーププラザの未来はどうなるのだろうか?(ソフトウェアを製作している立場の人からすれば、たまったものではないのだろうが。)

と、ここまでで終わるつもりだったが、何故か手元にこんな画像が有る。

ナゾのメニュー画面

1枚のCDにBeatlesの全曲(当然歌詞も)が入っているのである。こんなCDがあったらいいなぁ、と思っていたのだが、あるもんなんだなぁ。ここらへんの曲はもう年月を経て、権利も消失してる(はず)だからいいんだよなぁ。だから、買ってもいいんだよなぁ(別に買ったといってるわけではないけど...)。あれ、"Iwill"が聞こえてきたけど、これはきっと夢なんだ...



■Powered by yagm.net