2016-06-29 3 views
0

Javaで画像処理を学び始めていますが、私の質問は次のとおりです。グレースケール画像の値の配列を1つずつ(x、 y)の位置にある。画像は96x96です。 これらの値の例は次のとおりです。グレースケールの値のみをJavaで描画する画像

238 
236 
237 
238 
240 
240 
239 
241 
241 
243 
240 
239 
231 
212 
190 
173 
148 
122 
104 

私の質問は、どのように私はこれらのピクセル値を使用して、このイメージを描くことができますか?私がこれを尋ねる理由は、通常、元の画像を利用できるため、各ピクセルの赤、緑、青の成分値を抽出するためです。しかし、この場合には、私はこのような何かをしたい場合:私は、各ピクセルの赤、青、緑の値のためのコンポーネントを持っていないので、

// after for loop in which I do 
//Color newColor = new Color(red,green,blue); 
//image.setRGB(x,y,newColor.getRGB()); 

JFrame frame = new JFrame(); 
JLabel lblimage = new JLabel(new ImageIcon(image)); 
JPanel mainPanel = new JPanel(new BorderLayout()); 
mainPanel.add(lblimage); 

// add more components here 
frame.add(mainPanel); 
frame.setVisible(true); 

私はColorクラスを作成することはできません。

私は間違っていますか?たぶん私はコンセプトを誤解しているのではないかと心配しています。 ありがとうございます。

+0

インデントされたコードブロックは、FYIと同様に、マークダウンの前に改行が必要です。 –

答えて

2

グレースケールは、R、G、Bの3つの色成分がすべて同じであることを意味します。したがって、グレースケール値をカラーコンポーネントとして使用してください。

Color newColor = new Color(pixelValue[x][y], pixelValue[x][y], pixelValue[x][y]); 
image.setRGB(x, y, newColor.getRGB()); 
+0

ああ、ピクセルごとに1つの値しかないのはこのためです。ありがとうございました!私は試してみる –

+1

@ manuelmouratoピクセルをグレースケールに変換する方法はいくつかあります。 [ここにいくつかあります](http://www.johndcook.com/blog/2009/08/24/algorithms-convert-color-grayscale/) – 4castle

関連する問題