二次元コードを出力する計算機及び当該計算機に実行されるプログラム
【課題】二次元コードに埋め込む画像の配置位置及び配置サイズを指定して、二次元コードを作成する。
【解決手段】二次元コードに格納される情報及び当該二次元コードに埋め込まれる画像データを取得する第1の処理と、前記取得した情報を符号化して、二次元コードを作成する第2の処理と、前記取得した画像データの配置位置及び配置サイズを調整する第3の処理と、前記調整した配置位置及び配置サイズに従って、前記取得した画像データを、前記作成した二次元コードに仮で配置する第4の処理と、前記画像データが仮で配置された二次元コードの誤り率を算出する第5の処理と、前記誤り率が閾値以下となるまで、第3から第5の処理を繰り返す第6の処理と、前記算出した誤り率を参照して、前記画像データの配置位置及び配置サイズを決定する第7の処理と、を行うことを特徴とする計算機。
【解決手段】二次元コードに格納される情報及び当該二次元コードに埋め込まれる画像データを取得する第1の処理と、前記取得した情報を符号化して、二次元コードを作成する第2の処理と、前記取得した画像データの配置位置及び配置サイズを調整する第3の処理と、前記調整した配置位置及び配置サイズに従って、前記取得した画像データを、前記作成した二次元コードに仮で配置する第4の処理と、前記画像データが仮で配置された二次元コードの誤り率を算出する第5の処理と、前記誤り率が閾値以下となるまで、第3から第5の処理を繰り返す第6の処理と、前記算出した誤り率を参照して、前記画像データの配置位置及び配置サイズを決定する第7の処理と、を行うことを特徴とする計算機。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、二次元コードを出力する計算機に関するものである。
【背景技術】
【0002】
二次元コードには、様々な種類のものが規格化されている。また、それぞれの二次元コードの出力方法は確立されている。そのため、一般に利用されている二次元コードは、それぞれの規格に関する仕様書及び規格書にもとづいて出力される(二次元コードの一種であるQRコードの規格については、非特許文献1を参照)。また、二次元コードに含まれる画素を書き換えることによって、任意のモノクロ画像を二次元コードの一部として、埋め込む技術が知られている(詳細については、特許文献1を参照)。
【先行技術文献】
【0003】
【特許文献1】 特許公開2007−34998号公報
【非特許文献1】 JIS X 0510(日本工業規格)
【発明の概要】
【発明が解決しようとする課題】
【0004】
出力された二次元コードは、目視ではランダムなモザイク模様にしか見えない。そのため、二次元コードは、読取処理(二次元コードの復号化)を行わない限り、格納されている情報を認識できなかった。そこで、特許文献1では、読取品質を確保しつつ、二次元コード内に任意のモノクロ画像を埋め込む技術が開示されている。しかしながら、特許文献1の技術では、二次元コード内にカラー画像を埋め込むことができなかった。更に、特許文献1の技術では、二次元コードに埋め込む画像の配置位置及び配置サイズを指定できなかった。そこで、本発明の代表的な形態は、前述した問題点を解決することを目的とする。
【課題を解決するための手段】
【0005】
本発明の代表的な形態は、プロセッサ、メモリ及びインターフェースを備える計算機であって、二次元コードに格納される情報及び当該二次元コードに埋め込まれる画像データを取得する第1の処理と、前記取得した情報を符号化して、二次元コードを作成する第2の処理と、前記取得した画像データの配置位置及び配置サイズを調整する第3の処理と、前記調整した配置位置及び配置サイズに従って、前記取得した画像データを、前記作成した二次元コードに仮で配置する第4の処理と、前記画像データが仮で配置された二次元コードの誤り率を算出する第5の処理と、
前記誤り率が閾値以下となるまで、第3から第5の処理を繰り返す第6の処理と、前記算出した誤り率を参照して、前記画像データの配置位置及び配置サイズを決定する第7の処理と、を行う。
【発明の効果】
【0006】
本発明によれば、二次元コードに埋め込む画像の配置位置及び配置サイズを指定できる。
【図面の簡単な説明】
【0007】
【図1】本発明の第1の実施の形態の計算機システムの構成図である。
【図2】本発明の第1の実施の形態の二次元コードの出力方法の概念図である。
【図3】本発明の第1の実施の形態の計算機システムの処理のフローチャートである。
【図4】本発明の第1の実施の形態の透過処理の説明図である。
【図5】本発明の第1の実施の形態の透過処理の説明図である。
【図6A】本発明の実施の形態の調整処理のフローチャートである。
【図6B】本発明の実施の形態の調整処理のフローチャートである。
【図6C】本発明の実施の形態の調整処理のフローチャートである。
【図7】本発明の第1の実施の形態の二値化処理のフローチャートである。
【図8】本発明の第1の実施の形態の二値化された画像の説明図である。
【図9】本発明の第1の実施の形態の配置調整処理のフローチャートである。
【図10】本発明の第1の実施の形態の誤り率算出処理のフローチャートである。
【発明を実施するための形態】
【0008】
(第1の実施の形態)
図1は、本発明の第1の実施の形態の計算機システムの構成図である。計算機システムは、計算機1、入力装置6及び出力装置7を含む。計算機1は、CPU4、メモリ5及び記憶装置2を備える。記憶装置2は、各種情報を記憶する。メモリ5は、CPU4に実行されるプログラム及びCPU4によって必要とされる情報を記憶する。CPU4は、メモリ5に記憶されたプログラムを実行することによって、各種処理を実行する。また、計算機1には、入力装置6及び出力装置7が接続される。入力装置6には、各種情報が入力される。入力装置6は、例えば、キーボード又はマウスである。出力装置7は、各種情報を出力する。出力装置7は、例えば、ディスプレイ又はプリンタである。なお、入力装置6及び出力装置7は、計算機1に含まれていてもよい。また、計算機1は、通信網8と接続されていてもよい。通信網8は、他の計算機が接続されているネットワークであればいかなるものであってもよい。例えば、通信網8は、インターネット又はイントラネットである。
【0009】
メモリ5は、二次元コード出力プログラム3を記憶する。二次元コード出力プログラム3は、CPU4によって実行されることによって、本実施の形態の各種処理を行う。具体的には、二次元コード出力プログラム3は、記憶装置2に格納されているデータを読み出す。また、二次元コード出力プログラム3は、入力装置6に入力された情報を受信する。また、二次元コード出力プログラム3は、出力装置7にデータを出力させる。更に、二次元コード出力プログラム3は、通信網8に存在する他の計算機とデータを送受信する。なお、二次元コードは、水平方向及び垂直方向に情報を持つコードであれば、いかなるものであってもよい。例えば、二次元コードは、QR Code、PDF417、A12 Maxi Code、A13 Data Matrix又はA14などである。
【0010】
図2は、本発明の第1の実施の形態の二次元コードの出力方法の概念図である。計算機1は、文字列情報I21及び埋込データG21などを受け取る。すると、計算機1は、文字列情報I21を符号化し、二次元コードを作成する。次に、計算機1は、作成した二次元コードに、埋込データG21を埋め込んだ画像付二次元コードC21を作成する。そして、計算機1は、作成した画像付二次元コードC21を出力する。なお、文字列情報I21は、符号化されて、二次元コードに格納される情報である。つまり、読取装置は、画像付二次元コードC21を読み取って復号化すると、文字列情報I21を取得できる。埋込データG21は、画像付二次元コードC21に埋め込まれる画像データである。なお、埋込データG21は、カラー画像データであってもよいし、白黒画像データであってもよい。
【0011】
図2では、文字列情報I21が「patent application」という文字列である場合を示すが、いかなる文字列であってもよい。また、埋込データG21は、ロゴ画像データであるが、いかながる画像データであってもよい。また、作成される画像付二次元コードC21は、QRコードであるが、いかなる二次元コードであってもよい。なお、QRコードは、JIS X 0510(日本工業規格)で規定されている二次元コードである。
【0012】
図3は、本発明の第1の実施の形態の計算機システムの処理のフローチャートである。計算機1は、文字列情報I21を取得する(S001)。なお、計算機1は、いかなる方法で、文字列情報I21を取得してもよい。例えば、計算機1は、文字列情報I21を、記憶装置2、メモリ5、入力装置6又は通信網8から取得する。すると、計算機1は、取得した文字列情報I21を符号化して、二次元コードを作成する。
【0013】
次に、計算機1は、埋込データG21を取得する(S002)。なお、計算機1は、いかなる方法で、埋込データG21を取得してもよい。例えば、計算機1は、埋込データG21を、記憶装置2、メモリ5、入力装置6又は通信網8から取得する。
【0014】
次に、計算機1は、透過部分情報I26を取得する(S003)。透過部分情報I26は、埋込データG21のうち、透過して表示されてもよい部分(透過可能部分)に関する情報である。なお、透過部分情報I26は、埋込データG21に含まれていてもよいし、埋込データG21と独立した情報であってもよい。例えば、透過部分情報I26は、埋込埋込データG21内の特定の色の領域を透過可能部分として示したものであってもよい。また、計算機1は、いかなる方法で、透過部分情報I26を取得してもよい。例えば、計算機1は、透過部分情報I26を、記憶装置2、メモリ5、入力装置6又は通信網8から取得する。ただし、透過部分情報I26の取得は任意で、計算機1は、透過部分情報I26を取得しなくてもよい。
【0015】
計算機1は、透過部分情報I26を取得すると、透過処理を行いながら、一連の処理を行う。図4及び図5は、本発明の第1の実施の形態の透過処理の説明図である。計算機1は、取得した透過情報に基づいて、透過可能部分を特定する。そして、計算機1は、特定した透過可能部分が所定の条件を満たすかどうかを判定する。所定の条件を満たす場合には、計算機1は、以下のすべての処理において、透過可能部分を、埋込データG21から削除してもよい。例えば、二次元コード内の所定の領域のすべてが透過可能部分に含まれる場合、計算機1は、当該所定の領域に対しては、透過可能部分を、埋込データG21から削除する。そのため、当該所定の領域には埋込データG21が被さらない。
【0016】
ここで図3に戻って説明を続ける。次に、計算機1は、配置位置情報I22を取得する(S004)。配置位置情報I22は、作成される画像付二次元コードC21内における、埋込データG21が配置される位置である。なお、配置位置情報I22は、埋込データG21が配置される位置を示していれば、いかなる方法で示されていてもよい。例えば、配置位置情報I22は、二次元コードに含まれるセルの個数を用いて、位置を示してもよい。また、配置位置情報I22は、埋込データG21に含まれる画素の数を用いて、位置を示してもよい。また、配置位置情報I22は、物理的な長さの単位を用いて、位置を示してもよい。なお、計算機1は、いかなる方法で、配置位置情報I22を取得してもよい。例えば、計算機1は、配置位置情報I22を、記憶装置2、メモリ5、入力装置6又は通信網8から取得する。ただし、配置位置情報I22の取得は任意で、計算機1は、配置位置情報I22を取得しなくてもよい。
【0017】
次に、計算機1は、配置サイズ情報I23を取得する(S005)。配置サイズ情報I23は、作成される画像付二次元コードC21内における、埋込データG21の相対的な大きさである。なお、配置サイズ情報I23は、埋込データG21の大きさを示していれば、いかなる方法で示されていてもよい。例えば、配置サイズ情報I23は、二次元コードに含まれるセルの個数を用いて、大きさを示してもよい。また、配置サイズ情報は、埋込データG21に含まれる画素の数を用いて、大きさを示してもよい。また、配置サイズ情報は、物理的な長さの単位を用いて、大きさを示してもよい。なお、計算機1は、いかなる方法で、配置サイズ情報I23を取得してもよい。例えば、計算機1は、配置サイズ情報I23を、記憶装置2、メモリ5、入力装置6又は通信網8から取得する。ただし、配置サイズ情報I23の取得は任意で、計算機1は、配置サイズ情報I23を取得しなくてもよい。
【0018】
次に、計算機1は、配置優先情報I24を取得する(S006)。配置優先情報I24は、配置位置情報I22又は配置サイズ情報I23のいずれを優先すべきかを示す。なお、計算機1は、いかなる方法で、配置優先情報I24を取得してもよい。例えば、計算機1は、配置優先情報I24を、記憶装置2、メモリ5、入力装置6又は通信網8から取得する。ただし、配置優先情報I24の取得は任意で、計算機1は、配置優先情報I24を取得しなくてもよい。
【0019】
次に、計算機1は、重要配置情報I25を取得する(S007)。重要配置情報I25は、二次元コードの復号に重要な情報が含まれるセル(重要セル)に、埋込データG21が配置されてもよいか否かを示す。なお、二次元コードの復号に重要な情報とは、欠損すると復号に大きな影響を与える情報である。例えば、画像付二次元コードC21の復号に重要な情報は、切出シンボル、マージン、タイミングパターン、フォーマット情報及びアライメントパターンを含む。また、重要配置情報I25は、透過処理を示していてもよい。この場合、計算機1は、埋込データ内の、重要セル上に配置されるすべての画素を透過処理する。なお、計算機1は、いかなる方法で、重要配置情報I25を取得してもよい。例えば、計算機1は、重要配置情報I25を、記憶装置2、メモリ5、入力装置6又は通信網8から取得する。ただし、重要配置情報I25の取得は任意で、計算機1は、重要配置情報I25を取得しなくてもよい。
【0020】
次に、計算機1は、調整処理を実行する(S008)。調整処理は、読取装置による画像付二次元コードC21の読み取り精度を向上させるための処理である。なお、調整処理については、図6A、図6B及び図6Cで詳細を説明する。
【0021】
図6A、図6B及び図6Cは、本発明の実施の形態の調整処理のフローチャートである。なお、図6Aは、埋込データG21のみを調整する場合である。また、図6Bは、二次元コードのみを調整する場合である。また、図6Cは、埋込データG21及び二次元コードの双方を調整する場合である。計算機1は、埋込データG21のみの調整、二次元コードのみの調整、又は、埋込データG21及び二次元コードの双方の調整のいずれかを任意の方法で決定する。埋込データG21のみの調整に決定した場合、計算機1は、作成した二次元コードの明度及びコントラストのうちの少なくとも一方を参照して、取得した埋込データG21の明度、コントラスト及び色素のうちの少なくとも一つを調整する(S101)。一方、二次元コードのみの調整に決定した場合、取得した埋込データG21の明度及びコントラストのうちの少なくとも一方を参照して、作成した二次元コードの明度、コントラスト及び色素のうちの少なくとも一つを調整する(S102)。一方、埋込データG21及び二次元コードの双方の調整に決定した場合、計算機1は、作成した二次元コード及び取得した埋込データG21の明度の平均値を算出する。次に、計算機1は、作成した二次元コード及び取得した埋込データG21のコントラストの平均値を算出する(S103)。次に、計算機1は、算出した明度の平均値及びコントラストの平均値を参照して、取得した埋込データG21の明度、コントラスト及び色素のうちの少なくとも一つを調整する(S104)。次に、計算機1は、算出した明度の平均値及びコントラストの平均値を参照して、作成した二次元コードの明度、コントラスト及び色素のうちの少なくとも一つを調整する(S105)。以上のように、計算機1は、調整処理を行う。
【0022】
ここで図3に戻って説明を続ける。次に、計算機1は、埋込データG21の二値化(白黒階調化)処理を行う(S009)。なお、二値化処理については、図7で詳細を説明する。
【0023】
図7は、本発明の第1の実施の形態の二値化処理のフローチャートである。また、図8は、本発明の第1の実施の形態の二値化された画像データの説明図である。計算機1は、取得した埋込データG21内の明るい部分と暗い部分とを分けるための閾値を決定する(S201)。例えば、計算機1は、取得した埋込データG21の明度の平均値を算出し、算出した平均値を閾値としてもよい。また、計算機1は、閾値を以下のように決定してもよい。計算機1は、埋込データG21から、明部が高いところから順に、所定の数の明度を抽出する。次に、計算機1は、抽出した明度の平均値を算出し、明部の明度平均値とする。次に、埋込データG21から、明部が低いところから順に、所定の数の明度を抽出する。次に、計算機1は、抽出した明度の平均値を算出し、暗部の明度の平均値とする。次に、計算機1は、算出した明部の明度の平均値及び暗部の明度の平均値に基づいて、閾値を決定してもよい。これによって、当該閾値は、明度が突出した部分の影響を排除できている。
【0024】
次に、計算機1は、埋込データG21に含まれる画素(ピクセル)を順番に選択し、選択した画素ごとに以下の処理を行う(S202)。計算機1は、選択した画素の明度を算出する(S203)。次に、計算機1は、算出した明度が閾値以下であるか否かを判断する(S204)。明度が閾値以下の場合、計算機1は、選択した画素を「暗」と判定する(S206)。一方、明度が閾値より大きい場合、計算機1は、選択した画素を「明」と判定する(S205)。次に、計算機1は、ステップS202において、埋込データG21に含まれる画素をすべて選択したか否かを判定する。すべての画素を選択してない場合、計算機1は、ステップS202に戻る。そして、計算機1は、選択していない画素を選択して、処理を繰り返す。一方、すべての画素を選択した場合、計算機1は、当該二値化処理を終了する。そして、計算機1は、判定結果を記憶する。具体的には、「明」と判定した画素である明画素及び「暗」と判定された画素である暗画素を含む画像を、二値化された画像データG81として記憶する。なお、計算機1は、二値化されていない元の埋込データG21も記憶しておく。次に、計算機1は、二値化処理された画像データG81を、作成した二次元コードに仮配置する。そして、計算機1は、仮配置された二次元コードを、誤り率の算出のために用いる。計算機1は、最終的な二次元コードの出力時には、二値化された画像データG81を二次元コードに配置するのではなく、元の埋込データG21を二次元コードに配置することによって、画像付二次元コードC21を作成する。なお、計算機1は、二値化された画像データG81ではなく、元の埋込データG21を仮配置し、誤り率を算出してもよい。
【0025】
ここで図3に戻って説明を続ける。次に、計算機1は、二次元コードの誤り率が許容値以下となるまで、配置調整処理を繰り返す(S010)。配置調整処理については、図9で詳細を説明する。
【0026】
図9は、本発明の第1の実施の形態の配置調整処理のフローチャートである。まず、計算機1は、取得した配置サイズ情報I23に従って、二値化された画像データG81のサイズを変更する(S301)。次に、計算機1は、取得した配置位置情報I22に従って、変更された画像データG81を、作成した二次元コードに仮で配置する(S303)。次に、計算機1は、取得した重要配置情報I25を調べる。重要配置情報I25が、重要セルに埋込データG21を配置できないことを示す場合、計算機1は、重要セルのいずれにも、画像データG81が配置されていないかどうかを判定する(S304)。重要セルのいずれか一つにでも画像データG81が配置されている場合、当該配置位置に埋込データG81を配置できない。そこで、計算機1は、許容される範囲内のすべての位置に、画像データG81を仮配置したか否かを判定する(S308)。すべての位置に仮配置されていない場合、計算機1は、許容される範囲内のうち、仮配置されていない位置を選択する(S309)。なお、許容される範囲は、予め定まっていてもよいし、配置位置情報I22に含まれていてもよい。また、取得された配置優先情報I24が、配置位置情報I22よりも配置サイズ情報I23を優先することを示す場合には、許容される範囲は、二次元コードのすべての位置となる。一方、取得された配置優先情報I24が、配置サイズ情報I23よりも配置位置情報I22を優先することを示す場合には、許容される範囲を、配置位置情報I22で示す位置だけ又は狭い周辺だけとする。計算機1は、新たな位置を選択すると、ステップS302に戻り、選択した新たな位置に、変更された画像データG81を仮配置する(S303)。そして、計算機1は、処理を繰り返す。一方、すべての位置に仮配置した場合、計算機1は、ステップS310に進む。一方、重要配置情報I25が透過処理を示す場合(S305)、計算機1は、画像データ内の、重要セル上に配置される画素を透過処理する(S306)。透過処理とは、画像データG81から、当該画素を排除する処理である。これによって、作成される画像付二次元コードC21は、復号化が可能となる。次に、計算機1は、誤り率算出処理を行う(S310)。誤り率算出処理については、図10で詳細を説明する。一方、重要配置情報I25が、重要セルに埋込データG21が配置されてもよいことを示す場合、計算機1は、そのままステップS307に進み、誤り率算出処理を行う。
【0027】
図10は、本発明の第1の実施の形態の誤り率算出処理のフローチャートである。まず、計算機1は、作成した二次元コードに含まれるすべてのセルを順番に選択する(S401)。次に、計算機1は、選択したセルと、画像データG81内の、当該セル上に仮配置された一つ以上の画素を比較する。この比較に基づいて、計算機1は、選択したセルが、正部、誤部又は汚損部のいずれであるかを判定する(S402)。例えば、計算機1は、選択したセルが白色(明)で、且つ、画素のすべてが明画素の場合、選択したセルを正部と判定する。同様に、計算機1は、選択したセルが黒色(暗)で、且つ、画素のすべてが暗画素の場合にも、選択したセルを、正部と判定する。一方、計算機1は、選択したセルが白色(明)で、且つ、画素のすべてが暗画素の場合、選択したセルを誤部と判定する。同様に、計算機1は、選択したセルが黒色(暗)で、且つ、画素のすべてが明画素の場合にも、選択したセルを、誤部と判定する。また、計算機1は、セル上に仮配置された画素の一部が明部で、残りの一分が暗部の場合、汚損部と判定する。なお、計算機1は、選択したセルが白色(明)で、且つ、画素の一定個数以上が明画素の場合、選択したセルを正部と判定してもよい。同様に、計算機1は、選択したセルが黒色(暗)で、且つ、画素の一定個数以上が暗画素の場合、選択したセルを正部と判定してもよい。また、計算機1は、選択したセルが白色(明)で、選択したセルの中央部分の所定の領域に仮配置されたすべての画素が明画素の場合、選択したセルを正部と判定する。同様に、計算機1は、選択したセルが黒色(暗)で、選択したセルの中央部分の所定の領域に仮配置されたすべての画素が暗画素の場合、選択したセルを正部と判定する。また、計算機1は、選択したセルに、画像データが仮配置されていない場合、当該選択したセルを正部と判定する。また、計算機1は、選択したセルに、透過処理された画素が仮配置されている場合、当該セルを正部と判定する。なぜなら、透過処理された画素は、埋込データG21から削除されているからである。次に、計算機1は、ステップS401ですべてのセルを選択したか否かを判定する。すべてのセルを選択していない場合、計算機1は、ステップS401に戻り、処理を繰り返す。一方、すべてのセルを選択した場合、計算機1は、ステップS402の判定結果を用いて、誤り率を算出する(S403)。例えば、計算機1は、誤部の数をセルの数で割ることによって、誤り率を算出する。また、計算機1は、誤部の数を、誤部の数と正部の数の合計で割ることによって、誤り率を算出してもよい。
【0028】
ここで図9に戻って説明を続ける。次に、計算機1は、許容される範囲内のすべての位置に、画像データG81を仮配置したか否かを判定する(S308)。すべての位置に仮配置されていない場合、計算機1は、許容される範囲内のうち、仮配置されていない位置を選択する(S309)。なお、許容される範囲は、予め定まっていてもよいし、配置位置情報I22に含まれていてもよい。また、取得された配置優先情報I24が、配置位置情報I22よりも配置サイズ情報I23を優先することを示す場合には、許容される範囲は、二次元コードのすべての位置となる。一方、取得された配置優先情報I24が、配置サイズ情報I23よりも配置位置情報I22を優先することを示す場合には、許容される範囲を、配置位置情報I22で示す位置だけ又は狭い周辺だけとする。計算機1は、新たな位置を選択すると、ステップS302に戻り、選択した新たな位置に、画像データG81を仮配置する(S303)。そして、計算機1は、処理を繰り返す。一方、すべての位置に仮配置した場合、計算機1は、算出したすべての誤り率のうち、最も小さい誤り率を選択する。次に、計算機1は、選択した誤り率と閾値とを比較する(S310)。そして、計算機1は、誤り率が閾値以下であるか否かを判定する。誤り率が閾値より大きい場合、計算機1は、埋込データG21をこのままの大きさでは配置できない。そこで、計算機1は、画像データG81を所定のサイズだけ小さくする(S311)。所定のサイズは、一つの画素分のサイズであってもよいし、予め決まったサイズであってもよい。そして、計算機1は、ステップS301に戻り、処理を繰り返す。一方、誤り率が閾値以下の場合、計算機1は、選択した最も小さい誤り率となった配置位置及び配置サイズを記憶する(S312)。なお、計算機1は、誤り率、配置位置及び配置サイズを参照して、最適な配置位置及び配置サイズを選択し、選択した配置位置及び配置サイズを記憶してもよい。次に、計算機1は、選択した配置位置及び配置サイズに従って、元の埋込データG21を、二次元コードに配置する。なお、計算機1は、仮配置の時に透過処理した場合、元の埋込データについても透過処理を行う。そして、計算機1は、透過処理した元の埋込データG21を、二次元コードに配置する。これによって、計算機1は、画像付二次元コードC21を作成する。そして、計算機1は、作成した画像付二次元コードC21を記憶する。なお、計算機1は、作成した画像付二次元コードC21を、出力装置7に出力を指示してもよいし、通信網8を介して、他の計算機に送信してもよい。
【0029】
本発明の第1の実施の形態によれば、計算機1は、文字列情報I21及び埋込データG21を取得すると、誤り率の基準を満たした画像付二次元コードC21を出力できる。画像付二次元コードC21は、人間が文字列情報I21の内容を認識又は推測可能な二次元コードである。
【符号の説明】
【0030】
1 計算機
2 記憶装置
4 CPU
5 メモリ
6 入力装置
7 出力装置
【技術分野】
【0001】
この発明は、二次元コードを出力する計算機に関するものである。
【背景技術】
【0002】
二次元コードには、様々な種類のものが規格化されている。また、それぞれの二次元コードの出力方法は確立されている。そのため、一般に利用されている二次元コードは、それぞれの規格に関する仕様書及び規格書にもとづいて出力される(二次元コードの一種であるQRコードの規格については、非特許文献1を参照)。また、二次元コードに含まれる画素を書き換えることによって、任意のモノクロ画像を二次元コードの一部として、埋め込む技術が知られている(詳細については、特許文献1を参照)。
【先行技術文献】
【0003】
【特許文献1】 特許公開2007−34998号公報
【非特許文献1】 JIS X 0510(日本工業規格)
【発明の概要】
【発明が解決しようとする課題】
【0004】
出力された二次元コードは、目視ではランダムなモザイク模様にしか見えない。そのため、二次元コードは、読取処理(二次元コードの復号化)を行わない限り、格納されている情報を認識できなかった。そこで、特許文献1では、読取品質を確保しつつ、二次元コード内に任意のモノクロ画像を埋め込む技術が開示されている。しかしながら、特許文献1の技術では、二次元コード内にカラー画像を埋め込むことができなかった。更に、特許文献1の技術では、二次元コードに埋め込む画像の配置位置及び配置サイズを指定できなかった。そこで、本発明の代表的な形態は、前述した問題点を解決することを目的とする。
【課題を解決するための手段】
【0005】
本発明の代表的な形態は、プロセッサ、メモリ及びインターフェースを備える計算機であって、二次元コードに格納される情報及び当該二次元コードに埋め込まれる画像データを取得する第1の処理と、前記取得した情報を符号化して、二次元コードを作成する第2の処理と、前記取得した画像データの配置位置及び配置サイズを調整する第3の処理と、前記調整した配置位置及び配置サイズに従って、前記取得した画像データを、前記作成した二次元コードに仮で配置する第4の処理と、前記画像データが仮で配置された二次元コードの誤り率を算出する第5の処理と、
前記誤り率が閾値以下となるまで、第3から第5の処理を繰り返す第6の処理と、前記算出した誤り率を参照して、前記画像データの配置位置及び配置サイズを決定する第7の処理と、を行う。
【発明の効果】
【0006】
本発明によれば、二次元コードに埋め込む画像の配置位置及び配置サイズを指定できる。
【図面の簡単な説明】
【0007】
【図1】本発明の第1の実施の形態の計算機システムの構成図である。
【図2】本発明の第1の実施の形態の二次元コードの出力方法の概念図である。
【図3】本発明の第1の実施の形態の計算機システムの処理のフローチャートである。
【図4】本発明の第1の実施の形態の透過処理の説明図である。
【図5】本発明の第1の実施の形態の透過処理の説明図である。
【図6A】本発明の実施の形態の調整処理のフローチャートである。
【図6B】本発明の実施の形態の調整処理のフローチャートである。
【図6C】本発明の実施の形態の調整処理のフローチャートである。
【図7】本発明の第1の実施の形態の二値化処理のフローチャートである。
【図8】本発明の第1の実施の形態の二値化された画像の説明図である。
【図9】本発明の第1の実施の形態の配置調整処理のフローチャートである。
【図10】本発明の第1の実施の形態の誤り率算出処理のフローチャートである。
【発明を実施するための形態】
【0008】
(第1の実施の形態)
図1は、本発明の第1の実施の形態の計算機システムの構成図である。計算機システムは、計算機1、入力装置6及び出力装置7を含む。計算機1は、CPU4、メモリ5及び記憶装置2を備える。記憶装置2は、各種情報を記憶する。メモリ5は、CPU4に実行されるプログラム及びCPU4によって必要とされる情報を記憶する。CPU4は、メモリ5に記憶されたプログラムを実行することによって、各種処理を実行する。また、計算機1には、入力装置6及び出力装置7が接続される。入力装置6には、各種情報が入力される。入力装置6は、例えば、キーボード又はマウスである。出力装置7は、各種情報を出力する。出力装置7は、例えば、ディスプレイ又はプリンタである。なお、入力装置6及び出力装置7は、計算機1に含まれていてもよい。また、計算機1は、通信網8と接続されていてもよい。通信網8は、他の計算機が接続されているネットワークであればいかなるものであってもよい。例えば、通信網8は、インターネット又はイントラネットである。
【0009】
メモリ5は、二次元コード出力プログラム3を記憶する。二次元コード出力プログラム3は、CPU4によって実行されることによって、本実施の形態の各種処理を行う。具体的には、二次元コード出力プログラム3は、記憶装置2に格納されているデータを読み出す。また、二次元コード出力プログラム3は、入力装置6に入力された情報を受信する。また、二次元コード出力プログラム3は、出力装置7にデータを出力させる。更に、二次元コード出力プログラム3は、通信網8に存在する他の計算機とデータを送受信する。なお、二次元コードは、水平方向及び垂直方向に情報を持つコードであれば、いかなるものであってもよい。例えば、二次元コードは、QR Code、PDF417、A12 Maxi Code、A13 Data Matrix又はA14などである。
【0010】
図2は、本発明の第1の実施の形態の二次元コードの出力方法の概念図である。計算機1は、文字列情報I21及び埋込データG21などを受け取る。すると、計算機1は、文字列情報I21を符号化し、二次元コードを作成する。次に、計算機1は、作成した二次元コードに、埋込データG21を埋め込んだ画像付二次元コードC21を作成する。そして、計算機1は、作成した画像付二次元コードC21を出力する。なお、文字列情報I21は、符号化されて、二次元コードに格納される情報である。つまり、読取装置は、画像付二次元コードC21を読み取って復号化すると、文字列情報I21を取得できる。埋込データG21は、画像付二次元コードC21に埋め込まれる画像データである。なお、埋込データG21は、カラー画像データであってもよいし、白黒画像データであってもよい。
【0011】
図2では、文字列情報I21が「patent application」という文字列である場合を示すが、いかなる文字列であってもよい。また、埋込データG21は、ロゴ画像データであるが、いかながる画像データであってもよい。また、作成される画像付二次元コードC21は、QRコードであるが、いかなる二次元コードであってもよい。なお、QRコードは、JIS X 0510(日本工業規格)で規定されている二次元コードである。
【0012】
図3は、本発明の第1の実施の形態の計算機システムの処理のフローチャートである。計算機1は、文字列情報I21を取得する(S001)。なお、計算機1は、いかなる方法で、文字列情報I21を取得してもよい。例えば、計算機1は、文字列情報I21を、記憶装置2、メモリ5、入力装置6又は通信網8から取得する。すると、計算機1は、取得した文字列情報I21を符号化して、二次元コードを作成する。
【0013】
次に、計算機1は、埋込データG21を取得する(S002)。なお、計算機1は、いかなる方法で、埋込データG21を取得してもよい。例えば、計算機1は、埋込データG21を、記憶装置2、メモリ5、入力装置6又は通信網8から取得する。
【0014】
次に、計算機1は、透過部分情報I26を取得する(S003)。透過部分情報I26は、埋込データG21のうち、透過して表示されてもよい部分(透過可能部分)に関する情報である。なお、透過部分情報I26は、埋込データG21に含まれていてもよいし、埋込データG21と独立した情報であってもよい。例えば、透過部分情報I26は、埋込埋込データG21内の特定の色の領域を透過可能部分として示したものであってもよい。また、計算機1は、いかなる方法で、透過部分情報I26を取得してもよい。例えば、計算機1は、透過部分情報I26を、記憶装置2、メモリ5、入力装置6又は通信網8から取得する。ただし、透過部分情報I26の取得は任意で、計算機1は、透過部分情報I26を取得しなくてもよい。
【0015】
計算機1は、透過部分情報I26を取得すると、透過処理を行いながら、一連の処理を行う。図4及び図5は、本発明の第1の実施の形態の透過処理の説明図である。計算機1は、取得した透過情報に基づいて、透過可能部分を特定する。そして、計算機1は、特定した透過可能部分が所定の条件を満たすかどうかを判定する。所定の条件を満たす場合には、計算機1は、以下のすべての処理において、透過可能部分を、埋込データG21から削除してもよい。例えば、二次元コード内の所定の領域のすべてが透過可能部分に含まれる場合、計算機1は、当該所定の領域に対しては、透過可能部分を、埋込データG21から削除する。そのため、当該所定の領域には埋込データG21が被さらない。
【0016】
ここで図3に戻って説明を続ける。次に、計算機1は、配置位置情報I22を取得する(S004)。配置位置情報I22は、作成される画像付二次元コードC21内における、埋込データG21が配置される位置である。なお、配置位置情報I22は、埋込データG21が配置される位置を示していれば、いかなる方法で示されていてもよい。例えば、配置位置情報I22は、二次元コードに含まれるセルの個数を用いて、位置を示してもよい。また、配置位置情報I22は、埋込データG21に含まれる画素の数を用いて、位置を示してもよい。また、配置位置情報I22は、物理的な長さの単位を用いて、位置を示してもよい。なお、計算機1は、いかなる方法で、配置位置情報I22を取得してもよい。例えば、計算機1は、配置位置情報I22を、記憶装置2、メモリ5、入力装置6又は通信網8から取得する。ただし、配置位置情報I22の取得は任意で、計算機1は、配置位置情報I22を取得しなくてもよい。
【0017】
次に、計算機1は、配置サイズ情報I23を取得する(S005)。配置サイズ情報I23は、作成される画像付二次元コードC21内における、埋込データG21の相対的な大きさである。なお、配置サイズ情報I23は、埋込データG21の大きさを示していれば、いかなる方法で示されていてもよい。例えば、配置サイズ情報I23は、二次元コードに含まれるセルの個数を用いて、大きさを示してもよい。また、配置サイズ情報は、埋込データG21に含まれる画素の数を用いて、大きさを示してもよい。また、配置サイズ情報は、物理的な長さの単位を用いて、大きさを示してもよい。なお、計算機1は、いかなる方法で、配置サイズ情報I23を取得してもよい。例えば、計算機1は、配置サイズ情報I23を、記憶装置2、メモリ5、入力装置6又は通信網8から取得する。ただし、配置サイズ情報I23の取得は任意で、計算機1は、配置サイズ情報I23を取得しなくてもよい。
【0018】
次に、計算機1は、配置優先情報I24を取得する(S006)。配置優先情報I24は、配置位置情報I22又は配置サイズ情報I23のいずれを優先すべきかを示す。なお、計算機1は、いかなる方法で、配置優先情報I24を取得してもよい。例えば、計算機1は、配置優先情報I24を、記憶装置2、メモリ5、入力装置6又は通信網8から取得する。ただし、配置優先情報I24の取得は任意で、計算機1は、配置優先情報I24を取得しなくてもよい。
【0019】
次に、計算機1は、重要配置情報I25を取得する(S007)。重要配置情報I25は、二次元コードの復号に重要な情報が含まれるセル(重要セル)に、埋込データG21が配置されてもよいか否かを示す。なお、二次元コードの復号に重要な情報とは、欠損すると復号に大きな影響を与える情報である。例えば、画像付二次元コードC21の復号に重要な情報は、切出シンボル、マージン、タイミングパターン、フォーマット情報及びアライメントパターンを含む。また、重要配置情報I25は、透過処理を示していてもよい。この場合、計算機1は、埋込データ内の、重要セル上に配置されるすべての画素を透過処理する。なお、計算機1は、いかなる方法で、重要配置情報I25を取得してもよい。例えば、計算機1は、重要配置情報I25を、記憶装置2、メモリ5、入力装置6又は通信網8から取得する。ただし、重要配置情報I25の取得は任意で、計算機1は、重要配置情報I25を取得しなくてもよい。
【0020】
次に、計算機1は、調整処理を実行する(S008)。調整処理は、読取装置による画像付二次元コードC21の読み取り精度を向上させるための処理である。なお、調整処理については、図6A、図6B及び図6Cで詳細を説明する。
【0021】
図6A、図6B及び図6Cは、本発明の実施の形態の調整処理のフローチャートである。なお、図6Aは、埋込データG21のみを調整する場合である。また、図6Bは、二次元コードのみを調整する場合である。また、図6Cは、埋込データG21及び二次元コードの双方を調整する場合である。計算機1は、埋込データG21のみの調整、二次元コードのみの調整、又は、埋込データG21及び二次元コードの双方の調整のいずれかを任意の方法で決定する。埋込データG21のみの調整に決定した場合、計算機1は、作成した二次元コードの明度及びコントラストのうちの少なくとも一方を参照して、取得した埋込データG21の明度、コントラスト及び色素のうちの少なくとも一つを調整する(S101)。一方、二次元コードのみの調整に決定した場合、取得した埋込データG21の明度及びコントラストのうちの少なくとも一方を参照して、作成した二次元コードの明度、コントラスト及び色素のうちの少なくとも一つを調整する(S102)。一方、埋込データG21及び二次元コードの双方の調整に決定した場合、計算機1は、作成した二次元コード及び取得した埋込データG21の明度の平均値を算出する。次に、計算機1は、作成した二次元コード及び取得した埋込データG21のコントラストの平均値を算出する(S103)。次に、計算機1は、算出した明度の平均値及びコントラストの平均値を参照して、取得した埋込データG21の明度、コントラスト及び色素のうちの少なくとも一つを調整する(S104)。次に、計算機1は、算出した明度の平均値及びコントラストの平均値を参照して、作成した二次元コードの明度、コントラスト及び色素のうちの少なくとも一つを調整する(S105)。以上のように、計算機1は、調整処理を行う。
【0022】
ここで図3に戻って説明を続ける。次に、計算機1は、埋込データG21の二値化(白黒階調化)処理を行う(S009)。なお、二値化処理については、図7で詳細を説明する。
【0023】
図7は、本発明の第1の実施の形態の二値化処理のフローチャートである。また、図8は、本発明の第1の実施の形態の二値化された画像データの説明図である。計算機1は、取得した埋込データG21内の明るい部分と暗い部分とを分けるための閾値を決定する(S201)。例えば、計算機1は、取得した埋込データG21の明度の平均値を算出し、算出した平均値を閾値としてもよい。また、計算機1は、閾値を以下のように決定してもよい。計算機1は、埋込データG21から、明部が高いところから順に、所定の数の明度を抽出する。次に、計算機1は、抽出した明度の平均値を算出し、明部の明度平均値とする。次に、埋込データG21から、明部が低いところから順に、所定の数の明度を抽出する。次に、計算機1は、抽出した明度の平均値を算出し、暗部の明度の平均値とする。次に、計算機1は、算出した明部の明度の平均値及び暗部の明度の平均値に基づいて、閾値を決定してもよい。これによって、当該閾値は、明度が突出した部分の影響を排除できている。
【0024】
次に、計算機1は、埋込データG21に含まれる画素(ピクセル)を順番に選択し、選択した画素ごとに以下の処理を行う(S202)。計算機1は、選択した画素の明度を算出する(S203)。次に、計算機1は、算出した明度が閾値以下であるか否かを判断する(S204)。明度が閾値以下の場合、計算機1は、選択した画素を「暗」と判定する(S206)。一方、明度が閾値より大きい場合、計算機1は、選択した画素を「明」と判定する(S205)。次に、計算機1は、ステップS202において、埋込データG21に含まれる画素をすべて選択したか否かを判定する。すべての画素を選択してない場合、計算機1は、ステップS202に戻る。そして、計算機1は、選択していない画素を選択して、処理を繰り返す。一方、すべての画素を選択した場合、計算機1は、当該二値化処理を終了する。そして、計算機1は、判定結果を記憶する。具体的には、「明」と判定した画素である明画素及び「暗」と判定された画素である暗画素を含む画像を、二値化された画像データG81として記憶する。なお、計算機1は、二値化されていない元の埋込データG21も記憶しておく。次に、計算機1は、二値化処理された画像データG81を、作成した二次元コードに仮配置する。そして、計算機1は、仮配置された二次元コードを、誤り率の算出のために用いる。計算機1は、最終的な二次元コードの出力時には、二値化された画像データG81を二次元コードに配置するのではなく、元の埋込データG21を二次元コードに配置することによって、画像付二次元コードC21を作成する。なお、計算機1は、二値化された画像データG81ではなく、元の埋込データG21を仮配置し、誤り率を算出してもよい。
【0025】
ここで図3に戻って説明を続ける。次に、計算機1は、二次元コードの誤り率が許容値以下となるまで、配置調整処理を繰り返す(S010)。配置調整処理については、図9で詳細を説明する。
【0026】
図9は、本発明の第1の実施の形態の配置調整処理のフローチャートである。まず、計算機1は、取得した配置サイズ情報I23に従って、二値化された画像データG81のサイズを変更する(S301)。次に、計算機1は、取得した配置位置情報I22に従って、変更された画像データG81を、作成した二次元コードに仮で配置する(S303)。次に、計算機1は、取得した重要配置情報I25を調べる。重要配置情報I25が、重要セルに埋込データG21を配置できないことを示す場合、計算機1は、重要セルのいずれにも、画像データG81が配置されていないかどうかを判定する(S304)。重要セルのいずれか一つにでも画像データG81が配置されている場合、当該配置位置に埋込データG81を配置できない。そこで、計算機1は、許容される範囲内のすべての位置に、画像データG81を仮配置したか否かを判定する(S308)。すべての位置に仮配置されていない場合、計算機1は、許容される範囲内のうち、仮配置されていない位置を選択する(S309)。なお、許容される範囲は、予め定まっていてもよいし、配置位置情報I22に含まれていてもよい。また、取得された配置優先情報I24が、配置位置情報I22よりも配置サイズ情報I23を優先することを示す場合には、許容される範囲は、二次元コードのすべての位置となる。一方、取得された配置優先情報I24が、配置サイズ情報I23よりも配置位置情報I22を優先することを示す場合には、許容される範囲を、配置位置情報I22で示す位置だけ又は狭い周辺だけとする。計算機1は、新たな位置を選択すると、ステップS302に戻り、選択した新たな位置に、変更された画像データG81を仮配置する(S303)。そして、計算機1は、処理を繰り返す。一方、すべての位置に仮配置した場合、計算機1は、ステップS310に進む。一方、重要配置情報I25が透過処理を示す場合(S305)、計算機1は、画像データ内の、重要セル上に配置される画素を透過処理する(S306)。透過処理とは、画像データG81から、当該画素を排除する処理である。これによって、作成される画像付二次元コードC21は、復号化が可能となる。次に、計算機1は、誤り率算出処理を行う(S310)。誤り率算出処理については、図10で詳細を説明する。一方、重要配置情報I25が、重要セルに埋込データG21が配置されてもよいことを示す場合、計算機1は、そのままステップS307に進み、誤り率算出処理を行う。
【0027】
図10は、本発明の第1の実施の形態の誤り率算出処理のフローチャートである。まず、計算機1は、作成した二次元コードに含まれるすべてのセルを順番に選択する(S401)。次に、計算機1は、選択したセルと、画像データG81内の、当該セル上に仮配置された一つ以上の画素を比較する。この比較に基づいて、計算機1は、選択したセルが、正部、誤部又は汚損部のいずれであるかを判定する(S402)。例えば、計算機1は、選択したセルが白色(明)で、且つ、画素のすべてが明画素の場合、選択したセルを正部と判定する。同様に、計算機1は、選択したセルが黒色(暗)で、且つ、画素のすべてが暗画素の場合にも、選択したセルを、正部と判定する。一方、計算機1は、選択したセルが白色(明)で、且つ、画素のすべてが暗画素の場合、選択したセルを誤部と判定する。同様に、計算機1は、選択したセルが黒色(暗)で、且つ、画素のすべてが明画素の場合にも、選択したセルを、誤部と判定する。また、計算機1は、セル上に仮配置された画素の一部が明部で、残りの一分が暗部の場合、汚損部と判定する。なお、計算機1は、選択したセルが白色(明)で、且つ、画素の一定個数以上が明画素の場合、選択したセルを正部と判定してもよい。同様に、計算機1は、選択したセルが黒色(暗)で、且つ、画素の一定個数以上が暗画素の場合、選択したセルを正部と判定してもよい。また、計算機1は、選択したセルが白色(明)で、選択したセルの中央部分の所定の領域に仮配置されたすべての画素が明画素の場合、選択したセルを正部と判定する。同様に、計算機1は、選択したセルが黒色(暗)で、選択したセルの中央部分の所定の領域に仮配置されたすべての画素が暗画素の場合、選択したセルを正部と判定する。また、計算機1は、選択したセルに、画像データが仮配置されていない場合、当該選択したセルを正部と判定する。また、計算機1は、選択したセルに、透過処理された画素が仮配置されている場合、当該セルを正部と判定する。なぜなら、透過処理された画素は、埋込データG21から削除されているからである。次に、計算機1は、ステップS401ですべてのセルを選択したか否かを判定する。すべてのセルを選択していない場合、計算機1は、ステップS401に戻り、処理を繰り返す。一方、すべてのセルを選択した場合、計算機1は、ステップS402の判定結果を用いて、誤り率を算出する(S403)。例えば、計算機1は、誤部の数をセルの数で割ることによって、誤り率を算出する。また、計算機1は、誤部の数を、誤部の数と正部の数の合計で割ることによって、誤り率を算出してもよい。
【0028】
ここで図9に戻って説明を続ける。次に、計算機1は、許容される範囲内のすべての位置に、画像データG81を仮配置したか否かを判定する(S308)。すべての位置に仮配置されていない場合、計算機1は、許容される範囲内のうち、仮配置されていない位置を選択する(S309)。なお、許容される範囲は、予め定まっていてもよいし、配置位置情報I22に含まれていてもよい。また、取得された配置優先情報I24が、配置位置情報I22よりも配置サイズ情報I23を優先することを示す場合には、許容される範囲は、二次元コードのすべての位置となる。一方、取得された配置優先情報I24が、配置サイズ情報I23よりも配置位置情報I22を優先することを示す場合には、許容される範囲を、配置位置情報I22で示す位置だけ又は狭い周辺だけとする。計算機1は、新たな位置を選択すると、ステップS302に戻り、選択した新たな位置に、画像データG81を仮配置する(S303)。そして、計算機1は、処理を繰り返す。一方、すべての位置に仮配置した場合、計算機1は、算出したすべての誤り率のうち、最も小さい誤り率を選択する。次に、計算機1は、選択した誤り率と閾値とを比較する(S310)。そして、計算機1は、誤り率が閾値以下であるか否かを判定する。誤り率が閾値より大きい場合、計算機1は、埋込データG21をこのままの大きさでは配置できない。そこで、計算機1は、画像データG81を所定のサイズだけ小さくする(S311)。所定のサイズは、一つの画素分のサイズであってもよいし、予め決まったサイズであってもよい。そして、計算機1は、ステップS301に戻り、処理を繰り返す。一方、誤り率が閾値以下の場合、計算機1は、選択した最も小さい誤り率となった配置位置及び配置サイズを記憶する(S312)。なお、計算機1は、誤り率、配置位置及び配置サイズを参照して、最適な配置位置及び配置サイズを選択し、選択した配置位置及び配置サイズを記憶してもよい。次に、計算機1は、選択した配置位置及び配置サイズに従って、元の埋込データG21を、二次元コードに配置する。なお、計算機1は、仮配置の時に透過処理した場合、元の埋込データについても透過処理を行う。そして、計算機1は、透過処理した元の埋込データG21を、二次元コードに配置する。これによって、計算機1は、画像付二次元コードC21を作成する。そして、計算機1は、作成した画像付二次元コードC21を記憶する。なお、計算機1は、作成した画像付二次元コードC21を、出力装置7に出力を指示してもよいし、通信網8を介して、他の計算機に送信してもよい。
【0029】
本発明の第1の実施の形態によれば、計算機1は、文字列情報I21及び埋込データG21を取得すると、誤り率の基準を満たした画像付二次元コードC21を出力できる。画像付二次元コードC21は、人間が文字列情報I21の内容を認識又は推測可能な二次元コードである。
【符号の説明】
【0030】
1 計算機
2 記憶装置
4 CPU
5 メモリ
6 入力装置
7 出力装置
【特許請求の範囲】
【請求項1】
プロセッサ、メモリ及びインターフェースを備える計算機であって、
二次元コードに格納される情報及び当該二次元コードに埋め込まれる画像データを取得する第1の処理と、
前記取得した情報を符号化して、二次元コードを作成する第2の処理と、
前記取得した画像データの配置位置及び配置サイズを調整する第3の処理と、
前記調整した配置位置及び配置サイズに従って、前記取得した画像データを、前記作成した二次元コードに仮で配置する第4の処理と、
前記画像データが仮で配置された二次元コードの誤り率を算出する第5の処理と、
前記誤り率が閾値以下となるまで、第3から第5の処理を繰り返す第6の処理と、
前記算出した誤り率を参照して、前記画像データの配置位置及び配置サイズを決定する第7の処理と、
を行うことを特徴とする計算機。
【請求項2】
更に、前記決定された画像データの配置位置及び配置サイズに基づいて、前記取得した画像データを、前記作成した二次元コードに配置する第8の処理と、
前記画像データが配置された二次元コードを出力する第9の処理と、
を行うことを特徴とする請求項1に記載の計算機
【請求項3】
更に、前記取得した画像データに含まれる画素を明部と暗部とに分ける二値化処理を行う第10の処理を行い、
前記第4の処理では、前記取得した画像データの代わりに、前記二値化処理を行った画像データを、前記作成した二次元コードに仮で配置することを特徴する請求項1に記載の計算機。
【請求項4】
前記第5の処理では、
前記二次元コードに仮配置した二値化処理した画像データを用いて、前記二次元コードに含まれるセルごとに正又は誤を判定し、
前記セルごとの正誤の判定結果を参照して、誤り率を算出することを特徴とする請求項3に記載の計算機。
【請求項5】
更に、配置位置又は配置サイズのいずれを優先するかを決定する第11の処理を行い、
第3の処理では、前記第11の処理の決定結果に基づいて、前記取得した画像データの配置位置及び配置サイズを調整することを特徴とする請求項1に記載の計算機。
【請求項6】
更に、前記作成された二次元コード内の復号に重要な部分に、前記取得した画像データが仮で配置されているか否かを判定する第12の処理を行い、
前記第6の処理では、前記算出した誤り率に加えて、前記第12の処理の判定結果を参照することを特徴とする請求項1の計算機。
【請求項7】
更に、前記作成された二次元コード内の復号に重要な部分に、前記取得した画像データが仮で配置されている場合、前記取得された画像データ内の、当該重要な部分に対応する部分を透過処理する第13の処理を行うことを特徴とする請求項1に記載の計算機。
【請求項8】
二次元コードに格納される情報及び当該二次元コードに埋め込まれる画像データを取得する第1の処理と、
前記取得した情報を符号化して、二次元コードを作成する第2の処理と、
前記取得した画像データの配置位置及び配置サイズを調整する第3の処理と、
前記調整した配置位置及び配置サイズに従って、前記取得した画像データを、前記作成した二次元コードに仮で配置する第4の処理と、
前記画像データが仮で配置された二次元コードの誤り率を算出する第5の処理と、
前記誤り率が閾値以下となるまで、第3から第5の処理を繰り返す第6の処理と、
前記算出した誤り率を参照して、前記画像データの配置位置及び配置サイズを決定する第7の処理と、
を計算機に実行させることを特徴とするプログラム。
【請求項9】
更に、前記決定された画像データの配置位置及び配置サイズに基づいて、前記取得した画像データを、前記作成した二次元コードに配置する第8の処理と、
前記画像データが配置された二次元コードを出力する第9の処理と、
を前記計算機に実行させることを特徴とする請求項8に記載のプログラム。
【請求項10】
更に、前記取得した画像データに含まれる画素を明部と暗部とに分ける二値化処理を行う第10の処理を前記計算機に実行させ、
前記第4の処理では、前記取得した画像データの代わりに、前記二値化処理を行った画像データを、前記作成した二次元コードに仮で配置することを特徴する請求項8に記載のプログラム。
【請求項11】
前記第5の処理では、
前記二次元コードに仮配置した二値化処理した画像データを用いて、前記二次元コードに含まれるセルごとに正又は誤を判定し、
前記セルごとの正誤の判定結果を参照して、誤り率を算出することを特徴とする請求項10に記載のプログラム。
【請求項12】
更に、配置位置又は配置サイズのいずれを優先するかを決定する第11の処理を前記計算機に実行させ、
第3の処理では、前記第11の処理の決定結果に基づいて、前記取得した画像データの配置位置及び配置サイズを調整することを特徴とする請求項8に記載のプログラム。
【請求項13】
更に、前記作成された二次元コード内の復号に重要な部分に、前記取得した画像データが仮で配置されているか否かを判定する第12の処理を前記計算機に実行させ、
前記第6の処理では、前記算出した誤り率に加えて、前記第12の処理の判定結果を参照することを特徴とする請求項8に記載のプログラム。
【請求項14】
更に、前記作成された二次元コード内の復号に重要な部分に、前記取得した画像データが仮で配置されている場合、前記取得された画像データ内の、当該重要な部分に対応する部分を透過処理する第13の処理を前記計算機に実行させる請求項8に記載のプログラム。
【請求項1】
プロセッサ、メモリ及びインターフェースを備える計算機であって、
二次元コードに格納される情報及び当該二次元コードに埋め込まれる画像データを取得する第1の処理と、
前記取得した情報を符号化して、二次元コードを作成する第2の処理と、
前記取得した画像データの配置位置及び配置サイズを調整する第3の処理と、
前記調整した配置位置及び配置サイズに従って、前記取得した画像データを、前記作成した二次元コードに仮で配置する第4の処理と、
前記画像データが仮で配置された二次元コードの誤り率を算出する第5の処理と、
前記誤り率が閾値以下となるまで、第3から第5の処理を繰り返す第6の処理と、
前記算出した誤り率を参照して、前記画像データの配置位置及び配置サイズを決定する第7の処理と、
を行うことを特徴とする計算機。
【請求項2】
更に、前記決定された画像データの配置位置及び配置サイズに基づいて、前記取得した画像データを、前記作成した二次元コードに配置する第8の処理と、
前記画像データが配置された二次元コードを出力する第9の処理と、
を行うことを特徴とする請求項1に記載の計算機
【請求項3】
更に、前記取得した画像データに含まれる画素を明部と暗部とに分ける二値化処理を行う第10の処理を行い、
前記第4の処理では、前記取得した画像データの代わりに、前記二値化処理を行った画像データを、前記作成した二次元コードに仮で配置することを特徴する請求項1に記載の計算機。
【請求項4】
前記第5の処理では、
前記二次元コードに仮配置した二値化処理した画像データを用いて、前記二次元コードに含まれるセルごとに正又は誤を判定し、
前記セルごとの正誤の判定結果を参照して、誤り率を算出することを特徴とする請求項3に記載の計算機。
【請求項5】
更に、配置位置又は配置サイズのいずれを優先するかを決定する第11の処理を行い、
第3の処理では、前記第11の処理の決定結果に基づいて、前記取得した画像データの配置位置及び配置サイズを調整することを特徴とする請求項1に記載の計算機。
【請求項6】
更に、前記作成された二次元コード内の復号に重要な部分に、前記取得した画像データが仮で配置されているか否かを判定する第12の処理を行い、
前記第6の処理では、前記算出した誤り率に加えて、前記第12の処理の判定結果を参照することを特徴とする請求項1の計算機。
【請求項7】
更に、前記作成された二次元コード内の復号に重要な部分に、前記取得した画像データが仮で配置されている場合、前記取得された画像データ内の、当該重要な部分に対応する部分を透過処理する第13の処理を行うことを特徴とする請求項1に記載の計算機。
【請求項8】
二次元コードに格納される情報及び当該二次元コードに埋め込まれる画像データを取得する第1の処理と、
前記取得した情報を符号化して、二次元コードを作成する第2の処理と、
前記取得した画像データの配置位置及び配置サイズを調整する第3の処理と、
前記調整した配置位置及び配置サイズに従って、前記取得した画像データを、前記作成した二次元コードに仮で配置する第4の処理と、
前記画像データが仮で配置された二次元コードの誤り率を算出する第5の処理と、
前記誤り率が閾値以下となるまで、第3から第5の処理を繰り返す第6の処理と、
前記算出した誤り率を参照して、前記画像データの配置位置及び配置サイズを決定する第7の処理と、
を計算機に実行させることを特徴とするプログラム。
【請求項9】
更に、前記決定された画像データの配置位置及び配置サイズに基づいて、前記取得した画像データを、前記作成した二次元コードに配置する第8の処理と、
前記画像データが配置された二次元コードを出力する第9の処理と、
を前記計算機に実行させることを特徴とする請求項8に記載のプログラム。
【請求項10】
更に、前記取得した画像データに含まれる画素を明部と暗部とに分ける二値化処理を行う第10の処理を前記計算機に実行させ、
前記第4の処理では、前記取得した画像データの代わりに、前記二値化処理を行った画像データを、前記作成した二次元コードに仮で配置することを特徴する請求項8に記載のプログラム。
【請求項11】
前記第5の処理では、
前記二次元コードに仮配置した二値化処理した画像データを用いて、前記二次元コードに含まれるセルごとに正又は誤を判定し、
前記セルごとの正誤の判定結果を参照して、誤り率を算出することを特徴とする請求項10に記載のプログラム。
【請求項12】
更に、配置位置又は配置サイズのいずれを優先するかを決定する第11の処理を前記計算機に実行させ、
第3の処理では、前記第11の処理の決定結果に基づいて、前記取得した画像データの配置位置及び配置サイズを調整することを特徴とする請求項8に記載のプログラム。
【請求項13】
更に、前記作成された二次元コード内の復号に重要な部分に、前記取得した画像データが仮で配置されているか否かを判定する第12の処理を前記計算機に実行させ、
前記第6の処理では、前記算出した誤り率に加えて、前記第12の処理の判定結果を参照することを特徴とする請求項8に記載のプログラム。
【請求項14】
更に、前記作成された二次元コード内の復号に重要な部分に、前記取得した画像データが仮で配置されている場合、前記取得された画像データ内の、当該重要な部分に対応する部分を透過処理する第13の処理を前記計算機に実行させる請求項8に記載のプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6A】
【図6B】
【図6C】
【図7】
【図8】
【図9】
【図10】
【図2】
【図3】
【図4】
【図5】
【図6A】
【図6B】
【図6C】
【図7】
【図8】
【図9】
【図10】
【公開番号】特開2013−25782(P2013−25782A)
【公開日】平成25年2月4日(2013.2.4)
【国際特許分類】
【出願番号】特願2011−174335(P2011−174335)
【出願日】平成23年7月25日(2011.7.25)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.QRコード
【出願人】(511195161)
【Fターム(参考)】
【公開日】平成25年2月4日(2013.2.4)
【国際特許分類】
【出願日】平成23年7月25日(2011.7.25)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.QRコード
【出願人】(511195161)
【Fターム(参考)】
[ Back to top ]