【问题标题】:Removing outliers from a grey-scale image从灰度图像中去除异常值
【发布时间】:2013-03-27 06:04:54
【问题描述】:

问题

我有一个图像序列,表示我想清理的深度信息。 有一些异常值(强度低于 25,范围为 0-255 的值),我想用可接受的替代值填充它们(该特定区域的平均值可能是一个很好的猜测)。

有人能找到一种简单的方法吗?我尝试使用中值过滤器(过滤器大小为 10)用 NaN 替换不想要的值,但它确实使情况恶化,而是通过用一般平均值替换它们来改善。

附:有人已经建议我使用快速小波重建,但我真的不知道从哪里开始......

实施的解决方案(到目前为止)

我实施的解决方案(在阅读tmpearce 建议的inpaint_nans 之前)是:

  1. 复制原图;
  2. 用一般平均值填充无效像素;
  3. 使用光线 10 的圆盘对其进行模糊处理;
  4. 用我从第 3 点得到的值替换原始图像中的无效值。
  5. 运行大小为 10 的中值滤波器。
img2 = img;                                       
img2(img < .005) = mean(img(:));                  
H = fspecial('disk',10);                          
img3 = imfilter(img2,H,'symmetric');              
img4 = img;                                       
img4(img < .3) = img3(img < .3);                  
filterSize = 10;                                  
padopt = {'zeros','indexed','symmetric'};         
IMG = medfilt2(img4, [1 1]*filterSize, padopt{p});

【问题讨论】:

    标签: matlab image-processing kinect grayscale


    【解决方案1】:

    我推荐来自 MATLAB File Exchangeinpaint_nans 贡献 - 就像您已经完成的那样,将异常值替换为 NaN,然后使用链接从那里开始。

    从功能描述来看:

    使用非 NaN 元素在二维数组中插入 NaN 元素。能 也可以推断,因为它不使用数据的三角剖分。 Inpaint_nans 提供了几种不同的插值方法, 这在准确性与所需的速度和内存之间进行了权衡。全部 目前在 inpaint_nans 中找到的方法是基于稀疏线性的 代数和 PDE 离散化。本质上,一个 PDE 被求解为 与提供的信息一致。

    可重用代码万岁!

    【讨论】:

    • 我的想法完全正确,只晚了 20 秒。 +1
    【解决方案2】:

    使用名为roifill 的函数。你需要稍微弄乱它。我不得不使用imdilate,因为它是从边界插入的。

    代码:

    testimage = imread('BAPz5.png');
    testimage = double(rgb2gray(testimage));
    testimage_filt = roifill(testimage,imdilate(testimage<100,true(4)));
    figure(1);
    subplot(1,2,1);
    imshow(testimage,[]);
    subplot(1,2,2);
    imshow(testimage_filt,[]);
    

    输出:

    【讨论】:

      【解决方案3】:

      帖子已回答但仅作记录,在[1]中,作者基于自然形状的基本原理,即对象遵循二阶平滑度,他提出了一种最小化曲率的in-painting方法一种 最小二乘意义。他还提供code。祝你好运。

      [1] Α 类别级 3-D 对象数据库:启动 kineckto 工作 (ICCV)

      【讨论】:

      • 请注意,link-only answers are discouraged,SO 答案应该是搜索解决方案的终点(相对于另一个参考中途停留,随着时间的推移往往会变得陈旧)。请考虑在此处添加独立的概要,并保留链接作为参考。
      • 这太棒了!感谢 Darkmoor 的留言!得到别人的意见,得到论文的支持总是很好的!
      猜你喜欢
      • 1970-01-01
      • 2012-07-13
      • 2021-08-02
      • 1970-01-01
      • 2019-06-08
      • 2013-06-21
      • 2021-05-03
      • 1970-01-01
      • 2013-11-10
      相关资源
      最近更新 更多