OpenCV: a gravação muda os valores dos pixels dos canais ao salvar
Estou lendo uma imagem e processando no canal azul sem alterar os canais vermelho e verde.
Quando terminei de processar o canal azul, juntei novamente os três canais em uma imagem RGB. e quando eu uso o imshow para visualizar os canais, tudo fica bem e posso ver que as alterações que fiz apenas afetam o canal azul e não afetam o vermelho nem o verde.
Até este ponto, tudo está bem!
Mas quando eu salvo a imagem usando a gravação, a imagem resultante é um pouco diferente, pois as alterações feitas no canal azul parecem propagadas para os canais vermelho e verde, é como se a gravação estivesse fazendo algum tipo de média entre os três canais:
image = imread('image.jpg', IMREAD_COLOR);
split(image, channels);
// Create some changes on channels[0]
merge(channels, 3, image);
// Up to this point every thing is alright
imwrite("modified.jpg", image); // Image changes when written;
Existe alguma solução para evitar esse comportamento?