(57)【要約】【課題】二次元符号に合成する対象の画像の配置位置を効率よく決定する。【解決手段】画像処理装置１０の合成画像生成部１６２は、二次元符号の画像と指定された対象画像とを合成した画像である合成画像を生成する。二次元符号の画像は、予め設定された単位量の情報を表す領域である単位情報領域を複数含む。合成画像生成部１６２の調整処理部１６２０は、二次元符号の画像における複数の単位情報領域の位置に基づいて、二次元符号の画像において対象画像を配置する位置を決定し、決定した位置に対象画像を配置することで合成画像を生成する。【選択図】図１
2011039878.tif 000002
【特許請求の範囲】
【請求項１】
二次元符号の画像と指定された対象画像とを合成した画像である合成画像を生成する生成手段、を備え、
前記二次元符号の画像は、予め設定された単位量の情報を表す領域である単位情報領域を複数含み、
前記生成手段は、前記二次元符号の画像における前記複数の単位情報領域の位置に基づいて、前記二次元符号の画像において前記対象画像を配置する位置を決定し、決定した位置に前記対象画像を配置することで前記合成画像を生成する、
ことを特徴とする画像処理装置。
【請求項２】
前記生成手段は、前記合成画像において前記複数の単位情報領域のうち前記対象画像の領域との間に重複部分を有する単位情報領域の数が最小となるように、前記対象画像を配置する位置を決定する、
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記生成手段は、前記合成画像において、前記対象画像の外周のうち予め設定された部分と、前記複数の単位情報領域のうちの１つの外周のうち予め設定された部分と、が重なるように前記対象画像を配置する位置を決定する、
ことを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記合成画像に基づいて前記二次元符号が表す情報を復元できるか否かを判定する判定手段、
をさらに備え、
前記生成手段は、さらに、前記合成画像に含まれる前記二次元符号が表す情報を復元できないと前記判定手段が判定した場合に、前記対象画像を縮小して新たな前記合成画像を生成する、
ことを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記生成手段は、前記対象画像を縮小して新たな前記合成画像を生成するときに、前記合成画像において、前記対象画像の外周のうち予め設定された部分の位置を固定して前記対象画像を縮小する、
ことを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記生成手段は、前記対象画像を縮小して新たな前記合成画像を生成するときに、前記対象画像が前記複数の単位情報領域のうちの１つの領域内に収まるまで前記対象画像を縮小する、
ことを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記生成手段は、さらに、前記二次元符号の画像において前記対象画像を配置する位置について利用者からの指定を受け付けた場合に、前記利用者により指定された位置に前記対象画像を配置して前記合成画像を生成し、当該合成画像について前記二次元符号が表す情報を復元できないと前記判定手段が判定した場合に、前記利用者により指定された位置および前記二次元符号の画像における前記複数の単位情報領域の位置に基づいて決定した位置に前記対象画像を配置することで新たな前記合成画像を生成する、
ことを特徴とする請求項４から６のいずれか１項に記載の画像処理装置。
【請求項８】
前記生成手段は、前記利用者により指定された位置に前記対象画像を配置して生成した前記合成画像について前記二次元符号が表す情報を復元できないと前記判定手段が判定した場合に、前記新たな合成画像において、前記対象画像の外周のうち予め設定された部分と、当該対象画像の外周のうち予め設定された部分を含む前記単位情報領域の外周のうち予め設定された部分と、が重なるように、前記対象画像を配置する位置を決定する、
ことを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記対象画像の外周のうち予め設定された部分は、前記対象画像が前記利用者により指定された位置から前記二次元符号の画像の中心に向かう方向に移動して前記新たな合成画像が生成されるように設定される、
ことを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
前記生成手段は、さらに、前記対象画像が縦長か否かに基づいて、前記合成画像における前記二次元符号の画像の回転角度を決定する、
ことを特徴とする請求項１から９のいずれか１項に記載の画像処理装置。
【請求項１１】
二次元符号の画像と指定された対象画像とを合成した画像である合成画像を生成する生成ステップ、をコンピュータに実行させ、
前記二次元符号の画像は、予め設定された単位量の情報を表す領域である単位情報領域を複数含み、
前記生成ステップにおいて、前記二次元符号の画像における前記複数の単位情報領域の位置に基づいて、前記二次元符号の画像において前記対象画像を配置する位置を決定し、決定した位置に前記対象画像を配置することで前記合成画像を生成する、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及びプログラムに関する。
【背景技術】
【０００２】
ＱＲコード（登録商標）などの誤り訂正機能を有する二次元符号に、人間が識別できる画像を合成する技術が開発されている。
【０００３】
例えば、特許文献１には、ＱＲコード内に、ＱＲコードの規格で定められているデータ復元機能の範囲を超えない範囲で任意の画像情報を配置する技術が開示されている。特許文献１に記載の技術では、ＱＲコードにおいて、規格で定められている位置検出パターン、位置検出パターン分離パターン、タイミングパターン、形式情報、型番情報、クワイエットゾーンの情報と重ならない位置に画像情報を合成したＱＲコードを生成する。
【０００４】
特許文献２には、ＱＲコードの画像データと合成の対象となる画像データとを合成して可視画像付きＱＲコードの画像データを作成し、当該ＱＲコードの画像データの読み取り検査を行うとともに使用者による視認性に関する評価の入力を受け付けて、双方の条件のよいものを出力させる技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２６２５２１号公報
【特許文献２】特開２００７−４３４５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、二次元符号の画像に他の画像を合成する場合、二次元符号の表す情報が復元可能となる合成対象の画像の配置位置を効率よく見つけることが望まれる。そして、二次元符号には、予め設定された単位量の情報を表す領域を複数含み、この単位量の情報ごとに符号化及び復号の処理を行うものがある。
【０００７】
本発明の目的は、二次元符号に他の画像を合成する場合に、二次元符号において予め設定された単位量の情報を表す領域の位置を考慮しない技術と比較して、二次元符号の表す情報が復元可能となる画像の配置位置をより効率よく決定できる画像処理装置及びプログラムを提供することである。
【課題を解決するための手段】
【０００８】
請求項１に係る発明は、二次元符号の画像と指定された対象画像とを合成した画像である合成画像を生成する生成手段、を備え、前記二次元符号の画像は、予め設定された単位量の情報を表す領域である単位情報領域を複数含み、前記生成手段は、前記二次元符号の画像における前記複数の単位情報領域の位置に基づいて、前記二次元符号の画像において前記対象画像を配置する位置を決定し、決定した位置に前記対象画像を配置することで前記合成画像を生成する、ことを特徴とする画像処理装置である。
【０００９】
請求項２に係る発明は、請求項１に係る発明において、前記生成手段は、前記合成画像において前記複数の単位情報領域のうち前記対象画像の領域との間に重複部分を有する単位情報領域の数が最小となるように、前記対象画像を配置する位置を決定する。
【００１０】
請求項３に係る発明は、請求項１又は２に係る発明において、前記生成手段は、前記合成画像において、前記対象画像の外周のうち予め設定された部分と、前記複数の単位情報領域のうちの１つの外周のうち予め設定された部分と、が重なるように前記対象画像を配置する位置を決定する。
【００１１】
請求項４に係る発明は、請求項３に係る発明において、前記合成画像に基づいて前記二次元符号が表す情報を復元できるか否かを判定する判定手段、をさらに備え、前記生成手段は、さらに、前記合成画像に含まれる前記二次元符号が表す情報を復元できないと前記判定手段が判定した場合に、前記対象画像を縮小して新たな前記合成画像を生成する。
【００１２】
請求項５に係る発明は、請求項４に係る発明において、前記生成手段は、前記対象画像を縮小して新たな前記合成画像を生成するときに、前記合成画像において、前記対象画像の外周のうち予め設定された部分の位置を固定して前記対象画像を縮小する。
【００１３】
請求項６に係る発明は、請求項５に係る発明において、前記生成手段は、前記対象画像を縮小して新たな前記合成画像を生成するときに、前記対象画像が前記複数の単位情報領域のうちの１つの領域内に収まるまで前記対象画像を縮小する。
【００１４】
請求項７に係る発明は、請求項４から６のいずれか１項に係る発明において、前記生成手段は、さらに、前記二次元符号の画像において前記対象画像を配置する位置について利用者からの指定を受け付けた場合に、前記利用者により指定された位置に前記対象画像を配置して前記合成画像を生成し、当該合成画像について前記二次元符号が表す情報を復元できないと前記判定手段が判定した場合に、前記利用者により指定された位置および前記二次元符号の画像における前記複数の単位情報領域の位置に基づいて決定した位置に前記対象画像を配置することで新たな前記合成画像を生成する。
【００１５】
請求項８に係る発明は、請求項７に係る発明において、前記生成手段は、前記利用者により指定された位置に前記対象画像を配置して生成した前記合成画像について前記二次元符号が表す情報を復元できないと前記判定手段が判定した場合に、前記新たな合成画像において、前記対象画像の外周のうち予め設定された部分と、当該予め設定された部分を含む前記単位情報領域の外周のうち予め設定された部分と、が重なるように、前記対象画像を配置する位置を決定する。
【００１６】
請求項９に係る発明は、請求項８に係る発明において、前記対象画像の外周のうち予め設定された部分は、前記対象画像が前記利用者により指定された位置から前記二次元符号の画像の中心に向かう方向に移動して前記新たな合成画像が生成されるように設定される。
【００１７】
請求項１０に係る発明は、請求項１から９のいずれか１項に係る発明において、前記生成手段は、さらに、前記対象画像が縦長か否かに基づいて、前記合成画像における前記二次元符号の画像の回転角度を決定する。
【００１８】
請求項１１に係る発明は、二次元符号の画像と指定された対象画像とを合成した画像である合成画像を生成する生成ステップ、をコンピュータに実行させ、前記二次元符号の画像は、予め設定された単位量の情報を表す領域である単位情報領域を複数含み、前記生成ステップにおいて、前記二次元符号の画像における前記複数の単位情報領域の位置に基づいて、前記二次元符号の画像において前記対象画像を配置する位置を決定し、決定した位置に前記対象画像を配置することで前記合成画像を生成する、ことを特徴とするプログラムである。
【発明の効果】
【００１９】
請求項１又は１１に係る発明によると、二次元符号の画像に対象画像を合成する場合に、二次元符号に含まれる複数の単位情報領域の位置を考慮しない技術と比較して、二次元符号の表す情報が復元可能となる対象画像の配置位置をより効率よく決定できる。
【００２０】
請求項２に係る発明によると、二次元符号の画像に対象画像を配置した合成画像において、対象画像の配置によって情報に損失が生じる単位情報領域の数を最小にすることができる。
【００２１】
請求項３に係る発明によると、本構成を有さない場合と比較して、対象画像の配置によって情報に損失が生じる単位情報領域の数が少なくなる。
【００２２】
請求項４に係る発明によると、合成画像に含まれる二次元符号の表す情報を復元できない場合に、合成画像において、対象画像の配置により情報の損失が生じる領域の面積を小さくすることができる。
【００２３】
請求項５に係る発明によると、対象画像の外周のうち予め設定された部分と、二次元符号の画像に含まれる単位情報領域のうちの１つの外周のうち予め設定された部分と、の間の位置関係を保持したまま対象画像を縮小できる。
【００２４】
請求項６に係る発明によると、対象画像の配置により情報の損失が生じる単位情報領域を１つにすることができる。
【００２５】
請求項７に係る発明によると、利用者に指定された位置を考慮した、合成画像を生成できる。
【００２６】
請求項８に係る発明によると、本構成を有さない場合と比較して、対象画像の配置によって情報に損失が生じる単位情報領域の数が少なくなる。
【００２７】
請求項９に係る発明によると、本構成を有さない場合と比較して、合成画像が復元可能となる可能性が高くなる。
【００２８】
請求項１０に係る発明によると、本構成を有さない場合と比較して、対象画像と二次元符号に含まれる単位情報領域とが共通の形状を有する可能性が高くなる。
【図面の簡単な説明】
【００２９】
【図１】画像処理装置の概略構成の例を示す図である。
【図２】ＱＲコード及びＱＲコードに合成される対象画像の例を示す図である。
【図３】合成画像の例を示す図である。
【図４】処理部が行う処理の手順の例を示すフローチャートである。
【図５】合成画像調整処理の手順の例を示すフローチャートである。
【図６】ＱＲコードの構成の例を説明するための図である。
【図７】対象画像調整処理の手順の例を示すフローチャートである。
【図８Ａ】対象画像調整処理の様子の例を説明するための図である。
【図８Ｂ】対象画像調整処理の様子の例を説明するための図である。
【図８Ｃ】対象画像調整処理の様子の例を説明するための図である。
【図８Ｄ】対象画像調整処理の様子の例を説明するための図である。
【図９】ＱＲコード調整処理の手順の例を示すフローチャートである。
【図１０】ＱＲコード回転処理の手順の例を示すフローチャートである。
【図１１】マスクパターン変更処理の手順の例を示すフローチャートである。
【図１２】誤り訂正レベル変更処理の手順の例を示すフローチャートである。
【図１３】合成画像調整処理の手順の他の例を示すフローチャートである。
【図１４】合成画像調整処理の手順のさらに他の例を示すフローチャートである。
【図１５】複数の対象画像を用いて合成画像を生成する際に実行される処理の手順の例を示すフローチャートである。
【図１６】コンピュータのハードウエア構成の例を示すブロック図である。
【発明を実施するための形態】
【００３０】
図１は、本発明の１つの実施形態の例の画像処理装置の概略構成の例を示す図である。画像処理装置１０は、画像入力部１２、ユーザ入力部１４、処理部１６、記憶部１８、及び出力部２０を備える。
【００３１】
画像入力部１２は、処理対象の画像データの入力を受け付けて処理部１６に渡す。画像入力部１２が受け付ける画像データは、例えば、色などを表す数値を有する画素からなるデジタル画像データである。画像入力部１２は、例えば、スキャナなどの一般的な画像生成装置から画像データの入力を受け付ける。また例えば、画像入力部１２は、インターネットやＬＡＮ（Local Area Network）などのネットワーク（図示しない）を介して画像処理装置１０と接続されたコンピュータなどの情報処理装置から画像データの入力を受け付けてもよい。なお、以下の説明では、処理部１６で処理される画像データを単に「画像」と呼ぶ。
【００３２】
ユーザ入力部１４は、ユーザによる指示の入力を受け付けて処理部１６に渡す。ユーザ入力部１４は、例えば、キーボード及びマウスなどの一般的な入力装置であってよい。
【００３３】
処理部１６は、情報を二次元の情報に符号化して生成される二次元符号の画像と、人間が識別可能な画像と、を合成した画像に関する処理を行う。処理部１６は、二次元符号生成部１６０、合成画像生成部１６２、及び復号処理部１６４を備える。
【００３４】
二次元符号生成部１６０は、符号化の対象として指定された情報を予め設定された手順に従って符号化して二次元符号を生成する。二次元符号生成部１６０は、二次元符号を生成すると、当該二次元符号と、当該二次元符号が表す情報と、を対応づけて記憶部１８に記憶させる。なお、以下では、二次元符号の一種であるＱＲコードを例にとり各種の実施形態の例を説明する。ＱＲコードは、ＪＩＳ及びＩＳＯによって規格化された二次元符号である（ＪＩＳ−Ｘ−０５１０，ＩＳＯ／ＩＥＣ１８００４）。本例の二次元符号生成部１６０は、ＪＩＳ又はＩＳＯによる規格で定められた手順に従って符号化の対象の情報を符号化してＱＲコードを生成する。図２（ａ）に、ＱＲコードの一例を示す。
【００３５】
図１の説明に戻り、合成画像生成部１６２は、二次元符号生成部１６０が生成した二次元符号の画像と、当該二次元符号の画像に合成する対象の画像として指定された画像（以下、「対象画像」と呼ぶ）と、を合成した画像を生成する。以下では、二次元符号の画像と対象画像とを合成した画像を「合成画像」と呼ぶ。合成画像生成部１６２は、二次元符号の画像上に対象画像を配置した画像を合成画像として生成する。
【００３６】
例えば、図２（ａ）のＱＲコード（二次元符号の画像）と合成される対象画像として、図２（ｂ）に示す画像が指定されたとする。このとき、合成画像生成部１６２は、図２（ａ）のＱＲコード上に図２（ｂ）の対象画像を配置し、例えば図３に示すような合成画像を生成する。
【００３７】
対象画像としては、例えば、画像が表す内容を人間が識別可能であり、かつ、二次元符号が表す情報と関連のある画像が指定される。これにより、合成画像を視認したユーザは、二次元符号が表す情報に関連する情報を対象画像から認識する。
【００３８】
再び図１を参照し、合成画像生成部１６２は、調整処理部１６２０を備える。調整処理部１６２０は、二次元符号の画像における対象画像の位置を決定あるいは変更したり、対象画像の大きさを決定あるいは変更したりする。調整処理部１６２０は、また、合成画像に含まれる二次元符号の画像の生成に用いられた設定情報と異なる設定情報を用いて、当該二次元符号が表す情報と同一の情報を符号化して新たな二次元符号を生成することを二次元符号生成部１６０に依頼することもある。調整処理部１６２０は、例えば、後述の復号処理部１６４において合成画像の復号に失敗した場合に、上記で例示した処理の少なくともいずれかを行い、復号に成功する合成画像の生成を試みる。
【００３９】
復号処理部１６４は、合成画像生成部１６２が生成した合成画像を復号する。復号処理部１６４は、二次元符号生成部１６０において二次元符号の生成に用いられた符号化の手順に対応する復号の手順として予め設定された手順に従って復号処理を行う。二次元符号としてＱＲコードが生成される本例では、ＱＲコードの復号の手順として規格化された手順に従って復号処理を行えばよい。復号処理部１６４は、合成画像の復号の成否を合成画像生成部１６２に対して通知する。
【００４０】
記憶部１８は、処理部１６における処理に必要な情報を記憶する記憶装置である。記憶部１８は、例えば、処理部１６の処理対象の画像、処理部１６が行う処理で用いられる変数の値、及び処理部１６が行う処理の手順を記述したプログラムなどを記憶する。また、記憶部１８は、処理部１６における処理の結果を記憶することもある。
【００４１】
出力部２０は、処理部１６による処理の結果を出力する。例えば、出力部２０は、処理部１６による処理の結果として生成された画像を表示装置（図示しない）に対して出力し、当該画像を表示装置に表示させる。あるいは、例えば、出力部２０は、処理結果の画像をネットワーク（図示しない）に対して出力することで、ネットワークを介して画像処理装置１０に接続された装置に処理結果の画像を送ってもよい。
【００４２】
以下、画像処理装置１０の処理の例を説明する。
【００４３】
図４は、処理部１６が行う処理の手順の例を示すフローチャートである。
【００４４】
図４を参照し、処理部１６の二次元符号生成部１６０は、まず、符号化対象の情報を取得する（ステップＳ１）。ステップＳ１では、二次元符号生成部１６０は、例えば、ユーザ入力部１４を介して、ユーザが入力した符号化対象の情報を取得する。あるいは、例えば、二次元符号生成部１６０は、記憶部１８に記憶されている情報のうち、ユーザ入力部１４を用いてユーザが指定した情報を符号化対象として取得してもよい。
【００４５】
次に、二次元符号生成部１６０は、符号化に用いる設定情報を取得する（ステップＳ３
）。二次元符号生成部１６０は、例えば、ユーザ入力部１４を介して、ユーザが入力した設定情報を取得する。あるいは、例えば、設定情報の初期値を記憶部１８に記憶させておき、ステップＳ３において、この初期値を記憶部１８から取得してもよい。
【００４６】
ＱＲコードを生成する本例では、ステップＳ３で、設定情報として、ＱＲコードの誤り訂正レベル、マスクパターン、及び型番を指定する情報を取得する。
【００４７】
ＱＲコードは、その一部が損傷していても情報を復元できる機能を有する。誤り訂正レベルは、この復元機能によって復元可能な損傷の度合いを表す。ＱＲコードの規格により、Ｌ（７％），Ｍ（１５％），Ｑ（２５％），Ｈ（３０％）の４段階の誤り訂正レベルが定められている。例えば誤り訂正レベルＬのＱＲコードであれば、ＱＲコードの面積に対する損傷部分の面積の割合が７％以下であればＱＲコードが表す情報を復元可能である。
【００４８】
また、ＱＲコードの画像における情報の偏りを低減するために、ＱＲコードの生成において、マスクをかける処理が行われる。マスクパターンは、このマスクをかける処理に用いられる。ＱＲコードの規格により８種類のマスクパターンＡ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ，Ｇ，Ｈが定義されている。
【００４９】
型番は、ＱＲコードの大きさを表し、ＱＲコードが表現可能な情報量に対応する。ＱＲコードの規格により、１〜４０までの型番が定義されており、型番の数値が大きい程ＱＲコードが表現可能な情報量は多い。なお、ＱＲコードの型番は、「バージョン」と呼ばれることもある。
【００５０】
符号化対象の情報及び符号化に用いる設定情報を取得すると、二次元符号生成部１６０は、ＱＲコードを生成する（ステップＳ５）。二次元符号生成部１６０は、符号化対象の情報を符号化して、設定情報で指定された誤り訂正レベル、マスクパターン、及び型番のＱＲコードを生成する。二次元符号生成部１６０は、生成したＱＲコードを合成画像生成部１６２に渡す。
【００５１】
合成画像生成部１６２は、ＱＲコードに合成される対象画像を取得する（ステップＳ２）。対象画像は、例えば、画像入力部１２を介して取得される。このとき、ユーザは、例えばユーザ入力部１４を介して、画像入力部１２から合成画像生成部１６２に渡される画像を対象画像として用いることを指示する。あるいは、合成画像生成部１６２は、記憶部１８に記憶された画像のうち、ユーザ入力部１４を介してユーザが対象画像として指定した画像を記憶部１８から取得してもよい。
【００５２】
以上で説明したＱＲコードの生成（ステップＳ１，Ｓ３，Ｓ５）と対象画像の取得（ステップＳ２）とは、いずれか一方を先に実行してもよいし、両方を並行して実行してもよい。
【００５３】
合成画像生成部１６２は、ＱＲコードと対象画像とを取得すると、対象画像をＱＲコード上に配置した画像を生成することで合成画像を生成する（ステップＳ７）。ステップＳ７では、ＱＲコード上でユーザが指定した位置に対象画像を配置した合成画像を生成すればよい。ユーザによる対象画像の位置の指定は、例えば、ＱＲコード及び対象画像を出力部２０により表示画面（図示しない）に表示させ、ユーザにマウスなどの入力装置によって対象画像をＱＲコード上に配置させることで、ユーザ入力部１４を介して受け付ける。
【００５４】
合成画像を生成すると、合成画像生成部１６２は、合成画像の調整処理を行う（ステップＳ９）。ステップＳ９では、合成画像が復号可能か否かを確認し、復号可能でなければ、調整処理部１６２０によって対象画像の位置及び大きさやＱＲコードの設定などを調整して復号可能な合成画像の生成を試みる。本例では、合成画像調整処理の結果、復号可能な合成画像を生成できたか否かを表す戻り値（「復号可」又は「復号不可」）が得られる。ステップＳ９の処理の詳細は後述する。
【００５５】
ステップＳ９の後、処理部１６は、出力部２０を用いて、合成画像及び復号の可否を出力する（ステップＳ１１）。ステップＳ１１では、例えば、合成画像調整処理の結果の戻り値が「復号可」であれば、合成画像調整処理で生成された合成画像及び当該合成画像が復号可能である旨を出力する。また、戻り値が「復号不可」であれば、ステップＳ７で生成された元の合成画像及び当該合成画像が復号不可である旨を出力する。
【００５６】
ステップＳ１１の後、図４の例の手順の処理は終了する。
【００５７】
なお、図４の例の手順の処理では、符号化対象の情報を取得してＱＲコードの生成を行うが、他の処理の例では、すでに生成されたＱＲコードを取得して合成画像を生成してもよい。例えば、図４のステップＳ１，Ｓ３，Ｓ５の処理を行う代わりに、画像入力部１２あるいは記憶部１８からＱＲコードの画像を取得し、このＱＲコードを用いてステップＳ７以降の処理を行ってもよい。
【００５８】
図５は、合成画像調整処理（図４のステップＳ９）の手順の例を示すフローチャートである。図４のステップＳ９が開始されると、図５の例の手順の処理が開始される。
【００５９】
図５を参照し、まず、復号処理部１６４は、合成画像を復号する（ステップＳ９０）。復号処理部１６４は、ステップＳ９０の復号処理の成否を合成画像生成部１６２に対して通知する。復号処理部１６４は、例えば、復号処理によって合成画像から抽出した情報と、当該合成画像に含まれる二次元符号が表す情報として記憶部１８に記憶された情報と、が一致すれば復号に成功したと判定する。一方、復号処理によって合成画像から抽出した情報と、前述のように記憶部１８に記憶された情報と、が一致しない場合、又は、復号処理を行っても合成画像から情報を抽出できない場合、復号処理部１６４は、合成画像の復号に失敗したと判定する。
【００６０】
復号に成功した場合（ステップＳ９２でＹＥＳ）、戻り値として「復号可」を設定し（ステップＳ９６）、図５の例の手順は終了する。
【００６１】
復号に失敗した場合（ステップＳ９２でＮＯ）、合成画像生成部１６２の調整処理部１６２０は、対象画像の調整を行う（ステップＳ９４）。ステップＳ９４では、ＱＲコードにおいてデータを表す単位である「コード語」の配置に応じて、ＱＲコードにおける対象画像の位置及び大きさが調整される。１つのコード語は１バイトのデータを表す。コード語によって符号化対象の情報が表される。また、ＱＲコードは、誤り訂正のために用いられるコード語も含む。ＱＲコードに含まれるコード語の数及び配置は、ＱＲコードの型番及び誤り訂正レベルの組合せに応じて、規格により定義されている。
【００６２】
図６に、型番が「１」、誤り訂正レベルが「Ｌ」であるＱＲコードのコード語の配置を模式的に示す。図６において、斜線を引いた部分にコード語が配置される。図６の斜線部に含まれる長方形のそれぞれが１つのコード語に対応する。ただし、図６において、符号ａ１，ａ２で示す２つの長方形及び符号ｂ１，ｂ２で示す２つの長方形は、それぞれ、２つの長方形が１つのコード語に対応する。図６の例のＱＲコードは、２６個のコード語を含む。このうち、１９個は符号化対象の情報を表すためのコード語であり、７個は誤り訂正用のコード語である（これらの区別は図示しない）。図６の例のようなコード語の配置に応じて、このＱＲコードに合成される対象画像の位置及び大きさの調整が行われる。
【００６３】
なお、以下の説明において、対象画像は矩形を有するものとし、ＱＲコードにおける「対象画像の位置」とは、その矩形の４つの角それぞれのＱＲコードにおける座標を意味するものとする。また、ＱＲコードにおける座標は、図６に例示するように、回転角度が０°であるＱＲコードの左上の角を原点（０，０）とし、左右方向の軸をｘ軸、上下方向の軸をｙ軸とした座標系の座標であるとする。なお、ＱＲコードの「回転角度」は、ＱＲコードに含まれる３つの切り出しシンボル（ファインダパターン、位置検出パターン）ｄ１，ｄ２，ｄ３の位置関係から認識されるものである。図６の例のように、ＱＲコードの左上、右上、及び左下の隅に切り出しシンボルｄ１，ｄ２，ｄ３が配置されている状態が回転角度０°と定められている。
【００６４】
図７に、対象画像調整処理（図５のステップＳ９４）の詳細手順の例を示す。図５のステップＳ９４が開始されると、図７の例の手順の処理が開始される。
【００６５】
調整処理部１６２０は、現在の対象画像のＱＲコードにおける位置を記憶部１８に記憶させて保持する（ステップＳ９４０）。本例では、対象画像の左上、右上、左下、及び右下の角の座標（以下、それぞれ、「左上座標」、「右上座標」、「左下座標」、及び「右下座標」と呼ぶ）をＱＲコードにおける位置として保持する。
【００６６】
次に、調整処理部１６２０は、現在の対象画像の左上座標を含むコード語の左上の角の座標に、対象画像の左上座標を移動させる（ステップＳ９４２）。ステップＳ９４２での移動処理により、対象画像の領域との間に重複部分を有するコード語の数が最小となる位置に対象画像が移動される。以下、図８Ａ及び図８Ｂを参照して、ステップＳ９４２の具体例を説明する。図８Ａにおいて、対象画像Ｉの左上座標は、コード語ｃ１の領域内に含まれる。この例では、ステップＳ９４２において、対象画像Ｉの左上座標の値をコード語ｃ１の左上の角の座標の値に設定することで、対象画像Ｉの左上の角をコード語ｃ１の左上の角まで移動させる。対象画像Ｉの左上座標の変化に伴い、右上座標、左下座標、及び右下座標のそれぞれの値も、左上座標の値の変化と同様に変化させる。つまり、右上座標、左下座標、及び右下座標のそれぞれを、破線矢印で表す左上座標の移動の方向と平行な方向に同じ距離だけ移動させる。ステップＳ９４２における対象画像の移動の結果の例を図８Ｂに示す。図８Ａでは、対象画像Ｉは９個のコード語の領域との間に重複部分を有するのに対し、図８Ｂでは、対象画像Ｉは、４個のコード語の領域との間に重複部分を有する。対象画像Ｉの領域との間に重複部分を有するコード語の数が少ない程、対象画像によってデータの損失が生じるコード語の数が少なくなり、合成画像の復号が成功する可能性が高くなる。
【００６７】
再び図７を参照し、ステップＳ９４２の結果の合成画像に対して、復号処理部１６４は復号処理を行う（ステップＳ９４４）。
【００６８】
復号に成功すれば（ステップＳ９４６でＹＥＳ）、戻り値が「復号可」に設定され（ステップＳ９４８）、図７の例の手順の処理は終了する。
【００６９】
復号に失敗した場合（ステップＳ９４６でＮＯ）、調整処理部１６２０は、対象画像が１つのコード語の領域内にあるか否かを判定する（ステップＳ９５０）。この判定は、例えば、対象画像の左上座標、右上座標、左下座標、及び右下座標のすべてが１つのコード語の領域内に存在するか否かを調べることで行えばよい。
【００７０】
対象画像が１つのコード語の領域内にない場合（ステップＳ９５０でＮＯ）、調整処理部１６２０は、対象画像の右下座標を含むコード語の領域との間の重複がなくなるまで、対象画像の左上座標を固定して対象画像を縮小する（ステップＳ９５６）。上述の図８Ｂの例を参照し、ステップＳ９４２の結果の合成画像において、対象画像Ｉは、１つのコード語の領域内ではなく、４つのコード語の領域との間に重複部分を有する。このため、ステップＳ９５０でＮＯ判定され、ステップＳ９５６で、対象画像Ｉの右下座標を含むコード語ｃ２の領域との間の重複がなくなるまで、対象画像Ｉは縮小される。対象画像Ｉの縮小において、左上座標は固定される。図８Ｂの例の合成画像においてステップＳ９５６の処理を行った結果の例を図８Ｃに示す。図８Ｃでは、対象画像Ｉとコード語ｃ２の領域との間に重複部分は存在しない。
【００７１】
ステップＳ９５６の後、処理はステップＳ９４４に戻り、合成画像の復号、及び復号の成否の判定（ステップＳ９４６）が行われる。
【００７２】
ステップＳ９５０において対象画像が１つのコード語の領域内にある（ＹＥＳ）と判定された場合、調整処理部１６２０は、保持しておいた元の位置に対象画像の位置を戻す（ステップＳ９５２）。ステップＳ９５２では、対象画像の位置だけでなく、大きさも元に戻される。その後、戻り値が「復号不可」に設定され（ステップＳ９５４）、図７の例の手順の処理は終了する。ステップＳ９５０でＹＥＳと判定される場合、１つのコード語の領域内に収まるまでコード語を縮小しても合成画像の復号に失敗することを意味するため、戻り値が「復号不可」に設定される。
【００７３】
図７の例の手順の処理において、ステップＳ９４４，Ｓ９４６，Ｓ９５０，Ｓ９５６を含むループ処理により、合成画像の復号に成功するか、あるいは、対象画像が１つのコード語の領域内に収まるまで、対象画像の縮小が繰り返される。上述の図８Ｃの例を再び参照し、ステップＳ９５６の縮小処理の結果の図８Ｃの合成画像の復号に失敗した場合（ステップＳ９４６でＮＯ）、対象画像Ｉが２つのコード語ｃ１，ｃ３の領域との間に重複部分を有することから、ステップＳ９５０でＮＯ判定されて、対象画像Ｉは、さらに、右下座標がコード語ｃ３の領域外となるまで縮小される（ステップＳ９５６）。この縮小の結果の例を図８Ｄに示す。図８Ｄでは、対象画像Ｉは、１つのコード語ｃ１の領域内に収まっている。図８Ｄの例の合成画像について復号に失敗すると（ステップＳ９４６でＮＯ）、対象画像が１つのコード語の領域内にあることから、対象画像Ｉは元の位置及び大きさに戻され（図８Ａ参照）、戻り値は「復号不可」に設定される（ステップＳ９５０でＹＥＳ，Ｓ９５２，Ｓ９５４）。
【００７４】
なお、図７の例の手順では、対象画像の左上座標を基準として対象画像を移動させ、縮小処理を行うが、左上座標の代わりに、右上座標、左下座標、及び右下座標のいずれかを基準として同様の処理を行ってもよい。対象画像の移動（ステップＳ９４２）においては、基準の座標と同様の位置にあるコード語の角（対象画像の右上座標が基準であれば、コード語の右上の角）の座標へ対象画像の基準の座標を移動させればよい。縮小処理（ステップＳ）では、基準の座標を固定し、基準の座標の対角線上の座標（右上座標が基準であれば、左下座標）を含むコード語の領域と対象画像との間の重複がなくなるまで対象画像を縮小すればよい。
【００７５】
図７の例の手順において、対象画像の左上、右上、左下、及び右下のいずれの座標を基準とするかは、予め決定しておいてよい。あるいは、例えば、移動処理（ステップＳ９４２）において、対象画像をＱＲコードの中心に向かって移動させるように、ＱＲコードの中心座標に最も近いコード語の領域内にある対象画像の座標を基準とするようにしてもよい。ＱＲコードは、その中心付近のコード語に損失が生じている場合の方が、中心付近の他の部分のコード語に損失が生じている場合と比較して強い復元能力を有する傾向がある。このため、対象画像をＱＲコードの中心付近に配置すると、合成画像が復元可能となる可能性が高くなる。
【００７６】
また、図７の例の手順の処理において、戻り値が「復号不可」となる場合に、基準の座標を変えて図７の例の手順の処理を繰り返してもよい。例えば、戻り値が「復号可」になるまで、左上、右上、左下、及び右下の座標のそれぞれを基準として図７の例の手順の処理を行う。左上、右上、左下、及び右下のすべてについて図７の例の手順の処理を行っても戻り値が「復号不可」であれば、そのまま対象画像調整処理を終了する。なお、基準とする座標を変更して処理を繰り返す場合、基準の座標の順番は任意に設定しておいてよい。
【００７７】
また、上述の例の移動処理（ステップＳ９４２）では、対象画像の基準の座標の値を、対応するコード語の角の座標に設定する。他の例では、必ずしも、対象画像の基準の座標とコード語の角の座標とを等しくしなくてもよい。例えば、対象画像がその外周付近に余白部分を有し、この余白部分が透明である（つまり、対象画像をＱＲコードに重畳させた時に余白部分に覆われるＱＲコードの画素が合成画像上に現れる）場合に、その余白部分の大きさを考慮して対象画像の移動先を決定してもよい。例えば、対象画像の基準の座標から対角線方向の余白部分の大きさを求め、対象画像の基準の座標（左上、右上、左下、又は右下）を、対応するコード語の角の座標から求めた余白部分の大きさだけ当該コード語の外側にずらした位置に移動させてもよい。
【００７８】
再び図５を参照し、対象画像調整処理（ステップＳ９４，図７）が終了すると、その戻り値が「復号可」であるか否かが判定される（ステップＳ９８）。戻り値が「復号可」であれば、ステップＳ１００を行わずに図５の例の合成画像調整処理は終了する。戻り値が「復号不可」であれば、ＱＲコードの調整が行われる（ステップＳ１００）。
【００７９】
図９に、ＱＲコード調整処理（図５のステップＳ１００）の詳細手順の例を示す。図５のステップＳ１００の処理が開始されると、図９の例の手順の処理が開始される。
【００８０】
図９を参照し、調整処理部１６２０は、合成画像に含まれるＱＲコードを回転させることで合成画像が復号可能となるか否かを判定する（ステップＳ１０２）。ＱＲコード回転処理の結果、復号不可であれば（ステップＳ１０４でＮＯ）、マスクパターンを変更したＱＲコードを含む合成画像が復号可能であるか否かを判定する（ステップＳ１０６）。マスクパターン変更処理の結果、復号不可であれば（ステップＳ１０８でＮＯ）、さらに、調整処理部１６２０は、誤り訂正レベルを変更したＱＲコードを含む合成画像が復号可能であるか否かを判定する（ステップＳ１１０）。誤り訂正レベル変更処理が終了すると、図９の例の手順の処理は終了する。
【００８１】
図９の例の手順において、ＱＲコード回転処理（ステップＳ１０２）の結果、合成画像が復号可能となれば（ステップＳ１０４でＹＥＳ）、ステップＳ１０６以下の処理を行わずに処理を終了する。また、マスクパターン変更処理（ステップＳ１０６）の結果、合成画像が復号可能となれば（ステップＳ１０８でＹＥＳ）、誤り訂正レベル変更処理（ステップＳ１１０）を行わずに処理を終了する。これらの場合、図９の例のＱＲコード調整処理の結果の戻り値は「復号可」となる。誤り訂正レベル変更処理（ステップＳ１１０）を実行した場合、誤り訂正レベル変更処理の戻り値が、図９の例のＱＲコード調整処理の戻り値となる。
【００８２】
以下、図１０〜図１２を参照し、図９の例のＱＲコード回転処理（ステップＳ１０２）、マスクパターン変更処理（ステップＳ１０６）、及び誤り訂正レベル変更処理（ステップＳ１１０）のそれぞれの詳細手順の例を説明する。
【００８３】
図１０は、ＱＲコード回転処理の詳細手順の例を示すフローチャートである。図９の例の手順のステップＳ１０２の処理が開始されると、図１０の例の手順の処理が開始される。
【００８４】
まず、調整処理部１６２０は、現在の合成画像及び当該合成画像に含まれるＱＲコードの現在の回転角度を記憶部１８に記憶させて保持する（ステップＳ１０２０）。
【００８５】
そして、調整処理部１６２０は、現在の合成画像に含まれるＱＲコードの回転角度を＋９０°だけ進める（ステップＳ１０２２）。言い換えると、現在のＱＲコードの回転角度に対して９０°加算する。ただし、現在のＱＲコードの回転角度が２７０°であり加算の結果が３６０°となる場合は、ステップＳ１０２２の結果の回転角度を０°とする。
【００８６】
ステップＳ１０２２の結果の回転角度がステップＳ１０２０で保持された元の回転角度と同じであれば、調整処理部１６２０は、回転角度が一巡したと判定し（ステップＳ１０２４でＹＥＳ）、現在の合成画像を元の合成画像に戻す（ステップＳ１０３４）。元の合成画像とは、ステップＳ１０２０で記憶部１８に記憶された合成画像である。そして、戻り値が「復号不可」に設定され（ステップＳ１０３６）、処理は終了する。ステップＳ１０２４でＹＥＳ判定されるのは、回転角度が一巡しても復号可能な合成画像が得られない場合であるため、戻り値は「復号不可」に設定される。
【００８７】
ステップＳ１０２２の結果の回転角度が保持された元の回転角度と異なっていれば、調整処理部１６２０は、回転角度は一巡していないと判定し（ステップＳ１０２４でＮＯ）、ステップＳ１０２２の結果の回転角度のＱＲコードを含む合成画像を生成する（ステップＳ１０２６）。ステップＳ１０２６では、合成画像に含まれるＱＲコードを９０°回転させて、ステップＳ１０２２の結果の回転角度のＱＲコードとする。ステップＳ１０２６で、合成画像における対象画像の位置及び大きさは変更されない。合成画像における背景であるＱＲコードを回転させるだけである。
【００８８】
ステップＳ１０２６の回転処理後のＱＲコードを含む合成画像は、復号処理部１６４により復号される（ステップＳ１０２８）。
【００８９】
合成画像の復号に失敗すれば（ステップＳ１０３０でＮＯ）、ステップＳ１０２２以下の処理を繰り返し、復号に成功すれば（ステップＳ１０３０でＹＥＳ）、戻り値を「復号可」に設定して（ステップＳ１０３２）処理を終了する。
【００９０】
図１１は、マスクパターン変更処理の詳細手順の例を示すフローチャートである。図９の例の手順のステップＳ１０６の処理が開始されると、図１１の例の手順の処理が開始される。
【００９１】
まず、調整処理部１６２０は、現在の合成画像及び当該合成画像に含まれるＱＲコードのマスクパターンを記憶部１８に記憶させて保持する（ステップＳ１０６０）。
【００９２】
次に、調整処理部１６２０は、現在のＱＲコードのマスクパターンをアルファベット順に１つ進めたマスクパターンを求める（ステップＳ１０６２）。ＱＲコードの規格では、上述のとおり、利用可能なマスクパターンとしてＡ〜Ｈの８種類が定義されている。よって、ステップＳ１０６２の結果は、現在のマスクパターンを表すアルファベットの次のアルファベットとなる。なお、現在のマスクパターンが「Ｈ」であれば、ステップＳ１０６２の結果を「Ａ」とする。
【００９３】
ステップＳ１０６２の結果のマスクパターンがステップＳ１０６０で保持したマスクパターンと同一であれば、調整処理部１６２０は、マスクパターンが一巡したと判定し（ステップＳ１０６４でＹＥＳ）、合成画像を、ステップＳ１０６０で保持した元の合成画像に戻す（ステップＳ１０７４）。そして、戻り値を「復号不可」に設定して（ステップＳ１０７６）、処理を終了する。ステップＳ１０６４でＹＥＳ判定されるのは、いずれのマスクパターンを用いても復号可能な合成画像が得られない場合であるため、戻り値は「復号不可」に設定される。
【００９４】
ステップＳ１０６２の結果のマスクパターンがステップＳ１０６０で保持したマスクパターンと同一でなければ、調整処理部１６２０は、マスクパターンが一巡していないと判定し（ステップＳ１０６４でＮＯ）、ステップＳ１０６２の結果のマスクパターンのＱＲコードを含む合成画像を生成する（ステップＳ１０６６）。ステップＳ１０６６で、調整処理部１６２０は、まず、ステップＳ１０６２の結果のマスクパターンのＱＲコードの生成を二次元符号生成部１６０に依頼する。この依頼を受けた二次元符号生成部１６０は、依頼されたマスクパターンを用いて、新たなＱＲコードを生成する。この新たなＱＲコードは、マスクパターンの他の条件（符号化対象の情報、型番、及び誤り訂正レベルなど）については元のＱＲコードと同様である。二次元符号生成部１６０は、この新たなＱＲコードを合成画像生成部１６２に渡し、合成画像生成部１６２は、この新たなＱＲコードを含む合成画像を生成する。なお、ステップＳ１０６６で生成される合成画像において、背景となるＱＲコードが新たなＱＲコードに置き換えられるだけで、対象画像の位置及び大きさは変更されない。
【００９５】
ステップＳ１０６６の後、復号処理部１６４により、ステップＳ１０６６で生成された合成画像の復号が行われる（ステップＳ１０６８）。
【００９６】
合成画像の復号に失敗すれば（ステップＳ１０７０でＮＯ）、ステップＳ１０６２以下の処理が繰り返される。合成画像の復号に成功すれば（ステップＳ１０７０でＹＥＳ）、戻り値は「復号可」に設定され（ステップＳ１０７２）、図１１の例の手順の処理は終了する。
【００９７】
図１２は、誤り訂正レベル変更処理の詳細手順の例を示すフローチャートである。図９の例の手順のステップＳ１１０の処理が開始されると、図１２の例の手順の処理が開始される。
【００９８】
まず、調整処理部１６２０は、現在の合成画像及び当該合成画像に含まれるＱＲコードの誤り訂正レベルを記憶部１８に記憶させて保持する（ステップＳ１１０２）。
【００９９】
次に、調整処理部１６２０は、誤り訂正レベルをＬ（７％）に設定したＱＲコードの生成を二次元符号生成部１６０に対して依頼する。この依頼を受けて、二次元符号生成部１６０は、誤り訂正レベルが「Ｌ」であり、誤り訂正レベルの他の条件は現在のＱＲコードと同様である新たなＱＲコードを生成して合成画像生成部１６２に渡す。合成画像生成部１６２は、合成画像における対象画像の位置及び大きさを変更せず、ＱＲコードを新たなＱＲコードに置き換えた合成画像を生成する（以上、ステップＳ１１０４）。なお、現在のＱＲコードの誤り訂正レベルがＬである場合、ステップＳ１１０４は省略してよい。
【０１００】
その後、復号処理部１６４により、合成画像の復号が行われる（ステップＳ１１０６）。
【０１０１】
合成画像の復号に成功すれば（ステップＳ１１０８でＹＥＳ）、戻り値が「復号可」に設定されて（ステップＳ１１１０）処理は終了する。
【０１０２】
合成画像の復号に失敗すれば（ステップＳ１１０８でＮＯ）、合成画像に含まれるＱＲコードの誤り訂正レベルが最高レベルであるＨ（３０％）に設定されているか否かが判定される（ステップＳ１１１２）。
【０１０３】
誤り訂正レベルがＨでなければ（ステップＳ１１１２でＮＯ）、調整処理部１６２０は、現在の誤り訂正レベルよりも一段階だけ高い誤り訂正レベルのＱＲコードを新たに二次元符号生成部１６０に生成させ、この新たなＱＲコードを含む合成画像を生成する（ステップＳ１１１８）。誤り訂正レベルは、前述したように、Ｌ，Ｍ，Ｑ，Ｈの順で高くなる。なお、ステップＳ１１１８における新たなＱＲコードの生成及び当該ＱＲコードを含む合成画像の生成は、ステップＳ１１０４を参照して説明した処理と同様の手順で行えばよい。ステップＳ１１１８で生成された合成画像に対して、復号処理（ステップＳ１１０６）及び復号処理の成否の判定（ステップＳ１１０８）が行われる。
【０１０４】
誤り訂正レベルがＨである場合（ステップＳ１１１２でＹＥＳ）、調整処理部１６２０は、合成画像を、ステップＳ１１０２で保持した元の合成画像に戻す（ステップＳ１１１４）。そして、戻り値を「復号不可」に設定して（ステップＳ１１１６）、処理を終了する。ステップＳ１１１２でＹＥＳ判定されるのは、ＱＲコードの誤り訂正レベルが最高のＨであっても合成画像の復号に失敗する場合であるため、戻り値は「復号不可」に設定される。
【０１０５】
以上、図１０〜図１２を参照し、ＱＲコード調整処理（図５のステップＳ１００，図９）で行われる３種類の処理の例を説明した。ＱＲコード調整処理において、これらの３種類の処理（ＱＲコード回転処理、マスクパターン変更処理、及び誤り訂正レベル変更処理）の実行の順番は、図９に例示する順番に限られない。これら３種類の処理は、どのような順番で実行してもよい。
【０１０６】
以上で説明した実施形態の処理の例では、ＱＲコードにおいてユーザが指定した位置に対象画像を配置した合成画像の復号に失敗すると（図５のステップＳ９２でＮＯ）、まず対象画像調整処理（図５のステップＳ９４，図７）を行い、対象画像調整処理によっても復号に成功する合成画像が得られなかった場合（図５のステップＳ９８でＮＯ）に、ＱＲコード調整処理（図５のステップＳ１００，図９）を行う。他の処理の例では、図５の例の手順において、対象画像調整処理（ステップＳ９４）とＱＲコード調整処理（ステップＳ１００）とを互いに入れ替えてもよい。
【０１０７】
また、以上で説明した実施形態の処理の例では、ＱＲコードの調整において、回転角度、マスクパターン、及び誤り訂正レベルの変更が行われる。他の処理の例では、さらに、ＱＲコードの型番を変更してもよい。
【０１０８】
図１３に、ＱＲコードの型番を変更する処理を含む場合の合成画像調整処理の手順の例を示す。図１３の例の手順の処理は、例えば、図４の例の手順のステップＳ９の処理が開始されたときに、図５の例の合成画像調整処理の代わりに実行される。図１３において、図５の例の手順と同様の処理ステップには図５と同様の符号を付し、その詳細な説明を省略する。
【０１０９】
図１３を参照し、まず、合成画像の復号処理（ステップＳ９０）が行われ、復号に成功すれば（ステップＳ９２でＹＥＳ）、戻り値に「復号可」が設定され（ステップＳ９６）て処理は終了する。
【０１１０】
復号に失敗すると（ステップＳ９２でＮＯ）、調整処理部１６２０は、現在の合成画像及び当該合成画像に含まれるＱＲコードの型番を記憶部１８に記憶させて保持する（ステップＳ９３）。
【０１１１】
次に、調整処理部１６２０は、対象画像調整処理（ステップＳ９４）を行う。ステップＳ９４では、図７を参照して上記で説明した処理を行えばよい。対象画像調整処理の戻り値が「復号可」であれば（ステップＳ９８でＹＥＳ）、ステップＳ１００以降の処理を行わずに終了し、「復号可」でなければ（ステップＳ９８でＮＯ）、ＱＲコード調整処理（ステップＳ１００）を行う。ステップＳ１００のＱＲコード調整処理では、図９〜図１２を参照して上記で説明したのと同様の処理を行えばよい。つまり、ここでは、回転角度、マスクパターン、及び誤り訂正レベルの変更処理が行われる。
【０１１２】
ＱＲコード調整処理の戻り値が「復号可」であれば（ステップＳ１３０でＹＥＳ）、ステップＳ１３２以降の処理を行わずに終了する。一方、ＱＲコード調整処理の戻り値が「復号可」でなければ（ステップＳ１３０でＮＯ）、合成画像に含まれるＱＲコードの型番が最大値であるか否かを判定する（ステップＳ１３２）。ＱＲコードの型番は、上述のとおり、規格により１〜４０まで定義されているので、ステップＳ１３２では、ＱＲコードの型番が４０であればＹＥＳ判定されてステップＳ１３４に進み、ＱＲコードの型番が４０未満であればＮＯ判定されてステップＳ１３６に進む。
【０１１３】
ステップＳ１３４で、調整処理部１６２０は合成画像を元に戻し、その後、処理を終了する。
【０１１４】
ステップＳ１３６では、調整処理部１６２０は、合成画像に含まれるＱＲコードの型番を１だけ増加させた型番のＱＲコードを二次元符号生成部１６０に新たに生成させ、この新たなＱＲコードを含む合成画像を生成する（ステップＳ１３６）。ステップＳ１３６で新たに生成されるＱＲコードにおいて、型番の他の条件（符号化対象の情報、回転角度、マスクパターン、及び誤り訂正レベルなど）は元のＱＲコードと同様である。また、ステップＳ１３６で生成される合成画像において、対象画像の位置及び大きさは、元の合成画像と同様であってよい。
【０１１５】
ステップＳ１３６で生成された、型番を１だけ増加させたＱＲコードを含む合成画像について、対象画像調整処理（ステップＳ９４）以下の処理が行われる。
【０１１６】
図１４に、合成画像調整処理の手順のさらに他の例を示す。ＱＲコードに含まれるコード語は、回転角度が０°又は１８０°の状態において縦長の形状を有し、回転角度が９０°又は２７０°の状態に置いて横長の形状を有する傾向がある。図１４の例の合成画像調整処理では、対象画像の縦横比に応じて、ＱＲコードの回転角度を設定する。図１４の例の手順の処理は、例えば、図４のステップＳ９が開始された時に開始される。
【０１１７】
図１４を参照し、まず合成画像の復号が行われる（ステップＳ９０）。
【０１１８】
復号に成功すれば（ステップＳ９２でＹＥＳ）、戻り値として「復号可」が設定されて（ステップＳ１５６）処理は終了する。
【０１１９】
復号に失敗した場合（ステップＳ９２でＮＯ）、調整処理部１６２０は、合成画像に含まれる対象画像の縦横比を求める（ステップＳ１４０）。そして、求めた縦横比に基づき、対象画像が縦長であるか横長であるかを判定する（ステップＳ１４２）。なお、縦横比が１：１である場合は、例えば、横長及び縦長のいずれか一方であるとみなすように予め設定しておけばよい。また、対象画像が縦長であるか横長であるかの判定には、対象画像の縦横比を用いず、対象画像の縦辺と横辺との差を取るなどの方法を採ってもよい。
【０１２０】
縦長であれば、ステップＳ１４２からステップＳ１４４に進み、調整処理部１６２０は、回転角度を０°に設定したＱＲコードを含む合成画像を生成する。ステップＳ１４４では、例えば、現在の合成画像に含まれるＱＲコードの回転角度を検出し、検出した角度に応じて、回転角度が０°でなければ０°になるまで当該ＱＲコードを回転させる。
【０１２１】
横長であれば、ステップＳ１４２からステップＳ１４６に進み、調整処理部１６２０は、回転角度を９０°に設定したＱＲコードを含む合成画像を生成する。ステップＳ１４６では、例えば、現在の合成画像に含まれるＱＲコードの回転角度を検出し、検出した角度に応じて、回転角度が９０°でなければ９０°になるまで当該ＱＲコードを回転させる。
【０１２２】
そして、ステップＳ１４４又はステップＳ１４６で生成された合成画像について、対象画像調整処理を行う（ステップＳ１４８）。この対象画像調整処理は、図７を参照して上記で説明した処理と同様の処理であってよい。
【０１２３】
ステップＳ１４８の対象画像調整処理の結果の戻り値が「復号可」であれば（ステップＳ１５０でＹＥＳ）、ステップＳ１５２以下の処理を行わずに終了する。
【０１２４】
戻り値が「復号可」でなければ（ステップＳ１５０でＮＯ）、調整処理部１６２０は、現在の合成画像に含まれるＱＲコードを＋１８０°回転させたＱＲコードを含む合成画像を生成する（ステップＳ１５２）。そして、ステップＳ１５２で生成した合成画像について、再び図７で例示するような対象画像調整処理を行う（ステップＳ１５４）。ステップＳ１５４の後、図１４の例の手順の処理は終了する。
【０１２５】
図１４の例の手順の処理によると、対象画像が縦長であれば、回転角度０°又は１８０°のＱＲコードを含む合成画像について対象画像調整処理が行われ、対象画像が横長であれば、回転角度９０°又は２７０°のＱＲコードを含む合成画像について対象画像調整処理が行われる。つまり、図１４の例では、ＱＲコード中のコード語が対象画像の形状（縦長又は横長）と共通の形状を有する可能性の高い回転角度のＱＲコードを用いて合成画像を生成し、対象画像調整処理を行う。
【０１２６】
以上で説明した各種の合成画像調整処理及びＱＲコード調整処理は、本発明の実施形態における処理の例に過ぎず、上述の他にも各種の変形例が考えられる。例えば、ＱＲコード調整処理（図９）において、ＱＲコード回転、マスクパターン変更、及び誤り訂正レベル変更処理のすべてを行う代わりに、１種類又は２種類だけを行ってもよい。また例えば、ＱＲコード調整処理において、前述の３種類の処理の他に、ＱＲコードの色を変更した場合の合成画像の復号の可否を判定する処理を行ってもよい。例えば、白黒のＱＲコードにおける黒色部分を黒以外の色で表したり、複数の異なる色で表したり、グラデーションを用いて表したりすることで、色を変更したＱＲコードを含む合成画像の復号の可否を判定する。
【０１２７】
また、図５の例の手順のように対象画像の位置及び大きさを固定してＱＲコードの回転角度、マスクパターン、及び誤り訂正レベルのそれぞれを変更する代わりに、例えば、ＱＲコードの型番、回転角度、マスクパターン、及び誤り訂正レベルなどの設定情報のいずれか１つの項目に着目し、着目した項目の値を変更したＱＲコードのそれぞれについて、対象画像調整処理（図７）を行ってもよい。あるいは、ＱＲコードの設定情報の複数の項目に着目し、これらの項目の値の組合せのそれぞれに対応するＱＲコードについて対象画像調整処理を行ってもよい。この例において、着目する１以上の項目は、管理者などが予め設定しておいてもよいし、ユーザによる指定を受け付けてもよい。また、着目した各項目の値を変更する順番についても、予め設定しておいてもよいし、ユーザの指定を受け付けてもよい。
【０１２８】
また、以上では、対象画像調整処理について、説明を簡単にするため、対象画像の形状を矩形として説明したが、他の形状の対象画像についても、基準となる座標を設定した上で図７の例の手順の処理を同様に実行してよい。また、対象画像の位置を表す座標系についても、図６の例と異なる設定の座標系を用いてもよい。例えば、座標系の原点をＱＲコードの中心に設定してもよい。
【０１２９】
以上では、ＱＲコードに１つの対象画像を合成する場合の例の処理を説明した。他の例では、ＱＲコードに複数の対象画像を合成してもよい。図１５は、複数の対象画像をＱＲコードに合成する場合に処理部１６が実行する処理の手順の例を示すフローチャートである。図１５の例の手順の処理は、例えば、１つの対象画像に関して以上で説明した図４の例の手順の処理を行い、復号に成功した合成画像が得られた後、当該合成画像を処理対象として行われる。なお、図１５において、図４と同様の処理ステップには図４と同様の符号を付し、その詳細な説明を省略する。
【０１３０】
図１５を参照し、合成画像生成部１６２は、復号可能な合成画像（ＱＲコード及び対象画像を含む）を取得する（ステップＳ４）。例えば、記憶部１８に記憶された合成画像のうち、ユーザ入力部１４を介してユーザが指定したものを記憶部１８から取得すればよい。
【０１３１】
また、合成画像生成部１６２は、追加で合成する対象の画像（以下、「追加の対象画像」と呼ぶ）を取得する（ステップＳ６）。追加の対象画像は、画像入力部１２を介して取得してもよいし、記憶部１８に記憶された画像の中からユーザが指定したものを取得してもよい。
【０１３２】
ステップＳ４及びステップＳ６は、いずれか一方を先に実行してもよいし、両方を並行して実行してもよい。
【０１３３】
ステップＳ４，Ｓ６の後、調整処理部１６２０は、合成画像中の対象画像と追加の対象画像との面積の合計が現在のＱＲコードの復元能力の範囲内であるか否かを判定する（ステップＳ１５）。ステップＳ１５の判定は、例えば、合成画像中の対象画像と追加の対象画像との面積の合計がＱＲコードの全体の面積において占める割合を求め、求めた割合が、現在の合成画像に含まれるＱＲコードの誤り訂正レベルが表す、復元可能な損傷部分の割合（Ｌ（７％），Ｍ（１５％），Ｑ（２５％），Ｈ（３０％））以下であるか否かを判定することで行う。
【０１３４】
復元能力の範囲外であれば（ステップＳ１５でＮＯ）、調整処理部１６２０は、合成画像に含まれるＱＲコードの型番に対して１だけ増加させた型番を有するＱＲコードを二次元符号生成部１６０に新たに生成させ、この新たなＱＲコードを含む合成画像を生成する（ステップＳ１７）。このとき生成される合成画像は、追加の対象画像を含まず、ステップＳ４で取得した合成画像にすでに含まれていた対象画像のみを含む。ステップＳ１７の後、ステップＳ１９に進む。
【０１３５】
復元能力の範囲内であれば（ステップＳ１５でＹＥＳ）、ステップＳ１７の処理を行わずにステップＳ１９に進む。
【０１３６】
ステップＳ１９では、合成画像生成部１６２は、現在の合成画像に対して、追加の対象画像をさらに合成した合成画像を生成する（ステップＳ１９）。追加の対象画像の配置位置は、ユーザ入力部１４を介してユーザからの指定を受け付けて決定すればよい。
【０１３７】
そして、ステップＳ１９で生成された合成画像に対して、合成画像調整処理を行う（ステップＳ２１）。ステップＳ２１の合成画像調整処理は、図５、図１３、及び図１４のいずれかの例の手順で行ってよい。ただし、ステップＳ２１の合成画像調整処理において対象画像調整処理（図７）を行う場合は、追加の対象画像について位置及び大きさの調整を行い、ステップＳ４で取得された合成画像にすでに含まれていた対象画像の位置及び大きさは変更しない。
【０１３８】
ステップＳ２１の後、処理部１６は、合成画像及びその復号の可否を出力し（ステップＳ１１）、処理を終了する。
【０１３９】
以上で説明した図４及び図１５に例示する処理部１６の処理において、ステップＳ７又はステップＳ１９で生成されて合成画像調整処理（ステップＳ９又はステップＳ２１）の対象となる合成画像は、ＱＲコードにおいてユーザが指定した位置に対象画像を配置した合成画像である。他の処理の例では、ステップＳ７又はステップＳ１９において、対象画像の配置位置に関してユーザの指定を受け付けることなく、予め設定された対象画像の基準の座標（例えば、右上、左上、右下、又は左下の座標）が、予め設定されたコード語の対応する角の座標の値となるように対象画像を配置してもよい。本例の場合、合成画像調整処理の一部として行なわれる対象画像調整処理において、ステップＳ９４２（基準の座標の移動）を省略してよい。
【０１４０】
なお、以上では、二次元符号の例としてＱＲコードを用いて各種の実施形態の例を説明した。本発明の実施形態の例の処理は、予め設定された単位量の情報を表す単位情報領域（ＱＲコードのコード語に相当する領域）を複数含み、誤り訂正機能を有する二次元符号であれば、ＱＲコードの他の二次元符号に適用してもよい。ＱＲコードの他の二次元符号についても、対象画像調整処理は、図７を参照して説明した処理においてＱＲコードのコード語を上述の単位情報領域に置き換えて同様に実行してよい。また、ＱＲコード調整処理に対応する処理として、処理対象の二次元符号の生成に用いられる設定情報を変更して新たな二次元符号を生成し、当該新たな二次元符号を含む合成画像の復号の可否を判定する処理を行えばよい。
【０１４１】
以上で説明した実施形態の画像処理装置１０は、典型的には、汎用のコンピュータにて上述の画像処理装置の各部の機能又は処理内容を記述したプログラムを実行することにより実現される。コンピュータは、例えば、ハードウエアとして、図１６に示すように、ＣＰＵ（中央演算装置）６０、メモリ（一次記憶）６２、各種Ｉ／Ｏ（入出力）インタフェース６４などがバス６６を介して接続された回路構成を有する。また、そのバス６６に対し、例えばＩ／Ｏインタフェース６４経由で、キーボードやマウスなどの入力装置６８、及び、ＣＲＴ（Cathode Ray Tube）や液晶ディスプレイなどの表示装置７０が接続される。また、バス６６には、Ｉ／Ｏインタフェース６４を介して、ＨＤＤ（ハードディスクドライブ）７２や、ＣＤ、ＤＶＤ、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体を読み取るためのディスクドライブ７４が接続される。このようなドライブ７２，７４は、メモリに対する外部記憶装置として機能する。実施形態の処理内容が記述されたプログラムがＣＤやＤＶＤなどの記録媒体を経由して、又はネットワーク経由で、ＨＤＤ７２などの固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがメモリ６２に読み出されＣＰＵ６０により実行されることにより、上述の各種の実施形態の処理が実現される。
【０１４２】
なお、以上では、画像処理装置１０を１台のコンピュータにより実現する例の実施形態を説明したが、画像処理装置１０の上述の例の各種の機能を複数のコンピュータに分散させて実現してもよい。
【符号の説明】
【０１４３】
１０  画像処理装置、１２  画像入力部、１４  ユーザ入力部、１６  処理部、１８  記憶部、２０  出力部、６０  ＣＰＵ、６２  メモリ、６４  Ｉ／Ｏインタフェース、６６  バス、６８  入力装置、７０  表示装置、７２  ＨＤＤ、７４  ディスクドライブ、１６０  二次元符号生成部、１６２  合成画像生成部、１６４  復号処理部、１６２０  調整処理部。
【図１】
2011039878.tif 000003
【図２】
2011039878.tif 000004
【図３】
2011039878.tif 000005
【図４】
2011039878.tif 000006
【図５】
2011039878.tif 000007
【図６】
2011039878.tif 000008
【図７】
2011039878.tif 000009
【図８Ａ】
2011039878.tif 000010
【図８Ｂ】
2011039878.tif 000011
【図８Ｃ】
2011039878.tif 000012
【図８Ｄ】
2011039878.tif 000013
【図９】
2011039878.tif 000014
【図１０】
2011039878.tif 000015
【図１１】
2011039878.tif 000016
【図１２】
2011039878.tif 000017
【図１３】
2011039878.tif 000018
【図１４】
2011039878.tif 000019
【図１５】
2011039878.tif 000020
【図１６】
2011039878.tif 000021