如果两个颜色空间都看成是连续的空间,因为有相同的拓扑结构,不存在颜色丢失问题;
但是在整数空间,这个rgb2hsv和hsv2rgb并不是完全对等的转换。我做了一个实验:
>> I = rand(500,500,3);
>> I = I.*255;
>> I = uint8(I);
>> J = rgb2hsv(I);
>> JJ = hsv2rgb(J);
>> T = abs(double(I)-double(JJ));
>> sum(T(:));
ans =
9.5317e+007
>> max(T(:))
ans =
254
但是去掉语句
>> I = uint8(I);以后
得到的结果是:
>> sum(T(:))
ans =
7.0342e-009
>> max(T(:))
ans =
2.2737e-013
所以我觉得你在做这个问题的时候应该是用了整型在计算。