Photoshop中自动对比度功能背后的算法

4

我正在解决图像识别中的预处理问题。

到目前为止,我尝试过以下方法:

最近我将Photoshop的自动对比度功能与CLAHE进行了比较,结果发现自动对比度在灰度图像上效果非常出色。我很想了解这个功能背后的算法。

注意:我知道Photoshop是专有软件,其代码可能是闭源的。因此,任何改进CLAHE结果或其他算法的提示都会受到我的赞赏。


请添加“Photoshop”标签。 - Royi
我添加了,但后来又删除了,因为最多只允许5个标签,等一下我会在机器学习的位置上添加。 - Ravinder Payal
1个回答

2
虽然CLAHE算法本质上是局部的,但Photoshop的自动对比度可能是一种全局方法。
我认为它仅作用于图像的直方图,通过拉伸图像中的值图像归一化。例如,取RGB图像,对于每个通道,将其直方图拉伸如下(MATLAB代码):
for ii = 1:numChannels
    mOutputImage(:, :, ii) = (mOutputImage(:, :, ii) - max(max(mOutputImage(:, :, ii)))) ./ (max(max(mOutputImage(:, :, ii))) -  min(min(mOutputImage(:, :, ii))));
end

另一种方法可能是直方图均衡化

可能Photoshop正在进行更高级的操作。
也许像在YUV颜色空间中进行混合或使用更强大的方法,这些方法会查看直方图的百分位数。

但这是你应该尝试的方向。


+1,但需要更多信息,YUV色彩空间适用于彩色图像,我只需要灰度图像。 - Ravinder Payal
@RavinderPayal,对于灰度图像,您只有一个通道,因此只需执行上面所写的操作一次即可。 - Royi
好的,但请告诉我这行代码背后发生了什么: mOutputImage(:, :, ii) = (mOutputImage(:, :, ii) - max(max(mOutputImage(:, :, ii)))) ./ (max(max(mOutputImage(:, :, ii))) - min(min(mOutputImage(:, :, ii)))) - Ravinder Payal
1
你需要根据图像在 [imageMinValue, imageMaxValue] 范围内的相对位置来缩放每个值。也就是将图像直方图拉伸到纯黑和纯白。 - Royi
是的,它将创建一个纯黑白图像,通过使亮像素更亮和轻像素更轻来实现。 - Ravinder Payal
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接