是否可以提取图像前面的任何形状?
让我们说我们前面有两个物体1的图像,另一个在后面,是一个空白或透明的背景。
我们可以提取前面的那个并将它放在一个新的图像中吗?
可以通过检测正面形状的边缘然后裁剪它来完成吗?
这篇文章正在接近我的问题:
Cropping Particular Region In Image Using C#
但我想完全自动化。
任何帮助都将受到高度赞赏。
提前致谢。
答案 0 :(得分:2)
我认为你不能完全自动化;然而,可能有一些半自动化的方式,至少,您需要一些先验信息,例如您的物体可以放置多远。以下是我的一些建议。
第一种方式(您有实施学术论文的经验,您有关于对象深度的一些先验信息),
可以推断输入图像的粗略深度图。通过使用此功能,您将尝试推断输入图像的深度图,然后删除包含您的对象的特定深度范围。您可以查看论文[2]以获得更详细的说明。
第二种方式(假设:在算法结束时允许人工输入。), - 分割图像(您可以通过一点点搜索找到最先进的算法) - 选择要删除的轮廓。
来自http://vision.ece.ucsb.edu/segmentation/edgeflow/images/garden_edge.gif
的分段图片示例<强>参考文献:强>
[1] Aude Oliva 场景要点
[2] Karsch,K。;刘,C。;康,S.B。 IEEE模式分析和机器智能交易(TPAMI),2014年。
答案 1 :(得分:0)
OpenCV提供了提取对象轮廓的选项。因此,将图像转换为灰度并将其转换为打开的CV,检测图像中的所有轮廓。并根据您的要求选择所需的轮廓。 由于你的项目是在C#上,你可以看一下Emgu CV,它是OpenCV的跨平台.Net包装器。 PL。请参阅以下网址,您可以在此下载Emgu CV的示例。
http://sourceforge.net/projects/emguexample/?source=recommended