如何使用 OpenCV 模仿 Photoshop 的自然饱和度滤镜?

信息处理 图像处理 计算机视觉 图片 opencv
2021-12-27 03:19:56

有人可以解释一下 Photoshopvibrance功能如何在 opencv c++ 中使用吗?这样我就可以在我的应用程序中重现相同的效果。这是振动文档

1个回答

Photoshop 中的自然饱和度是蒙版引导的饱和度。
这是什么意思?
这意味着我们只为蒙版标记的像素添加饱和度,而其他像素保持不变。
蒙版评估每个像素的原始饱和度水平。
如果像素高度饱和,那么当应用自然饱和度时,该像素将被排除。
即振动仅适用于饱和度较低的像素。

我们怎么能创造出这样的面具?
我们将每个像素从 RGB 颜色空间转换为 HSL(色相、饱和度、亮度)颜色空间。
然后我们只取所有像素的饱和度值并归一化到 [0, 1] 范围,其中 0 是不饱和像素,1 是完全饱和像素。

然后我们只对饱和度值较低的像素添加饱和度。

我不是 OpenCV 专家,但上面的内容应该很容易集成到 OpenCV 中(鉴于它具有RGB 到 HSL 转换,您可以使用 HSV 或 HLS)