2015-04-21 26 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

看起來像一個很好的開始,我會嘗試並返回結果。謝謝。 –

相關問題