英语字母上的drawContours函数

时间:2017-12-18 15:26:27

标签: c++ opencv image-processing opencv3.0

我正在开发一个使用函数drawContours()

的输出的应用程序

输入是斜体文本的照片(.jpg或.png),我需要使用此功能在字母周围创建矩形。

现在,当我绘制矩形时,我看到该函数计算了其中一些字母的两个字母(例如字母O和A)。

是否可以预处理图像s.t.该函数只计算每个字母的较大矩形,如O和A?

enter image description here

我使用的代码是此链接中的代码: https://docs.opencv.org/2.4/doc/tutorials/imgproc/shapedescriptors/bounding_rotated_ellipses/bounding_rotated_ellipses.html

只有没有ellipse()函数。

1 个答案:

答案 0 :(得分:2)

您实际上有几个选项......所有这些选项都在findContours的文档中进行了解释。特别是模式参数。

我想你正在使用CV_RETR_TREE,这个说

  

...重建嵌套轮廓的完整层次......

这意味着您可以根据层次结构选择要使用的层次结构。您可以参考有关层次结构的文档(在此函数的层次参数中完整解释),这将告诉您一个轮廓是否在另一个轮廓内。

另一种方式是如果你放CV_RETR_EXTERNAL这个只返回外部轮廓,从输出中消除内部轮廓。

此外,可以使用CV_RETR_CCOMP,但我还没有使用过这个,但基本上它将具有2个层次结构级别,其中一个是外部轮廓。

所以,一切都取决于你是否需要后期的内部轮廓。如果不是,我会建议使用CV_RETR_EXTERNAL,如果您以后需要,请使用TREE。