2016-12-14 24 views
0

2次元配列を、scipy.miscを使用してpythonで画像に変換したい。私はこのコードでは2次元配列をPythonのループでRGB画像に変換する

import numpy as np 
from scipy.misc import toimage, imsave 

L = 20  # one side of lattice 
N = L*L  # number of sites in the lattice 
xs = np.zeros((L,L), float) 

x = [] 
for n in range(100): 
    for i in range(L): 
     for j in range(L): 
      xs[i,j] = np.random.uniform(0.1, 0.9) 
      x.append(xs) 

を達成するために何をしたいの例を以下に示し、各n値のために、私は私がリストxに格納していXSの2次元配列を取得します。 xの各nに対して2D配列xsを格納する代わりに、どのようにして0.1から0.9までのxの各値が異なる色で表されるかをカラーRGBイメージに変換できますか?

+0

これを行うには、変換テーブル(多分LUT)が必要です。どのように変換を行うふりをしますか?たとえば、 'xs = 0.3'を持っていれば、RGB値に対応しますか? – Jalo

+0

xs <0.5は青色に、xs> 0.5は赤色に対応します。私は前にそのような変換をしたことはありません。または、より低い値から高い値のxsのグラデーションを使用することができます – ajaydeep

+0

1D値を3D値に変換する無限の方法があります(グレイ画像からRGB画像への変換と同じです)。独自のメソッドをコーディングする場合、それはあなたの創造性に左右されます。そうでなければ、そのような機能を実装するライブラリを探す必要があります。はじめに、OpenCVライブラリのcv2.cvtColor()関数について読むことができます。 – Jalo

答えて

0
import numpy as np 
import matplotlib.pyplot as plt 

L = 20  # one side of lattice 
N = L*L  # number of sites in the lattice 
xs = np.zeros((L, L), float) 

for n in range(100): 
    for i in range(L): 
     for j in range(L): 
      xs[i,j] = np.random.uniform(0.1, 0.9) 
      plt.imshow(xs) 
plt.colorbar() 
plt.savefig('temp.png') 
関連する問題