pythonopencv提取轮廓区域_获取轮廓内的区域Opencv Python?

你所拥有的几乎是正确的。如果您查看阈值图像,它不起作用的原因是您的鞋对象在图像中有间隙。具体地说,你所追求的是,你希望鞋子的周长全部连接起来。如果发生这种情况,那么如果提取最外部的轮廓(这是您的代码所做的),则应该只有一个轮廓表示对象的外部周长。一旦你填充轮廓,那么你的鞋应该是完全固体。

因为你的鞋的周长不完整和破损,这会导致断开白色区域。如果使用findContours查找所有轮廓,它将只查找每个白色形状的轮廓,而不是最外部的周长。因此,如果您尝试使用findContours,它将给出与原始图像相同的结果,因为您只需找到图像中每个白色区域的周长,然后用findContours填充这些区域。

您需要做的是确保图像完全关闭。我建议您使用morphology关闭所有断开连接的区域,然后对这个新映像运行findContours调用。具体来说,执行二元形态闭合。这样做的目的是,它将断开连接的白色区域紧密地连接在一起,并确保它们是相互连接的。使用形态上的闭合,或者使用类似于7 x 7正方形的结构元素来闭合鞋子。这个结构元素可以认为是白色区域之间的最小间隔,可以认为它们是相连的。

因此,请执行以下操作:import numpy as np

import cv2

image = cv2.imread('...') # Load your image in here

# Your code to threshold

image = cv2.adaptiveThreshold(image, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV, 45, 0)

# Perform morpho

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值