hirax.net::Keywords::「次元」のブログ



1998-01-08[n年前へ]

Photohoの乱数プラグインを作成する 

 「2項分布のムラについて考える」の関連して、Photoshopの乱数プラグインを作成したのでメモしておく。

 PhotShopはとても便利なソフトである。画像を取り扱うにはトップクラスと言っても良い。あえて、難を挙げるならば8Bit階調が基本という所である。もちろん、12bit階調なども扱えるのは知っているが、基本機能とは言えないと思う。
 しかし、PhotoShopで凝ったことをしようとすると、Pluginを作らざるを得ない。PhotoShopでPluginをつくるには2つのやり方がある。それは、

  • Adobe提供のPlugin SftwareDevelopmentKitを使ってPluginを作る。
  • FilterFactoryを使ってPluginを作成する。
である。目的によってどちらを使うか選択すれば良い。

 今回はランダムノイズをつくるためのプラグイン作成が目的である。その程度であれば、FilterFactoryを使うのが簡単で良い。

FilterFactoryを使う
 まずは、FilterFactoryを使う。
 今回は、ランダムノイズを作るのが目的である。ランダムな(0から255)の値を与えるプラグインである。最初にどんな画像があるかなど関係がない。とにかく乱数を計算し、画像に出力する。今回、1チャンネルにのみ乱数を与えるプラグインと、各チャンネルに独立に乱数を与えるプラグインの2種類を作成する。
 まずは、Redチャンネルにのみ乱数を与えるものをつくる。以下がそのパラメータである。
Redのチャンネルに (0...255)の乱数を与える。
 たった、これだけである。
Redに乱数を与え、Green,Blueのチャンネルには0を与える。
 このプラグインで作成した画像がこれである。ここでは、Redのレイヤーをグレースケールに変換してある。

 もうひとつ、各色に乱数を与えるプラグインのサンプル画像はこのようになる。

 今回作成したWindows版のプラグインをここにおいておく。Mac版も作るのは同じく簡単である。Mac版やCMYK版が欲しいという要望があれば教えて頂きたい。SDKを使う場合などはむしろMac版の方が簡単である。 このファイルを解凍して、プラグインをPhotoshopのPluginディレクトリのFiltersの下に置けば使えるようになる。JunHiraxというジャンルのRnd2redとRnd2RGBである。

 さて、試しに使ってみる。1000x1000ドットのランダムノイズ画像を作成してみる。その画像はここに載せるには大きすぎる。そのため、その一部を左下に示す。その画像に対して各領域10x10の100ドットで平均し、100x100に変換した画像を右に示す。詳しくは「2項分布を考える」を見て欲しいが、100ドットで平均したくらいではフラットにはならない。それどころか、有限のいくら広い範囲で平均しても正確にはフラットにはならない。もし、フラットになるのであれば、それはランダムな2項分布ではない。もちろん、PhotoShopの丸め誤差とかの話は別にしておく。また、「2項分布を考える」の際は1次元の1成分データであったが、今回は2次元3成分データである。そのため、人間にはよりフラットに見えにくい。相対的な色差に対しては人間の目は敏感だからである。

右が作成した1000x1000ドットのランダムノイズ画像の一部(137x90)、
左は作成した1000x1000ドットのランダムノイズ画像を各領域100ドット(10x10ドット)で平均することにより、100x100に変換したもの
 これを使って、適当に遊んでみると面白いのではないだろうか。
 今回の例も「2項分布の特性:どんなに広い領域であっても、領域中の平均が一定でない」の当然の結果である。仮に、ある広い領域中の平均が一定であるような確率過程を用いればこのようなことは生じない。もしも、そのような確率過程に基づくものがあったら、部分部分はランダムに見えても、広い領域ではフラットに見えるのである。

1998-12-27[n年前へ]

