第3章 Mathematicaでマルチメディア

1 画像処理

Mathematicaのデータの基本的構造の一つであるリストをもちいて、画像を数学的にいろいろ処理する方法を紹介する.

3次元グラフィックスの3つのコマンド(再録)

3multimedia_1.gif

3multimedia_2.gif

3multimedia_3.gif

それぞれのオプション(再録)

3multimedia_4.gif

3multimedia_5.gif

3multimedia_6.gif

3multimedia_7.gif

3次元リストを作成する(再録)

3multimedia_8.gif

3multimedia_9.gif

3multimedia_10.gif

3multimedia_11.gif

写真の取り込み

3multimedia_12.gif

上の画像がセルメニュー→形式変換→メタファイルであること確認し、この画像を別のセルへコピーする.そこで、セルメニュー→形式変換→ビットマップに変換.そして、InputFormを実行する。そして,次のように,2次元データのリストのみコピーし,okumaとする.

okuma={
{0.709804, 0.709804, 0.709804, 0.709804, 0.709804, 0.709804, 0.709804, 0.709804,
0.709804, 0.709804, 0.709804, 0.709804, 0.709804, 0.709804, 0.709804, 0.709804,
0.709804, 0.678431, 0.709804, 0.709804, 0.709804, 0.709804, 0.709804, 0.709804,
09804, 0.709804, 0.709804, 0.709804, 0.709804, 0.709804,           
中略
0.611765, 0.611765, 0.611765, 0.611765, 0.611765, 0.611765, 0.611765, 0.611765,
0.611765, 0.611765, 0.611765, 0.611765, 0.611765, 0.611765, 0.611765, 0.611765,
0.611765, 0.611765, 0.611765, 0.611765, 0.611765, 0.611765, 0.611765}};

画像データの配列数を求めると、

In[3]:=

3multimedia_13.gif

画像の再構成と加工

世の中には,画像処理ソフトウエアがあるが,ここではもとのデ-タをもとに数学的に処理する.使う関数はみなお馴染みのものである.

In[4]:=

3multimedia_14.gif

3multimedia_15.gif

Out[4]=

3multimedia_16.gif

In[5]:=

3multimedia_17.gif

3multimedia_18.gif

Out[5]=

3multimedia_19.gif

In[6]:=

3multimedia_20.gif

3multimedia_21.gif

Out[6]=

3multimedia_22.gif

小数部分を切り捨てる.

In[10]:=

3multimedia_23.gif

In[8]:=

3multimedia_24.gif

3multimedia_25.gif

Out[8]=

3multimedia_26.gif

小数部分を切り上げる.

In[9]:=

3multimedia_27.gif

3multimedia_28.gif

Out[9]=

3multimedia_29.gif

データの補間(連続関数を作る)

今度は,画像デ-タから連続関数を作る.そうすることで,数学的に非常に扱いやすくなる.

In[11]:=

3multimedia_30.gif

Out[11]=

3multimedia_31.gif

In[12]:=

3multimedia_32.gif

ポイント数を落とす.

In[13]:=

3multimedia_33.gif

3multimedia_34.gif

Out[13]=

3multimedia_35.gif

回転させることもできる.

In[14]:=

3multimedia_36.gif

In[16]:=

3multimedia_37.gif

In[21]:=

3multimedia_38.gif

3multimedia_39.gif

Out[21]=

3multimedia_40.gif

In[19]:=

3multimedia_41.gif

3multimedia_42.gif

Out[19]=

3multimedia_43.gif

3次元化することも可能である.

In[22]:=

3multimedia_44.gif

3multimedia_45.gif

Out[22]=

3multimedia_46.gif

3multimedia_47.gif

2  サウンド機能

Mathematicaではサウンドを生成できる.基本的な操作はグラフィックスの扱いに似ている.

関数からサウンドを生成

まず正弦波の音.

In[23]:=

3multimedia_48.gif

3multimedia_49.gif

Out[23]=

3multimedia_50.gif

1オクターブ高くする.

In[24]:=

3multimedia_51.gif

3multimedia_52.gif

Out[24]=

3multimedia_53.gif

In[25]:=

3multimedia_54.gif

3multimedia_55.gif

Out[25]=

3multimedia_56.gif

In[26]:=

3multimedia_57.gif

3multimedia_58.gif

Out[26]=

3multimedia_59.gif

和音はリスト形式で生成させる.

In[27]:=

3multimedia_60.gif

3multimedia_61.gif

Out[27]=

3multimedia_62.gif

関数を変化させることで、複雑なサウンドが生成できる.

In[28]:=

3multimedia_63.gif

3multimedia_64.gif

Out[28]=

3multimedia_65.gif

ベッセル関数でのサウンドを聞いてみよう.

In[29]:=

3multimedia_66.gif

3multimedia_67.gif

Out[29]=

3multimedia_68.gif

In[30]:=

3multimedia_69.gif

3multimedia_70.gif

Out[30]=

3multimedia_71.gif

Table文で逐次的にサウンドを生成させる.

In[31]:=

3multimedia_72.gif

In[32]:=

3multimedia_73.gif

リストからサウンドを生成

円周率のサウンド

円周率をデ-タリストにしてサウンドにする.

In[33]:=

3multimedia_74.gif

In[34]:=

3multimedia_75.gif

3multimedia_76.gif

Out[34]=

3multimedia_77.gif

練習:自然対数の底のサウンドを作成しよう.

循環小数のサウンド

小数もデ-タリストにして,サウンドにする.

In[35]:=

3multimedia_78.gif

In[36]:=

3multimedia_79.gif

3multimedia_80.gif

Out[36]=

3multimedia_81.gif

In[37]:=

3multimedia_82.gif

In[38]:=

3multimedia_83.gif

3multimedia_84.gif

Out[38]=

3multimedia_85.gif

In[39]:=

3multimedia_86.gif

3multimedia_87.gif

Out[39]=

3multimedia_88.gif

Spikey Created with Wolfram Mathematica 7.0