13

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

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

不幸的是,由于相机的性质,不可能用光线在黑色背景上拍照来找到梯度分布。我也没有没有渐变的比较图像。(注意 - 拍摄照片时眩光的位置将始终保持一致)

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

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

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

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

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

在此处输入图像描述

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

编辑 :

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

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

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

编辑2:

在此处输入图像描述

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

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

4

2 回答 2

9

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

模糊

更新

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

克拉赫

随着我的进步,我会用更多的细节更新这个答案。

于 2013-07-29T08:42:11.837 回答
4

我想向您指出这篇论文: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/,将在将纹理信息恢复到爆发区域方面做得很好。(如果您真的想采用这种方法,请务必提及。可以为此提供更全面的帮助)。

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

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

于 2013-07-29T05:17:44.410 回答