(57)【特許請求の範囲】
【請求項１】
１つの画像に対して複数の合成画像を合成する画像処理装置であって、
前記画像に合成するための複数の合成画像に係る画像データを記憶する記憶手段であって、合成画像に係る画像データとともに前記合成画像の一部の領域であって他の合成画像との重なりを禁止する禁止領域の情報を記憶する記憶手段と、
前記記憶手段に記憶されている合成画像の禁止領域の情報に基づいて、前記画像に合成される合成画像の禁止領域に他の合成画像が重なっているか否かを判断する判断手段と、
前記判断手段によって重なっていると判断された場合には、警告を行う、または前記他の合成画像を前記禁止領域に重ならない位置に移動させるよう制御する制御手段とを有することを特徴とする画像処理装置。
【請求項２】
前記記憶手段は、前記合成画像に係る画像データ、前記禁止領域の情報とともに、前記合成画像の周辺において禁止する色に関する色情報を記憶し、
前記画像に第１の合成画像と第２の合成画像との一部が重なって合成される場合、前記第１の合成画像の色情報に基づいて、第２の合成画像の色が、前記第１の合成画像で禁止されている色であるかを判定する判定手段を有し、
前記制御手段は、前記判定手段により、第２の合成画像の色が、前記第１の合成画像で禁止されている色であると判定された場合は、警告を行う、または、前記第１の合成画像と前記第２の合成画像とが重ならない位置に移動させるよう制御することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記禁止領域は、特定の色の領域であることを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記禁止領域は、合成画像の中の色がなく透明となる領域であることを特徴とする請求項１ないし３のいずれか１項に記載の画像処理装置。
【請求項５】
前記禁止領域は、周りが色データで囲まれた透明な領域であることを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記禁止領域の情報は、前記合成画像に係る画像データに埋め込まれていることを特徴とする請求項１ないし５のいずれか１項に記載の画像処理装置。
【請求項７】
前記画像データの中の特定の色の情報を、前記禁止領域の情報として利用することを特徴とする請求項６に記載の画像処理装置。
【請求項８】
１つの画像に対して複数の合成画像を合成する画像処理方法であって、
前記画像に合成するための複数の合成画像に係る画像データを記憶する記憶手段であって、合成画像に係る画像データとともに前記合成画像の一部の領域であって他の合成画像との重なりを禁止する禁止領域の情報を記憶する記憶手段から、前記合成画像に係る画像データおよび禁止領域の情報を読み出す読み出し工程と、
前記読み出し工程で読み出した合成画像の禁止領域の情報に基づいて、前記画像に合成される合成画像の禁止領域に他の合成画像が重なっているか否かを判断する判断工程と、
前記判断工程で重なっていると判断された場合には、警告を行う、または前記他の合成画像を前記禁止領域に重ならない位置に移動させるよう制御する制御工程とを有することを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置、及び画像処理方法に関し、特に、写真等にスタンプ画像を合成するために用いて好適な技術に関する。
【背景技術】
【０００２】
近年、ユーザが撮影した写真にスタンプ画像、吹き出し、文字列などの複数の画像を合成して印刷することが行われている。しかし、従来の方法では合成する画像同士の重なりを管理していなかった。
【０００３】
そこで、撮影した写真に合成する複数の画像の位置情報を記憶し、合成する際に、位置情報に基づいて、それぞれの合成する画像が重ならないように配置させる方法が開示されている（例えば、特許文献１参照）。また、別の例として、撮影した写真のデータにマスクデータを付加し、合成した画像の位置情報を記録しておく方法が開示されている（例えば、特許文献２参照）。この方法によれば、新たに合成処理を行う場合は、マスクデータを参照することにより、以前に合成した画像の位置がわかるので、互いに重ならないようすることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４０７６３１１号公報
【特許文献２】特開２００６−２６２２３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、前記特許文献１及び特許文献２に記載の方法では、ユーザが意図してスタンプ画像同士を重ねた場合でも、重ならないようにスタンプ画像が移動されてしまうという問題がある。例えば、図３（ａ）に示すスタンプ画像と図３（ｂ）に示すスタンプ画像とを合成する場合に、図４（ａ）に示すようなレイアウトにすることが一般的である。一方、図４（ｂ）に示すようなレイアウトについては、図３（ａ）に示すスタンプ画像の顔が隠れてしまうので、ユーザが意図して配置することは少ない。
【０００６】
また、近年、金色や銀色の印刷を行うことが可能な特色印刷が盛んに行われている。このような印刷では、スタンプ画像の一部、または全てが特色と呼ばれる金色や銀色の単一色になり、すでに合成されたスタンプ画像にも特色が含まれていると、個々のスタンプ画像との区別が付かなくなってしまう。例えば、図３（ａ）に示すスタンプ画像が全て単一色であった場合に、２つを重ねて配置すると、図４（ｃ）に示すように個々のスタンプ画像の区別が付かなくなる。
【０００７】
このように、前記特許文献１及び特許文献２に記載の方法においては、位置情報やマスク画像のみを用いて重なりを判断しているので、スタンプ画像に特色部分が存在しているか否かに関係なくスタンプを移動してしまう。そのため、ユーザが意図したレイアウトに設定することができない。
【０００８】
また、スタンプ画像の一部が透過データとして扱われている場合、このスタンプ画像を合成する箇所の背景色によってはユーザにとって好ましくない場合がある。例えば、図３（ａ）に示すスタンプ画像を合成する際に、合成する背景色が図４（ｄ）に示すようなスタンプ画像と似たような色であった場合、図４（ｅ）に示すように、合成後にスタンプ画像が背景色に溶け込んでしまう。しかしながら、前記特許文献１及び特許文献２に記載の方法においては、位置情報やマスク画像のみを用いて重なりを比較する。そのため、スタンプ画像を合成する箇所の背景色がスタンプ画像の色と同系色でなくても、移動がなされてしまい、ユーザが意図したレイアウトにできない。
【０００９】
本発明は前述の問題点に鑑み、ユーザの意図しない位置にスタンプ画像が合成されることを防止できるようにすることを目的としている。
【課題を解決するための手段】
【００１０】
本発明の画像処理装置は、１つの画像に対して合成画像を合成する画像処理装置であって、前記１つの画像に合成するための複数の合成画像に係る画像データを、他の合成画像との重なりを禁止する禁止領域の情報とともに記憶する記憶手段と、前記記憶手段に記憶されている合成画像に係る画像データの禁止領域の情報を前記１つの画像に反映させる反映手段と、前記反映手段によって反映された禁止領域の情報に基づいて、前記１つの画像に合成される合成画像の禁止領域に他の合成画像が重なっているか否かを判断する判断手段と、前記判断手段によって重なっていると判断された場合には、警告を行う、または前記他の合成画像を前記禁止領域に重ならない位置に移動させるよう制御する制御手段とを有することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、ユーザの意図しない位置にスタンプ画像が合成されることを防止し、スタンプ画像を適切な位置に合成させることができる。
【図面の簡単な説明】
【００１２】
【図１】実施形態に係るプリンタの内部構成例を示すブロック図である。
【図２】印刷処理を行うまでの手順の一例を示すフローチャートである。
【図３】スタンプ画像に係るデータの一例を示す図である。
【図４】スタンプ画像の重なりの一例を示す図である。
【図５】写真及び重なり禁止データの一例を示す図である。
【図６】写真にスタンプ画像を合成する手順の一例を示すフローチャートである。
【図７】重なり禁止領域を反映させる手順の一例を示すフローチャートである。
【図８】計算に用いるパラメータを説明する図である。
【図９】重なり判断の詳細な手順の一例を示すフローチャートである。
【図１０】特色を用いたスタンプ画像に係るデータの一例を示す図である。
【図１１】スタンプ画像及び背景に係るデータの一例を示す図である。
【図１２】重なり判断の詳細な手順の一例を示すフローチャートである。
【図１３】ＹＵＶと閾値との関係を示す図である。
【図１４】重なり禁止領域を反映させる手順の一例を示すフローチャートである。
【図１５】重なり禁止データの他の一例を示す図である。
【発明を実施するための形態】
【００１３】
（第１の実施形態）
以下、本発明を実施するための第１の実施形態について詳細に説明する。なお、以下に説明する実施形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されるべきものであり、本発明は以下の実施形態に限定されるものではない。
【００１４】
図１は、本実施形態に係るプリンタ１００の内部構成例を示すブロック図である。
図１において、電源部１０１は、プリンタ１００全体に電源を供給するためのものである。カードリーダ１０２は、各種メモリーカードをセットするためのリーダであり、メモリーカードに記録された画像データ（写真データ）を読み出すことができる。通信部１０３は、デジタルカメラと接続を行うことによってデジタルカメラから送信される写真データを受信するためのインターフェースである。なお、本実施形態では、取り扱う写真データはＪＰＥＧ形式の画像データとする。
【００１５】
ＩＯ制御部１０４は、通信部１０３及びカードリーダ１０２のうち、どちらを有効にするかを判断し、同時に有効にならないように排他制御を行うためのものである。不揮発性メモリ（ＲＯＭ）１０５には、プリンタ１００を制御するためのプログラムや、プリンタ１００を操作するためのメニュー画面の画像データ、スタンプ画像や吹き出しなどのオブジェクトの合成画像データが複数記憶されている。
【００１６】
システム制御部１０６は、プリンタ１００全体を制御するための制御部であり、ＲＯＭ１０５に記憶されているプログラムに沿ってプリンタ１００全体を制御する。揮発性メモリ（ＲＡＭ）１０７は、ＩＯ制御部１０４を通して通信部１０３またはカードリーダ１０２から読み出した写真データを保持したり、システム制御や合成処理で用いられるデータの一時的な記憶領域として使用されたりする。
【００１７】
画像処理部１０８は、ＲＡＭ１０７やＲＯＭ１０５から読み出されたＪＰＥＧ形式の画像データに対して伸張処理やリサイズを行ったり、レイアウトを配置したりするためのものである。なお、本実施形態の伸張処理では、画像データをＪＰＥＧ形式からＹＵＶ形式へ変換するものとする。また、ＲＡＭ１０７におけるＶＲＡＭ領域１０９は、画像表示部１１０に画像として表示するための画像データを保持する領域である。画像処理部１０８によって、ＲＡＭ１０７やＲＯＭ１０５に保持された画像データの伸張処理やリサイズなどの画像処理が行われると、画像処理がなされた画像データをＶＲＡＭ領域１０９に保持する。これにより、画像表示部１１０に任意の画像を表示することが可能となる。
【００１８】
画像表示部１１０は、ＶＲＡＭ領域１０９に保持された画像データを読み出して印刷画像を表示したり、メニュー画面の画像を表示したりするためのものである。ＵＩ操作部１１１には、電源釦や印刷釦、画像表示部１１０に表示されたメニュー画面を操作するための各種操作釦などが備わっている。また、合成する画像の位置を決めるときなどにもＵＩ操作部１１１は使用される。画像補正部１１２は、ユーザにより決定された印刷条件によって画像処理部１０８において作成されたＹＵＶ形式の写真データにおける明るさ、コントラスト、色などの各種補正処理を行う。また、印刷画像生成部１１３は、画像補正部１１２によって補正されたＹＵＶ形式の写真データをＹＭＣ形式へ変換するためのものである。
【００１９】
本実施形態の印刷部１１４は、昇華型の熱転写記録方式を採用しており、インクシートと用紙とが一体になったインクカートリッジを用いている。インクシートは、用紙の印画領域を覆ってそのサイズとほぼ等しいサイズでイエロー（Ｙ）、マゼンタ（Ｍ）、シアン（Ｃ）の各インク層とオーバーコート（ＯＰ）層とが並べて設けられている。印刷部１１４において各層に対して熱転写が行われると、用紙が記録開始位置に戻され、用紙上に順次重ねて転写される。そのため、印刷画像生成部１１３では、ＹＵＶ形式からＹＭＣ形式への変換を行っている。また、印刷画像生成部１１３は、ＹＭＣ変換された画像（写真）へ、スタンプ画像や吹き出し、文字列などを合成する処理も行う。印刷部１１４は、印刷画像生成部１１３において生成されたＹ・Ｍ・Ｃ各色のデータを用いてＹ・Ｍ・Ｃの各インク層を用紙に順次熱転写し、用紙を記録開始位置に戻して全色の印刷を行う。また、特色印刷を行う時には、印刷画像生成部１１３は、インクシートがイエロー（Ｙ）、マゼンタ（Ｍ）、シアン（Ｃ）、特色（Ｓ）の４種類となり、４種類のデータを生成する。印刷部１１４においては、Ｙ・Ｍ・Ｃ・Ｓの各インク層を用紙に順次熱転写し、用紙を記録開始位置に戻して全色の印刷を行う。
【００２０】
また、補助記憶部１１５は、ハードディスクドライブやフラッシュメモリなどで構成される記憶装置であり、画像補正後のＹＵＶ形式の写真データやＪＰＥＧ形式のデータ、印刷条件の情報などが記憶される。
【００２１】
次に、図２を参照しながら、本実施形態に係るプリンタ１００の全体動作について説明する。図２は、本実施形態に係るプリンタ１００による印刷処理を行うまでの手順の一例を示すフローチャートである。なお、図２に示す各処理は、システム制御部１０６の制御により行われる。図２の処理はカードリーダ１０２に装着されたメモリーカードから画像データ（写真データ）を読み出し、その画像にスタンプ画像を追加して印刷する場合の、プリンタ１００の電源を投入した後の動作を示している。
【００２２】
まず、ステップＳ２０１において、電源部１０１においてプリンタ１００の電源が切られたか否かを判断する。この判断の結果、電源が切られていない場合は、ステップＳ２０２に進み、電源が切られている場合は、そのまま処理が終了する。次に、ステップＳ２０２において、印刷部１１４にインクカートリッジがセットされているか否かを検出する。この検出の結果、インクカートリッジがセットされていない場合はステップＳ２０１に戻り、インクカートリッジがセットされている場合は、ステップＳ２０３に進む。
【００２３】
次に、ステップＳ２０３において、インクカートリッジに記録紙が残っているか否かを検出する。この検出の結果、記録紙が残っている場合はステップＳ２０４に進み、記録紙が残っていない場合はステップＳ２０１に戻る。次に、ステップＳ２０４において、ＩＯ制御部１０４を介して、カードリーダ１０２にメモリーカードが挿入されているか否かを判断する。この判断の結果、メモリーカードが挿入されている場合はステップＳ２０５に進み、メモリーカードが挿入されていない場合はステップＳ２０１に戻る。
【００２４】
次に、ステップＳ２０５において、画像表示部１１０に表示されたＵＩ画面の指示に従って、スタンプ合成位置決定処理を行う。なお、このスタンプ合成位置決定処理の詳細については後述する。そして、ステップＳ２０６において、ユーザによりＵＩ操作部１１１にある印刷設定釦が押されたか否かを判断する。この判断の結果、ユーザにより印刷設定釦が押された場合はステップＳ２０７に進み、押されていない場合はステップＳ２０８に進む。
【００２５】
ステップＳ２０７においては、画像表示部１１０に表示された印刷条件メニューに従ってユーザによりＵＩ操作部１１１のメニュー操作釦が操作され、印刷画像の明るさやコントラスト、色変換などの各種補正処理やレイアウトの構成などの印刷条件を設定する。そして、ステップＳ２０８において、ユーザによりＵＩ操作部１１１の印刷釦が押されたか否かを判断する。この判断の結果、印刷釦が押された場合はステップＳ２０９へ進み、印刷釦が押されていない場合はステップＳ２０１に戻る。
【００２６】
次に、ステップＳ２０９において、カードリーダ１０２を介してメモリーカードから画像データをＲＡＭ１０７へ読み出す。そして、画像処理部１０８によりＲＯＭ１０５に記憶されている初期設定の印刷条件、またはステップＳ２０７において設定した印刷条件に基づいて、読み出した画像データ（写真データ）をＪＰＥＧ形式からＹＵＶ形式へ変換する。さらには、画像補正部１１２により明るさ、コントラスト、色などの各種画像補正処理を行う。
【００２７】
次に、ステップＳ２１０において、印刷画像生成部１１３により、補正処理がなされた写真データをＹＵＶ形式からＹＭＣ形式へ変換する。そして、ステップＳ２１１において、ＹＭＣ形式に変換した写真に対し、ステップＳ２０５で決定された合成位置にスタンプ画像を合成する。次に、ステップＳ２１２において、印刷部１１４によりステップＳ２１０及びＳ２１１により生成された印刷画像を印刷する。そして、ステップＳ２０１に戻る。
【００２８】
本実施形態では、（ａ）に示すように、写真に合成するための合成画像データは、スタンプ画像そのものの画像データ、付随情報としてマスクデータ、重なり禁止データの３つのデータから構成されている。画像データは、bitmap形式やＹＵＶ形式などのものであり画像データそのものが記述されている。マスクデータは、画像の透過について記述されている１ピクセルにつき1bitのデータを有し、この値が０である箇所は透明の透過する箇所を示している。図３のマスクデータでは、値が０であるか所は黒い部分で示している。重なり禁止データは、スタンプ画像の重なり禁止領域を記述している１ピクセルにつき1bitの情報をもつデータである。この値が１であった場合は、他のスタンプ画像との重なりを禁止する重なり禁止領域を示し、０であった場合は他のスタンプ画像との重なりを許可する重なり許可領域を示す。図３の重なり禁止領域データでは、値が０の部分を黒色、値が１の重なり禁止領域となる部分を白色で示している。前述したように、これらの合成画像データはＲＯＭ１０５に予め記憶されている。
【００２９】
次に、図６のフローチャートを参照しながら、スタンプ画像の重なり判別について説明する。図６は、写真にスタンプ画像を合成する場合の処理手順の一例を示すフローチャートであり、図２のステップＳ２０５で行われる処理を示している。また、図６に示す各処理は、システム制御部１０６の制御により行われる。このとき、画像表示部１１０には写真とスタンプ画像とが表示されており、ユーザがＵＩ操作部１１１を操作してスタンプ画像を移動させることによって、スタンプ画像の合成位置を決定する。ここで決定した合成位置の情報は、ＲＡＭ１０７に一時的に記憶され、図２のステップＳ２１１にて、ＲＡＭ１０７から合成位置の情報を読み出し、実際に合成処理を行う。
【００３０】
まず、ステップＳ６０１において、メモリーカードに記憶されている写真データから、画像表示部１１０に表示するための表示用写真データを作成し、ＲＡＭ１０７に記憶する。この表示用写真データは、スタンプ画像の合成位置を決めるために使用されるものである。次に、ステップＳ６０２において、写真データにおける重なり禁止データを作成し、ＲＡＭ１０７に記憶する。この重なり禁止データは、写真に合成するスタンプ画像の重なり禁止領域が、写真のどの位置に存在しているかを示すものであり、初期状態では、図５（ａ）に示すように、すべての領域が重なり許可領域になっている。
【００３１】
次に、ステップＳ６０３において、写真に合成するスタンプ画像の個数を表す変数Ｎを０に初期化し、ステップＳ６０４に進む。そして、ステップＳ６０４において、ユーザによってＵＩ操作部１１１が操作されることにより、印刷する写真に合成するスタンプ画像を選択する。本実施形態では、合成するスタンプ画像として図３（ａ）に示すスタンプ画像がユーザによって選択されたものとする。
【００３２】
次に、ステップＳ６０５において、ユーザによるＵＩ操作部１１１の操作によりスタンプ画像を合成する位置を仮決定し、仮合成位置情報として一時的にＲＡＭ１０７に保持する。そして、ステップＳ６０６において、合成する予定のスタンプ画像の個数Ｎが０であるか否かを判断する。この判断の結果、Ｎが０であった場合は、ステップＳ６０９に進み、Ｎが０でない場合は、ステップＳ６０７に進む。なお、ステップＳ６０７に進んだ場合の処理については後述する。
【００３３】
ステップＳ６０９においては、ＲＡＭ１０７から仮合成位置情報を読み出し、仮決定したスタンプ画像の合成位置を実際に合成する位置として決定し、その合成位置情報をＲＡＭ１０７に記憶する。図２のステップＳ２１１で合成処理を行う際には、ステップＳ６０９で決定した合成位置をそのまま採用することになる。また、ＲＡＭ１０７に記憶されている表示用写真データを読み出し、表示用写真にスタンプ画像を合成し、合成画像を画像表示部１１０に表示する。次に、ステップＳ６１０において、システム制御部１０６は反映手段として機能し、合成するスタンプ画像の重なり禁止領域を、ステップＳ６０２でＲＡＭ１０７に記憶した写真データの重なり禁止データに反映する。
【００３４】
図７は、本実施形態において、ステップＳ６１０におけるスタンプ画像の重なり禁止領域を反映させる処理手順の一例を示すフローチャートである。なお、図７に示す各処理は、システム制御部１０６の制御により行われる。
まず、ステップＳ７０１において、変数ｊを０に初期化し、ステップＳ７０２において、変数ｉを０に初期化する。ここで、変数ｉ及びｊはそれぞれ、スタンプ画像におけるピクセルの横方向、縦方向を示している。次にステップＳ７０３において、以下の数１に示す式（１）計算する。この計算は、重なり禁止領域となるピクセルでは１となり、そうでないピクセルでは０となる。そして、ステップＳ７０４において、変数ｉに１を加える。
【００３５】
【数１】
0005574763.tif 000002
【００３６】
ここで、Yoffset、及びXoffsetは、図８に示すように、印刷する画像とスタンプ画像との縦横それぞれのオフセットであり、ImgWidthとは、表示用写真の横幅である。また、Img＿Overlapは、ＲＡＭ１０７に記憶されている写真データの重なり禁止データの先頭アドレスを示し、Stamp＿Overlapは、ＲＯＭ１０５に記憶されているスタンプ画像の重なり禁止データの先頭アドレスを示している。さらに、「OR」は論理和を示している。ここで、Yoffset、及びXoffsetは、図６のステップＳ６０５で仮決定した合成位置である。
【００３７】
そして、ステップＳ７０５において、変数ｉがスタンプ画像の横幅StampWidth未満であるか否かを判断する。この判断の結果、スタンプ画像の横幅未満である場合は、ステップＳ７０３に戻り、変数ｉが横幅StampWidthに達した場合は、ステップＳ７０６において、変数ｊに１を加える。そして、ステップＳ７０７において、変数ｊがスタンプ画像の縦幅StampHeight未満であるか否かを判断する。この判断の結果、スタンプ画像の縦幅未満である場合は、ステップＳ７０２に戻り、変数ｊが縦幅StampHeightに達した場合は、処理を終了する。このように、変数ｉ、ｊがそれぞれスタンプ画像の横幅、縦幅になるまで１ずつ加算し、それぞれのピクセルにおいて、式（１）の計算を行う。
【００３８】
以上により、写真データの重なり禁止データにスタンプ画像の重なり禁止領域が反映される。図５（ｂ）は、図７の処理により反映された写真データの重なり禁止領域を示す図であり、図３（ａ）に示すスタンプ画像の重なり禁止領域が反映されている。
【００３９】
図６の説明に戻り、次のステップＳ６１１において、合成する予定のスタンプ画像の個数Ｎに１を加え、ステップＳ６１２に進む。そして、ステップＳ６１２において、ユーザに対してスタンプ画像をさらに追加するか否かを画像表示部１１０にガイダンス表示する。この結果、ユーザの操作によりＵＩ操作部１１１から追加すると選択された場合は、ステップＳ６０４に戻り、追加しないと選択された場合は処理を終了する。
【００４０】
次に、図３（ｂ）に示すスタンプ画像を追加する場合について説明する。スタンプ画像を追加する場合は、ステップＳ６１２からステップＳ６０４に戻り、ユーザにより図３（ｂ）に示すスタンプ画像が選択されるものとする。そして、ステップＳ６０５において、スタンプ画像の仮合成位置を決定してＲＡＭ１０７にその仮合成位置情報を保持する。ステップＳ６０６では、Ｎ≠０となるため、ステップＳ６０７に進むことになる。次に、ステップＳ６０７において、システム制御部１０６は判断手段として機能し、ＲＡＭ１０７に保持したスタンプ画像の仮合成位置情報を用いて重なり判断を行う。
【００４１】
図９は、本実施形態において、ステップＳ６０７における重なり判断の詳細な手順の一例を示すフローチャートである。なお、図９に示す各処理は、システム制御部１０６の制御により行われる。図９に示す処理では、追加するスタンプ画像の領域について、写真データの重なり禁止データと、追加するスタンプ画像のマスクデータとを以下の数２に示す式（２）を用いて比較する。そして、追加するスタンプ画像が写真データの重なり禁止領域に何ピクセル重なっているかを計算し、その量が閾値以上であるか否かを判断する。
【００４２】
【数２】
0005574763.tif 000003
【００４３】
ここで、Stamp＿Maskは、ＲＯＭ１０５に記憶されている図３（ｂ）に示すスタンプ画像のマスクデータの先頭アドレスであり、Img＿OverlapはＲＡＭ１０７に記憶されている写真データの重なり禁止領域を示している。また、「ＡＮＤ」は論理積を表わしている。さらに、Yoffset、及びXoffsetとは、図８に示すように、印刷する画像と追加するスタンプ画像とのそれぞれのオフセットを示し、ImgWidthとは、表示用写真データの横幅を示している。ここで、Yoffset、及びXoffsetは、図６のステップＳ６０５で決定した、追加するスタンプ画像の仮合成位置である。
【００４４】
まず、ステップＳ９０１において、重なり禁止領域に重なっているピクセル数を示す変数Overlapを０に初期化する。そして、ステップＳ９０２において、変数ｊを０に初期化し、ステップＳ９０３において、変数ｉを０に初期化する。ここで、変数ｉ及びｊはそれぞれ、スタンプ画像におけるピクセルの横方向、縦方向を示している。続くステップＳ９０４〜ステップＳ９０９では、変数ｉ及びｊがそれぞれスタンプ画像の横幅StampWidth、縦幅StampHeightになるまで１ずつ加え、それぞれのピクセルにて、式（２）の比較処理を行う。
【００４５】
ステップＳ９０４においては、式（２）が１であるか否かを判断する。ここで、式（２）の計算の結果、写真データの重なり禁止領域が重なりが禁止されていることを示す１であり、追加するスタンプ画像のマスクデータがスタンプ画像として画像が存在することを示す１であった場合のみ、式（２）は１となる。つまり、そのピクセルで重なりが発生することを検知することができる。このように、式（２）が１となり、重なりが発生するピクセルである場合は、ステップＳ９０５に進み、重なっているピクセル数を表す変数Overlapに１を加える。一方、式（２）が１でない場合は、ステップＳ９０６に進み、変数ｉに１を加える。
【００４６】
次に、ステップＳ９０７において、変数ｉがスタンプ画像の横幅StampWidth未満であるか否かを判断する。この判断の結果、スタンプ画像の横幅未満である場合は、ステップＳ９０４に戻り、変数ｉが横幅StampWidthに達した場合は、ステップＳ９０８において、変数ｊに１を加える。そして、ステップＳ９０９において、変数ｊがスタンプ画像の縦幅StampHeight未満であるか否かを判断する。この判断の結果、スタンプ画像の縦幅未満である場合は、ステップＳ９０３に戻り、変数ｊが縦幅StampHeightに達した場合は、ステップＳ９１０に進む。
【００４７】
このように、追加するスタンプ画像の領域すべてについて比較が行われると、ステップＳ９１０に進む。そして、ステップＳ９１０において、Overlapの値が所定の閾値TH＿Overlap未満であるか否かを判断する。すなわち、Overlapの値と閾値TH＿Overlapの大小関係を判断する。ここで、閾値TH＿Overlapは、スタンプ画像ごとに予め決めておく重なり禁止領域との重なりをどれぐらい許容するかを示すピクセル数である。この判断の結果、閾値未満であった場合は、ステップＳ９１２において、スタンプ画像同士の重っているピクセルが閾値未満であったことを示すフラグfOverlapをFALSEにセットし、処理を終了する。一方、ステップＳ９１０の判断の結果、閾値以上であった場合は、ステップＳ９１１において、フラグfOverlapをTUREにセットし、処理を終了する。
【００４８】
図６の説明に戻り、次のステップＳ６０８においては、図９の処理でセットしたfOverlapがTRUEであるか否かを判断する。この判断の結果、TRUEである場合は、ステップＳ６１３に進み、FALSEである場合はステップＳ６０９に進み、前述と同様の処理を行う。
【００４９】
TRUEである場合は、追加するスタンプ画像が他のスタンプ画像の重なり禁止領域に重なっている。このため、ステップＳ６１３においては、システム制御部１０６は制御手段として機能し、画像表示部１１０に表示されるＵＩ画面上でスタンプ画像が重なっている旨の警告を表示して、ユーザに知らせる。そして、ステップＳ６１４において、追加するスタンプ画像の位置を修正するか否かを問い合わせ、追加するスタンプ画像の位置を修正するようユーザによりＵＩ操作部１１１から指示されたか否かを判断する。この判断の結果、ユーザにより位置を修正するよう指示された場合は、ステップＳ６０５に戻り、修正するよう指示されていない場合は、ステップＳ６０９に進み、前述と同様の処理を行う。なお、ステップＳ６１３及びステップＳ６１４の処理を行う代わりに、追加するスタンプ画像を図３（ａ）のスタンプ画像の重なり禁止領域に重ならないように自動的に移動させてもよい。
【００５０】
以上のように本実施形態によれば、スタンプ画像に重なり禁止領域を記述したデータを付加している。これにより、例えば図４（ｂ）に示すような、ユーザが意図していない重ね合わせについて、スタンプ画像を移動させたり、ユーザへ通知したりして、ユーザの意図しない位置にスタンプ画像が合成されることを防止することができる。
【００５１】
一方、特定の色を利用する特色印刷の場合においては、重なり禁止データの代わりに特色マスクデータを用いてもよい。特色マスクデータとは、図１０に示すような1bitのデータであり、この値が１であった場合（図中の白色の領域）は、そのピクセルについては特色が使用される。この特色マスクデータを重なり禁止データとして使用する。つまり、特色の色データを重なり禁止データとして使用することにより、図４（ｃ）に示すような、スタンプ画像の特色部分同士の重ね合わせを行った場合について、スタンプ画像を移動させたり、ユーザへ警告したりする。
【００５２】
本実施形態では、図３のような合成画像データ、マスクデータ、重なり禁止データを使用したが、図１５のようなデータを用いて、重なり禁止を判定しても良い。
図１５の合成画像データは、図３（ａ）の合成画像データと同じであるが、重なり禁止領域データが異なっている。図３（ａ）では、くまの顔全体が重なり禁止領域となっていたが、図１５の重なり禁止領域は、くまの目、鼻部分のみである。これは、目や鼻は、周りが合成画像データで囲まれており、目や鼻の部分に同じ色の合成画像が重なるとくまの目や鼻がなくなってしまう。周りが合成画像データで囲まれている領域は、合成画像において重要な役割を示すことが多い。そこで、図１５では、周りが合成画像データで囲まれている部分のみを重なり禁止領域としている。
【００５３】
また、図１５では、合成画像中において周りが合成画像データで囲まれている透明な領域を重なり禁止領域として特定するための重なり禁止領域データを用意した。しかし、重なり禁止領域データを合成画像データとは別に用意せずに、合成画像データを解析することにより、周りが合成画像データで囲まれている透明な領域を重なり禁止領域として決定しても良い。また、合成画像データ中の周りが合成画像データで囲まれている透明な領域に、合成画像データと同じ色の合成画像データが重なる場合に、透明な領域とそうでない領域の区別がつかなくなってしまうので、同じ色の合成画像データが重なる場合に特に有効である。したがって、同じ色が重なるときのみ重なりを禁止するようにしても良い。
【００５４】
（第２の実施形態）
以下、第２の実施形態について、図１１〜図１４を参照しながら詳細に説明する。第１の実施形態では、合成する位置を決定したスタンプ画像の一部に、これから追加するスタンプ画像が重ならないように通知したが、本実施形態では、これから追加するスタンプ画像の透過箇所の背景色によっても重ならないように通知する。
【００５５】
まず、図１１を参照しながら、第１の実施形態における重なり禁止領域と本実施形態における重なり禁止領域との違いについて説明する。第１の実施形態では、例えば図３（ａ）に示すようなスタンプ画像（第１の合成画像）の顔の部分に他のスタンプ画像（第２の合成画像）が重なった合成画像とならないように、重なり禁止領域は顔の部分だけ設定されていた。本実施形態は、予め決められた色が背景色となってほしくない箇所も指定する。例えば、図１１（ａ）に示すスタンプ画像のように、体の周辺や目、鼻などが重なり禁止領域に設定されている。
【００５６】
以下、本実施形態における処理手順について説明する。なお、本実施形態に係るプリンタは、第１の実施形態と同様であるため、説明は省略する。また、印刷処理を行うまでの手順及びスタンプ画像を合成する位置を決定する処理手順についてもそれぞれ、図２、図６と同様であるため、説明は省略する。なお、本実施形態では、図６のステップＳ６０７の詳細な処理手順が図９に示す手順とは異なっており、図６のステップＳ６１０の詳細な処理手順が図７に示す手順とは異なっている。
【００５７】
図１２は、本実施形態において、ステップＳ６０７における重なり判断の詳細な手順の一例を示すフローチャートである。なお、図１２に示す各処理は、システム制御部１０６の制御により行われる。
まず、ステップＳ１２０１において、重なり禁止領域に重なっているピクセル数を示す変数Overlapを０に初期化する。次に、ステップＳ１２０２において、スタンプ画像の背景色が予め決められた色以外であるピクセル数を示す変数Underlapを０に初期化する。そして、ステップＳ１２０３において、変数ｊを０に初期化し、ステップＳ１２０４において、変数ｉを０に初期化する。ここで、変数ｉ及びｊはそれぞれ、スタンプ画像におけるピクセルの横方向、縦方向を示している。
【００５８】
続くステップＳ１２０５〜ステップＳ１２１３では、変数ｉ及びｊをそれぞれ、スタンプ画像の横幅StampWidth、縦幅StampHeightになるまで１ずつ加える。そして、それぞれのピクセルにて、前述の式（２）の論理演算と、以下の数３に示す式（３）の論理演算とを行う。
【００５９】
【数３】
0005574763.tif 000004
【００６０】
なお、本実施形態においては、Stamp＿Maskは、例えばＲＯＭ１０５に記憶されている図１１（ｂ）に示すスタンプ画像のマスクデータの先頭アドレスを示している。また、Stamp＿Overlapは、そのスタンプ画像の重なり禁止データの先頭アドレスを示し、「XOR」は排他的論理を示している。ステップＳ１２０５においては、式（２）が１であるか否かを判断する。第１の実施形態と同様に、式（２）の計算の結果、印刷画像の重なり禁止領域が、重なりが禁止されていることを示す１であり、追加するスタンプ画像のマスクデータがスタンプ画像として画像が存在することを示す１であった場合のみ、式（２）は１となる。つまり、その箇所で重なりが発生することを検知することができる。このように、式（２）が１となる場合は、ステップＳ１２０６に進み、Overlapに１を加え、ステップＳ１２０７に進む。一方、ステップＳ１２０５の判断の結果、式（２）が１でない場合は、そのままステップＳ１２０７に進む。
【００６１】
ステップＳ１２０７においては、式（３）が１であるか否かを判断する。ここで、式（３）の計算の結果、追加するスタンプ画像の重なり禁止領域が、重なりが禁止されていることを示す１であり、マスクデータが透過データであることを示す０であった場合のみ、式（３）は１となる。つまり、その箇所で、重なり禁止領域に設定されている透過箇所（差分領域）のみを検知することがでる。このように、式（３）が１となる場合はステップＳ１２０８に進み、式（３）が１でない場合はステップＳ１２１０に進む。
【００６２】
ステップＳ１２０８においては、重なり禁止領域の透過箇所における合成後の写真データの色空間の情報（色情報）を取得し、重なり禁止領域の透過箇所の背景色を、以下の数４に示す式（４）を用いてチェックする。
【００６３】
【数４】
0005574763.tif 000005
【００６４】
ここで、Img＿Y、Img＿U、Img＿VはＲＡＭ１０７に記憶されている表示用写真データの、輝度、色差情報のアドレスを表している。また、TH＿Y＿1、TH＿U＿1、TH＿V＿1、TH＿Y＿2、TH＿U＿2、TH＿V＿2は、スタンプ画像ごとに予め決められた、背景色として好ましくないＹＵＶの閾値を表している。なお、スタンプ画像ごとのＹＵＶの閾値の情報は、予めＲＯＭ１０５に記憶されている。
【００６５】
図１３は、ＹＵＶと閾値との関係を示す図である。式（４）は、透過箇所の背景色がブロック１３０１で囲まれている色空間の範囲内に存在しないか否かを判定するものである。ステップＳ１２０８のチェックの結果、式（４）が全て条件を満たす場合は、ステップＳ１２０９へ進み、Underlapに１を加え、ステップＳ１２１０に進む。一方、ステップＳ１２０８のチェックの結果、少なくとも１つが条件を満たさず、色空間の範囲外である場合は、ステップＳ１２１０に進み、変数ｉに１を加える。
【００６６】
次に、ステップＳ１２１１において、変数ｉがスタンプ画像の横幅StampWidth未満であるか否かを判断する。この判断の結果、スタンプ画像の横幅未満である場合は、ステップＳ１２０５に戻り、変数ｉが横幅StampWidthに達した場合は、ステップＳ１２１２において、変数ｊに１を加える。そして、ステップＳ１２１３において、変数ｊがスタンプ画像の縦幅StampHeight未満であるか否かを判断する。この判断の結果、スタンプ画像の縦幅未満である場合は、ステップＳ１２０４に戻り、変数ｊが縦幅StampHeightに達した場合は、ステップＳ１２１４に進む。
【００６７】
このように、追加するスタンプ画像の領域すべてについて、２つの比較が行われると、ステップＳ１２１４に進む。そして、ステップＳ１２１４において、Underlapが閾値TH＿Underlap未満であり、かつOverlapが閾値TH＿Overlap未満であるか否かを確認する。この確認の結果、少なくとも何れかが閾値以上であった場合は、ステップＳ１２１５において、フラグfOverlapにTUREをセットし、処理を終了する。一方、ステップＳ１２１４の確認の結果、２つとも閾値未満であった場合は、ステップＳ１２１６において、フラグfOverlapにFALSEをセットし、処理を終了する。
【００６８】
図１４は、本実施形態において、図６のステップＳ６１０におけるスタンプ画像の重なり禁止領域を反映させる処理手順の一例を示すフローチャートである。なお、図１４に示す各処理は、システム制御部１０６の制御により行われる。第１の実施形態で説明した図７と異なる点は、ステップＳ１４０３において、式（１）の代わりに以下の数５に示す式（５）を用いて計算する点である。したがって、ステップＳ１４０１、ステップＳ１４０２、及びステップＳ１４０４〜Ｓ１４０７についてはそれぞれ、図７のステップＳ７０１、ステップＳ７０２、及びステップＳ７０４〜Ｓ７０７と同様であるため、説明は省略する。
【００６９】
【数５】
0005574763.tif 000006
【００７０】
以上により、写真データの重なり禁止データにスタンプ画像の重なり禁止データが反映される。このように、スタンプ画像の透過部分に、そのスタンプ画像には好ましくない色が存在した場合、または、重なり禁止領域に他のスタンプ画像が重なった場合に、ユーザへ通知する。もしくは、スタンプ画像の透過部分に、そのスタンプ画像には好ましくない色が存在せず、かつ重なり禁止領域に他のスタンプ画像が重ならないようにスタンプ画像を移動させる。
【００７１】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005574763.tif 000007
【図２】
0005574763.tif 000008
【図３】
0005574763.tif 000009
【図４】
0005574763.tif 000010
【図５】
0005574763.tif 000011
【図６】
0005574763.tif 000012
【図７】
0005574763.tif 000013
【図８】
0005574763.tif 000014
【図９】
0005574763.tif 000015
【図１０】
0005574763.tif 000016
【図１１】
0005574763.tif 000017
【図１２】
0005574763.tif 000018
【図１３】
0005574763.tif 000019
【図１４】
0005574763.tif 000020
【図１５】
0005574763.tif 000021