目前,我很难想出一种从我收到的图像中去除渐变的好方法。
该图像是由显微镜相机拍摄的照片,中间有眩光。图像具有贯穿整个图像的图案。但是,我应该消除相机灯创建的图像上的眩光。
不幸的是,由于相机的性质,不可能用光线在黑色背景上拍照来找到梯度分布。我也没有没有渐变的比较图像。(注意 - 拍摄照片时眩光的位置将始终保持一致)
用更简单的术语来说,它就像一张带有闪光灯的照片,但我想摆脱闪光灯。唯一的问题是我无法获得没有闪光灯的图像来比较甚至获得只有闪光灯的黑色图像。
我目前的想法是进行边缘检测并在远离边缘的特定位置获取样本(由于色差),并使用它来衡量梯度的分布,因为这些区域应该具有相对相同的颜色。但是我想知道是否有更简单和更好的方法来做到这一点。
如果需要,我稍后会发布图像示例。
目前,我更喜欢使用 opencv 在 c++ 中解决这个问题,如果这样更容易的话。
提前感谢您对这个问题的任何可能的想法。如果有其他链接、教程或帖子可以解决我的问题,我将不胜感激。
正如您所知道的,从白点可以看出,img 上有一盏灯正在发光。并且由于光线的原因,顶部比底部浅,当照片拍摄彩色时,椭圆形内部的颜色实际上是不同的。然而,盒子和椭圆之间的颜色应该是一致的。我最初的想法是也许只对那些区域进行一些采样,并建立一个我可以用来移除光线的配置文件,但我不确定这会有多有效,或者是否有更好的方法
编辑 :
好吧,我尝试了 Roger 的建议,结果非常好。使用 110 核高斯模糊器来寻找照明并在此基础上进行 CLAHE。(都在opencv中完成)
然而,我的同事告诉我,图像看起来并不完全一致,并指出过去光线所在的区域周围稍微亮一些。他建议尝试选择性高斯模糊,其中高于特定阈值像素值的区域不模糊,而图像的其余部分则模糊。
有没有人对此有意见,可能还有链接、教程或类似的例子?对于 Photoshop 和 gimp 等程序,我发现的大多数东西往往是选择性模糊的
编辑2:
仅凭眼睛很难分辨,但我相信我已经通过使用简单的平面拟合算法实现了相对接近的均匀化。((-A * x - B * y) / C) (x,y,z) 其中 z 是像素值。我认为这可以通过利用正弦拟合函数来改善?我不确定。但我对结果比较满意。非常感谢罗杰的好主意。
我相信使用一堆图片并获得平均值将是另一种好方法(由 roger 建议)但我无法实现这一点,因为我没有提供各种图片并且机器正在修改所以我无法使用它。