0
我想要將RGB圖像轉換爲HSV並最終返回gray_scale圖像。我已經得到了下面的代碼,以便讀取和轉換我的形象:在java中將RGB圖像轉換爲gray_scale HSV
BufferedImage lum = new BufferedImage(original.getWidth(), original.getHeight(), original.getType());
for(int i=0; i<original.getWidth(); i++) {
for(int j=0; j<original.getHeight(); j++) {
// Get pixels by R, G, B
alpha = new Color(original.getRGB(i, j)).getAlpha();
red = new Color(original.getRGB(i, j)).getRed();
green = new Color(original.getRGB(i, j)).getGreen();
blue = new Color(original.getRGB(i, j)).getBlue();
float[] hsv = Color.RGBtoHSB(red, green, blue, null);
int hue = (int) Math.round(360 * hsv[0]);
red = (int) (0.21 * red + 0.71 * green + 0.07 * blue);
// Return back to original format
newPixel = colorToRGB(alpha, red, red, red);
// Write pixels into image
lum.setRGB(i, j, hue);
}
}
return lum;
什麼都爲了返回HSV gray_scale形象呢?上述是否是正確的方式?
如果你只是轉換成灰度圖,爲什麼還要用HSV? –
我實際上對使用色調通道感興趣。 –
是否可以從計算出的hsv頻道創建一個bufferedimage?轉換後的過程。 –