如何将rgb2hsv的结果(导致颜色值在0-1之间)输出为uint8图像



我想将2个RGB图像转换为HSV图像,然后计算两个图像之间的饱和度差,并将得到的图像输出为uint8图像。这是我尝试过的代码,但uint8将强度转换为1或0,从而基本上生成二进制图像。

inputImage = rgb2hsv(inputImage);
background = rgb2hsv(background);
sDiff = imabsdiff(background(:,:,2), inputImage(:,:,2));
sDiff = uint8(sDiff);
figure, imshow(sDiff, []);

不过它输出的是二进制图像。我试过了:

  gDiff = double(sDiff) * 255;

但是得到的强度要么是255,要么是0。

使用sDiff = uint8(sDiff.*256);将其转换为uint8格式的

最新更新