检测图像中的主要对象?

时间:2014-12-04 07:43:51

标签: python opencv image-processing numpy computer-vision

我的图像看起来像下面的图像。我的第一个想法是从图像的角落开始使用洪水填充,制作一个面具,然后我可以提取鞋子。有没有更好的方法使用Opencv或不同的Python库?

enter image description here

2 个答案:

答案 0 :(得分:2)

Lyst上有一篇关于这个问题的帖子。我的意思是分割鞋子。这是link

基本上,他们使用的步骤是:

  1. 反转颜色
  2. 应用Sobel滤镜
  3. 应用高斯模糊
  4. 阈值
  5. 洪水填充
  6. 示例在最后以python代码片段完成。

    在你的情况下,如果你总是有白色背景,你可能只是使用阈值。

答案 1 :(得分:0)

这里我删除了带有颜色值的像素, 你可以修改它。

from PIL import Image
#here i am using 1.jpg to 40.jpg images
#code will remove all pixel which is graterthan (245,245,245)
for i in range(1,41):
    i = str(i)
    img = Image.open(i+'.jpg') #open image
    img = img.convert("RGBA")
    datas = img.getdata()
    newData = []
    for item in datas:
        if item[0] >= 245 and item[1] >= 245 and item[2] >= 245:    #check pixel color
            newData.append((255, 255, 255, 0))                   
        else:
            newData.append(item)
    i = int(i)
    print i 
    img.putdata(newData)
    i = str(i)
    #img = img.convert("LA") convert image in Grayscale
    img.save(i+'.png', "PNG") #save as png file