How to | 画像オブジェクトを作成する方法
画像は,重要な標準データ構造であり,Wolframシステムのフロントエンドとカーネルに堅く統合されている.画像オブジェクトは,サポートされている画像ファイル形式の任意ファイルをインポートする際にデフォルトで作成される.しかし,画像式の構造と特性についての基本的な知識がある程度あれば,画像オブジェクトを直接作成することも可能である.
画像オブジェクトを作成する最も簡単な方法はImageで0から1までの範囲の実数値の行列の周りを囲むという方法である:
i = Image[{{0., 1.}, {1., 0.4}}]便利なことに,この小さい2×2の画像は実際の大きさよりも大きく表示される.これはフロントエンドの自動機能である.画像を作成する際にWolfram言語はいくつか推定を行い,画像の特性のいくつかに対して自動的に値を選択する.
この自動設定を確かめるためには,画像のOptionsをチェックする:
Options[i]グレースケールの画像を明示的にColorSpaceを指定することによって作成する:
i = Image[{{0., 1.}, {1., 0.4}}, ColorSpace -> "Grayscale"]これでColorSpaceが明示的な設定を反映するようになった:
Options[i]RGBカラーの画像は3つ1組の実数値か整数値の長方形配列によって定義される.このような構造を持つデータはすべて色画像として見ることができる.
Tuplesを使って原色と二次色に関連する3つ1組の値を作成する:
tu = Tuples[{0, 1}, 3]Partitionを使ってリストを4列にする:
arr = Partition[tu, 4]Imageを使って色画像を作成する:
i = Image[arr, ColorSpace -> "RGB"]InputForm[i]ImageDataを使って画素の値の配列を抽出する.デフォルトでImageDataは,色の値の2D配列を0から1の範囲の実数として返す:
ImageData[i]生の画像データを行列のリスト(それぞれの色チャンネルに対して1つ)として見たい場合もあるかもしれない.InterleavingをFalseに設定して画像データをこの形式に変換する:
ImageData[i, Interleaving -> False]任意の行列,あるいは同じ次元の2つ以上の行列のリストを使って新しい画像を作成することができる.余弦関数をサンプリングし,Imageを使ってデータから波形の画像を作成する:
imgA = Image[Table[Cos[2(x - π)^2 + (y - π)^2], {x, 0, 2π, .05}, {y, 0, 2π, .05}]]RGBカラーの画像を3つのそのようなパターン(それぞれの色チャンネルについて1つ)を組み合せることによって作成することができる.まずMapを使って3つの異なる関数のリストのリストについてサンプリング計算を繰り返すことによって,データを生成する:
tmp = Map[Table[#, {x, 0, 2π, .05}, {y, 0, 2 π, .05}]&, {Sin[x^2 + y^2], Cos[2(x - π)^2 + (y - π)^2], Sin[(x - 2π)^2 + (y - 2π)^2]}];Image[tmp, ColorSpace -> "RGB", Interleaving -> False]もう1つの方法として,3つのグレースケール画像のリストを組み合せることによってRGB画像を形成するということも可能である.
MapをImageと一緒に使って,tmpのそれぞれのサンプリングの計算からグレースケール画像を生成する:
Map[Image, tmp]今度はColorCombineをグレースケール画像のリストと一緒に使って,RGB画像を作成する:
ColorCombine[%]