2015-04-21 22 views
0

是否可以提取图像前面的任何形状?如何在C中的图像中提取正面形状#

假设我们有一个在前面的两个物体1的图像,另一个在后面,空白或透明的背景。

我们可以提取一个在前面,并将其放置在一个新的形象?

这可以通过检测正面形状的边缘然后裁剪来完成吗?

本文附近做一些我的问题:

Cropping Particular Region In Image Using C#

,但我想这样做完全自动化。

任何帮助将不胜感激。

在此先感谢。

+0

在你问的一般方式,答案是:不,你不能自动分辨两个任意对象分开。如果您向我们展示几个典型示例,我们可能会想到提示如何解决该类图像的问题,但一般解决方案只能是半自动的过程。 – TaW

回答

2

我认为你不能做到这一点完全自动化;然而,也许有一些半自动化的方式,至少,你需要一些先前的信息,比如你的物体可以放置多远。以下是我的一些建议。

第一种方式(你必须在实施学术论文的经验,您对对象的地方深度的一些现有信息),

  • 下载“场景 - 深度图像数据库”,从互联网
  • 获取数据库的平均值
  • 根据场景的GISt查询输入图像的K-最近邻居[1]
  • 根据输入场景应用SIFT流对齐数据库场景
  • 推测深度
  • 从图像中删除一定范围。

可以推断输入图像的粗糙深度图。通过使用它,您将尝试推断输入图像的深度图,然后移除包含您的对象的特定深度范围。您可以查看文件[2]以获取更详细的说明。

enter image description here

示例深度地图从http://www.the.me/wp-content/uploads/2013/09/z-depth_map_expanding_exif_more_powerful_post-processing_2n.jpg

方式二(假设:人的输入是在算法的最后允许的。), - 段的影像(你可以找到最先进的算法,带一点搜索) - 选择要删除的轮廓。从http://vision.ece.ucsb.edu/segmentation/edgeflow/images/garden_edge.gif

参考

segmented image

实施例分割的图像:

[1]奥德奥利瓦 主旨场景

[2]蝎,K的.;刘,C。 Kang,S.B. IEEE Transactions on Pattern Analysis and Machine Intelligence(TPAMI),2014.

+0

我真的很感激你的帮助,但是,我有点初学者,所以你建议需要很长时间才能理解和试用.. –

0

OpenCV提供了提取对象轮廓的选项。因此,将图像转换为灰度并提供给公开的简历,检测图像中的所有轮廓。并根据您的要求选择所需的轮廓。 由于您的项目在C#上,您可以看看Emgu CV,它是OpenCV的跨平台.Net包装器。 PL。请参阅下面的URL,您可以下载Emgu CV的示例。

http://sourceforge.net/projects/emguexample/?source=recommended

+0

C#和* AForge *是在标签中指定的,所以* OpenCV *几乎不是一个选项。不过,您可能会指出* EmguCV *作为* AForge *的C#替代品。 –

+0

感谢您指出,我编辑了回复。 – shri

+0

看起来像一个很好的开始,我会尝试并返回结果。谢谢。 –

相关问题