我正在开发一个使用函数drawContours()
输入是斜体文本的照片(.jpg或.png),我需要使用此功能在字母周围创建矩形。
现在,当我绘制矩形时,我看到该函数计算了其中一些字母的两个字母(例如字母O和A)。
是否可以预处理图像s.t.该函数只计算每个字母的较大矩形,如O和A?
我使用的代码是此链接中的代码: https://docs.opencv.org/2.4/doc/tutorials/imgproc/shapedescriptors/bounding_rotated_ellipses/bounding_rotated_ellipses.html
只有没有ellipse()函数。
答案 0 :(得分:2)
您实际上有几个选项......所有这些选项都在findContours的文档中进行了解释。特别是模式参数。
我想你正在使用CV_RETR_TREE
,这个说
...重建嵌套轮廓的完整层次......
这意味着您可以根据层次结构选择要使用的层次结构。您可以参考有关层次结构的文档(在此函数的层次参数中完整解释),这将告诉您一个轮廓是否在另一个轮廓内。
另一种方式是如果你放CV_RETR_EXTERNAL
这个只返回外部轮廓,从输出中消除内部轮廓。
此外,可以使用CV_RETR_CCOMP
,但我还没有使用过这个,但基本上它将具有2个层次结构级别,其中一个是外部轮廓。
所以,一切都取决于你是否需要后期的内部轮廓。如果不是,我会建议使用CV_RETR_EXTERNAL
,如果您以后需要,请使用TREE。