gpt4 book ai didi

matlab - matlab 中 hsv 图像表示的范围是哪些?

转载 作者:太空宇宙 更新时间:2023-11-03 20:34:44 25 4
gpt4 key购买 nike

我必须比较从不同设备/位置拍摄的同一场景的多张图像。为此,我想量化颜色以消除由于设备和照明引起的一些颜色表示差异。如果我在 RGB 中工作,我知道 matlab 代表范围 [0 255] 中的每个 channel ,如果我在 YCbCr 中工作,我知道这三个范围是 [16 235] 和 [16 240],但如果我想在 HSV 中工作色彩空间我只知道用 rgb2hsv 转换我得到一个图像,其中每个 channel 都是双 channel ......但我不知道是否所有三个 channel 都使用了 0 和 1 之间的所有范围......所以我不能在没有这些信息的情况下进行量化。

最佳答案

Parag 基本上回答了你的问题,但如果你想要物理证明,你可以按照 chappjc 的建议去做,然后......自己试试吧!读取图像,使用 rgb2hsv 将其转换为 HSV,然后查看值的分布。例如,使用作为 MATLAB 系统路径一部分的 onion.png,尝试如下操作:

im = imread('onion.png');
out = rgb2hsv(im);
str = 'HSV';
for idx = 1 : 3
disp(['Range of ', str(idx)]);
disp([min(min(out(:,:,idx))) max(max(out(:,:,idx)))]);
end

以上代码将读取每个 channel 并显示每个 channel (色调、饱和度和值)的最小值和最大值。这是我得到的:

Range of H
0 0.9991

Range of S
0.0791 1.0000

Range of V
0.0824 1.0000

如您所见,值介于 [0,1] 之间。玩得开心!

关于matlab - matlab 中 hsv 图像表示的范围是哪些?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26537409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com