gpt4 book ai didi

Python 和 OpenCV : Second largest object

转载 作者:太空宇宙 更新时间:2023-11-03 12:39:33 27 4
gpt4 key购买 nike

我正在开发一个 python 脚本来隔离图像中按颜色匹配的最大和第二大对象。我设法得到了最大的物体,在它周围画了一个轮廓并画了一个盒子。但是,我很难找到找到第二大对象的解决方案。我想单独检测第二大物体。

import numpy as np
import cv2

font = cv2.FONT_HERSHEY_SIMPLEX
lineType = cv2.LINE_AA

im = cv2.imread('Photos/test.jpg')
im_ycrcb = cv2.cvtColor(im, cv2.COLOR_BGR2HSV)

ball_ycrcb_mint = np.array([0, 90, 100],np.uint8)
ball_ycrcb_maxt = np.array([25, 255, 255],np.uint8)
ball_ycrcb = cv2.inRange(im_ycrcb, ball_ycrcb_mint, ball_ycrcb_maxt)
#cv2.imwrite('Photos/output2.jpg', ball_ycrcb) # Second image
areaArray = []
count = 1

_, contours, _ = cv2.findContours(ball_ycrcb, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
for i, c in enumerate(contours):
area = cv2.contourArea(c)
areaArray.append(area)
areaLargest = np.argmax(areaArray)
areaLargestMax = max(areaArray)
areaLargestCnt = contours[areaLargest]
x, y, w, h = cv2.boundingRect(areaLargestCnt)
if area == areaLargestMax and area > 10000:
cv2.drawContours(im, contours, i, (255, 0, 0), 2)
cv2.rectangle(im, (x, y), (x+w, y+h), (0,255,0), 2)
cv2.imwrite('Photos/output3.jpg', im)

我使用以下图片进行测试:Image of balls

感谢任何帮助!

最佳答案

您可以使用 sorted(contours, key=cv2.contourArea, reverse=True) 为您提供按区域降序排列的等高线列表。

关于Python 和 OpenCV : Second largest object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25552765/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com