通过选择对象和颜色匹配来裁剪图像

Cropping image By selecting Object and color matching

我们正在开发一个应用程序,我们需要根据 selecting 对象区域裁剪图像。用户将画一条线,我们需要 select 对象并裁剪它。裁剪需要像应用程序一样:YourMoji

到目前为止,我们已经尝试获取沿线像素的颜色,然后将这些颜色与图像中每个像素的颜色进行比较,并从中创建一条路径来裁剪图像。但是差点没去哪。

是否可以通过这种方式裁剪图像,或者我们走错了路?任何人都可以提供一种方法来做到这一点或建议一种方法来修改我们迄今为止的工作方式吗?
任何意见和建议将不胜感激!
提前致谢。

我不太了解图像处理,但第一个想到的算法是这样的:

  • 取直线中像素的平均值(如您所用)
    • 由于您似乎想要面孔,因此您可能希望将红色和蓝色置于绿色之上。任何肤色的脸上都没有多少绿色。
  • 对于每个像素,如果颜色在您选择的平均值之外的给定阈值内,则将其移除/使其透明。

  • 可能越靠近原线(或质心),阈值越不严格

然后我会为用户提供一些工具用于:

  • 灵敏度:阈值有多大
  • 橡皮擦:删除算法遗漏的图像部分
  • 画笔:替换您的算法错误删除的图像部分。

我猜你想要的是图像分割算法Graph Cut

这里有两个 Github 存储库,希望对您有所帮助: