【发布时间】:2021-09-28 04:48:12
【问题描述】:
我在大学学习数字图像处理,现在我们正在做一项工作,我们必须将 RGB 值转换为 HSL,它必须等于 Microsoft Paint。完成实现后发现它不等于Paint,搜索发现他们没有使用[0-360]范围,作为通常的实现方式,而是[0-240]范围。
但即使阅读它,我也不知道为什么要这样做。
【问题讨论】:
-
因为一个字节(按照惯例)具有从 0 到 255 的值,并且在任何情况下只有 256 个值。将字节用于图像(对于每个通道)是内存效率高的。否则你将不得不使用双内存(两个字节,直到 65535 的值)。
-
并非没有先例。 OpenCV 将色调缩放到 0..180 的范围,360 度圆的分辨率为 2 度。实际上,考虑到日期,这可能不是先例——有人知道 “precedent” 的反义词吗?后续?
-
您不能在一个字节中存储大于 255 的值,因此必须重新缩放(存储在两个字节上将是不可接受的浪费)。
-
@PeterO。它确实回答了我的问题,但我认为 Giacomo 的答案更加完整,所以我应该将我的问题标记为重复,还是不? (我是新来的,所以我还不知道一切)
标签: image-processing colors hsl