2012-09-11 70 views

回答

3

它是勉強可能,但需要一些重大的計算。我知道iOS沒有現成的庫。所以,如果你問,「是否有可能做到這一點容易?」,我會回答,恐怕不是

工具出現這樣做通常會使用一些快捷方式,例如

  • 利用人臉檢測(即他們工作,只要「對象」是一個人臉
  • 槓桿面積分析(即他們檢查是否在圖片中間,無論是否重點)

人臉識別是可用的,我相信,石英。無論如何,退房Face Recognition on the iPhone

在一般和雜亂的情況下,通常可以通過分析圖像中的對比度或空間頻率(分爲小區域(通常爲16x16或8x8像素))來識別聚焦區域(假設存在)。那些低對比度和/或高頻丟失的區域是背景,而高頻(清晰度)表示聚焦區域。

這不會告訴你的圖像邊界,也會給出一些誤報(也可能是負面的);但是在這個階段結束時,對於像素爲16像素的每個紋理元素,您將獲得原始圖像的採樣,其狀態爲「聚焦」,「未聚焦」和「不確定」。

在該地圖上,你將不得不申請啓發,例如:

  • 邊界通常是背景的一部分(因此應試驗陽性)
  • 小尺寸的聚焦區域可能是一個假陰性
  • 小尺寸的聚焦區域可能是一個假陽性

在這個細化階段結束時,你應該有focu上的一些連續大「斑點」 sed地區。然後檢查這些邊界,尋找顏色或光度的銳轉變(通常從斑點中心的徑向方向)。這是另一種啓發式:我們假設你不會在紅色背景上聚焦紅蘋果,或者如果你這樣做,蘋果將會有高亮顯示黃色,白色或非常淺的紅色,並允許跟蹤「輪廓」。

一旦每個斑點有其自己的輪廓,你可以使用它作爲剪影。

你會做這一切的使用工具,如核心圖像

http://developer.apple.com/library/mac/#documentation/GraphicsImaging/Conceptual/CoreImaging/ci_intro/ci_intro.html

,或者更適合的任務,VIMAGE

http://developer.apple.com/library/ios/#documentation/Performance/Conceptual/vImage/Introduction/Introduction.html#//apple_ref/doc/uid/TP30001001

+1

這可能是棘手的核心圖像在iOS上爲你做這件事,缺乏自定義內核,但我的愛好項目可能會有所幫助:https://github.com/BradLarson/GPUImage。您可能也可以使用圖像漸變來幫助識別清晰的區域,因爲缺乏焦點應該會抑制邊緣的強度,並且Sobel內核可能會將其解決。 –