(57)【要約】【課題】画像中の不要物体を除去する修復処理において、より自然な処理結果を得る。【解決手段】画像処理装置１は、所定数の画素により構成される画像を表示する表示部５、及び表示部５を制御する制御部２を備える。制御部２は、表示部５に表示される画像に対して、画像中の修復対象領域である除去領域３０ａと除去領域３０ａを含まない領域である第１の非除去領域３０ｂとから構成される除去パッチ３０を決定し、除去領域３０ａにおける各画素の画素値を除去パッチ外の他の画素の画素値で置き換える。制御部２はさらに、第１の非除去領域３０ｂに含まれる各画素について除去領域３０ａからの距離を計算する。制御部２は、第１の非除去領域３０ｂにおける少なくとも一部の画素の画素値と除去パッチ外の他の画素の画素値とをその距離に基づいて混合し、混合した結果である画素値を第１の非除去領域３０ｂにおける少なくとも一部の画素の画素値とする。【選択図】図６
2014212511.tif 000002
【特許請求の範囲】
【請求項１】
表示される画像中の修復対象領域を修復する画像処理装置であって、
所定数の画素により構成される画像を表示する表示部、及び
前記表示部を制御する制御部、
を備え、
前記制御部は、前記表示部に表示される画像に対して、
前記修復対象領域である除去領域と前記除去領域を含まない領域である第１の非除去領域とから構成される除去パッチを決定し、
前記除去領域における各画素の画素値を前記除去パッチ外の他の画素の画素値で置き換え、
前記第１の非除去領域に含まれる各画素について前記除去領域からの距離を計算し、
前記第１の非除去領域における少なくとも一部の画素の画素値と前記除去パッチ外の他の画素の画素値とを前記距離に基づいて混合し、混合した結果である画素値を前記第１の非除去領域における少なくとも一部の画素の画素値とする、
画像処理装置。
【請求項２】
前記制御部は、
（i）前記第１の非除去領域とは異なる第２の非除去領域から構成され、前記除去パッチに対応する参照パッチを選択し、
(ii)前記除去領域における各画素の画素値を前記参照パッチの対応する第２の非除去領域における画素の画素値で置き換えることにより、前記除去領域を非除去領域に変更し、
(iii)前記第１の非除去領域における少なくとも一部の画素の画素値と、対応する前記第２の非除去領域における画素の画素値とを前記距離に基づいて混合し、混合した結果である画素値を前記第１の非除去領域における少なくとも一部の画素の画素値とする、
請求項１に記載の画像処理装置。
【請求項３】
前記制御部は、前記画像内に前記除去領域がなくなるまで前記（i）から（iii）の処理を繰り返す、
請求項２記載の画像処理装置。
【請求項４】
前記制御部はさらに、
前記除去パッチの端部周囲の画素について前記除去領域からの距離を求め、
前記除去パッチの端部周囲の画素の画素値と前記参照パッチの対応する端部周囲の画素の画素値を前記距離に基づいて混合し、混合した結果である画素値を前記除去パッチの端部周囲の当該画素の画素値とする、
請求項２又は３に記載の画像処理装置。
【請求項５】
前記制御部は、
１／Ｋに縮小した画像を前記表示部に表示させる、
請求項２から４のいずれかに記載の画像処理装置。
【請求項６】
前記制御部は、
少なくとも前記除去パッチのサイズ及び位置と、前記参照パッチの位置とを含む履歴情報を記憶部に記憶させ、
記憶された前記履歴情報に基づき、縮小した画像をＫ倍した元の画像に対し、修復対象領域を修復する処理を実行する、
請求項５に記載の画像処理装置。
【請求項７】
前記制御部は、前記元の画像に対し、前記縮小した画像と同じ回数前記修復対象領域を修復する処理を実行する、
請求項６に記載の画像処理装置。
【請求項８】
前記制御部は、
前記距離が所定値未満である場合、前記混合した結果である画素値を前記第１の非除去領域における画素の画素値とし、
前記距離が前記所定値以上である場合、前記第１の非除去領域における画素の画素値を維持する、
請求項１から７のいずれかに記載の画像処理装置。
【請求項９】
前記制御部は、前記除去パッチにおける前記第１の非除去領域の画素値との類似度に基づき前記参照パッチを選択する、
請求項２から８のいずれかに記載の画像処理装置。
【請求項１０】
前記参照パッチは、前記除去パッチと同じ画素数を有する、
請求項２から９のいずれかに記載の画像処理装置。
【請求項１１】
表示部に表示される画像中の修復対象領域を修復する画像処理方法であって、
表示される画像に対して、
前記修復対象領域である除去領域と前記除去領域を含まない領域である非除去領域とから構成される除去パッチを決定し、
前記除去領域における各画素の画素値を前記除去パッチ外の他の画素の画素値で置き換え、
前記非除去領域に含まれる各画素について前記除去領域からの距離を計算し、
前記非除去領域における少なくとも一部の画素の画素値と前記除去パッチ外の他の画素の画素値とを前記距離に基づいて混合し、混合した結果である画素値を前記非除去領域における少なくとも一部の画素の画素値とする、
画像処理方法。
【請求項１２】
表示部に表示される画像中の修復対象領域を修復する画像処理をコンピュータに実行させる画像処理プログラムであって、
表示される画像に対して、
前記修復対象領域である除去領域と前記除去領域を含まない領域である非除去領域とから構成される除去パッチを決定し、
前記除去領域における各画素の画素値を前記除去パッチ外の他の画素の画素値で置き換え、
前記非除去領域に含まれる各画素について前記除去領域からの距離を計算し、
前記非除去領域における少なくとも一部の画素の画素値と前記除去パッチ外の他の画素の画素値とを前記距離に基づいて混合し、混合した結果である画素値を前記非除去領域における少なくとも一部の画素の画素値とする、
画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、使用者の意図と反する画像の一部を修復する画像処理技術に関する。
【背景技術】
【０００２】
画像に、使用者が不要と考える不要物体（顔のシミ又はホクロ、背景における電線など）が写りこんでいる場合がある。従来、この不要物体を画像から除去した後、修復処理を行う機能が提案されている。例えば、不要物体を除去した領域である欠損領域に、非欠損領域の画素値を貼り付けることで修復する画像処理方法が開示されている。すなわち、欠損領域を含む領域の画像である欠損パッチと、欠損領域を含まない領域の画像である参照パッチとを含むパッチの組の中から、欠損パッチと参照パッチとがより類似しているパッチの組を選択し、欠損パッチにおいて推定された欠損領域の画素値と、対応する参照パッチの画素値との関係をもとに、欠損パッチの画像と参照パッチの画像とがより類似しているパッチの組を選択する。そして、選択されたパッチの組における参照パッチをもとに欠損パッチを修復する。（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際特許公開番号ＷＯ２０１１／０６１９４３
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本開示は、画像中の不要物体を除去する画像修復処理において、より自然な処理結果を得るために有効な画像処理装置、画像処理方法、及び画像処理プログラムを提供する。
【課題を解決するための手段】
【０００５】
本開示の一つの観点に係る画像処理装置は、表示される画像中の修復対象領域を修復する画像処理装置であって、所定数の画素により構成される画像を表示する表示部、及び表示部を制御する制御部を備える。制御部は、表示部に表示される画像に対して、修復対象領域である除去領域と同除去領域を含まない領域である第１の非除去領域とから構成される除去パッチを決定し、同除去領域における各画素の画素値を除去パッチ外の他の画素の画素値で置き換える。制御部はさらに、第１の非除去領域に含まれる各画素について除去領域からの距離を計算し、第１の非除去領域における少なくとも一部の画素の画素値と除去パッチ外の他の画素の画素値とを上記距離に基づいて混合し、混合した結果である画素値を第１の非除去領域における少なくとも一部の画素の画素値とする。
【０００６】
本開示の他の観点に係る画像処理方法は、表示部に表示される画像中の修復対象領域を修復する画像処理方法であって、表示される画像に対して、修復対象領域である除去領域と同除去領域を含まない領域である非除去領域とから構成される除去パッチを決定し、除去領域における各画素の画素値を除去パッチ外の他の画素の画素値で置き換え、非除去領域に含まれる各画素について除去領域からの距離を計算し、非除去領域における少なくとも一部の画素の画素値と除去パッチ外の他の画素の画素値とを上記距離に基づいて混合し、混合した結果である画素値を非除去領域における少なくとも一部の画素の画素値とする。
【発明の効果】
【０００７】
本開示における画像処理装置、画像処理方法、及び画像処理プログラムは、画像中の不要物体を除去する画像修復処理において、より自然な処理結果を得るために有効である。
【図面の簡単な説明】
【０００８】
【図１】実施の形態に係る画像処理装置１の概略構成を示すブロック図
【図２】同画像処理装置１の動作を示すフローチャート
【図３】同画像処理装置１による縮小処理後の画像を示す図
【図４】同画像処理装置１の領域指定処理の動作を示すフローチャート
【図５】同領域指定処理の結果として２値化画像を生成した状態を説明する図
【図６】同画像処理装置１の縮小画像修復処理の動作を示すフローチャート
【図７】縮小画像修復処理における１番目の除去パッチと参照パッチの関係を説明する図
【図８】パッチ履歴として記録する除去／参照パッチの位置を説明する図
【図９】縮小画像修復処理において各画素に関する除去領域から非除去領域の距離を表示した図
【図１０】除去パッチの修復結果を説明する図
【図１１】２番目の除去パッチと参照パッチの関係を説明する図
【図１２】各画素に関する除去領域から非除去領域の距離を表示した図
【図１３】除去パッチの修復結果を説明する図
【図１４】縮小画像修復処理の動作結果を説明する図
【図１５】同画像処理装置１の元画像修復処理の動作を示すフローチャート
【図１６】変形例に係る３番目の除去パッチと参照パッチの関係を説明する図
【図１７】同変形例に係る各画素の除去領域から非除去領域の距離を表示した図
【発明を実施するための形態】
【０００９】
以下、適宜図面を参照しながら、実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。
なお、発明者は、当業者が本開示を十分に理解するために添付図面および以下の説明を提供するのであって、これらによって特許請求の範囲に記載の主題を限定することを意図するものではない。
【００１０】
（実施の形態１）
以下、図１〜図１７を用いて、実施の形態１を説明する。
［１．構成］
図１は、画像処理装置１の構成を概略的に示すブロック図である。画像処理装置１は、任意の電子機器であり、例えば、デジタルスチルカメラ、デジタルビデオカメラ、パーソナルコンピュータ、携帯電話機、情報端末である。画像処理装置１は、画像処理装置１内の各部位の動作を統括的に制御する制御部２（制御部の一例）、レンズや撮像素子を備え画像を撮影するカメラやスキャナなどの画像入力部３、撮影した画像などの各種情報を記録する記憶部４、画像などの映像情報を表示する液晶モニターや有機ＥＬディスプレイなどの表示部５（表示部の一例）、使用者からの各種操作の入力を受けるタッチパネルなどの操作入力部６を備えている。
【００１１】
制御部２は、ＣＰＵ等のプロセッサを含み、所定のプログラムの処理を実行することによって画像処理装置１の動作を実行する。記憶部４は、ハードディスクやシリコンディスク、あるいはＳＤカード（半導体メモリ）などから構成してよい。また、キャッシュやＲＡＭなどの一時的な記憶を行うもので構成してもよい。
また操作入力部６には、マウスやタブレットなどのポインティング・デバイスを用いてもよいし、キーボードを利用してもよい。あるいは、各種方式による電子ペンなどを用いてもよい。
【００１２】
［２．動作］
［２−１．画像処理装置の動作］
以上のように構成された画像処理装置１の動作を、図２のフローチャートを用いて説明する。
使用者の指示に従って、画像処理装置１の制御部２は、画像入力部３が撮影した画像から縮小画像を生成する。あるいは、あらかじめ画像入力部３が撮影した画像を記憶した記憶部４から、画像を読み出して縮小画像を生成する。そして、生成した縮小画像を表示部５に表示する（Ｓ１０１）。
【００１３】
次に制御部２は、例えば使用者が指定した縮小画像中の任意領域を認識し、そこに含まれる画素を除去領域とする２値化画像を生成する（Ｓ１０２）。
次に制御部２は、除去領域に対して縮小画像の修復処理を行うと共に、修復処理の手順を記憶する（Ｓ１０３）。
そして制御部２は、記憶した修復処理の手順を利用して、ステップＳ１０１において縮小する前の画像（元画像）の修復処理を行う（Ｓ１０４）。
【００１４】
以下に、図２のフローチャートに示した縮小画像表示処理（Ｓ１０１）、領域指定処理（Ｓ１０２）、縮小画像修復処理（Ｓ１０３）、元画像修復処理（Ｓ１０４）の動作について、さらに詳細に説明する。
［２−２．縮小画像表示処理の動作］
図３は、縮小画像を液晶画面に表示した状態を示す図である。
【００１５】
画像入力部３が撮影した画像、あるいは記憶部４に記憶された画像は、例えば横４４８０個、縦３３６０個の画素から構成されている。各画素は、例えば輝度Ｙ、色差Ｕ，Ｖの３つのデジタルデータ（以下画素値と呼ぶ）を有している。なお、画像のデータ形式としては、ＲＧＢ色空間やＬａｂ色空間などとの間で相互に変換可能であるので、他の色空間に変換した結果を画素値として処理してもよい。
【００１６】
このような多数の画素から構成された画像（以下元画像と呼ぶ）に対して、表示部５の液晶画面の画素数は少ないのが一般的である。例えば、横６４０個、縦４８０個の表示画素から構成されている液晶画面を例に説明を続ける。
制御部２は元画像から１／Ｋに縮小した縮小画像を生成する。例えば、Ｋ＝７の場合について、以下説明を続ける。まず、元画像を縦横Ｋ×Ｋ個、すなわち７×７個の画素からなる正方形のブロックに均等分割する。すると、横６４０個、縦４８０個のブロックができる。そこで、各ブロックにおける中心画素を選択して、中心画素の画素値を縮小画像１０の画素値とすればよい（間引き処理）。あるいは、各ブロックに含まれる４９個の画素から、輝度Ｙ、色差Ｕ，Ｖの３つの画素値の平均値を計算し、縮小画像１０の画素値としてもよい（平均化処理）。
【００１７】
以上のようにして制御部２が縮小画像を生成し、表示部５の液晶画面に表示した例を図３に示す。元画像を１／Ｋに縮小した縮小画像１０には、第１被写体１１、第２被写体１２、第３被写体１３などが含まれている。これら３つの被写体の中から、第１被写体１１を、不要物体として除去し、除去領域を修復処理する場合を例に、以下説明を続ける。
［２−３．領域指定処理の動作］
図４は画像処理装置１による領域指定処理の動作を示すフローチャートである。また図５は、不要物体として指定された除去領域を２値化画像として生成した状態を説明する図である。
【００１８】
画像処理装置１の制御部２は、表示部５の液晶画面に縮小画像１０を表示（図３）した後、使用者に入力を促す。使用者は液晶画面に指先で触れて、第１被写体１１の輪郭部分をトレースする。制御部２は、操作入力部６のタッチパネルが検出した指先の位置を逐次記録して、第１被写体１１を囲う閉曲線を得る。そして、この閉曲線の内部を不要物体であると判定する（Ｓ２０１）。
【００１９】
なお不要物体の指定は、上記のように使用者の入力に頼らずとも、自動的に検出してもよい。例えば、ゴミや傷といった線状の欠陥を自動的に検出し、これを不要物体として自動検出してもよい。あるいは、色や明るさなどの違いを判定して、画面をいくつかの候補になる領域（例えば、第１被写体１１、第２被写体１２、第３被写体１３）に分割する手法も有効である。候補の中から１個以上の領域を使用者に選択させてもよい。
【００２０】
以上の様にして不要物体を認識した後、制御部２は、そこに含まれる画素を除去領域とする２値化画像を生成する。すなわち、第１被写体１１を囲う閉曲線内部の画素の値を１（真）とし、閉曲線外側の画素の値をゼロ（偽）とする２値化画像を生成する（Ｓ２０２）。このようにして生成した２値化画像２１の例を図５に示す。２値化画像の画素数は、縮小画像１０と同じ画素数となる。図５においては、値が１となる除去領域２２に含まれる画素を灰色で表示し、値がゼロとなる非除去領域２３に含まれる画素を白で表示している。以降の図面についても同じように表示している。
【００２１】
［２−４．縮小画像修復処理の動作］
図６は、画像処理装置１による縮小画像修復処理の動作を示すフローチャートである。また、図７〜図１３は、縮小画像修復処理の動作を説明する図である。
制御部２は、２値化画像処理を経た除去領域２２に対して、縮小画像１０の画像修復処理を行う（図２のＳ１０３）。処理の対象となる図３の縮小画像１０に、２値化画像の除去領域２２を重ねて、除去領域２２の周辺を拡大表示した状態を図７に示す。
【００２２】
［２−４−１．一巡目の処理］
初めに制御部２は、除去領域２２の辺縁部（領域のへり、領域内外の境界線部）に中心を有する正方形の除去パッチ３０を決定する（Ｓ３０１）。図７に示すように、除去パッチ３０は、除去領域２２と非除去領域２３を跨ぐように配置する。除去パッチ３０は、例えば横１６個、縦１６個の画素を有している。それら２５６個の画素は以下の２領域に分類できる。すなわち、除去パッチ３０の除去領域３０ａに含まれる画素と、非除去領域３０ｂに含まれる画素である。そして、両者の境界３０ｃが除去領域２２の辺縁部に沿って存在する。
【００２３】
次に制御部２は、除去パッチ３０に対応する参照パッチ３１を選択する（Ｓ３０２）。参照パッチ３１は、非除去領域２３の画素のみからなる正方形の領域で、除去パッチ３０と同じ画素数を有している。この条件を満たす候補は、縮小画像１０内に多数存在するので、以下の手順で選択する。すなわち、除去パッチ３０の非除去領域３０ｂと、それと対応する参照パッチ３１の部分領域３１ｂの類似度を求める。そして、類似度が最も高くなる参照パッチ３１を候補の中から選択する。ここで類似度は、例えば次のような方法で計算する。すなわち、除去パッチ３０の非除去領域３０ｂに含まれる画素と、対応する参照パッチ３１の部分領域３１ｂに含まれる画素について、各画素値の差分の二乗和を求める。この二乗和が小さいほど、類似度が高いと判定すればよい。
【００２４】
以上の結果として、除去パッチ３０と、それに対応する参照パッチ３１を一組選定できたので、制御部２は、その結果をパッチ履歴として記憶部４に記録する（Ｓ３０３）。例えば図８に示すような情報を、履歴番号１として記録すればよい。すなわち、除去パッチ３０の中心位置（Ｘｃ、Ｙｃ）と、参照パッチ３１の中心（Ｘｓ，Ｙｓ）と、除去パッチのサイズＰ（例えば１６画素）を記録する。
【００２５】
次に、制御部２は、除去パッチ３０の非除去領域３０ｂに含まれる各画素について、除去領域３０ａからの距離Ｄを計算する（Ｓ３０４）。１６×１６個の全ての画素について、距離Ｄを計算した結果を図９に示す。図９においては、除去領域３０ａに含まれる画素は距離Ｄ＝０（ゼロ）と表記し、濃い灰色で表示している。一方、非除去領域３０ｂに含まれる画素については、除去領域３０ａからの最短距離を市街地距離（マンハッタン距離、都市ブロック距離）として求め、距離Ｄの数値として表記している。
【００２６】
なお、最短距離の計算方法は市街地距離に限ることなく、通常の距離（ユークリッド距離）などを用いても良い。市街地距離を用いる場合は、整数演算だけでよいので、処理速度を早くできる。
また、最短距離を求める際には、除去パッチ３０に含まれる画素（１６×１６個）だけを使って計算すればよい。縮小画像１０、あるいは２値化画像２１に含まれる全画素（６４０×４８０個）について距離を計算する必要はなく、処理速度を早くできる。
【００２７】
次に、制御部２は、参照パッチ３１の各画素の画素値を利用して、除去パッチ３０の修復処理を以下の手順で実施する（Ｓ３０５）。
第１の処理として、除去パッチ３０の除去領域３０ａの画素の画素値を、参照パッチ３１の対応する部分領域３１ａの画素の画素値で置き換える。図９において濃い灰色で表示している部分が、この処理の対象となる画素である。
【００２８】
第２の処理として、除去パッチ３０の非除去領域３０ｂの画素のうち、距離Ｄが所定の閾値Ｄｗ（例えばＤｗ＝４画素）未満となる（Ｄ＜Ｄｗとなる）画素の画素値については、参照パッチ３１の対応する部分領域３１ｂの画素の画素値を使って、後述のブレンド処理を行う。図９において薄い灰色で表示している領域３０ｄが、この処理の対象となる画素である。
【００２９】
第３の処理として、除去パッチ３０の非除去領域３０ｂの画素のうち、距離Ｄが閾値Ｄｗ以上となる（Ｄ≧Ｄｗとなる）画素については、現在の画素値を保存する。すなわち、図９において白色で表示している領域３０ｅの画素については、何も処理を加えない。
次に、ブレンド処理について説明する。除去パッチ３０の画素の画素値をＰｃ、これに対応する参照パッチ３１の画素の画素値をＰｓとして、以下の数式１に従って第２の処理を実行する。この画素の距離がＤであるとして、
【００３０】
【数１】
2014212511.tif 000003
すなわち、除去パッチ３０の非除去領域３０ｂに含まれる画素の距離Ｄに基づいて、その画素の画素値Ｐｃと、対応する参照パッチ３１の画素の画素値Ｐｓの混合比率を、Ｄ／Ｄｗ対（Ｄｗ−Ｄ）／Ｄｗと決定する。そして、決定した混合比率に基づいて、ＰｃとＰｓを混合した結果を、改めて画素値Ｐｃに代入するのである。数式１を見るとわかるように、距離ＤがＤ＝０の場合には、Ｐｃ＝Ｐｓとなり、第１の処理を表現している。また、Ｄ＝Ｄｗの場合には、Ｐｃ＝Ｐｃとなって画素値に変化がなく、第３の処理を表現している。よって、距離ＤがＤ＝０〜Ｄｗまで変化する間に、ＰｃとＰｓの混合比率が、距離Ｄに応じて変化する。これによって、第１の処理と第３の処理の間を、画素値がＰｃ〜Ｐｓへと遷移するブレンド（混合）画像が得られる。
【００３１】
以上のようにして、除去パッチ３０の修復処理を行った結果を図１０に示す。上述の第１の処理の結果、除去パッチ３０の除去領域３０ａは、参照パッチ３１の対応する部分領域３１ａに置き換わる。これによって、除去領域２２の一部分の修復処理が行われる。さらに上述の第２の処理を行っているので、境界３０ｃに相当する部分が不自然に目立つことがない。すなわち、上述の第３の処理に対応して変化のない領域３０ｅが存在していても、除去領域３０ａと変化のない領域３０ｅとの緩衝領域となる領域３０ｄが存在するので、境界３０ｃが不自然に目立つことがなく、自然な処理結果が得られる。
【００３２】
なお、距離Ｄの閾値Ｄｗについては、除去パッチ３０の大きさＳの半分以下、すなわち、Ｄｗ≦Ｓ／２を満たす数値を用いればよい。Ｄｗの値を大きくするほど、より境界が目立ちにくくなるが、計算時間が長くなると共に、画像がぼけやすい傾向がある。
次に制御部２は、除去領域２２を更新する（Ｓ３０６）。すなわち、図４のステップＳ２０２において生成した２値化画像２１を更新する。除去領域２２の除去パッチ３０に相当する領域の画素については、画素値をゼロに変更して非除去領域２３に改める。この処理は、後述のステップＳ３０７を正常に実施するために必要である。また、二巡目以降の距離Ｄの計算（Ｓ３０４）を正しく行うためにも必要な処理である。
【００３３】
次に制御部２は、除去領域２２が残存しているかどうかを判定する（Ｓ３０７）。この判定は２値化画像２１の全ての画素を探索して、値が１となる画素を探せばよい。１個でも値が１となる画素があれば、除去領域２２は残っているので、ステップＳ３０１に戻って二巡目の処理を行う。
［２−４−２．二巡目の処理］
制御部２は、一巡目と同様にして、図６のフローチャートに示すステップＳ３０１からＳ３０６までの処理を行う。すなわち、除去領域２２の辺縁部に中心を有する正方形の除去パッチ３２を図１１に示すように決定する（Ｓ３０１）。除去パッチ３２は、除去領域３２ａに含まれる画素と、非除去領域３２ｂに含まれる画素から構成する。そして、両者の境界３２ｃと３２ｆが除去領域２２の辺縁部に沿って存在する。ここで境界３２ｆは、一巡目の処理の結果として、新たに生じた境界である。すなわち、除去パッチ３０の除去領域３０ａを、参照パッチ３１の対応する部分領域３１ａに置き換えた結果、新たに生成された境界である。
【００３４】
次に、制御部２は、除去パッチ３２に対応する参照パッチ３３を選択する（Ｓ３０２）。参照パッチ３３は、上述のように、除去パッチ３２の非除去領域３２ｂと、対応する参照パッチ３３の部分領域３３ｂの類似度から選択する。
次に、制御部２は、除去パッチ３２と、それに対応する参照パッチ３３の選択結果を、パッチ履歴の履歴番号２として記録する（Ｓ３０３）。
【００３５】
次に、制御部２は、除去パッチ３２の非除去領域３２ｂに含まれる各画素について、除去領域３２ａからの距離Ｄを計算する（Ｓ３０４）。１６×１６個の全ての画素について、距離Ｄを計算した結果を図１２に示す。一巡目のステップＳ３０６において、除去領域２２を更新しているので、一巡目に新たに生成した境界３２ｆにも対応した距離Ｄが計算できる。
【００３６】
次に、制御部２は、参照パッチ３３の各画素の画素値を利用して、除去パッチ３２の修復処理を以下の手順で実施する（Ｓ３０５）。
第１の処理として、除去パッチ３２の除去領域３２ａの画素の画素値を、参照パッチ３３の対応する部分領域３３ａの画素の画素値で置き換える。
第２の処理として、除去パッチ３２の非除去領域３２ｂの画素のうち、距離Ｄが所定の閾値Ｄｗ未満となる（Ｄ＜Ｄｗとなる）画素（図１２の領域３２ｄの画素）については、上記の数式１に示した計算式に従ってブレンド処理を行う。すなわち、除去パッチ３２の非除去領域３２ｂに含まれる画素の距離Ｄに基づいて、この画素の画素値Ｐｃと、対応する参照パッチ３１の部分領域３３ｂの画素の画素値Ｐｓの混合比率を、Ｄ／Ｄｗ対（Ｄｗ−Ｄ）／Ｄｗと決定する。そして、決定した混合比率に基づいて、ＰｃとＰｓを混合した結果を、改めて画素値Ｐｃに代入する。
【００３７】
第３の処理として、除去パッチ３２の非除去領域３２ｂの画素のうち、距離Ｄが閾値Ｄｗ以上となる画素については、現在の画素値を保存する。すなわち、図１２の領域３２ｅの画素については、何も処理を加えない。
以上のようにして、除去パッチ３２の修復処理を行った結果を図１３に示す。上述の第１の処理の結果、除去パッチ３２の除去領域３２ａは、参照パッチ３３の対応する部分領域３３ａに置き換わる。これによって、除去領域２２の一部分の修復処理が行われる。さらに上述の第２の処理を行っているので、境界３２ｃと３２ｆに相当する部分が不自然に目立つことがない。すなわち、上述の第３の処理に対応して変化のない領域３２ｅが存在していても、除去領域３２ａと変化のない領域３２ｅとの緩衝領域となる領域３２ｄが存在するので、境界３２ｃおよび３２ｆが不自然に目立つことがなく、自然な処理結果が得られる。
【００３８】
図１１に示す境界３２ｃは、図２のステップＳ１０２の領域指定処理の段階で既に存在していた境界である。これに対して境界３２ｆは、一巡目の処理において新たに生成された境界である。しかしながら、本実施の形態の画像処理方法においては、ステップＳ３０５において除去領域２２を常に更新しているので、新たに生成された境界３２ｆも目立つことがなく、自然な処理結果が得られるのである。
【００３９】
次に制御部２は、除去領域２２を更新する（Ｓ３０６）。２値化画像２１において、除去領域２２の除去パッチ３２に相当する領域の画素については、画素値をゼロに変更して非除去領域２３に改める。
次に制御部２は、除去領域２２が残存しているかどうかを判定する（Ｓ３０７）。そして、除去領域２２がなくなるまでステップＳ３０１からＳ３０６を繰り返して実行する。その結果、例えばＮ回ステップＳ３０１からＳ３０６を繰り返す。そして、図１４に示すように、縮小画像１０から第１被写体１１を除去した自然な修復処理結果が得られる。
【００４０】
以上のように本実施の形態の画像処理方法では、除去パッチ内において、非除去領域２３の各画素について、除去領域２２からの距離Ｄを計算する（Ｓ３０４）。そして、除去パッチ内の除去領域２２の画素の画素値を、参照パッチの対応する画素の画素値で置き換える（Ｓ３０５）と共に、除去パッチ内の非除去領域２３の画素のうち、距離Ｄが所定の閾値Ｄｗ未満となる（Ｄ＜Ｄｗとなる）画素については、上記の数式１に示した計算式に従って混合するブレンド処理を行っている（Ｓ３０５）。この結果、除去パッチ内の除去領域２２と非除去領域２３の境界が不自然に目立つことがなく、自然な処理結果が得られる。
【００４１】
また、除去パッチ内の除去領域２２の画素の画素値を、参照パッチの対応する画素の画素値で置き換えるたびに、除去領域２２を更新している（Ｓ３０６）。この結果、画素値の置き換えによって、新たに生成した境界（除去領域２２と非除去領域２３の境界）についても、不自然に目立つことがなく、自然な処理結果が得られる。
［２−５．元画像修復処理の動作］
縮小画像１０の画像修復処理（図２のＳ１０３）を行った後、画像処理装置１の制御部２は元画像の修復処理（Ｓ１０４）を行う。図１５は、元画像に対する修復処理の動作を示すフローチャートである。
【００４２】
初めに制御部２は、縮小画像１０に対応した２値化画像２１を、Ｋ倍に拡大して、元画像と同じ画素数の２値化画像を生成する（Ｓ４０１）。ここで拡大倍率Ｋは、図２のステップＳ１０１における縮小倍率１／Ｋの逆数である。例えば、縦横６４０×４８０画素の２値化画像から、縦横７倍に拡大した画像を生成すれば、４４８０×３３６０画素の２値化画像が得られる。なお、拡大処理の対象となる２値化画像２１は、図４のステップＳ２０２において生成した２値化画像である。すなわち図５に示すように、除去領域２２を含んだ状態の２値化画像２１である。ステップＳ４０１の目的は、除去領域２２の位置と大きさを、Ｋ倍に拡大することにある。
【００４３】
次に制御部２は、縮小画像修復処理（図２のＳ１０３）において記録した全てのパッチ履歴に対して、ループＡの処理を行う（Ｓ４０２）。ループＡの処理は、縮小画像修復処理（同Ｓ１０３）における繰り返し数Ｎ（図６のステップＳ３０１からＳ３０６までの繰り返し数Ｎ）と同じ回数実行する。各回におけるパッチ履歴は、縮小画像修復処理（同Ｓ１０３）において記録した順番どおりに再生する。そして、図６のステップＳ３０３において記録したパッチ履歴を利用して、図１５のステップＳ４０３、Ｓ４０４、Ｓ４０５、Ｓ４０６の処理を実行する。
【００４４】
まず、制御部２は、除去パッチと参照パッチの位置および大きさを、元画像に合わせて計算する（Ｓ４０３）。元画像と縮小画像１０の倍率Ｋを用いて以下のように計算する。すなわち、除去パッチ３０の中心位置は（Ｋ×Ｘｃ、Ｋ×Ｙｃ）、参照パッチ３１の中心位置は（Ｋ×Ｘｓ，Ｋ×Ｙｓ）、除去パッチのサイズはＫ×Ｐ（例えば７×１６＝１１２画素）とする。
【００４５】
次に、制御部２は、除去パッチの非除去領域に含まれる各画素について、除去領域からの距離Ｄを計算する（Ｓ４０４）。例えば、１１２×１１２個の画素からなる除去パッチについて、ステップＳ４０１において計算した除去領域からの最短距離Ｄを、市街地距離として計算する。
次に、制御部２は、参照パッチの各画素の画素値を利用して、除去パッチの修復処理を以下の手順で実施する（Ｓ４０５）。
【００４６】
第１の処理として、除去パッチの除去領域の画素の画素値を、参照パッチの対応する画素の画素値で置き換える。
第２の処理として、除去パッチの非除去領域の画素のうち、距離Ｄが所定の閾値Ｄｗ（例えばＤｗ＝４画素）をＭ倍した値未満となる（Ｄ＜Ｍ×Ｄｗとなる）画素の画素値については、参照パッチの対応する画素の画素値を使って、数式１と同じようなブレンド処理を行う。
【００４７】
第３の処理として、除去パッチの非除去領域の画素のうち、距離ＤがＭ×Ｄｗ以上となる（Ｄ≧Ｍ×Ｄｗとなる）画素については、現在の画素値を保存する。すなわち、図９において白色で表示している領域３０ｅの画素については、何も処理を加えない。
次に、ステップＳ４０５におけるブレンド処理について説明する。除去パッチの画素の画素値をＰｃ、これに対応する参照パッチの画素の画素値をＰｓとして、以下の数式２に従って第２の処理を実行する。この画素の距離がＤであるとして、
【００４８】
【数２】
2014212511.tif 000004
すなわち、除去パッチの非除去領域に含まれる画素の距離Ｄに基づいて、その画素の画素値Ｐｃと、対応する参照パッチの画素の画素値Ｐｓの混合比率を、Ｄ／（Ｍ×Ｄｗ）対（Ｍ×Ｄｗ−Ｄ）／Ｍ×Ｄｗと決定する。そして、決定した混合比率に基づいて、ＰｃとＰｓを混合した結果を、改めて画素値Ｐｃに代入するのである。
【００４９】
ここで、閾値の倍率Ｍについては、元画像と縮小画像１０の倍率Ｋを用いてＭ＝Ｋ（例えばＭ＝７）としてもよい。あるいは、Ｋより小さい数値（例えばＭ＝４）としてもよい。この場合には、処理速度を早くできる。
次に制御部２は、除去領域を更新する（Ｓ４０６）。ステップＳ４０１において計算した除去領域の除去パッチに相当する領域の画素については、画素値をゼロに変更して非除去領域に改める。
【００５０】
以上のようにして、ステップＳ４０３、Ｓ４０４、Ｓ４０５、Ｓ４０６の処理を、縮小画像修復処理（Ｓ１０３）において記録した全てのパッチ履歴に対して実施する（Ｓ４０２）ことにより、元画像の画像修復処理が完了する。
以上のように本実施の形態の画像処理方法では、縮小画像修復処理（図２のＳ１０３）において記録した全てのパッチ履歴に対して実施する（Ｓ４０２）だけで、元画像の画像修復処理が完了する。従って、除去パッチに対応する参照パッチを改めて選択する必要がない。すなわち、図６のステップＳ３０２に相当する処理が不要となるので、処理速度を早くできる。
【００５１】
なお、ステップ３０２においては、除去パッチと参照パッチの類似度を計算する。この類似度の計算量は、画素数に比例する。また、候補となる参照パッチの数も画素数に比例する。よって、参照パッチを選択するのに必要な計算量は、画素数の二乗に比例する。仮に、ステップＳ３０２に相当する処理を元画像に対して実施したと仮定する。縮小画像１０のＫ倍（例えば７倍）の元画像では、画素数はＫの二乗倍（４９倍）に増える。よって、Ｋ倍に拡大した除去パッチから、対応した参照パッチを選択するためには、Ｋの４乗倍（２４０１倍）の計算量が必要となる。
【００５２】
また、本実施の形態の画像処理方法では、除去パッチ内の非除去領域の各画素について、除去領域からの距離Ｄを計算する（Ｓ４０４）。そして、除去パッチ内の除去領域の画素の画素値を、参照パッチの対応する画素の画素値で置き換える（Ｓ４０５）と共に、除去パッチ内の非除去領域の画素のうち、距離ＤがＭ×Ｄｗ未満となる（Ｄ＜Ｍ×Ｄｗとなる）画素については、数式２に示した計算式に従って混合するブレンド処理を行っている（Ｓ４０５）。この結果、元画像においても、除去パッチ内の除去領域と非除去領域の境界が不自然に目立つことがなく、自然な処理結果が得られる。
【００５３】
［３．変形例］
上記実施の形態において説明した図６のステップＳ３０４とステップＳ３０５の処理、あるいは図１５のステップＳ４０４とステップＳ４０５の処理は、以下のような処理方法に置き換えることも可能である。以下、図２のステップＳ１０３の縮小画像修復処理を例に説明を続ける。図１６、図１７は、この変形例の動作を説明する図である。
【００５４】
上述の二巡目の処理の後、ステップＳ３０７の判定結果は除去領域２２が残っているので、ステップＳ３０１に戻って三巡目の処理を行う。制御部２は、一巡目、二巡目と同様にして、図６のフローチャートに示すステップＳ３０１からＳ３０６までの処理を行う。
初めに、制御部２は、除去領域２２の辺縁部に中心を有する正方形の除去パッチ３４を図１６に示すように決定する（Ｓ３０１）。除去パッチ３４は、除去領域３４ａに含まれる画素と、非除去領域３４ｂに含まれる画素から構成する。そして、両者の境界３４ｃと３４ｆが除去領域２２の辺縁部に沿って存在する。
【００５５】
次に、制御部２は、除去パッチ３４に対応する参照パッチ３５を選択する（Ｓ３０２）。そして、除去パッチ３４と、それに対応する参照パッチ３５の選択結果を、パッチ履歴の履歴番号３として記録する（Ｓ３０３）。
次に、制御部２は、除去パッチ３４の非除去領域３４ｂに含まれる各画素について、除去領域３４ａからの距離Ｄを計算する（Ｓ３０４）。この際、境界３４ｃと３４ｆの位置に着目して、距離Ｄを計算する領域を拡張する。
【００５６】
すなわち、除去領域２２と非除去領域２３の境界が、除去パッチの端部に近い場合には、除去パッチの周囲の画素についても、除去領域２２からの距離を計算する。ここで、境界が除去パッチの端部に近いかどうかは、境界に直交する方向に距離を測るものとする。
図１６の例では、境界３４ｆが除去パッチ３４の左端部３４ｇに近い。そこで、除去パッチ３４の左側の画素からなる拡張領域３４ｈを追加する。ここで拡張領域３４ｈの幅は、閾値Ｄｗに対してＤｗ−１画素（例えば３画素）とする。拡張領域３４ｈを加えた横１９個、縦１６個の画素について、距離Ｄを計算した結果を図１７に示す。除去パッチ３４に含まれる画素のうち、左端画素３４iの距離ＤがＤ＝１となっており、Ｄｗ−１より小さいことがわかる。しかし、拡張領域３４ｈの左端の画素はＤ＝４となっており閾値Ｄｗに一致している。
【００５７】
次に、制御部２は、参照パッチ３５の各画素の画素値を利用して、除去パッチ３４の修復処理を以下の手順で実施する（Ｓ３０５）。
第１の処理として、除去パッチ３４の除去領域３４ａの画素の画素値を、参照パッチ３５の対応する部分領域３５ａの画素の画素値で置き換える。
第２の処理として、除去パッチ３４の非除去領域３４ｂの画素のうち、距離Ｄが所定の閾値Ｄｗ未満となる（Ｄ＜Ｄｗとなる）画素（図１２の領域３４ｄの画素）については、上記の数式１に示した計算式に従ってブレンド処理を行う。
【００５８】
さらに、拡張領域３４ｈの画素についても、距離Ｄが所定の閾値Ｄｗ未満となる（Ｄ＜Ｄｗとなる）画素については、数式１に示した計算式に従ってブレンド処理を行う。この際、除去パッチ３４の周囲（左側）に設けた拡張領域３４ｈに対応して、参照パッチ３５の周囲（左側）に拡張領域３５ｈを設ける。
すなわち、拡張領域３４ｈに含まれる画素についても、この画素の画素値Ｐｃと、拡張領域３５ｈの対応する画素の画素値Ｐｓの混合比率を、距離Ｄに基づいて、Ｄ／Ｄｗ対（Ｄｗ−Ｄ）／Ｄｗと決定する。そして、決定した混合比率に基づいて、ＰｃとＰｓを混合した結果を、改めて画素値Ｐｃに代入するのである。
【００５９】
第３の処理として、除去パッチ３４の非除去領域３４ｂの画素のうち、距離Ｄが閾値Ｄｗ以上となる画素については、現在の画素値を保存する。すなわち、図１７の領域３４ｅの画素については、何も処理を加えない。
拡張領域３４ｈについても同様に、距離Ｄが閾値Ｄｗ以上となる画素については、現在の画素値を保存する。
【００６０】
以上のようにして、制御部２は、除去パッチ３４の修復処理を行う。上述の第１の処理の結果、除去パッチ３４の除去領域３４ａは、参照パッチ３５の対応する部分領域３５ａに置き換わる。これによって、除去領域２２の一部分の修復処理が行われる。さらに上述の第２の処理を行っているので、境界３４ｃと３４ｆに相当する部分が不自然に目立つことがなく、自然な処理結果が得られる。
【００６１】
［４．まとめ］
以上のように本実施の形態の画像処理装置１によれば、制御部２は、除去領域の画素と非除去領域の画素を含む除去パッチを決定（図６のＳ３０１）し、非除去領域の画素を含み除去パッチに対応する参照パッチを選択（同Ｓ３０２）し、除去パッチの非除去領域に含まれる画素について除去領域からの距離を求め（同Ｓ３０４）、除去パッチの除去領域の画素の画素値を参照パッチの対応する画素の画素値で置き換える（同Ｓ３０５）。さらに制御部２は、除去パッチの非除去領域の画素の画素値と参照パッチの対応する画素の画素値を距離に基づいて混合した結果を除去パッチにおける除去領域と非除去領域の境界近辺の画素値とする（同Ｓ３０５）。これによって、不要物体を除去する画像修復処理において、除去領域と非除去領域の境界が目立つことがなく、自然な処理結果を得られる。
【００６２】
さらに、本実施の形態の変形例の画像処理装置１によれば、制御部２は、除去パッチの非除去領域に含まれる除去パッチの端部周囲の画素について除去領域からの距離を求め（図６のＳ３０４）、除去パッチの端部周囲の画素の画素値と参照パッチの端部周囲の対応する画素の画素値を距離に基づいて混合した結果を除去パッチの端部周囲の画素の画素値とする（同Ｓ３０５）。これによって、不要物体を除去する画像修復処理において、除去領域と非除去領域の境界が目立つことがなく、自然な処理結果を得られる。
【００６３】
（その他実施の形態）
上記実施の形態の各処理の一部または全部は、コンピュータプログラムにより実現されるものであってもよい。そして、画像処理装置１により実行される処理の一部または全部は、コンピュータにおいて、例えば、中央演算装置（ＣＰＵ）などのプロセッサにより行われる。また、それぞれの処理を行うためのプログラムは、ハードディスク、ＲＯＭなどの記憶装置に格納されており、ＲＯＭにおいて、あるいはＲＡＭに読み出されて実行される。
【００６４】
また、画像処理装置１により実行される各処理はハードウェアにより実現してもよいし、ソフトウェア（ＯＳ（オペレーティングシステム）、ミドルウェア、あるいは、所定のライブラリとともに実現される場合を含む。）により実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。
上記実施の形態による画像処理装置１は、画像処理方法または画像処理をコンピュータに実行させるコンピュータプログラムとしても実現し得る。また、そのプログラムを記録したコンピュータ読み取り可能な記録媒体は本発明の範囲に含まれる。ここで、コンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ）、半導体メモリを挙げることができる。
【００６５】
上記コンピュータプログラムは、上記記録媒体に記録されたものに限られず、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
また、上記実施形態における画像処理の実行順序は、必ずしも、上記実施の形態の記載に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えることができるものである。
【００６６】
以上のように、本開示における技術の例示として、実施の形態を説明した。そのために、添付図面および詳細な説明を提供した。
したがって、添付図面および詳細な説明に記載された構成要素の中には、課題解決のために必須な構成要素だけでなく、上記技術を例示するために、課題解決のためには必須でない構成要素も含まれ得る。そのため、それらの必須ではない構成要素が添付図面や詳細な説明に記載されていることをもって、直ちに、それらの必須ではない構成要素が必須であるとの認定をするべきではない。
【００６７】
また、上述の実施の形態は、本開示における技術を例示するためのものであるから、特許請求の範囲またはその均等の範囲において種々の変更、置き換え、付加、省略などを行うことができる。
【産業上の利用可能性】
【００６８】
本開示は、デジタルスチルカメラ、デジタルビデオカメラ、パーソナルコンピュータ、携帯電話機、情報端末などの電子機器に適用可能である。
【符号の説明】
【００６９】
１  画像処理装置
２  制御部
３  画像入力部
４  記憶部
５  表示部
６  操作入力部
１０  縮小画像
１１  第１被写体
１２  第２被写体
１３  第３被写体
２１  ２値化画像
２２  除去領域
２３  非除去領域
３０、３２、３４  除去パッチ
３０ａ、３２ａ、３４ａ  除去パッチの除去領域
３０ｂ、３２ｂ、３４ｂ  除去パッチの非除去領域
３０ｃ、３２ｃ、３４ｃ  除去パッチの境界
３２ｆ、３４ｆ  除去パッチ内の境界
３４ｈ  除去パッチ周囲の拡張領域
３１、３３、３５  参照パッチ
３１ａ、３３ａ、３５ａ  非除去パッチの部分領域
３１ｂ、３３ｂ、３５ｂ  非除去パッチの部分領域
３５ｈ  参照パッチ周囲の拡張領域
【図１】
2014212511.tif 000005
【図２】
2014212511.tif 000006
【図３】
2014212511.tif 000007
【図４】
2014212511.tif 000008
【図５】
2014212511.tif 000009
【図６】
2014212511.tif 000010
【図７】
2014212511.tif 000011
【図８】
2014212511.tif 000012
【図９】
2014212511.tif 000013
【図１０】
2014212511.tif 000014
【図１１】
2014212511.tif 000015
【図１２】
2014212511.tif 000016
【図１３】
2014212511.tif 000017
【図１４】
2014212511.tif 000018
【図１５】
2014212511.tif 000019
【図１６】
2014212511.tif 000020
【図１７】
2014212511.tif 000021