2012-05-03 1 views
1

私は、顔の検出技術を使用してユーザーの顔を既存の画像に挿入できる「穴の中の顔」または「写真ブース」アプリを構築しています。私は顔検出を使って顔の境界を切り取ってUIImageにしています。iPhone iOSの「穴の中の顔」アプリの一種で、一緒に2つの画像をつなぎ合わせる方法は?

下の男の耳の近くの顔と髪の鋭い境界線を参照してください。どのようにそのような移行を平滑化し、一緒によくブレンドできますか?私は写真を "展開"するアプリがあることを知っていますが、私はこの目的のために使用できるよく知られたアルゴリズムのいくつかの種類ですか?

face detection example

私の質問は、このような画像にユーザの顔に貼り付ける方法ですか?私はカットアウトの顔に透明マスクを追加して(効果的に顔の穴を切り取る)、切り抜きの背後にあるビューからのライブカメラのフィードからユーザーの顔を置き換えることを考えていました。

私にとって心配なのは、この方法では、カットアウトされた面のエッジの周りにシャープなエッジが作成されるということです。どのようにこのエッジを滑らかにすることができますか?純粋なアルファチャンネルではなく、私の透過マスクは、アルファチャンネルが中央に1、外側にはグラデーションでなくてはなりませんか?

2つの画像をブレンドして境界線を消したり、目立たないようにするにはどうすればよいですか?

+0

あなたは読書で始まる必要がありますhttps://developer.apple.com/library/ios/#documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/Introduction/Introduction.html –

答えて

0

2つのPNGファイルをロードした2つのUIImageviewを使用すると、Photoshopなどの画像編集アプリケーションでPNGを保存できます。 マスクを避けるには、必要に応じて透明に終わるグラデーションを持つPNGを使用します。

あなたとUIImageviewを追加しますときことを覚えておいてください:

UIImageView* myPortrait = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"myPortrait" ofType:@"png"]]]; 
myPortrait.frame = CGRectMake(50, 50, 80, 100); 
[self.view addSubview:myPortrait]; 
UIImageView* photoWithHole = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"photoWithHole" ofType:@"png"]]]; 
photoWithHole.frame = CGRectMake(0, 0, 320, 480); 
[self.view addSubview:photoWithHole]; 

あなたはそうと写真の前に肖像画を追加することを忘れない画像が最初で、最後のアウト基づいて表示されていることを覚えておいてください穴。

+0

残念ながら、アプリ内に画像がプリロードされていません(ユーザーは、私はこの種の画像操作をすることができません。 –

+1

イメージをプログラムで操作するには、このガイドを読んでください:https://developer.apple.com/library/mac/#documentation/graphicsimaging/conceptual/drawingwithquartz2d/dq_images/dq_images.html – Neo

+0

ここにはiOSの同等のリンクがあります:https:///developer.apple.com/library/ios/documentation/graphicsimaging/conceptual/drawingwithquartz2d/dq_images/dq_images.html#//apple_ref/doc/uid/TP30001066-CH212-TPXREF101 – jlmendezbonini

0

OpenCVライブラリを確認してください。あなたが望むようなほぼすべての機能は、一般にOpenCVで実行されます。

OpenCVは、C++画像検出および操作ライブラリです。 objC++ラッパーフレームワークxCodeがあります。

iOSのopenCVの基礎を学ぶ。

xCodeプロジェクトにOpenCV Frameworkを埋め込む。 HPPへのごのViewControllerのミリメートル

変更時間延長

輸入opencv2/opencv.hpp ... ... ... へのごのViewControllerの

変更メートル延長...あなたはおそらく確認する必要があり

もの: http://docs.opencv.org/master/d7/d8b/tutorial_py_face_detection.html#gsc.tab=0

http://www.bogotobogo.com/python/OpenCV_Python/python_opencv3_Image_Object_Detection_Face_Detection_Haar_Cascade_Classifiers.php

https://www.youtube.com/watch?v=Gdy3fLS_fZA

か、使用可能CoreImage

https://maniacdev.com/2011/11/tutorial-easy-face-detection-with-core-image-in-ios-5

関連する問題