使用MATLAB,RGB转化为HSB(HSI)时有没有信息丢失?

2025-04-08 23:46:56
推荐回答(1个)
回答(1):

如果两个颜色空间都看成是连续的空间,因为有相同的拓扑结构,不存在颜色丢失问题;
但是在整数空间,这个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
所以我觉得你在做这个问题的时候应该是用了整型在计算。