Python 3.x 如何使用opencv python从图像中仅提取脚

Python 3.x 如何使用opencv python从图像中仅提取脚,python-3.x,opencv,Python 3.x,Opencv,我有一个脚的图像,我只想从图像中提取脚,并删除所有其他背景内容 我试图通过OpenCV的边缘检测方法来实现这一点,但这些方法并不能满足我的需要 这是我的密码: import cv2 as cv import numpy as np img = cv.imread('D:/Desktop data/img2.jpg') img_gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY) img_blur = cv.GaussianBlur(img_gray, (5, 5

我有一个脚的图像,我只想从图像中提取脚,并删除所有其他背景内容

我试图通过OpenCV的边缘检测方法来实现这一点,但这些方法并不能满足我的需要

这是我的密码:

import cv2 as cv
import numpy as np

img = cv.imread('D:/Desktop data/img2.jpg')
img_gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
img_blur = cv.GaussianBlur(img_gray, (5, 5), 0)
# img_lap = cv.Laplacian(img_blur, cv.CV_64F)
img_canny = cv.Canny(img_blur, 150, 30)

cv.imshow('img_blur', img_blur)
# cv.imshow('img_lap', img_lap)
cv.imshow('img_canny', img_canny)

cv.waitKey(0)
cv.destroyAllWindows()
下面是一个示例图像 我只想从中提取脚

这是一个仅提取了脚的示例图像,我希望得到与此图像类似的结果

任何帮助都将不胜感激


提前感谢。

如果您希望得到可靠的结果,那么基于深度学习的语义分割就是您所需要的

使用cv2.inRange()设置脚的肤色阈值。然而,在你的原始图像中,你也会得到手。可能是脚的颜色不同,也可能是像脚的皮肤一样的背景色。所以我想要一个在所有情况下都只提取脚的解决方案。我想你需要一个使用大量训练数据的深入学习/AI方法。这对我来说很好,但我的要求是使用OpenCV。如果我不能从OpenCV获得可靠的结果,我将进行深入学习。Thanks@rizwanOpenCV现在有很好的API来运行深度学习模型。