opencv - 亮度、YUV 或 HSL 使用哪种色彩空间?

标签 opencv image-processing computer-vision

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

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

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

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

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

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

编辑:

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

最佳答案

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

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

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

关于opencv - 亮度、YUV 或 HSL 使用哪种色彩空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50383180/

相关文章:

C++ OpenCV 读取 HaarCascades 减慢计算机速度

android - 以任何方式将 DroidCam 视频流式传输到 OpenCV Python

image-processing - 从源文件计算图像的高度和宽度

algorithm - 是否有可能从仿射注册中获得物体运动?

python - OpenCV inRange() 适用于 RGB 但不适用于 HSV 颜色空间

c++ - 如何在 c++/opencv 中组合 5 个矩阵

python - 在网络摄像头中捕捉人脸并实时显示到 flask 中

python - 如何找到二值图像的最低点?

image-processing - 用于 Clojure 图像合成的 DSL

python - 在背景图像上透明地堆叠图像