(57)【特許請求の範囲】
【請求項１】
画像を受け付ける画像受付手段と、
前記画像受付手段によって受け付けられた画像に付加する情報を受け付ける情報受付手段と、
前記情報受付手段によって受け付けられた情報を符号化する符号化手段と、
矩形内の行に、二進数における０又は１の連続した第１の情報を表しており、連続した画素塊を配置した系列である第１の画素系列と、
前記矩形内の列に、二進数における０又は１の連続した第２の情報を表しており、連続した画素塊を配置した系列である第２の画素系列と、
前記矩形内の行であって前記第１の画素系列と予め定められた位置に、第３の情報を表す画素塊を配置した系列である第３の画素系列と、
前記矩形内の列であって前記第２の画素系列と予め定められた位置に、第４の情報を表す画素塊を配置した系列である第４の画素系列と、
前記矩形内の前記第１の画素系列、第２の画素系列、第３の画素系列、第４の画素系列以外の領域に、情報画像内に埋め込まれる情報である第５の情報を表す画素塊を配置した系列である第５の画素系列
を配置しており、
前記第３の情報と前記第４の情報との情報空間における距離、該第３の情報と該第３の情報を反転した情報との情報空間における距離、該第３の情報と該第４の情報を反転した情報との情報空間における距離、該第３の情報と二進数における０又は１が連続している情報との情報空間における距離、該第４の情報と該第４の情報を反転した情報との情報空間における距離、該第４の情報と該第３の情報を反転した情報との情報空間における距離、該第４の情報と二進数における０又は１が連続している情報との情報空間における距離に基づいて、該第３の情報及び該第４の情報は定められている情報画像における第１の画素系列、第２の画素系列、第３の画素系列、第４の画素系列、前記符号化手段によって符号化された情報の第５の画素系列に基づいて、該情報画像を生成する生成手段と、
前記画像受付手段によって受け付けられた画像に前記生成手段によって生成された情報画像を合成する合成手段と、
前記合成手段によって合成された画像を出力する出力手段
を具備することを特徴とする画像処理装置。
【請求項２】
矩形内の行に、二進数における０又は１の連続した第１の情報を表しており、連続した画素塊を配置した系列である第１の画素系列と、
前記矩形内の列に、二進数における０又は１の連続した第２の情報を表しており、連続した画素塊を配置した系列である第２の画素系列と、
前記矩形内の行であって前記第１の画素系列と予め定められた位置に、第３の情報を表す画素塊を配置した系列である第３の画素系列と、
前記矩形内の列であって前記第２の画素系列と予め定められた位置に、第４の情報を表す画素塊を配置した系列である第４の画素系列と、
前記矩形内の前記第１の画素系列、第２の画素系列、第３の画素系列、第４の画素系列以外の領域に、情報画像内に埋め込まれる情報である第５の情報を表す画素塊を配置した系列である第５の画素系列
を配置しており、
前記第３の情報と前記第４の情報との情報空間における距離、該第３の情報と該第３の情報を反転した情報との情報空間における距離、該第３の情報と該第４の情報を反転した情報との情報空間における距離、該第３の情報と二進数における０又は１が連続している情報との情報空間における距離、該第４の情報と該第４の情報を反転した情報との情報空間における距離、該第４の情報と該第３の情報を反転した情報との情報空間における距離、該第４の情報と二進数における０又は１が連続している情報との情報空間における距離に基づいて、該第３の情報及び該第４の情報は定められている情報画像が合成された画像を受け付ける受付手段と、
前記受付手段によって受け付けられた画像内の前記情報画像における第１の画素系列又は第２の画素系列を検出する画素系列検出手段と、
前記画素系列検出手段によって検出された第１の画素系列又は第２の画素系列に基づいて、第３の画素系列又は第４の画素系列を検出し、前記情報画像の予め定められた位置である同期位置及び前記画像の回転角を検出する同期位置・回転角検出手段と、
前記同期位置・回転角検出手段によって検出された前記情報画像の同期位置及び前記画像の回転角に基づいて、前記画像に合成された情報画像内の第５の画素系列を検出する検出手段と、
前記検出手段によって検出された第５の画素系列を復号する復号手段と、
前記復号手段によって復号された情報画像内に埋め込まれた情報を出力する出力手段
を具備することを特徴とする画像処理装置。
【請求項３】
前記受付手段によって受け付けられた画像内の画素塊が隣り合う組を検出し、該画素塊の組に基づいて、該画像の回転角を検出する回転角検出手段
をさらに具備し、
前記画素系列検出手段は、前記回転角検出手段によって検出された回転角に基づいて、第１の画素系列又は第２の画素系列を検出する
ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
画像を受け付ける第１の画像受付手段と、
前記第１の画像受付手段によって受け付けられた画像に付加する情報を受け付ける情報受付手段と、
前記情報受付手段によって受け付けられた情報を符号化する符号化手段と、
矩形内の行に、二進数における０又は１の連続した第１の情報を表しており、連続した画素塊を配置した系列である第１の画素系列と、
前記矩形内の列に、二進数における０又は１の連続した第２の情報を表しており、連続した画素塊を配置した系列である第２の画素系列と、
前記矩形内の行であって前記第１の画素系列と予め定められた位置に、第３の情報を表す画素塊を配置した系列である第３の画素系列と、
前記矩形内の列であって前記第２の画素系列と予め定められた位置に、第４の情報を表す画素塊を配置した系列である第４の画素系列と、
前記矩形内の前記第１の画素系列、第２の画素系列、第３の画素系列、第４の画素系列以外の領域に、情報画像内に埋め込まれる情報である第５の情報を表す画素塊を配置した系列である第５の画素系列
を配置しており、
前記第３の情報と前記第４の情報との情報空間における距離、該第３の情報と該第３の情報を反転した情報との情報空間における距離、該第３の情報と該第４の情報を反転した情報との情報空間における距離、該第３の情報と二進数における０又は１が連続している情報との情報空間における距離、該第４の情報と該第４の情報を反転した情報との情報空間における距離、該第４の情報と該第３の情報を反転した情報との情報空間における距離、該第４の情報と二進数における０又は１が連続している情報との情報空間における距離に基づいて、該第３の情報及び該第４の情報は定められている情報画像における第１の画素系列、第２の画素系列、第３の画素系列、第４の画素系列、前記符号化手段によって符号化された情報の第５の画素系列に基づいて、該情報画像を生成する生成手段と、
前記第１の画像受付手段によって受け付けられた画像に前記生成手段によって生成された情報画像を合成する合成手段と、
前記合成手段によって合成された画像を出力する画像出力手段と、
前記画像出力手段によって出力された画像を受け付ける第２の画像受付手段と、
前記第２の画像受付手段によって受け付けられた画像内の前記情報画像における第１の画素系列又は第２の画素系列を検出する画素系列検出手段と、
前記画素系列検出手段によって検出された第１の画素系列又は第２の画素系列に基づいて、第３の画素系列又は第４の画素系列を検出し、前記情報画像の予め定められた位置である同期位置及び前記画像の回転角を検出する同期位置・回転角検出手段と、
前記同期位置・回転角検出手段によって検出された前記情報画像の同期位置及び前記画像の回転角に基づいて、前記画像に合成された情報画像内の第５の画素系列を検出する検出手段と、
前記検出手段によって検出された第５の画素系列を復号する復号手段と、
前記復号手段によって復号された情報画像内に埋め込まれた情報を出力する出力手段
を具備することを特徴とする画像処理装置。
【請求項５】
コンピュータを、
画像を受け付ける画像受付手段と、
前記画像受付手段によって受け付けられた画像に付加する情報を受け付ける情報受付手段と、
前記情報受付手段によって受け付けられた情報を符号化する符号化手段と、
矩形内の行に、二進数における０又は１の連続した第１の情報を表しており、連続した画素塊を配置した系列である第１の画素系列と、
前記矩形内の列に、二進数における０又は１の連続した第２の情報を表しており、連続した画素塊を配置した系列である第２の画素系列と、
前記矩形内の行であって前記第１の画素系列と予め定められた位置に、第３の情報を表す画素塊を配置した系列である第３の画素系列と、
前記矩形内の列であって前記第２の画素系列と予め定められた位置に、第４の情報を表す画素塊を配置した系列である第４の画素系列と、
前記矩形内の前記第１の画素系列、第２の画素系列、第３の画素系列、第４の画素系列以外の領域に、情報画像内に埋め込まれる情報である第５の情報を表す画素塊を配置した系列である第５の画素系列
を配置しており、
前記第３の情報と前記第４の情報との情報空間における距離、該第３の情報と該第３の情報を反転した情報との情報空間における距離、該第３の情報と該第４の情報を反転した情報との情報空間における距離、該第３の情報と二進数における０又は１が連続している情報との情報空間における距離、該第４の情報と該第４の情報を反転した情報との情報空間における距離、該第４の情報と該第３の情報を反転した情報との情報空間における距離、該第４の情報と二進数における０又は１が連続している情報との情報空間における距離に基づいて、該第３の情報及び該第４の情報は定められている情報画像における第１の画素系列、第２の画素系列、第３の画素系列、第４の画素系列、前記符号化手段によって符号化された情報の第５の画素系列に基づいて、該情報画像を生成する生成手段と、
前記画像受付手段によって受け付けられた画像に前記生成手段によって生成された情報画像を合成する合成手段と、
前記合成手段によって合成された画像を出力する出力手段
として機能させることを特徴とする画像処理プログラム。
【請求項６】
コンピュータを、
矩形内の行に、二進数における０又は１の連続した第１の情報を表しており、連続した画素塊を配置した系列である第１の画素系列と、
前記矩形内の列に、二進数における０又は１の連続した第２の情報を表しており、連続した画素塊を配置した系列である第２の画素系列と、
前記矩形内の行であって前記第１の画素系列と予め定められた位置に、第３の情報を表す画素塊を配置した系列である第３の画素系列と、
前記矩形内の列であって前記第２の画素系列と予め定められた位置に、第４の情報を表す画素塊を配置した系列である第４の画素系列と、
前記矩形内の前記第１の画素系列、第２の画素系列、第３の画素系列、第４の画素系列以外の領域に、情報画像内に埋め込まれる情報である第５の情報を表す画素塊を配置した系列である第５の画素系列
を配置しており、
前記第３の情報と前記第４の情報との情報空間における距離、該第３の情報と該第３の情報を反転した情報との情報空間における距離、該第３の情報と該第４の情報を反転した情報との情報空間における距離、該第３の情報と二進数における０又は１が連続している情報との情報空間における距離、該第４の情報と該第４の情報を反転した情報との情報空間における距離、該第４の情報と該第３の情報を反転した情報との情報空間における距離、該第４の情報と二進数における０又は１が連続している情報との情報空間における距離に基づいて、該第３の情報及び該第４の情報は定められている情報画像が合成された画像を受け付ける受付手段と、
前記受付手段によって受け付けられた画像内の前記情報画像における第１の画素系列又は第２の画素系列を検出する画素系列検出手段と、
前記画素系列検出手段によって検出された第１の画素系列又は第２の画素系列に基づいて、第３の画素系列又は第４の画素系列を検出し、前記情報画像の予め定められた位置である同期位置及び前記画像の回転角を検出する同期位置・回転角検出手段と、
前記同期位置・回転角検出手段によって検出された前記情報画像の同期位置及び前記画像の回転角に基づいて、前記画像に合成された情報画像内の第５の画素系列を検出する検出手段と、
前記検出手段によって検出された第５の画素系列を復号する復号手段と、
前記復号手段によって復号された情報画像内に埋め込まれた情報を出力する出力手段
として機能させることを特徴とする画像処理プログラム。
【請求項７】
コンピュータを、
画像を受け付ける第１の画像受付手段と、
前記第１の画像受付手段によって受け付けられた画像に付加する情報を受け付ける情報受付手段と、
前記情報受付手段によって受け付けられた情報を符号化する符号化手段と、
矩形内の行に、二進数における０又は１の連続した第１の情報を表しており、連続した画素塊を配置した系列である第１の画素系列と、
前記矩形内の列に、二進数における０又は１の連続した第２の情報を表しており、連続した画素塊を配置した系列である第２の画素系列と、
前記矩形内の行であって前記第１の画素系列と予め定められた位置に、第３の情報を表す画素塊を配置した系列である第３の画素系列と、
前記矩形内の列であって前記第２の画素系列と予め定められた位置に、第４の情報を表す画素塊を配置した系列である第４の画素系列と、
前記矩形内の前記第１の画素系列、第２の画素系列、第３の画素系列、第４の画素系列以外の領域に、情報画像内に埋め込まれる情報である第５の情報を表す画素塊を配置した系列である第５の画素系列
を配置しており、
前記第３の情報と前記第４の情報との情報空間における距離、該第３の情報と該第３の情報を反転した情報との情報空間における距離、該第３の情報と該第４の情報を反転した情報との情報空間における距離、該第３の情報と二進数における０又は１が連続している情報との情報空間における距離、該第４の情報と該第４の情報を反転した情報との情報空間における距離、該第４の情報と該第３の情報を反転した情報との情報空間における距離、該第４の情報と二進数における０又は１が連続している情報との情報空間における距離に基づいて、該第３の情報及び該第４の情報は定められている情報画像における第１の画素系列、第２の画素系列、第３の画素系列、第４の画素系列、前記符号化手段によって符号化された情報の第５の画素系列に基づいて、該情報画像を生成する生成手段と、
前記第１の画像受付手段によって受け付けられた画像に前記生成手段によって生成された情報画像を合成する合成手段と、
前記合成手段によって合成された画像を出力する画像出力手段と、
前記画像出力手段によって出力された画像を受け付ける第２の画像受付手段と、
前記第２の画像受付手段によって受け付けられた画像内の前記情報画像における第１の画素系列又は第２の画素系列を検出する画素系列検出手段と、
前記画素系列検出手段によって検出された第１の画素系列又は第２の画素系列に基づいて、第３の画素系列又は第４の画素系列を検出し、前記情報画像の予め定められた位置である同期位置及び前記画像の回転角を検出する同期位置・回転角検出手段と、
前記同期位置・回転角検出手段によって検出された前記情報画像の同期位置及び前記画像の回転角に基づいて、前記画像に合成された情報画像内の第５の画素系列を検出する検出手段と、
前記検出手段によって検出された第５の画素系列を復号する復号手段と、
前記復号手段によって復号された情報画像内に埋め込まれた情報を出力する出力手段
として機能させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及び画像処理プログラムに関する。
【背景技術】
【０００２】
特許文献１には、二進コードで表されるデータをセル化して、二次元のマトリックス上にパターンとして配置した二次元コードにおいて、前記マトリックス内の、少なくとも２個所の所定位置に、各々中心をあらゆる角度で横切る走査線において同じ周波数成分比が得られるパターンの位置決め用シンボルを配置したことを特徴とする二次元コードが開示されている。
【０００３】
また、特許文献２には、再生されるべきマルチメディア情報の内容に相当するデータコードと、その読み取り基準点を決定するためのパターンコードとからなるドットコードの記録される情報記録媒体から前記ドットコードを光学的に読み取って再生する情報再生システムにおいて、前記ドットコードを撮像する画像入力手段と、前記画像入力手段で撮像された画像から、前記パターンコードを認識して、前記データコードを読み取るためのデータ読み取り基準点を決定するデータ読み取り基準点決定手段と、前記データ読み取り基準点決定手段によって決定されたデータ読み取り基準点に基づいて、前記データコードを読み取るデータ読み取り手段と、前記データ読み取り手段によって読み取られたデータを再生するデータ再生手段と、を具備し、前記パターンコードは、前記データコードに関して予め決められた位置に配置されたパターンドットと、このパターンドットに関して予め決められた位置に配置され、前記パターンドットを検出するために利用されるマーカとからなり、前記データ読み取り基準点決定手段は、前記画像入力手段で撮像された画像から前記マーカを抽出するマーカ抽出手段と、このマーカ抽出手段によって抽出されたマーカの概中心を算出する概中心算出手段とからなるマーカ検出手段とを含み、前記マーカ抽出手段は、イロージョン処理とラベリング処理とを行う手段を含むことを特徴とする情報再生システムが開示されている。
【０００４】
また、特許文献３には、文書のレイアウトを損なうことなく、しかもコストアップなしで印刷文書に印刷した文書にさまざまな手書き入力装置を利用して手書きで加筆した情報を正確に取得し、元の電子文書にその情報を反映させることができる２次元コードパターンを提供することを課題とし、文書の固有情報と該文書の位置情報を有する２次元コードを、前記文書が印刷される印刷文書の一部又は全部に複数配置して形成される２次元コードにおいて、印刷文書に形成される第一の２次元コードと、印刷文書の所定領域に形成され、第一の２次元コードとは異なる態様とされる第二の２次元コードを形成し、これにより、ペン型入力座標装置だけでなく、従来、ドットパターンを利用して手書き入力を行っていたパッド型座標入力装置や複合機などにおいてもバーコードを利用して手書き入力を行うことができるようになることが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第２９３８３３８号公報
【特許文献２】特許第２９５２１７０号公報
【特許文献３】特開２００６−０８５６７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、情報画像の合成された画像が回転していたとしても、その情報画像内に埋め込まれている情報の検出ができるようにした情報画像の合成、検出を行う画像処理装置及び画像処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００８】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項１の発明は、画像を受け付ける画像受付手段と、前記画像受付手段によって受け付けられた画像に付加する情報を受け付ける情報受付手段と、前記情報受付手段によって受け付けられた情報を符号化する符号化手段と、矩形内の行に、二進数における０又は１の連続した第１の情報を表しており、連続した画素塊を配置した系列である第１の画素系列と、前記矩形内の列に、二進数における０又は１の連続した第２の情報を表しており、連続した画素塊を配置した系列である第２の画素系列と、前記矩形内の行であって前記第１の画素系列と予め定められた位置に、第３の情報を表す画素塊を配置した系列である第３の画素系列と、前記矩形内の列であって前記第２の画素系列と予め定められた位置に、第４の情報を表す画素塊を配置した系列である第４の画素系列と、前記矩形内の前記第１の画素系列、第２の画素系列、第３の画素系列、第４の画素系列以外の領域に、情報画像内に埋め込まれる情報である第５の情報を表す画素塊を配置した系列である第５の画素系列を配置しており、前記第３の情報と前記第４の情報との情報空間における距離、該第３の情報と該第３の情報を反転した情報との情報空間における距離、該第３の情報と該第４の情報を反転した情報との情報空間における距離、該第３の情報と二進数における０又は１が連続している情報との情報空間における距離、該第４の情報と該第４の情報を反転した情報との情報空間における距離、該第４の情報と該第３の情報を反転した情報との情報空間における距離、該第４の情報と二進数における０又は１が連続している情報との情報空間における距離に基づいて、該第３の情報及び該第４の情報は定められている情報画像における第１の画素系列、第２の画素系列、第３の画素系列、第４の画素系列、前記符号化手段によって符号化された情報の第５の画素系列に基づいて、該情報画像を生成する生成手段と、前記画像受付手段によって受け付けられた画像に前記生成手段によって生成された情報画像を合成する合成手段と、前記合成手段によって合成された画像を出力する出力手段を具備することを特徴とする画像処理装置である。
【０００９】
請求項２の発明は、矩形内の行に、二進数における０又は１の連続した第１の情報を表しており、連続した画素塊を配置した系列である第１の画素系列と、前記矩形内の列に、二進数における０又は１の連続した第２の情報を表しており、連続した画素塊を配置した系列である第２の画素系列と、前記矩形内の行であって前記第１の画素系列と予め定められた位置に、第３の情報を表す画素塊を配置した系列である第３の画素系列と、前記矩形内の列であって前記第２の画素系列と予め定められた位置に、第４の情報を表す画素塊を配置した系列である第４の画素系列と、前記矩形内の前記第１の画素系列、第２の画素系列、第３の画素系列、第４の画素系列以外の領域に、情報画像内に埋め込まれる情報である第５の情報を表す画素塊を配置した系列である第５の画素系列を配置しており、前記第３の情報と前記第４の情報との情報空間における距離、該第３の情報と該第３の情報を反転した情報との情報空間における距離、該第３の情報と該第４の情報を反転した情報との情報空間における距離、該第３の情報と二進数における０又は１が連続している情報との情報空間における距離、該第４の情報と該第４の情報を反転した情報との情報空間における距離、該第４の情報と該第３の情報を反転した情報との情報空間における距離、該第４の情報と二進数における０又は１が連続している情報との情報空間における距離に基づいて、該第３の情報及び該第４の情報は定められている情報画像が合成された画像を受け付ける受付手段と、前記受付手段によって受け付けられた画像内の前記情報画像における第１の画素系列又は第２の画素系列を検出する画素系列検出手段と、前記画素系列検出手段によって検出された第１の画素系列又は第２の画素系列に基づいて、第３の画素系列又は第４の画素系列を検出し、前記情報画像の予め定められた位置である同期位置及び前記画像の回転角を検出する同期位置・回転角検出手段と、前記同期位置・回転角検出手段によって検出された前記情報画像の同期位置及び前記画像の回転角に基づいて、前記画像に合成された情報画像内の第５の画素系列を検出する検出手段と、前記検出手段によって検出された第５の画素系列を復号する復号手段と、前記復号手段によって復号された情報画像内に埋め込まれた情報を出力する出力手段を具備することを特徴とする画像処理装置である。
【００１０】
請求項３の発明は、前記受付手段によって受け付けられた画像内の画素塊が隣り合う組を検出し、該画素塊の組に基づいて、該画像の回転角を検出する回転角検出手段をさらに具備し、前記画素系列検出手段は、前記回転角検出手段によって検出された回転角に基づいて、第１の画素系列又は第２の画素系列を検出することを特徴とする請求項２に記載の画像処理装置である。
【００１１】
請求項４の発明は、画像を受け付ける第１の画像受付手段と、前記第１の画像受付手段によって受け付けられた画像に付加する情報を受け付ける情報受付手段と、前記情報受付手段によって受け付けられた情報を符号化する符号化手段と、矩形内の行に、二進数における０又は１の連続した第１の情報を表しており、連続した画素塊を配置した系列である第１の画素系列と、前記矩形内の列に、二進数における０又は１の連続した第２の情報を表しており、連続した画素塊を配置した系列である第２の画素系列と、前記矩形内の行であって前記第１の画素系列と予め定められた位置に、第３の情報を表す画素塊を配置した系列である第３の画素系列と、前記矩形内の列であって前記第２の画素系列と予め定められた位置に、第４の情報を表す画素塊を配置した系列である第４の画素系列と、前記矩形内の前記第１の画素系列、第２の画素系列、第３の画素系列、第４の画素系列以外の領域に、情報画像内に埋め込まれる情報である第５の情報を表す画素塊を配置した系列である第５の画素系列を配置しており、前記第３の情報と前記第４の情報との情報空間における距離、該第３の情報と該第３の情報を反転した情報との情報空間における距離、該第３の情報と該第４の情報を反転した情報との情報空間における距離、該第３の情報と二進数における０又は１が連続している情報との情報空間における距離、該第４の情報と該第４の情報を反転した情報との情報空間における距離、該第４の情報と該第３の情報を反転した情報との情報空間における距離、該第４の情報と二進数における０又は１が連続している情報との情報空間における距離に基づいて、該第３の情報及び該第４の情報は定められている情報画像における第１の画素系列、第２の画素系列、第３の画素系列、第４の画素系列、前記符号化手段によって符号化された情報の第５の画素系列に基づいて、該情報画像を生成する生成手段と、前記第１の画像受付手段によって受け付けられた画像に前記生成手段によって生成された情報画像を合成する合成手段と、前記合成手段によって合成された画像を出力する画像出力手段と、前記画像出力手段によって出力された画像を受け付ける第２の画像受付手段と、前記第２の画像受付手段によって受け付けられた画像内の前記情報画像における第１の画素系列又は第２の画素系列を検出する画素系列検出手段と、前記画素系列検出手段によって検出された第１の画素系列又は第２の画素系列に基づいて、第３の画素系列又は第４の画素系列を検出し、前記情報画像の予め定められた位置である同期位置及び前記画像の回転角を検出する同期位置・回転角検出手段と、前記同期位置・回転角検出手段によって検出された前記情報画像の同期位置及び前記画像の回転角に基づいて、前記画像に合成された情報画像内の第５の画素系列を検出する検出手段と、前記検出手段によって検出された第５の画素系列を復号する復号手段と、前記復号手段によって復号された情報画像内に埋め込まれた情報を出力する出力手段を具備することを特徴とする画像処理装置である。
【００１２】
請求項５の発明は、コンピュータを、画像を受け付ける画像受付手段と、前記画像受付手段によって受け付けられた画像に付加する情報を受け付ける情報受付手段と、前記情報受付手段によって受け付けられた情報を符号化する符号化手段と、矩形内の行に、二進数における０又は１の連続した第１の情報を表しており、連続した画素塊を配置した系列である第１の画素系列と、前記矩形内の列に、二進数における０又は１の連続した第２の情報を表しており、連続した画素塊を配置した系列である第２の画素系列と、前記矩形内の行であって前記第１の画素系列と予め定められた位置に、第３の情報を表す画素塊を配置した系列である第３の画素系列と、前記矩形内の列であって前記第２の画素系列と予め定められた位置に、第４の情報を表す画素塊を配置した系列である第４の画素系列と、前記矩形内の前記第１の画素系列、第２の画素系列、第３の画素系列、第４の画素系列以外の領域に、情報画像内に埋め込まれる情報である第５の情報を表す画素塊を配置した系列である第５の画素系列を配置しており、前記第３の情報と前記第４の情報との情報空間における距離、該第３の情報と該第３の情報を反転した情報との情報空間における距離、該第３の情報と該第４の情報を反転した情報との情報空間における距離、該第３の情報と二進数における０又は１が連続している情報との情報空間における距離、該第４の情報と該第４の情報を反転した情報との情報空間における距離、該第４の情報と該第３の情報を反転した情報との情報空間における距離、該第４の情報と二進数における０又は１が連続している情報との情報空間における距離に基づいて、該第３の情報及び該第４の情報は定められている情報画像における第１の画素系列、第２の画素系列、第３の画素系列、第４の画素系列、前記符号化手段によって符号化された情報の第５の画素系列に基づいて、該情報画像を生成する生成手段と、前記画像受付手段によって受け付けられた画像に前記生成手段によって生成された情報画像を合成する合成手段と、前記合成手段によって合成された画像を出力する出力手段として機能させることを特徴とする画像処理プログラムである。
【００１３】
請求項６の発明は、コンピュータを、矩形内の行に、二進数における０又は１の連続した第１の情報を表しており、連続した画素塊を配置した系列である第１の画素系列と、前記矩形内の列に、二進数における０又は１の連続した第２の情報を表しており、連続した画素塊を配置した系列である第２の画素系列と、前記矩形内の行であって前記第１の画素系列と予め定められた位置に、第３の情報を表す画素塊を配置した系列である第３の画素系列と、前記矩形内の列であって前記第２の画素系列と予め定められた位置に、第４の情報を表す画素塊を配置した系列である第４の画素系列と、前記矩形内の前記第１の画素系列、第２の画素系列、第３の画素系列、第４の画素系列以外の領域に、情報画像内に埋め込まれる情報である第５の情報を表す画素塊を配置した系列である第５の画素系列を配置しており、前記第３の情報と前記第４の情報との情報空間における距離、該第３の情報と該第３の情報を反転した情報との情報空間における距離、該第３の情報と該第４の情報を反転した情報との情報空間における距離、該第３の情報と二進数における０又は１が連続している情報との情報空間における距離、該第４の情報と該第４の情報を反転した情報との情報空間における距離、該第４の情報と該第３の情報を反転した情報との情報空間における距離、該第４の情報と二進数における０又は１が連続している情報との情報空間における距離に基づいて、該第３の情報及び該第４の情報は定められている情報画像が合成された画像を受け付ける受付手段と、前記受付手段によって受け付けられた画像内の前記情報画像における第１の画素系列又は第２の画素系列を検出する画素系列検出手段と、前記画素系列検出手段によって検出された第１の画素系列又は第２の画素系列に基づいて、第３の画素系列又は第４の画素系列を検出し、前記情報画像の予め定められた位置である同期位置及び前記画像の回転角を検出する同期位置・回転角検出手段と、前記同期位置・回転角検出手段によって検出された前記情報画像の同期位置及び前記画像の回転角に基づいて、前記画像に合成された情報画像内の第５の画素系列を検出する検出手段と、前記検出手段によって検出された第５の画素系列を復号する復号手段と、前記復号手段によって復号された情報画像内に埋め込まれた情報を出力する出力手段として機能させることを特徴とする画像処理プログラムである。
請求項７の発明は、コンピュータを、画像を受け付ける第１の画像受付手段と、前記第１の画像受付手段によって受け付けられた画像に付加する情報を受け付ける情報受付手段と、前記情報受付手段によって受け付けられた情報を符号化する符号化手段と、矩形内の行に、二進数における０又は１の連続した第１の情報を表しており、連続した画素塊を配置した系列である第１の画素系列と、前記矩形内の列に、二進数における０又は１の連続した第２の情報を表しており、連続した画素塊を配置した系列である第２の画素系列と、前記矩形内の行であって前記第１の画素系列と予め定められた位置に、第３の情報を表す画素塊を配置した系列である第３の画素系列と、前記矩形内の列であって前記第２の画素系列と予め定められた位置に、第４の情報を表す画素塊を配置した系列である第４の画素系列と、前記矩形内の前記第１の画素系列、第２の画素系列、第３の画素系列、第４の画素系列以外の領域に、情報画像内に埋め込まれる情報である第５の情報を表す画素塊を配置した系列である第５の画素系列を配置しており、前記第３の情報と前記第４の情報との情報空間における距離、該第３の情報と該第３の情報を反転した情報との情報空間における距離、該第３の情報と該第４の情報を反転した情報との情報空間における距離、該第３の情報と二進数における０又は１が連続している情報との情報空間における距離、該第４の情報と該第４の情報を反転した情報との情報空間における距離、該第４の情報と該第３の情報を反転した情報との情報空間における距離、該第４の情報と二進数における０又は１が連続している情報との情報空間における距離に基づいて、該第３の情報及び該第４の情報は定められている情報画像における第１の画素系列、第２の画素系列、第３の画素系列、第４の画素系列、前記符号化手段によって符号化された情報の第５の画素系列に基づいて、該情報画像を生成する生成手段と、前記第１の画像受付手段によって受け付けられた画像に前記生成手段によって生成された情報画像を合成する合成手段と、前記合成手段によって合成された画像を出力する画像出力手段と、前記画像出力手段によって出力された画像を受け付ける第２の画像受付手段と、前記第２の画像受付手段によって受け付けられた画像内の前記情報画像における第１の画素系列又は第２の画素系列を検出する画素系列検出手段と、前記画素系列検出手段によって検出された第１の画素系列又は第２の画素系列に基づいて、第３の画素系列又は第４の画素系列を検出し、前記情報画像の予め定められた位置である同期位置及び前記画像の回転角を検出する同期位置・回転角検出手段と、前記同期位置・回転角検出手段によって検出された前記情報画像の同期位置及び前記画像の回転角に基づいて、前記画像に合成された情報画像内の第５の画素系列を検出する検出手段と、前記検出手段によって検出された第５の画素系列を復号する復号手段と、前記復号手段によって復号された情報画像内に埋め込まれた情報を出力する出力手段として機能させることを特徴とする画像処理プログラムである。
【発明の効果】
【００１５】
請求項１の画像処理装置によれば、画像が回転していたとしても、その画像に合成された情報画像内に埋め込まれている情報を検出できるようにした情報画像を合成した画像を出力することができる。
【００１６】
請求項２の画像処理装置によれば、情報画像の合成された画像を受け付け、その画像が回転していたとしても、情報画像内に埋め込まれている情報を検出できる。
【００１７】
請求項３の画像処理装置によれば、本構成を有していない場合に比較して、第１の画素系列又は第２の画素系列を効率よく検出することができる。
【００１８】
請求項４の画像処理装置によれば、情報画像を合成した画像を出力することができ、その画像を受け付け、画像が回転していたとしても、情報画像内に埋め込まれている情報を検出することができる。
【００１９】
請求項５の画像処理プログラムによれば、画像が回転していたとしても、その画像に合成された情報画像内に埋め込まれている情報を検出できるようにした情報画像を合成した画像を出力することができる。
【００２０】
請求項６の画像処理プログラムによれば、情報画像の合成された画像を受け付け、その画像が回転していたとしても、情報画像内に埋め込まれている情報を検出できる。
請求項７の画像処理プログラムによれば、情報画像を合成した画像を出力することができ、その画像を受け付け、画像が回転していたとしても、情報画像内に埋め込まれている情報を検出することができる。
【図面の簡単な説明】
【００２１】
【図１】本実施の形態における情報画像内の画素系列の位置関係の例を示す説明図である。
【図２】情報画像を合成した画像の概念的な例を示す説明図である。
【図３】本実施の形態における情報画像を合成する画像処理装置の構成例についての概念的なモジュール構成図である。
【図４】信号系列Ｘ、信号系列Ｙの生成例を示すアルゴリズムである。
【図５】情報画像を合成する画像処理装置による処理例を示すフローチャートである。
【図６】符号語の生成処理例を示す説明図である。
【図７】本実施の形態における情報画像を検出する画像処理装置の構成例についての概念的なモジュール構成図である。
【図８】情報画像を検出する画像処理装置による処理例を示すフローチャートである。
【図９】処理単位の例を示す説明図である。
【図１０】画素系列の探索処理例を示す説明図である。
【図１１】画素系列の例を示す説明図である。
【図１２】検出された信号系列の例を示す説明図である。
【図１３】信号系列のローテーション処理例を示す説明図である。
【図１４】復号処理の例を示す説明図である。
【図１５】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００２２】
まず、情報画像について説明する。
情報画像とは、機械可読な態様で電子データを表すために体系的に作られた画像コードをいい、２次元コードと呼ばれるものである。
情報画像の形状は、矩形（以下、ブロックともいう）である。より具体的には、縦と横の長さが同じ正方形であってもよいし、縦と横の長さが異なる長方形であってもよい。以下、情報画像の形状として、正方形を主に例示して説明する。
この情報画像内に、画素塊が描画される。画素塊が描画され得る位置に描画されている又は描画されていないことは、二進数における０又は１を表している。画素塊が描画され得る位置は、矩形内の予め定められた格子の交点であり、それぞれの格子間（隣り合う交点間）は予め定められた距離だけ離れている。
また、画素塊とは、４連結又は８連結で連続する１画素以上の画素領域である。画素塊は、情報画像と合成する画像の下地と異なる色の画素塊であればよく、例えば、黒画素塊、カラー（例えば、黄色等）の画素塊、合成する画像の下地が黒等である場合は白画素塊であってもよい。以下、画素塊として、黒画素塊を主に例示して説明する。また、画素塊をドットともいう。
【００２３】
以下、図面に基づき本発明を実現するにあたっての好適な実施の形態の例を説明する。
図１は、本実施の形態における情報画像内の画素系列の位置関係の例を示す説明図である。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア（コンピュータ・プログラム）、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム（コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム）、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、１モジュールを１プログラムで構成してもよいし、複数モジュールを１プログラムで構成してもよく、逆に１モジュールを複数プログラムで構成してもよい。また、複数モジュールは１コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって１モジュールが複数コンピュータで実行されてもよい。なお、１つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続（データの授受、指示、データ間の参照関係等）の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じて定まることの意を含めて用いる。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク（一対一対応の通信接続を含む）等の通信手段で接続されて構成されるほか、１つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」（社会システム）にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、外部記憶媒体、通信回線を介した記憶装置、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）内のレジスタ等を含んでいてもよい。
【００２４】
図１の例に示す情報画像１００は、１８×１８の画素塊を描画し得る正方形であり、画素系列Ａ１１１、画素系列Ｂ１１２、画素系列Ｘ１１３、画素系列Ｙ１１４、データ領域１１５を有している。
【００２５】
画素系列Ａ１１１は、情報画像１００内の行に、画素塊を連続して配置した系列であり、この系列は、二進数における０又は１の連続した第１の情報を表している。
黒画素塊が描画されていることを二進数における１とすると、第１の情報とは、全て１の情報のことであり、黒画素塊が描画されていることを二進数における０とすると、第１の情報とは、全て０の情報のことである。いずれの場合であっても、第１の情報を表す画素系列Ａ１１１は、黒画素塊（図１の例では１８個）を連続して配置した系列である。以下、第１の情報として、全て１の情報を主に例示して説明する。つまり、黒画素塊が描画されていることを二進数における１としたものである。
なお、黒画素塊が描画されていることの意味（二進数における０又は１を表していること）は、少なくとも文書と合成する複数の情報画像内で同じ意味を有している。
【００２６】
画素系列Ｂ１１２は、情報画像１００内の列に、画素塊を連続して配置した系列であり、この系列は、二進数における０又は１の連続した第２の情報を表している。
黒画素塊が描画されていることを二進数における１とすると、第２の情報とは、全て１の情報のことであり、黒画素塊が描画されていることを二進数における０とすると、第２の情報とは、全て０の情報のことである。いずれの場合であっても、第２の情報を表す画素系列Ｂ１１２は、黒画素塊（図１の例では１８個）を連続して配置した系列である。以下、第２の情報として、全て１の情報を主に例示して説明する。
なお、情報画像１００が正方形である場合は、第１の情報と第２の情報は同じである。
【００２７】
画素系列Ａ１１１の位置は情報画像１００内の行（水平方向の画素塊の系列）であればいずれの位置であってもよく、画素系列Ｂ１１２の位置は情報画像１００内の列（垂直方向の画素塊の系列）であればいずれの位置であってもよい。画素系列Ａ１１１の位置として情報画像１００内の最上行、最下行、最上行の直下行又は最下行の直上行、画素系列Ｂ１１２の位置として情報画像１００内の最左列、最右列、最左列の直右列又は最右列の直左列が好適である。以下、画素系列Ａ１１１の位置として矩形内の最上行（第１行）、画素系列Ｂ１１２の位置として矩形内の最左列（第１列）を主に例示して説明する。
【００２８】
画素系列Ｘ１１３は、情報画像１００内の行であって画素系列Ａ１１１と予め定められた位置に、第３の情報を表す画素塊を配置した系列である。
画素系列Ｙ１１４は、情報画像１００内の列であって画素系列Ｂ１１２と予め定められた位置に、第４の情報を表す画素塊を配置した系列である。
【００２９】
画素系列Ｘ１１３の位置は情報画像１００内の行（水平方向の画素塊の系列）であればいずれの位置であってもよく、画素系列Ｙ１１４の位置は情報画像１００内の列（垂直方向の画素塊の系列）であればいずれの位置であってもよい。画素系列Ｘ１１３の位置として情報画像１００内の最上行、最下行、最上行の直下行又は最下行の直上行が好適である。つまり、画素系列Ａ１１１が最上行であれば、画素系列Ｘ１１３は最上行の直下行、最下行又は最下行の直上行であり、画素系列Ａ１１１が最上行の直下行であれば、画素系列Ｘ１１３は最上行、最下行又は最下行の直上行であり、画素系列Ａ１１１が最下行であれば、画素系列Ｘ１１３は最上行、最上行の直下行又は最下行の直上行であり、画素系列Ａ１１１が最下行の直上行であれば、最上行、最下行又は最上行の直下行が好適である。また、画素系列Ｙ１１４の位置として情報画像１００内の最左列、最右列、最左列の直右列又は最右列の直左列が好適である。つまり、画素系列Ｂ１１２が最左列であれば、画素系列Ｙ１１４は最右列、最左列の直右列又は最右列の直左列であり、画素系列Ｂ１１２が最右列であれば、画素系列Ｙ１１４は最左列、最左列の直右列又は最右列の直左列であり、画素系列Ｂ１１２が最左列の直右列であれば、画素系列Ｙ１１４は最左列、最右列又は最右列の直左列であり、画素系列Ｂ１１２が最右列の直左列であれば、画素系列Ｙ１１４は最左列、最右列又は最左列の直右列が好適である。
以下、画素系列Ｘ１１３の位置として矩形内の最上行の直下行（第２行）、画素系列Ｙ１１４の位置として矩形内の最左列の直右列（第２列）を主に例示して説明する。
【００３０】
第３の情報と第４の情報との情報空間における距離、第３の情報と第３の情報を反転した情報との情報空間における距離、第３の情報と第４の情報を反転した情報との情報空間における距離、第３の情報と二進数における０又は１が連続している情報との情報空間における距離、第４の情報と第４の情報を反転した情報との情報空間における距離、第４の情報と第３の情報を反転した情報との情報空間における距離、第４の情報と二進数における０又は１が連続している情報との情報空間における距離に基づいて、第３の情報及び第４の情報は定められている。第３の情報は第１の情報とともに画像の９０度単位の回転及び同期位置を検出するための情報を表しており、第４の情報は第２の情報とともに画像の９０度単位の回転及び同期位置を検出するための情報を表している。なお、同期位置とは、画像内に、情報画像１００（第５の情報は異なっていてもよい）が繰り返し並んで配置されている場合に、その情報画像１００の単位を特定するための位置である。例えば、第１の画素系列と第２の画素系列とが交差する位置である。
【００３１】
ここで、「二進数における０又は１が連続している情報」とは、１が連続している情報又は０が連続している情報である。第３の情報と比較する場合は、第３の情報と同じ長さであって、１が連続している情報又は０が連続している情報であり、第４の情報と比較する場合は、第４の情報と同じ長さであって、１が連続している情報又は０が連続している情報である。なお、情報画像１００が正方形である場合は、第３の情報の長さと第４の情報の長さは同じであり、かつ、第１の情報と第２の情報は同じであるから、「二進数における０又は１が連続している情報」とは、第１の情報と第２の情報のいずれであってもよい。
なお、第３の情報と比較するのが「二進数における１が連続している情報」である場合は、第４の情報と比較するのも「二進数における１が連続している情報」であり、第３の情報と比較するのが「二進数における０が連続している情報」である場合は、第４の情報と比較するのも「二進数における０が連続している情報」である。
以下、「二進数における１が連続している情報」を主に例示して説明する。また、「二進数における１が連続している情報」を、Ａｌｌ“１”とも表す。
【００３２】
情報空間における距離としては、例えば、ハフマン距離がある。
距離に基づいて定められているとは、例えば、それらの７種の距離のうち最小の値となる距離が、あらゆる組み合わせの中で最大となるように選択することをいう。
あらゆる組み合わせとは、その情報画像１００内の１列又は１行において、表すことができる情報の組み合わせのことをいう。
ただし、画素系列Ｘ１１３は画素系列Ｂ１１２と交差することになるので、画素系列Ｂ１１２は黒画素塊を連続して配置した系列であるから、その交差している位置（図１の例では第２行第１列）にある黒画素塊は描画されていることになる。前述の例では、黒画素塊が描画されていることを１としているので、画素系列Ｘ１１３の画素系列Ｂ１１２と交差している画素に対応する情報は１となる。
同様に、画素系列Ｙ１１４は画素系列Ａ１１１と交差することになるので、画素系列Ａ１１１は黒画素塊を連続して配置した系列であるから、その交差している位置（図１の例では第１行第２列）にある黒画素塊は描画されていることになる。前述の例では、黒画素塊が描画されていることを１としているので、画素系列Ｙ１１４の画素系列Ａ１１１と交差している画素に対応する情報は１となる。
また、画素系列Ｘ１１３は画素系列Ｙ１１４と交差することになるので、その交差している位置（図１の例では第２行第２列）にある黒画素塊は同じ状態（黒画素塊が描画されていること又は描画されていないことのいずれか一方）になる。
【００３３】
データ領域１１５は、情報画像１００内の画素系列Ａ１１１、画素系列Ｂ１１２、画素系列Ｘ１１３、画素系列Ｙ１１４以外の領域に、情報画像１００内に埋め込まれる情報である第５の情報を表す画素塊を配置した系列である。図１の例の場合は、１６×１６の領域となる。
【００３４】
図２は、情報画像を合成した画像の概念的な例を示す説明図である。
文書画像２００は合成領域２１０を有しており、合成領域２１０は複数の情報画像１００Ａを有している。合成領域２１０内には、図１に例示した情報画像１００が連続して配置されている。もちろん、合成領域２１０内の複数の情報画像１００は、同じ構造を有している（少なくとも合成する合成領域２１０内において、それぞれの情報画像１００内における画素系列Ａ１１１の位置、画素系列Ｂ１１２の位置、画素系列Ｘ１１３の位置、画素系列Ｙ１１４の位置は同じである）ので、合成領域２１０内において、複数の情報画像１００をまたがって、連続した画素系列Ａ１１１と連続した画素系列Ｂ１１２と連続した画素系列Ｘ１１３と連続した画素系列Ｙ１１４があることになる。つまり、黒画素塊が合成領域２１０内に連続して配置された系列（画素系列Ａ１１１と画素系列Ｂ１１２の連続）があることになり、それらは直交していることになる。いわゆるマトリックス状に連続した黒画素塊が配置されている。また、画素系列Ｘ１１３と画素系列Ｙ１１４は、繰り返して現れることになる。
【００３５】
なお、文書画像２００を印刷し、その印刷した文書をスキャナ等で読み込んだ場合、その画像には回転が発生してしまうことがあり得る。その場合、連続した画素系列Ａ１１１は必ずしも水平とはならず、連続した画素系列Ｂ１１２も必ずしも垂直とはならないので、回転前の状態に戻す又はその回転を考慮して第５の情報を検出することが必要となる。これについては、図７以降の例を用いて後述する。
【００３６】
図３は、本実施の形態における情報画像を合成する画像処理装置の構成例についての概念的なモジュール構成図である。
情報画像を合成する画像処理装置は、図３の例に示すように、画像受付モジュール３１０、情報受付モジュール３２０、符号化モジュール３３０、同期用系列生成モジュール３４０、情報画像生成モジュール３５０、合成モジュール３６０、出力モジュール３７０を有している。
【００３７】
画像受付モジュール３１０は、合成モジュール３６０と接続されており、画像を受け付けて、その画像を合成モジュール３６０へ渡す。画像を受け付けるとは、例えば、スキャナ等で画像を読み込むこと、ファックス等で通信回線を介して外部機器から画像を受信すること、ＣＣＤ（Ｃｈａｒｇｅ−Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）等で映像を撮影すること、ハードディスク（コンピュータに内蔵されているものの他に、ネットワークを介して接続されているもの等を含む）等に記憶されている画像を読み出すこと等が含まれる。画像は、２値画像、多値画像（カラー画像を含む）であってもよい。受け付ける画像は、１枚であってもよいし、複数枚であってもよい。また、画像の内容として、ビジネスに用いられる文書、広告宣伝用のパンフレット等であってもよい。
【００３８】
情報受付モジュール３２０は、符号化モジュール３３０と接続されており、画像受付モジュール３１０によって受け付けられた画像に付加する情報を受け付けて、その情報を符号化モジュール３３０に渡す。情報を受け付けるとは、例えば、ハードディスク等に記憶されている情報を読み出すこと、操作者によるタッチパネル、キーボード等の操作によって情報を受け付けること、その画像を特定する画像識別符号を算出すること、その画像を印刷するプリンタを特定するプリンタ識別符号を読み出すこと、その画像の印刷指示を行った操作者を特定する操作者識別符号をその操作者が所持しているＩＣカード等から読み出すこと等が含まれる。受け付ける情報は、１つであってもよいし、複数であってもよい。また、情報の内容として、画像識別符号、プリンタ識別符号、操作者識別符号等であってもよい。
【００３９】
符号化モジュール３３０は、情報受付モジュール３２０、情報画像生成モジュール３５０と接続されており、情報受付モジュール３２０によって受け付けられた情報を符号化して、その符号化した情報を情報画像生成モジュール３５０へ渡す。ここでの処理内容については、図６の例を用いて後述する。
【００４０】
同期用系列生成モジュール３４０は、情報画像生成モジュール３５０と接続されている。
同期用系列生成モジュール３４０は、第１系列・第２系列生成モジュール３４２、第３系列・第４系列生成モジュール３４４、同期用系列記憶モジュール３４６を有している。
第１系列・第２系列生成モジュール３４２は、図１に例示した情報画像１００における画素系列Ａ１１１、画素系列Ｂ１１２を生成する。予め定められた情報画像１００の行の長さ、列の長さに応じて、二進数における０又は１が連続している情報を表す黒画素塊の連続した系列を生成する。
第３系列・第４系列生成モジュール３４４は、図１に例示した情報画像１００における画素系列Ｘ１１３、画素系列Ｙ１１４を生成する。画素系列Ｘ１１３、画素系列Ｙ１１４の生成処理については、図４を用いて後述する。
同期用系列記憶モジュール３４６は、第１系列・第２系列生成モジュール３４２によって生成された画素系列Ａ１１１、画素系列Ｂ１１２と第３系列・第４系列生成モジュール３４４によって生成された画素系列Ｘ１１３、画素系列Ｙ１１４を記憶する。つまり、図１に例示した画素系列Ａ１１１、画素系列Ｂ１１２、画素系列Ｘ１１３、画素系列Ｙ１１４が確定した情報画像１００を記憶する。なお、データ領域１１５内は、情報画像生成モジュール３５０によって生成される。
【００４１】
情報画像生成モジュール３５０は、符号化モジュール３３０、同期用系列生成モジュール３４０、合成モジュール３６０と接続されており、図１に例示した情報画像１００における画素系列Ａ１１１、画素系列Ｂ１１２、画素系列Ｘ１１３、画素系列Ｙ１１４、符号化モジュール３３０によって符号化された情報のデータ領域１１５内の画素系列に基づいて、情報画像１００を生成し、その情報画像１００を合成モジュール３６０に渡す。
合成モジュール３６０は、画像受付モジュール３１０、情報画像生成モジュール３５０、出力モジュール３７０と接続されており、画像受付モジュール３１０によって受け付けられた画像に情報画像生成モジュール３５０によって生成された情報画像を合成し、情報画像を合成した画像を出力モジュール３７０に渡す。ここでの合成した画像の例として、図２に例示した文書画像２００がある。合成する領域は、画像全体であってもよいし、画像内の一部の領域であってもよい。その領域は、予め定められた位置及び大きさの領域であるが、例えば、既に定められた位置及び大きさであってもよいし、画像を解析して、その解析結果に基づいて領域の位置及び大きさを定めるようにしてもよい。例えば、画像の解析結果としては、黒領域を除いた領域の位置及び大きさ等がある。
【００４２】
出力モジュール３７０は、合成モジュール３６０と接続されており、合成モジュール３６０によって合成された画像を受け取り、その画像を出力する。画像を出力するとは、例えば、プリンタ等の印刷装置で印刷すること、ディスプレイ等の表示装置に表示すること、ファックス等の画像送信装置で画像を送信すること、画像データベース等の画像記憶装置へ画像を書き込むこと、メモリーカード等の記憶媒体に記憶すること、他の情報処理装置へ渡すこと等が含まれる。
【００４３】
図４は、第３の情報（以下、信号系列Ｘともいう）、第４の情報（以下、信号系列Ｙともいう）の生成例を示すアルゴリズムである。この処理は、第３系列・第４系列生成モジュール３４４が行う。
なお、信号系列Ｘ、信号系列Ｙの長さは等しく、Ｎビットであるとする。
【００４４】
ステップＳ４００では、変数ｄｍｉｎに０を代入する。
ステップＳ４０２では、ステップＳ４３４までの処理を繰り返す。繰り返しの制御は、ｆｏｒ（Ｘ＝２Ｎ−１；Ｘ＜２Ｎ−１；Ｘ＋＋）とする。つまり、信号系列Ｘに２Ｎ−１を代入し、Ｘ＜２Ｎ−１が真である間はステップＳ４３４までの処理を行って、Ｘを１つずつインクリメントする。なお、ＭＳＢ（Ｍｏｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ、最上位のビット）はＡｌｌ“１”信号と重なるため、ＭＳＢビット＝１である。
【００４５】
ステップＳ４０４では、ステップＳ４３２までの処理を繰り返す。繰り返しの制御は、ｆｏｒ（Ｙ＝２Ｎ−１；Ｙ＜２Ｎ−１；Ｙ＋＋）とする。つまり、信号系列Ｙに２Ｎ−１を代入し、Ｙ＜２Ｎ−１が真である間はステップＳ４３２までの処理を行って、Ｙを１つずつインクリメントする。なお、ＭＳＢ（Ｍｏｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ、最上位のビット）はＡｌｌ“１”信号と重なるため、ＭＳＢビット＝１である。
【００４６】
ステップＳ４０６では、信号系列ＲＸに信号系列Ｘのリバース（信号系列Ｘを終端から先頭方向に逆順に並び替えた信号系列）を代入する。つまり、信号系列ＸのＬＳＢ（Ｌｅａｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ、最下位のビット）からＭＳＢ側に向けてビット走査して、信号系列Ｘの反転した情報を生成する。
ステップＳ４０８では、信号系列ＲＹに信号系列Ｙのリバース（信号系列Ｙを終端から先頭方向に逆順に並び替えた信号系列）を代入する。つまり、信号系列ＹのＬＳＢからＭＳＢ側に向けてビット走査して、信号系列Ｙの反転した情報を生成する。
【００４７】
ステップＳ４１０では、ｄ（Ｘ，Ｙ）の計算をする。なお、ｄ（Ｘ，Ｙ）はＸとＹとのハフマン距離を求める関数である。つまり、信号系列Ｘと信号系列Ｙとの情報空間における距離を算出している。
ステップＳ４１２では、ｄ（Ｘ，ＲＸ）の計算をする。信号系列Ｘと信号系列ＲＸとの情報空間における距離を算出している。
ステップＳ４１４では、ｄ（Ｘ，ＲＹ）の計算をする。信号系列Ｘと信号系列ＲＹとの情報空間における距離を算出している。
ステップＳ４１６では、ｄ（Ｘ，Ａｌｌ“１”）の計算をする。信号系列Ｘと信号系列Ａｌｌ“１”との情報空間における距離を算出している。
ステップＳ４１８では、ｄ（Ｙ，ＲＸ）の計算をする。信号系列Ｙと信号系列ＲＸとの情報空間における距離を算出している。
ステップＳ４２０では、ｄ（Ｙ，ＲＹ）の計算をする。信号系列Ｙと信号系列ＲＹとの情報空間における距離を算出している。
ステップＳ４２２では、ｄ（Ｙ，Ａｌｌ“１”）の計算をする。信号系列Ｙと信号系列Ａｌｌ“１”との情報空間における距離を算出している。
【００４８】
ステップＳ４２４では、前述の７つのハフマン距離（ステップＳ４１０からステップＳ４２２の処理でそれぞれ算出した距離）中の最小値ｄを求める。例えば、最小値を求める関数を利用すればよい。
なお、ステップＳ４２６からステップＳ４３２までの処理は、ある１組の信号系列Ｘ、信号系列Ｙの組における前述の７つのハフマン距離中の最小値が、ステップＳ４０２、ステップＳ４０４による繰り返し制御において最も大きなハフマン距離である場合の、信号系列Ｘ、信号系列Ｙの組を算出していることになる。
ステップＳ４２６では、変数ｄと変数ｄｍｉｎとを比較する。つまり、ｄ＞ｄｍｉｎが真であるならば、ステップＳ４２８、ステップＳ４３０の処理を行う。
ステップＳ４２８では、変数ｄｍｉｎに変数ｄを代入する。
ステップＳ４３０では、このときの信号系列Ｘ、信号系列Ｙを同期用系列記憶モジュール３４６に記憶する。つまり、画素系列Ｘ１１３、画素系列Ｙ１１４が表す情報の候補となる。
【００４９】
なお、画素系列Ｘ１１３と画素系列Ｙ１１４は交差する（図１の例では第２行第２列の位置）のであるから、信号系列Ｘと信号系列Ｙも対応するビットは同じ情報（０、１のいずれか一方）である必要がある。そこで、そのビットが同じか否かの判断をステップＳ４２６に付加してもよい。つまり、ｄ＞ｄｍｉｎが真であり、かつ、信号系列Ｘと信号系列Ｙとの対応するビットが同じ情報である場合に、ステップＳ４２８、ステップＳ４３０の処理を行うようにしてもよい。
また、７つのハフマン距離中の最小値ｄを求める処理の代わりに、７つのハフマン距離と予め定められた閾値とをそれぞれ比較し、全てがその閾値以上である場合に、信号系列Ｘ、信号系列Ｙを画素系列Ｘ１１３、画素系列Ｙ１１４が表す情報の候補としてもよい。
また、７つのハフマン距離中の最小値をその大きさの順（小さいものから大きいものになるような並べ方、昇順）に並べて、予め定められた順位以内の信号系列Ｘ、信号系列Ｙを画素系列Ｘ１１３、画素系列Ｙ１１４が表す情報の候補としてもよい。
【００５０】
このように、信号系列Ｘと信号系列Ｙの候補を算出した後に、その信号系列Ｘと信号系列Ｙの組を選択し、画素系列Ｘ１１３、画素系列Ｙ１１４が表す情報とする。ここでの選択は、いずれを選択してもよい。
なお、図４に例示する第３系列・第４系列生成モジュール３４４の処理は、画像受付モジュール３１０が画像を受け付ける又は情報受付モジュール３２０が情報を受け付ける前に行っていてもよいし、画像受付モジュール３１０が画像を受け付ける都度又は情報受付モジュール３２０が情報を受け付ける都度に行ってもよい。
【００５１】
図５は、情報画像を合成する画像処理装置による処理例を示すフローチャートである。
ステップＳ５０２では、画像受付モジュール３１０が、対象となる画像を受け付ける。
ステップＳ５０４では、情報受付モジュール３２０が、画像に合成する情報を受け付ける。
ステップＳ５０６では、符号化モジュール３３０が、受け付けた情報を符号化する。図６を用いて説明する。
【００５２】
図６は、符号語の生成処理例を示す説明図である。この処理は、符号化モジュール３３０が行う。
（１）  情報受付モジュール３２０が受け付けた情報である埋め込み情報のＣＲＣ−１６のパリティを計算し、それを元の埋め込み情報に付加する。
図６を用いて説明すると、ステップＳ６０２では、オリジナル情報６１０からＣＲＣ−１６：６２０を計算して付加する。ＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）とは、データのひとかたまりの誤りを検出するために、巡回符号を用いる方式である。オリジナル情報６１０は、情報受付モジュール３２０が受け付けた情報の一部（１６バイト）である。符号語の生成処理は、受け付けた情報を１６バイト毎に区切って処理する。また、１６バイト毎に区切って最後のオリジナル情報６１０が１６バイト以下の情報量又は情報受付モジュール３２０が受け付けた情報そのものが１６バイト以下の情報量であれば、オリジナル情報６１０は、その受け付けた情報そのもの、又は１６バイトに足らない部分を予め定められた情報（例えば０）で埋めたものである。もちろんのことながら、ＣＲＣ−１６、１６バイトは例示であり、他のパリティ方式、バイト長であってもよい。
【００５３】
（２）  （１）で得られた情報を誤り訂正符号（例えば、ＢＣＨ符号等）で符号化する。このとき、符号化後の符号長が情報画像１００のデータ領域に収まらない場合は、（１）で得られた情報を分割し、その順番がわかるＩＤ（情報識別子）を付加した後の情報系列を誤り訂正符号化する。
図６を用いて説明すると、ステップＳ６０４では、オリジナル情報６１０とＣＲＣ−１６：６２０を接続したものを８つに分割し、それぞれに３ビットのＩＤを付加する。具体的には、図６に例示するように、オリジナル情報６１０とＣＲＣ−１６：６２０を接続したものを１８ビットの分割情報６３１Ｂ〜６３８Ｂに分割し、それぞれに０〜７を示す３ビットのＩＤ（ＩＤ６３１Ａ〜６３８Ａ）を付加する。つまり、それぞれが合計２１ビットのＩＤ付分割情報６３１〜６３８を生成する。もちろんのことながら、分割数の８、分割情報の１８ビット長、ＩＤの３ビット長は例示であり、他の分割数、ビット長であってもよい。
ステップＳ６０６では、ＩＤ付分割情報６３１〜６３８を、それぞれＢＣＨ（６０，２１，ｔ＝７）で符号化する。ＢＣＨ（Ｂｏｓｅ−Ｃｈａｕｄｈｕｒｉ−Ｈｏｃｑｕｅｎｇｈｅｍ）とは、周期冗長検査コードに基づく誤り検出訂正コードの一つである。これによって、図６に例示するように、８つの符号語６４１〜６４８を生成する。もちろんのことながら、ＢＣＨ符号化は例示であり、他の符号化方式であってもよい。
【００５４】
ステップＳ５０８では、情報画像生成モジュール３５０が、同期用系列記憶モジュール３４６内に記憶されている画素系列Ａ１１１、画素系列Ｂ１１２、画素系列Ｘ１１３、画素系列Ｙ１１４、ステップＳ５０６で符号化された情報を用いて、情報画像を生成する。
より具体的には、画像内の合成領域（図２に例示する合成領域２１０）に画素系列Ａ１１１、画素系列Ｂ１１２、画素系列Ｘ１１３、画素系列Ｙ１１４を埋め込む。そして、ステップＳ５０６で求めた各符号語を合成領域内の左上の情報画像１００内のデータ領域１１５から埋め込む。このとき、符号長がデータ領域１１５のサイズと等しくない場合は、データ領域１１５に余りがでるが、その領域には例えば、０を埋め込むようにしてもよい。全ての符号語の埋め込みが終わり、合成領域内の情報画像１００のデータ領域１１５が余っていれば、同じ符号語を繰り返し埋め込むようにしてもよい。つまり、同じ埋込情報を表している情報画像１００が、合成領域内に複数あるようにしてもよい。
【００５５】
ステップＳ５１０では、合成モジュール３６０が、画像に情報画像を合成する。ここでの合成は、論理和合成であってもよいし、排他的論理和合成等であってもよい。
ステップＳ５１２では、出力モジュール３７０が、合成画像を出力する。
【００５６】
図７は、本実施の形態における情報画像を検出する画像処理装置の構成例についての概念的なモジュール構成図である。
画像受付モジュール７１０、ドット検出モジュール７２０、単位位置・回転角検出モジュール７３０、埋込情報検出モジュール７５０、復号モジュール７６０、出力モジュール７７０を有している。
なお、以下の説明で、行又は列の位置関係として、直下行、直上行、直右列、直左列を例として挙げるが、これは、画素系列Ａ１１１と画素系列Ｘ１１３の位置関係の例として画素系列Ａ１１１の直下に画素系列Ｘ１１３を配置し、画素系列Ｂ１１２と画素系列Ｙ１１４の位置関係の例として画素系列Ｂ１１２の直右に画素系列Ｙ１１４を配置した場合を対象としたものである。したがって、画素系列Ａ１１１と画素系列Ｘ１１３の位置関係、画素系列Ｂ１１２と画素系列Ｙ１１４の位置関係が前述の例以外の場合は、直下行、直上行、直右列、直左列は、予め定められた位置関係にある行又は列と読み替えるものとする。
【００５７】
画像受付モジュール７１０は、ドット検出モジュール７２０と接続されており、情報画像１００が合成された画像を受け付けて、その画像をドット検出モジュール７２０へ渡す。画像を受け付けるとは、例えば、スキャナ等で画像を読み込むこと、ファックス等で通信回線を介して外部機器から画像を受信すること、ＣＣＤ（Ｃｈａｒｇｅ−Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）等で映像を撮影すること、ハードディスク（コンピュータに内蔵されているものの他に、ネットワークを介して接続されているもの等を含む）等に記憶されている画像を読み出すこと等が含まれる。画像は、２値画像、多値画像（カラー画像を含む）であってもよいが、情報画像１００が合成された画像である。つまり、図３に例示した画像処理装置によって出力されたものをスキャナ等で読み込んだものである。受け付ける画像は、１枚であってもよいし、複数枚であってもよい。また、画像の内容として、ビジネスに用いられる文書、広告宣伝用のパンフレット等であってもよい。
【００５８】
ドット検出モジュール７２０は、画像受付モジュール７１０、単位位置・回転角検出モジュール７３０と接続されており、２値化モジュール７２２、ラベリングモジュール７２４、ノイズ除去モジュール７２６を有している。
２値化モジュール７２２は、ラベリングモジュール７２４と接続されており、画像受付モジュール７１０が受け付けた画像を２値化して、その２値化画像をラベリングモジュール７２４へ渡す。ここでの２値化処理は、例えば、周辺部分に比べて黒い画素塊を抽出するのに適している浮動２値化等である。
ラベリングモジュール７２４は、２値化モジュール７２２、ノイズ除去モジュール７２６と接続されており、２値化モジュール７２２によって２値化処理された画像に対して、ラベリング処理を行う。つまり、黒画素塊に一意のラベルを付す。同じラベルが付された画素の数を計数することによって、その黒画素塊の面積を算出する。そして、その結果をノイズ除去モジュール７２６へ渡す。
ノイズ除去モジュール７２６は、ラベリングモジュール７２４と接続されており、ラベリングモジュール７２４によるラベリング処理の結果（各黒画素塊の面積）に基づいて、ノイズ除去を行う。ノイズ除去は、黒画素塊の面積と予め定められた閾値とを比較することによって行う。例えば、黒画素塊の面積が予め定められた範囲内（予め定められた２つの閾値によって定まる範囲）に含まれない場合は、ノイズとしてもよい。このノイズ除去処理によって、埋め込んだ黒画素塊（ドット）に比較して大きすぎる領域や小さすぎる領域を除去することとなる。つまり、情報画像１００内の黒画素塊を検出することとなる。
【００５９】
なお、ドット検出モジュール７２０と単位位置・回転角検出モジュール７３０での処理単位は、情報画像１００の行又は列の長さの√２倍以上の辺をもつ矩形としてもよい。この処理単位について、図９を用いて後述する。
【００６０】
単位位置・回転角検出モジュール７３０は、ドット検出モジュール７２０、埋込情報検出モジュール７５０と接続されており、ラフ回転角検出モジュール７３２、画素系列検出モジュール７３４、同期位置・９０度単位回転角検出モジュール７４０を有している。
ラフ回転角検出モジュール７３２は、ドット検出モジュール７２０によって検出された黒画素塊を用いて、画像受付モジュール７１０によって受け付けられた画像のおおよその回転角を検出する。ドット検出モジュール７２０によって検出された黒画素塊が隣り合う組を検出し、その黒画素塊の組に基づいて、画像のおおよその回転角を検出する。例えば、ある黒画素塊から見て右隣（左隣、上隣、下隣であってもよい）の黒画素塊の方向を求める。黒画素塊間隔は既知（予め定められた値）であるので、その黒画素塊間隔に近い位置にある黒画素塊の組を複数集め、同じ方向を向いている黒画素塊の組毎にグループを作成し、黒画素塊の組が多いグループ内で平均をとれば回転角が算出できる。この場合の回転角は−４５度から＋４５度となる。なお、黒画素塊間隔に近い位置とは、黒画素塊間隔に予め定められた値を加算及び減算した距離範囲にある位置をいう。また、同じ方向を向いているとは、ある黒画素塊から隣の黒画素塊への角度が予め定められた範囲内にあることをいう。
【００６１】
画素系列検出モジュール７３４は、水平方向系列検出モジュール７３６、垂直方向系列検出モジュール７３８を有している。ドット検出モジュール７２０によって検出された黒画素塊を用いて、ラフ回転角検出モジュール７３２によって検出されたおおよその回転角に基づいて、画像受付モジュール７１０によって受け付けられた画像内の情報画像１００における画素系列Ａ１１１又は画素系列Ｂ１１２を検出する。ここで、おおよその回転角に基づいてとは、ラフ回転角検出モジュール７３２によって検出されたおおよその回転角に予め定められた値を加算及び減算した範囲にある回転角をいう。つまり、画素系列検出モジュール７３４は、その範囲内にある回転角に限定して、画素系列Ａ１１１又は画素系列Ｂ１１２の検出処理を行う。具体的には、この処理は、水平方向系列検出モジュール７３６、垂直方向系列検出モジュール７３８のいずれか一方又は両方が行う。
【００６２】
水平方向系列検出モジュール７３６は、ドット検出モジュール７２０によって検出された黒画素塊を右隣方向又は左隣方向に、黒画素塊が存在する割合が大きくなる行を検出する。この検出は、連続して黒画素塊が存在している行（画素系列Ａ１１１又は９０度回転している場合は画素系列Ｘ１１３）を発見することである。黒画素塊が存在する割合が大きくなる行とは、ラフ回転角検出モジュール７３２によって検出されたおおよその回転角に基づいて、連続する黒画素塊が存在する割合が予め定められた閾値よりも大きい行、又は複数の行を検出した場合は連続する黒画素塊が存在する割合が最も大きい行をいう。この処理については、図１０を用いて後述する。
垂直方向系列検出モジュール７３８は、水平方向系列検出モジュール７３６によって行を検出できなかった場合に、下隣方向又は上隣方向に水平方向系列検出モジュール７３６と同等の処理、つまり黒画素塊が存在する割合が大きくなる列を検出する。
垂直方向系列検出モジュール７３８によっても、列を検出できなかった場合は、次の処理単位である矩形領域に対してドット検出モジュール７２０による処理を行って、ラフ回転角検出モジュール７３２、画素系列検出モジュール７３４による処理を再開する。
【００６３】
同期位置・９０度単位回転角検出モジュール７４０は、画素系列検出モジュール７３４によって検出された画素系列Ａ１１１又は画素系列Ｂ１１２に基づいて、画素系列Ｘ１１３又は画素系列Ｙ１１４を検出し、合成領域内の情報画像１００の予め定められた位置である同期位置（例えば、前述のように、第１の画素系列と第２の画素系列とが交差する位置であり、より具体的には、情報画像１００の左上座標、右上座標、左下座標、右下座標等がある。以下、情報画像１００の左上座標を例示して説明する）及び画像の回転角を検出する。この処理については、図１１から図１３を用いて後述する。
水平方向系列検出モジュール７３６によって検出された行の黒画素塊位置に基づいて、行の傾きを線形回帰等を用いて求める。次に、その行の直上行と直下行の信号系列とＸ方向、Ｙ方向及び逆Ｘ方向、逆Ｙ方向の信号系列の一致度を比較することで、同期位置と９０度単位の回転角を求める。そして、行の傾きと９０度単位の回転角によって、画像の回転角を検出する。
又は垂直方向系列検出モジュール７３８によって検出された列の黒画素塊位置に基づいて、列の傾きを線形回帰等を用いて求める。次に、その列の直右列と直左列の信号系列とＸ方向、Ｙ方向及び逆Ｘ方向、逆Ｙ方向の信号系列の一致度を比較することで、同期位置と９０度単位の回転角を求める。そして、列の傾きと９０度単位の回転角によって、画像の回転角を検出する。
【００６４】
埋込情報検出モジュール７５０は、単位位置・回転角検出モジュール７３０、復号モジュール７６０と接続されており、同期位置・９０度単位回転角検出モジュール７４０によって検出された情報画像１００の同期位置及び画像の回転角に基づいて、画像に合成された情報画像１００のデータ領域１１５内の第５の画素系列を検出する。例えば、具体的には、画像を逆方向にその回転角分回転して、画像を正立の状態に戻し、同期位置から予め定められた位置関係にある情報画像１００のデータ領域１１５内の第５の画素系列を検出するようにしてもよい。また、回転角と同期位置に基づいて、画像受付モジュール７１０が受け付けた画像から読み出す位置と順番を決定して、情報画像１００のデータ領域１１５内の第５の画素系列を検出するようにしてもよい。
【００６５】
復号モジュール７６０は、埋込情報検出モジュール７５０、出力モジュール７７０と接続されており、埋込情報検出モジュール７５０によって検出された第５の画素系列を復号する。つまり、図３に例示した符号化モジュール３３０による符号化処理が行われた情報を復号する。
出力モジュール７７０は、復号モジュール７６０と接続されており、復号モジュール７６０によって復号された情報画像１００のデータ領域１１５内に埋め込まれた情報を出力する。情報を出力するとは、例えば、プリンタ等の印刷装置で印刷すること、ディスプレイ等の表示装置に表示すること、データベース等の記憶装置へ情報を書き込むこと、メモリーカード等の記憶媒体に記憶すること、他の情報処理装置へ渡すこと等が含まれる。
【００６６】
図８は、情報画像を検出する画像処理装置による処理例を示すフローチャートである。
ステップＳ８０２では、画像受付モジュール７１０が、合成画像を受け付ける。
ステップＳ８０４では、２値化モジュール７２２が、２値化処理を行う。
ステップＳ８０６では、ラベリングモジュール７２４が、ラベリング処理を行う。なお、このステップＳ８０６の処理以降、ステップＳ８１８までの処理は、前述の処理単位毎に行う。なお、この処理単位で同期位置又は９０度単位の回転角を検出できなかった場合は、次の処理単位に対してステップＳ８０６からステップＳ８１８までの処理を繰り返して行う。
この処理単位について、図９を用いて説明する。図９は、処理単位の例を示す説明図である。合成画像９００は、情報画像１００が合成された画像であり、複数の情報画像１００が並んで配置されている。そして、合成画像９００は読み込み時の文書の傾き等によって、回転している。
図９に例示する処理単位９１０は、情報画像１００の行又は列の長さの√２倍以上の辺をもつ矩形である。つまり、情報画像１００内の画素系列Ａ１１１、画素系列Ｂ１１２、画素系列Ｘ１１３、画素系列Ｙ１１４の１周期分が少なくとも含まれていればよい。したがって、この場合、ドット検出モジュール７２０と単位位置・回転角検出モジュール７３０による処理は、スキャン画像全体に対して行う必要がない。なお、次の処理単位とは、１画素以上（例えば、処理単位９１０の行の長さ分）、例えば右方向にずらした処理単位９１０であってもよい。右方向にずらせない場合は、１画素以上（例えば、処理単位９１０の列の長さ分）、例えば下方向にずらして左端に戻るようにしてもよい。
【００６７】
ステップＳ８０８では、ノイズ除去モジュール７２６が、ノイズ除去を行う。
ステップＳ８１０では、ラフ回転角検出モジュール７３２が、ラフな回転角を検出する。
ステップＳ８１２では、水平方向系列検出モジュール７３６が、水平方向の画素系列Ａ（画素系列Ａ１１１又は画素系列Ｂ１１２）を検出する。図１０を用いて説明する。図１０は、画素系列の探索処理例を示す説明図である。図１０（ａ）に例示する処理単位１０００内で、例えば、図１０（ｂ）に例示するドット１０１１の右隣にある探索範囲１０２１に黒画素塊があるか否かを検出する。探索範囲１０２１は、ラフ回転角検出モジュール７３２によって検出されたおおよその回転角を用いて定められた領域である。つまり、おおよその回転角と情報画像１００内の黒画素塊間の距離によって定まる位置を中心として予め定められた距離である半径の円内に黒画素塊が含まれるか否かを判断する。これを次々に繰り返す。そして、その探索範囲内で黒画素塊が存在した割合を求めて、行を検出する。
【００６８】
ステップＳ８１４では、水平方向系列検出モジュール７３６が、画素系列Ａを検出できたか否かを判断し、検出できた場合はステップＳ８１８へ進み、それ以外の場合はステップＳ８１６へ進む。
ステップＳ８１６では、垂直方向系列検出モジュール７３８が、垂直方向の画素系列Ｂ（画素系列Ａ１１１又は画素系列Ｂ１１２）を検出する。ステップＳ８１２の処理において、９０度回転させた処理と同等である。
【００６９】
ステップＳ８１８では、同期位置・９０度単位回転角検出モジュール７４０が、画素系列Ａ又は画素系列Ｂと予め定めた位置関係にある画素系列が表す情報と信号系列Ｘ、信号系列Ｙ、信号系列ＲＸ、信号系列ＲＹの情報の一致度により、同期位置及び９０度単位の回転角を検出する。
【００７０】
図１１を用いて説明する。もし水平方向の画像系列Ａ（もしくはＡｌｌ“１”の信号系列）の直下に画素系列Ｘ１１３があれば、画像は９０度単位の回転では０度であり、もし水平方向の画像系列Ａの直下に画素系列Ｙ１１４を反転した画素系列があれば、画像は９０度単位の回転では９０度であり、もし水平方向の画像系列Ａの直上に画素系列Ｘ１１３を反転した画素系列があれば、画像は９０度単位の回転では１８０度であり、もし水平方向の画像系列Ａの直上に画素系列Ｙ１１４があれば、画像は９０度単位の回転では２７０度である。なお、図１１内の矢印Ａは画素系列Ｘ１１３の正方向を示しており、矢印Ｂは画素系列Ｙ１１４の正方向を示している。
【００７１】
次に、図１２、図１３を用いて説明する。図１２は、検出された信号系列の例を示す説明図である。図１３は、信号系列のローテーション処理例を示す説明図である。
例として、情報画像１００のサイズ（Ｎ×Ｎ）として１８×１８であり、信号系列Ｘ＝“１０１１０００１１１１０１０１１００”、信号系列Ｙ＝“１０１０００１００１１０１０１１１１”として説明する。
画像受付モジュール７１０によって受け付けられた画像が回転していない場合であって、画素系列検出モジュール７３４が検出した“１”の数が多かった行（画素系列Ａ１１１の連続又は画素系列Ｂ１１２の連続に該当する）とその１つ下の行が図１２に例示するようになっていた場合、信号系列Ｘが１周期分以上繰り返されていることになる。
この場合、“１”の数が多かった行の１つ下の行の左端から１８ｂｉｔ分の情報と、信号系列Ｘ（図１３（ａ）に例示の信号系列参照）を１ｂｉｔずつ順次左ローテーションしたものとの相関をとると、５ｂｉｔローテーションした信号系列（図１３（ｂ）に例示の信号系列参照）が最も相関が高くなり、このとき、同期位置（情報画像１００の左上、画素系列Ａ１１１の先頭位置）が、左端から１８−５＋１番目のビットであると推定できる。つまり、「Ｎ−（最も相関が高くなった場合のローテーションしたビット数）＋１」の式によって算出できる。
【００７２】
前述の説明は、画像受付モジュール７１０によって受け付けられた画像が回転していないと仮定した場合の例であるが、実際は３６０度どの方向に回転しているか不明である。そのため、
（１）“１”の数が多かった行の直下行と信号系列Ｘのローテーションとの相関と、
（２）“１”の数が多かった行の直下行と信号系列ＲＹのローテーションとの相関と、
（３）“１”の数が多かった行の直上行と信号系列ＲＸのローテーションとの相関と、
（４）“１”の数が多かった行の直上行と信号系列Ｙのローテーションとの相関と
を求め、相関値が最大となったものが（１）であれば回転なし、（２）であれば時計方向に９０度回転、（３）であれば１８０度回転、（４）であれば２７０度回転と判定する。
この回転角と“１”の多かった行の黒画素塊の方向（−４５度から＋４５度）を加算することで、画像の回転角が検出される。また、同期信号の開始位置（同期位置）は、前述の説明のように相関値が最大値となった場合のローテーション量より求められる。
【００７３】
ただし、水平方向系列検出モジュール７３６によって列を検出できなかった場合（例えば、“１”の数が多かった行の中の“１”の割合が予め定められた閾値より小さかった場合）の他に、相関値の最大値が予め定められた閾値よりも小さかった場合は、誤検出の可能性が高い。そのため、垂直方向系列検出モジュール７３８によって垂直方向に“１”の多い列を検出し、その左右の列と信号系列Ｘ、信号系列Ｙ、信号系列ＲＸ、信号系列ＲＹのローテーションとの相関を求めることで同期位置と回転角を求める。
つまり、
（１）“１”の数が多かった列の直右列と信号系列Ｙのローテーションとの相関と、
（２）“１”の数が多かった列の直左列と信号系列Ｘのローテーションとの相関と、
（３）“１”の数が多かった列の直左列と信号系列ＲＹのローテーションとの相関と、
（４）“１”の数が多かった列の直右列と信号系列ＲＸのローテーションとの相関と
を求め、相関値が最大となったものが（１）であれば回転なし、（２）であれば時計方向に９０度回転、（３）であれば１８０度回転、（４）であれば２７０度回転と判定する。
この回転角と“１”の多かった行の黒画素塊の方向（−４５度から＋４５度）を加算することで、画像の回転角が検出される。また、同期信号の開始位置（同期位置）は、前述の説明のように相関値が最大値となった場合のローテーション量より求められる。
【００７４】
ステップＳ８２０では、埋込情報検出モジュール７５０が、画像の回転角と同期位置に基づいて、情報画像１００のデータ領域１１５内の第５の画素系列から埋込情報を検出する。
ステップＳ８２２では、復号モジュール７６０が、誤り訂正を伴う復号処理を行う。図１４を用いて説明する。図１４は、復号処理の例を示す説明図である。検出した信号を誤り訂正復号し、復号データをＩＤ毎に重複を避けてリスト化する。なお、重複を避けるのは、埋込情報が複数回繰り返してデータ領域１１５に埋め込まれている場合に対応するものである。図１４の例では、ＩＤが１である符号語が２種類、ＩＤが３である符号語が３種類、ＩＤが５である符号語が２種類、他のＩＤの符号語は１種類であるので、組み合わせは１２通り（２×３×２）である。この組み合わせ（ＩＤ０からＩＤ７の結合）に対して、ＣＲＣを検証する。なお、この組み合わせは、図６におけるオリジナル情報６１０とＣＲＣ−１６：６２０を結合したものに該当する。ＣＲＣの検証の結果、正当なデータを復号情報とする。なお、ＣＲＣの検証によって、１２通りの組み合わせのうち、途中で正当なデータがあれば、他の組み合わせを検証する必要はない。なお、符号化モジュール３３０が、ＣＲＣ−１６、ＢＣＨ符号化以外の符号化処理を行った場合は、復号モジュール７６０は、それに合わせた復号処理を行う。
ステップＳ８２４では、出力モジュール７７０が、復号した情報を出力する。
【００７５】
図１５を参照して、本実施の形態の画像処理装置のハードウェア構成例について説明する。図１５に示す構成は、例えばパーソナルコンピュータ（ＰＣ）などによって構成されるものであり、スキャナ等のデータ読み取り部１５１７と、プリンタなどのデータ出力部１５１８を備えたハードウェア構成例を示している。
【００７６】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１５０１は、前述の実施の形態において説明した各種のモジュール、すなわち、符号化モジュール３３０、情報画像生成モジュール３５０、第１系列・第２系列生成モジュール３４２、第３系列・第４系列生成モジュール３４４、合成モジュール３６０、ドット検出モジュール７２０、単位位置・回転角検出モジュール７３０、埋込情報検出モジュール７５０、復号モジュール７６０等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。
【００７７】
ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１５０２は、ＣＰＵ１５０１が使用するプログラムや演算パラメータ等を格納する。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１５０３は、ＣＰＵ１５０１の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはＣＰＵバスなどから構成されるホストバス１５０４により相互に接続されている。
【００７８】
ホストバス１５０４は、ブリッジ１５０５を介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バスなどの外部バス１５０６に接続されている。
【００７９】
キーボード１５０８、マウス等のポインティングデバイス１５０９は、操作者により操作される入力デバイスである。ディスプレイ１５１０は、液晶表示装置又はＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）などがあり、各種情報をテキストやイメージ情報として表示する。
【００８０】
ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１５１１は、ハードディスクを内蔵し、ハードディスクを駆動し、ＣＰＵ１５０１によって実行するプログラムや情報を記録又は再生させる。ハードディスクには、受け付けた画像、受け付けた情報、同期用系列、検出した情報などが格納される。さらに、その他の各種のデータ処理プログラム等、各種コンピュータ・プログラムが格納される。
【００８１】
ドライブ１５１２は、装着されている磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体１５１３に記録されているデータ又はプログラムを読み出して、そのデータ又はプログラムを、インタフェース１５０７、外部バス１５０６、ブリッジ１５０５、及びホストバス１５０４を介して接続されているＲＡＭ１５０３に供給する。リムーバブル記録媒体１５１３も、ハードディスクと同様のデータ記録領域として利用可能である。
【００８２】
接続ポート１５１４は、外部接続機器１５１５を接続するポートであり、ＵＳＢ、ＩＥＥＥ１３９４等の接続部を持つ。接続ポート１５１４は、インタフェース１５０７、及び外部バス１５０６、ブリッジ１５０５、ホストバス１５０４等を介してＣＰＵ１５０１等に接続されている。通信部１５１６は、ネットワークに接続され、外部とのデータ通信処理を実行する。データ読み取り部１５１７は、例えばスキャナであり、ドキュメントの読み取り処理を実行する。データ出力部１５１８は、例えばプリンタであり、ドキュメントデータの出力処理を実行する。
【００８３】
なお、図１５に示す画像処理装置のハードウェア構成は、１つの構成例を示すものであり、本実施の形態は、図１５に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア（例えば特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：ＡＳＩＣ）等）で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに図１５に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、複写機、ファックス、スキャナ、プリンタ、複合機（スキャナ、プリンタ、複写機、ファックス等のいずれか２つ以上の機能を有している画像処理装置）などに組み込まれていてもよい。
【００８４】
前述の実施の形態においては、図３に情報画像を合成する画像処理装置の構成例、図７に情報画像を検出する画像処理装置の構成例を別々に示したが、これを組み合わせてもよい。つまり、１つの画像処理装置によって、情報画像を画像に合成し、情報画像を合成した画像から情報画像を検出するようにしてもよい。その場合、図７に例示の画像受付モジュール７１０は、図３に例示の出力モジュール３７０が出力した画像を受け付けることとなる。
なお、図７に例示する画像処理内のドット検出モジュール７２０はなくてもよい。この場合、単位位置・回転角検出モジュール７３０内のラフ回転角検出モジュール７３２、画素系列検出モジュール７３４が黒画素塊を検出するようにしてもよい。
また、図７に例示する画像処理内のラフ回転角検出モジュール７３２はなくてもよい。この場合、水平方向系列検出モジュール７３６又は垂直方向系列検出モジュール７３８が、ラフ回転角検出モジュール７３２によるおおよその回転角を用いることなしに、画素系列Ａ１１１、画素系列Ｂ１１２、画素系列Ｘ１１３、画素系列Ｙ１１４を検出する。
また、前述の実施の形態の説明において、予め定められた値との比較において、「以上」、「以下」、「より大きい」、「より小さい（未満）」としたものは、その組み合わせに矛盾が生じない限り、それぞれ「より大きい」、「より小さい（未満）」、「以上」、「以下」としてもよい。
また、背景技術で説明した技術を、本実施の形態に加えること、又は本実施の形態内のモジュールに代えて採用するようにしてもよい。
【００８５】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク（ＤＶＤ）であって、ＤＶＤフォーラムで策定された規格である「ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等」、ＤＶＤ＋ＲＷで策定された規格である「ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等」、コンパクトディスク（ＣＤ）であって、読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）等、ブルーレイ・ディスク（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ（登録商標））、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去及び書換可能な読出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。
【符号の説明】
【００８６】
１００…情報画像
１１１…画素系列Ａ
１１２…画素系列Ｂ
１１３…画素系列Ｘ
１１４…画素系列Ｙ
１１５…データ領域
３１０…画像受付モジュール
３２０…情報受付モジュール
３３０…符号化モジュール
３４０…同期用系列生成モジュール
３４２…第１系列・第２系列生成モジュール
３４４…第３系列・第４系列生成モジュール
３４６…同期用系列記憶モジュール
３５０…情報画像生成モジュール
３６０…合成モジュール
３７０…出力モジュール
７１０…画像受付モジュール
７２０…ドット検出モジュール
７２２…２値化モジュール
７２４…ラベリングモジュール
７２６…ノイズ除去モジュール
７３０…単位位置・回転角検出モジュール
７３２…ラフ回転角検出モジュール
７３４…画素系列検出モジュール
７３６…水平方向系列検出モジュール
７３８…垂直方向系列検出モジュール
７４０…同期位置・９０度単位回転角検出モジュール
７５０…埋込情報検出モジュール
７６０…復号モジュール
７７０…出力モジュール
【図１】
0005560887.tif 000002
【図２】
0005560887.tif 000003
【図３】
0005560887.tif 000004
【図４】
0005560887.tif 000005
【図５】
0005560887.tif 000006
【図６】
0005560887.tif 000007
【図７】
0005560887.tif 000008
【図８】
0005560887.tif 000009
【図９】
0005560887.tif 000010
【図１０】
0005560887.tif 000011
【図１１】
0005560887.tif 000012
【図１２】
0005560887.tif 000013
【図１３】
0005560887.tif 000014
【図１４】
0005560887.tif 000015
【図１５】
0005560887.tif 000016