【问题标题】:iOS how to mask the image background coloriOS如何屏蔽图像背景颜色
【发布时间】:2014-11-17 20:05:03
【问题描述】:

我想在我的 iOS 应用中做以下事情:

  1. 用户可以在白色背景纸上绘画。
  2. 我的应用程序允许用户捕获绘制的图像。此处图像将以白色背景捕获。
  3. 最后,我需要从捕获的图像中屏蔽白色背景颜色,然后将图像单独放入 UIImage 对象中。

我完成了第 1 步和第 2 步。但我不知道如何执行最后一步。是否有任何我可以在我的 iOS 应用程序中使用的 openCV 库?

任何可能非常感谢的帮助。

【问题讨论】:

  • 你是如何捕捉“用户触摸绘制”的?
  • 在我的情况下,用户不会直接在手机屏幕上绘制图像,而是将图像绘制在白色背景彩色纸上,我的应用程序将使用我的 iphone 应用程序扫描图像。

标签: ios iphone opencv image-processing opengl-es-2.0


【解决方案1】:

好吧,既然 OpenCV 本身就是库,我猜您正在寻找一种使用 OpenCV 的方法。

  • 首先,convert the input image to Mat,这是 OpenCV 用来表示图像的数据类型;
  • 然后,假设背景是白色,threshold the Mat 将背景与用户绘制的任何内容分开。根据下面的例子,这个操作的结果是让背景变黑,每个不是黑色的像素都代表了用户画的东西:

  • 最后,将生成的Mat 转换为UIImage:为此,在Mat 上进行迭代并将每个不是黑色的像素复制到UIImage 以获得一个仅包含用户内容的UIImage画。

一个更好的主意是迭代阈值Mat,找出哪个像素不是黑色的,而不是将其直接复制到新的UIImage,而是从原始@987654333复制那个像素(x,y) @,所以最后你有一个彩色像素,这会产生更真实的结果。

【讨论】:

  • 似乎您的解决方案可以正常工作,我想让我试试看。您能否指出可以处理上述操作的更好的库?还是仅使用目标 C i 就可以实现?
  • Obj-C 和 OpenCV。如果你不想使用外部库,这个操作在 Obj-C 中很容易实现。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-22
  • 2019-09-03
相关资源
最近更新 更多