2016-07-18 51 views
-1

画像処理が初めてです。私は黒と白の画像のピクセル値を取得しようとしています。私はここで検索しましたが、それについて正しい方法を見つけることができません。私はRGB値について多くのポストを見ましたが、M x N x 1の配列であると信じる特に白黒の値を持つサンプルを探しています。私はこれがjavaでどのように達成できるのだろうと思っていました。Javaで白黒画像のピクセル値を取得する方法

+0

RGB値に問題がありますか?黒は 'rgb(0,0,0)'、白は 'rgb(255,255,255)'です。 – c0der

+1

StackOverflowに関する質問をする前に、このセクションをお読みください:http://stackoverflow.com/help/mcveあなたの質問はあまりにもあいまいで、編集せずに答えることはできません。 – Farside

答えて

0

RGB値で白黒を表現できます。黒の場合はrgb(0,0,0)、灰色の場合はrgb(255,255,255)です。rgb(240,240,240)、rgb(128,128,128)etcです。

色をグレースケールに変換する場合は、postを参照してください。

+1

コメントなしの投票はそれほど役に立ちません。 – c0der

0

通常、Javaでは、イメージを表すためにBufferedImageを使用します。 BufferedImageには、長さWidth x Height X Channels(イメージの大きさ)の1次元配列が含まれます。ピクセル値にアクセスするには、実際に簡単な解決策は、ラスタを使用することである。

BufferedImage image = ... // A gray level or binary image 
WritableRaster wr = image.getRaster() ; 
for (int y=0 ; y < image.getHeight() ; y++) 
    for (int x=0 ; x < image.getWidth() ; x++) 
     int pixelvalue = wr.setSample(x, y, 0) ; 

画素値は、画像符号化(image.getType())に応じて異なる範囲であろう。

  • TYPE_BYTE_BINARY範囲= [0,1]、黒= 0と白= 1
  • TYPE_BYTE_GRAY、範囲= [0,255]、黒= 0と白= 255
  • TYPE_USHORT_GRAY、範囲= [0から65535]、黒= 0、白= 65535。

ピクセルにアクセスする最も速い方法は、DataBufferを使用することですが、もう少し複雑です。

+0

なぜ投票が遅れますか?コメントが役に立ちます! – FiReTiTi

関連する問題