【问题标题】:How to segment the cloth area in the image using python opencv如何使用python opencv分割图像中的布料区域
【发布时间】:2021-07-27 03:44:50
【问题描述】:

我想在这个Image 中分割布料,我正在使用以下代码,但这只会分割表格而不是布料。

img = cv2.imread("/content/task5/20210514_153525.jpg",0)
imgplot = plt.imshow(img,cmap='gray')
plt.show()
blur = cv2.blur(img, (3, 3))
ret, thresh = cv2.threshold(blur, 150, 255, cv2.THRESH_BINARY) 
ker2 = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(15,15))
mask = cv2.morphologyEx(np.float32(thresh), cv2.MORPH_CLOSE, ker2)
mask = mask.astype(np.uint8)
contours, hierarchy = cv2.findContours(image =mask , mode = cv2.RETR_TREE,method = cv2.CHAIN_APPROX_SIMPLE)
mask1=mask.copy()*0
for i,cnt in enumerate(contours):
    if hierarchy[0][i][2] == -1 :
        if  cv2.contourArea(cnt) > 100000:
            cv2.drawContours(mask1,[cnt], 0, (255), -1)    

imgplot = plt.imshow(mask1,cmap='gray')
plt.show()

【问题讨论】:

  • 尝试使用 cv2.inRange() 对布料的颜色进行阈值处理。
  • 如何应用它可以分享任何python代码来分割它吗?

标签: python opencv image-processing artificial-intelligence cv2


【解决方案1】:

您可以在 Python/OpenCV 中执行此操作,方法是使用 cv2.inRange() 在 HSV 颜色空间中设置阈值,然后使用一些形态学来清除小孔和白点的结果。

文件:

import cv2
import numpy as np

# load image with alpha channel
img = cv2.imread('shirt.jpg')

# convert to HSV
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

# create mask for shirt in hsv
# specify lower and upper ranges for h,s,v colors of shirt
lower = (0,30,120)
upper = (30,70,160)
mask = cv2.inRange(hsv, lower, upper)
mask = cv2.merge([mask,mask,mask])

# apply morphology to clean mask
kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5,5))
mask = cv2.morphologyEx(mask, cv2.MORPH_CLOSE, kernel)
kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (17,17))
mask = cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel)

# save mask
cv2.imwrite("shirt_masked.png", mask)

# display mask
cv2.imshow('mask',mask)
cv2.waitKey(0)
cv2.destroyAllWindows()

蒙面图像:

【讨论】:

    猜你喜欢
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 2020-07-30
    • 2021-04-03
    • 2014-06-11
    • 1970-01-01
    • 2012-02-23
    相关资源
    最近更新 更多