gpt4 book ai didi

python - 如何用OpenCV将飞镖板从背景中分离出来?

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

我使用 python 和 openCV。我想将飞镖板与背景分开。我尝试使用 findContours 和 Canny 边缘检测,但我做不到。

示例图片:

enter image description here

最佳答案

你可以使用grab-cut算法-

您需要做的是将作为前景的图像区域指定为矩形。该算法将花费一点点时间,并且会抛出您需要的图像……不过,此处的代码需要一点点调整。

import numpy as np
import cv2
#a is your image
img = cv2.imread('a.jpg')
mask = np.zeros(img.shape[:2],np.uint8)

bgdModel = np.zeros((1,65),np.float64)
fgdModel = np.zeros((1,65),np.float64)

rect = (360,85,1670, 1900)
cv2.grabCut(img,mask,rect,bgdModel,fgdModel,5,cv2.GC_INIT_WITH_RECT)

mask2 = np.where((mask==2)|(mask==0),0,1).astype('uint8')
img = img*mask2[:,:,np.newaxis]

cv2.imshow('image',img)
cv2.waitKey(0)

源代码中的最终结果会给你一个更好的结果(在应用一些掩码之后)......但是正如我所说你可以根据你的需要修改它。

enter image description here来源-

http://docs.opencv.org/3.1.0/d8/d83/tutorial_py_grabcut.html#gsc.tab=0

关于python - 如何用OpenCV将飞镖板从背景中分离出来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37941304/

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