(57)【特許請求の範囲】
【請求項１】
２次元バーコードの形状に依存しない画像を入力する画像入力手段と、
前記画像入力手段により入力された画像のサイズ、色、角度及び位置を含む条件を設定する設定手段と、
前記設定手段によって設定された条件の表示態様により前記画像を前記２次元バーコードに埋め込んだ場合に、誤り訂正符号を用いて前記２次元バーコードの可読性を判定する判定手段と、
前記判定手段による判定の結果、前記２次元バーコードの可読性が所定の条件を満たす場合に、前記設定手段によって設定された条件の表示態様を合成対象として決定する決定手段と、
前記決定手段によって決定された表示態様で前記画像と前記２次元バーコードとを合成する合成手段とを有し、
前記判定手段による判定の結果、前記２次元バーコードの可読性が前記所定の条件を満たさない場合に、前記設定手段は、前記設定した条件を変更して再設定することを特徴とする画像処理装置。
【請求項２】
前記判定手段による判定の結果、前記２次元バーコードの可読性が前記所定の条件を満たさない場合に、前記設定手段は、前記判定手段による過去の判定結果を参照しながら前記画像のサイズ、色、角度及び位置を含む条件を変更して再設定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記設定手段は、前記決定手段により所定数の表示態様を決定するまで前記画像のサイズ、色、角度及び位置を含む条件を設定し、
前記合成手段は、前記決定手段により決定された所定数の表示態様の中からユーザにより選択された表示態様の画像と前記２次元バーコードとを合成することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記判定手段は、さらに、ユーザにより指定された条件に基づいて前記画像の配置の適切さを判定し、
前記決定手段は、前記２次元バーコードの可読性及び前記画像の配置の適切さが所定の条件を満たす場合に、前記設定手段によって設定された条件の表示態様を合成対象として決定することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
２次元バーコードの形状に依存しない画像を入力して前記２次元バーコードと合成する画像処理装置が実行する画像処理方法であって、
設定手段が、前記入力された画像のサイズ、色、角度及び位置を含む条件を設定する設定工程と、
前記設定工程において設定された条件の表示態様により前記画像を前記２次元バーコードに埋め込んだ場合に、判定手段が、誤り訂正符号を用いて前記２次元バーコードの可読性を判定する判定工程と、
前記判定工程における判定の結果、前記２次元バーコードの可読性が所定の条件を満たす場合に、決定手段が、前記設定工程において設定された条件の表示態様を合成対象として決定する決定工程と、
合成手段が、前記決定工程において決定した表示態様で前記画像と前記２次元バーコードとを合成する合成工程とを有し、
前記判定工程における判定の結果、前記２次元バーコードの可読性が前記所定の条件を満たさない場合に、前記設定工程においては、前記設定手段が前記設定した条件を変更して再設定することを特徴とする画像処理方法。
【請求項６】
前記判定工程における判定の結果、前記２次元バーコードの可読性が前記所定の条件を満たさない場合に、前記設定工程においては、前記設定手段が前記判定工程における過去の判定結果を参照しながら前記画像のサイズ、色、角度及び位置を含む条件を変更して再設定することを特徴とする請求項５に記載の画像処理方法。
【請求項７】
前記設定工程においては、前記設定手段が前記決定工程において所定数の表示態様を決定するまで前記画像のサイズ、色、角度及び位置を含む条件を設定し、
前記合成工程においては、前記合成手段が前記決定工程において決定された所定数の表示態様の中からユーザにより選択された表示態様の画像と前記２次元バーコードとを合成することを特徴とする請求項５に記載の画像処理方法。
【請求項８】
前記判定工程においては、前記判定手段が、さらに、ユーザにより指定された条件に基づいて前記画像の配置の適切さを判定し、
前記決定工程においては、前記決定手段が、前記２次元バーコードの可読性及び前記画像の配置の適切さが所定の条件を満たす場合に、前記設定工程において設定された条件の表示態様を合成対象として決定することを特徴とする請求項７に記載の画像処理方法。
【請求項９】
請求項５〜８の何れか１項に記載の画像処理方法の各工程をコンピュータに実行させることを特徴とするプログラム。
【請求項１０】
請求項９に記載のプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置、画像処理方法、プログラム及び記録媒体に関し、特に、イラスト等の画像が含まれた２次元バーコードを生成するために用いて好適な技術に関する。
【背景技術】
【０００２】
近年、インターネットを通じて情報を提供するサービスが普及しており、情報を提供する手段の１つとして２次元バーコードが多く用いられている。２次元バーコードは、１次元バーコードよりも多くの情報をコード化することができ、携帯電話等により読み取ることができる。
【０００３】
一方、２次元バーコード単体からは、どのような情報が含まれているかを判別することができないため、指定されたロゴやイラストを２次元バーコードの中の指定された位置に挿入した２次元バーコードを生成するサービスも普及してきている。このサービスによれば、２次元バーコードの中央部など、予め定められた位置にロゴやイラストを挿入しているため、場合によっては２次元バーコードを十分に読み取ることができない可能性もあり、可読性については不十分である。
【０００４】
そこで、バーコードの可読性を向上させるために、２次元バーコードとロゴやデザインとの画像合成を行うのではなく、イラストの部分も２次元バーコードの信号として認識するようにデザインしてイラスト入り２次元バーコードを生成するサービスも行われている。また、２次元バーコードの一部にバーコードとして認識可能な表示文字または表示マークを付すことにより、ユーザに対して、実際に２次元バーコードを端末装置に読み取らせてみようという意欲を向上させる技術も開示されている（例えば、特許文献１参照）。
【０００５】
【特許文献１】特開２００６−３１６８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、前述したイラストの部分も２次元バーコードの信号として認識するようにデザインしてイラスト入り２次元バーコードを生成するサービスにおいては、イラストの位置、サイズ、色、角度などを試行錯誤的に調整する必要があるとともに、２次元バーコードの信号として認識するようにしなければならない。したがって、特に、複数のイラスト等の画像が挿入された２次元バーコードを生成しようとすると、処理が複雑になってしまい、調整するためのコストや手間が多くなるという問題点がある。
【０００７】
本発明は前述の問題点に鑑み、２次元バーコードに画像を簡単に挿入できるとともに、十分な可読性を確保できるようにすることを目的としている。
【課題を解決するための手段】
【０００８】
本発明の画像処理装置は、２次元バーコードの形状に依存しない画像を入力する画像入力手段と、前記画像入力手段により入力された画像のサイズ、色、角度及び位置を含む条件を設定する設定手段と、前記設定手段によって設定された条件の表示態様により前記画像を前記２次元バーコードに埋め込んだ場合に、誤り訂正符号を用いて前記２次元バーコードの可読性を判定する判定手段と、前記判定手段による判定の結果、前記２次元バーコードの可読性が所定の条件を満たす場合に、前記設定手段によって設定された条件の表示態様を合成対象として決定する決定手段と、前記決定手段によって決定された表示態様で前記画像と前記２次元バーコードとを合成する合成手段とを有し、前記判定手段による判定の結果、前記２次元バーコードの可読性が前記所定の条件を満たさない場合に、前記設定手段は、前記設定した条件を変更して再設定することを特徴とする。
【０００９】
本発明の画像処理方法は、２次元バーコードの形状に依存しない画像を入力して前記２次元バーコードと合成する画像処理装置が実行する画像処理方法であって、設定手段が、前記入力された画像のサイズ、色、角度及び位置を含む条件を設定する設定工程と、前記設定工程において設定された条件の表示態様により前記画像を前記２次元バーコードに埋め込んだ場合に、判定手段が、誤り訂正符号を用いて前記２次元バーコードの可読性を判定する判定工程と、前記判定工程における判定の結果、前記２次元バーコードの可読性が所定の条件を満たす場合に、決定手段が、前記設定工程において設定された条件の表示態様を合成対象として決定する決定工程と、合成手段が、前記決定工程において決定した表示態様で前記画像と前記２次元バーコードとを合成する合成工程とを有し、前記判定工程における判定の結果、前記２次元バーコードの可読性が前記所定の条件を満たさない場合に、前記設定工程においては、前記設定手段が前記設定した条件を変更して再設定することを特徴とする。
【００１０】
本発明のプログラムは、前記の画像処理方法の各工程をコンピュータに実行させることを特徴とする。
【００１１】
本発明の記録媒体は、前記のプログラムを記録したことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、２次元バーコードに挿入する画像の表示態様をデコーダによる可読性に基づいて決定するようにしたので、２次元バーコードに画像を簡単に挿入できるとともに、十分な可読性を確保することができる。
【発明を実施するための最良の形態】
【００１３】
（第１の実施形態）
以下、本発明の実施形態について図面を参照しながら説明する。
図１は、本実施形態における画像処理装置１００の機能構成例を示すブロック図である。
図１において、画像入力部１０１は、２次元バーコードに埋め込む画像を入力するためのものである。埋め込む画像として具体的には、ロゴ、イラスト、写真、動画像などである。なお、埋め込む画像は、図示しない外部装置から送られたものでもよく、メモリ１０２に予め記憶された画像であってもよい。
【００１４】
バーコード生成部１０３は、例えば、ＱＲコード（登録商標）などの２次元バーコードを生成するためのものである。例えば、メールアドレスや電話番号といったデータがバーコード生成部１０３に入力されると、入力されたデータを２次元バーコードに符号化する。なお、本実施形態においては、画像処理装置１００で２次元バーコード（画像埋め込み前のもの）を生成する構成であるが、他の装置で生成された２次元バーコードを入力する構成であってもよい。
【００１５】
可読判定部１０４は、２次元バーコードに埋め込む画像の位置等をランダムに設定し、設定した位置に画像を埋め込んだ場合にデコーダ１０５でエラーが生じるか否かを判定するためのものである。そして、エラーが生じない画像の位置等を決定する。
【００１６】
本実施形態では、１つのデコーダ１０５を用いているが、ロバスト性を向上させるために、複数のデコーダを用いてもよい。複数のデコーダを用いる場合には、エラーの集計結果は、例えば、複数の各デコーダの平均値を用いるようにする。
【００１７】
画像合成部１０６は、可読判定部１０４による判定結果をもとに埋め込む位置等が決定された画像を２次元バーコードに埋め込むためのものである。
【００１８】
バーコード出力部１０７は、イラスト等の画像が埋め込まれた２次元バーコードを所定の画像に埋め込んで出力するためのものである。なお、画像が埋め込まれた２次元バーコードのみを出力し、２次元バーコードを所定の画像に埋め込む処理を他の装置で行うような構成であってもよい。
【００１９】
次に、イラスト等の画像を２次元バーコードに埋め込むための処理手順について説明する。図３は、本実施形態における２次元バーコードに画像を埋め込む処理手順の一例を示すフローチャートである。
【００２０】
まず、ステップＳ１１において、画像入力部１０１は、メモリ１０２から埋め込む画像を読み出して可読判定部１０４に送る。また、バーコード生成部１０３は、入力されたデータを２次元バーコードに符号化して可読判定部１０４に送る。具体的には、ユーザによる所望の画像を選択する操作に応じて、図示しない操作部から入力信号が画像入力部１０１に入力され、入力信号に基づいて埋め込む画像をメモリ１０２から読み出す。
【００２１】
次に、ステップＳ１２において、可読判定部１０４は、２次元バーコードに画像を埋め込む位置等の表示態様の初期設定を行う。ここで、可読判定部１０４の詳細な構成について説明する。
【００２２】
図２は、本実施形態における可読判定部１０４の詳細な構成例を示すブロック図である。
画像を埋め込む位置等を初期設定する場合は、図２に示すように、パラメータ設定部２０８で初期設定値を算出し、サイズ設定部２０１、色設定部２０２、角度設定部２３、及び位置設定部２０４がそれぞれ、パラメータ設定部２０８で算出されたサイズ、色、角度、及び位置の初期設定値を設定し、画像処理部２０５に送る。この時、埋め込む画像が複数ある場合は、全ての画像のサイズ、色、角度、及び位置の初期設定値を設定する。
【００２３】
埋め込む画像が、表示態様が変化する動画像（例えば、ＧＩＦ形式のアニメーション）である場合は、全てのコマにおける全ての画像のサイズ、色、角度、及び位置の初期設定値を設定する。本実施形態では、静止画像も動画像も１枚以上埋め込むことが可能であり、１枚以上の静止画像と１枚以上の動画像とを組み合わせて埋め込むことも可能である。
【００２４】
また、パラメータ設定部２０８は、画像の色だけではなく、２次元バーコードの色及び背景の色（単一色やグラデーションなど）の初期設定値も算出し、色設定部２０２は、２次元バーコードの色及び背景の色の初期設定値も設定する。
【００２５】
次に、ステップＳ１３において、画像処理部２０５は、サイズ設定部２０１、色設定部２０２、角度設定部２３、及び位置設定部２０４で設定された設定値をもとに埋め込む画像を変形し、変形した画像を入力された２次元バーコードに埋め込んで、確認用２次元バーコードを生成する。そして、可読性を確認するために、生成した確認用２次元バーコードをデコーダ１０５へ送る。この時、設定された２次元バーコードの色及び背景の色が、バーコード生成部１０３で生成された２次元バーコードと異なる場合は、設定した色の２次元バーコードをそのままオリジナルの２次元バーコードに埋め込む。
【００２６】
次に、ステップＳ１４において、デコーダ１０５は、確認用２次元バーコードをデコードし、エラー集計部２０６は、デコードの可否及エラー数をカウントする。ここで、デコーダ１０５は、２次元バーコードの誤り訂正符号を用いてデコードする。その結果、デコードが可能であり、かつエラー数が０であるか否かを判定する。なお、埋め込む画像が複数ある場合は、各画像が重なっていないか否かも判定する。
【００２７】
この判定の結果、デコードが不可能、もしくはエラーがある場合は、ステップＳ１５に進む。そして、ステップＳ１５において、エラー集計部２０６は、エラーの集計結果を設定指示部２０７に送り、再設定指示部２０７は、パラメータ設定部２０８に対して設定値を変更するように指示する。そして、サイズ設定部２０１、色設定部２０２、角度設定部２３、及び位置設定部２０４は、パラメータ設定部２０８で算出された設定値に変更して、再度、画像処理部２０５に送り、ステップＳ１３に戻る。
【００２８】
ここで、パラメータ設定部２０８でどのように各設定値を変更するかについては、組み合わせ最適化アルゴリズムを用いて計算する。具体的には、組み合わせ最適化アルゴリズムの一種である反復山登り法（Iterated Hill-Climbing）を用いる。また、埋め込む画像が複数ある場合や、動画像を埋め込む場合は、最急降下法（Steepest Descent Method）や焼き鈍し法（Simulated Annealing）、遺伝的アルゴリズム（Genetic Algorithm）などを用いてもよい。
【００２９】
なお、組み合わせ最適化アルゴリズムを用いた場合、計算結果がユーザの意図と大きく異なる表示態様となる可能性がある。そこで、本実施形態では、ユーザが各設定値の閾値を設定することができるようにしている。具体的には、ユーザの操作により図示しない操作部から各設定値の閾値の情報がパラメータ設定部２０８に入力され、その閾値の範囲内で組み合わせ最適化アルゴリズムを用いて計算する。
【００３０】
これにより、パラメータ設定部２０８では、組み合わせアルゴリズムによって変更すべき各設定値を計算し、計算した設定値の情報をサイズ設定部２０１、色設定部２０２、角度設定部２３、及び位置設定部２０４に送る。このように組み合わせ最適化アルゴリズムによって、ステップＳ１３〜Ｓ１５の処理が繰り返して行われ、最適な設定値になるまでこの処理を繰り返す。なお、遺伝的アルゴリズムなど１度に解候補（各設定値の組み合わせ）を複数生成するアルゴリズムを用いる場合は、解候補を１度に複数パターン生成し、それらの解候補の全てのパターンについてステップＳ１３〜Ｓ１５の処理を繰り返す。場合によってはその中で良好な結果が得られた複数の解候補をもとに、新しい解候補の生成を行い、最適な設定値になるまでこの処理を繰り返す。
【００３１】
一方、ステップＳ１４の判定の結果、デコードが可能であり、かつエラー数が０である場合（さらに画像が重なっていない場合）は、ステップＳ１６に進む。そして、ステップＳ１６において、そのときの設定値の画像及び２次元バーコードを画像合成部１０６に送り、画像合成部１０６は、２次元バーコードに画像を埋め込み、バーコード出力部１０７に出力して処理を終了する。
【００３２】
図４は、本実施形態の画像合成部１０６において合成されたイラスト入り２次元バーコードの一例を示す図である。図４に示すように、組み合わせ最適化アルゴリズムを用いて計算した結果から、埋め込む画像のサイズや位置などを決定し、デコード時にエラーが発生しない位置へ画像が埋め込まれる。
【００３３】
また、動画像入り２次元バーコードを作成する場合は、以下の３通りのパターンで作成することができる。
（１）入力される動画像が定位置に固定され、コマ毎に画像が変化するような動画像の場合、１枚以上の動画像を入力し、２次元バーコード内の算出された定位置に埋め込む。
（２）１枚以上の静止画像を入力し、同一の静止画像を用いて２次元バーコード内で移動させ、動画像入りの２次元バーコードとして出力する。
（３）１枚以上の動画像を入力し、同一の動画像を用いてコマごとに２次元バーコード内で移動させる。
【００３４】
したがって、出力される２次元バーコードは、以下の（ａ）〜（ｃ）の形態で出力される。
（ａ）１枚以上の静止画像、動画像、または静止画像及び動画像の組み合わせで埋め込まれた２次元バーコード
（ｂ）静止画像のみを含み、静止画像の位置を時系列的に変化させない静止画像２次元バーコード
（ｃ）１枚以上の動画像を含む、及び、静止画像または動画像の位置を時系列的に変化させた動画像２次元バーコード
【００３５】
図５は、本実施形態において、２次元バーコードに１つの画像を埋め込むことによるエラー数の統計の一例を示す図である。ｘ軸及びｙ軸は、２次元バーコード内の位置を示しており、ｚ軸は、エラーの数を示している。
【００３６】
前述したように、デコーダ１０５では、２次元バーコードの誤り訂正符号を用いてデコードを行っており、デコードを試みた結果、誤り訂正符号によってエラーが訂正可能である場合は、画像を埋め込んだ場合であってもエラーは０になる。図５に示す例においては、２次元バーコード内の左上部分に画像を挿入することによって、２次元バーコードの可読性を確保することができる。
【００３７】
以上のように本実施形態においては、デコーダ１０５で２次元バーコードの誤り訂正符号を用いてデコードを行った結果、エラーが０となるように、組み合わせ最適化アルゴリズムを用いて埋め込む画像のサイズ、色（２次元バーコードの色及び背景の色も含む）、角度及び位置を決定するようにした。これにより、２次元バーコードに画像を簡単に挿入できるとともに、十分な可読性を確保できる。また、２次元バーコードに複数の画像を埋め込む場合や動画像を埋め込む場合であっても、組み合わせ最適化アルゴリズムによって簡単に画像の表示態様を決定することができる。
【００３８】
（第２の実施形態）
第１の実施形態においては、デコードが可能であり、かつエラー数が０である場合に埋め込む画像の表示態様を決定したが、例えば、エラー数が０であるが埋め込む画像が小さい場合、エラー数が数回あるが埋め込む画像が大きい場合の方がユーザにとって好ましい場合もある。そこで本実施形態では、対話型進化計算法を用いて複数の表示態様の候補からユーザに選択させ、選択された表示態様の２次元バーコードを生成する例について説明する。なお、本実施形態の画像処理装置の機能構成例は第１の実施形態と同様であるため説明は省略する。
【００３９】
図６は、本実施形態において、ユーザが望む表示態様で２次元バーコードに画像を埋め込む処理手順の一例を示すフローチャートである。
まず、ステップＳ６１において、画像入力部１０１は、メモリ１０２から埋め込む画像を読み出して可読判定部１０４に送る。また、バーコード生成部１０３は、入力されたデータを２次元バーコードに符号化して可読判定部１０４に送る。具体的には、ユーザによる所望の画像を選択する操作に応じて、図示しない操作部から入力信号が画像入力部１０１に入力され、入力信号に基づいて埋め込む画像をメモリ１０２から読み出す。
【００４０】
次に、ステップＳ６２において、可読判定部１０４は、埋め込む画像の表示態様の候補をｎ個生成する。なお、表示態様の候補を生成する手順については図７を参照しながら後述する。次に、ステップＳ６３において、ステップＳ６２で生成したｎ個の表示態様の候補を図示しない表示パネル等に表示してユーザに提示する。この時、ユーザに対しては、「表示態様を決定する」または「この中で最も好ましい表示態様を選択する」のどちらかを選択させるようにする。
【００４１】
次に、ステップＳ６４において、ユーザから「表示態様を決定する」が選択されたか否かを判断する。この判断の結果、「表示態様を決定する」が選択された場合は、ステップＳ６７に進み、画像合成部１０６は、選択された表示態様で画像を埋め込んだ２次元バーコードを生成し、バーコード出力部１０７に出力して処理を終了する。
【００４２】
一方、ステップＳ６４の判断の結果、「この中で最も好ましい表示態様を選択する」が選択された場合は、ステップＳ６５に進み、ユーザによって最も好ましいと選択された表示態様の候補を抽出する。そして、ステップＳ６６において、選択された好ましい候補をもとに、新たに表示態様の候補をｎ個生成し、ステップＳ６３に戻る。なお、ステップＳ６６における新たな表示態様の候補を生成する詳細な手順については図８を参照しながら後述する。
【００４３】
図７は、図６のステップＳ６２における表示態様の候補を生成する手順の一例を示すフローチャートである。なお、図７のステップＳ７１〜Ｓ７４の処理内容はそれぞれ、図３のステップＳ１２〜Ｓ１５の処理内容と同様であるため、説明は省略する。
【００４４】
ステップＳ７３の判断の結果、デコードが可能であり、かつエラー数が０である場合は、ステップＳ７５に進み、画像処理部２０５は、ユーザに提示する表示態様の候補としてリストアップする。次に、ステップＳ７６において、表示態様の候補をｎ個抽出したか否かを判断する。この判断の結果、ｎ個抽出していない場合は、次の候補を抽出するためにステップＳ７１に戻る。一方、ステップＳ７６の判断の結果、ｎ個抽出した場合は、処理を終了する。
【００４５】
本実施形態では、ユーザの要望に沿うように表示態様を決定するため、ｎ個の表示態様の候補としてはなるべくサイズ、色、角度、及び位置がそれぞれ異なるような組み合わせにする。そこでステップＳ７１で初期設定を行う際には、すでにリストアップされた表示態様の候補とは大きく異なるようにする。
【００４６】
図８は、図６のステップＳ６６における表示態様の候補を生成する手順の一例を示すフローチャートである。
まず、ステップＳ８１において、図６のステップＳ６５でユーザによって選択された最も好ましい表示態様の候補をもとに次に提示する候補の設定を行う。具体的には、ユーザによって候補が選択されることにより、どのパラメータ（サイズ、色、角度、位置）をユーザが重視しているかを知ることができる。そこで本実施形態では、以下の数１に示す式を用いて、目的関数ｆ（ｘ）が大きくなるように候補を抽出する。
【００４７】
【数１】
0005071853.tif 000002
【００４８】
ここで、ｘは画像が挿入された候補を示し、Ｐ（ｘ）は、デコードの成功度合いを示す関数を示している。また、Ｑ（ｘ）は、画像の配置の適切さやユーザの要望を満たす度合いを示している。また、Ｐ（ｘ）は、以下の数２に示す式により表現される。
【００４９】
【数２】
0005071853.tif 000003
【００５０】
ここで、ｐk（ｘ）は、デコーダ１０５が複数ある場合に、ｋ番目のデコーダによってデコードが成功したか否かを表す関数である。ｋ番目のデコーダがデコードの成否のみを返す場合、デコードに成功するとｐk（ｘ）＝１となり、デコードに失敗するとｐk（ｘ）＝０となる。また、ｋ番目のデコーダがデコードに失敗した時にその度合いを返す場合には、ｐk（ｘ）は０〜１までの実数値となる。また、ｗk(p)は、各デコーダの重要度を調整する重みを示している。
【００５１】
一方、Ｑ（ｘ）は、以下の数３に示す式により表現される。
【００５２】
【数３】
0005071853.tif 000004
【００５３】
ここで、ｑl（ｘ）は、画像の配置具合の良好性やユーザによる条件の充足度を表す関数である。本実施形態では、ｑ1（ｘ）〜ｑ4（ｘ）を設定している。ｑ1（ｘ）は、複数の画像を挿入する場合に、画像同士が重なり合う度合いを示し、ｑ2（ｘ）は、２次元バーコードの内部に画像が配置されている度合いを示している。また、ｑ3（ｘ）は、画像の拡大率の適切さを示し、ｑ4（ｘ）は、各画像の拡大率の統一性を表す関数を示している。また、ｗl(q)は、各要素の重要度を調整する重みを示している。
【００５４】
さらに、ｑ1（ｘ）は、以下の数４に示す式により表現される。
【００５５】
【数４】
0005071853.tif 000005
【００５６】
ここで、Ｎiは挿入する画像の総数を示し、Ｓiは画像ｉの面積を示している。さらに、ＳiOは、画像ｉが他の画像によって覆われる領域の面積を示している。
【００５７】
また、ｑ2（ｘ）は、以下の数５に示す式により表現される。
【００５８】
【数５】
0005071853.tif 000006
【００５９】
ここで、ＳiBは、画像ｉにおいて、２次元バーコード領域からはみ出ている領域の面積を示している。
【００６０】
また、ｑ3（ｘ）は、以下の数６に示す式により表現される。
【００６１】
【数６】
0005071853.tif 000007
【００６２】
ここで、αは、０．３前後に設定される定数であり、ＳQRは２次元バーコードの面積を示している。
【００６３】
そして、ｑ4（ｘ）は、以下の数７に示す式により表現される。
【００６４】
【数７】
0005071853.tif 000008
【００６５】
scalemin及びscalemaxはそれぞれ、最も小さい拡大率及び最も大きい拡大率を示している。なお、本実施形態では、ｑ1（ｘ）〜ｑ4（ｘ）を設定して計算を行っているが、それ以外にｑ1（ｘ）〜ｑ4（ｘ）と同様に、画像の位置関係など、ユーザの要望や配置の適切性を関数として設定することができる。
【００６６】
以上のようにＱ（ｘ）については、ユーザが重視しているパラメータの比重が高く設定され、図６のステップＳ６３〜Ｓ６６の処理が繰り返されることにより、各パラメータの比重がユーザの要望に沿うようになり、Ｑ（ｘ）は大きい値となる。また、画像が重なる場合など一般的に好ましくない表示態様ではＱ（ｘ）を小さくすることができる。このように目的関数ｆ（ｘ）が基準値以上となるものを最終的に候補として抽出する。
【００６７】
すなわち、ステップＳ８１において、パラメータ設定部２０８は、Ｑ（ｘ）が大きくなるように各パラメータの値を割り当てて設定を行い、ｘを決定する。
【００６８】
次に、ステップＳ８２において、図３のステップＳ１３の手順と同様に、確認用２次元バーコードをデコーダ１０５へ送る。そして、ステップＳ８４において、デコーダ１０５は、確認用２次元バーコードをデコードし、エラー集計部２０６は、デコードの可否及エラー数をカウントする。ここで、デコーダ１０５では、２次元バーコードの誤り訂正符号を用いてデコードする。この結果、目的関数ｆ（ｘ）が基準値以上であるか否かを判断する。なお、基準値の設定については、図６のステップＳ６３〜Ｓ６６の処理を繰り返す度に基準値を変更する。
【００６９】
この判断の結果、目的関数ｆ（ｘ）が基準値未満である場合は、ステップＳ８４に進み、図３のステップＳ１５の手順と同様に、パラメータの設定値を変更する。なお、本実施形態では、ｆ（ｘ）が大きくなるように最適化アルゴリズムを用いて計算する。
【００７０】
一方、ステップＳ７３の判断の結果、目的関数ｆ（ｘ）が基準値以上である場合は、ステップＳ７５に進み、画像処理部２０５は、ユーザに提示する表示態様の候補としてリストアップする。次に、ステップＳ８６において、表示態様の候補をｎ個抽出したか否かを判断する。この判断の結果、ｎ個抽出していない場合は、次の候補を抽出するためにステップＳ７１に戻る。一方、ステップＳ８６の判断の結果、ｎ個抽出した場合は、処理を終了する。
【００７１】
以上のように本実施形態では、対話型進化計算法を用いて目的関数ｆ（ｘ）を最大化することにより、ユーザにとって好ましい表示態様で２次元バーコードに画像を埋め込むことができる。
【００７２】
（本発明に係る他の実施形態）
前述した本発明の実施形態における画像処理装置を構成する各手段、並びに画像処理方法の各工程は、コンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【００７３】
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【００７４】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図３、６〜８に示すフローチャートに対応したプログラム）を、システムまたは装置に直接、または遠隔から供給する場合も含む。そして、そのシステムまたは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【００７５】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００７６】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【００７７】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスクなどがある。さらに、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ）などもある。
【００７８】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する方法がある。そして、前記ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【００７９】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００８０】
また、その他の方法として、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記録媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００８１】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００８２】
さらに、その他の方法として、まず記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。そして、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００８３】
【図１】本発明の第１の実施形態における画像処理装置の機能構成例を示すブロック図である。
【図２】本発明の第１の実施形態における可読判定部の詳細な機能構成例を示すブロック図である。
【図３】本発明の第１の実施形態における２次元バーコードに画像を埋め込む処理手順の一例を示すフローチャートである。
【図４】本発明の第１の実施形態の画像合成部において合成されたイラスト入り２次元バーコードの一例を示す図である。
【図５】本発明の第１の実施形態において、２次元バーコードに画像を埋め込むことによるエラー数の統計の一例を示す図である。
【図６】本発明の第２の実施形態において、ユーザが望む表示態様で２次元バーコードに画像を埋め込む処理手順の一例を示すフローチャートである。
【図７】図６のステップＳ６２における表示態様の候補を生成する手順の一例を示すフローチャートである。
【図８】図６のステップＳ６６における表示態様の候補を生成する手順の一例を示すフローチャートである。
【符号の説明】
【００８４】
１００  画像処理装置
１０１  画像入力部
１０２  メモリ
１０３  バーコード生成部
１０４  可読判定部
１０５  デコーダ
１０６  画像合成部
１０７  バーコード出力部
２０１  サイズ設定部
２０２  色設定部
２０３  角度設定部
２０４  位置設定部
２０５  画像処理部
２０６  エラー集計部
２０７  再設定指示部
２０８  パラメータ設定部
【図１】
0005071853.tif 000009
【図２】
0005071853.tif 000010
【図３】
0005071853.tif 000011
【図４】
0005071853.tif 000012
【図５】
0005071853.tif 000013
【図６】
0005071853.tif 000014
【図７】
0005071853.tif 000015
【図８】
0005071853.tif 000016