python cv2 轮廓的包络 面积_如何用cv2.minarerect(cnt)得到多轮廓图像上唯一的最小面积矩形?...

本文介绍了如何使用Python的OpenCV库处理图像,通过闭合操作连接轮廓,并利用cv2.findContours()和cv2.boundingRect()找到图像中的最小面积矩形。首先,对图像进行灰度转换、二值化和闭合操作,然后找出最大轮廓并绘制其边界。
摘要由CSDN通过智能技术生成

您可能使用cv2.findContours()搜索轮廓,然后遍历它们在图像上绘制矩形。问题是你的图像不是由一条相连的线组成的,而是由许多虚线组成的。在

等高线是连接所有连续点的曲线(沿边界),具有相同的颜色或强度(OpenCV文档)。在

所以为了得到更好的结果,你应该在搜索轮廓之前先准备好你的图像。可以使用各种工具对图像进行预处理(可以搜索OpenCV文档)。在本例中,我将尝试使用一个小内核执行名为“closing”的过程。关闭是膨胀之后的像素腐蚀。它可以帮助连接你的小轮廓到一个大轮廓(圆)。然后可以选择最大的一个并绘制一个边框。在

示例:

输入图像:

JqA8V.pngimport cv2

import numpy as np

img = cv2.imread('test.png')

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

_, thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY+cv2.THRESH_OTSU)

kernel = np.ones((3,3), dtype=np.uint8)

closing = cv2.morphologyEx(thresh, cv2.MORPH_CLOSE, kernel)

_, contours, hierarchy = cv2.findContours(closing, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)

cnt = max(contours, key=

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值