(57)【要約】【課題】データが埋め込まれている画像から所望の領域を容易に切り出すための画像処理技術を提供する。【解決手段】画像処理装置は、画像を複数のブロックに分割する分割部と、前記画像を複数の画像領域に区切るための境界情報に応じて決まるブロックに対して、埋め込みデータの各ビットを反転することにより得られる反転埋め込みデータの対応するビットを割り当てると共に、他のブロックに対して前記埋め込みデータの対応するビットを割り当てる割当て部と、前記割当て部によりそれぞれ割り当てられたビットの値に基づいて、各ブロックの特徴量を調整する調整部、を有する。【選択図】図４
2011097318.tif 000002
【特許請求の範囲】
【請求項１】
画像を複数のブロックに分割する分割部と、
前記画像を複数の画像領域に区切るための境界情報に応じて決まるブロックに対して、埋め込みデータの各ビットを反転することにより得られる反転埋め込みデータの対応するビットを割り当てると共に、他のブロックに対して前記埋め込みデータの対応するビットを割り当てる割当て部と、
前記割当て部によりそれぞれ割り当てられたビットの値に基づいて、各ブロックの特徴量を調整する調整部、
を有する画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記分割部は、前記画像を行方向および列方向に分割することにより前記複数のブロックを生成し、
前記割当て部は、前記境界情報に応じて決まる行に属するブロックに対して、前記反転埋め込みデータの対応するビットを割り当てる
ことを特徴とする画像処理装置。
【請求項３】
画像コード化装置において、画像を複数のブロックに分割し、境界情報に応じて決まるブロックに対して埋め込みデータの各ビットを反転することにより得られる反転埋め込みデータの対応するビットを割り当てると共に他のブロックに対して前記埋め込みデータの対応するビットを割り当て、それぞれ割り当てられたビットの値に基づいて各ブロックの特徴量を調整する、ことにより生成される画像データを処理する画像処理装置であって、
前記画像データにより表される画像を複数のブロックに分割する分割部と、
各ブロックの特徴量に基づいて各ブロックに対して割り当てられているビットの値を判定する判定部と、
前記判定部の判定結果を利用して前記埋め込みデータを検出するデータ検出部と、
前記データ検出部により検出された埋め込みデータおよび前記判定部の判定結果を利用して、前記反転埋め込みデータが割り当てられているブロックを特定する特定部と、
前記特定部により特定されたブロックの位置に基づいて、前記画像を複数の画像領域に区切るための境界位置を検出する境界検出部、
を有する画像処理装置。
【請求項４】
画像を複数のブロックに分割し、
前記画像を複数の画像領域に区切るための境界情報に応じて決まるブロックに対して、埋め込みデータの各ビットを反転することにより得られる反転埋め込みデータの対応するビットを割り当てると共に、他のブロックに対して前記埋め込みデータの対応するビットを割り当て、
前記割当て部によりそれぞれ割り当てられたビットの値に基づいて、各ブロックの特徴量を調整する、
ことを特徴とする画像処理方法。
【請求項５】
画像コード化装置において、画像を複数のブロックに分割し、境界情報に応じて決まるブロックに対して埋め込みデータの各ビットを反転することにより得られる反転埋め込みデータの対応するビットを割り当てると共に他のブロックに対して前記埋め込みデータの対応するビットを割り当て、それぞれ割り当てられたビットの値に基づいて各ブロックの特徴量を調整する、ことにより生成される画像データを処理する画像処理方法であって、
前記画像データにより表される画像を複数のブロックに分割し、
各ブロックの特徴量に基づいて各ブロックに対して割り当てられているビットの値を判定し、
前記判定結果を利用して前記埋め込みデータを検出し、
前記検出された埋め込みデータおよび前記判定結果を利用して、前記反転埋め込みデータが割り当てられているブロックを特定し、
前記特定されたブロックの位置に基づいて、前記画像を複数の画像領域に区切るための境界位置を検出する、
ことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、および画像処理プログラムに係わる。
【背景技術】
【０００２】
近年、コンピュータの普及により、多くの文書が電子的に作成されている。電子的に作成された文書（電子文書）は、保存、管理、検索が容易である等の利点を有している。
しかし、コンピュータ等の操作に不慣れなユーザにとっては、キーボードを使用する文字入力は煩わしい作業である。また、簡単なメモ書きや、署名／押印などをする場合は、紙を使用する方が便利なこともある。このため、紙等に筆記（押印などを含む）された情報を電子カメラまたはスキャナを用いて撮影し、撮影により得られた画像データを電子的に保存／参照する方法が提案されている。
【０００３】
図１は、カメラで撮影された画像の一例を示す図である。ここでは、紙面に印刷されたカレンダの一部（１日分の日付領域）が撮影されている。日付領域内には、予め、日付情報（日付および曜日）が印刷されている。また、この例では、日付領域内に、ユーザにより手書メモが書き込まれている。
【０００４】
上述のようにして得られる画像データを保存する際には、その画像データに参照情報が付加されていると便利なことがある。例えば、図１に示す例では、画像データと共に「１０月１日のスケジュール」を表す参照情報が保存される。この場合、参照情報を利用して検索を行えば、所望の情報を容易に得ることができる。
【０００５】
上述の参照情報は、例えば、ステガノグラフィにより、カレンダの日付領域に予め埋め込まれる。この場合、カレンダの日付領域を撮影し、取得した画像データをデコードすれば、参照情報が抽出される。なお、ステガノグラフィは、データ隠蔽技術の１つであり、視覚的に認識されない或いは認識されにくいように、画像に所望のデータまたはコードを埋め込むことができる。
【０００６】
ステガノグラフィを実現する画像データ処理装置は、例えば、ブロック分割部、平均化部、及びエンコード部を備える。ブロック分割部は、原画像データを複数のブロック（Ｍ×Ｎ）に分割する。平均化部は、各ブロックの平均濃度を算出する。エンコード部は、各ペアブロック（互いに隣接する２つのブロック）に対して、ブロック間の平均濃度の大小関係に基づいて１ビットのデータを割り当てる。画像デコーダは、各ブロックの特徴量を検出し、各ペアブロックの特徴量を比較することにより、画像に埋め込まれているコードを認識する。この画像データ処理方法は、例えば、特許文献１に記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００４−３４９８７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
カメラ撮影により得られる画像データを保存する際に、一部の領域の画像データのみを保存したいことがある。例えば、図１に示す例において、日付領域全体の画像データを保存するのではなく、ユーザによりメモが筆記された領域（切り出し画像）の画像データのみを保存する方が便利な場合がある。
【０００９】
しかし、従来技術においては、データが埋め込まれている画像から所望の領域を容易に切り出す方法は提案されていない。
本発明の課題は、データが埋め込まれている画像から所望の領域を容易に切り出すための画像処理技術を提供することである。
【課題を解決するための手段】
【００１０】
本発明の１つの態様の画像処理装置は、画像を複数のブロックに分割する分割部と、前記画像を複数の画像領域に区切るための境界情報に応じて決まるブロックに対して、埋め込みデータの各ビットを反転することにより得られる反転埋め込みデータの対応するビットを割り当てると共に、他のブロックに対して前記埋め込みデータの対応するビットを割り当てる割当て部と、前記割当て部によりそれぞれ割り当てられたビットの値に基づいて、各ブロックの特徴量を調整する調整部、を有する。
【００１１】
本発明の他の態様の画像処理装置は、画像コード化装置において、画像を複数のブロックに分割し、境界情報に応じて決まるブロックに対して埋め込みデータの各ビットを反転することにより得られる反転埋め込みデータの対応するビットを割り当てると共に他のブロックに対して前記埋め込みデータの対応するビットを割り当て、それぞれ割り当てられたビットの値に基づいて各ブロックの特徴量を調整する、ことにより生成される画像データを処理する画像処理装置であって、前記画像データにより表される画像を複数のブロックに分割する分割部と、各ブロックの特徴量に基づいて各ブロックに対して割り当てられているビットの値を判定する判定部と、前記判定部の判定結果を利用して前記埋め込みデータを検出するデータ検出部と、前記データ検出部により検出された埋め込みデータおよび前記判定部の判定結果を利用して、前記反転埋め込みデータが割り当てられているブロックを特定する特定部と、前記特定部により特定されたブロックの位置に基づいて、前記画像を複数の画像領域に区切るための境界位置を検出する境界検出部、を有する。
【発明の効果】
【００１２】
本出願において開示される構成または方法によれば、データが埋め込まれている画像から所望の領域を容易に切り出すことができる。
【図面の簡単な説明】
【００１３】
【図１】カメラで撮影された画像の一例を示す図である。
【図２】画像にデータを埋め込む方法を説明する図である。
【図３】多数決法で埋め込みデータを決定する方法を説明する図である。
【図４】第１の実施形態の画像コード化装置の構成を示す図である。
【図５】データ割当て部の動作を説明する図である。
【図６】第１の実施形態の画像コード復号装置の構成を示す図である。
【図７】データ検出部の動作を説明する図である。
【図８】印刷物の一例を示す図である。
【図９】日付領域の画像データを示す図である。
【図１０】サブブロックを利用してデータを埋め込む方法を説明する図である。
【図１１】第２の実施形態の画像コード化装置の構成を示す図である。
【図１２】第２の実施形態において生成される画像コード化データを示す図である。
【図１３Ａ】第２の実施形態の画像処理方法を示すフローチャート（その１）である。
【図１３Ｂ】第２の実施形態の画像処理方法を示すフローチャート（その２）である。
【図１４】第３の実施形態において撮影される画像の一例を示す図である。
【図１５】第３の実施形態の画像コード復号装置の構成を示す図である。
【図１６Ａ】第３の実施形態において画像データを保存する処理を示すフローチャート（その１）である。
【図１６Ｂ】第３の実施形態において画像データを保存する処理を示すフローチャート（その２）である。
【図１７】画像データを登録する処理を示すフローチャートである。
【図１８】撮影された画像の座標を示す図である。
【図１９】スケジューラにより表示される画像の例を示す図である。
【図２０】画像処理装置（画像コード化装置および画像コード復号装置）のハードウェア構成を示す図である。
【発明を実施するための形態】
【００１４】
実施形態の画像処理は、画像にデータ（または、コード）を埋め込む処理、およびデータが埋め込まれた画像からそのデータを抽出する処理を含む。また、画像にデータを埋め込む処理を「画像コード化（または、エンコード）」と呼ぶことがあり、画像からデータを抽出する処理を「画像コード復号（または、デコード）」と呼ぶことがある。さらに、データが埋め込まれた画像データを「画像コード化データ」と呼ぶことがある。
【００１５】
＜第１の実施形態＞
図２は、第１の実施形態において画像にデータを埋め込む方法を説明する図である。第１の実施形態では、画像コード化装置は、原画像を複数のブロックに分割し、各ブロックにそれぞれ対応するビットを埋め込む。なお、原画像は、行方向および列方向に分割される。すなわち、原画像は、Ｍ行×Ｎ列に分割される。ここで、Ｍ、Ｎは、互いに同じであってもよいし、互いに異なっていてもよい。図２に示す例では、原画像は、１６行×８列（１６×８ブロック）に分割されている。
【００１６】
画像コード化装置は、原画像に同じデータを繰り返し埋め込む。原画像に埋め込まれるデータ（以下、埋め込みデータＣ）は、図２に示す例では、「１０１０１１０１０１００１０１０」である。
【００１７】
埋め込みデータＣは、埋め込みデータ１として、第１〜第２行のブロックに埋め込まれる。また、埋め込みデータＣは、埋め込みデータ２として、第３〜第４行のブロックにも埋め込まれる。さらに、埋め込みデータＣは、埋め込みデータ３〜８として、第５〜第１６行のブロックにもそれぞれ埋め込まれる。このように、埋め込みデータＣは、図２に示す例では、原画像の異なる８つの領域にそれぞれ埋め込まれる。
【００１８】
埋め込みデータ１〜８の各ビットは、ステガノグラフィにより、対応するブロックに埋め込まれる。ステガノグラフィは、この例では、各ブロックに割り当てられたビットの値に応じて、当該ブロックの特徴量（例えば、階調レベル）を調整することにより実現される。一例としては、各ブロックをそれぞれ１組のサブブロックに分割し、１組のサブブロックの特徴量の大小関係に基づいて「０」または「１」を表すことにより、各ブロックに所望の１ビットデータが埋め込まれる。
【００１９】
画像コード復号装置は、上述のようにして生成された画像データから埋め込みデータＣを抽出する。このとき、画像コード復号装置は、各ブロックの特徴量に基づいて各ブロックに埋め込まれているビットの値を認識する。したがって、図２に示す画像データを復号することにより、埋め込みデータ１〜８が抽出される。ただし、復号処理により抽出される埋め込みデータ１〜８は、誤りビットを含んでいる可能性がある。したがって、以下の説明では、画像コード復号装置において抽出される埋め込みデータ１〜８を「候補データ１〜８」と呼ぶことにする。
【００２０】
画像コード復号装置は、図３に示すように、多数決法により、候補データ１〜８から埋め込みデータを決定する。多数決法では、候補データ１〜８の各ビットにおいて、最も発生頻度の高い値が選択される。例えば、図３に示す例では、候補データ１〜８の第１ビットは、すべて「１」である。この場合、埋め込みデータの第１ビットは「１」と判定される。また、候補データ１〜８の第２ビットにおいては、「０」が７回発生し、「１」が１回発生している。この場合、埋め込みデータの第２ビットは「０」と判定される。他のビットについても同様に多数決判定が行われる。この結果、画像コード化装置により画像に埋め込まれた埋め込みデータＣが再生される。
【００２１】
このように、第１の実施形態では、ステガノグラフィにより、原画像に同じデータが繰り返し埋め込まれる。そして、作成された画像データを復号することにより、複数の候補データが抽出され、多数決法により埋め込みデータが決定される。
【００２２】
図４は、第１の実施形態の画像コード化装置の構成を示す図である。第１の実施形態の画像コード化装置１０は、原画像にデータを埋め込む画像処理装置である。そして、画像コード化装置１０は、ブロック分割部１１、データ割当て部１２、特徴量調整部１３を備える。
【００２３】
画像コード化装置１０に入力される原画像データは、所定のフォーマットで生成された画像データである。原画像データのフォーマットは、特に限定されるものではないが、例えばＪＰＥＧ（Joint Photographic Expert Group）、ＧＩＦ（Graphics Interchange Format）である。原画像データのサイズ（画素数）は、特に限定されるものではない。なお、原画像データは、例えば、コンピュータにより生成される。ただし、原画像データは、例えば、デジタルカメラ（または、電子カメラ）により生成されてもよい。或いは、原画像データは、スキャナを用いて紙面に印刷されている画像を読み込むことにより生成されてもよい。
【００２４】
ブロック分割部１１は、原画像を複数のブロックに分割する。この例では、ブロック分割部１１は、図５に示すように、原画像を１６行×８列（１６×８ブロック）に分割するものとする。
【００２５】
画像コード化装置１０は、原画像に埋め込みデータＣを埋め込む。埋め込みデータＣは、この例では「１０１０１１０１０１００１０１０」である。また、画像コード化装置１０は、原画像から所望の画像領域を切り出すための境界情報を原画像に埋め込む。この例では、図５に示す画像において画像領域１が切り出されるものとする。画像領域１は、第４〜第１６行に位置するブロックから構成される。この場合、画像コード化装置１０には、第３行に沿って境界ラインを設定することを表す境界情報が与えられる。
【００２６】
データ割当て部１２は、ブロック分割部１１により生成された複数のブロックに埋め込みデータ１〜８を割り当てる。以下、図５を参照しながらデータ割当て部１２の動作を説明する。
【００２７】
第１〜第２行に位置するブロックには、埋め込みデータ１として、埋め込みデータＣの対応するビットが割り当てられる。したがって、第１行に位置する８個のブロックには、埋め込みデータＣの第１〜第８ビット（すなわち「１０１０１１０１」）が割り当てられる。また、第２行に位置する８個のブロックには、埋め込みデータＣの第９〜第１６ビット（すなわち「０１００１０１０」）が割り当てられる。
【００２８】
第３行には、境界情報により、境界ラインが設定されている。この場合、第３行に位置する８個のブロックには、埋め込みデータＣの各ビットを反転することにより得られる反転埋め込みデータＣ’の対応するビットが割り当てられる。ここで、埋め込みデータＣが「１０１０１１０１０１００１０１０」であるので、反転埋め込みデータＣ’は「０１０１００１０１０１１０１０１」である。したがって、第３行に位置する８個のブロックには、埋め込みデータＣ’の第１〜第８ビット（すなわち「０１０１００１０」）が割り当てられる。なお、第４行に位置する８個のブロックには、第２行と同様に、埋め込みデータＣの第９〜第１６ビット（すなわち「０１００１０１０」）が割り当てられる。
【００２９】
第５行〜第１６行に位置するブロックには、第１〜第２行と同様に、埋め込みデータ３〜８として、埋め込みデータＣの対応するビットが割り当てられる。すなわち、第５、第７、第９、第１１、第１３、第１５行には、それぞれ「１０１０１１０１」が割り当てられる。また、第６、第８、第１０、第１２、第１４、第１６行には、それぞれ「０１００１０１０」が割り当てられる。
【００３０】
このように、データ割当て部１２は、ブロック分割部１１により生成された複数のブロックに埋め込みデータ１〜８を割り当てる。すなわち、データ割当て部１２は、境界情報に応じて決まるブロックに対して、反転埋込みデータＣ’の対応するビットを割り当てると共に、他のブロックに対しては埋込みデータＣの対応するビットを割り当てる。
【００３１】
特徴量調整部１３は、データ割当て部１２によりそれぞれ割り当てられたビットの値に基づいて、各ブロックの特徴量を調整する。すなわち、「１」が割り当てられたブロックにおいては、「１」を表すように当該ブロックの特徴量が調整される。また、「０」が割り当てられたブロックにおいては、「０」を表すように当該ブロックの特徴量が調整される。これにより、各ブロックに対して割り当てられたビットの値が、それぞれそのブロックに埋め込まれ、埋め込みデータ１〜８が埋め込まれた画像データ（すなわち、画像コード化データ）が生成される。なお、特徴量調整部１３により調整される特徴量は、特に限定されるものではないが、例えば、階調レベルである。
【００３２】
このように、画像コード化装置１０は、原画像に所望のデータ（上述の例では、埋め込みデータＣ）を埋め込む。また、画像コード化装置１０は、境界情報により指定される領域には、埋め込みデータＣの代わりに反転埋め込みデータＣ’を埋め込む。
【００３３】
図６は、第１の実施形態の画像コード復号装置の構成を示す図である。画像コード復号装置２０は、画像コード化データから埋め込みデータを抽出する画像処理装置である。この画像コード化データは、例えば、図４に示す画像コード化装置１０により生成される。そして、画像コード復号装置２０は、ブロック分割部２１、判定部２２、データ検出部２３、特定部２４、境界検出部２５を備える。
【００３４】
ブロック分割部２１は、入力画像データを複数のブロックに分割する。このとき、ブロック分割部２１は、画像コード化装置１０が備えるブロック分割部１１と同じ分割処理を行う。したがって、この例では、入力画像データは、１６×８ブロックに分割される。
【００３５】
判定部２２は、ブロック分割部２１により得られる各ブロックの特徴量を算出する。そして、判定部２２は、各ブロックの特徴量に基づいて、各ブロックに対して割り当てられているビットの値を判定する。したがって、すべてのブロックについて上記判定を行うことにより、図５に示す埋め込みデータ１〜８が抽出される。ただし、画像コード復号装置２０は、判定部２２により抽出された埋め込みデータ１〜８に対して多数決処理を行うことにより、埋め込みデータを決定する。よって、判定部２２により抽出された埋め込みデータ１〜８を、候補データ１〜８と呼ぶことにする。
【００３６】
データ検出部２３は、判定部２２の判定結果を利用して画像に埋め込まれているデータを検出する。すなわち、データ検出部２３は、判定部２２により得られる候補データ１〜８に対して多数決処理を行うことにより、埋め込みデータを決定する。多数決法では、候補データ１〜８の各ビットにおいて、最も発生頻度の高い値が選択される。
【００３７】
図７は、データ検出部２３の動作を説明する図である。ここでは、候補データ１〜８として、図５に示す埋め込みデータ１〜８が再生されたものとする。すなわち、候補データ１、３〜８は、いずれも埋め込みデータＣに相当する。また、候補データ２の第９〜第１６ビットは、埋め込みデータＣの第９〜第１６ビットに相当する。これに対して、候補データ２の第１〜第８ビットは、反転埋め込みデータＣ’の第１〜第８ビットに相当する。
【００３８】
上記候補コード１〜８に対して多数決判定が行われる。そうすると、まず、第１ビットにおいては、「１」が７回発生し、「０」が１回発生している。したがって、第１ビットは「１」と判定される。続いて、第２ビットにおいては、「０」が７回発生し、「１」が１回発生している。したがって、第２ビットは「０」と判定される。以下同様に、第３〜第１６ビットに対しても多数決判定が行われる。この結果、埋め込みデータＣ「１０１０１１０１０１００１０１０」が再生される。
【００３９】
このように、画像コード化装置１０において、画像の一部に反転埋め込みデータＣ’が埋め込まれていても、データ検出部２３は、多数決処理により、埋め込みデータＣを再生することができる。再生された埋め込みデータＣは、入力画像に対応する参照情報として出力されると共に、特定部２４にも送信される。
【００４０】
特定部２４は、判定部２２の判定結果を利用して反転埋め込みデータＣ’が割り当てられているブロックを特定する。すなわち、特定部２４は、候補データ１〜８において、多数決判定により得られる判定結果データ（すなわち、埋め込みデータＣ）と一致しないデータ列をサーチする。図７に示す例では、判定結果データと一致しないビット列として、候補データ２の第１〜第８ビットが抽出される。ここで、候補データ２（すなわち、埋め込みデータ２）の第１〜第８ビットは、図５に示すように、第３行に位置するブロックに割り当てられている。したがって、この場合、反転埋め込みデータＣ’が割り当てられているブロックとして、第３行に位置するブロックが特定される。
【００４１】
境界検出部２５は、特定部２４により特定されたブロックに基づいて、原画像を複数の画像領域に区切るための境界ラインを検出する。この例では、第３行に位置するブロックが特定されている。したがって、この場合、第３行に沿って設定されている境界ラインが検出される。
【００４２】
このように、第１の実施形態では、画像に埋め込まれたデータを利用して、その画像を区切る境界ラインを検出することができる。ここで、このデータは、視覚的に認識されにくいように画像に埋め込まれる。したがって、実施形態の画像処理方法によれば、視覚的に認識されにくいように、画像内に境界情報を設定することができる。
【００４３】
なお、境界ラインを指定するための特定コード（例えば「１１１１１１１１」）を画像に埋め込むようにしても、デコーダ側で境界を認識することは可能である。ただし、この場合は、埋め込みデータが特定コードに近いときは（例えば、「１０１１１１１１」）、特定コードの第２ビットが誤って認識されると、境界ラインを誤検出してしまう。これに対して、実施形態の方法では、埋め込みデータの各ビットを反転することにより得られる反転埋め込みデータを利用して境界ラインが設定される。この場合、反転埋め込みデータがデコーダに入力されたときに、すべてのビットが誤認識された場合に限って、埋め込みデータと反転埋め込みデータとが互いに一致する。換言すれば、一定の割合で抽出ビットの誤認識が発生するとしても、埋め込みデータと反転埋め込みデータとが互いに一致する確率は非常に低い。したがって、実施形態の画像処理方法によれば、特定コードを埋め込む方法と比較して、境界ラインを検出できない確率が低くなる。
【００４４】
＜第２の実施形態＞
図８は、印刷物の一例を示す図である。ここでは、紙面にカレンダが印刷されている。このカレンダでは、日付ごとに１つの日付領域３１が設けられている。日付領域３１の形状は、長方形である。また、各日付領域３１には、予め、日付情報（日付および曜日）が印刷されている。
【００４５】
図９は、日付領域３１の画像データを示す図である。日付領域３１のサイズは、Ｈ×Ｗ画素である。すなわち、日付領域３１の縦方向のサイズはＨ画素であり、日付領域３１の横方向のサイズはＷ画素である。また、日付情報は、日付領域３１の上部領域に印字されるように設定されている。さらに、メモ記入領域３２は、日付領域３１の中で日付情報が印刷されない領域である。なお、メモ記入領域３２は、例えば、ユーザが手書きでメモ等を筆記するために使用される。
【００４６】
境界ライン３３は、日付領域３１からメモ記入領域３２を切り出すための切出し位置を表している。また、境界ライン３３は、日付領域３１の上辺からＢ画素だけ離れた位置に日付領域３１の上辺と平行に引かれている。なお、図９では、境界ライン３３が破線で描かれているが、説明のために示したものであり、紙面に印刷されるものではない。
【００４７】
以下、図８および図９に示す日付領域３１に所望のデータおよび境界ライン３３を表す境界情報を埋め込む方法について説明する。すなわち、第２の実施形態は、画像コード化方法および画像コード化装置に係わる。
【００４８】
第２の実施形態では、各ブロックはそれぞれ１組のサブブロックから構成され、１組のサブブロックの特徴量を利用して「０」または「１」が表される。各サブブロックのサイズは、すべて同じである。図１０に示す例では、ブロックＢ１は、１組のサブブロックＳＢ１(L)、ＳＢ１(R)に分割され、ブロックＢ２は、１組のサブブロックＳＢ２(L)、ＳＢ２(R)に分割されている。
【００４９】
１つのブロックに１ビットのデータを埋め込むためには、そのブロックを構成する１組のサブブロックの特徴量（この例では、平均濃度）が調整される。このとき、各サブブロックの特徴量は、例えば、与えられたデータに応じて下記のように調整される。
データ＝０：Ｄ(L)＜Ｄ(R)
データ＝１：Ｄ(L)≧Ｄ(R)
なお、Ｄ(L)は、左側のサブブロックの特徴量を表し、Ｄ(R)は、右側のサブブロックの特徴量を表す。
【００５０】
例えば、ブロックＢ１に対して「１」が割り当てられたものとする。ここで、各サブブロックの特徴量は、予め算出されているものとする。そして、サブブロックＳＢ１(L)、ＳＢ１(R)の特徴量が比較される。この結果、サブブロックＳＢ１(L)の特徴量がサブブロックＳＢ１(R)の特徴量よりも小さければ、サブブロックＳＢ１(L)の特徴量がサブブロックＳＢ１(R)の特徴量以上になるように、サブブロックＳＢ１(L)、ＳＢ１(R)の少なくとも一方の特徴量が調整される。一方、サブブロックＳＢ１(L)の特徴量がサブブロックＳＢ１(R)の特徴量以上であれば、サブブロックＳＢ１(L)、ＳＢ１(R)の特徴量はそのまま保持される。なお、本特許出願においては、特徴量を保持する処理は、特徴量を調整する処理に含まれるものとする。
【００５１】
また、ブロックＢ２に対して「０」が割り当てられたときは、下記の処理が行われる。すなわち、サブブロックＳＢ２(L)の特徴量がサブブロックＳＢ２(R)の特徴量よりも小さければ、サブブロックＳＢ２(L)、ＳＢ２(R)の特徴量はそのまま保持される。一方、サブブロックＳＢ２(L)の特徴量がサブブロックＳＢ２(R)の特徴量以上であれば、サブブロックＳＢ２(L)の特徴量がサブブロックＳＢ２(R)の特徴量よりも小さくなるように、サブブロックＳＢ２(L)、ＳＢ２(L)の少なくとも一方の特徴量が調整される。
【００５２】
図１１は、第２の実施形態の画像コード化装置の構成を示す図である。第２の実施形態の画像処理装置４０は、ブロック分割部４１、ブロック抽出部４２、平均化部４３、レジスタ４４Ｌ、４４Ｒ、比較部４５、エンコード部４６を備える。そして、画像コード化装置４０には、原画像データが入力される。また、画像コード化装置４０には、コードＣおよび反転コードＣ’が与えられる。コードＣは、原画像に埋め込む情報を表すデータ列であり、第１の実施形態の埋め込みデータＣ「１０１０１１０１０１００１０１０」に相当する。また、反転コードＣ’は、コードＣの各ビットを反転することにより生成され、第１の実施形態の反転埋め込みデータＣ’に相当する。
【００５３】
ブロック分割部４１は、第１の実施形態と同様に、画像データを複数のブロックに分割する。また、ブロック分割ブ４１は、各ブロックを１組のサブブロックに分割する。このとき、ブロック分割部４１は、画像データをいったん複数のブロックに分割した後に各ブロックをサブブロックに分割する必要はなく、画像データを複数のサブブロックに分割するようにしてもよい。
【００５４】
ブロック抽出部４２は、ブロック分割部４１により得られる複数のブロックから、処理対象のブロックを１つずつ順番に抽出する。すなわち、ブロック抽出部４２は、処理対象の１組のサブブロックを抽出する。平均化部４３は、ブロック抽出部４２により抽出されたブロック（以下、対象ブロック）に属する各サブブロックの特徴量の平均を算出する。特徴量は、例えば、各画素の濃度（または、階調レベル）である。この場合、平均化部４３は、対象ブロックに属する１組のサブブロックの平均濃度を算出する。
【００５５】
レジスタ４４Ｌ、４４Ｒは、平均化部４３により算出された平均濃度情報を保持する。このとき、対象ブロックの左側のサブブロックの平均濃度情報がレジスタ４４Ｌに書き込まれ、右側のサブブロックの平均濃度情報がレジスタ４４Ｒに書き込まれる。
【００５６】
比較部４５は、レジスタ４４Ｌ、４４Ｒを参照し、１組のサブブロックの平均濃度の大小関係に基づいて、対象ブロックの状態をチェックする。このとき、「Ｄ(L)＜Ｄ(R)」であれば「０」と判定され、「Ｄ(L)≧Ｄ(R)」であれば「１」と判定される。なお、ここでは、Ｄ(L)は、左側のサブブロックの平均濃度を表し、Ｄ(R)は、右側のサブブロックの平均濃度を表す。
【００５７】
さらに、比較部４５は、対象ブロックについての判定結果が、コードＣの対応するビットの値と一致するか否かをチェックする。ただし、比較部４５は、対象ブロックが図９に示す境界ライン３３上に位置する場合には、対象ブロックについての判定結果が、反転コードＣ’の対応するビットの値と一致するか否かをチェックする。そして、比較部４５は、対象ブロックについての判定結果が、コードＣまたは反転コードＣ’の対応するビットの値と一致するか否かを表す比較結果情報を出力する。
【００５８】
エンコード部４６は、比較部４５から出力される比較結果情報に基づいて、対象ブロックに属するサブブロックの特徴量を調整する。すなわち、エンコード部４６は、対象ブロックについての判定結果が「一致」であれば、各サブブロックの平均濃度を保持する。一方、対象ブロックについての判定結果が「不一致」であれば、エンコード部４６は、各サブブロックの平均濃度を変更する。例えば、対象ブロックの状態が「Ｄ(L)＜Ｄ(R)」であるときに、比較結果情報が「不一致」であれば、対象ブロックの状態が「Ｄ(L)≧Ｄ(R)」となるように、少なくとも一方のサブブロックの平均濃度が調整される。同様に、対象ブロックの状態が「Ｄ(L)≧Ｄ(R)」であるときに、比較結果情報が「不一致」であれば、対象ブロックの状態が「Ｄ(L)＜Ｄ(R)」となるように、少なくとも一方のサブブロックの平均濃度が調整される。
【００５９】
エンコード部４６は、ブロック分割部４１により生成される全てのブロックについて、上述の処理を行う。この結果、原画像データにコードＣおよび反転コードＣ’が埋め込まれる。
【００６０】
図１２は、図１１に示す画像コード化装置３０により生成される画像コード化データを示す図である。ここで、原画像は、図８〜図９に示すカレンダの１つの日付領域３１である。また、この例では、図９に示す境界ライン３３は、原画像の第３行に位置する各ブロックを横切るように設定されている。したがって、原画像の第３行の各ブロックには、反転コードＣ’の対応するビット割り当てられている。また、他のブロックには、コードＣの対応するビットが割り当てられている。
【００６１】
図１３および図１３Ｂは、第２の実施形態の画像処理方法を示すフローチャートである。このフローチャートの処理は、図１１に示す画像コード化装置３０により実行される。
【００６２】
ステップＳ１において、コードＣが設定される。コードＣは、原画像に埋め込まれるデータ列であり、上述の例では「１０１０１１０１０１００１０１０」である。また、ステップＳ２において、反転コードＣ’が生成される。反転コードＣ’は、コードＣの各ビットを反転することにより生成される。したがって、反転コードＣ’は、この例では「０１０１００１０１０１１０１０１」である。
【００６３】
ステップＳ３において、変数ｎが初期化される。変数ｎは、コードＣ（または、反転コードＣ’）のビットを識別する。例えば、「ｎ＝１」は、コードＣの第１ビットを表す。ステップＳ４において、原画像データが入力され、また、境界座標Ｂが入力される。境界座標Ｂは、図９に示すように、縦方向（または、Ｙ方向）における境界ライン３３の位置を指示する。
【００６４】
ステップＳ５において、ブロック分割部４１は、入力画像データを複数のブロックに分割する。このとき、ブロック分割部４１は、さらに、各ブロックを１組のサブブロックに分割する。ステップＳ６において、ブロック抽出部４２は、変数ｎに対応するブロックを抽出する。以下、ステップＳ６で抽出されたブロックを「対象ブロック」と呼ぶことがある。
【００６５】
ステップＳ７〜Ｓ８において、平均化部４３は、対象ブロックに属する１組のサブブロックの平均濃度を算出する。算出された平均濃度を表すデータは、レジスタ４４Ｌ、４４Ｒに格納される。ステップＳ９において、比較部４５は、対象ブロックに属する１組のサブブロック間で平均濃度を比較することにより、対象ブロックの状態（０または１）を判定する。対象ブロックの状態を判定する方法は、例えば、図１０を参照しながら説明した手順に従う。
【００６６】
ステップＳ１０において、比較部４５は、対象ブロックの画像領域が境界座標Ｂを含むか否かをチェックする。なお、画像コード化装置４０は、画像データ上での各ブロックの位置（例えば、左上角の座標または中心座標）を管理している。また、各ブロックのサイズ（画素数）は、予め決められている。そして、比較部４５は、対象ブロックの位置を参照し、対象ブロックの画像領域が境界座標Ｂを含むか否かをチェックする。
【００６７】
対象ブロックの画像領域が境界座標Ｂを含まなければ、対象ブロックは、境界ライン３３によって横切られていないと判定され、ステップＳ１１が実行される。一方、対象ブロックの画像領域が境界座標Ｂを含むときは、対象ブロックは、境界ライン３３によって横切られていると判定され、ステップＳ１２が実行される。
【００６８】
ステップＳ１１において、比較部４５は、コードＣの第ｎビットの値と、ステップＳ９の判定結果とを比較する。ステップＳ９の判定結果がコードＣの第ｎビットの値に一致するときは、ステップＳ１４の濃度変更処理を実行することなく、ステップＳ１５へ進む。一方、ステップＳ９の判定結果がコードＣの第ｎビットの値に一致しないときは、ステップＳ１３に進む。
【００６９】
ステップＳ１２の処理は、基本的には、ステップＳ１１と同じである。ただし、ステップＳ１２では、比較部４５は、反転コードＣ’の第ｎビットの値と、ステップＳ９の判定結果とを比較する。そして、ステップＳ９の判定結果が反転コードＣ’の第ｎビットの値に一致するときは、ステップＳ１４の濃度変更処理を実行することなく、ステップＳ１５へ進む。一方、ステップＳ９の判定結果が反転コードＣ’の第ｎビットの値に一致しなければ、ステップＳ１３に進む。
【００７０】
ステップＳ１３において、対象ブロックの１組のサブブロックの平均濃度の差が、予め決められている上限閾値と比較される。そして、平均濃度の差が上限閾値以下であれば、ステップＳ１４において、エンコード部４６により、濃度変更処理が実行される。エンコード部４６は、対象ブロックの状態がコードＣまたは反転コードＣ’の対応するビットの値に一致するように、サブブロックの平均濃度を調整する。
【００７１】
ステップＳ１４において対象ブロックに「０」を埋め込む場合（「Ｄ(L)＜Ｄ(R)」を実現する場合）、下記の処理が実行される。
Ｄ’(L)＝（Ｄ(L)＋Ｄ(R)）／２−ΔＤ
Ｄ’(R)＝（Ｄ(L)＋Ｄ(R)）／２＋ΔＤ
【００７２】
ステップＳ１４において対象ブロックに「１」を埋め込む場合（「Ｄ(L)≧Ｄ(R)」を実現する場合）、下記の処理が実行される。
Ｄ’(L)＝（Ｄ(L)＋Ｄ(R)）／２＋ΔＤ
Ｄ’(R)＝（Ｄ(L)＋Ｄ(R)）／２−ΔＤ
【００７３】
Ｄ’(L)は、濃度変更後の左側のサブブロックの平均濃度を表し、Ｄ’(R)は、濃度変更後の右側のサブブロックの平均濃度を表す。ΔＤは、予め決められた定数であり、正の値である。ここで、ΔＤを大きくすれば、画像コード復号処理におけるコード認識精度が高くなるが、ΔＤを大きくし過ぎると画質が劣化する。反対に、ΔＤを小さくすると、画質の劣化が抑えられるが、ΔＤを小さくし過ぎるとコード認識精度が低下する。したがって、ΔＤは、認識精度および画質の双方を考慮して適切に決定することが好ましい。なお、サブブロックの平均濃度を変更する処理は、例えば、対象サブブロックに属する各画素の濃度をそれぞれ同じレベルだけ高くまたは低くする処理により実現される。
【００７４】
平均濃度差が上限閾値を越えていたときは（ステップＳ１３：Ｎｏ）、ステップＳ１４の濃度変更処理はスキップされる。濃度変更処理をスキップする理由は、以下の通りである。すなわち、例えば、対象ブロックの状態が「Ｄ(L)＜Ｄ(R)」であり、その濃度差が上限閾値を越えているものとする。そして、「Ｄ(L)≧Ｄ(R)」を実現するものとする。しかし、平均濃度の差が上限閾値を越えているときは、Ｄ’(L)とＤ(L)との間の差分が大きくなり、また、Ｄ’(R)とＤ(R)との間の差分も大きくなってしまう。すなわち、コード埋め込み後の対象ブロックの画像は、原画像とは大きく異なってしまう。したがって、平均濃度の差が上限閾値を越えているときは、画質の劣化を抑えるために、ステップＳ１４の濃度変更処理はスキップされる。
【００７５】
ステップＳ１５〜Ｓ１６において、変数ｎがインクリメントされる。そして、変数ｎがコード長ｎendを越えたか否かがチェックされる。コード長ｎendは、コードＣのデータ長に相当し、この実施例では１６である。そして、変数ｎがコード長ｎendを越えていれば、ステップＳ１７が実行される。一方、変数ｎがコード長ｎend以下であれば、ステップＳ６に戻って次のブロックについて同様の処理を繰り返す。
【００７６】
ステップＳ１７では、すべてのブロックについてステップＳ６〜Ｓ１４の処理が実行されたか否かがチェックされる。処理が実行されていないブロックが残っている場合には、ステップＳ１８において、変数ｎが再び初期化される。この後、次のブロックに対してステップＳ６〜Ｓ１４の処理が実行される。すべてのブロックについて上記処理が終了すると、ステップＳ１９において、生成された画像コード化データが出力される。
【００７７】
このように、第２の実施形態の画像コード化装置４０によれば、対象ブロックが境界ライン上に位置するときは、反転コードＣ’の対応するビットがその対象ブロックに埋め込まれる。一方、対象ブロックが境界ライン上に位置しないときは、コードＣの対応するビットがその対象ブロックに埋め込まれる。
【００７８】
＜第３の実施形態＞
第３の実施形態の画像処理装置は、画像コード復号装置であり、電子カメラ（または、スキャナ）を用いて取得した画像コード化データから埋め込みコードを抽出する。以下の説明では、第２の実施形態の画像コード化装置４０によりコードが埋め込まれた画像データが第３の実施形態の画像処理装置に入力されるものとする。
【００７９】
図１４は、第３の実施形態において撮影される画像の一例を示す図である。ここでは、電子カメラで撮影される画像は、紙面に印刷されたカレンダの日付領域３１である。この日付領域３１の画像には、図１３Ａ〜図１３Ｂに示す方法でコードＣが埋め込まれている。また、日付領域３１は、メモ記入領域３２を有している。メモ記入領域３２は、日付領域３１において境界ライン３３の下側の領域に相当する。
【００８０】
メモ記入領域３２には、ユーザにより手書きメモが筆記されている。この例では、メモ記入領域３２に「１３：００  打ち合わせ」および「１９：００  送別会」と筆記されている。
【００８１】
日付領域３１の画像には、コードＣだけでなく、反転コードＣ’も埋め込まれている。すなわち、日付領域３１の画像データには、日付領域３１においてメモ記入領域３２を他の領域から区切るための境界ライン３３を表す境界情報が設定されている。そして、図１３Ａ〜図１３Ｂに示す方法で画像データが作成される際に、境界ライン３３上のブロックには、コードＣの代わりに反転コードＣ’が埋め込まれている。なお、コードＣおよび反転コードＣ’が埋め込まれた日付領域３１の画像データは、図１２に示す通りである。
【００８２】
図１５は、第３の実施形態の画像コード復号装置の構成を示す図である。第３の実施形態の画像コード復号装置５０は、第２の実施形態の画像コード化装置４０により生成された画像コード化データを復号する画像処理装置である。
【００８３】
画像コード復号装置５０は、ブロック分割部２１、判定部２２、データ検出部２３、特定部２４、境界検出部２５、画像切出し部５１、情報取得部５２、画像保存部５３を備える。ブロック分割部２１、判定部２２、データ検出部２３、特定部２４、境界検出部２５については、図６を参照しながら説明した通りである。ただし、第３の実施形態についての説明では、入力画像にはコードＣが埋め込まれており、データ検出部２３は、入力画像から抽出したコードＣを出力する。
【００８４】
画像切出し部５１は、境界検出部２５により検出された境界位置（境界ライン情報）に基づいて、入力画像の一部を切り出し、その切り出した画像を表す切出し画像データを出力する。ここで、図１４に示す日付領域３１の画像データが画像コード復号装置５０に入力されると、境界検出部２５は、境界ライン３３を表す境界ライン情報を出力する。そうすると、画像切出し部５１は、日付領域３１から境界ライン３３の下側の画像領域を切り出す。すなわち、メモ記入領域３２が切り出される。
【００８５】
情報取得部５２は、付加情報ＤＢ６１を参照し、データ検出部２３により検出されたコードＣに対応する付加情報（または、関連情報）を取得する。付加情報ＤＢ６１は、画像データに埋め込まれているコードＣ（Ｃ１、Ｃ１、Ｃ３、．．．）に関連づけてそれぞれ対応する付加情報を格納している。付加情報は、例えば、日付情報である。この場合、例えば、コード「１０１０１１０１０１００１０１０」に対応する付加情報として「２００９年１０月１２日」が格納されている。
【００８６】
画像保存部５３は、画像切出し部５１により得られる切出し画像の画像データ、および情報取得部５２により得られる付加情報を、互いに関連づけて保存する。画像保存部５３は、メモリ領域を備える。このメモリ領域は、例えば、不揮発性の半導体メモリにより実現される。
【００８７】
なお、上記構成において、画像コード復号装置５０は、情報取得部５２を備えなくてもよい。すなわち、データ検出部２３により検出されるコードＣが付加情報に変換されることなくそのまま画像保存部５３に保存されてもよい。この場合、画像保存部５３は、データ検出部２３により検出されたコードＣに対応づけて、画像切出し部５１により得られる切出し画像の画像データを保存する。
【００８８】
図１６Ａおよび図１６Ｂは、第３の実施形態において画像データを保存する処理を示すフローチャートである。なお、このフローチャートの処理は、以下の説明では、図１３Ａ〜図１３Ｂに示す方法で生成された画像コード化データが入力されたときに実行されるものとする。
【００８９】
ステップＳ２１およびＳ２２において、ブロック分割部２１、判定部２２、データ検出部２３は、入力画像に埋め込まれているコードＣを検出する。コードＣは、例えば、図３または図７を参照しながら説明した多数決法で決定される。図１２に示す例では、「１０１０１１０１０１００１０１０」が得られている。なお、コードＣが特定されなければ、画像データを保存することなく処理を終了する。
【００９０】
ステップＳ２３において、変数ｒおよび変数counterがそれぞれ初期化される。変数ｒは、複数のブロックに分割された画像の各行においてブロックを識別する。変数ｒの範囲は、例えば、図１２に示す例では、１〜８である。また、変数counterは、複数のブロックに分割された画像の各行において、各ブロックから抽出されたビットがコードＣの対応するビットと異なっていた場合にカウントアップされる。したがって、変数counterは、ゼロに初期される。さらに、ステップＳ２４において変数ｎが初期化される。変数ｎは、コードＣのビットを識別する。変数ｎの範囲は、例えば、図１２に示す例では、１〜１６である。
【００９１】
ステップＳ２５〜Ｓ３５の処理は、特定部２４により実行される。ここで、特定部２４は、複数のブロックの中から変数ｎに従って、対応するブロックを１つずつ順番に抽出する。以下の説明では、抽出されたブロックを「対象ブロック」と呼ぶことがある。そして、特定部２４は、各対象ブロックに対してステップＳ２５〜Ｓ３５の処理を実行する。
【００９２】
ステップＳ２５において、対象ブロックについての判定結果が取得される。なお、各ブロックの判定結果は、ステップＳ２１のデコード処理において生成され、レジスタ等に格納されている。ここで、入力画像データが図１３Ａ〜図１３Ｂに示す方法で生成された場合、各ブロックの判定結果は、当該ブロックに属する１組のサブブロックの特徴量を比較することにより得られる。
【００９３】
ステップＳ２６において、対象ブロックのビット判定結果とコードＣの第ｎビットの値とが比較される。ここで、対象ブロックのビット判定結果とコードＣの第ｎビットの値とが互いに異なっていれば、ステップＳ２７において、変数counterが１だけインクリメントされる。一方、対象ブロックのビット判定結果とコードＣの第ｎビットの値とが互いに一致していれば、ステップＳ２７はスキップされる。
【００９４】
ステップＳ２８では、変数ｒが１だけインクリメントされる。続いて、ステップＳ２９において、変数ｒが最終値ｒendを越えたか否かがチェックされる。最終値ｒendは、各行に属するブロックの個数に相当し、図１２に示す例では８である。そして、変数ｒが最終値ｒendを越えていなければ、ステップＳ３０〜Ｓ３２はスキップされ、ステップＳ３３において変数ｎが１だけインクリメントされる。
【００９５】
ステップＳ３４において、変数ｎがコード長ｎendを越えたか否かがチェックされる。コード長ｎendは、コードＣのデータ長に相当し、この実施例では１６である。そして、変数ｎがコード長ｎendを越えていなければ、ステップＳ２５に戻る。すなわち、次のブロックについてステップＳ２５〜Ｓ３３の処理が実行される。
【００９６】
変数ｒが最終値ｒendを越えていれば（ステップＳ２９：Ｙｅｓ）、ステップＳ３０〜Ｓ３２が実行される。ステップＳ３０において、変数counterが反転ビット数閾値以上であるかがチェックされる。反転ビット数閾値は、特に限定されるものではないが、たとえば「各行に属するブロックの個数×０．８５」である。すなわち、図１２に示す例では、各行に属するブロックの個数は８であるので、反転ビット数閾値は、６．８である。この場合、ステップS３０において、変数counterが０〜６であれば「Ｎｏ」と判定され、変数counterが７または８であるときに「Ｙｅｓ」と判定される。
【００９７】
変数counterが反転ビット数閾値以上であれば、ステップＳ３１において、対象ブロックの位置を表す境界位置情報をメモリ領域に格納する。ここで、対象ブロックの位置は、例えば、対象ブロックの中心座標または対称ブロックの左上角の座標である。なお、変数counterが反転ビット数閾値よりも小さければ、ステップＳ３１はスキップされる。そして、ステップＳ３２において、変数ｒおよび変数counterが初期化される。
【００９８】
変数ｎがコード長ｎendを越えていれば（ステップＳ３４：Ｙｅｓ）、ステップＳ３５において、すべてのブロックについてステップＳ２５〜Ｓ３４の処理が実行されたか否かがチェックされる。処理が実行されていないブロックが残っている場合には、ステップＳ２４において、変数ｎが再び初期化される。この場合、次のブロックに対してステップＳ２５〜Ｓ３４の処理が実行される。一方、すべてのブロックについて上記処理が終了していれば、ステップＳ３６において、画像データが画像保存部５３に登録される。画像データを画像保存部５３に登録する手順は、後で詳しく説明する。
【００９９】
図７および図１２に示す実施例を参照しながら図１６Ａ〜図１６Ｂに示す手順を説明する。まず、図１２に示す画像データの第１行に位置する各ブロックに対してステップＳ２５〜Ｓ３４が繰り返し実行される。なお、この例では、ステップＳ２１のデコード処理において、図７に示す候補データ１〜８が抽出され、多数決判定により「１０１０１１０１０１００１０１０（＝コードＣ）」が得られているものとする。そうすると、第１行に位置する各ブロックのビット（候補データ１の第１〜第８ビット）は、それぞれコードＣの対応するビットに一致する。この場合、変数counterは、カウントアップされることはなく、ゼロのままである。したがって、ステップＳ３１において「Ｎｏ」と判定され、境界位置情報は出力されない。
【０１００】
続いて、第２行に位置する各ブロックに対してステップＳ２５〜Ｓ３４が実行される。この場合、第２行に位置する各ブロックのビット（候補データ１の第９〜第１６ビット）は、それぞれコードＣの対応するビットに一致する。よって、変数counterはカウントアップされることはなく、ステップＳ３１において「Ｎｏ」と判定されるので、境界位置情報は出力されない。
【０１０１】
さらに、第３行に位置する各ブロックに対してステップＳ２５〜Ｓ３４が実行される。しかし、第３行に位置する各ブロックのビット（候補データ２の第１〜第８ビット）は、いずれもコードＣの対応するビットと異なっている。このため、変数counterは８までカウントアップされ、反転ビット数閾値を越える。そうすると、ステップＳ３１において境界位置情報が出力される。このとき、出力される境界位置情報は「第３行に位置するブロックの座標（縦方向座標またはＹ座標）」を表す。すなわち、反転コードＣ’が埋め込まれている行（または、領域）が特定され、その行を表す境界位置情報が出力される。
【０１０２】
この後、他のブロックについても同様に上記処理が繰り返し実行される。ただし、図１２に示す例では、以降の行において境界位置情報は出力されない。
【０１０３】
このように、第３の実施形態の画像コード復号装置によれば、画像に埋め込まれているコードＣが抽出されると共に、反転コードＣ’が埋め込まれている位置が検出される。そして、反転コードＣ’が埋め込まれている位置が、画像を複数の画像領域に区切るための境界情報として出力される。
【０１０４】
図１７は、画像データを登録する処理を示すフローチャートである。この処理は、図１６Ｂに示すステップＳ３６に相当する。また、この処理は、画像切出し部５１および情報取得部５２により実行される。
【０１０５】
なお、以下の説明では、電子カメラを用いた撮影により、図１８に示す画像データが入力されたものとする。図１８に示す例では、画像の解像度は横２４０×縦３２０である。また、画像データ上での日付領域３１の位置（すなわち、頂点Ｐ１〜Ｐ４の座標）は、予め検出されているものとする。例えば、頂点Ｐ１〜Ｐ４のうちの少なくとも３ヶ所に所定のマークが印刷されており、画像処理によりそのマークを認識することで頂点Ｐ１〜Ｐ４の座標を検出してもよい。或いは、図１６Ａ〜図１６Ｂに示すフローチャートにおいて、対象ブロックとして最初に抽出されるブロックおよび最後に抽出されるブロックの位置に基づいて、頂点Ｐ１〜Ｐ４の座標を検出してもよい。
【０１０６】
ステップＳ４１において、情報取得部５２は、付加情報ＤＢ６１にアクセスして、コードＣに対応する付加情報を取得する。付加情報は、この例では「日付」である。ステップＳ４２において、画像切出し部５１は、頂点Ｐ１〜Ｐ４の座標を取得する。ステップＳ４３では、境界位置の座標を取得する。境界位置の座標は、図１６ＢのステップＳ３１において生成される。図１８に示す例では、境界位置は、境界点Ｐ５（29,135）および境界点Ｐ６（168,94）により表される。なお、境界点Ｐ５、Ｐ６を接続する直線が、境界ライン３３に相当する。
【０１０７】
ステップＳ４４において、画像切出し部５１は、４つの頂点Ｐ１〜Ｐ４のうちの下側の２つ（すなわち、Ｐ３、Ｐ４）、および境界点Ｐ５、Ｐ６で囲まれる長方形の画像を切り出す。これにより、図１４に示すメモ記入領域３２が切り出される。そして、ステップＳ４５において、切り出された画像が画像保存部５３に登録される。このとき、スケジューラアプリケーションは、ステップＳ４１で取得した「日付」に対応づけて、ステップＳ４４で切り出された画像データを登録する。
【０１０８】
なお、カメラの画像センサの座標系に対して対象領域（ここでは、日付領域３１）が斜めに撮影された場合、あるいは対象領域がゆがんだ状態で撮影させた場合には、例えば、逆射影変換により、正立の画像に戻すようにしてもよい。
【０１０９】
上述のようにして画像保存部５３に登録された画像データは、スケジューラ６３により読み出され、図１５に示す表示装置６２に表示される。ここで、実施形態の画像処理装置は、例えば、カメラ付き携帯電話機内に設けられる。この場合、表示装置６２は、このカメラ付き携帯電話機が備える表示デバイスである。
【０１１０】
スケジューラ６３は、アプリケーションソフトウェアであり、ユーザからの指示に応じて画像データを表示する。例えば、スケジューラ６３は、ユーザにより「日付：２００９年１０月１２日」が入力されると、その日付に対応する画像データを画像保存部５３から読み出す。そして、スケジューラ６３は、画像保存部５３から読み出した画像データを表示装置６２に表示する。
【０１１１】
図１９は、スケジューラ６３により表示装置６２に表示される画像の一例を示す図である。スケジューラ６３は、スケジュール管理のためのフォームを表示すると共に、ユーザにより指定された日付に対応する画像をそのフォーム内に表示する。このとき、スケジューラ６３は、日付領域３１全体ではなく、メモ記入領域３２の画像のみを表示装置６２に表示する。
【０１１２】
このように、第３の実施形態の画像処理装置においては、入力画像に埋め込まれているコードを抽出すると共に、その入力画像を区切るための境界情報もその入力画像から抽出する。そして、境界情報により切り取られた画像は、入力画像から抽出されたコードに関連づけて保存される。
【０１１３】
＜他の実施形態＞
上述の例では、入力画像に対して境界ラインが１本だけ設定されているものとして説明を行ったが、実施形態はこれに限定されるものではない。すなわち、入力画像に対して複数の境界ラインが設定されていてもよい。入力画像に対して複数の境界ラインが設定される場合であっても、図１３Ａ〜図１３Ｂに示す方法で各境界ラインを表す情報を画像に埋め込むことができ、また、図１６Ａ〜図１６Ｂに示す方法で各境界ラインを表す情報を抽出することができる。
【０１１４】
実施形態の画像処理方法では、各ブロック（または、サブブロック）の特徴量を利用してエンコード／デコードが行われるが、ブロック全体の特徴量を利用してもよいし、ブロックの一部の領域の特徴量を利用してもよい。例えば、各ブロックの中央領域の濃度の平均を利用してエンコード／デコードが行われてもよい。この方法によれば、ブロック全体の平均濃度を用いた場合と比べて、濃度変更処理にかかる処理量が少なくなる。
【０１１５】
実施形態の方法において、カラー画像が処理される場合には、例えば、カラー画像を明度に変換したグレースケール画像（白黒画像）に対してコードを埋め込む方法、カラー画像における三原色（シアン、マゼンダ、イエロー）の色成分の中のいずれかの成分（例えば、黄色成分）にコードを埋め込む方法が考えられる。後者の方法によれば、コードを埋め込むために濃度を変更しても人間の目で見分けがつきにくいという利点がある。
【０１１６】
また、上述の例では、画像（ブロックまたはサブブロック）の特徴量として平均濃度が使用されているが、実施形態の画像処理はこれに限定されるものではない。すなわち、特徴量は、例えば、粒状度、彩度、濃度重心、分散等であってもよい。さらに、特徴量（平均濃度、粒状度、彩度、濃度重心、分散等）を所定のルールに基づいて変換することで得られる他のパラメータを用いてエンコード／デコードが行われてもよい。
【０１１７】
なお、本発明の実施形態は、図２〜図１９を参照しながら説明した構成および方法に限定されるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含む。また、本特許出願に記載の構成および手順は、互いに矛盾のない限りにおいて、任意に組み合わせて使用してもよい。
【０１１８】
＜画像処理装置のハードウェア構成＞
図２０は、画像処理装置（画像コード化装置１０、４０、および画像コード復号装置２０、５０）のハードウェア構成を示す図である。図２０において、ＣＰＵ１０１は、メモリ１０３を利用して画像処理プログラムを実行することにより、実施形態の画像処理方法を提供する。記憶装置１０２は、例えばハードディスクであり、画像処理プログラムを格納する。なお、記憶装置１０２は、外部記録装置であってもよい。メモリ１０３は、例えば半導体メモリであり、ＲＡＭ領域およびＲＯＭ領域を含んで構成される。
【０１１９】
読み取り装置１０４は、ＣＰＵ１０１の指示に従って可搬型記録媒体１０５にアクセスする。可搬性記録媒体１０５は、例えば、半導体デバイス、磁気的作用により情報が入出力される媒体、光学的作用により情報が入出力される媒体を含むものとする。通信インタフェース１０６は、ＣＰＵ１０１の指示に従って、ネットワークを介してデータを送受信する。入出力装置１０７は、例えば、ユーザからの指示を受け付けるデバイス等に相当する。
【０１２０】
実施形態に係わる画像処理プログラムは、例えば、下記の形態で提供される。
（１）記憶装置１０２に予めインストールされている。
（２）可搬型記録媒体１０５により提供される。
（３）プログラムサーバ１１０からダウンロードする。
【０１２１】
そして、上記構成のコンピュータで画像処理プログラムを実行することにより、実施形態に係わる画像処理装置が実現される。すなわち、上記構成のコンピュータで実施形態の画像処理プログラムを実行することにより、画像コード化装置１０、４０が備えるブロック分割部１１、データ割当て部１２、特徴量調整部１３、ブロック分割部４１、ブロック抽出部４２、平均化部４３、比較部４５、エンコード部４６の一部または全部が実現される。また、実施形態の画像処理プログラムを実行することにより、画像コード復号装置２０、５０が備えるブロック分割部２１、判定部２２、データ検出部２３、特定部２４、境界検出部２５、画像切出し部５１、情報取得部５２の一部または全部が実現される。
【０１２２】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）
画像を複数のブロックに分割する分割部と、
前記画像を複数の画像領域に区切るための境界情報に応じて決まるブロックに対して、埋め込みデータの各ビットを反転することにより得られる反転埋め込みデータの対応するビットを割り当てると共に、他のブロックに対して前記埋め込みデータの対応するビットを割り当てる割当て部と、
前記割当て部によりそれぞれ割り当てられたビットの値に基づいて、各ブロックの特徴量を調整する調整部、
を有する画像処理装置。
（付記２）
付記１に記載の画像処理装置であって、
前記分割部は、前記画像を行方向および列方向に分割することにより前記複数のブロックを生成し、
前記割当て部は、前記境界情報に応じて決まる行に属するブロックに対して、前記反転埋め込みデータの対応するビットを割り当てる
ことを特徴とする画像処理装置。
（付記３）
付記１または２に記載の画像処理装置であって、
前記分割部は、各ブロックをさらに１組のサブブロックに分割し、
前記調整部は、前記割当て部により割り当てられたビットの値に基づいて、前記１組のサブブロックの特徴量の大小関係を調整する
ことを特徴とする画像処理装置。
（付記４）
画像コード化装置において、画像を複数のブロックに分割し、境界情報に応じて決まるブロックに対して埋め込みデータの各ビットを反転することにより得られる反転埋め込みデータの対応するビットを割り当てると共に他のブロックに対して前記埋め込みデータの対応するビットを割り当て、それぞれ割り当てられたビットの値に基づいて各ブロックの特徴量を調整する、ことにより生成される画像データを処理する画像処理装置であって、
前記画像データにより表される画像を複数のブロックに分割する分割部と、
各ブロックの特徴量に基づいて各ブロックに対して割り当てられているビットの値を判定する判定部と、
前記判定部の判定結果を利用して前記埋め込みデータを検出するデータ検出部と、
前記データ検出部により検出された埋め込みデータおよび前記判定部の判定結果を利用して、前記反転埋め込みデータが割り当てられているブロックを特定する特定部と、
前記特定部により特定されたブロックの位置に基づいて、前記画像を複数の画像領域に区切るための境界位置を検出する境界検出部、
を有する画像処理装置。
（付記５）
付記４に記載の画像処理装置であって、
前記境界検出部により検出された境界位置に基づいて、前記画像から切り出される画像を表す切出し画像データを出力する画像切出し部と、
前記データ検出部により検出された埋め込みデータに対応づけて前記切出し画像データを保存する画像保存部、をさらに備える
ことを特徴とする画像処理装置。
（付記６）
付記４に記載の画像処理装置であって、
前記境界検出部により検出された境界位置に基づいて、前記画像から切り出される画像を表す切出し画像データを出力する画像切出し部と、
前記データ検出部により検出された埋め込みデータに対応する付加情報を取得する情報取得部と、
前記付加情報および前記切出し画像データを保存する画像保存部、をさらに備える
ことを特徴とする画像処理装置。
（付記７）
付記４〜６のいずれか１つに記載の画像処理装置であって、
前記画像コード化装置において、前記画像を行方向および列方向に分割することにより前記複数のブロックが生成され、
前記特定部は、行ごとに、前記データ検出部により検出された埋め込みデータと異なるビットの個数をカウントし、前記カウントされた個数が予め決められた閾値よりも大きい行に属するブロックに前記反転埋め込みデータが割り当てられていると判断する
ことを特徴とする画像処理装置。
（付記８）
画像を複数のブロックに分割し、
前記画像を複数の画像領域に区切るための境界情報に応じて決まるブロックに対して、埋め込みデータの各ビットを反転することにより得られる反転埋め込みデータの対応するビットを割り当てると共に、他のブロックに対して前記埋め込みデータの対応するビットを割り当て、
前記割当て部によりそれぞれ割り当てられたビットの値に基づいて、各ブロックの特徴量を調整する、
ことを特徴とする画像処理方法。
（付記９）
画像コード化装置において、画像を複数のブロックに分割し、境界情報に応じて決まるブロックに対して埋め込みデータの各ビットを反転することにより得られる反転埋め込みデータの対応するビットを割り当てると共に他のブロックに対して前記埋め込みデータの対応するビットを割り当て、それぞれ割り当てられたビットの値に基づいて各ブロックの特徴量を調整する、ことにより生成される画像データを処理する画像処理方法であって、
前記画像データにより表される画像を複数のブロックに分割し、
各ブロックの特徴量に基づいて各ブロックに対して割り当てられているビットの値を判定し、
前記判定結果を利用して前記埋め込みデータを検出し、
前記検出された埋め込みデータおよび前記判定結果を利用して、前記反転埋め込みデータが割り当てられているブロックを特定し、
前記特定されたブロックの位置に基づいて、前記画像を複数の画像領域に区切るための境界位置を検出する、
ことを特徴とする画像処理方法。
（付記１０）
コンピュータに、
画像を複数のブロックに分割するステップ、
前記画像を複数の画像領域に区切るための境界情報に応じて決まるブロックに対して、埋め込みデータの各ビットを反転することにより得られる反転埋め込みデータの対応するビットを割り当てると共に、他のブロックに対して前記埋め込みデータの対応するビットを割り当てるステップ、
前記割当て部によりそれぞれ割り当てられたビットの値に基づいて、各ブロックの特徴量を調整するステップ、
を実行させる画像処理プログラム。
（付記１１）
画像コード化装置において、画像を複数のブロックに分割し、境界情報に応じて決まるブロックに対して埋め込みデータの各ビットを反転することにより得られる反転埋め込みデータの対応するビットを割り当てると共に他のブロックに対して前記埋め込みデータの対応するビットを割り当て、それぞれ割り当てられたビットの値に基づいて各ブロックの特徴量を調整する、ことにより生成される画像データを処理するコンピュータに、
前記画像データにより表される画像を複数のブロックに分割するステップ、
各ブロックの特徴量に基づいて各ブロックに対して割り当てられているビットの値を判定するステップ、
前記判定結果を利用して前記埋め込みデータを検出するステップ、
前記検出された埋め込みデータおよび前記判定結果を利用して、前記反転埋め込みデータが割り当てられているブロックを特定するステップ、
前記特定されたブロックの位置に基づいて、前記画像を複数の画像領域に区切るための境界位置を検出するステップ、
を実行させる画像処理プログラム。
【符号の説明】
【０１２３】
１０、４０  画像コード化装置
１１  ブロック分割部
１２  データ割当て部
１３  特徴量調整部
２０、５０  画像コード復号装置
２１  ブロック分割部
２２  判定部
２３  データ検出部
２４  特定部
２５  境界検出部
４１  ブロック分割部
４２  ブロック抽出部
４３  平均化部
４５  比較部
４６  エンコード部
５１  画像切出し部
５２  情報取得部
５３  画像保存部
６１  情報取得部
６２  表示装置
【図１】
2011097318.tif 000003
【図２】
2011097318.tif 000004
【図３】
2011097318.tif 000005
【図４】
2011097318.tif 000006
【図５】
2011097318.tif 000007
【図６】
2011097318.tif 000008
【図７】
2011097318.tif 000009
【図８】
2011097318.tif 000010
【図９】
2011097318.tif 000011
【図１０】
2011097318.tif 000012
【図１１】
2011097318.tif 000013
【図１２】
2011097318.tif 000014
【図１３Ａ】
2011097318.tif 000015
【図１３Ｂ】
2011097318.tif 000016
【図１４】
2011097318.tif 000017
【図１５】
2011097318.tif 000018
【図１６Ａ】
2011097318.tif 000019
【図１６Ｂ】
2011097318.tif 000020
【図１７】
2011097318.tif 000021
【図１９】
2011097318.tif 000022
【図２０】
2011097318.tif 000023
【図１８】
2011097318.tif 000024