【问题标题】:Which Color Space to Use for Brightness, YUV or HSL?亮度、YUV 或 HSL 使用哪种色彩空间?
【发布时间】:2018-05-17 04:05:17
【问题描述】:

假设我们有一张在光线不足的情况下拍摄的照片。图像比平时更暗,但仍可识别。

现在我们想让它更亮,让它看起来像是在充足的光照条件下拍摄的。

我们应该将图像转换为 YUV 并调整 Y 通道(亮度),还是转换为 HSL 并调整 L 通道(亮度)?

措辞与我相似,而他们的公式却大不相同:

Y:0.299*R + 0.587*G + 0.114*B

L: 0.5*(max + min),而max/min是RGB中的最大值/最小值

编辑:

更具体地说,我将使用 opencv,cv2.cvtColor(),但不确定哪个输入参数更适合我的需要:BGR2YUV 或 BGR2HLS

【问题讨论】:

  • 这和编程有什么关系?什么都没有!
  • 这是图像处理,为什么不相关? @MitchWheat
  • 图像处理不是编程。您的问题在哪里存在编码问题?
  • @MitchWheat 我将使用 opencv,cv2.cvtColor(),但不确定哪个输入参数更适合我的需要:BGR2YUV 或 BGR2HLS
  • 但这不是你问的实际问题,现在是吗?

标签: opencv image-processing computer-vision


【解决方案1】:

仅调整 Y 和 L(在 YCbCr 和 HSL 中)会导致信息丢失,例如高像素值之间的对比度。我会建议在 Y 或 L 上使用一些仿射变换

255*(Y(x,y) - min(Y))/(max(Y) - min(Y))

或者最好是使用直方图均衡。它不仅可以提供明亮的图像,而且还具有更好的对比度,因此有利于可视化

【讨论】: