C++ 提取点向量内的面积

C++ 提取点向量内的面积,c++,opencv,C++,Opencv,我试图提取由点向量包围的区域,这些点不一定形成矩形。例如: 我想提取黄色图形内部的区域。 我画黄色图形的方法是在成对的点之间画线,这些点作为向量 我尝试了floodFilling,从内部的某个像素开始使用一些颜色,以便稍后将其用作遮罩,我得到了以下结果: (这里的问题显然是字母内部的黑洞) 我还尝试用与文本相同的颜色(白色)填充外部区域: 但是一些黑人仍然留在外面 如何才能在不留下任何孔的情况下正确完成此操作?要填充由点矢量定义的多边形,可以使用。在空图像上绘制多边形,并在第二步中将其用作

我试图提取由点向量包围的区域,这些点不一定形成矩形。例如:

我想提取黄色图形内部的区域。
我画黄色图形的方法是在成对的点之间画线,这些点作为
向量

我尝试了
floodFill
ing,从内部的某个像素开始使用一些颜色,以便稍后将其用作遮罩,我得到了以下结果:

(这里的问题显然是字母内部的黑洞)

我还尝试用与文本相同的颜色(白色)填充外部区域:

但是一些黑人仍然留在外面


如何才能在不留下任何孔的情况下正确完成此操作?

要填充由点矢量定义的多边形,可以使用。在空图像上绘制多边形,并在第二步中将其用作遮罩。

回答删除的注释(点是否代表文本轮廓)-不完全是。。。它们代表了其中一些的轮廓。。。对于原始图像中的每个垂直轮廓组,我保存了中间的轮廓。例如,对于字母e(带重音的e),我可能只有e的轮廓(没有重音),目的是提取中间线。。。因此,我按照
x
坐标对等高线进行排序,然后将
y
闭合等高线分组,并从每组中选取中间的等高线。我可能必须找到另一种方法来填充所需的精确轮廓,然后很容易提取它们。但现在我只有这些了你是怎么提取文本的中心线的?我很好奇@JeruLuke-我通过
cv::findcontours()
找到了文本的轮廓,然后我按照其
x
坐标对轮廓进行排序(因此垂直对齐的轮廓变得相邻),然后选择靠近其
y
坐标的组(这组在垂直线上最多3个字母[至少3个轮廓])。然后从每组中我观察轮廓的中心(使用矩),并取中间值。最后,我取了每组的中间轮廓的边界。我在边界周围添加了一个小边距,并在所有外部边界之间拉了线。这并不完美though@JeruLuke-我尝试了另一种方法:我找到了轮廓,然后在图像上水平迭代,对于每一条垂直线,我找到了定义文本区域的上限和下限(0变为非0)。然后我取了它的中心在那个区域中间的轮廓。一直到图像的结尾。然而,如果我在这个结果中填写字母,它看起来不太好,没有意义。。。谢谢,我试试看