Criar Imagem com Tons de Cinza

Estou fazendo um trabalho para aplicar filtros em imagens que estão em escalas de cinza.

Tenho uma matriz com os pixels de uma imagem.
Aplico filtros na imagem, formando uma nova matriz de pixels.

Gostaria de desenhar essa nova matriz de pixels em um novo BufferedImage, porém ele tem somente o método setRgb() que usa os valores de azul, vermelho e verde. E eu só tenho o valor em escalas de cinza.

Como faço esse preenchimento?

RafaelViana,

De acordo com esse site, o lance não é tão complicado assim:

public static BufferedImage convertToGrayscale(BufferedImage source) { BufferedImageOp op = new ColorConvertOp( ColorSpace.getInstance(ColorSpace.CS_GRAY), null); return op.filter(source, null); }
Testa e nos diga se funcionou. Eu pensei que teria que setar o RGB!

Isso pega uma imagem colorida e transforma em escalas de cinza. Isso já faço no programa.

======

Deixa eu tentar explicar melhor o problema: Considerando uma imagem 3x3

A imagem colorida tem 3 tons em cada pixel (RGB)

VERDE VERMELHO AZUL
0 0 0 255 255 255 0 0 0
0 0 0 255 255 255 0 0 0
0 0 0 255 255 255 0 0 0

Juntando esses tons forma-se as cores da imagem, nesse caso formaria um quadrado vermelho.

Mas, quando converto para tons de cinza, passo a ter somente uma matriz com as tonalidades de cinza:

Faço a conversão desse modo [ 1/3 * (azul + vermelho + verde) ]

CINZA
85 85 85
85 85 85
85 85 85

Queria usar essa matriz para criar a imagem, mas não tenho mais os valores RGB originais.

Mesmo trabalhando em escalas de cinza eu deveria manter as tres matrizes RGB? E aplicar o filtro nas três? Para depois poder voltar a imagem.
Ou trabalho mesmo somente com uma matriz de tons de cinza?

Entendi. Valeu a explicação!

Você precisa da matriz original e da cinza? Eu não entendi essa parte do processo.
Você já praticamente sabe como fazer.

Cria duas matrizes então - a original e depois a partir da original, crie uma cinza. Assim você não perde nada.

Isso que eu não sei =) Não sei se preciso guardar os pixels RGB em escala de cinza
Vou fazer um teste mais tarde.

Isso eu já tenho: uma original e uma em cinza a partir da original.
Só que eu aplico um filtro de imagem na matriz em tons de cinza.
Modificado a matriz de cinza ( a original não é modificada )

Só que eu não sei como pegar esse tons de cinza e a partir deles criar uma nova imagem.

Estou pensando em aplicar o filtro na imagem colorida e depois converte-la para cinza. Mas, acredito que isso não seja o correto.