我有一個類型爲TYPE_BYTE_GRAY的BufferedImage,我需要在x,y處獲取像素值。我知道我不能使用getRGB,因爲它返回錯誤的顏色模型,所以我該如何解決它?非常感謝!如何獲取灰度圖像中的像素值
回答
通過調用getData()
方法從BufferedImage
獲取java.awt.image.Raster
。
然後接收到的對象,其中b是顏色通道(其中每種顏色由8位表示)上使用
int getSample(int x, int y, int b)
。
對於灰度
b = 0.
對於RGB圖像
b = 0 ==>> R channel,
b = 1 ==>> G channel,
b = 2 ==>> B channel.
看過這些方法後,這看起來很可能是這樣做的。似乎int b是柵格的「帶」,我不太清楚這意味着什麼,並相信我已經在線觀看。我假設我有一個灰度圖像,它只有一個樂隊,因此我希望b等於0? – cherryduck
非常感謝你。我已經實現了它,我得到了更加理智的結果:-) – cherryduck
我想你要找的是數學獲得一個數字來表示在RGB的灰度等級,也有一些差異的方式,遵循其中的一些:
明度方法平均最(R,G,B)+ min(R,G,B))/ 2.
平均方法簡單地平均值:(R + G + B)/ 3 。
發光度法是一個更復雜的版本的平均 米ethod。它也對這些值進行平均,但它形成了加權平均值 以說明人類的看法。我們對綠色比其他顏色更敏感,所以綠色的權重最重。對於 光度的公式是0.21 R + 0.71 G + 0.07 B.
參考:http://www.johndcook.com/blog/2009/08/24/algorithms-convert-color-grayscale/
好的,謝謝,我會研究一下。無論如何,當我的圖像在灰度上已經顯示時,必定有一種簡單的方法可以直接從圖像中獲取像素值? – cherryduck
只要有一個名爲grayImg其類型是TYPE_BYTE_GRAY
int width = grayImg.getWidth();
int height = grayImg.getHeight();
byte[] dstBuff = ((DataBufferByte) grayImg.getRaster().getDataBuffer()).getData();
然後BufferedImage的在(x中的灰度值,y)簡單地說就是:
dstBuff[x+y*width] & 0xFF;
- 1. 如何從灰度圖像中獲取像素的灰度值xCode
- 2. 從二進制圖像獲取灰度圖像的像素值
- 3. BufferedImage - 獲取灰度彩色模型圖像中像素的值
- 4. OpenCV - 從圖像中獲取灰度值
- 5. 獲取灰度或黑白圖像的每個像素的像素值?
- 6. 灰度圖像中像素的質心
- 7. 如何獲取圖像中像素的顏色(加載灰色)?
- 8. 如何返回灰度圖像的最大像素值
- 9. PROCESSING:獲得灰度圖像的像素值
- 10. PHP:獲取像素的灰度級(圖像)
- 11. 如何使用YUV圖像獲取灰度圖像Pygame
- 12. 如何使用Opencv 2.3從灰度圖像更改像素值?
- 13. 如何將灰度圖像轉換爲像素值列表?
- 14. 獲得像素值灰度圖像16位.net
- 15. 更改圖像像素的灰度級
- 16. 如何濾除圖像中的所有灰度像素?
- 17. 標記灰度圖像中的特定像素值
- 18. 訪問OpenCV中灰度圖像的像素值
- 19. 獲取圖像中的像素值
- 20. 如何獲得灰度圖像,像素矩陣值內[0-255]範圍蟒蛇
- 21. 如何獲得java中的圖像的每個像素的灰度級
- 22. OpenCV Emgu - 如何設置灰度圖像像素強度
- 23. 從矩陣獲得不同的灰度值(灰度級圖像)
- 24. 從8位灰度圖像中擷取像素
- 25. 灰度CMYK像素
- 26. 灰度圖像
- 27. 如何獲取圖像中每個像素的強度。我想計算圖像中更高強度的像素
- 28. 獲取圖像中所有像素的強度值
- 29. MATLAB:如何灰度圖像序列的像素「色」?
- 30. 圖像爲16bpp時,從位圖獲取彩色圖像灰度
你是什麼意思getRGB返回錯誤的顏色模型?什麼是回報它? –