Wveletで周期解析をしてみる  

 音声・地震などの1次元信号や、画像等の2次元信号処理の解析というのはなかなか面白そうだ。そこで、周期ムラに対してWaveletをかけて周波数解析をする練習をやってみたい。また、短時間フーリエ変換とWaveletの比較もしてみたい。音声・地震などのデータはまた別にやってみることにして、今回は画像データを扱うことにする。ただし、いきなり2次元も何なので、画像データの周期(つまり1次元的な振動)に注目して、解析を行ってみたい。

 まずは、「周期ムラのある画像」と「周期ムラのない画像」の2種類の画像を作成する。画像はいずれも数式を用いて作成した。X方向に変化する縞模様であり、表.1のような演算式になっている。一応、2次元画像ではあるが、Y方向にはなんの変化もない。2つの数式を見比べてみると判るが、いずれも2項からなり、低周波数のSinと高周波数のSinからなっている。「周波数ムラのある画像」では、その低周波数のSinの中にさらにSinがあるので、周波数がある周期で変化していることになる。一見、「周波数ムラのない画像」の方でも低周波数のSinの内部にさらにSinがあるように見えるが、0が掛けられているので、実際には存在しないのと同じである。

表.1:画像を作成するために使用した演算式
 2つのSinからなり、その一方のSinの周期がムラ(一定の周期)をもっているもの。第二項目のSinの内部にさらにSinを入れることにより、周波数ムラを作っている。2つのSin波からなり、どちらの周期も正確なもの。第二項目のSinの中のSinは0をかけてあるので、何ら影響を及ぼさない。

 そのような数式に基づいて作成した画像を図.1に示す。なお縦軸がX軸であり、横軸がY軸である。図.2(b)では周波数ムラはないが、2つの周波数成分から作成されているため、うねりが生じている。

図.1:作成した原画像
 周波数ムラのある画像
 周波数ムラのない画像
図.1(a):
図.1(b):
 それでは、このような画像からX軸の方向に1次元データを抽出し、周波数解析をしてみる。Y軸方向にはなんの変化もないため、無視して良い。

 まずは、Wavelet変換である。図.2がその結果である。縦軸が周波数を示している。縦軸の上方向が高周波を示し、下方向が低周波を示している。また、横軸が原画像のX方向である。白は強度が小さいことを示し、黒は強度が強いことを示している。
 いずれの画像も2つの周波数成分からなることが一目瞭然である。また、図.2(a):「周波数ムラのある画像」の方では低い周波数成分の方が、さらにある周期で周波数が変化していることがわかる。

図.2:Wavelet解析を行ったもの (Daubechiesの6次のCoifletFilterを使用)
 周波数ムラのある画像
周波数ムラのない画像
図.2(a):
図.2(b):

 同じWavelet変換でも異なるFilterを用いてみると、結果は異なる。例えば、図.3がその例である。こちらの方が「周波数ムラ」がどのように生じているかを見るにはいいかもしれない。

図.3:Wavelet解析を行ったもの (Daubechiesの6次のLeastAsymmetricFilterを使用)
周波数ムラのある画像
周波数ムラのない画像
図.3(a):
図.3(b):

 それでは、Wavelet変換ではなくて、フーリエ変換を用いて周波数解析を行ってみる。先ほどの1次元データの全領域に対してフーリエ変換をかけてみる。その結果が図.4である。ここで、横軸が周波数を示し、右側が高周波数を示し、左側が低周波数を示している。縦軸は強度である。
 このフーリエ変換の場合も、2つの画像が2つの周波数成分からなり、図.4(a):「周波数ムラのある画像」では低周波数成分がぶれているのはわかる。しかし、その周波数ブレがどのようなものであるかまでは、わからない。

図.4:全領域にFFTをかけて、周波数解析を行ったもの
周波数ムラのある画像
周波数ムラのない画像
図.4(a):
図.4(b):
 それでは、短時間フーリエ変換をかけてみる。先ほどの1次元データに対して前の方から64点ずつ、位置をずらしながらフーリエ変換を行う。このようにすることによって、ある領域の周波数解析を行うことができる。その結果を図.5に示す。ここで、黒は強度が小さいことを示し、白は強度が大きいことを示している。横軸は原画像のX方向を示し、縦軸が周波数を示している。縦軸の上方向が高周波数を示し、下側が低い周波数を示している。結果はWaveletの解析と同様になっている。
 なお、単純のためにウィンドー処理はしていない。そのために悪影響は当然出てしまう。

図.5:短時間FFTをかけたもの
周波数ムラのある画像
周波数ムラのない画像
図.5(a):
図.5(b):

 単なる全領域にわたった周波数解析と、位置と周波数が同時にわかる解析の違いは非常に大きい。使いこなすのはなかなか難しそうだが....

