如何在Objective C中检测图像中的不同图层

时间:2013-08-19 05:46:08

标签: iphone ios objective-c ipad

我正在开发一个我有图像的应用程序,我想检测所有不同的图像层。例如,假设我有一个建筑物的内部图像,其中包含墙壁,沙发,地毯,椅子,床等。现在我想检测不同层次的图像,如沙发,床,椅子,墙壁等,以便我可以单独着色。

请帮帮我。

2 个答案:

答案 0 :(得分:3)

为此,你将不得不深入研究图像处理:

  1. 一个不错的图像处理库:GPUImage from BradLarson

  2. 您必须了解边缘检测并从该检测中获得分数。

  3. 一旦得到这些点,就必须将边缘分成单独的闭合形状。为此,你必须学习凸形和凹形的实现策略。

  4. 在图像上检测到某些形状后,您可以对形状中包含的图像的基础区域执行颜色更改。

  5. 但是,作为提醒,这只会产生近似输出,因为图像中的对象可能处于各种光照条件下,因此边缘检测可能无法捕获对象的真实边界。

答案 1 :(得分:2)

你没有。编写软件以检测照片/图像中的“椅子”与“桌子”是不可能的。它不是关于图层,图像中只有像素。你可以写一个像Photoshops魔术棒这样的工具,它可以选择彼此靠近的颜色。但是,它实际上并不是真正以任何自动化方式工作,因为计算机无法根据您的思维方式“看到”主席的方式做出决策。