【问题标题】:remove gradient of a image without a comparison image在没有比较图像的情况下去除图像的梯度
【发布时间】:2013-07-28 15:43:05
【问题描述】:

目前我很难想出一种从我收到的图像中去除梯度的好方法。

图像是由显微镜相机拍摄的照片,中间有眩光。图像具有贯穿整个图像的图案。但是,我应该消除相机灯创建的图像上的眩光。

很遗憾,由于相机的特性,无法在光线下拍摄黑色背景的照片以找到渐变分布。我也没有没有渐变的比较图像。 (注意——拍照时眩光的位置总是一致的)

简单来说,它就像一张带有闪光灯的照片,但我想摆脱闪光灯。唯一的问题是我无法获得没有闪光灯的图像来比较甚至获得只有闪光灯的黑色图像。

我目前的想法是进行边缘检测并在远离边缘的特定位置获取样本(由于颜色差异),并使用它来衡量梯度的分布,因为这些区域应该具有相对相同的颜色。但是我想知道是否有更简单和更好的方法来做到这一点。

如果需要,我稍后会发布图片示例。

目前我更喜欢使用 opencv 在 c++ 中解决这个问题,如果这样更容易的话。

提前感谢您对此问题的任何可能的想法。如果有其他链接、教程或帖子可以解决我的问题,我将不胜感激。

您可以看出,从白点可以看出,img 上有一盏灯正在发光。并且由于光线的原因,顶部比底部浅,椭圆形内部的颜色实际上在彩色照片中有所不同。然而,盒子和椭圆之间的颜色应该是一致的。我最初的想法可能是仅对这些区域进行一些采样,并构建一个我可以用来移除光线的配置文件,但我不确定这会有多有效,或者是否有更好的方法

编辑:

我尝试了 Roger 的建议,结果非常好。使用 110 核高斯模糊器来寻找照明并在此基础上进行 CLAHE。 (都在opencv中完成)

然而,我的同事告诉我,图像看起来并不完全一致,并指出过去光线所在的区域周围稍微亮一些。他建议尝试选择性高斯模糊,其中高于特定阈值像素值的区域不模糊,而图像的其余部分则模糊。

有没有人对此有意见,也许有链接、教程或类似的例子?对于 Photoshop 和 gimp 等程序,我发现的大多数东西往往是选择性模糊

EDIT2:

仅凭眼睛很难分辨,但我相信通过使用简单的平面拟合算法,我已经实现了相对接近的均匀化。((-A * x - B * y) / C) (x,y,z) 其中z 是像素值。我认为这可以通过利用正弦拟合函数来改善?我不确定。但我对结果比较满意。非常感谢罗杰的好主意。

我相信使用一堆图片并获取平均值将是另一种好方法(由 roger 建议)但我无法实现这一点,因为我没有提供各种图片并且机器正在修改所以我无法使用它。

【问题讨论】:

  • 您可以尝试使用具有非常大内核的高斯模糊来将图像转换为背景渐变的近似值。不看图很难说。
  • 模糊分布是否足够有效,可以在整个 img 中完全创建均匀的亮度分布?
  • 我非常喜欢这个问题及其答案。一个月前我发布了一个类似的问题(stackoverflow.com/questions/19035835/…),但这里的答案要好得多。
  • 如果您使用一张漫射纸拍摄图像,然后稍微模糊它以去除纸上的伪影,它将为您提供照明的大致基本事实。然后,您可以使用 MOG2 等背景减法将其删除,将 learnRate 设置为 0。

标签: c++ opencv image-processing gradient


【解决方案1】:

我之前在这方面做过一些工作,发现一个大的高斯模糊核可以对背景照明产生合理的近似。我将尝试对您的示例图像进行一些处理,但与此同时,这是您的图像在半径为 50 像素的高斯模糊后的示例,它可以帮助您确定是否值得继续。

更新

仅仅使用这张图片,您实际上可以使用自适应直方图均衡化获得合理的改进(我使用了CLAHE) - 参见下面的比较 - 有什么用吗?

随着我的进展,我将更新此答案并提供更多详细信息。

【讨论】:

  • 感谢您提供此信息。我明天试试这个,看看效果如何。但是关于模糊器的大小不是最好让高斯模糊器尽可能大吗?还是有某个最佳值的最佳点?
  • @user2427671 确实有点反复试验,对于您的图像,60px 半径可能会更好,尽管您可能需要使用例如增强渐变。对比拉伸,否则你会把它浇水太多。它还取决于您用于导出背景配置文件的算法。现在时间不多了,很快就会回复您!
  • @user2427671 添加了一个可能的替代方案(CLAHE)来回答。评论?
  • 好吧,我肯定认为这是一种改进,但我认为我仍然应该让白点不明显。这应该是运行一堆算法来寻找图像中的微观缺陷之前的预处理步骤。 (对不起,我现在在韩国,反应迟钝)也许在 CLAHE 之后可以做些什么来达到完美的统一性?
  • 顺便说一句,对于您使用 CLAHE 的示例,您将阈值限制设置为什么?
【解决方案2】:

我想向您指出这篇论文:http://www.cs.berkeley.edu/~ravir/dirtylens.pdf,但是,在我看来,如果没有先验拍摄任何类型的校准/比较图像,很难从耀斑图像中挖掘出基本事实。

但是,如果您试图只呈现图像减去镜头光晕,而忽略光晕部分背后的实际科学数据,那么您将切换到图像修复领域。 Criminsi 的算法,如本文所述:http://research.microsoft.com/pubs/67276/criminisi_tip2004.pdf 并在这两个链接中解释/简化:http://cs.brown.edu/courses/csci1950-g/results/final/eboswort/http://www.cc.gatech.edu/~sooraj/inpainting/,将在将纹理信息恢复到爆发区域方面做得很好。 (如果您真的想采用这种方法,请务必提及。可以为此提供更全面的帮助)。

但是,鉴于我们处理的是微观数据,我怀疑您是否愿意丢失图像特定区域中包含的科学数据。在这种情况下,我真的认为您需要找到一种解决方法来确定您正在使用的镜头的闪光灯/光源的耀斑模型。

我希望其他人可以对此有所了解。

【讨论】:

  • PS:请分享图片。
  • 不幸的是,我无法从 img 中裁剪任何内容。我必须保持一切完好并移除人工照明
猜你喜欢
  • 1970-01-01
  • 2019-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-15
  • 2018-01-18
  • 2020-12-04
  • 1970-01-01
相关资源
最近更新 更多