【发布时间】:2017-02-14 14:48:27
【问题描述】:
我想在高度图图像中找到锐边,同时忽略浅边。
OpenCV 提供了多种在二维图像中寻找边缘的方法:Canny、Sobel、etc。
但是,所有这些方法都是通过比较边缘两侧的强度值来实现的。 如果 2D 图像表示 3D 对象的高度图,那么这会导致一些奇怪的行为。
在高度图中,3D 对象在给定 X/Y 坐标处的 高度 表示为该 X/Y 坐标处 2D 像素的强度 :
在上图中,边缘B 的强度在左侧和右侧之间仅略有变化,尽管它是一个尖角。
在边缘A处,边缘左侧和右侧的像素之间的强度变化很大,尽管只是一个浅角度。
因此对于 Canny 或 Sobel 来说,没有阈值可以保留锐边但过滤浅边。
(在上面的例子中,边 B 的一侧有上升坡度,一侧有下降坡度。我可以过滤这个特征;但这会删除边 C 和D 也是)
如何获得仅包含某个角度以上的边缘的二值边缘图像? (例如边缘B、C 和D,但不包含@987654334 @)
或者,我怎样才能得到梯度导数图像,其中每个像素的强度与该像素的边缘角度成正比?
【问题讨论】:
-
你可以明确检查角度。
标签: opencv image-processing image-recognition edge-detection heightmap