python - 从二进制图像中提取形状/多边形?

标签 python python-2.7 opencv computer-vision computational-geometry

我正在尝试从 map 数据构造导航网格物体。步骤之一涉及将二进制图像(其中0表示占用空间,1表示自由空间)转换成平面直线图。

我正在尝试找到一种可靠的方法。我目前的想法是使用Canny边缘检测器,然后通过OpenCV的Hough线变换进行处理。然而,这不能保证所检测的线以代表原始形状的方式连接。

可以安全地假定 map 相对平滑,并且没有一个区域相互接触。

编辑-这是一个示例图像:

sample map

白色区域代表自由空间

黑色区域代表占用的空间

最佳答案

在此二进制图像上,边缘检测是不必要的/有害的,只需使用contour following即可。

然后,通过Douglas-Peucker线简化方法将Freeman链变为折线。

关于python - 从二进制图像中提取形状/多边形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34021497/

相关文章:

c++ - cv::detail::MultiBandBlender 照片末尾出现奇怪的白色条纹

android - 霍夫圆不检测眼睛虹膜

python - 是否可以将 stackless python 2.7.2 与 pythondotnet 一起使用?

python - Jupyter 在 Mac 上安装失败

python - 将项目插入字典的中间

r - 为什么 Rpy2 没有安装在我的 OSX Sierra 终端中?

python - 循环遍历二维列表 python 不会正确更改值

python - 制作python脚本等待模块函数返回

python - Pandas 从 dataframe.loc 获取索引列表

android - 在 Android 上将 OpenCV 与 Unity 结合使用