问题标签 [opencv-drawcontour]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 从具有正确边缘的 png 图像中获取轮廓(轮廓)
我有多个 png 文件,我正在尝试获取多边形轮廓坐标。那是简化的坐标,只有每个外角(不是凸包多边形)。
目前执行此操作的程序是 python 和 opencv。但是另一个程序很好,我确实尝试使用 npm 包、imagemagick、potrace、Lua 来解决这个问题。它将在“从图像构建多边形”过程中用作 shell 命令。
这是python下的最后一次测试。
现在的问题是在下面的示例中某些边缘“不”正确。
我做了以下步骤
- 将 alpha 转换为黑白
- 追踪轮廓
- 获取坐标
- 原始 png 文件包含黑线(保留它们)。
- 转换后的黑白图片(看不到最上面一行,因为这个网站是白色背景的)
- 跟踪轮廓轮廓(不是我想要的输出)
问题是两个孔,左侧 1 像素和右侧 1 像素缺失。
- 当我在其他程序中使用该轮廓数据时,您会得到以下信息:
- 我想要这个轮廓轮廓多边形数据,所以外部程序显示:
编辑
我尝试过的其他事情:
行进广场节目
戈朗
https://github.com/zx9597446/marchingsquare/issues/1 那一个给我另一个问题,但正确的代码
npm https://github.com/scottglz/image-outline 那给我的问题几乎和上面一样
图像魔术师
正在尝试将 png 转换为黑白并返回轮廓。
跟踪
但是所有的输出都有东西,所以我不能使用它。
例如,SVG 输出看起来像图片一样正确,但我无法将其转换为 ax,y 点数组多边形。
例如,使用https://github.com/Phrogz/svg-path-to-polygons给了我
编辑 2
当我使用 SVG 解决方案时,输出现在给我一个可读的点列表
但是当我使用那个坐标列表时,它并不是 100% 正确的。角落仍然不正确。
使用 firefox 的输出(放大)将显示:
以及我将使用坐标列表的程序(不是 SVG)
将输出:
编辑 3
使用最后一个 python 脚本不要制作多边形。
python - OpenCV 绘制轮廓(Jupyter Notebook)
我从 Jupyter Notebook 运行以下代码:
(im 是二进制图像)运行后,Jupyter Kernel 死亡。我应该改变什么?
python - 如何在csv文件中的图像上绘制轮廓
我需要从 CSV 文件中绘制轮廓,我单独获取每个 x,y 列表,但我需要创建元组以将它们用于折线函数,但我得到了'int' object is not iterable
!
代码: