(57)【要約】【課題】二次元コードに埋め込む画像の配置位置及び配置サイズを指定して、二次元コードを作成する。【解決手段】二次元コードに格納される情報及び当該二次元コードに埋め込まれる画像データを取得する第１の処理と、前記取得した情報を符号化して、二次元コードを作成する第２の処理と、前記取得した画像データの配置位置及び配置サイズを調整する第３の処理と、前記調整した配置位置及び配置サイズに従って、前記取得した画像データを、前記作成した二次元コードに仮で配置する第４の処理と、前記画像データが仮で配置された二次元コードの誤り率を算出する第５の処理と、前記誤り率が閾値以下となるまで、第３から第５の処理を繰り返す第６の処理と、前記算出した誤り率を参照して、前記画像データの配置位置及び配置サイズを決定する第７の処理と、を行うことを特徴とする計算機。【選択図】図２
2013025782.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサ、メモリ及びインターフェースを備える計算機であって、
二次元コードに格納される情報及び当該二次元コードに埋め込まれる画像データを取得する第１の処理と、
前記取得した情報を符号化して、二次元コードを作成する第２の処理と、
前記取得した画像データの配置位置及び配置サイズを調整する第３の処理と、
前記調整した配置位置及び配置サイズに従って、前記取得した画像データを、前記作成した二次元コードに仮で配置する第４の処理と、
前記画像データが仮で配置された二次元コードの誤り率を算出する第５の処理と、
前記誤り率が閾値以下となるまで、第３から第５の処理を繰り返す第６の処理と、
前記算出した誤り率を参照して、前記画像データの配置位置及び配置サイズを決定する第７の処理と、
を行うことを特徴とする計算機。
【請求項２】
更に、前記決定された画像データの配置位置及び配置サイズに基づいて、前記取得した画像データを、前記作成した二次元コードに配置する第８の処理と、
前記画像データが配置された二次元コードを出力する第９の処理と、
を行うことを特徴とする請求項１に記載の計算機
【請求項３】
更に、前記取得した画像データに含まれる画素を明部と暗部とに分ける二値化処理を行う第１０の処理を行い、
前記第４の処理では、前記取得した画像データの代わりに、前記二値化処理を行った画像データを、前記作成した二次元コードに仮で配置することを特徴する請求項１に記載の計算機。
【請求項４】
前記第５の処理では、
前記二次元コードに仮配置した二値化処理した画像データを用いて、前記二次元コードに含まれるセルごとに正又は誤を判定し、
前記セルごとの正誤の判定結果を参照して、誤り率を算出することを特徴とする請求項３に記載の計算機。
【請求項５】
更に、配置位置又は配置サイズのいずれを優先するかを決定する第１１の処理を行い、
第３の処理では、前記第１１の処理の決定結果に基づいて、前記取得した画像データの配置位置及び配置サイズを調整することを特徴とする請求項１に記載の計算機。
【請求項６】
更に、前記作成された二次元コード内の復号に重要な部分に、前記取得した画像データが仮で配置されているか否かを判定する第１２の処理を行い、
前記第６の処理では、前記算出した誤り率に加えて、前記第１２の処理の判定結果を参照することを特徴とする請求項１の計算機。
【請求項７】
更に、前記作成された二次元コード内の復号に重要な部分に、前記取得した画像データが仮で配置されている場合、前記取得された画像データ内の、当該重要な部分に対応する部分を透過処理する第１３の処理を行うことを特徴とする請求項１に記載の計算機。
【請求項８】
二次元コードに格納される情報及び当該二次元コードに埋め込まれる画像データを取得する第１の処理と、
前記取得した情報を符号化して、二次元コードを作成する第２の処理と、
前記取得した画像データの配置位置及び配置サイズを調整する第３の処理と、
前記調整した配置位置及び配置サイズに従って、前記取得した画像データを、前記作成した二次元コードに仮で配置する第４の処理と、
前記画像データが仮で配置された二次元コードの誤り率を算出する第５の処理と、
前記誤り率が閾値以下となるまで、第３から第５の処理を繰り返す第６の処理と、
前記算出した誤り率を参照して、前記画像データの配置位置及び配置サイズを決定する第７の処理と、
を計算機に実行させることを特徴とするプログラム。
【請求項９】
更に、前記決定された画像データの配置位置及び配置サイズに基づいて、前記取得した画像データを、前記作成した二次元コードに配置する第８の処理と、
前記画像データが配置された二次元コードを出力する第９の処理と、
を前記計算機に実行させることを特徴とする請求項８に記載のプログラム。
【請求項１０】
更に、前記取得した画像データに含まれる画素を明部と暗部とに分ける二値化処理を行う第１０の処理を前記計算機に実行させ、
前記第４の処理では、前記取得した画像データの代わりに、前記二値化処理を行った画像データを、前記作成した二次元コードに仮で配置することを特徴する請求項８に記載のプログラム。
【請求項１１】
前記第５の処理では、
前記二次元コードに仮配置した二値化処理した画像データを用いて、前記二次元コードに含まれるセルごとに正又は誤を判定し、
前記セルごとの正誤の判定結果を参照して、誤り率を算出することを特徴とする請求項１０に記載のプログラム。
【請求項１２】
更に、配置位置又は配置サイズのいずれを優先するかを決定する第１１の処理を前記計算機に実行させ、
第３の処理では、前記第１１の処理の決定結果に基づいて、前記取得した画像データの配置位置及び配置サイズを調整することを特徴とする請求項８に記載のプログラム。
【請求項１３】
更に、前記作成された二次元コード内の復号に重要な部分に、前記取得した画像データが仮で配置されているか否かを判定する第１２の処理を前記計算機に実行させ、
前記第６の処理では、前記算出した誤り率に加えて、前記第１２の処理の判定結果を参照することを特徴とする請求項８に記載のプログラム。
【請求項１４】
更に、前記作成された二次元コード内の復号に重要な部分に、前記取得した画像データが仮で配置されている場合、前記取得された画像データ内の、当該重要な部分に対応する部分を透過処理する第１３の処理を前記計算機に実行させる請求項８に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】  この発明は、二次元コードを出力する計算機に関するものである。
【背景技術】
【０００２】  二次元コードには、様々な種類のものが規格化されている。また、それぞれの二次元コードの出力方法は確立されている。そのため、一般に利用されている二次元コードは、それぞれの規格に関する仕様書及び規格書にもとづいて出力される（二次元コードの一種であるＱＲコードの規格については、非特許文献１を参照）。また、二次元コードに含まれる画素を書き換えることによって、任意のモノクロ画像を二次元コードの一部として、埋め込む技術が知られている（詳細については、特許文献１を参照）。
【先行技術文献】
【０００３】
【特許文献１】  特許公開２００７−３４９９８号公報
【非特許文献１】  ＪＩＳ  Ｘ  ０５１０（日本工業規格）
【発明の概要】
【発明が解決しようとする課題】
【０００４】  出力された二次元コードは、目視ではランダムなモザイク模様にしか見えない。そのため、二次元コードは、読取処理（二次元コードの復号化）を行わない限り、格納されている情報を認識できなかった。そこで、特許文献１では、読取品質を確保しつつ、二次元コード内に任意のモノクロ画像を埋め込む技術が開示されている。しかしながら、特許文献１の技術では、二次元コード内にカラー画像を埋め込むことができなかった。更に、特許文献１の技術では、二次元コードに埋め込む画像の配置位置及び配置サイズを指定できなかった。そこで、本発明の代表的な形態は、前述した問題点を解決することを目的とする。
【課題を解決するための手段】
【０００５】  本発明の代表的な形態は、プロセッサ、メモリ及びインターフェースを備える計算機であって、二次元コードに格納される情報及び当該二次元コードに埋め込まれる画像データを取得する第１の処理と、前記取得した情報を符号化して、二次元コードを作成する第２の処理と、前記取得した画像データの配置位置及び配置サイズを調整する第３の処理と、前記調整した配置位置及び配置サイズに従って、前記取得した画像データを、前記作成した二次元コードに仮で配置する第４の処理と、前記画像データが仮で配置された二次元コードの誤り率を算出する第５の処理と、
前記誤り率が閾値以下となるまで、第３から第５の処理を繰り返す第６の処理と、前記算出した誤り率を参照して、前記画像データの配置位置及び配置サイズを決定する第７の処理と、を行う。
【発明の効果】
【０００６】  本発明によれば、二次元コードに埋め込む画像の配置位置及び配置サイズを指定できる。
【図面の簡単な説明】
【０００７】
【図１】本発明の第１の実施の形態の計算機システムの構成図である。
【図２】本発明の第１の実施の形態の二次元コードの出力方法の概念図である。
【図３】本発明の第１の実施の形態の計算機システムの処理のフローチャートである。
【図４】本発明の第１の実施の形態の透過処理の説明図である。
【図５】本発明の第１の実施の形態の透過処理の説明図である。
【図６Ａ】本発明の実施の形態の調整処理のフローチャートである。
【図６Ｂ】本発明の実施の形態の調整処理のフローチャートである。
【図６Ｃ】本発明の実施の形態の調整処理のフローチャートである。
【図７】本発明の第１の実施の形態の二値化処理のフローチャートである。
【図８】本発明の第１の実施の形態の二値化された画像の説明図である。
【図９】本発明の第１の実施の形態の配置調整処理のフローチャートである。
【図１０】本発明の第１の実施の形態の誤り率算出処理のフローチャートである。
【発明を実施するための形態】
【０００８】  （第１の実施の形態）
図１は、本発明の第１の実施の形態の計算機システムの構成図である。計算機システムは、計算機１、入力装置６及び出力装置７を含む。計算機１は、ＣＰＵ４、メモリ５及び記憶装置２を備える。記憶装置２は、各種情報を記憶する。メモリ５は、ＣＰＵ４に実行されるプログラム及びＣＰＵ４によって必要とされる情報を記憶する。ＣＰＵ４は、メモリ５に記憶されたプログラムを実行することによって、各種処理を実行する。また、計算機１には、入力装置６及び出力装置７が接続される。入力装置６には、各種情報が入力される。入力装置６は、例えば、キーボード又はマウスである。出力装置７は、各種情報を出力する。出力装置７は、例えば、ディスプレイ又はプリンタである。なお、入力装置６及び出力装置７は、計算機１に含まれていてもよい。また、計算機１は、通信網８と接続されていてもよい。通信網８は、他の計算機が接続されているネットワークであればいかなるものであってもよい。例えば、通信網８は、インターネット又はイントラネットである。
【０００９】  メモリ５は、二次元コード出力プログラム３を記憶する。二次元コード出力プログラム３は、ＣＰＵ４によって実行されることによって、本実施の形態の各種処理を行う。具体的には、二次元コード出力プログラム３は、記憶装置２に格納されているデータを読み出す。また、二次元コード出力プログラム３は、入力装置６に入力された情報を受信する。また、二次元コード出力プログラム３は、出力装置７にデータを出力させる。更に、二次元コード出力プログラム３は、通信網８に存在する他の計算機とデータを送受信する。なお、二次元コードは、水平方向及び垂直方向に情報を持つコードであれば、いかなるものであってもよい。例えば、二次元コードは、ＱＲ  Ｃｏｄｅ、ＰＤＦ４１７、Ａ１２  Ｍａｘｉ  Ｃｏｄｅ、Ａ１３  Ｄａｔａ  Ｍａｔｒｉｘ又はＡ１４などである。
【００１０】  図２は、本発明の第１の実施の形態の二次元コードの出力方法の概念図である。計算機１は、文字列情報Ｉ２１及び埋込データＧ２１などを受け取る。すると、計算機１は、文字列情報Ｉ２１を符号化し、二次元コードを作成する。次に、計算機１は、作成した二次元コードに、埋込データＧ２１を埋め込んだ画像付二次元コードＣ２１を作成する。そして、計算機１は、作成した画像付二次元コードＣ２１を出力する。なお、文字列情報Ｉ２１は、符号化されて、二次元コードに格納される情報である。つまり、読取装置は、画像付二次元コードＣ２１を読み取って復号化すると、文字列情報Ｉ２１を取得できる。埋込データＧ２１は、画像付二次元コードＣ２１に埋め込まれる画像データである。なお、埋込データＧ２１は、カラー画像データであってもよいし、白黒画像データであってもよい。
【００１１】  図２では、文字列情報Ｉ２１が「ｐａｔｅｎｔ  ａｐｐｌｉｃａｔｉｏｎ」という文字列である場合を示すが、いかなる文字列であってもよい。また、埋込データＧ２１は、ロゴ画像データであるが、いかながる画像データであってもよい。また、作成される画像付二次元コードＣ２１は、ＱＲコードであるが、いかなる二次元コードであってもよい。なお、ＱＲコードは、ＪＩＳ  Ｘ  ０５１０（日本工業規格）で規定されている二次元コードである。
【００１２】  図３は、本発明の第１の実施の形態の計算機システムの処理のフローチャートである。計算機１は、文字列情報Ｉ２１を取得する（Ｓ００１）。なお、計算機１は、いかなる方法で、文字列情報Ｉ２１を取得してもよい。例えば、計算機１は、文字列情報Ｉ２１を、記憶装置２、メモリ５、入力装置６又は通信網８から取得する。すると、計算機１は、取得した文字列情報Ｉ２１を符号化して、二次元コードを作成する。
【００１３】  次に、計算機１は、埋込データＧ２１を取得する（Ｓ００２）。なお、計算機１は、いかなる方法で、埋込データＧ２１を取得してもよい。例えば、計算機１は、埋込データＧ２１を、記憶装置２、メモリ５、入力装置６又は通信網８から取得する。
【００１４】  次に、計算機１は、透過部分情報Ｉ２６を取得する（Ｓ００３）。透過部分情報Ｉ２６は、埋込データＧ２１のうち、透過して表示されてもよい部分（透過可能部分）に関する情報である。なお、透過部分情報Ｉ２６は、埋込データＧ２１に含まれていてもよいし、埋込データＧ２１と独立した情報であってもよい。例えば、透過部分情報Ｉ２６は、埋込埋込データＧ２１内の特定の色の領域を透過可能部分として示したものであってもよい。また、計算機１は、いかなる方法で、透過部分情報Ｉ２６を取得してもよい。例えば、計算機１は、透過部分情報Ｉ２６を、記憶装置２、メモリ５、入力装置６又は通信網８から取得する。ただし、透過部分情報Ｉ２６の取得は任意で、計算機１は、透過部分情報Ｉ２６を取得しなくてもよい。
【００１５】  計算機１は、透過部分情報Ｉ２６を取得すると、透過処理を行いながら、一連の処理を行う。図４及び図５は、本発明の第１の実施の形態の透過処理の説明図である。計算機１は、取得した透過情報に基づいて、透過可能部分を特定する。そして、計算機１は、特定した透過可能部分が所定の条件を満たすかどうかを判定する。所定の条件を満たす場合には、計算機１は、以下のすべての処理において、透過可能部分を、埋込データＧ２１から削除してもよい。例えば、二次元コード内の所定の領域のすべてが透過可能部分に含まれる場合、計算機１は、当該所定の領域に対しては、透過可能部分を、埋込データＧ２１から削除する。そのため、当該所定の領域には埋込データＧ２１が被さらない。
【００１６】  ここで図３に戻って説明を続ける。次に、計算機１は、配置位置情報Ｉ２２を取得する（Ｓ００４）。配置位置情報Ｉ２２は、作成される画像付二次元コードＣ２１内における、埋込データＧ２１が配置される位置である。なお、配置位置情報Ｉ２２は、埋込データＧ２１が配置される位置を示していれば、いかなる方法で示されていてもよい。例えば、配置位置情報Ｉ２２は、二次元コードに含まれるセルの個数を用いて、位置を示してもよい。また、配置位置情報Ｉ２２は、埋込データＧ２１に含まれる画素の数を用いて、位置を示してもよい。また、配置位置情報Ｉ２２は、物理的な長さの単位を用いて、位置を示してもよい。なお、計算機１は、いかなる方法で、配置位置情報Ｉ２２を取得してもよい。例えば、計算機１は、配置位置情報Ｉ２２を、記憶装置２、メモリ５、入力装置６又は通信網８から取得する。ただし、配置位置情報Ｉ２２の取得は任意で、計算機１は、配置位置情報Ｉ２２を取得しなくてもよい。
【００１７】  次に、計算機１は、配置サイズ情報Ｉ２３を取得する（Ｓ００５）。配置サイズ情報Ｉ２３は、作成される画像付二次元コードＣ２１内における、埋込データＧ２１の相対的な大きさである。なお、配置サイズ情報Ｉ２３は、埋込データＧ２１の大きさを示していれば、いかなる方法で示されていてもよい。例えば、配置サイズ情報Ｉ２３は、二次元コードに含まれるセルの個数を用いて、大きさを示してもよい。また、配置サイズ情報は、埋込データＧ２１に含まれる画素の数を用いて、大きさを示してもよい。また、配置サイズ情報は、物理的な長さの単位を用いて、大きさを示してもよい。なお、計算機１は、いかなる方法で、配置サイズ情報Ｉ２３を取得してもよい。例えば、計算機１は、配置サイズ情報Ｉ２３を、記憶装置２、メモリ５、入力装置６又は通信網８から取得する。ただし、配置サイズ情報Ｉ２３の取得は任意で、計算機１は、配置サイズ情報Ｉ２３を取得しなくてもよい。
【００１８】  次に、計算機１は、配置優先情報Ｉ２４を取得する（Ｓ００６）。配置優先情報Ｉ２４は、配置位置情報Ｉ２２又は配置サイズ情報Ｉ２３のいずれを優先すべきかを示す。なお、計算機１は、いかなる方法で、配置優先情報Ｉ２４を取得してもよい。例えば、計算機１は、配置優先情報Ｉ２４を、記憶装置２、メモリ５、入力装置６又は通信網８から取得する。ただし、配置優先情報Ｉ２４の取得は任意で、計算機１は、配置優先情報Ｉ２４を取得しなくてもよい。
【００１９】  次に、計算機１は、重要配置情報Ｉ２５を取得する（Ｓ００７）。重要配置情報Ｉ２５は、二次元コードの復号に重要な情報が含まれるセル（重要セル）に、埋込データＧ２１が配置されてもよいか否かを示す。なお、二次元コードの復号に重要な情報とは、欠損すると復号に大きな影響を与える情報である。例えば、画像付二次元コードＣ２１の復号に重要な情報は、切出シンボル、マージン、タイミングパターン、フォーマット情報及びアライメントパターンを含む。また、重要配置情報Ｉ２５は、透過処理を示していてもよい。この場合、計算機１は、埋込データ内の、重要セル上に配置されるすべての画素を透過処理する。なお、計算機１は、いかなる方法で、重要配置情報Ｉ２５を取得してもよい。例えば、計算機１は、重要配置情報Ｉ２５を、記憶装置２、メモリ５、入力装置６又は通信網８から取得する。ただし、重要配置情報Ｉ２５の取得は任意で、計算機１は、重要配置情報Ｉ２５を取得しなくてもよい。
【００２０】  次に、計算機１は、調整処理を実行する（Ｓ００８）。調整処理は、読取装置による画像付二次元コードＣ２１の読み取り精度を向上させるための処理である。なお、調整処理については、図６Ａ、図６Ｂ及び図６Ｃで詳細を説明する。
【００２１】  図６Ａ、図６Ｂ及び図６Ｃは、本発明の実施の形態の調整処理のフローチャートである。なお、図６Ａは、埋込データＧ２１のみを調整する場合である。また、図６Ｂは、二次元コードのみを調整する場合である。また、図６Ｃは、埋込データＧ２１及び二次元コードの双方を調整する場合である。計算機１は、埋込データＧ２１のみの調整、二次元コードのみの調整、又は、埋込データＧ２１及び二次元コードの双方の調整のいずれかを任意の方法で決定する。埋込データＧ２１のみの調整に決定した場合、計算機１は、作成した二次元コードの明度及びコントラストのうちの少なくとも一方を参照して、取得した埋込データＧ２１の明度、コントラスト及び色素のうちの少なくとも一つを調整する（Ｓ１０１）。一方、二次元コードのみの調整に決定した場合、取得した埋込データＧ２１の明度及びコントラストのうちの少なくとも一方を参照して、作成した二次元コードの明度、コントラスト及び色素のうちの少なくとも一つを調整する（Ｓ１０２）。一方、埋込データＧ２１及び二次元コードの双方の調整に決定した場合、計算機１は、作成した二次元コード及び取得した埋込データＧ２１の明度の平均値を算出する。次に、計算機１は、作成した二次元コード及び取得した埋込データＧ２１のコントラストの平均値を算出する（Ｓ１０３）。次に、計算機１は、算出した明度の平均値及びコントラストの平均値を参照して、取得した埋込データＧ２１の明度、コントラスト及び色素のうちの少なくとも一つを調整する（Ｓ１０４）。次に、計算機１は、算出した明度の平均値及びコントラストの平均値を参照して、作成した二次元コードの明度、コントラスト及び色素のうちの少なくとも一つを調整する（Ｓ１０５）。以上のように、計算機１は、調整処理を行う。
【００２２】  ここで図３に戻って説明を続ける。次に、計算機１は、埋込データＧ２１の二値化（白黒階調化）処理を行う（Ｓ００９）。なお、二値化処理については、図７で詳細を説明する。
【００２３】  図７は、本発明の第１の実施の形態の二値化処理のフローチャートである。また、図８は、本発明の第１の実施の形態の二値化された画像データの説明図である。計算機１は、取得した埋込データＧ２１内の明るい部分と暗い部分とを分けるための閾値を決定する（Ｓ２０１）。例えば、計算機１は、取得した埋込データＧ２１の明度の平均値を算出し、算出した平均値を閾値としてもよい。また、計算機１は、閾値を以下のように決定してもよい。計算機１は、埋込データＧ２１から、明部が高いところから順に、所定の数の明度を抽出する。次に、計算機１は、抽出した明度の平均値を算出し、明部の明度平均値とする。次に、埋込データＧ２１から、明部が低いところから順に、所定の数の明度を抽出する。次に、計算機１は、抽出した明度の平均値を算出し、暗部の明度の平均値とする。次に、計算機１は、算出した明部の明度の平均値及び暗部の明度の平均値に基づいて、閾値を決定してもよい。これによって、当該閾値は、明度が突出した部分の影響を排除できている。
【００２４】  次に、計算機１は、埋込データＧ２１に含まれる画素（ピクセル）を順番に選択し、選択した画素ごとに以下の処理を行う（Ｓ２０２）。計算機１は、選択した画素の明度を算出する（Ｓ２０３）。次に、計算機１は、算出した明度が閾値以下であるか否かを判断する（Ｓ２０４）。明度が閾値以下の場合、計算機１は、選択した画素を「暗」と判定する（Ｓ２０６）。一方、明度が閾値より大きい場合、計算機１は、選択した画素を「明」と判定する（Ｓ２０５）。次に、計算機１は、ステップＳ２０２において、埋込データＧ２１に含まれる画素をすべて選択したか否かを判定する。すべての画素を選択してない場合、計算機１は、ステップＳ２０２に戻る。そして、計算機１は、選択していない画素を選択して、処理を繰り返す。一方、すべての画素を選択した場合、計算機１は、当該二値化処理を終了する。そして、計算機１は、判定結果を記憶する。具体的には、「明」と判定した画素である明画素及び「暗」と判定された画素である暗画素を含む画像を、二値化された画像データＧ８１として記憶する。なお、計算機１は、二値化されていない元の埋込データＧ２１も記憶しておく。次に、計算機１は、二値化処理された画像データＧ８１を、作成した二次元コードに仮配置する。そして、計算機１は、仮配置された二次元コードを、誤り率の算出のために用いる。計算機１は、最終的な二次元コードの出力時には、二値化された画像データＧ８１を二次元コードに配置するのではなく、元の埋込データＧ２１を二次元コードに配置することによって、画像付二次元コードＣ２１を作成する。なお、計算機１は、二値化された画像データＧ８１ではなく、元の埋込データＧ２１を仮配置し、誤り率を算出してもよい。
【００２５】  ここで図３に戻って説明を続ける。次に、計算機１は、二次元コードの誤り率が許容値以下となるまで、配置調整処理を繰り返す（Ｓ０１０）。配置調整処理については、図９で詳細を説明する。
【００２６】  図９は、本発明の第１の実施の形態の配置調整処理のフローチャートである。まず、計算機１は、取得した配置サイズ情報Ｉ２３に従って、二値化された画像データＧ８１のサイズを変更する（Ｓ３０１）。次に、計算機１は、取得した配置位置情報Ｉ２２に従って、変更された画像データＧ８１を、作成した二次元コードに仮で配置する（Ｓ３０３）。次に、計算機１は、取得した重要配置情報Ｉ２５を調べる。重要配置情報Ｉ２５が、重要セルに埋込データＧ２１を配置できないことを示す場合、計算機１は、重要セルのいずれにも、画像データＧ８１が配置されていないかどうかを判定する（Ｓ３０４）。重要セルのいずれか一つにでも画像データＧ８１が配置されている場合、当該配置位置に埋込データＧ８１を配置できない。そこで、計算機１は、許容される範囲内のすべての位置に、画像データＧ８１を仮配置したか否かを判定する（Ｓ３０８）。すべての位置に仮配置されていない場合、計算機１は、許容される範囲内のうち、仮配置されていない位置を選択する（Ｓ３０９）。なお、許容される範囲は、予め定まっていてもよいし、配置位置情報Ｉ２２に含まれていてもよい。また、取得された配置優先情報Ｉ２４が、配置位置情報Ｉ２２よりも配置サイズ情報Ｉ２３を優先することを示す場合には、許容される範囲は、二次元コードのすべての位置となる。一方、取得された配置優先情報Ｉ２４が、配置サイズ情報Ｉ２３よりも配置位置情報Ｉ２２を優先することを示す場合には、許容される範囲を、配置位置情報Ｉ２２で示す位置だけ又は狭い周辺だけとする。計算機１は、新たな位置を選択すると、ステップＳ３０２に戻り、選択した新たな位置に、変更された画像データＧ８１を仮配置する（Ｓ３０３）。そして、計算機１は、処理を繰り返す。一方、すべての位置に仮配置した場合、計算機１は、ステップＳ３１０に進む。一方、重要配置情報Ｉ２５が透過処理を示す場合（Ｓ３０５）、計算機１は、画像データ内の、重要セル上に配置される画素を透過処理する（Ｓ３０６）。透過処理とは、画像データＧ８１から、当該画素を排除する処理である。これによって、作成される画像付二次元コードＣ２１は、復号化が可能となる。次に、計算機１は、誤り率算出処理を行う（Ｓ３１０）。誤り率算出処理については、図１０で詳細を説明する。一方、重要配置情報Ｉ２５が、重要セルに埋込データＧ２１が配置されてもよいことを示す場合、計算機１は、そのままステップＳ３０７に進み、誤り率算出処理を行う。
【００２７】  図１０は、本発明の第１の実施の形態の誤り率算出処理のフローチャートである。まず、計算機１は、作成した二次元コードに含まれるすべてのセルを順番に選択する（Ｓ４０１）。次に、計算機１は、選択したセルと、画像データＧ８１内の、当該セル上に仮配置された一つ以上の画素を比較する。この比較に基づいて、計算機１は、選択したセルが、正部、誤部又は汚損部のいずれであるかを判定する（Ｓ４０２）。例えば、計算機１は、選択したセルが白色（明）で、且つ、画素のすべてが明画素の場合、選択したセルを正部と判定する。同様に、計算機１は、選択したセルが黒色（暗）で、且つ、画素のすべてが暗画素の場合にも、選択したセルを、正部と判定する。一方、計算機１は、選択したセルが白色（明）で、且つ、画素のすべてが暗画素の場合、選択したセルを誤部と判定する。同様に、計算機１は、選択したセルが黒色（暗）で、且つ、画素のすべてが明画素の場合にも、選択したセルを、誤部と判定する。また、計算機１は、セル上に仮配置された画素の一部が明部で、残りの一分が暗部の場合、汚損部と判定する。なお、計算機１は、選択したセルが白色（明）で、且つ、画素の一定個数以上が明画素の場合、選択したセルを正部と判定してもよい。同様に、計算機１は、選択したセルが黒色（暗）で、且つ、画素の一定個数以上が暗画素の場合、選択したセルを正部と判定してもよい。また、計算機１は、選択したセルが白色（明）で、選択したセルの中央部分の所定の領域に仮配置されたすべての画素が明画素の場合、選択したセルを正部と判定する。同様に、計算機１は、選択したセルが黒色（暗）で、選択したセルの中央部分の所定の領域に仮配置されたすべての画素が暗画素の場合、選択したセルを正部と判定する。また、計算機１は、選択したセルに、画像データが仮配置されていない場合、当該選択したセルを正部と判定する。また、計算機１は、選択したセルに、透過処理された画素が仮配置されている場合、当該セルを正部と判定する。なぜなら、透過処理された画素は、埋込データＧ２１から削除されているからである。次に、計算機１は、ステップＳ４０１ですべてのセルを選択したか否かを判定する。すべてのセルを選択していない場合、計算機１は、ステップＳ４０１に戻り、処理を繰り返す。一方、すべてのセルを選択した場合、計算機１は、ステップＳ４０２の判定結果を用いて、誤り率を算出する（Ｓ４０３）。例えば、計算機１は、誤部の数をセルの数で割ることによって、誤り率を算出する。また、計算機１は、誤部の数を、誤部の数と正部の数の合計で割ることによって、誤り率を算出してもよい。
【００２８】  ここで図９に戻って説明を続ける。次に、計算機１は、許容される範囲内のすべての位置に、画像データＧ８１を仮配置したか否かを判定する（Ｓ３０８）。すべての位置に仮配置されていない場合、計算機１は、許容される範囲内のうち、仮配置されていない位置を選択する（Ｓ３０９）。なお、許容される範囲は、予め定まっていてもよいし、配置位置情報Ｉ２２に含まれていてもよい。また、取得された配置優先情報Ｉ２４が、配置位置情報Ｉ２２よりも配置サイズ情報Ｉ２３を優先することを示す場合には、許容される範囲は、二次元コードのすべての位置となる。一方、取得された配置優先情報Ｉ２４が、配置サイズ情報Ｉ２３よりも配置位置情報Ｉ２２を優先することを示す場合には、許容される範囲を、配置位置情報Ｉ２２で示す位置だけ又は狭い周辺だけとする。計算機１は、新たな位置を選択すると、ステップＳ３０２に戻り、選択した新たな位置に、画像データＧ８１を仮配置する（Ｓ３０３）。そして、計算機１は、処理を繰り返す。一方、すべての位置に仮配置した場合、計算機１は、算出したすべての誤り率のうち、最も小さい誤り率を選択する。次に、計算機１は、選択した誤り率と閾値とを比較する（Ｓ３１０）。そして、計算機１は、誤り率が閾値以下であるか否かを判定する。誤り率が閾値より大きい場合、計算機１は、埋込データＧ２１をこのままの大きさでは配置できない。そこで、計算機１は、画像データＧ８１を所定のサイズだけ小さくする（Ｓ３１１）。所定のサイズは、一つの画素分のサイズであってもよいし、予め決まったサイズであってもよい。そして、計算機１は、ステップＳ３０１に戻り、処理を繰り返す。一方、誤り率が閾値以下の場合、計算機１は、選択した最も小さい誤り率となった配置位置及び配置サイズを記憶する（Ｓ３１２）。なお、計算機１は、誤り率、配置位置及び配置サイズを参照して、最適な配置位置及び配置サイズを選択し、選択した配置位置及び配置サイズを記憶してもよい。次に、計算機１は、選択した配置位置及び配置サイズに従って、元の埋込データＧ２１を、二次元コードに配置する。なお、計算機１は、仮配置の時に透過処理した場合、元の埋込データについても透過処理を行う。そして、計算機１は、透過処理した元の埋込データＧ２１を、二次元コードに配置する。これによって、計算機１は、画像付二次元コードＣ２１を作成する。そして、計算機１は、作成した画像付二次元コードＣ２１を記憶する。なお、計算機１は、作成した画像付二次元コードＣ２１を、出力装置７に出力を指示してもよいし、通信網８を介して、他の計算機に送信してもよい。
【００２９】  本発明の第１の実施の形態によれば、計算機１は、文字列情報Ｉ２１及び埋込データＧ２１を取得すると、誤り率の基準を満たした画像付二次元コードＣ２１を出力できる。画像付二次元コードＣ２１は、人間が文字列情報Ｉ２１の内容を認識又は推測可能な二次元コードである。
【符号の説明】
【００３０】    １  計算機
２  記憶装置
４  ＣＰＵ
５  メモリ
６  入力装置
７  出力装置
【図１】
2013025782.tif 000003
【図２】
2013025782.tif 000004
【図３】
2013025782.tif 000005
【図４】
2013025782.tif 000006
【図５】
2013025782.tif 000007
【図６Ａ】
2013025782.tif 000008
【図６Ｂ】
2013025782.tif 000009
【図６Ｃ】
2013025782.tif 000010
【図７】
2013025782.tif 000011
【図８】
2013025782.tif 000012
【図９】
2013025782.tif 000013
【図１０】
2013025782.tif 000014