【问题标题】:Correct image for local dark / light spots, equalise luminance / intensity (local in location, not by dark/medium/light areas)修正局部暗点/亮点的图像,均衡亮度/强度(局部位置,而不是暗/中/亮区域)
【发布时间】:2013-09-26 18:25:41
【问题描述】:

所以我有一张有一些黑点的图像,它们看起来很简单,所以我想我可以创建一个亮度图,将其反转,然后将其应用于我的图像以消除黑点。但是,我能找到的只是两种均衡方法:均衡整个图像(使用直方图)或将图像分割为暗中和浅色部分并均衡你想要的。第一种方法对我的问题没有帮助,第二种方法也使图像中的黑暗物体更亮。我确信有一种简单的方法可以做到这一点(很久以前我看到有人在演示文稿中这样做),尽管我还没有找到或想出它。

所以我的问题是:我将如何创建这样的图像的“亮度图”:

所以我得到了这样的地图:

我可以反向应用以获得更好的图像,如下所示:

我知道我会在校正点处出现离散化错误,但这比黑点要好得多。我希望有人可以帮助我做到这一点,谢谢!

我主要使用 Matlab,并且对 python 和数学知识有一些有限的了解,但是一个 Matlab 示例对我来说最有用。我认为自己的一种方法是采用 fft2 并将低频归零,但这只会破坏所有对比度,而不仅仅是我想要的部分。

对我没有帮助的类似但不同的 SO 问题:

Image equalisation

thresholding an image based on gradient

Histogram of image

Matlab - Local Histogram Equalization

How to find out light, medium and dark color?

【问题讨论】:

标签: image-processing map histogram brightness


【解决方案1】:

您必须对黑点的性质进行非常精确的建模,才能使此过程起作用。你能描述暗梯度是线性的、指数的、幂的、三角函数还是其他一些可预测的函数?它总是完全是圆形的吗?

在照片中使用直线元素会有所帮助,并且可以提供样本来源来计算暗点的性质。如果您将暗点视为三维(X、Y、亮度)的二次或三次函数,则可以根据一定数量的已知点来解决它。

【讨论】:

  • 好吧,让我们从线性和完全圆形或直线渐变开始,这已经大大改善了我的形象。没有直线,但它们是连续的结构,在点的内部和外部应该具有大致相同的强度。
  • 好的,想象一下你的照片是一个 3D 高度图。在这个描述中,线性的圆形梯度是一个圆锥体,而线性的直线梯度是一个恒定的斜率。在图像中挑选出一些一致的特征,并标记它们在斑点中的变化。这些标记的位置(在 3d 空间中低于它们应有的位置,如果暗 = 低)和它们应位于的位置的差异将在您尝试计算的锥体或斜率的表面上提供样本点。斜率(平面)可以用其表面上的三个点来计算。我认为一个圆锥需要四个,但我可能记错了。
  • 啊,现在我明白为什么我的黑斑的精确模型如此重要了。谢谢这是一个有用的答案。如果没有更好的答案,我会接受。
猜你喜欢
  • 1970-01-01
  • 2012-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-19
  • 2020-01-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多