python中复杂图像的二进制分割。 [关闭]

问题描述 投票:1回答:1

我试图为我的项目工作实现二进制分段,但我被二进制分段代码所困扰。我只想在图片中获得播放器和背景的连续分段,如this image(手的正确分割)。

imgort numpy as np                
import cv2
from matplotlib import pyplot as plt

img = cv2.imread('main-qimg-f32bfc3d08d8809a8b3bb7d91c5d183d.png')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret, thresh = 
cv2.threshold(gray,0,255,cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU)

%pylab inline
import matplotlib.image as mpimg
imgplot_0 = plt.imshow(img)
plt.show()
imgplot = plt.imshow(thresh)
plt.show()

但这段代码最终给了我this图像。原始图像和运行上述代码后将获得的图像。

正如您所看到的,二进制分割并不好。我想从图像中提取玩家的镜头(带玩家)。也许是因为图像中存在噪声和杂散边缘。

我需要在代码中进行哪些更改才能获得正确的细分?

提前致谢!

python image-processing computer-vision
1个回答
0
投票

你想要实现的目标几乎是不可能的。

仅基于颜色,没有什么可以分辨什么是“玩家的一部分”而不是“一块背景”。图像过于复杂和丰富多彩。

要实现这样的分割,您需要大量关于玩家颜色的可能形状的先验信息。这称为对象类别检测,仍然是一个开放的研究课题。

相比之下,手部图像要简单百万倍(尽管你可能会怀疑手腕缺失了)。

© www.soinside.com 2019 - 2024. All rights reserved.