簡體   English   中英

Java:拍攝圖像並將其變為帶有RGB的白色

[英]Java: Taking a Image and turning it into Black in White with RGB

因此,我正在為我的編程課程做一個小組項目,我們正在制作一個照片編輯程序,該程序的其中一部分是拍攝圖像,並使用rgb將其轉換為黑白圖像。 我想知道在RGB中實現黑白的最佳價值或方式是什么?

我建議讓Java 2D庫擔心轉換:

  • 創建一個灰度的BufferedImage(BufferedImage.TYPE_BYTE_GRAY);
  • 通過createGraphics()獲得圖形上下文
  • 確保在該圖形上下文上色彩渲染准確:調用setRenderingHint(RenderingHints.KEY_COLOR_RENDERING,RenderingHints.VALUE_COLOR_RENDER_QUALITY)
  • 繪制要“轉換”為圖形上下文的彩色圖像

如果您是“手動”進行轉換並且希望盡可能准確地進行轉換,則需要考慮到眼睛對某些顏色成分的敏感度要高於其他顏色。 (如果您要進行“粗糙且准備就緒”的轉換,可以對顏色分量進行平均,但這嚴格來講並不是最准確的轉換。)

對於每個像素,您可以將RGB轉換為HSB(使用Color.RGBtoHSB ),將飽和度設置為0,然后使用Color.getHSBColor轉換回Color實例。

實際上,一旦有了RGB顏色, Wikipedia就會很好地介紹如何執行轉換。

嘿,此頁面上有許多Java圖像過濾器可以免費下載。所有過濾器都是標准Java BufferedImageOps ,可以直接插入現有程序中GrayscaleFilter可以將圖像轉換為黑白圖像

java.awt.image.ColorConvertOp與灰色目標ColorSpace非常有效。 這里有一個很好的例子在這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM