Opencv中轮廓的绘制

目录

一、轮廓的绘制的作用

二、内容介绍

三、代码实现


一、轮廓的绘制的作用

  1. 用于图形分析和处理:轮廓是图像中物体边界的描绘,通过绘制轮廓,我们可以更好地分析和理解图像中的物体和形状。例如,轮廓可用于识别和区分不同的对象、测量物体的面积和周长等。
  2. 辅助机器视觉和物体识别:轮廓可以帮助计算机视觉系统(如机器人、自动驾驶车辆等)更好地识别和理解其环境。例如,通过轮廓,系统可以识别出不同的人、物体或道路标志。
  3. 特征提取:轮廓还可以用于特征提取,以供后续处理或分析使用。例如,可以通过测量轮廓的曲率、拐角等特征来识别不同的人或物体。
  4. 目标跟踪和监控:在视频或动态图像中,通过绘制和跟踪轮廓,可以帮助监测和跟踪目标对象的位置和移动轨迹。
  5. 动画制作:在计算机图形学和动画制作中,轮廓可以用于建模、角色动画等,帮助生成更为逼真的动画效果。

二、内容介绍

使用参数介绍:

 cv2.drawContours(image, contours, contourIdx, color, thickness=None, lineType=None, hierarchy=None, maxLevel=None, offset=None)

image:要在其上绘制轮廓的输入图像。
contours:轮廓列表,通常由cv2.findContours()函数返回。
contourIdx:要绘制的轮廓的索引。如果为负数,则绘制所有轮廓。 
color:轮廓的颜色,以BGR格式表示。例如,(0, 255, 0)表示绿色。
thickness:轮廓线的粗细。默认值为1。
lineType:轮廓线的类型。默认值为cv2.LINE_8。
hierarchy:轮廓层次结构。通常由cv2.findContours()函数返回。
maxLevel:绘制的最大轮廓层级。默认值为None,表示绘制所有层级。
offset:轮廓点的偏移量。默认值为None。

三、代码实现

图片:手机

完整代码:

phone = cv2.imread('R-C.png')  
phone = cv2.resize(phone, (640, 480))
phone_gray = cv2.cvtColor(phone, cv2.COLOR_BGR2GRAY)  # 灰度图的处理
ret, phone_binary = cv2.threshold(phone_gray, 120, 255, cv2.THRESH_BINARY)  # 阈值处理为二值
cv2.imshow('phone_binary', phone_binary)
cv2.waitKey(100000)
image, contours, hierarchy = cv2.findContours(phone_binary, cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)
image_copy = phone.copy()
image_copy = cv2.drawContours(image=image_copy, contours=contours, contourIdx=-1, color=(0, 255, 0), thickness=3)
cv2.imshow('Contours_show', image_copy)
cv2.waitKey(0)

其中,image_copy前的代码的目的是进行轮廓检测,详细点击笔者的opencv--图像轮廓的近似检测

结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值