奇怪的 OpenCV 距离变换结果

Posted

技术标签:

【中文标题】奇怪的 OpenCV 距离变换结果【英文标题】:Strange OpenCV Distance Transform Results 【发布时间】:2010-10-12 01:34:01 【问题描述】:

我正在尝试对阈值二值图像进行距离变换 为了协助异常检测(我希望我能检测到大 围绕对象的边缘发生变化),但是由于某种原因,在 运行我的距离变换脚本,我得到了一种奇怪的条带类型 影响。我在距离变换演示脚本中测试了类似的东西 样本目录,结果相同。我出现的一个可能原因 是距离超出了 0-255 的范围,因此 本质上是模数以使其保持在边界内。有没有人 有没有这方面的经验可以提供建议? I have posted images and code on my blog if that helps 提前致谢, 伊恩

【问题讨论】:

【参考方案1】:

测试您的理论的一种快速方法:尝试使用静音的灰度图像(所有值 v --> 128+(v-128)/32 或其他值),看看是否会使波段更宽或消除它们完全。

首先确定问题所在总是一个好主意,然后然后尝试解决它。​​

【讨论】:

谢谢,我以与您的建议类似的方式更改了比例并修复了它!不知何故,我错过了 cvConvertScale 线,系数为 5000 - 完全按照你的建议减少。【参考方案2】:

我无法提供代码,但我想指出您博客上的 expected result 也可能不正确:请查看大对​​象底部的锐利黑灰色边框: 它不应该存在,因为两个相邻像素之间的最大差异应该是 1。

【讨论】:

以上是关于奇怪的 OpenCV 距离变换结果的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV直线拟合检测

OpenCV 距离变换的错误输出

OpenCV距离变换错误

OpenCV 距离变换中的像素索引

opencv::基于距离变换与分水岭的图像分割

opencv C++极坐标变换