【问题标题】:HSV image different from rgb imageHSV 图像不同于 rgb 图像
【发布时间】:2016-08-24 17:16:49
【问题描述】:

函数cv2.cvtColor(img, cv2.COLOR_RGB2HSV)将RGB图像转换为HSV图像。

当我保存此图像并使用图像查看器打开它时,为什么它在视觉上与 RGB 图像不同?

RGB

HSV

【问题讨论】:

  • 观众可能忽略了色彩空间是 HSV 的事实,并假设为 RGB。然后它将 H 通道显示为红色等...
  • opencv 假定 imwrite 和 imshow 中的 bgr 图像,并将处理任何 3 通道 mat,就好像它是 BGR 一样
  • @Micka 如果是这样的话,个别范围(g(0 - 255),s(0 - 360))不会干扰或导致一些错误
  • 在 opencv 中,色调通道减少到 0..180(半色调)以适应 1 个字节。饱和度和值分别为 0..255
  • 请注意 cv2.cvtColor(img, cv2.COLOR_RGB2HSV) 如果你没有手动转换成 RGB 会出错,因为通常颜色空间是 BGR 所以你应该使用 cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

标签: opencv computer-vision rgb hsv


【解决方案1】:

opencv 在 imwrite 和 imshow 中假设 BGR 图像,并将处理任何 3 通道 mat,就好像它是 BGR。因此,当我们保存或显示图像时,它将 HSV 矩阵作为 BGR 处理。 现在,对于观看者,我们的眼睛习惯于将像素识别为 RGB,因此将 H 通道解释为红色,将 S 通道解释为绿色,将 V 通道解释为蓝色。 Micka 在 cmets 中解释得很漂亮。

【讨论】:

    猜你喜欢
    • 2010-12-14
    • 2011-02-06
    • 1970-01-01
    • 2011-12-29
    • 1970-01-01
    • 2018-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多