【问题标题】:Implementing MeanshiftFilter to a image causing a discontinuous edge对导致不连续边缘的图像实施均值偏移滤波器
【发布时间】:2015-11-02 10:40:35
【问题描述】:

如图所示,我对源图像实施了 3 种模糊处理。 Gaussian & Median 模糊看起来不错,但 Meanshift 结果让我很困惑。 右侧有不连续的区域。

我实现的代码是 pyrMeanShiftFiltering(src2, dst2, 5, 25, 3);,修改为pyrMeanShiftFiltering(src2, dst2, 2, 25, 3);还是一样。

所以我认为它与空间窗口半径无关。

谁能解释为什么会发生这种情况,以及如何为我避免这种情况?

非常感谢!

================================================ =========

8/13

添加代码:

int border = 1;
copyMakeBorder(src2, src2, border, border, border, border, BORDER_CONSTANT, 0);

不幸的是,它仍然是一样的..

【问题讨论】:

    标签: c++ c opencv image-processing blur


    【解决方案1】:

    Here我可以看到同样的效果,所以看起来像是实现中的一个错误(看起来像卷积边缘效应)。您可以尝试在应用过滤器之前为图像添加边框,并在处理完成后移除边框(参见 copyMakeBorder opencv 的方法)。

    【讨论】:

    • 感谢您的建议!但结果如上所示。一些边框像素与近像素合并,但有些没有。(我真的不明白为什么..)黑色边框被破坏了,所以我无法在 Meanshift 之后将其删除。右侧区域还是一样的,虽然看起来比原来的效果好。
    • 第一:设置更大的边框10-50 px。不是 1 个像素。第二:为什么不能删除边框?它具有固定大小,只需使用 ROI。第三:尝试不同的边框类型,例如镜像。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-23
    • 2023-03-08
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    相关资源
    最近更新 更多