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

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

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

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

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

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

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

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

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

编辑:

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

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

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

编辑2:

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

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

解决方法

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

UPDATE

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

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

c – 删除没有比较图像的图像的梯度的更多相关文章

  1. ios – 在自定义相机层的AVFoundation中自动对焦和自动曝光

    为AVFoundation定制图层相机创建精确的自动对焦和曝光的最佳方法是什么?

  2. ios – 如何将视频从AVAssetExportSession保存到相机胶卷?

    在此先感谢您的帮助.解决方法只需使用session.outputURL=…

  3. ios – 仅使用AVFoundation播放相机声音一次以获得多张图像或简单地以编程方式静音/抑制声音

    对于Question1,Question2,Question3,我在同一个平台上也有类似的问题.我使用AVFoundation捕获多个图像(5个图像–1.5秒的爆破模式),我可以成功捕获5个图像,但每次拍摄新图像时都会制作快门声.我正在为静态图像使用captureStillImageAsynchronouslyFromConnection.图像质量/清晰度是我的主要焦点,我不想妥协图像质量和图像捕

  4. ios – 全屏高斯模糊

    我想模糊我的iOS应用程序的整个屏幕,我不能使用UIBlurEffect,因为我希望能够控制模糊.所以我正在尝试使用CIGaussianBlur,但是我遇到了屏幕边缘的问题.我正在截取屏幕截图,然后通过带有CIGaussianBlur的CIFilter运行它,将CIImage转换回UIImage,并在屏幕顶部添加新的模糊图像.这是我的代码:这是我看到的:除边缘外,它看起来几乎是正确的.似乎模糊度从模糊半径到边缘起飞.我尝试使用上下文大小,但似乎无法使其工作.如何让模糊一直到边缘?

  5. ios – 根据UIView / CGRect的大小将图像裁剪成正方形

    我有AVCaptureSession的实现,我的目标是让用户拍摄照片,只将图像的一部分保存在红色方块边框内,如下图所示:AVCaptureSession的previewLayer(相机)从(0,0)(左上角)跨越到我的相机控制栏(位于包含快门的视图的正上方)的底部.我的导航栏和控制栏是半透明的,所以相机可以显示.我正在使用[captureSessionsetSessionPreset:AVCapt

  6. Ios在Xcode中创建简单的相机叠加如何?

    我应该使用什么类,我该怎么办?

  7. ios – SpriteKit:我应该平移相机还是移动背景?

    使用SpriteKit构建游戏时,使用平台游戏,是否最好将相机向上移动,或者将背景节点向下移动?其他框架的标准做法是什么?关于2D游戏引擎最令人费解的事情之一就是它通常需要一系列版本才能获得相机.他们应该和他们一起出生.SpriteKit也不例外,它需要永远拿到相机.现在它有一个,从来没有想过不使用它.会让你的生活变得简单一百万倍.我可以想到没有例外,但期待被证明是错误的.

  8. iOS保存照片到相机胶卷不会保留EXIF / GPS元数据

    编辑:我想我应该更具体一点.目的是将现有JPEG文件的副本保存到用户的相机胶卷中.最有效的方法是什么?

  9. 不同iOS相机的图像尺寸?

    我正在我的应用中创建一个功能,让人们可以在设备相机中拍照,并在拍摄的图像上方添加一个叠加层.我是通过将从相机接收的图像与其他叠加图像合并来实现的.我知道在iPhone4上,相机图像是1936x2592.所以我准备了相同尺寸的叠加图像.我想知道其他设备的图像尺寸是否不同?

  10. ios – 在iphone中减少相机/照片库图像文件大小不到100 KB

    缩小它:

随机推荐

  1. 从C到C#的zlib(如何将byte []转换为流并将流转换为byte [])

    我的任务是使用zlib解压缩数据包(已接收),然后使用算法从数据中生成图片好消息是我在C中有代码,但任务是在C#中完成C我正在尝试使用zlib.NET,但所有演示都有该代码进行解压缩(C#)我的问题:我不想在解压缩后保存文件,因为我必须使用C代码中显示的算法.如何将byte[]数组转换为类似于C#zlib代码中的流来解压缩数据然后如何将流转换回字节数组?

  2. 为什么C标准使用不确定的变量未定义?

    垃圾价值存储在哪里,为什么目的?解决方法由于效率原因,C选择不将变量初始化为某些自动值.为了初始化这些数据,必须添加指令.以下是一个例子:产生:虽然这段代码:产生:你可以看到,一个完整的额外的指令用来移动1到x.这对于嵌入式系统来说至关重要.

  3. 如何使用命名管道从c调用WCF方法?

    更新:通过协议here,我无法弄清楚未知的信封记录.我在网上找不到任何例子.原版的:我有以下WCF服务我输出添加5行,所以我知道服务器是否处理了请求与否.我有一个.NET客户端,我曾经测试这一切,一切正常工作预期.现在我想为这个做一个非托管的C客户端.我想出了如何得到管道的名称,并写信给它.我从here下载了协议我可以写信给管道,但我看不懂.每当我尝试读取它,我得到一个ERROR_broKEN_P

  4. “这”是否保证指向C中的对象的开始?

    我想使用fwrite将一个对象写入顺序文件.班级就像当我将一个对象写入文件时.我正在游荡,我可以使用fwrite(this,sizeof(int),2,fo)写入前两个整数.问题是:这是否保证指向对象数据的开始,即使对象的最开始可能存在虚拟表.所以上面的操作是安全的.解决方法这提供了对象的地址,这不一定是第一个成员的地址.唯一的例外是所谓的标准布局类型.从C11标准:(9.2/20)Apointe

  5. c – 编译单元之间共享的全局const对象

    当我声明并初始化一个const对象时.两个cpp文件包含此标头.和当我构建解决方案时,没有链接错误,你会得到什么如果g_Const是一个非const基本类型!PrintInUnit1()和PrintInUnit2()表明在两个编译单元中有两个独立的“g_Const”具有不同的地址,为什么?

  6. 什么是C名称查找在这里? (&GCC对吗?)

    为什么在第三个变体找到func,但是在实例化的时候,原始变体中不合格查找找不到func?解决方法一般规则是,任何不在模板定义上下文中的内容只能通过ADL来获取.换句话说,正常的不合格查找仅在模板定义上下文中执行.因为在定义中间语句时没有声明func,并且func不在与ns::type相关联的命名空间中,所以代码形式不正确.

  7. c – 在输出参数中使用auto

    有没有办法在这种情况下使用auto关键字:当然,不可能知道什么类型的.因此,解决方案应该是以某种方式将它们合并为一个句子.这可用吗?解决方法看起来您希望默认初始化给定函数期望作为参数的类型的对象.您无法使用auto执行此操作,但您可以编写一个特征来提取函数所需的类型,然后使用它来声明您的变量:然后你就像这样使用它:当然,只要你重载函数,这一切都会失败.

  8. 在C中说“推动一切浮动”的确定性方式

    鉴于我更喜欢将程序中的数字保留为int或任何内容,那么使用这些数字的浮点数等效的任意算术最方便的方法是什么?说,我有我想写通过将转换放在解析的运算符树叶中,无需将表达式转化为混乱是否可以使用C风格的宏?应该用新的类和重载操作符完成吗?解决方法这是一个非常复杂的表达.更好地给它一个名字:现在当您使用整数参数调用它时,由于参数的类型为double,因此使用常规的算术转换将参数转换为double用C11lambda……

  9. objective-c – 如何获取未知大小的NSArray的第一个X元素?

    在objectiveC中,我有一个NSArray,我们称之为NSArray*largeArray,我想要获得一个新的NSArray*smallArray,只有第一个x对象…

  10. c – Setprecision是混乱

    我只是想问一下setprecision,因为我有点困惑.这里是代码:其中x=以下:方程的左边是x的值.1.105=1.10应为1.111.115=1.11应为1.121.125=1.12应为1.131.135=1.14是正确的1.145=1.15也正确但如果x是:2.115=2.12是正确的2.125=2.12应为2.13所以为什么在一定的价值是正确的,但有时是错误的?请启发我谢谢解决方法没有理由期望使用浮点系统可以正确地表示您的帖子中的任何常量.因此,一旦将它们存储在一个双变量中,那么你所拥有的确切的一

返回
顶部