轮廓发现

时间:2010-11-11 07:43:42

标签: image-processing opencv

我想检测一个包含多个数字的区域(LCD屏幕),我想要做的是: 1.使用cvCanny()将图像转换为边缘图像, 2.使用cvFindContours()来检测轮廓,这里我使用的是TREE模式 3.检测每个轮廓及其子数,如果孩子的数量大于一定数量,则结合轮廓区域和纵横比,即我感兴趣的区域。 我的问题是我使用for(; contours!= NULL; contours = contours-> h_next)循环,但我只能获得最高级别的树及其直接数量的子项,其余的似乎没有通过这种方式包括在内,无论如何,我可以通过每个轮廓并获得每个人的孩子数量?

谢谢!

1 个答案:

答案 0 :(得分:4)

您要找的是contours->v_next。它用于访问轮廓的子轮廓。 h_next用于在同一级别上迭代轮廓。可能你已经猜到 h 代表水平 v 代表垂直

当然,使用cvFindContours()时,请务必使用CV_RETR_TREE方法以树形方式获取轮廓。