cv2.findContours()返回函数详解, findContours()

您所在的位置:网站首页 python参数三个点 cv2.findContours()返回函数详解, findContours()

cv2.findContours()返回函数详解, findContours()

2024-03-02 05:59| 来源: 网络整理| 查看: 265

5 ###说明总轮廓是为5 [[[272 421]] #编号为0的轮廓的一系列坐标值 [[270 423]] ...... ...... [[274 421]] ###各轮廓间关系[[[ 1 -1 -1 -1] #轮廓0 [ 4 0 2 -1] #轮廓1  [-1 -1 3 1] #轮廓2 [-1 -1 -1 2] #轮廓3 [-1 1 -1 -1]]] #轮廓4

下面具体解释下hierarchy输出的矩阵参数的意义

其输出矩矩阵大小为NXM, 其中N为轮廓的个数,M恒等于4,也就是说每一行的4个数,能够表示出轮廓间的相互关系,那么具体是怎样表示的呢

第一个数:表示同一级轮廓的下个轮廓的编号,如果这一级轮廓没有下一个轮廓,一般是这一级轮廓的最后一个的时候,则为-1

第二个数:表示同一级轮廓的上个轮廓的编号,如果这一级轮廓没有上一个轮廓,一般是这一级轮廓的第一个的时候,则为-1

第三个数:表示该轮廓包含的下一级轮廓的第一个的编号,假如没有,则为-1

第四个数: 表示该轮廓的上一级轮廓的编号,假如没有上一级,则为-1

废话不多说,直接上图,标记处各轮廓间层次关系及编号

具体分析证明:

[[[ 1 -1 -1 -1] #轮廓0 [ 4 0 2 -1] #轮廓1  [-1 -1 3 1] #轮廓2 [-1 -1 -1 2] #轮廓3 [-1 1 -1 -1]]] #轮廓4轮廓0,它的同级下一个的编号为1,第一个参数为1; 因为这一级别的第一个,第二个参数-1;因为不包含子轮廓,所以第三个参数-1;因为处于第一级,其不属于任何别的级别,所以第四个参数为-1

轮廓1,它的同级下一个的编号为4,第一个参数为4; 因为这一级别的上一个的编号为0,第二个参数0;因为包含子轮廓,且子轮廓的第一个编号(当然只包含一个,多个也是同样的道理)为2,所以第三个参数2;因为处于第一级,其不属于任何别的级别,所以第四个参数为-1

轮廓2,它是第二级的最后一个(因为只有一个),所以第一个参数为-1; 它也是第二级的第一个,所以第二个参数为-1;因为包含子轮廓,且子轮廓的第一个编号(当然只包含一个,多个也是同样的道理)为3,所以第三个参数3; 因为处于第二级,其属于上一级的轮廓1,所以第四个参数为1

依次类推 。。。。。轮廓3

轮廓4  它是同一级(第一级)的最后一个,因此第一个参数为-1;因为这一级别的上一个的编号为1,第二个参数1;因为不包含子轮廓,所以第三个参数-1;因为处于第一级,其不属于任何别的级别,所以第四个参数为-1

用最通俗的方法,详细大家一定能理解吧! 点击顶哦



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3