(57)【要約】【課題】画像の編集において、被写体を自由に切り出し、自由な位置に貼り付ける。【解決手段】被写体領域検出部２１は、入力画像より被写体の存在する領域を被写体領域として検出する。被写体切出部２５は、被写体領域の画像を入力画像より切り出す。マスク画像修復部２６は、被写体領域との境界上の所定領域毎の優先度を計算し、所定領域毎の優先度のうち、最上位の優先度となる所定領域の画像と類似する領域を、被写体領域の画像が切り出された入力画像上で検索し、検索された所定領域と類似する領域に隣接する領域であって、被写体領域として切り出された領域に対応する隣接領域の画像を複写し、最上位の優先度となる所定領域に隣接する、被写体領域として切り出された領域に、隣接領域を複写した画像を貼り付けて修復する。画像合成部２８は、切り出した被写体領域を合成する。本発明は、画像処理装置に適用することができる。【選択図】図１
2011176748.tif 000002
【特許請求の範囲】
【請求項１】
入力画像より被写体の存在する領域を被写体領域として検出する被写体領域検出手段と、
前記被写体領域の画像を前記入力画像より切り出す切出手段と、
前記入力画像において、前記被写体領域との境界上の所定領域毎の優先度を計算する優先度計算手段と、
前記被写体領域との境界上の所定領域毎の優先度のうち、最上位の優先度となる所定領域の画像と類似する領域を、前記被写体領域の画像が切り出された状態の前記入力画像上で検索する検索手段と、
前記検索手段により検索された前記所定領域と類似する領域に隣接する領域であって、前記被写体領域として切り出された領域に対応する領域からなる隣接領域の画像を複写し、前記最上位の優先度となる所定領域に隣接する、前記被写体領域として切り出された領域に、前記隣接領域を複写した画像を貼り付けて前記被写体領域を修復する修復手段と、
前記切出手段により切り出された前記被写体領域の画像と前記修復手段により前記被写体領域が修復された画像とを合成する合成手段と
を含む画像処理装置。
【請求項２】
前記被写体領域に相当する付加領域を入力する付加領域入力手段と、
前記被写体領域に、前記付加領域を付加した領域を前記被写体領域として付加する被写体領域付加手段とをさらに含む
請求項１に記載の画像処理装置。
【請求項３】
前記優先度計算手段は、前記修復手段により修復された被写体領域との境界上の所定領域毎の優先度を再計算し、
前記検索手段は、前記被写体領域との境界上の所定領域毎の再計算された優先度のうち、最上位の優先度となる所定領域の画像と類似する領域を、前記被写体領域の画像が切り出された状態の前記入力画像上で検索し、
前記修復手段は、前記検索手段により検索された前記所定領域と類似する領域に隣接する領域であって、前記被写体領域として切り出された領域に対応する領域からなる隣接領域の画像を複写し、前記最上位の優先度となる所定領域に隣接する、前記被写体領域として切り出された領域に、前記隣接領域を複写した画像を貼り付けて前記被写体領域を修復する
請求項１に記載の画像処理装置。
【請求項４】
前記優先度計算手段、前記検索手段、および前記修復手段は、前記被写体領域の全領域が修復されるまで、同様の処理を繰り返す
請求項３に記載の画像処理装置。
【請求項５】
入力画像より被写体の存在する領域を被写体領域として検出する被写体領域検出手段と、
前記被写体領域の画像を前記入力画像より切り出す切出手段と、
前記入力画像において、前記被写体領域との境界上の所定領域毎の優先度を計算する優先度計算手段と、
前記被写体領域との境界上の所定領域毎の優先度のうち、最上位の優先度となる所定領域の画像と類似する領域を、前記被写体領域の画像が切り出された状態の前記入力画像上で検索する検索手段と、
前記検索手段により検索された前記所定領域と類似する領域に隣接する領域であって、前記被写体領域として切り出された領域に対応する領域からなる隣接領域の画像を複写し、前記最上位の優先度となる所定領域に隣接する、前記被写体領域として切り出された領域に、前記隣接領域を複写した画像を貼り付けて前記被写体領域を修復する修復手段と、
前記切出手段により切り出された前記被写体領域の画像と前記修復手段により前記被写体領域が修復された画像とを合成する合成手段と
を含む画像処理装置の画像処理方法であって、
前記被写体領域検出手段における、前記入力画像より被写体の存在する領域を被写体領域として検出する被写体領域検出ステップと、
前記切出手段における、前記被写体領域の画像を前記入力画像より切り出す切出ステップと、
前記優先度計算手段における、前記入力画像において、前記被写体領域との境界上の所定領域毎の優先度を計算する優先度計算ステップと、
前記検索手段における、前記被写体領域との境界上の所定領域毎の優先度のうち、最上位の優先度となる所定領域の画像と類似する領域を、前記被写体領域の画像が切り出された状態の前記入力画像上で検索する検索ステップと、
前記修復手段における、前記検索ステップの処理により検索された前記所定領域と類似する領域に隣接する領域であって、前記被写体領域として切り出された領域に対応する領域からなる隣接領域の画像を複写し、前記最上位の優先度となる所定領域に隣接する、前記被写体領域として切り出された領域に、前記隣接領域を複写した画像を貼り付けて前記被写体領域を修復する修復ステップと、
前記合成手段における、前記切出ステップの処理で切り出された前記被写体領域の画像と前記修復ステップの処理で前記被写体領域が修復された画像とを合成する合成ステップと
を含む画像処理方法。
【請求項６】
入力画像より被写体の存在する領域を被写体領域として検出する被写体領域検出手段と、
前記被写体領域の画像を前記入力画像より切り出す切出手段と、
前記入力画像において、前記被写体領域との境界上の所定領域毎の優先度を計算する優先度計算手段と、
前記被写体領域との境界上の所定領域毎の優先度のうち、最上位の優先度となる所定領域の画像と類似する領域を、前記被写体領域の画像が切り出された状態の前記入力画像上で検索する検索手段と、
前記検索手段により検索された前記所定領域と類似する領域に隣接する領域であって、前記被写体領域として切り出された領域に対応する領域からなる隣接領域の画像を複写し、前記最上位の優先度となる所定領域に隣接する、前記被写体領域として切り出された領域に、前記隣接領域を複写した画像を貼り付けて前記被写体領域を修復する修復手段と、
前記切出手段により切り出された前記被写体領域の画像と前記修復手段により前記被写体領域が修復された画像とを合成する合成手段と
を含む画像処理装置を制御するコンピュータに、
前記被写体領域検出手段における、前記入力画像より被写体の存在する領域を被写体領域として検出する被写体領域検出ステップと、
前記切出手段における、前記被写体領域の画像を前記入力画像より切り出す切出ステップと、
前記優先度計算手段における、前記入力画像において、前記被写体領域との境界上の所定領域毎の優先度を計算する優先度計算ステップと、
前記検索手段における、前記被写体領域との境界上の所定領域毎の優先度のうち、最上位の優先度となる所定領域の画像と類似する領域を、前記被写体領域の画像が切り出された状態の前記入力画像上で検索する検索ステップと、
前記修復手段における、前記検索ステップの処理により検索された前記所定領域と類似する領域に隣接する領域であって、前記被写体領域として切り出された領域に対応する領域からなる隣接領域の画像を複写し、前記最上位の優先度となる所定領域に隣接する、前記被写体領域として切り出された領域に、前記隣接領域を複写した画像を貼り付けて前記被写体領域を修復する修復ステップと、
前記合成手段における、前記切出ステップの処理で切り出された前記被写体領域の画像と前記修復ステップの処理で前記被写体領域が修復された画像とを合成する合成ステップと
を含む処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および方法、並びにプログラムに関し、特に、画像を編集する際、被写体を切り出すと共に、自由な位置に移動できるようにする画像処理装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
画像内における被写体を自由に切り出して、自由な位置に貼付するといった編集機能を備えたソフトウェアが一般に普及している。
【０００３】
これらのソフトウェアには、複数の画像を重ね合わせることにより、複数の被写体を合成して１枚の画像に編集することができるものが提案されている（特許文献１参照）。
【０００４】
また、画像に様々なアイコンを付加することにより、画像を加工することができるものが提案されている（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−２５９８２２号公報
【特許文献２】特開２００６−０８１２２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載の技術においては、単純に画像を重ね合わせることしかできず、被写体の切り抜きや元画像における被写体位置を修正するといったことができなかった。
【０００７】
また、特許文献２に記載の技術においては、星形などのアイコンを付加するという加工のみであり、例えば、被写体を切り出したりするといったことはできなかった。
【０００８】
本発明はこのような状況に鑑みてなされたものであり、特に、画像の編集において、被写体を自由に切り出し、自由な位置に貼り付けることができるようにするものである。
【課題を解決するための手段】
【０００９】
本発明の一側面の画像処理装置は、入力画像より被写体の存在する領域を被写体領域として検出する被写体領域検出手段と、前記被写体領域の画像を前記入力画像より切り出す切出手段と、前記入力画像において、前記被写体領域との境界上の所定領域毎の優先度を計算する優先度計算手段と、前記被写体領域との境界上の所定領域毎の優先度のうち、最上位の優先度となる所定領域の画像と類似する領域を、前記被写体領域の画像が切り出された状態の前記入力画像上で検索する検索手段と、前記検索手段により検索された前記所定領域と類似する領域に隣接する領域であって、前記被写体領域として切り出された領域に対応する領域からなる隣接領域の画像を複写し、前記最上位の優先度となる所定領域に隣接する、前記被写体領域として切り出された領域に、前記隣接領域を複写した画像を貼り付けて前記被写体領域を修復する修復手段と、前記切出手段により切り出された前記被写体領域の画像と前記修復手段により前記被写体領域が修復された画像とを合成する合成手段とを含む。
【００１０】
前記被写体領域に相当する付加領域を入力する付加領域入力手段と、前記被写体領域に、前記付加領域を付加した領域を前記被写体領域として付加する被写体領域付加手段とをさらに含ませるようにすることができる。
【００１１】
前記優先度計算手段には、前記修復手段により修復された被写体領域との境界上の所定領域毎の優先度を再計算させ、前記検索手段には、前記被写体領域との境界上の所定領域毎の再計算された優先度のうち、最上位の優先度となる所定領域の画像と類似する領域を、前記被写体領域の画像が切り出された状態の前記入力画像上で検索させ、前記修復手段には、前記検索手段により検索された前記所定領域と類似する領域に隣接する領域であって、前記被写体領域として切り出された領域に対応する領域からなる隣接領域の画像を複写させし、前記最上位の優先度となる所定領域に隣接する、前記被写体領域として切り出された領域に、前記隣接領域を複写した画像を貼り付けて前記被写体領域を修復させるようにすることができる。
【００１２】
前記優先度計算手段、前記検索手段、および前記修復手段には、前記被写体領域の全領域が修復されるまで、同様の処理を繰り返させるようにすることができる。
【００１３】
前記合成手段は十分に切り出し画像の精度があれば省略することもできる。
【００１４】
本発明の一側面の画像処理方法は、入力画像より被写体の存在する領域を被写体領域として検出する被写体領域検出手段と、前記被写体領域の画像を前記入力画像より切り出す切出手段と、前記入力画像において、前記被写体領域との境界上の所定領域毎の優先度を計算する優先度計算手段と、前記被写体領域との境界上の所定領域毎の優先度のうち、最上位の優先度となる所定領域の画像と類似する領域を、前記被写体領域の画像が切り出された状態の前記入力画像上で検索する検索手段と、前記検索手段により検索された前記所定領域と類似する領域に隣接する領域であって、前記被写体領域として切り出された領域に対応する領域からなる隣接領域の画像を複写し、前記最上位の優先度となる所定領域に隣接する、前記被写体領域として切り出された領域に、前記隣接領域を複写した画像を貼り付けて前記被写体領域を修復する修復手段と、前記切出手段により切り出された前記被写体領域の画像と前記修復手段により前記被写体領域が修復された画像とを合成する合成手段とを含む画像処理装置の画像処理方法であって、前記被写体領域検出手段における、前記入力画像より被写体の存在する領域を被写体領域として検出する被写体領域検出ステップと、前記切出手段における、前記被写体領域の画像を前記入力画像より切り出す切出ステップと、前記優先度計算手段における、前記入力画像において、前記被写体領域との境界上の所定領域毎の優先度を計算する優先度計算ステップと、前記検索手段における、前記被写体領域との境界上の所定領域毎の優先度のうち、最上位の優先度となる所定領域の画像と類似する領域を、前記被写体領域の画像が切り出された状態の前記入力画像上で検索する検索ステップと、前記修復手段における、前記検索ステップの処理により検索された前記所定領域と類似する領域に隣接する領域であって、前記被写体領域として切り出された領域に対応する領域からなる隣接領域の画像を複写し、前記最上位の優先度となる所定領域に隣接する、前記被写体領域として切り出された領域に、前記隣接領域を複写した画像を貼り付けて前記被写体領域を修復する修復ステップと、前記合成手段における、前記切出ステップの処理で切り出された前記被写体領域の画像と前記修復ステップの処理で前記被写体領域が修復された画像とを合成する合成ステップとを含む。
【００１５】
本発明の一側面のプログラムは、入力画像より被写体の存在する領域を被写体領域として検出する被写体領域検出手段と、前記被写体領域の画像を前記入力画像より切り出す切出手段と、前記入力画像において、前記被写体領域との境界上の所定領域毎の優先度を計算する優先度計算手段と、前記被写体領域との境界上の所定領域毎の優先度のうち、最上位の優先度となる所定領域の画像と類似する領域を、前記被写体領域の画像が切り出された状態の前記入力画像上で検索する検索手段と、前記検索手段により検索された前記所定領域と類似する領域に隣接する領域であって、前記被写体領域として切り出された領域に対応する領域からなる隣接領域の画像を複写し、前記最上位の優先度となる所定領域に隣接する、前記被写体領域として切り出された領域に、前記隣接領域を複写した画像を貼り付けて前記被写体領域を修復する修復手段と、前記切出手段により切り出された前記被写体領域の画像と前記修復手段により前記被写体領域が修復された画像とを合成する合成手段とを含む画像処理装置を制御するコンピュータに、前記被写体領域検出手段における、前記入力画像より被写体の存在する領域を被写体領域として検出する被写体領域検出ステップと、前記切出手段における、前記被写体領域の画像を前記入力画像より切り出す切出ステップと、前記優先度計算手段における、前記入力画像において、前記被写体領域との境界上の所定領域毎の優先度を計算する優先度計算ステップと、前記検索手段における、前記被写体領域との境界上の所定領域毎の優先度のうち、最上位の優先度となる所定領域の画像と類似する領域を、前記被写体領域の画像が切り出された状態の前記入力画像上で検索する検索ステップと、前記修復手段における、前記検索ステップの処理により検索された前記所定領域と類似する領域に隣接する領域であって、前記被写体領域として切り出された領域に対応する領域からなる隣接領域の画像を複写し、前記最上位の優先度となる所定領域に隣接する、前記被写体領域として切り出された領域に、前記隣接領域を複写した画像を貼り付けて前記被写体領域を修復する修復ステップと、前記合成手段における、前記切出ステップの処理で切り出された前記被写体領域の画像と前記修復ステップの処理で前記被写体領域が修復された画像とを合成する合成ステップとを含む処理を実行させる。
【００１６】
本発明の一側面においては、入力画像より被写体の存在する領域が被写体領域として検出され、前記被写体領域の画像が前記入力画像より切り出され、前記入力画像において、前記被写体領域との境界上の所定領域毎の優先度が計算され、前記被写体領域との境界上の所定領域毎の優先度のうち、最上位の優先度となる所定領域の画像と類似する領域が、前記被写体領域の画像が切り出された状態の前記入力画像上で検索され、検索された前記所定領域と類似する領域に隣接する領域であって、前記被写体領域として切り出された領域に対応する領域からなる隣接領域の画像が複写され、前記最上位の優先度となる所定領域に隣接する、前記被写体領域として切り出された領域に、前記隣接領域が複写された画像が貼り付けられて前記被写体領域が修復され、切り出された前記被写体領域の画像と前記被写体領域が修復された画像とが合成される。
【００１７】
本発明の画像処理装置は、独立した装置であっても良いし、画像処理を行うブロックであっても良い。
【発明の効果】
【００１８】
本発明の一側面によれば、画像を編集する際、被写体を切り出すと共に、自由な位置に移動できるようにすることが可能となる。
【図面の簡単な説明】
【００１９】
【図１】本発明を適用した画像処理装置の一実施の形態の構成例を示すブロック図である。
【図２】図１の画像処理装置により実行される画像編集を説明する図である。
【図３】被写体検出部の構成例を示すブロック図である。
【図４】アルファマスク画像生成部の構成例を示すブロック図である。
【図５】図４のアルファマスク画像生成部の動作を説明する図である。
【図６】切出部の構成例を示すブロック図である。
【図７】マスク画像修復部の構成例を示すブロック図である。
【図８】画像合成部の構成例を示すブロック図である。
【図９】図１の画像処理装置による画像処理を説明するフローチャートである。
【図１０】図３の被写体検出部による被写体領域検出処理を説明するフローチャートである。
【図１１】アルファマスク画像生成処理を説明するフローチャートである。
【図１２】アルファマスク画像生成処理を説明する図である。
【図１３】アルファマスク画像生成処理を説明する図である。
【図１４】アルファマスク画像生成処理を説明する図である。
【図１５】アルファマスク画像生成処理を説明する図である。
【図１６】切出処理を説明するフローチャートである。
【図１７】切出処理を説明する図である。
【図１８】切出処理を説明する図である。
【図１９】マスク画像修復処理を説明するフローチャートである。
【図２０】画像合成処理を説明するフローチャートである。
【図２１】被写体検出部のその他の構成例を示すブロック図である。
【図２２】図２１の被写体検出部による被写体領域検出処理を説明するフローチャートである。
【図２３】汎用のパーソナルコンピュータの構成例を説明する図である。
【発明を実施するための最良の形態】
【００２０】
＜第１の実施例＞
［画像処理装置の構成例］
図１は、本発明を適用した画像処理装置のハードウェアの一実施の形態の構成例を示している。図１の画像処理装置１１は、入力画像における被写体からなるオブジェクトの領域を切り出し、切り出した後の領域を修復した後、切り出したオブジェクト領域の画像を自由に移動させて編集するものである。
【００２１】
画像処理装置１１は、被写体領域検出部２１、被写体領域判定部２２、補助入力情報付加部２３、被写体領域設定部２４、被写体切出部２５、マスク画像修復部２６、背景画像記憶部２７、画像合成部２８、被写体切出画像記憶部２９、および出力部３０を備えている。また、画像処理装置１１は、表示処理部３１、および表示部３２を備えている。
【００２２】
被写体領域検出部２１は、入力画像に含まれる被写体の領域を検出し、検出した被写体領域の情報、および入力画像を被写体領域判定部２２、および表示処理部３１に供給する。例えば、図１の画像Ｐ１で示されるような、犬の画像の場合、被写体領域検出部２１は、被写体である犬の画像が存在する領域を検出する。画像Ｐ１においては、犬が存在する範囲がほぼ含む領域Ｚ１が検出されている。しかしながら、画像Ｐ１においては、被写体である犬の画像の全範囲が太線で示される領域Ｚ１に含まれていない場合や、全く被写体領域が検出できない場合もある。尚、被写体領域検出部２１の構成については、図３を参照して、詳細を後述する。
【００２３】
被写体領域判定部２２は、被写体領域検出部２１の検出結果に基づいて、被写体領域が検出されたか否かを判定する。被写体領域判定部２１は、被写体領域が検出されて、画像処理装置１１のユーザから適切に検出されており、それ以上の補助入力が不要である場合、供給されてきた被写体検出領域の情報を被写体切出部２５に供給する。また、被写体領域判定部２２は、被写体領域が検出できない場合、または、被写体領域が検出できたが、ユーザにより補助入力が必要であると判定された場合、被写体領域、および入力画像の情報を補助入力情報付加部２３に供給する。
【００２４】
補助入力情報付加部２３は、マウスやキーボードなどからなる操作部３４が操作内容に応じて出力される操作信号に応じて指示部３３より供給されてくる指示信号に基づいて、被写体領域に付加すべき補助領域の入力を受け付けて、被写体領域に付加する。そして、補助入力情報付加部２３は、被写体領域、および補助領域の情報を被写体領域設定部２４、および表示処理部３１に供給する。
【００２５】
被写体領域設定部２４は、供給されてきた被写体領域に、補助領域を付加することにより被写体領域を編集して設定し、被写体切出部２５に供給する。すなわち、図２の画像Ｐ１においては、上述したように被写体である犬の範囲が領域Ｚ１により完全な状態で被写体領域として検出されていない。そこで、ユーザが操作部３４を操作することにより被写体領域に、付加するように補助領域が付加されて、図２における画像Ｐ２で示されるような被写体領域が設定される。尚、図２の画像Ｐ２においては、実線の丸型で示された範囲が補助領域である。また、このほかの形態として、補助入力付加部２３は被写体切り出し部の後段にするようにしてもよい。すなわち、被写体を切り出した後に、補助入力を付加して切り出し領域を補正する構成をとることもできる。
【００２６】
被写体切出部２５は、アルファマスク画像生成部４１、および切出部４２を備えている。被写体切出部２５は、入力画像より被写体領域設定部２４、または被写体領域判定部２２より供給されてきた被写体領域の画像を、被写体切出画像として切り出し、被写体切出画像を被写体切出画像記憶部２９に記憶させる。また、被写体切出部２５は、被写体切出画像が切り出された状態の入力画像をマスク画像としてマスク画像修復部２６に供給する。すなわち、被写体切出部２５は、画像Ｐ２で示される被写体切出領域の情報から、被写体領域の完全な境界を求めて、例えば、図２における画像Ｐ３で示されるように、犬のみの画像からなる被写体切出画像Ｄ１を切り出し、被写体切出画像記憶部２９に記憶させる。また、被写体切出画像Ｄ１を除いた画像Ｐ３からなるマスク画像をマスク画像修復部２６に供給する。尚、被写体切出部２５のアルファマスク画像生成部４１、および切出部４２の詳細な構成例については、図４，図６を参照して詳細を後述する。
【００２７】
マスク画像修復部２６は、被写体領域が切り出された領域をマスクとして含む入力画像をマスク画像として取得する。そして、マスク画像修復部２６は、被写体領域であったマスク領域を、被写体領域との境界付近の入力画像の情報から修復することで、被写体のない背景画像を生成して、背景画像記憶部２７に記憶させる。尚、マスク画像修復部２６の構成例については、図７を参照して詳細を後述する。
【００２８】
画像合成部２８は、背景画像記憶部２７よりマスク領域が修復された背景画像を読み出すと共に、被写体切出画像記憶部２９に記憶された被写体切出画像を読み出し、合成して画像を生成し、生成した合成画像を出力部３０および表示処理部３１に供給する。この際、画像合成部２８は、指示部３３からの指示内容に応じて、背景画像上の被写体切出画像の位置を様々に変更させて合成する。尚、画像合成部２８の構成例については、図８を参照して詳細を後述する。
【００２９】
出力部３０は、ＨＤＤ（ハードディスクドライブ）や半導体メモリなどの記録媒体や、他の表示機器などからなる図示せぬ様々な外部装置に対して合成画像を出力する。
【００３０】
表示処理部３１は、被写体領域検出部２１、および補助入力情報付加部２３より供給されてくる被写体領域、および補助領域の情報を入力画像と合成して、LCD（Liquid Crystal Display）や有機EL（Electro-Luminescence）などからなる表示部３２に表示させる。また、表示処理部３１は、画像合成部２８より供給されてくる合成画像を表示部３２に表示させる。すなわち、ユーザは、一連の動作を表示部３２を見ながら行うことができる。したがって、表示部３２において、図２の画像Ｐ４における被写体切出画像Ｄ１の位置に表示されている場合、操作部３４を操作することにより、例えば、被写体切出画像Ｄ２の位置に移動させると、図２の画像Ｐ４のように編集される。そして、決定操作がなされると、被写体である犬が入力画像においては、画像Ｐ３で示される被写体切出画像Ｄ１として表示されていた犬の被写体画像が画像Ｐ５の点線で示されるように消去されて、被写体切出画像Ｄ２のみとなった画像に編集される。
【００３１】
［被写体検出部の構成例］
次に、図３を参照して、被写体領域検出部２１の構成例について説明する。
【００３２】
被写体領域検出部２１は、輝度情報抽出部５１、色情報抽出部５２、エッジ情報抽出部５３、被写体情報抽出部５４、動き情報抽出部５５、被写体マップ生成部５６、および被写体領域特定部５７から構成される。
【００３３】
輝度情報抽出部５１乃至動き情報抽出部５５は、供給された入力画像から所定の情報を抽出し、抽出した情報からなる抽出情報画像に基づいて、入力画像の各領域における被写体の領域らしさを示す情報マップを生成する。これらの情報マップに含まれる情報は、被写体の含まれる領域により多く含まれる特徴の特徴量を示す情報とされ、その情報が入力画像の各領域に対応させて並べられたものが情報マップとされる。つまり、情報マップは、入力画像の各領域における特徴量を示す情報であるといえる。
【００３４】
ここで、被写体とは、ユーザが入力画像を一瞥した場合に、ユーザが注目すると推定される入力画像上の物体、つまりユーザが目を向けると推定される物体をいう。したがって、被写体は必ずしも人に限られる訳ではない。また、輝度情報抽出部５１乃至動き情報抽出部５５では、情報マップとして、輝度情報マップ、色情報マップ、エッジ情報マップ、被写体情報マップ、および動き情報マップが生成される。
【００３５】
具体的には、輝度情報抽出部５１は、供給された入力画像のＹ（輝度）成分からなる輝度画像を抽出情報画像として輝度情報マップを生成し、被写体マップ生成部５６に供給する。色情報抽出部５２は、供給された入力画像のＣｒ成分からなるＣｒ画像およびＣｂ成分からなるＣｂ画像を抽出情報画像として色情報マップを生成し、被写体マップ生成部５６に供給する。
【００３６】
エッジ情報抽出部５３は、供給された入力画像の各領域のエッジ強度からなるエッジ画像を抽出情報画像としてエッジ情報マップを生成し、被写体マップ生成部５６に供給する。被写体情報抽出部５４は、供給された入力画像の各領域における、被写体を認識できる情報、例えば、被写体が人である場合、人の顔に関する情報からなる画像を抽出情報画像として顔情報マップを生成し、被写体マップ生成部５６に供給する。動き情報抽出部５５は、供給された入力画像の各領域における、動きに関する情報からなる画像を抽出情報画像として動き情報マップを生成し、被写体マップ生成部５６に供給する。
【００３７】
被写体マップ生成部５６は、輝度情報抽出部５１乃至動き情報抽出部５５から供給された情報マップを足し合わせて被写体マップを生成し、被写体領域特定部５７に供給する。この被写体マップは、入力画像における被写体の含まれる領域を特定するための情報である。
【００３８】
被写体領域特定部５７は、被写体マップ生成部５６からの被写体マップを用いて、供給された入力画像上の被写体の領域を特定し、その特定結果を出力する。
【００３９】
［アルファマスク画像生成部の構成例］
次に、図４を参照して被写体切出部２５のアルファマスク画像生成部４１の詳細な構成例について説明する。
【００４０】
アルファマスク画像生成部４１は、入力画像に対して、抽出したい前景オブジェクト画像である被写体画像と背景画像とを簡単に指定することで、被写体画像の抽出に必要とされる、アルファマスク画像（前景オブジェクト画像の透明度の割合を示す割合画像）を生成するためのトライマップ画像を生成する。そして、アルファマスク画像生成部４１は、そのトライマップ画像によりアルファマスク画像を生成する。尚、以降においては、被写体画像については、必要に応じて、前景画像、または前景オブジェクト画像とも称するものとし、被写体画像以外の画像について、背景画像とも称するものとする。
【００４１】
アルファマスク画像生成部４１は、入力画像取得部７１、２値マスク画像生成部７２、拡張トライマップ画像生成部７３、アルファマスク画像生成部７４、トライマップ画像更新部７５、収束判定部７６、および出力部７７から構成される。
【００４２】
入力画像取得部７１は、抽出しようとする被写体画像である前景オブジェクト画像を含む入力画像Ｉとして取得する。そして、入力画像取得部７１は、取得した入力画像Ｉを２値マスク画像生成部７２、拡張トライマップ画像生成部７３、およびアルファマスク画像生成部７４に供給する。
【００４３】
２値マスク画像生成部７２は、被写体検出判定部２２、または被写体領域設定部より供給される被写体領域設定情報に基づいて、入力画像Ｉより２値マスク画像Ｂを生成し、拡張トライマップ画像生成部７３に供給する。
【００４４】
より具体的には、図２の画像Ｐ２に対応する、図５の入力画像Ｉに対して、画像Ｉ’で示されるように、矩形状のフレームＦ（図２では、被写体領域設定部２４により設定された領域Ｚ２）などにより、抽出したい前景オブジェクト画像が選択されるものとする。
【００４５】
ここで、図５の入力画像Ｉ’においては、前景オブジェクト画像としてフレームＦ内の子犬の画像が選択され、フレームＦ外の範囲が背景画像として選択されている。このような入力画像Ｉ’に対して、グラブカット処理する場合、２値マスク画像生成部７２は、前景オブジェクト画像および背景画像におけるサンプル色に基づいて、その統計情報（分布の偏り）によって前景オブジェクト画像を分離する。
【００４６】
すなわち、２値マスク画像生成部７２は、入力画像Ｉ’におけるフレームＦ内のエッジ部分に前景オブジェクト画像と背景画像との境界をとるように分離する。この結果、前景オブジェクト画像と背景画像とに対応付けて、画素のラベルが１または０を取る場合、２値マスク画像生成部７２は、例えば、ラベル１の前景オブジェクト画像の領域の画素値を白色とし、それ以外のラベル０の画素を黒色とする。この処理により、２値マスク画像生成部７２は、図５の上段右部で示されるような２値マスク画像Ｂを生成する。
【００４７】
拡張トライマップ画像生成部７３は、入力画像Ｉおよび２値マスク画像Ｂから、前景オブジェクト画像と背景画像との境界において、所定の幅の未確定領域を設定する。すなわち、拡張トライマップ画像生成部７３は、前景オブジェクト画像を構成する領域と、背景画像を構成する領域との、それぞれ境界近傍に存在し、境界に沿って所定画素数だけの幅を形成する領域の画素を未確定画素に設定する。これにより、前景オブジェクト画像に属する画素（ラベル＝１）、背景画像に属する画素（ラベル＝０）、および未確定画素（ラベル＝−１）の３種類の画素からなるトライマップ画像Ｔが生成される。
【００４８】
すなわち、拡張トライマップ画像生成部７３は、例えば、図５の下段左部で示されるような、３値の画素からなるトライマップ画像Ｔを生成し、アルファマスク画像生成部７４に供給する。図５のトライマップ画像Ｔにおいては、ラベル＝１の前景オブジェクト画像の領域においては画素値が白色（最大画素値）に設定されている。また、ラベル＝０の背景画像の領域においては画素値が黒色（最小画素値）に設定されている。さらに、ラベル＝−１の未確定領域においては画素値が灰色（中間画素値）であるものとして設定されている。そして、拡張トライマップ画像生成部７３は、このように生成したトライマップ画像Ｔを、アルファマスク画像生成部７４、および収束判定部７６に供給する。
【００４９】
アルファマスク画像生成部７４は、最初の処理においては、拡張トライマップ画像生成部７３よりトライマップ画像Ｔを取得する。また、アルファマスク画像生成部７４は、最初の処理以降の処理においては、収束判定部７６より、供給されてくるトライマップ画像Ｔを取得する。
【００５０】
また、アルファマスク画像生成部７４は、トライマップ画像Ｔを、例えば、ロバストマッティング処理（Jue Wang   Cohen, M.F.Optimized Color Sampling for Robust Matting.Computer Vision and Pattern Recognition, 2007.参照）し、図５の下段右部で示されるようなアルファマスク画像Ａを生成し、トライマップ画像更新部７５、および収束判定部７６に供給する。このアルファマスク画像Ａは、画素単位で前景オブジェクト画像の透明度α＝１とし、背景画像の透明度α＝０として、それらの中間の透明度αを０＜α＜１により表現した画像である。
【００５１】
特に、図５で示される前景オブジェクト画像（被写体画像）である子犬は、毛足の長い毛で覆われており、この毛の部分が背景領域との境界となっている。このため、前景オブジェクト画像と背景画像との境界近傍の画素においては、前景オブジェクト領域における子犬の毛と、背景画像とが、混合した色合いとなるため、境界近傍の画素の透明度αは、０＜α＜１の値となるものが多くなる。したがって、この透明度αは、入力画像の境界領域の画素における混合比のうち、前景オブジェクト領域の色の合成比率であるものと捕らえることができる。
【００５２】
トライマップ画像更新部７５は、アルファマスク画像Ａのうち、透明度αが、０＜α＜１となる画素と、その近傍の画素を、未確定領域の画素に設定することで、トライマップ画像Ｔ’を生成する。そして、トライマップ画像更新部７５は、この新たに生成したトライマップ画像Ｔ’を、トライマップ画像Ｔの更新結果として収束判定部７６に供給する。
【００５３】
収束判定部７６は、トライマップ画像更新部７５により更新される前のトライマップ画像Ｔと、トライマップ画像更新部７５により更新されたトライマップ画像Ｔ’とを比較して同一であるか（または、略同一であるか）否かを判定する。より詳細には、収束判定部７６は、更新前のトライマップ画像Ｔ、および更新後のトライマップ画像Ｔ’における前景オブジェクト画像（被写体の画像）、未確定画素、および背景画像の分布が一致するか否かを判定する。そして、収束判定部７６は、それらが一致、または、略一致しなければ、その判定結果と共に、トライマップ画像Ｔ’をトライマップ画像Ｔとしてアルファマスク画像生成部７４に供給する。また、それらが同一であると判定された場合、収束判定部７６は、トライマップ画像Ｔ’をロバストマッティングすることで求められるアルファマスク画像Ａと共に、トライマップ画像Ｔ’をトライマップ画像Ｔとして出力部７７に供給する。
【００５４】
出力部７７は、収束判定部７６より供給されてきたトライマップ画像Ｔと、トライマップ画像Ｔ（Ｔ’）よりロバストマッティングなどにより求められたアルファマスク画像Ａとを処理結果として出力する。
【００５５】
すなわち、入力画像Ｉの各画素は、２値マスク画像Ｂの値を乗じることにより、前景オブジェクト画像として子犬の画像を抽出することができる。しかしながら、このような手法により前景オブジェクト画像が抽出されると、前景オブジェクト画像を構成する子犬の外縁部分である毛の部分は、元々の背景画像における色にじみが含まれることになる。このため、例えば、抽出した前景オブジェクト画像は、他の画像と合成する際に、違和感が生じることになる。
【００５６】
そこで、画像処理装置１は、トライマップ画像Ｔからロバストマッティングなどによりアルファマスク画像Ａを生成させ、生成されたアルファマスク画像Ａからトライマップ画像Ｔ’を求める処理を繰り返す。そして、画像処理装置１は、トライマップ画像Ｔ，Ｔ’が同一、または略同一となり、トライマップ画像Ｔ，Ｔ’の変化が収束するまで、同様の処理を繰り返すことにより、適切なトライマップ画像を求め、対応する最適なアルファマスク画像を求める。
【００５７】
［切出部の構成例］
切出部４２は、入力画像Ｉより、アルファマスク画像（被写体画像である前景オブジェクト画像の透明度の割合を示す割合画像）Ａに基づいて、前景オブジェクト画像（被写体画像）Ｆを色滲みなく抽出できるようにするものである。アルファマスク画像Ａは、アルファマスク画像生成部４１により生成されたものである。
【００５８】
切出部４２は、入力画像取得部８１、アルファマスク画像取得部８２、確定値マップ生成部８３、画素重みマップ生成部８４、推定前景色画像生成部８５、ラプラシアン行列生成部８６、エネルギー関数生成部８７、前景色画像生成部８８、およびマスク画像生成部８９から構成される。
【００５９】
入力画像取得部８１は、抽出しようとする被写体画像である前景オブジェクト画像を含む入力画像Ｉを取得し、確定値マップ生成部８３、および推定前景色画像生成部８５に供給する。
【００６０】
アルファマスク画像取得部８２は、アルファマスク画像生成部４１より供給される前景オブジェクト画像の画素単位の透明度αを示す値（以下、α値とも称する）からなるアルファマスク画像（前景オブジェクト画像の透明度の割合を示す画素からなる割合画像）Ａを取得する。そして、アルファマスク画像取得部８２は、取得したアルファマスク画像Ａを確定値マップ生成部８３、画素重みマップ生成部８４、推定前景色画像生成部８５、およびラプラシアン行列生成部８６に供給する。尚、推定前景色画像生成部８５の詳細な構成については、図２を参照して後述する。
【００６１】
確定値マップ生成部８３は、アルファマスク画像Ａ、および入力画像Ｉより被写体画像である前景オブジェクト画像、または背景画像として確定している第１の画素値の画素と、そのいずれにも属しない第２の画素値からなる画素とからなる確定値マップ画像Ｓを生成する。そして、確定値マップ生成部８３は、生成した確定値マップ画像Ｓを画素重みマップ生成部８４、および推定前景色画像生成部８５に供給する。ここで、前景オブジェクト画像、または背景画像のいずれにも属していない画素は、前景オブジェクト画像における色と背景画像における色とが混合していると思われる画素である。また、確定値マップ画像Ｓにおける第１の画素値には、例えば、１が設定され、第２の画素値には、例えば、０が設定される。さらに、確定値マップ生成部８３は、確定値マップ画像Ｓの確定画素については、前景オブジェクト画像に属する画素であるか、または、背景画像に属するものであるかを識別する情報を付加する。
【００６２】
画素重みマップ生成部８４は、確定値マップ画像Ｓと、アルファマスク画像Ａとに基づいて、画素重みマップ画像Ｄｓを生成し、エネルギー関数生成部８７に供給する。より詳細には、画素重みマップ生成部８４は、確定値マップ画像Ｓのうち、未確定領域の画素に対応するアルファマスク画像Ａの画素値、すなわち、透明度αを画素の重みとして設定し、画素重みマップ画像Ｄｓを生成する。
【００６３】
推定前景色画像生成部８５は、入力画像Ｉ、アルファマスク画像Ａ、および確定値マップ画像Ｓより推定前景色画像Ｆ＾を生成し、エネルギー関数生成部８７に供給する。より詳細には、推定前景色画像生成部８５は、確定値マップ画像Ｓにおける未確定領域の各画素に対応するアルファマスク画像Ａの画素について、Sobelフィルタにより微分値を求める。そして、推定前景色画像生成部８５は、各未確定画素から確定領域の境界の画素までの経路上に存在する未確定画素の微分値の積算値を距離としたとき、その距離が最小となる確定画素を、各未確定画素の画素値に設定する。これにより、未確定画素に対応する、上述した微分値の積算値を距離としたとき最短となる前景オブジェクト画像の画素位置の画素値からなる画像が、推定前景色画像Ｆ＾として求められる。
【００６４】
ラプラシアン行列生成部８６は、アルファマスク画像Ａより、例えば、注目画素位置の周辺の画素の平均と分散から、局所的な領域の前景オブジェクト画像と背景画像の画素値の線形モデルを仮定し、周辺画素の寄与度を計算してラプラシアン行列Ｌを生成する。ラプラシアン行列Ｌは、行および列数がアルファマスク画像Ａの全画素数に対応した、正定値対称疎行列である。
【００６５】
ラプラシアン行列Ｌの各成分は、例えば、隣接画素との重みが入っており、３画素×３画素の小領域では前景オブジェクト画像の色、および背景画像の色はほぼ一定でα値のみ変化する線形モデルを仮定するものとする。ラプラシアン行列Ｌの各成分は、中心ピクセルの周りの３画素×３画素の小領域の平均や共分散から計算されている。この成分により隣接画素と中心画素のα値がどの程度類似しているべきかが定義される。尚、ラプラシアン行列Ｌについての詳細は、例えば、A Closed Form Solution to Natural Image Matting A. Levin, D. Lischinski, Y. Weiss 2006 Conference on Computer Vision and Pattern Recognition (CVPR 2006), June 2006, pp. 61-68.を参照されたい。
【００６６】
エネルギー関数生成部８７は、画素重みマップ画像Ｄｓ、ラプラシアン行列Ｌ、および推定前景色画像Ｆ＾に基づいて、前景色画像ＦのＲＧＢの色画像Ｆｃを構成するベクトルｘをパラメータとしたエネルギー関数Ｅを生成し、前景色画像生成部８８に供給する。
【００６７】
前景色画像生成部８８は、エネルギー関数Ｅが最小となるＲＧＢの色画像Ｆｃのベクトルｘを求め、各色のベクトルｘから前景色画像Ｆを求め、入力画像Ｉのうち、アルファマスク画像Ａにより定義される前景オブジェクト画像として出力する。前景色画像Ｆは、最終的に抽出されるアルファマスク画像Ａに基づいて、入力画像Ｉより抽出される前景オブジェクト画像そのものである。
【００６８】
マスク画像生成部８９は、入力画像より前景オブジェクト画像である被写体画像を切り出して、マスク画像を生成し、マスク画像修復部２６に供給する。
【００６９】
［マスク画像修復部の構成例］
次に、図７を参照して、マスク画像修復部２６の構成例について説明する。
【００７０】
マスク画像修復部２６は、入力画像記憶部１０１、マスク境界設定部１０２、マスク境界情報記憶部１０３、領域優先度計算部１０４、最大優先度領域選択部１０５、ブロックマッチング処理部１０６、修復部１０７、背景画像出力部１０８、マスク画像取得部１０９、およびマスク画像記憶部１１０を備えている。
【００７１】
入力画像記憶部１０１は、供給されてくる入力画像を記憶し、マスク境界設定部１０２、およびブロックマッチング処理部１０６に供給する。マスク画像取得部１０９は、被写体切出部２５より供給されてくるマスク画像を取得し、マスク画像記憶部１１０に記憶させる。マスク境界設定部１０２は、マスク画像記憶部１１０に記憶されているマスク画像を読み出し、マスク領域の境界に存在する、入力画像の領域を設定し、設定したマスク境界の情報と共に領域優先度計算部１０４に供給する。
【００７２】
領域優先度計算部１０４は、入力画像におけるマスク画像との境界領域を、複数の所定領域に分割し、分割した所定領域のそれぞれについて優先度を計算し、最大優先度領域選択部１０５に供給する。尚、領域優先度計算部１０４は、例えば、エッジ領域の多いブロックを優先的に処理するようにしてもよい。尚、領域優先度計算部１０４における優先度の計算手法についての詳細は、"Object Removal by Exemplar-Based Inpainting", A. Criminisi, P. Perez, K. Toyama, CVPR 2003を参照されたい。
【００７３】
最大優先度領域選択部１０５は、所定領域毎に計算された優先度のうち、最大値となる所定領域を選択し、選択した領域の情報をブロックマッチング処理部１０６に供給する。
【００７４】
ブロックマッチング処理部１０６は、優先度が最大値となる所定領域の画像情報を用いて、マスク画像を照合し、優先度が最大値となる所定領域の画像と類似する領域をブロックマッチングにより検索する。そして、ブロックマッチング処理部１０６は、検索された最大優先度となる所定領域と最も類似する領域に隣接する領域であって、所定領域と隣接するマスク領域に該当する位置に隣接する隣接領域の情報を修正部９７に供給する。
【００７５】
修復部１０７は、マスク画像記憶部１１０よりマスク画像を読み出し、最大優先度の所定領域であって、マスク領域に該当する位置に隣接する領域に、ブロックマッチング処理部１０６より供給されてくる隣接領域の情報を、貼り付けてマスク領域を修復する。また、修復部１０７は、修復したマスク領域の情報をマスク画像記憶部１１０に更新して記憶させる。そして、一連の処理が繰り返されて、マスク領域が全て修復できると、修復部１０７は、その旨を背景画像出力部１０８に通知し、マスク画像記憶部１１０に記憶されている、修復が完了しているマスク画像を背景画像として背景画像記憶部２７に記憶させる。
【００７６】
［画像合成部の構成例］
次に、図８を参照して、画像合成部２８の構成例について説明する。
【００７７】
画像合成部２８は、被写体画像勾配計算部１２１、背景画像勾配計算部１２２、ポアソン方程式生成部１２３、ポアソン方程式演算部１２４、および合成処理部１２５を備えている。
【００７８】
被写体画像勾配計算部１２１は、被写体切出画像記憶部２９に記憶されている被写体切出画像を読み出し、画素値、または輝度値の分布より被写体画像における画素値、または輝度値の勾配を求めポアソン方程式生成部１２３に供給する。
【００７９】
背景画像勾配計算部１２２は、背景画像記憶部２７に記憶されている背景画像を読み出し、画素値、または輝度値の分布より背景画像における画素値、または輝度値の勾配を求め、ポアソン方程式生成部１２３に供給する。
【００８０】
ポアソン方程式生成部１２３は、被写体切出画像の勾配の演算結果と、背景画像の勾配の演算結果とを用いて、ポアソン方程式を生成し、生成したポアソン方程式をポアソン方程式演算部１２４に供給する。
【００８１】
ポアソン方程式演算部１２４は、ポアソン方程式生成部１２３より供給されてきたポアソン方程式を演算により解き、被写体切出画像および背景画像の合成による境界付近の分布を求め演算結果を合成処理部１２５に供給する。
【００８２】
合成処理部１２５は、ポアソン方程式演算部１２４による演算結果から、被写体切出画像、および背景画像を合成した画像を生成して、表示処理部３１に供給し、表示部３２により表示させる。
【００８３】
すなわち、画像合成部２８は、被写体切出画像、および背景画像を、いわゆるポアソン画像合成処理により、合成する。
【００８４】
［画像編集処理について］
次に、図９のフローチャートを参照して、図１の画像処理装置１１による画像編集処理について説明する。
【００８５】
ステップＳ１１において、被写体領域検出部２１は、被写体領域検出処理を実行することにより、入力画像より被写体の存在する領域を検出し、検出結果を被写体領域判定部２２に供給すると共に、検出結果を表示処理部３１に供給して、表示部３２に表示させる。このとき、表示処理部３１は、被写体領域検出結果と入力画像とをオーバーラップして、例えば、図２の画像Ｐ１で示されるような画像を表示部３２に表示させる。尚、被写体検出処理については、図１０のフローチャートを参照して、詳細を後述する。尚、被写体検出結果が求められればよいものであるので、被写体検出結果は、必ずしも表示されなくてもよい。
【００８６】
ステップＳ１２において、被写体領域判定部２２は、被写体領域検出部２１より供給されてくる被写体領域検出処理による処理結果を取得し、処理結果から入力画像内における被写体の領域が検出されているか否かを判定する。被写体領域検出処理により被写体の存在する領域が検出されなかった場合、ステップＳ１３において、被写体領域判定部２２は、表示処理部３１に対して被写体領域を補助する補助領域の入力をユーザに要求するように表示部３２に表示する。さらに、被写体領域判定部２２は、補助入力情報付加部２３に対して、操作部３４の操作内容に応じた指示部３３からの指示内容に対応して、被写体領域に付加する補助領域の入力を受け付けるように指示する。尚、被写体領域が検出されていても、例えば、図２の画像Ｐ１で示されるように、被写体である犬の画像に対して被写体領域が不完全の場合、被写体領域が検出できていないとユーザが判断して、補助領域の情報を操作部３４を操作して付加するようにしてもよい。
【００８７】
ステップＳ１４において、補助入力情報付加部２３は、操作部３４の操作内容に応じた指示部３３の指示信号に応じて被写体領域を補助する補助領域が入力されたか否かを判定する。ステップＳ１４において、例えば、操作部３４が操作されて、補助領域が入力され、入力の操作終了を示す情報が入力されない場合、ステップＳ１３，Ｓ１４の処理が繰り返されて補助領域の入力を要求する画像を表示部３２に表示し続ける。そして、ステップＳ１４において、図２の画像Ｐ２の丸印状に示されるように、操作部３４の操作により被写体の犬の領域全体が被写体領域となるように補助領域が付加され、終了が指示された場合、被写体領域が指定されたものとみなし、処理は、ステップＳ１５に進む。尚、このステップＳ１３，Ｓ１４の処理は、後述するステップＳ１６の切出処理の後にしてもよい。すなわち、切出結果に対して補助入力を施す構成にするようにしてもよい。
【００８８】
ステップＳ１５において、補助入力情報付加部２３は、付加された補助領域の情報、および被写体検出結果を被写体領域設定部２４に供給する。被写体領域設定部２４は、被写体検出結果である被写体領域に補助領域を付加した状態で被写体領域を更新して、被写体切出部２５に供給する。被写体切出部２５は、アルファマスク画像生成部４１を制御してアルファマスク画像生成処理を実行させ、アルファマスク画像を生成させる。
【００８９】
また、ステップＳ１２において、被写体領域が検出できた場合、ステップＳ１３，Ｓ１４の処理がスキップされ、ステップＳ１５において、被写体領域判定部２２は、被写体領域の検出結果を被写体切出部２５に供給する。そして、被写体切出部２５は、被写体領域検出処理の処理結果となる被写体領域の情報よりアルファマスク画像生成部４１を制御して、アルファマスク画像生成処理を実行させて、アルファマスク画像を生成させる。尚、アルファマスク画像生成処理は、図１１のフローチャートを参照して、詳細を後述する。
【００９０】
ステップＳ１６において、被写体切出部２５は、切出部４２を制御して、アルファマスク画像と入力画像とを用いた切出処理を実行させ、入力画像より被写体領域を切り出して被写体切出画像として被写体切出画像記憶部２９に記憶させる。また、切出部４２は、切出処理により入力画像より被写体切出画像が切り出された領域がマスク領域となるマスク画像をマスク画像修復部２６に出力させる。尚、切出処理については、図１６のフローチャートを参照して、詳細を後述する。
【００９１】
ステップＳ１７において、マスク画像修復部２６は、マスク画像修復処理を実行し、入力画像より被写体切出画像が切り出された領域であるマスク領域を入力画像に基づいて修復し、背景画像を生成する。そして、マスク画像修復部２６は、生成した背景画像を背景画像記憶部２７に記憶する。尚、マスク画像修復処理は、図１９のフローチャートを参照して、詳細を後述する。
【００９２】
ステップＳ１８において、画像合成部２８は、被写体切出画像記憶部２９の被写体切出画像と、背景画像記憶部２７の背景画像とを用いて、画像合成処理を実行し、被写体切出画像と背景画像とを合成し、表示処理部３１に出力する。また、画像合成部２８は、操作部３４の操作内容に応じて、合成画像を出力部３０を介して外部装置に出力する。尚、画像合成処理については、図２０のフローチャートを参照して、詳細を後述する。
【００９３】
ステップＳ１９において、表示処理部３１は、画像合成部２８より供給されてくる合成画像を表示部３２に表示する。
【００９４】
ステップＳ２０において、画像合成部２８は、操作部３４が操作されて、画像編集処理の終了が指示されたか否かを判定し、例えば、終了が指示されていない場合、処理は、ステップＳ２１に進む。
【００９５】
ステップＳ２１において、画像合成部２８は、操作部３４が操作されて、被写体切出画像が操作されて、被写体切出画像の画像上の位置が再度指定されて移動したか否かを判定する。例えば、図２の画像Ｐ４で示されるように、犬である被写体切出画像Ｄ１から、操作部３４の操作により被写体切出画像Ｄ２に移動された場合、移動があったものとみなし処理は、ステップＳ１８に戻り、移動された位置に対応して画像合成処理が実行される。そして、ステップＳ１９の処理により、例えば、図２における画像Ｐ５で示されるように、被写体切出画像Ｄ２に移動された状態で合成された画像が生成されて表示部３２に表示される。
【００９６】
一方、ステップＳ２０において、処理の終了が指示された場合、処理が終了する。
【００９７】
以上の処理により、入力画像における被写体領域が設定されると、被写体が被写体切出画像として自由に画像上で移動することが可能となる。また、被写体領域画像が移動されることにより入力画像に生じるマスク領域が修復されるので、切り出した被写体切出画像を自由な位置で合成することが可能となる。
【００９８】
［被写体領域検出処理について］
次に、図１０のフローチャートを参照して、被写体検出処理について説明する。
【００９９】
ステップＳ３１において、輝度情報抽出部５１は、輝度情報抽出処理を行って、供給された入力画像に基づいて輝度情報マップを生成し、被写体マップ生成部５６に供給する。そして、ステップＳ３２において、色情報抽出部５２は、色情報抽出処理を行って、供給された入力画像に基づいて色情報マップを生成し、被写体マップ生成部５６に供給する。
【０１００】
ステップＳ３３において、エッジ情報抽出部５３は、エッジ情報抽出処理を行って、供給された入力画像に基づいてエッジ情報マップを生成し、被写体マップ生成部５６に供給する。また、ステップＳ３４において、被写体情報抽出部５４は、被写体情報抽出処理を行って、供給された入力画像に基づいて被写体情報マップを生成し、被写体マップ生成部５６に供給する。さらに、ステップＳ３５において、動き情報抽出部５５は、動き情報抽出処理を行って、供給された入力画像に基づいて動き情報マップを生成し、被写体マップ生成部５６に供給する。
【０１０１】
なお、より詳細には、動き情報抽出処理は、時間的に連続して撮像された入力画像が、動き情報抽出部５５に供給されなかった場合には行われない。
【０１０２】
ステップＳ３６において、被写体マップ生成部５６は、輝度情報抽出部５１乃至動き情報抽出部５５から供給された輝度情報マップ乃至動き情報マップを重み付き加算して被写体マップを生成し、被写体領域特定部５７に供給する。
【０１０３】
例えば、被写体マップ生成部５６は、情報マップごとに予め求められている重みである、情報重みＷｂを用いて各情報マップを線形結合する。つまり、線形結合により得られる情報マップの所定の画素を注目画素とすると、注目画素の画素値は、注目画素と同じ位置にある各情報マップの画素の画素値に、情報マップごとの情報重みＷｂを乗算して得られた値の総和とされる。
【０１０４】
次に、被写体マップ生成部５６は、線形結合により得られた情報マップ（以下、線形結合情報マップとも称する）の各画素の画素値に、シグモイド関数による演算処理を施す。
【０１０５】
より詳細には、被写体マップ生成部５６は、シグモイド関数をテーブル化して得られた変換テーブルを予め保持している。この変換テーブルは、入力としての所定の値と、その値をシグモイド関数に代入して得られる出力値とからなり、変換テーブルにより線形結合情報マップを変換すれば、シグモイド関数により線形結合情報マップを変換した場合と同様の情報マップが得られる。
【０１０６】
例えば、シグモイド関数は、以下の式（１）に示す双曲線余弦関数（ハイパボリックタンジェント関数）とされる。
【０１０７】
ｆ（ｘ）＝ａ×ｔａｎｈ（ｘ×ｂ）
・・・（１）
【０１０８】
なお、式（１）において、ａおよびｂは、予め定められた定数を示しており、ｘは、これから変換しようとする線形結合情報マップの画素の画素値とされる。
【０１０９】
このような双曲線余弦関数がシグモイド関数とされる場合、変換テーブルは、入力値ｘの範囲を−２から２までの範囲に制限し、入力値ｘを１／１２８単位で離散化して得られたテーブルとされる。このような変換テーブルでは、入力値ｘが−２より小さい場合には、その入力値ｘが−２であるとして扱われ、入力値ｘが２より大きい場合には、その入力値ｘが２であるとして扱われる。さらに、変換テーブルでは、入力値ｘが大きくなるほど、出力値ｆ（ｘ）が大きくなる。
【０１１０】
被写体マップ生成部５６は、線形結合情報マップの画素の画素値を、その画素値ｘ（入力値ｘ）から、画素値ｘに対応する出力値ｆ（ｘ）に変更することにより、線形結合情報マップを変換する。すなわち、被写体マップ生成部５６は、変換テーブルを用いて変換された線形結合情報マップを、シグモイド関数による演算処理が施された線形結合情報マップとする。
【０１１１】
このように、変換テーブルを用いて線形結合情報マップを変換することにより、シグモイド関数自体を用いて変換する場合と比べて、より簡単かつ迅速に線形結合情報マップの変換を行うことができる。
【０１１２】
さらに、被写体マップ生成部５６は、変換テーブルで変換された線形結合情報マップの各画素の画素値に、画素ごとに予め求められた重みである、被写体重みＷｃを乗算し、被写体マップとする。
【０１１３】
すなわち、これから求めようとする被写体マップ上の注目する画素を注目画素とすると、変換された線形結合情報マップの注目画素と同じ位置の画素の画素値に、被写体重みＷｃが乗算された値が、注目画素の画素値とされる。
【０１１４】
なお、より詳細には、被写体マップの生成に用いられる色情報マップとして、Ｃｒの色情報マップと、Ｃｂの色情報マップとが用いられ、エッジ情報マップとして、０度、４５度、９０度、１３５度のそれぞれの方向のエッジ情報マップが用いられる。また、情報重みＷｂおよび被写体重みＷｃは、予め学習により求められている。
【０１１５】
このようにして被写体マップが生成されると、被写体マップは、被写体マップ生成部５６から被写体領域特定部５７に供給され、処理はステップＳ３７に進む。
【０１１６】
ステップＳ３７において、被写体領域特定部５７は、被写体マップ生成部５６から供給された被写体マップを用いて、供給された入力画像上の被写体の領域を特定する。
【０１１７】
例えば、被写体マップの画素の画素値が大きいほど、その画素と同じ位置の入力画像の画素の領域が、被写体の領域らしいとされるものとする。この場合、被写体領域特定部５７は、被写体マップ上において、予め定められた閾値以上の画素値を有する、互いに隣接する画素からなり、所定の面積（画素数）以上の領域を検出し、検出された領域に対応する入力画像上の領域が被写体の含まれる領域であるとする。
【０１１８】
被写体領域特定部５７は、入力画像上の被写体の含まれる領域を検出すると、その検出結果を後段に出力して、被写体領域特定処理は終了する。
【０１１９】
なお、被写体領域特定部５７が、被写体の領域の検出結果を用いて、入力画像に所定の処理を施して出力するようにしてもよい。
【０１２０】
以上のようにして、入力画像から被写体マップが生成され、被写体マップが用いられて、入力画像における被写体の領域が特定される。
【０１２１】
［アルファマスク画像生成処理について］
次に、図１１のフローチャートを参照して、アルファマスク画像生成処理について説明する。
【０１２２】
ステップＳ５１において、入力画像取得部７１は、入力画像Ｉが供給されてきたか否かを判定し、入力画像が供給されてくるまで、同様の処理を繰り返し、入力画像Ｉが入力されてきた場合、処理は、ステップＳ５２に進む。
【０１２３】
ステップＳ５２において、入力画像取得部７１は、入力された入力画像Ｉを２値マスク画像生成部７２、拡張トライマップ画像生成部７３、および、アルファマスク画像生成部７４に供給する。２値マスク画像生成部７２は、被写体領域判定部２２、または被写体領域設定部２４より供給される被写体領域設定情報に基づいて、入力された入力画像Ｉを、被写体画像である前景オブジェクト画像を分離することで、２値マスク画像Ｂを生成し、拡張トライマップ画像生成部７３に供給する。
【０１２４】
すなわち、例えば、被写体画像である前景オブジェクト画像の領域として、ラベル＝１が設定される。尚、被写体画像である前景オブジェクト画像と背景画像との境界に未確定領域は設定されていない。
【０１２５】
ステップＳ５３において、拡張トライマップ画像生成部７３は、前景オブジェクト画像と背景画像との境界近傍に、所定の幅の未確定領域を設定する。すなわち、例えば、未確定領域を設定する幅をｗとする場合（ｗ画素分の幅とする場合）、未確定領域の画素にはラベルとして「−１」が付されるものとする。このとき、拡張トライマップ画像生成部７３は、未確定領域を、２値マスク画像Ｂのすべての画素について水平方向の処理と垂直方向の処理との２段階の処理に分けて求める。
【０１２６】
すなわち、第１段階において、拡張トライマップ画像生成部７３は、２値マスク画像Ｂを入力として、処理対象画素を中心として左ｗ画素、右ｗ画素の範囲について、範囲内に中心の処理対象画素と異なるラベルを持つ画素が存在するか否かを確認する。そして、例えば、処理対象画素のラベルと異なるラベルを持つ画素が存在する場合、拡張トライマップ画像生成部７３は、処理対象画素は未確定領域に含まれるとみなし、ラベルとして「−１」を付す。
【０１２７】
一方、処理対象画素を中心として左ｗ画素、右ｗ画素の範囲について、範囲内に中心の処理対象画素と異なるラベルを持つ画素が存在しない場合、拡張トライマップ画像生成部７３は、処理対象画素のラベルをそのまま付与する。この処理により、拡張トライマップ画像生成部７３は、水平方向の処理により求められた中間的なトライマップ画像Ｔ１を保持する。
【０１２８】
さらに、第２段階において、拡張トライマップ画像生成部７３は、中間的なトライマップ画像Ｔ１を入力として、処理対象画素を中心として上ｗ画素、下ｗ画素の範囲について水平方向の処理と同様に、範囲内に処理対象画素と異なるラベルを持つ画素が存在するか否かを確認する。そして、例えば、処理対象画素のラベルと異なるラベルを持つ画素が存在する場合、拡張トライマップ画像生成部７３は、処理対象画素は未確定領域に含まれるとみなし、ラベルとして「−１」を付し、トライマップ画像Ｔ１を更新し、トライマップ画像Ｔを生成する。
【０１２９】
このような処理により、拡張トライマップ画像生成部７３は、２値マスク画像Ｂの各画素について水平方向および垂直方向に所定の幅ｗ×２の範囲で、同一のラベルとならない画素に未確定画素のラベルを付してトライマップ画像Ｔを生成する。結果として、被写体画像である前景オブジェクト画像の領域と背景画像の領域との境界の近傍の領域に、所定の未確定領域が設定されたトライマップ画像Ｔが生成される。
【０１３０】
拡張トライマップ画像生成部７３は、このようなトライマップ画像Ｔを、アルファマスク画像生成部７４、トライマップ画像更新部７５、および収束判定部７６に供給する。
【０１３１】
ステップＳ５４において、アルファマスク画像生成部７４は、トライマップ画像Ｔに基づいて、例えば、ロバストマッティング（Jue Wang   Cohen, M.F.Optimized Color Sampling for Robust Matting.Computer Vision and Pattern Recognition, 2007.参照）により、アルファマスク画像Ａを生成し、トライマップ画像更新部７５に供給する。
【０１３２】
ステップＳ５５において、トライマップ画像更新部７５は、トライマップ画像更新処理を実行し、トライマップ画像Ｔをトライマップ画像Ｔ’に更新し、収束判定部７６に供給する。
【０１３３】
ここで、トライマップ画像更新処理について説明する。
【０１３４】
まず、第１段階として、各画素についてエッジフローベクトルが求められる。
【０１３５】
すなわち、アルファマスク画像Ａが輝度画像に変換され、水平Sobelフィルタ、および垂直Sobelフィルタにより、水平方向、および垂直方向のエッジが検出される。これにより、画像の水平方向に対して、エッジに垂直なエッジグラディエントフロー（微分ベクトルの水平方向成分）を求められ、画像の垂直方向に対して、エッジに水平なエッジグラディエントフロー（微分ベクトルの垂直方向成分）が求められる。
【０１３６】
次に、エッジグラディエントフローベクトルが９０度時計回りに回転されて、エッジタンジェントフローベクトルが生成される。このエッジタンジェントフローベクトルは、正規化ベクトル（大きさが１のベクトル）の水平成分および垂直成分、並びに、ベクトルの大きさの情報から構成される。尚、以降においては、このエッジタンジェントフローベクトルは、単にエッジフローベクトルと称するものとする。
【０１３７】
そして、エッジフローベクトルが非線形に平滑化され、各ベクトルの大きさを変化させることなく、顕著なエッジについては保持しつつ、弱いエッジが周辺の顕著なエッジに従うように処理され、滑らかにベクトル方向が変化するようなエッジフローベクトルとされる。
【０１３８】
すなわち、各画素（ｐｘ，ｐｙ）について、正規化ベクトルの要素（ｔｘ，ｔｙ）、および、そのベクトルの長さ（ｍａｇ）の情報からなるエッジフローベクトルが求められる。
【０１３９】
さらに、エッジフローベクトルが求められると、楕円形状サンプリングのためのサイズ配列ｓｖｅｃが設定される。
【０１４０】
楕円形状のサンプリングは、例えば、図１２のトライマップ画像Ｔ上の画素ＰＰ（ｐｘ，ｐｙ）を中心とした、長半径ａを３×ｗ、長半径ｂをｗとした、長軸が画素位置のエッジフローベクトル（ｔｘ，ｔｙ）に沿うように配置される楕円形状内の画素に適用される。そして、短軸の位置に対応付けて、長軸方向に設定されるサンプル点の画素数が事前に計算されることにより、サイズ配列ｓｖｅｃが設定される。サイズは、以下の式（２）によって計算される。尚、長軸および短軸の長さは、これ以外の長さで自由に設定することができる。
【０１４１】
ｘ＝√（（１−ｙ2／ｂ2）×ａ2）
・・・（２）
【０１４２】
より具体的には、サイズ配列ｓｖｅｃに設定されるサンプル点は、例えば、図１３で示されるように、整数座標位置に取ることを想定している。このため、第１象限に限ってみれば、例えば、短軸上のｂ＝０に対応するｉｎｄｅｘ＝０においては、白丸で示されるサンプル点が８個存在するので、サイズが８となる。また、同様に、短軸上のｂ＝１に対応するｉｎｄｅｘ＝１においては、サンプル点が７個存在するので、サイズが７となる。さらに、同様に、短軸上のｂ＝２に対応するｉｎｄｅｘ＝２においては、サンプル点が５個存在するので、サイズが５となる。そして、短軸上のｂ＝３に対応するｉｎｄｅｘ＝３においては、サンプル点が０個であるので、サイズが０となる。
【０１４３】
そこで、この第１象限におけるｉｎｄｅｘとサイズの関係は、まとめて、例えば、図１４で示されるようなサイズ配列ｓｖｅｃとして設定される。
【０１４４】
そして、アルファマスク画像Ａ、およびトライマップ画像Ｔのうち、未処理の画素が存在する場合、未処理の画素のいずれかが処理対象の画素（ｐｘ，ｐｙ）に設定される。
【０１４５】
さらに、処理対象となったアルファマスク画像Ａの画素における透明度αが、最小値Ｔｈ＿ｍｉｎよりも大きく、かつ、最大値Ｔｈ＿ｍａｘよりも小さく、すなわち、前景オブジェクト画像にも、背景画像にも属さない画素である場合、ラベル更新処理が実行される。このラベル更新処理により、処理対象画素により特定されるトライマップ画像Ｔにおける楕円形状の範囲の画素について、ラベルが未確定画素に更新される。
【０１４６】
ところで、このラベル更新処理とは以下のような処理である。
【０１４７】
すなわち、まず、短軸方向のカウンタｔが短軸の大きさｗに負符号が付された値に設定される（ｔ＝−ｗ）。
【０１４８】
次に、カウンタｔが短軸の大きさであるｗ以下であるか否かが判定され、例えば、ｗ以下である場合、トライマップ画像Ｔにおける処理対象画素（ｐｘ，ｐｙ）に対して未確定画素に設定すべき楕円形状範囲内の画素位置（ｂｘ，ｂｙ）が以下の式（３）が計算されることにより決定される。
【０１４９】
ｂｘ＝ｐｘ＋ｔｘ×ｔ
ｂｙ＝ｐｙ＋ｔｙ×ｔ
・・・（３）
【０１５０】
ここで、ｂｘ，ｂｙは、処理対象画素（ｐｘ，ｐｙ）により設定される、例えば、図１５における楕円形状の範囲内におけるｔ軸上のサンプル点（黒丸）の座標（ｂｘ，ｂｙ）である。また、ｔｘ，ｔｙは、処理対象画素（ｐｘ，ｐｙ）におけるエッジフローベクトルのｓｘ方向成分、およびｓｙ方向成分である。また、ｔは、カウンタｔの値である。
【０１５１】
すなわち、カウンタｔの値に伴って、サンプル点は、図１５におけるサンプル点Ｓｐ７，Ｓｐ５，Ｓｐ４・・・，Ｓｐ１を順次取ることになる。尚、図１５においては、処理対象画素（ｐｘ，ｐｙ）は、サンプル点Ｓｐ４の黒丸が属する、トライマスク画像Ｔ上の正方形状のマス目として示されている画素ＴＰである。
【０１５２】
サイズ配列ｓｖｅｃのうち、ｉｎｄｅｘがカウンタｔの絶対値に対応して設定されているサイズ（＝ｓｖｅｃ［ａｂｓ（ｔ）］）に負符号が付されて、この値がカウンタｓに設定される。すなわち、長軸方向に沿って設定されているサイズのうち、カウンタｔで設定されるｉｎｄｅｘの値に対応するサイズにマイナスが付された値がカウンタｓの値として設定される。
【０１５３】
さらに、カウンタｓ，ｔは、それぞれ未確定画素に設定すべき画素の位置に対応するサンプル点のｓ軸、およびｔ軸（フローベクトルの（ｔｘ，ｔｙ）に対応する軸）の座標を示すものである。このため、カウンタｓが、図１５で示されるように、今現在のカウンタｔに対応する位置でｔ軸と直交する（ｓ軸と平行な）直線上に設定されたサンプル点のｓ軸の座標のうち、楕円形状の範囲内の最大値以下であるか否かが判定される。
【０１５４】
例えば、カウンタｔが０であるような場合、図１３で示されるように、サイズは、ｉｎｄｅｘ＝０に対応するｓｖｅｃ［０］で示されるサイズは８となる。したがって、図１５においては、ｓ軸上の最も右上のサンプル点までの範囲であるか、すなわち、楕円形状で設定される範囲内のｓ軸の座標が最も大きなサンプル点である（ｓ，ｔ）＝（８，０）より、ｓ軸方向に対して左側の座標位置であるか否かが判定される。
【０１５５】
一方、カウンタｓがサイズ配列ｓｖｅｃ［ａｂｓ（ｔ）］よりも小さい場合、楕円形状の範囲内の処理対象位置（ｓｘ，ｓｙ）が、例えば、以下の式（４）が演算されることにより設定される。
【０１５６】
ｓｘ＝ｒｏｕｎｄ（ｂｘ＋ｔｘ×ｓ）
ｓｙ＝ｒｏｕｎｄ（ｂｙ＋ｔｙ×ｓ）
・・・（４）
【０１５７】
ここで、ｒｏｕｎｄ（Ｘ）は、Ｘの小数点以下を切り捨てることを示しており、処理対象位置（ｓｘ，ｓｙ）は、図１５におけるｓ軸に沿って設定されるサンプル点（白丸）を含む、マス目で示される画素の座標である。すなわち、図１５で示されるように、ｓｔ空間内におけるサンプル点に対応する、トライマップ画像Ｔ上のｓｘ，ｓｙ空間内の画素座標が決定される。
【０１５８】
そして、サンプル点（ｓ，ｔ）に対応する座標（ｓｘ，ｓｙ）の画素位置に対応するトライマップ画像Ｔの画素におけるラベルが未確定画素を示す「−１」に設定される。
【０１５９】
さらに、カウンタｓが１インクリメントされて、カウンタｓがサイズ配列ｓｖｅｃ［ａｂｓ（ｔ）］以下であると判定されるまで、更新が繰り返される。
【０１６０】
そして、カウンタｓがサイズ配列ｓｖｅｃ［ａｂｓ（ｔ）］以下ではないと判定された場合、すなわち、サンプル点として設定された楕円形状の範囲を超えたと判定された場合、カウンタｔが１インクリメントされ、カウンタｔがｗ以下ではないと判定されるまで、更新が繰り返される。
【０１６１】
以上の処理をまとめると、図１５で示されるように、例えば、トライマップ画像Ｔ上の処理対象画素が、楕円形状範囲内のサンプル点Ｓｐ４に対応する画素ＴＰである場合、楕円形状の範囲が処理対象の範囲に設定される。そして、短軸方向の座標を管理するカウンタｔによりｔ軸上のサンプル点が、サンプル点Ｓｐ７，Ｓｐ６，・・・Ｓｐ１の順序で、順に設定される。さらに、ｔ軸上の位置に対応するｓ軸上のサンプル点がｓ軸上で左から右に向かって徐々に設定され、設定されたサンプル点の属するトライマップ画像Ｔ上の画素（図１５における色が付されたマス目で示される画素）のラベルが順に未確定画素を示す「−１」に更新される。
【０１６２】
結果として、トライマップ画像Ｔ上の処理対象画素に対して、その処理対象画素を中心とした、処理対象画素のエッジフローベクトル方向に対して長軸をとる所定の大きさの楕円形状の範囲内に存在する画素が未確定画素に設定される。このため、トライマップ画像Ｔ上で前景オブジェクト画像にも背景画像にも明らかに属さない画素について、エッジフローベクトルに対応して重み付けされた近傍の範囲の画素が未確定画素として設定させることが可能となる。
【０１６３】
ここで、トライマップ画像更新処理の説明に戻る。
【０１６４】
アルファマスク画像Ａにおける処理対象画素の透明度αが、最小値Ｔｈ＿ｍｉｎよりも大きくないか、または、最大値Ｔｈ＿ｍａｘよりも小さくない場合、ラベル更新処理はスキップされる。すなわち、アルファマスク画像上の画素が、前景オブジェクト画像の領域に属する画素であるか、または、背景画像に属する画素である場合、ラベル更新処理はスキップされる。
【０１６５】
この処理により、アルファマスク画像Ａの画素のうち、被写体画像である前景オブジェクト画像の領域に属する画素でも、背景画像に属する画素でもない画素だけが、未確定画素としてラベルが設定される。
【０１６６】
すなわち、アルファマスク画像Ａにおける、前景オブジェクト画像にも、背景画像にも属さない画素に対応するトライマップ画像Ｔ上の画素は、その処理対象画素のエッジフローベクトルで設定される楕円形状の範囲が未確定画素のラベルに更新されることになる。
【０１６７】
ここで、図１１のフローチャートの説明に戻る。
【０１６８】
ステップＳ５６において、収束判定部７６は、トライマップ画像更新部７５により更新される前のトライマップ画像Ｔと、トライマップ画像更新部７５により更新されたトライマップ画像Ｔ’とを比較し、同一であるか、または、略同一であるかを判定する。そして、例えば、同一でも、また略同一でもないと判定された場合、処理は、ステップＳ５７に進む。
【０１６９】
ステップＳ５７において、収束判定部７６は、ステップＳ５４乃至Ｓ５７の処理が指定回数に達したか否かを判定し、指定回数に達していないと判定した場合、処理は、ステップＳ５８に進む。
【０１７０】
ステップＳ５８において、収束判定部７６は、更新後のトライマップ画像Ｔ’を、直前のトライマップ画像Ｔとして記憶すると共に、トライマップ画像Ｔをアルファマスク画像生成部７４に供給する。
【０１７１】
ステップＳ５９において、アルファマスク画像生成部７４は、収束判定部７６より供給されてきたトライマップ画像Ｔをロバストマッティング処理することにより、新たなアルファマスク画像Ａを生成し、トライマップ画像更新部７５に供給する。そして、処理は、ステップＳ５５に戻る。
【０１７２】
すなわち、トライマップ画像更新部７５により更新される前のトライマップ画像Ｔと、更新されたトライマップ画像Ｔ’とが同一であるか、若しくは、略同一の状態となるか、または、所定回数まで、ステップＳ５５乃至Ｓ５９の処理が繰り返される。このとき、初回以降の処理では、アルファマスク画像生成部７４は、拡張トライマップ画像生成部７３で生成されたトライマップ画像Ｔではなく、直前に更新されたトライマップ画像Ｔ’に置き換えられたトライマップ画像Ｔよりアルファマスク画像Ａを生成する。
【０１７３】
そして、ステップＳ５５乃至Ｓ５９の処理が繰り返された後、ステップＳ５６において、更新前のトライマップ画像Ｔと、更新後のトライマップ画像Ｔ’とが同一であるか、若しくは、略同一であるとみなされた場合、処理は、ステップＳ６０に進む。または、同様に、ステップＳ５５乃至Ｓ５９の処理が繰り返された後、ステップＳ５７において、ステップＳ５５乃至Ｓ５９の処理が所定回数に達したと判定された場合、処理は、ステップＳ６０に進む。
【０１７４】
ステップＳ６０において、収束判定部７６は、トライマップ画像Ｔ’と同時に送信されてきているアルファマスク画像Ａを出力部７７に供給する。出力部７７は、送信されてきたアルファマスク画像Ａを出力する。
【０１７５】
以上の処理により、アルファマスク画像Ａにおける画素単位の透明度αに基づいて、前景オブジェクト画像、または背景画像のいずれにも属さない、楕円形状で設定される所定の範囲の画素について、トライマップ画像で未確定画素に設定する処理が繰り返される。
【０１７６】
そして、この処理が繰り返されることにより、例えば、初期に設定される楕円形状サンプリングで設定される楕円形状の範囲が小さい場合、トライマップ画像更新処理が繰り返されるに従って、一般に、未確定画素の設定される範囲が大きくなっていく。
【０１７７】
しかしながら、上述したステップＳ５５乃至Ｓ５９の処理が繰り返されるに従って、灰色で示される未確定画素が設定された領域が大きくなり、所定回数（例えば、２０回程度）繰り返すことにより、トライマップ画像Ｔを更新するアルファマスク画像Ａは、アルファマスク画像Ａに基づいて、トライマップ画像Ｔを更新しても略変化がなくなる。このように、トライマップ画像が更新前後で変化しない状態になると、アルファマスク画像Ａにおける前景オブジェクト画像でも背景画像でもない透明度αが最小値と最大値との中間の値となっている範囲、すなわち、トライマスク画像Ｔにおける未確定画素の設定範囲が適切であるものとみなすことができる。
【０１７８】
そこで、このようにトライマスク画像Ｔを設定し、トライマスク画像Ｔからロバストマッティングなどによりアルファマスク画像Ａを生成して、このアルファマスク画像Ａと、エッジフローベクトルに基づいてトライマスク画像Ｔ’に更新する処理を繰り返し、最適な未確定領域を設定することが可能となる。
【０１７９】
［切出処理について］
次に、図１６のフローチャートを参照して、切出処理について説明する。
【０１８０】
ステップＳ９１において、入力画像取得部８１およびアルファマスク画像取得部８２は、それぞれ入力画像Ｉ、およびアルファマスク画像Ａが供給されてきたか否かを判定し、入力画像Ｉ、およびアルファマスク画像Ａが供給されてくるまで、同様の処理を繰り返す。
【０１８１】
ステップＳ９２において、入力画像取得部８１は、入力された入力画像Ｉを確定値マップ生成部８３、および推定前景色画像生成部８５に供給する。また、アルファマスク画像取得部８２は、入力されたアルファマスク画像Ａを確定値マップ生成部８３、画素重みマップ生成部８４、推定前景色画像生成部８５、およびラプラシアン行列生成部８６に供給する。
【０１８２】
さらに、確定値マップ生成部８３は、アルファマスク画像Ａより前景オブジェクト画像、または背景画像として確定している所定の第１の画素値の画素と、いずれにも属しない所定の第２の画素値からなる画素とからなる確定値マップ画像Ｓを生成する。
【０１８３】
より詳細には、確定値マップ生成部８３は、透明度αが、α＝１またはα＝０に設定された画素については、前景オブジェクト画像の色が確定した確定画素として、例えば、画素値を１に設定し、それ以外の未確定画素を０に設定し、確定値マップ画像Ｓを生成する。また、確定値マップ生成部８３は、確定画素として設定された画素のうち、透明度αがα＞０．５ならば前景確定画素（被写体画像に属する画素）、α＜０．５なら背景確定画素（被写体画像以外に属する画素）として設定する。
【０１８４】
また確定画素は、α＝１またはα＝０に限るものに限らず、例えば、適当な敷居値を設定して定義しても良く、例えば、α＞０．９８かつα＜０．０２としてもよい。また、未確定画素からなる未確定領域は、後段の処理の精度を向上させるため、例えば、１画素乃至数画素程度、確定領域に対して拡張するようにしてもよい。このような処理により、例えば、入力画像Ｉがアップサンプリングされた画像などであったために、確定画素と未確定画素が補間された色として計算されても色滲みのない前景オブジェクト画像の色を精度よく計算することが可能となる。  
【０１８５】
ステップＳ９３において、画素重みマップ生成部８４は、確定値マップ画像Ｓと、アルファマスク画像Ａとに基づいて、画素重みマップ画像Ｄｓを生成し、エネルギー関数生成部８７に供給する。より詳細には、画素重みマップ生成部８４は、確定値マップ画像Ｓのうち、未確定領域の画素に対応するアルファマスク画像Ａの画素値、すなわち、透明度αを画素の重みとして設定し、画素重みマップ画像Ｄｓを生成する。この画素重みマップ画像Ｄｓの各画素に対応する値の調整により、後述するエネルギー関数Ｅの特性が変化する。例えば、画素重みマップ画像Ｄｓの各画素に対応する値が大きいほど推定前景色画像に近い前景色画像が得られ易くエネルギー関数Ｅが設定される。逆に、画素重みマップ画像Ｄｓの各画素に対応する値が小さいほど、隣接する前景オブジェクト画像の画素値から補完される値に近くなり、滑らかな連続性を持つ前景オブジェクト画像の画素値が得られる。
【０１８６】
尚、ここでは、画素重みマップ画像Ｄｓの各画素に対応する重みは、各画素の透明度α（０≦α≦１）を用いるものとしているが、重みとして設定される値は、他の値であっても良いものである。
【０１８７】
ステップＳ９４において、推定前景色画像生成部８５は、推定前景色画像処理生成処理を実行し、入力画像Ｉ、アルファマスク画像Ａ、および確定値マップ画像Ｓより推定前景色画像Ｆ＾を生成し、エネルギー関数生成部８７に供給する。
【０１８８】
ここで、推定前景色画像処理生成処理について説明する。
【０１８９】
アルファマスク画像Ａの各画素におけるα値をSobelフィルタにより微分処理し、微分値Δαからなる微分画像Ａ’を生成する。
【０１９０】
次に、微分画像Ａ’に基づき、確定値マップ画像Ｓの未確定領域の各画素について、確定領域との境界上の前景オブジェクト画像の全確定画素に至る全経路上の画素の微分値Δαを積算する。そして、各画素について、この微分値Δαの積算値が最も小さな経路が、確定画素までの最短経路とみなされ、その経路を介して到達している確定画素の画素位置が読み出される。
【０１９１】
すなわち、図１７で示されるように、未確定領域の画素Ｐｄから境界上の複数の確定画素Ｐｕまでの全経路ＰＡＴＨ上の画素の微分値Δαが積算され、以下の式（５）で示される演算により最小値をとる確定画素Ｐｕが探索される。
【０１９２】
2011176748.tif 000003
・・・（５）
【０１９３】
ここで、ｄ（Ｐｄ，Ｐｕ）は、未確定領域の画素Ｐｄから確定領域との境界上に存在する確定画素Ｐｕまでの経路ＰＡＴＨ上に存在する全ての画素の微分値Δαの絶対値の積算値のうち、積算値が最小となる確定画素Ｐｕのものであることを示している。この経路毎の、微分値Δαの積算値で定義される距離は、一般にＧｅｏｄｅｓｉｃ  Ｄｉｓｔａｎｃｅと呼ばれる測地距離である。また、各経路ＰＡＴＨは、８近傍隣接関係の隣接画素間をつなぐノードとして順次結合することで設定されるものとする。すなわち、画素ＴＰが次の経路として設定可能な隣接画素は、左方向、右方向、上方向、下方向、右下方向、右上方向、左上方向、左下方向の画素Ｐ１乃至Ｐ８までの８方向となる。
【０１９４】
尚、図１７においては、領域Ｚ１１が未確定画素からなる未確定領域であり、領域Ｚ１２，Ｚ１３は、いずれも前景オブジェクト画像の確定画素からなる確定領域である。また、境界Ｂは、未画定領域と確定領域との境界であり、白色の画素ＳＦＰ１乃至ＳＦＰ８、および、黒色の画素Ｐｄは、境界Ｂ上の確定画素を示している。
【０１９５】
また、最短経路として求められた最も近傍の確定画素までの距離（Ｇｅｏｄｅｓｉｃ
Ｄｉｓｔａｎｃｅ）を画素値として設定した距離マップ画像Ｍは、例えば、確定画素については黒色が設定され、距離に応じて明るい色が設定されており、最も遠い画素については、白色に設定されている。
【０１９６】
さらに、未確定画素のそれぞれについて、最短経路として探索された画素位置の情報が対応付けられて最近傍前景画素マップ画像Ｎが生成される。
【０１９７】
次に、最近傍前景画素マップ画像Ｎに基づき、未確定画素の画素毎に設定された画素位置の入力画像Ｉにおける確定画素の画素値が読み出され、未確定画素の画素値として設定されることで、推定前景色画像Ｆ＾が生成される。すなわち、例えば、図１７で示されるように、未確定画素Ｐｕの画素値が、最短経路として探索された、最近傍前景画素である画素Ｐｄの画素位置に対応する入力画像Ｉの画素値に設定される。
【０１９８】
尚、この際、最近傍前景画素マップ画像Ｎに設定された最短経路として選択される画素は、必ずしも適切な画素でない恐れがある。そこで、最短経路として選択された画素周辺であって境界上の複数の確定画素に所定の重みを付した平均値が、未確定画素の画素値とされるようにしても良い。
【０１９９】
すなわち、図１７で示されるように、画素Ｐｕに対応する未確定画素について、最短経路として設定された画素Ｐｄと、その近傍であって、境界上の確定画素ＳＦＰ１乃至ＳＦＰ８との平均値を求めて、未確定画素Ｐｕの画素値として設定するようにしてもよい。
【０２００】
さらに、この画素Ｐｕの近傍の画素については、例えば、Jue Wang Cohen, M.F. Optimized Color Sampling for Robust Matting.Computer Vision and Pattern Recognition, 2007.を参照されたい。
【０２０１】
以上の処理により、未確定画素について、微分値の積算値が最小となる経路により最短で到達する前景オブジェクト画像の画素に置き換えることにより、前景オブジェクト画像における自然な色を再現することが可能となる。このため、前景オブジェクト画像と背景画像との境界近傍において、前景オブジェクト画像における背景画像の色の滲みを抑制することが可能となる。
【０２０２】
ここで、図１６のフローチャートの説明に戻る。
【０２０３】
ステップＳ９５において、ラプラシアン行列生成部８６は、アルファマスク画像Ａよりラプラシアン行列Ｌを生成し、エネルギー関数生成部８７に供給する。より詳細には、ラプラシアン行列生成部８６は、行数、列数が同じ正方行列で、画素間の関係を示すグラフ構造を、全画素数（ノード数）×全画素数の正方行列からなるラプラシアン行列を生成する。より詳細には、ラプラシアン行列生成部８６は、各行の対角成分が、同じ行の対角成分以外の成分を総和して、符号を反転して、つまり、各行はそれぞれ全部足すと０になるラプラシアン行列Ｌを生成する。
【０２０４】
例えば、図１８で示されるように画素Ｐ１乃至Ｐ６が接続され、図中の線分により接続された画素間が隣接関係に有るものとする。図１８で示されるような関係が有る場合、ラプラシアン行列生成部８６は、例えば、以下の式（６）で示されるようなラプラシアン行列Ｌを生成する。
【０２０５】
2011176748.tif 000004
・・・（６）
【０２０６】
すなわち、図１８で示されるように、画素Ｐ１には、画素Ｐ２，Ｐ５が接続されている。このため、ラプラシアン行列生成部８６は、式（６）のラプラシアン行列Ｌで示されるように、１行目は、画素Ｐ２，Ｐ５に対応する２，５列目に「−１」を設定し、１列目を「２」（＝｜−１｜×２）とする。
【０２０７】
また、同様に、図１８で示されるように、画素Ｐ２には、画素Ｐ１，Ｐ３，Ｐ５が接続されている。このため、ラプラシアン行列生成部８６は、式（６）のラプラシアン行列Ｌで示されるように、２行目は、画素Ｐ１，Ｐ３，Ｐ５に対応する１，３，５列目に「−１」を設定し、２列目を「３」（＝｜−１｜×３）とする。
【０２０８】
さらに、同様に、図１８で示されるように、画素Ｐ３には、画素Ｐ２，Ｐ４が接続されている。このため、ラプラシアン行列生成部８６は、式（６）のラプラシアン行列Ｌで示されるように、３行目は、画素Ｐ２，Ｐ４に対応する２，４列目に「−１」を設定し、３列目を「２」（＝｜−１｜×２）とする。
【０２０９】
また、同様に、図１８で示されるように、画素Ｐ４には、画素Ｐ３，Ｐ５，Ｐ６が接続されている。このため、ラプラシアン行列生成部８６は、式（６）のラプラシアン行列Ｌで示されるように、４行目は、画素Ｐ３，Ｐ５，Ｐ６に対応する１，３，５列目に「−１」を設定し、４列目を「３」（＝｜−１｜×３）とする。
【０２１０】
さらに、同様に、図１８で示されるように、画素Ｐ５には、画素Ｐ１，Ｐ２，Ｐ４が接続されている。このため、ラプラシアン行列生成部８６は、式（６）のラプラシアン行列Ｌで示されるように、５行目は、画素Ｐ１，Ｐ２，Ｐ４に対応する１，２，４列目に「−１」を設定し、５列目を「３」（＝｜−１｜×３）とする。
【０２１１】
また、同様に、図１８で示されるように、画素Ｐ６には、画素Ｐ４のみが接続されている。このため、ラプラシアン行列生成部８６は、式（６）のラプラシアン行列Ｌで示されるように、６行目は、画素Ｐ４に対応する４列目に「−１」を設定し、４列目を「１」（＝｜−１｜×１）とする。
【０２１２】
ステップＳ９６において、エネルギー関数生成部８７は、画素重みマップ画像Ｄｓ、ラプラシアン行列Ｌ、および推定前景色画像Ｆ＾に基づき、以下の式（７）で示される前景色画像Ｆをパラメータとしたエネルギー関数Ｅを生成し、前景色画像生成部８８に供給する。
【０２１３】
ｘ＝arg min（ｘTＬｘ＋λ（ｘ−Ｆ＾）TＤｓ（ｘ−Ｆ＾））
・・・（７）
【０２１４】
ここで、arg min（Ｑ）、は数学記号で、関数Ｑの値が最小になるようにパラメータxの値を決定させることを示す関数である。また、ｘは生成されるべき前景色画像Ｆを構成する色画像Ｆｃにおける画素数分のベクトルである。このため、式（７）は、エネルギー関数Ｅが最小となるベクトルｘの組み合わせが求められることになる。また、ｘT，（ｘ−Ｆ＾）Tはそれぞれベクトルｘ，（ｘ−Ｆ＾）の転置を示し、Ｌはラプラシアン行列、λは正の値からなる係数を、Ｄｓは画素重みマップ画像をそれぞれ示している。
【０２１５】
式（３）においては、「ｘTＬｘ」は、平滑化項であり、「λ（ｘ−Ｆ＾）TＤｓ（ｘ−Ｆ＾）」はデータ項である。
【０２１６】
平滑化項は隣接する画素の値同士が滑らか（同じ）になるようにベクトルｘを決めるように作用する項である。また、データ項はベクトルｘと推定前景色画像Ｆ＾とが０となるようにすることで推定前景色画像Ｆ＾にベクトルxを近づけように作用する項である。
【０２１７】
平滑化項とデータ項とは、相互にトレードオフの関係にあり、いずれか一方の値を優先して０（最小）にしようとすると、他方の値が大きくなる。よって、式（７）は、両者の値がバランスよく、かつ、合計が最小になるように計算される。前景色画像生成部８８は、実際の計算では、式（７）を共役勾配法やＬＵ分解により計算し最小化する。
【０２１８】
また、係数λは、データ項の平滑化項に対する相対的な強さを調整する。また、画素重みマップ画像Ｄｓは、データ項の各行の相対的な重要度、すなわち、前景オブジェクト画像を構成する画素の画素値への影響力の大きさを設定する。すなわち、画素重みマップ画像Ｄｓに、１．０の項が存在すれば、係数λだけ拘束力が大きくなり、λが小さくなるほど拘束力が小さくなる。そして、画素重みマップ画像Ｄｓまたは係数λにより拘束力が０になると、データ項の重要度はゼロとなり、エネルギー関数Ｅは、平滑化項のみにより決定されることになる。尚、画素重みマップ画像Ｄｓは、正の値で一般には０．０乃至１．０であるが、それに限定されるものではない。
【０２１９】
また、平滑化項やデータ項が２次式とされている(ベクトルｘを2回乗算している）のは、数学的に最小解を求めるためであり、例えば、以下の式（８）で示されるように、微分式とすることにより最小値を求めることができる。
【０２２０】
（Ｌ＋λＤｓ）ｘ＝λＦ＾
・・・（８）
【０２２１】
ステップＳ９７において、前景色画像生成部８８は、例えば、上述した式（８）を演算することにより、ベクトルｘを解いて、前景色画像Ｆを構成する色画像Ｆｃを求める。
【０２２２】
ステップＳ９８において、前景色画像生成部８８は、ＲＧＢ（Red Green Blue）の全色分の色画像Ｆｃが求められたか否かを判定し、全色の処理が終了していない場合、ステップＳ９７に戻り、未処理の色について処理を実行する。すなわち、全ての色の色画像Ｆｃが求められるまで、ステップＳ９７，Ｓ９８の処理が繰り返される。
【０２２３】
そして、ステップＳ９８において、全色分の色画像Ｆｃが求められ、処理が終了したと判定された場合、ステップＳ９９において、前景色画像生成部８８は、全色分の色画像Ｆｃより前景色画像Ｆを構成し、入力画像Ｉにおけるアルファマスク画像Ａで設定された、前景オブジェクト画像Ｆとして出力する。このとき、前景色画像生成部８８は、前景オブジェクト画像Ｆをマスク画像生成部８９にも出力する。
【０２２４】
ステップＳ１００において、マスク画像生成部８９は、入力画像Ｉのうち、前景オブジェクト画像Ｆに対応する領域をマスク領域に設定して、マスク画像Ｂを生成し出力する。
【０２２５】
以上の処理により、エネルギー関数Ｅが最小となるように、各色の前景色画像の画素値からなるベクトルｘが求められ、このベクトルｘからなる各色の色画像Ｆｃから前景色画像Ｆが求められ、前景色画像Ｆが前景オブジェクト画像Ｆとして構成される。結果として、前景オブジェクト画像と背景画像との境界付近で、前景オブジェクト画像に生じる背景画像の色の滲みを抑制することが可能となる。
【０２２６】
［マスク画像修復処理］
次に、図１９のフローチャートを参照して、マスク画像修復処理について説明する。
【０２２７】
ステップＳ１１１において、入力画像記憶部１０１は、入力画像を記憶する。
【０２２８】
ステップＳ１１２において、マスク画像取得部１０９は、被写体切出部２５より供給されてくるマスク画像を取得し、マスク画像記憶部１１０に記憶させる。
【０２２９】
ステップＳ１１３において、修復部１０７は、マスク画像記憶部１１０に記憶されているマスク画像を読み出し、マスク画像にマスク領域が存在するか否かを判定する。ステップＳ１１３において、例えば、マスク画像にマスク領域が存在すると判定された場合、処理は、ステップＳ１１４に進む。
【０２３０】
ステップＳ１１４において、マスク境界設定部１０２は、マスク画像の情報から入力画像におけるマスク領域との境界となる範囲を設定し、設定した入力画像におけるマスク領域との境界の情報をマスク境界情報記憶部１０３に記憶させる。
【０２３１】
ステップＳ１１５において、領域優先度計算部１０４は、マスク領域との境界に設定された範囲を、複数の所定領域に分割し、所定領域毎に優先度を計算し、所定領域毎の優先度の情報を最大優先度領域選択部１０５に供給する。より詳細には、領域優先度計算部１０４は、例えば、エッジの最も多い領域の優先度が高くなりように優先度を計算する。尚、優先度を求める手法は、これに限るものでなはなく、優先度を設定することができれば、他の手法であっても良い。その他方の手法の例については、"Object Removal by Exemplar-Based Inpainting", A. Criminisi, P. Perez, K. Toyama, CVPR 2003を参照されたい。
【０２３２】
ステップＳ１１６において、最大優先度領域選択部１０５は、領域優先度計算部１０４より供給されてくる所定領域毎の優先度が最大値となる所定領域を選択し、選択した所定領域の画像の情報をブロックマッチング処理部１０６に供給する。
【０２３３】
ステップＳ１１７において、ブロックマッチング処理部１０６は、ブロックマッチング処理により入力画像内において、マスク領域との境界領域において、優先度が最大値に設定されている所定領域の画素値（輝度値）と最も類似する領域を巡回的に検索する。
【０２３４】
ステップＳ１１８において、ブロックマッチング処理部１０６は、検索した所定領域の画素値（輝度値）と最も類似する領域に隣接する領域であって、優先度が最大値に設定されている所定領域が隣接するマスク領域の位置に対応する所定領域の情報を複写して修復部１０７に供給する。修復部１０７は、マスク画像記憶部１１０に記憶されているマスク画像を読み出す。そして、修復部１０７は、検索した所定領域の輝度値と最も類似する領域に隣接する領域であって、優先度が最大値に設定されている所定領域が隣接するマスク領域の位置に、供給されてきた複写されている所定領域の画像を貼り付けてマスク画像のマスク領域を修復する。さらに、修復部１０７は、修復したマスク領域の情報を更新してマスク画像をマスク画像記憶部１１０に記憶させ、処理は、ステップＳ１１３に戻る。そして、ステップＳ１１３において、マスク領域が存在しないと判定されるまで、ステップＳ１１３乃至Ｓ１１８の処理が繰り返される。
【０２３５】
すなわち、優先度は、入力画像におけるマスク領域との境界領域において、繰り返し頻度が高い所定領域であるほど高く計算される。したがって、入力画像の他の領域において、類似する所定領域が存在すれば、その隣接する領域には、マスク画像となる領域に存在するであろう背景画像の情報が含まれている可能性が高いと考えられる。そこで、優先度の最も高い所定領域と最も類似する所定領域を検索し、検索された所定領域の隣接する隣接領域をマスク画像に貼り付けてマスク画像が修復され、マスク画像がなくなるまで、同様の処理が繰り返される。すなわち、優先度は失敗が目に付く場所ほど高くなる．
【０２３６】
そして、ステップＳ１１３において、マスク領域が存在しないと判定された場合、すなわち、マスク領域が完全に修復され、背景画像が生成されたと判定された場合、ステップＳ１１９に進む。
【０２３７】
ステップＳ１１９において、修復部１０７は、背景画像出力部１０８に対してマスク画像のマスク領域が修復されて、背景画像が生成されたものとみなし、マスク画像記憶部１１０に記憶されているマスク画像を背景画像として背景画像記憶部２７に記憶させる。
【０２３８】
以上の処理により、例えば、図２の場合、画像Ｐ３における被写体領域との境界領域で見られるように、同一色の背景領域が存在するため、優先度の高い所定領域としては同一色の画像が繰り返し検索されることとなる。このため、例えば、図２の画像Ｐ５で示されるように、それまで被写体である犬が存在していたマスク領域は、周辺の画像である背景色の画像として違和感なく修復されている。結果として、被写体切出画像として切り出された画像は、画像上のいかなる位置に配置しても自然な背景を得ることが可能となる。
【０２３９】
［画像合成処理について］
次に、図２０のフローチャートを参照して、画像合成処理について説明する。
【０２４０】
ステップＳ１４１において、被写体画像勾配計算部１２１および背景画像勾配計算部１２２は、操作部３４の操作内容に応じて指示部３３より供給される指示内容に応じて、それぞれ被写体領域切出画像の領域、および背景画像の領域を特定する。
【０２４１】
ステップＳ１４２において、被写体画像勾配計算部１２１は、被写体切出画像記憶部２９に記憶されている被写体切出画像を読み出し、画素値、または輝度値の分布より被写体画像における画素値、または輝度値の勾配を求めポアソン方程式生成部１２３に供給する。
【０２４２】
ステップＳ１４３において、背景画像勾配計算部１２２は、背景画像記憶部２７に記憶されている背景画像を読み出し、画素値、または輝度値の分布より背景画像における画素値、または輝度値の勾配を求め、ポアソン方程式生成部１２３に供給する。
【０２４３】
より詳細には、被写体画像勾配計算部１２１および背景画像勾配計算部１２２は、例えば、処理対象となる画素である注目画素と、その近傍に隣接する４画素との差分で勾配を計算する。
【０２４４】
ステップＳ１４４において、ポアソン方程式生成部１２３は、被写体切出画像の勾配の演算結果と、背景画像の勾配の演算結果とを用いて、ポアソン方程式を生成し、生成したポアソン方程式をポアソン方程式演算部１２４に供給する。
【０２４５】
ステップＳ１４５において、ポアソン方程式演算部１２４は、ポアソン方程式生成部１２３より供給されてきたポアソン方程式を演算により解き、被写体切出画像および背景画像の合成による境界付近の分布を求め演算結果を合成処理部１２５に供給する。
【０２４６】
より具体的には、以下の式（９）を満たす画素値fを求めれば被写体切出画像および背景画像を合成することができる。
2011176748.tif 000005
・・・（９）
【０２４７】
ここで、fは被写体切出画像の画素値であり、f*は合成する背景画像の画素値であり、Ωは合成する領域であり、∂Ωは合成領域の境界を表わす。
【０２４８】
すなわち、この式（９）に基づいて、ポアソン方程式生成部１２３は、以下の式（１０）を求め、ポアソン方程式演算部１２４は、この式（１０）を解くことにより、境界付近の分布を求める。
2011176748.tif 000006
・・・（１０）
【０２４９】
尚、ポアソン方程式を用いた解法の詳細については、例えば、"Poisson Image Editing", Patrick Perez, Michel Gangnet, Andrew Blake, SIGGRAPH 2003を参照されたい。
【０２５０】
ステップＳ１４６において、合成処理部１２５は、ポアソン方程式演算部１２４による演算結果から、被写体切出画像、および背景画像を合成した画像を生成して、表示処理部３１に供給し、表示部３２により表示させる。
【０２５１】
すなわち、画像合成部２８は、被写体切出画像、および背景画像を、いわゆるポアソン画像合成処理により合成する。このため、被写体切出画像、および背景画像との境界において、それぞれの色分布が自然な状態で合成させることが可能となる。
【０２５２】
以上の処理により、本発明によれば、画像内において被写体を自由に移動させても、被写体が切り取られることにより生じるマスク領域を修復することが可能となるので、切り出した被写体切出画像を画像内で自由に移動させるといった編集が可能となる。さらに、その際、ポアソン画像合成により切り出された被写体切出画像と背景画像とを自然な配色で合成することが可能となり、違和感のない画像編集が可能となる。
【０２５３】
＜第２の実施例＞
［被写体検出部のその他の構成例］
以上においては、被写体の検出にあたり輝度情報、色情報、エッジ情報、被写体情報、および動き情報を抽出して、被写体マップを生成して、被写体マップの情報から被写体領域を特定する例について説明してきたが、被写体が検出できれば、その他の構成でもよい。すなわち、被写体検出にあたり、例えば、FFT（Fourier Function Transform）を利用して検出する構成とするようにしてもよい。これは周波数領域にて平滑化した成分を除いた領域が注視領域になるという手法である。詳細は、"Saliency Detection: A Spectral Residual Approach", Xiaodi Hou and Liqing Zhang, CVPR 2007を参照されたい。
【０２５４】
図２１は、被写体領域検出部２１のその他の構成例を示している。
【０２５５】
図２１の被写体領域検出部２１は、FFTを利用して被写体を検出する構成例であり、FFT演算部１４１、対数演算部１４２、平滑化処理部１４３、差分演算部１４４、IFFT（Inverse Fourier Function Transform）演算部１４５、および角度成分抽出部１４６を備えている。
【０２５６】
FFT演算部１４１は、入力画像をFFT変換処理し、対数演算部１４２に出力する。この際、角度成分抽出部１４６は、FFT演算部１４１のFFT変換処理において出力される情報の角度成分を抽出し、IFFT演算部１４５に供給する。
【０２５７】
対数演算部１４２は、FFT演算部１４１の演算結果を対数演算し、演算結果を平滑化処理部１４３、および差分演算部１４４に供給する。平滑化演算部１４３は、FFT演算部１４１の演算結果の対数演算結果を平滑化して差分演算部１４４に供給する。差分演算部１４４は、対数演算部１４２の演算結果のうち平滑化していないものから平滑化したものの差分を求めて、IFFT演算部１４５に供給する。IFFT演算部１４５は、差分演算部１４４より供給されてくる差分演算結果を、角度成分抽出部１４６により抽出されたFFT演算部１４１における演算結果より抽出された角度成分に基づいて、差分演算結果を実部とし、角度成分抽出部１４６により抽出されたFFT演算部１４１における演算結果より抽出された角度成分を虚部として、指数関数にかけたうえで、逆FFT演算処理し、被写体領域検出画像として出力する。
【０２５８】
［被写体領域検出処理について］
次に、図２２のフローチャートを参照して、図２１の被写体検出部による被写体領域検出処理について説明する。
【０２５９】
ステップＳ１６１において、FFT演算部１４１は、入力画像の各画素の輝度をFFT変換処理し、対数演算部１４２に出力する。
【０２６０】
ステップＳ１６２において、角度成分抽出部１４６は、FFT演算部１４１のFFT変換処理において出力される情報の角度成分を抽出し、IFFT演算部１４５に供給する。
【０２６１】
ステップＳ１６３において、対数演算部１４２は、FFT演算部１４１の演算結果の絶対値を対数演算し、演算結果を平滑化処理部１４３、および差分演算部１４４に供給する。
【０２６２】
ステップＳ１６４において、平滑化演算部１４３は、FFT演算部１４１の演算結果の対数演算結果を平滑化して差分演算部１４４に供給する。
【０２６３】
ステップＳ１６５において、差分演算部１４４は、対数演算部１４２の演算結果のうち平滑化していないものから平滑化したものの差分を求めて、IFFT演算部１４５に供給する。
【０２６４】
ステップＳ１６６において、IFFT演算部１４５は、差分演算部１４４より供給されてくる差分演算結果を実部とし、角度成分抽出部１４６により抽出されたFFT演算部１４１における演算結果より抽出された角度成分を虚部とし指数関数にかけたうえで、逆FFT演算処理する。
【０２６５】
ステップＳ１６７において、IFFT演算部１４５は、逆FFT演算処理による演算結果を
被写体領域検出画像として出力する。
【０２６６】
以上の処理により、FFT演算を用いても、被写体領域を検出することが可能となる。
【０２６７】
ところで、上述した一連の画像処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【０２６８】
図２３は、汎用のパーソナルコンピュータの構成例を示している。このパーソナルコンピュータは、CPU(Central Processing Unit)１００１を内蔵している。CPU１００１にはバス１００４を介して、入出力インタ-フェイス１００５が接続されている。バス１００４には、ROM(Read Only Memory)１００２およびRAM(Random Access Memory)１００３が接続されている。
【０２６９】
入出力インタ-フェイス１００５には、ユーザが操作コマンドを入力するキーボード、マウスなどの入力デバイスよりなる入力部１００６、処理操作画面や処理結果の画像を表示デバイスに出力する出力部１００７、プログラムや各種データを格納するハードディスクドライブなどよりなる記憶部１００８、LAN（Local Area Network）アダプタなどよりなり、インターネットに代表されるネットワークを介した通信処理を実行する通信部１００９が接続されている。また、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む）、光磁気ディスク（ＭＤ(Mini Disc)を含む）、もしくは半導体メモリなどのリムーバブルメディア１０１１に対してデータを読み書きするドライブ１０１０が接続されている。
【０２７０】
CPU１００１は、ROM１００２に記憶されているプログラム、または磁気ディスク、光ディスク、光磁気ディスク、もしくは半導体メモリ等のリムーバブルメディア１０１１から読み出されて記憶部１００８にインストールされ、記憶部１００８からRAM１００３にロードされたプログラムに従って各種の処理を実行する。RAM１００３にはまた、CPU１００１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０２７１】
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。
【０２７２】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【符号の説明】
【０２７３】
１１  画像処理装置，  ２１  被写体検出部，  ２２  被写体検出判定部，  ２３  補助入力情報付加部，  ２４  被写体切出領域設定部，  ２５  被写体切出部，  ２６  マスク画像修復部，  ２７  背景画像記憶部，  ２８  画像合成部，  ２９  被写体切出画像記憶部，  ３０  出力部，  ３１  表示処理部，  ３２  表示部，  ３３  指示部，  ３４  操作部，  ４１  アルファマスク画像生成部，  ４２  切出部
【図１】
2011176748.tif 000007
【図２】
2011176748.tif 000008
【図３】
2011176748.tif 000009
【図４】
2011176748.tif 000010
【図５】
2011176748.tif 000011
【図６】
2011176748.tif 000012
【図７】
2011176748.tif 000013
【図８】
2011176748.tif 000014
【図９】
2011176748.tif 000015
【図１０】
2011176748.tif 000016
【図１１】
2011176748.tif 000017
【図１２】
2011176748.tif 000018
【図１３】
2011176748.tif 000019
【図１４】
2011176748.tif 000020
【図１５】
2011176748.tif 000021
【図１６】
2011176748.tif 000022
【図１７】
2011176748.tif 000023
【図１８】
2011176748.tif 000024
【図１９】
2011176748.tif 000025
【図２０】
2011176748.tif 000026
【図２１】
2011176748.tif 000027
【図２２】
2011176748.tif 000028
【図２３】
2011176748.tif 000029