问题标签 [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.

0 投票
2 回答
466 浏览

python - 在二值图像上分割重叠的粗线

在对原始图像应用各种预处理和检测管道后,我确实有一个如下所示的二进制图像。

相交跑道

如图所示,实际上有 2 条跑道(停机坪)供飞机在交叉区域相互交叉。我需要的是分开两条跑道并返回它们的轮廓。我已经检查了有关轮廓特征的 opencv 函数,但没有运气。cv2.fitLine看起来不错,但只有在轮廓中只有一条线时才有效。应用蒙版时生成的图像应如下所示: 在此处输入图像描述

0 投票
1 回答
175 浏览

python - 使用opencv检测水印

我想使用opencv在下图中的“已删除”一词周围画一个框并找到坐标。

在此处输入图像描述

我从以下代码中获得了上面的图像:

原图是:

这是原图

0 投票
1 回答
209 浏览

python - 水印opencv周围的轮廓

我想在图像中的水印周围画一个框。我已经提取了水印并找到了轮廓。然而,轮廓不是围绕水印绘制的。轮廓是在我的完整图像上绘制的。请帮助我正确的代码。

轮廓坐标的输出为:

输出图像为:

在此处输入图像描述

我的代码片段如下:

0 投票
1 回答
2609 浏览

python - 从具有正确边缘的 png 图像中获取轮廓(轮廓)

我有多个 png 文件,我正在尝试获取多边形轮廓坐标。那是简化的坐标,只有每个外角(不是凸包多边形)。

目前执行此操作的程序是 python 和 opencv。但是另一个程序很好,我确实尝试使用 npm 包、imagemagick、potrace、Lua 来解决这个问题。它将在“从图像构建多边形”过程中用作 shell 命令。

这是python下的最后一次测试。

现在的问题是在下面的示例中某些边缘“不”正确。

我做了以下步骤

  • 将 alpha 转换为黑白
  • 追踪轮廓
  • 获取坐标
  1. 原始 png 文件包含黑线(保留它们)。

原图

  1. 转换后的黑白图片(看不到最上面一行,因为这个网站是白色背景的)

转换后的png

  1. 跟踪轮廓轮廓(不是我想要的输出)

追踪图像

问题是两个孔,左侧 1 像素和右侧 1 像素缺失。

问题放大细节

  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)

将输出:

love2d 输出

编辑 3

使用最后一个 python 脚本不要制作多边形。

程序输出

0 投票
1 回答
578 浏览

python - OpenCV 绘制轮廓(Jupyter Notebook)

我从 Jupyter Notebook 运行以下代码:

(im 是二进制图像)运行后,Jupyter Kernel 死亡。我应该改变什么?

0 投票
0 回答
436 浏览

python - 如何使用 OpenCV 在空白图像上准确地绘制它们在源图像中的形状?

我有一个源图像(黑色背景和白色对象),我想从该图像中找到轮廓,创建一个具有黑色背景的新空白图像,并在该图像上一一绘制轮廓,就像它们在源图像中一样。我知道如何找到轮廓并创建空白图像,但我无法以与源图像中相同的方式绘制轮廓。我得到了一些结果,但颜色填充有时填充不正确或看起来不正确。我一直在考虑是否应该得到轮廓的倒数并填充它,但我不确定如何做到这一点或是否有可能。我基本上想做的就是在视频上一个一个地画出图像的形状。

这是我的代码。

原始图像 源图像

原始图像去噪 源图像去噪

Canny边缘检测后的去噪图像 精明的边缘

去噪图像的绘制版本 去噪图像的绘制版本(Canny 之后)

0 投票
1 回答
147 浏览

python - 如何找到缺少部分的图像的轮廓?

杂货账单:

杂货账单

由于图像的顶部和底部的某些部分缺少最大轮廓,即无法裁剪主钞票。该代码在完整的账单图像的情况下运行良好,但无法处理丢失的顶点图像。

代码:

0 投票
0 回答
239 浏览

python - 为什么在 Opencv 上使用 fitEllipse 时长轴长度的结果高于高度值?

我需要计算长轴长度、短轴长度和偏心率。我正在使用 fitEllipse() 进行计算。但是某些对象的长轴长度给出的值高于高度值。我找不到如何解决这个问题。

这是代码:

BoundingBox(Rectangle):给出边界框参数 => (x,y,width,height)

长轴长度、短轴长度、偏心率

我添加了原始图像: 在此处输入图像描述

这是结果图像: 在此处输入图像描述

0 投票
1 回答
156 浏览

python - 如何在csv文件中的图像上绘制轮廓

我需要从 CSV 文件中绘制轮廓,我单独获取每个 x,y 列表,但我需要创建元组以将它们用于折线函数,但我得到了'int' object is not iterable

代码:

错误是'int'对象不可迭代

x,y 的结果

0 投票
1 回答
366 浏览

python - 如何仅绘制最大的矩形轮廓来检测车辆牌照(专门用于摩托车牌照)

我一直致力于仅使用 OpenCV 检测摩托车车牌。我的问题是:

  1. 我可以只找到并绘制最大的轮廓(在车牌周围)吗?
  2. 如果没有,那么我应该为这个问题做些什么?
  3. 还有其他检测摩托车车牌的方法吗?

这是我的原始图像

这是我检测到每个矩形轮廓后的图像

这是源代码