1999-01-08[n年前へ]

2項分布のムラについて考える 

 今回は、分散について考えたい。確率統計というのは感覚的に分かりにくい。ある確率分布が合った時に、その分布が人間にとって均一であると感じるのはどういうことなのか、ということについて考えてみる。


 今回の目的を説明するために、少し準備を行う。
 まず、2048個の[ランダムに0から256の値を持つもの]からなる1次元データを作成する。以下の左図がそのデータである。ここで、X軸がデータの順番であり、1から2048までを示し、Y軸がデータの値である。Y軸の数値ラベルは0から256の値である。折れ線グラフの方が1次元データとして実感できるのだが、そうすると真っ黒になってしまうので、点プロットグラフにしてある。
 また、[0から256]のデータの出現頻度のグラフ(つまりヒストグラム)を右の図として示す。

作成した1次元データ(左図)、とそのヒストグラム(右図)
 右のヒストグラムを見てもわかるが、2048個程度のデータでは出現頻度がフラットになるわけではない。また、その出現領域は均等にばらけるわけではない。また、左のグラフを見てみても、なにかムラがあるように感じてしまう。
 右のグラフを見ると、下は2回から上は15回位の間で出現頻度がばらついている。その頻度のムラは分散として計算することができる。今回の場合は2項分布である。

 今回の目的は、そのムラを考えることである。広い範囲で見たときには、どの程度フラットだろうか。例えば、最初の100個のデータの平均と、次の100個のデータの平均というのはどの程度同じだろうか。それが1000個ならどうだろうか。1000個平均してみても場所によって、平均値はばらついているだろうか。もし、ばらついているとしたら、2項分布の確率過程を導入すると、広い範囲で見てみても認識できるくらいのばらつきを導入していることになる。その「ばらつき=ムラ」を人間が感じないためには、どの程度まで平均しなければならないのか。そういったことである。

 ここで、先の2048個の1次元データは2048dpiの1次元画像データである、ということにしてみる。したがって、X軸の領域はトータル1inchを示すことになる。そして、以下の作業をする。

  1. 2048dpiの1次元画像データを2値化(128でしきい値とした)したものを8個に分断する。
  2. それぞれ、分断したデータ(256個)内で平均を取る。そなわち、8ppi(pixelper inch)の1次元データができる。
その1次元画像データを左下に示す。また、その8個のデータでヒストグラムを右下に示す。
8ppiへと変換した1次元データ(左図)、そのヒストグラム(右図)
 右のヒストグラムを見ると8ppiに直した段階でもまだばらつきがあることがわかる。110-135位の間でばらついている。中心値128のデータにして振れが25程度ということは、シグナルに対して20%弱のノイズが発生していることになる。8ppiでシグナルに対して20%程度の揺れがあれば、人間が認識してしまう領域だろう。これは2項分布という偏りを導入した結果である。256個で平均してみてもこれほど偏りが残っている。

 すると、2048dpiの(1/2の確率で2値化された)データというものは、今回の目的である「ムラを感じないための条件」を満たしていないということになる。ここでは画像に例えているが、別に画像だけの話ではない。

 それでは、いくつか条件を振ってみたい。各々の条件下で示すグラフの領域は以下を示す。

図の領域の説明
オリジナルの1次元データ左のヒストグラム。条件違いで軸が揃ってないのに注意。
8ppiに変換したもの
Y軸はいずれも相対値であることに注意。Max=256と読み直す。
左のヒストグラム
X軸はいずれも相対値であることに注意。Max=256と読み直す。
2048dpi
オリジナルの1次元データ左のヒストグラム
8ppiに変換したもの左のヒストグラム
 これでは、ばらついている。
4096dpi
オリジナルの1次元データ左のヒストグラム
8ppiに変換したもの左のヒストグラム
 512個で平均している。かなり、平滑になった。
