python cv2 findContours函数和drawContours函数介绍

本文介绍了OpenCV库中用于寻找和绘制轮廓的findContours和drawContours函数。详细阐述了这两个函数的参数及用法,帮助理解如何在Python中利用它们来处理0-1图像并画出轮廓。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

findContours函数和drawContours函数是画轮廓很方便的函数

首先贴两张函数参数表,这是C++上的OpenCV

接下来分别看具体用法和参数格式

1. findContours

contours, hierarchy = cv2.findContours(
            thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE
        )

函数作用是画出0-1图thresh的轮廓。两个重要参数的shape

thresh.shape                                                                                      
(911, 911, 1)

contours.shape                                                                                    
*** AttributeError: 'list' object has no attribute 'shape'                                              

len(contours)                                                                                     
5                                                                                                       

contours[0].shape                                                                                 
(2, 1, 2)                                                                                               

contours[1].shape                                                                                 
(24, 1, 2) 
                                                                                             
contours[3].shape                                                                                 
(11, 1, 2)  
                                                                                            
contours[4].shape                                                                                 
(56, 1, 2) 

2. drawContours

            rect = cv2.minAreaRect(cnt)
            box = cv2.boxPoints(rect)
            box = np.int0(box)
            cv2.drawContours(image, [box], 0, (0, 0, 255), 2)

以上语句作用是画出点集的最小外接矩形,然后把Box2D结构变成四点的numpy数组形式,最后根据四点画出轮廓

重要参数的shape如下

cnt.shape                                                                                         
(95, 1, 2)

rect                                                                                              
((768.0, 852.5), (168.0, 49.0), -0.0) 分别表示旋转矩形的中心坐标,长宽,和旋转角度

box.shape
(4, 2)

box[0]的第一个元素表示横向方向离左上角的距离,第二个元素表示纵向方向离左上角的距离

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值