从图像中删除对象

时间:2013-04-13 01:41:47

标签: image image-processing

我的供应商提供了数千张图片。他们是穿着时装的模特。我只需要拍摄衣服的一部分图像并丢弃其余部分并使其成为透明背景。所有图像都有一种颜色背景,但它们的颜色不同。目前我们手动执行以下步骤,如果有办法自动执行此操作或需要更快地完成手动过程,我需要建议和帮助。我们使用Gimps和script-fu来自动执行此过程的某些部分(参见下面的步骤),但仍然剩下的手动部分非常耗时。是否有任何工具或任何编程语言或脚本可以使这个过程更快?

这就是我们现在的做法:

  1. 我们使用Gimps script-fu批量运行,使所有图像背景透明。
  2. 将每张图片逐个加载到Gimps中
  3. 通过自由选择,我们在衣服周围标记
  4. 移除标记衣服区域外的所有物品
  5. 导出并将图像保存为png格式。
  6. 批量运行script-fu以自动裁剪所有图像
  7. 我还没有想出办法(代码或脚本)自动执行第3步。有谁知道这是否可能?如果不是,是否有任何工具可以将步骤4-6组合到一个控制键中,从而减少击键和更快的方式来完成这些图像?


    感谢您的建议。这就是我想要使我的第3步和第4步自动化的目的。你认为这种方法是否有效?有没有更好的方法来处理它?<​​/ p>

    通过我们的批处理作业,所有图像都具有透明背景。所以我的想法是现在删除身体部位。

    1. 自动裁剪所有图像,使头部和脚部成为图像的最顶部和最底部。
    2. 对PHP程序进行编码,以便从皮肤的数据库颜色列表中检测肤色。
    3. 然后转到图像的每个像素并检测肤色的开始位置。
    4. 从图像的最顶部开始,第一个像素的肤色必须是头部或颈部。我删除了起始第一个像素上方的所有内容,因此如果图像具有完整的模型,我将能够摆脱头发。下面的任何东西都可以是脸部和颈部,我将用透明背景替换颜色。我还是不知道如何摆脱脸部右侧和左侧的头发。
    5. 逐像素地从图像底部搜索,直到与肤色匹配。我删除了从该像素到页面底部的所有内容。这样我也可以摆脱鞋子的部分。 6.用透明背景替换剩余的皮肤部分。
    6. 问题是手有时覆盖衣服,我不知道如何处理。也许如果相邻像素不是透明背景,那么请将该部分单独留下。

      我也不知道如何处理可能与皮肤颜色相同的衣服(衣服或衬衫)?

1 个答案:

答案 0 :(得分:0)

第3步可以是半自动化的。也就是说,这样做需要的人际交互远远少于您目前使用的人际交互。我从你的问题中得到的印象是,你不是程序员。因此,我将向您介绍一个名为Power Stroke的特定现成工具。它插入非免费工具。可能有GIMP等价物。我不知道。