8192dpi
オリジナルの1次元データ左のヒストグラム
8ppiに変換したもの左のヒストグラム
 どうだろうか。まだ、十分ではないかもしれないが、最初に比べればずいぶんと良いのが判ると思う。2項分布の分布がシャープになるためである。1024個で平均をとってやっとこの程度のばらつきになる。ここでは、全て8ppiで評価しているが、本来もっと高い周波数で評価すべきだろう。その時にはオリジナル画像は8192dpiでは不十分だろう。なお、オリジナルの1次元データのヒストグラムの鉛直軸が揃っていなので、一見データ数が増えてもヒストグラムが変化していないように見えるが、きちんと見てみると(数字ラベルが変な風にずれていて見にくいが...)データ数が多い方がヒストグラムがフラットなのがわかる。


 上の右下で出ているようなヒストグラムが2項分布であることは、サンプルを多く(しかし、試行回数を少なく)すればよくわかる。例えば、このようになる。

 関係ないが、この時に使った40960個のオリジナルデータのヒストグラムが以下である。かなりフラットである。このヒストグラムの軸を揃えるのを忘れたのは要反省だ。見にくいが、鉛直軸は140-200の領域になっている。



 今回の話はあることの前準備なので、これだけでは話しが全く見えないかもしれない。というわけで、

続く...

1999-01-10[n年前へ]

宇宙人はどこにいる? 

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

 知人から「自称UFO写真」というのものが冗談半分(いや100%位か)で送られてきた。その写真はボケボケの画像なので何がなんだかなんだかわからない。そこで、ぼけぼけ画像を復元する方法を勉強してみたい。UFOは冗談として、画像復元において進んでいるのは天文分野である。そこで、このようなタイトルなのである。もちろん、画像復元の問題は奥が深すぎるので、じっくりと時間をかけてみる。今回はMathematicaを使って試行錯誤を行った。

 ボケ画像を復元するには、ボケ画像がどのように出来ているかを考えなければならない。そこで、ごく単純なぼけ画像を考えてみる。まずは以下の画像のような場合である。

左の点画像が右のようにボケる
画像:1
画像:2
 右の点画像が何らかの理由で右の画像のようにボケる場合だ。焦点のボケた写真などはこんな感じだろう。例えば、これはレンズの焦点合わせがおかしいカメラの画像だと思ってみる。そのカメラで風景を撮るとこのようになる。
本来、左のような風景がボケて右の写真のようになる。
画像:3
画像:4
 偶然、写真にカメラが写っているが、偶然である。別にそのカメラが焦点がボケボケといっているわけではない。今回、やりたいことは右上の写真(画像:4)を元に、左上の写真(画像:3)を復元したいということである。

 画像:1のような点画像が、画像:2のような分布のボケ画像になるとすると、次のような関係が成り立つ。

(式:1) 画像:4 = 画像:3 * 画像:2

画像:1のような点画像が画像:2になるなら、それを参照すれば、画像:3のような点画像の集合がどう
ボケるかは計算できる。つまり、それが画像:4になる。ここで、*はコンボリューションを表している。
 よくある信号処理の話で言えば、画像:2はインパルス応答である。といっても、これはごくごく単純な場合(線形シフトインバリアントとかいろいろ条件がある)の話である。まずはそういう簡単な場合から始めてみる。

 このようなごく単純な場合には

(式:2) 画像:3 = 画像:4 * (1/画像:2)

とすれば、画像:3を復元できることになる。

そこで、まずは単純な1次元データで考える。下の画像:5のようにボケる場合を考える。ここでは、ガウス分布にボケるようにしてある。

赤い線で表したパルスデータが水色で表した分布にボケる
画像:5
(式:1より) ボケ画像 = オリジナル画像 * ボケ具合
であったが、* すなわち、コンボリューションは
逆フーリエ変換(フーリエ変換(オリジナル画像) x フーリエ変換(ボケ具合))
と表すことができる。つまり、周波数領域で掛け算をすれば良いわけである。
左がボケ画像、右がその周波数領域(フーリエ変換)
画像:6
画像:7
 右のボケ画像の周波数表示を見れば低周波数の量が多いのがわかる。結局、このモデルではボケると低周波数を増やすことになる。逆に(式:2)では高周波数の量を増やすことに相当する。だから、Photoshopなどの「シャープ」というプラグインはラプラシアンを用いて、高周波を増やしてやることでボケ低減を行っている。それほど、不自然ではない。しかし、そう近い画像復元ができるわけでもない。

 それでは、試しに適当な1次元データをつくって、画像:6とコンボリューションをとってやり、ボケさせてみる。

