c – 删除没有比较图像的图像的梯度

前端之家收集整理的这篇文章主要介绍了c – 删除没有比较图像的图像的梯度前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
目前,我很难想到从我收到的图像中删除渐变的一种很好的方法.

图像是由显微镜照相机拍摄的照片,中间有光线眩光.图像具有遍及图像的图案.但是,我应该去除由照相机灯创建的图像上的光线眩光.

不幸的是,由于相机的性质,不可能在黑色背景上拍摄照片以找到渐变分布.我也没有没有渐变的比较图像. (注意:拍摄照片时,光线眩光的位置总是一致的)

简单来说,它像一个有闪光灯的照片,但我想摆脱闪光灯.唯一的问题是我没有办法获得没有闪光灯的图像来比较甚至获得黑色图像,只需要闪光灯.

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

如果需要,我会稍后再发布一个图像的例子.

目前,我有一个喜欢在c使用opencv来解决这个问题,如果这样做更容易.

提前感谢这个问题的任何可能的想法.如果有另一个链接,教程或帖子可能会解决我的问题,我将非常感谢该帖子.

因为你可以告诉我们,从白色的地方可以看出有一个光线被照在img上.并且由于光的亮度,顶部比底部轻,当图像拍摄时,椭圆内的颜色实际上是不同的.然而,盒子和椭圆形之间的颜色应该是一致的.我最初的想法是,只能在这些地方采样一些如何和建立一个我可以利用的配置文件删除光,但我不确定这将是有效的,或者如果有更好的方式

编辑:

我试过罗杰的建议,结果是非常好的.使用110内核高斯模糊来查找照明并进行CLAHE. (都在opencv中完成)

不过,我的同事告诉我,这张照片看上去并不统一,并指出光线所在的地区稍微更亮一些.他建议尝试选择性高斯模糊,其中高于某些阈值像素值的区域不会模糊,而其余的图像模糊.

有人对此有任何意见,也许有一个链接,教程,或者像这样做的例子?大多数我发现的东西往往是像Photoshop和gimp这样的程序有选择性的模糊

编辑2:

(( – A * x-B * y)/ C)(x,y,z)其中z是像素值.我认为这可以通过利用正弦拟合函数来改善?我不确定但我对结果比较满意.非常感谢罗杰的伟大想法.

我相信使用一堆照片和获得平均水平将是另一个很好的方法(由罗杰建议),但Unofruntely我无法实现这一点,因为我没有提供各种图片,机器正在修改,所以我无法使用它.

解决方法

我以前在这方面做了一些工作,发现一个大的高斯模糊核可以产生一个合理的近似背景照明.我会尝试找到你的示例图像的工作,但同时,这里是一个例子,您的图像高斯模糊后半径50像素,这可以帮助您决定是否值得进步.

UPDATE

只要使用这个图像,你可以使用自适应直方图均衡(我使用CLAHE)实际上得到一个合理的改进 – 参见下面的比较 – 任何用途?

我会在进步的时候更新这个答案.

猜你在找的C&C++相关文章