2016-07-18 75 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包含長度爲寬x高X通道(圖像尺寸)的一維數組。要訪問的像素值,一個非常簡單的解決方案是使用光柵:根據圖像編碼

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) ; 

pixelvalue將是在一個不同的範圍(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