OpenCV图像轮廓

© Fu Xianjun. All Rights Reserved.


提示:以下是本篇文章正文内容,下面案例可供参考

一、图像轮廓概念

轮廓可以简单认为成将连续的点(连着边界)连在一起的曲线,具有相同的颜色或者灰度。轮廓在形状分析和物体的检测和识别中很有用。
为了更加准确,要使用二值化图像。在寻找轮廓之前,要进行阈值化处理或者 Canny 边界检测。
查找轮廓的函数会修改原始图像。如果你在找到轮廓之后还想使用原始图像的话,你应该将原始图像存储到其他变量中。

二、图像轮廓代码

在这里插入图片描述

代码如下(示例):

import cv2
import numpy as np
img = cv2.imread('shape.jpg')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret,binary = cv2.threshold(gray,220,255,cv2.THRESH_BINARY)
contours,hierarchy = cv2.findContours(binary,cv2.RETR_TREE,\
                                     cv2.CHAIN_APPROX_NONE)
n = len(contours)
contoursImg=[]
for i in range(n):
    temp = np.zeros(img.shape,np.uint8)
    contoursImg.append(temp)
    contoursImg[i]=cv2.drawContours(contoursImg[i],contours,\
                                    i,(255,255,255),3)
    cv2.imshow("contours[" + str(i)+"]",contoursImg[i])
cv2.waitKey()
cv2.destroyAllWindows()

三、结果显示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenCV图像轮廓是指在图像中连续的边界线。根据引用中的示例代码,我们可以使用OpenCV库来实现图像轮廓的查找和计算。 首先,我们需要读取图像并将其转换为灰度图像。可以使用cv2.imread()函数读取图像,然后使用cv2.cvtColor()函数将图像转换为灰度图像。 接下来,我们可以使用cv2.threshold()函数将灰度图像二值化,得到一个二值图像,其中只有两个像素值,一种是白色(255),一种是黑色(0)。函数中的阈值参数可以根据具体应用进行调整。 然后,我们可以使用cv2.findContours()函数查找图像中的轮廓。该函数返回两个结果,第一个结果是轮廓的列表,第二个结果是层级信息。轮廓是一系列坐标点的集合,描述了对象的边界。 接着,我们可以使用cv2.drawContours()函数将轮廓绘制在图像上。这个函数会直接修改原图像,如果想保持原图像不变,可以先复制一份。通过指定轮廓的索引,我们可以绘制特定的轮廓。 最后,我们可以使用cv2.contourArea()函数计算轮廓的面积,使用cv2.arcLength()函数计算轮廓的周长。这两个函数都需要传入一个轮廓参数。 所以,OpenCV图像轮廓的实现步骤可以总结为以下几个步骤: 1. 读取图像并将其转换为灰度图像。 2. 使用阈值函数将灰度图像二值化。 3. 使用findContours函数查找图像中的轮廓。 4. 绘制轮廓图像上。 5. 计算轮廓的面积和周长。 希望这个回答能帮到你!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [opencv 图像轮廓的实现示例](https://download.csdn.net/download/weixin_38681736/12849896)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [OpenCv图像轮廓](https://blog.csdn.net/weixin_64443786/article/details/131796588)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值