图像处理 matlab HSI RGB 颜色失真

用Matlab对RGB图像的三颜色通道R,G,B个自做一些运算后得到R1,G1,B1,然后运行I1=cat(3, R1,G1,B1); I2=uint8(I1)得到的图像颜色很正常,而我先将RGB转换到HIS,对H,S,I三通道各自进行一些运算后,得到新的H1,S1,I1,再运行I3=cat(3, H1,S1,I1); I4=uint8(I3),再转换到RGB,I5= hsi2rgb(I4),得到的图片颜色失真。效果如我上传的这张一样,图片说明是我哪里出错了呢?求大神指点,先谢谢了!

看着有点糊涂,不过计算出错一般都是因为浮点数的原因吧。

最后自己调了一下程序,处理好了,谢谢各位了啊!