小编use*_*671的帖子

在没有比较图像的情况下移除图像的渐变

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

图像是由显微镜相机拍摄的照片,中间有一盏眩光.图像具有贯穿整个图像的图案.但是我应该去除相机灯产生的图像上的强光.

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

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

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

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

目前我更倾向于使用opencv在c ++中解决这个问题,如果这样可以更容易.

在此先感谢您对此问题的任何可能的想法.如果有其他链接,教程或帖子可以解决我的问题,我将非常感谢这篇文章.

在此输入图像描述

正如你可以看出的那样,从白点可以看出,有一盏灯在img上闪耀.由于光线的作用,顶部比底部更轻,当图片以彩色拍摄时,椭圆内部的颜色实际上是不同的.但是盒子和椭圆之间的颜色应该是一致的.我最初的想法是,可能只对这些区域进行一些如何采样并建立一个我可以用来消除光线的轮廓,但我不确定它会有多么有效或者有更好的方法

编辑:

好吧,我尝试了罗杰的建议,结果非常好.使用110内核高斯模糊器找到照明并在其上进行CLAHE.(都是在opencv中完成的)

在此输入图像描述 然而,我的同事告诉我,图像看起来并不完全均匀,并指出过去光线周围的区域略微更亮.他建议尝试选择性高斯模糊,其中高于某些阈值像素值的区域不会模糊而图像的其余部分模糊.

有没有人对此有意见,也许有链接,教程或类似这样的例子?我发现的大部分内容往往是像photoshop和gimp这样的程序选择性模糊

编辑2:

在此输入图像描述

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

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

c++ opencv gradient image-processing

13
推荐指数
1
解决办法
3654
查看次数

DLL LNK2019 错误(未解决的外部错误 __imp)

好吧,我基本上继承了一堆我被告知要修复的代码,因为它几个月前曾经可以工作,但现在不行。程序本身似乎充满了链接错误,我能够修复其中的一些错误。但是,我遇到了 LNK2019 未解决的外部 _ imp 错误,其中 main 中使用的某些功能未解决。由于“ _imp”,我假设这是与从 .dll 或 .lib 文件导入相关的问题。

首先,我有三个 .lib 文件,我相信它们可以正确地将它们导入到 VS2010 中,并且我已将平台配置为 64x。还有与 .lib 文件对应的 .dll 文件。包含这些错误缠身函数声明的 .h 文件包含类似

ILAPI void ILAPIENTRY ilDeleteImage(const ILuint Num);
Run Code Online (Sandbox Code Playgroud)

不幸的是,我猜测该定义是在 .dll 文件中定义的,该文件不是我自己写的,所以我不确定。但由于这是在我之前工作的代码,我相信我收到此错误是因为链接器找不到定义而不是 def/decl 不匹配的原因。

当我将鼠标悬停在 ILAPI 上时,它指出:“ILAPI __declspec(dllimport)” 我目前的猜测是程序导入了 .lib 文件,而 .lib 文件使用 .dll 文件来获取函数的定义。我相信我正在导入 .lib 文件,因为编译器不再一直告诉我它找不到特定的 .lib 文件。但是我担心它可能没有连接 .dll 文件。我有些不确定。我已经打开了 .lib 文件,并且 .lib 文件包含给出错误的函数的名称。我还使用了 Dependency walker 程序来查看我的 DLL 文件,它给了我以下一些错误:

错误:由于隐式依赖模块中缺少导出函数,至少有一个模块具有未解析的导入。

错误:找到具有不同 CPU 类型的模块。

根据其他人的评论,我觉得我可以忽略第二个错误。但我不确定第一个错误。我也不确定这是否是问题的根本原因。它可能是也可能不是。

我还使用 VS cmd 和依赖项walker 查看了 .lib 文件的内部,似乎找不到的函数的名称列在 .lib 和 .dll 之一中。

在配置方面,我在发布模式 x64 …

c++ dll unsatisfiedlinkerror

2
推荐指数
1
解决办法
9673
查看次数