左が原画像、右が画像:6と画像:8のコンボリューションをとったボケ画像
画像:8
画像:9
 画像:8のパルスデータは、画像:9ではボケてしまい、判別不能である。そこで、

逆フーリエ変換(フーリエ変換(画像:9) / フーリエ変換(画像:7))

= InverseFourier[Fourier[Image8] / Fourier[Image6]]; (*Mathematica*)

とやると、次のデータが得られる。

復元されたデータ
画像:10
 これがインバースフィルターによる画像復元の方法である。FIR(Finite InpulseResponse)フィルタなどだろう。ところで、

(式:2) 画像:3 = 画像:4 * (1/画像:2)

を見るとわかるが、画像:2が周波数領域で0になる点があったりすると、計算することができない。また、0に近いとむやみな高周波数の増幅が行われて使えない。

 そこで、この方法の修正として、ウィーナフィルターなどの最小平均自乗誤差フィルターがある。これにも多くの不自然な条件のもとに計算される(らしい)。しかし、infoseek辺りで探した限りでは、ウィーナフィルターを用いた画像復元の標準であるらしい。

この方法は先の逆変換に対して、次のように変形されたものである。Mathematicaの表記をそのまま貼り付けたのでわかりにくいかもしれない。

Noise ノイズのパワースペクトル
Signal 信号のパワースペクトル
Boke ボケる様子のインパルス応答
Conjugate 複素共役
BokeData ボケ画像
ResData1 計算した復元画像

Boke1 = (Boke^2 + Noise/Signal)/Conjugate[Boke]; (*Mathematica*)
ResData1 = InverseFourier[Fourier[BokeData] / Fourier[Boke1]]; (*Mathematica*)

である。Noise/SignalはS/N比の逆数であるから、SN比の大きいところではインバースフィルターに近づく。また、インバースフィルターの計算不能な点が消えている。

 これを使って復元してみたのが、次のデータである。

ウィーナフィルターを用いた復元
画像:11
 他にも、いろいろ変形っぽいものがあるが、とりあえず、1次元での練習はここまでにして、2次元で画像復元を行ってみる。

 まずは、ボケのフィルター(PSF=PointSpreadFunction(どのようにボケるかを示すもの)、2次元のインパルス応答)である。

ボケのフィルター(インパルス応答)
画像:12
 それでは、画像をボケさせる。右のボケ画像が全体的に暗いのは左とレンジが表示の違うからである。同じレンジにすると真っ白(真ん中辺りはちょっと灰色)になる。
左がオリジナル画像、右はボケた画像
画像:13
画像:14
 それでは、インバースフィルターを用いて画像を復元させてみる。
復元した画像
 うまく再現できている。今回はノイズも混入していないしPSF(PointSpreadFunction)もわかっているのだから、復元できて当然である。他の射影フィルタ、最大エントロピー・フィルタ、一般逆行列法、SVD法等については今回はまだ挑戦してみていない。
 その他線形の画像復元法をいくつか調べたが、ウィーナフィルターやインバースフィルターとほとんど同じような物が(素人目には)多かった。そこで、ウィーナフィルタなどとはやり方がかなり異なるものについて、いずれ挑戦してみたい。

 関係はないが、ウィナーと言えばサイバネティクスが思い浮かんでしまう。当然、ロゲルギストが連想されるわけだが、文庫本か何かで岩波版と中公版の「物理の散歩道」が安く売り出されないのだろうか?売れると思うんだけど。新書版は高すぎる。

 宇宙人はどこにいるか? そういった話は専門家に聞いて欲しい。わからないとは思うが。

................................................................................

 さて、ここからは、1999.01.24に書いている。シンクロニシティとでも言うのか、今回の一週間後の1999.01.17に
日本テレビ系『特命リサーチ200X』で

地球外生命体は存在するのか?( http://www.ntv.co.jp/FERC/research/19990117/f0220.html )

という回があった。何とこの回のコメンテーターは先の専門家と同じなのだ。偶然とは面白いものだ。

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次元膜の例で、金属を配置し、適当に電位を印加し、電位・電荷量計算を行ってみる。

電位分布を表示したもの

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

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

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

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

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



■Powered by yagm.net