gpt4 book ai didi

python - 使用 findContours(cv2) 切片图像

转载 作者:太空宇宙 更新时间:2023-11-03 23:08:37 24 4
gpt4 key购买 nike

由于信誉问题,我无法发布图片,所以这是我下载的图片的链接:

https://www.amvplaygrounds.co.uk/pub/media/catalog/product/a/m/amv_f4-pm-017-shapes-circle-square-rectangle-star-triangle-200mm-2-sq-3d.jpg

import cv2
import numpy as np
import matplotlib.pyplot as plt
image = cv2.imread(r'C:\Users\User\Desktop\shapes.png')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(gray, 200, 255, 0)
contours, hier = cv2.findContours(thresh, cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
for cnt in contours:
x,y,w,h = cv2.boundingRect(cnt)
shape = thresh[y:y+h,x:x+w]
plt.imshow(shape)

它只返回一个轮廓,而不是你在图片中看到的 6 个。

我做错了什么?

最佳答案

findContours()黑色 背景上寻找白色 对象,因此您需要这样设置阈值:

ret, thresh = cv2.threshold(gray, 225, 255, cv2.THRESH_BINARY_INV)  

你需要找到这样的轮廓:

im2, contours, hier = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) 

关于python - 使用 findContours(cv2) 切片图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54368238/

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