use*_*671 13 c++ opencv gradient image-processing
目前我很难想到一种从我收到的图像中去除渐变的好方法.
图像是由显微镜相机拍摄的照片,中间有一盏眩光.图像具有贯穿整个图像的图案.但是我应该去除相机灯产生的图像上的强光.
不幸的是,由于相机的性质,不可能在黑色背景上拍照以找到渐变分布.我也没有没有渐变的比较图像.(注意 - 拍摄照片时,强光的位置始终是一致的)
更简单的说它就像有一张带闪光灯的照片,但我想摆脱闪光灯.唯一的问题是我没有办法获得没有闪光灯的图像来比较甚至只用闪光灯获得黑色图像.
我目前的想法是进行边缘检测并在远离边缘的特定位置获得样本(由于色差)并使用它来测量梯度的分布,因为这些区域应该具有相对相同的颜色.但是,我想知道是否有更简单,更好的方法来做到这一点.
如果需要,我稍后会发布图像的示例.
目前我更倾向于使用opencv在c ++中解决这个问题,如果这样可以更容易.
在此先感谢您对此问题的任何可能的想法.如果有其他链接,教程或帖子可以解决我的问题,我将非常感谢这篇文章.

正如你可以看出的那样,从白点可以看出,有一盏灯在img上闪耀.由于光线的作用,顶部比底部更轻,当图片以彩色拍摄时,椭圆内部的颜色实际上是不同的.但是盒子和椭圆之间的颜色应该是一致的.我最初的想法是,可能只对这些区域进行一些如何采样并建立一个我可以用来消除光线的轮廓,但我不确定它会有多么有效或者有更好的方法
编辑:
好吧,我尝试了罗杰的建议,结果非常好.使用110内核高斯模糊器找到照明并在其上进行CLAHE.(都是在opencv中完成的)
然而,我的同事告诉我,图像看起来并不完全均匀,并指出过去光线周围的区域略微更亮.他建议尝试选择性高斯模糊,其中高于某些阈值像素值的区域不会模糊而图像的其余部分模糊.
有没有人对此有意见,也许有链接,教程或类似这样的例子?我发现的大部分内容往往是像photoshop和gimp这样的程序选择性模糊
编辑2:

只用眼睛很难说,但我相信我已经通过使用简单的平面拟合算法实现了相对接近的均匀化.(( - A*x - B*y)/ C)(x,y,z)其中z是像素值.我认为这可以通过利用正弦拟合函数来改善吗?我不确定.但我对结果比较满意.非常感谢Roger的伟大创意.
我相信使用一堆图片并获得平均值将是另一种好方法(由罗杰建议)但是Unofruntely我无法实现这个,因为我没有提供各种图片,机器正在修改,所以我无法使用它.
| 归档时间: |
|
| 查看次数: |
3654 次 |
| 最近记录: |