(57)【特許請求の範囲】
【請求項１】
特徴量を用いてコードが埋め込まれた第１の印刷画像において特徴量を変化させることによって前記コードに対して改変が付加された第２の印刷画像を撮影することによって撮影画像を取得する画像取得部と、
前記撮影画像から第２の印刷画像の特徴量に基づいてコードを得るデコード部と、
前記デコード部で得られたコードに基づいて、前記撮影画像における前記コードの改変箇所の座標を取得する改変座標取得部と、を備えることを特徴とする画像処理装置。
【請求項２】
前記デコード部は、前記第２の印刷画像の所定領域に含まれる１以上のブロックごとに、前記コードを得ることを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記改変座標取得部は、
前記デコード部によって得られたコードから正解ビットパターンを取得する正解ビットパターン取得部と、
前記正解ビットパターンと前記デコード部で取得されたビットパターンとを比較して、差異が生じたビットをエラービットとして判定するエラービットパターン取得部と、
前記エラービットに基づいて、前記改変箇所の座標を特定する改変箇所検出部と、
前記改変箇所検出部で検出した座標を、前記撮影画像中での前記改変箇所の座標に変換する改変座標変換部と、を備えることを特徴とする請求項２記載の画像処理装置。
【請求項４】
前記改変箇所検出部は、前記エラービットパターン取得部で取得したエラービットの位置とブロックの位置とを照合し、前記所定領域に含まれるブロックの中から隣接するまたは頂点が一致する複数のブロックの組み合わせをブロック群として選択し、前記ブロック群に含まれるエラービットの個数が所定値を上回る場合に該ブロック群に含まれる座標を特定することを特徴とする請求項３記載の画像処理装置。
【請求項５】
前記所定値は、前記ブロック群に含まれるブロックの数の５０％であることを特徴とする請求項４記載の画像処理装置。
【請求項６】
前記改変箇所検出部は、前記ブロックが複数個存在しかつ前記ブロックの少なくとも一部のブロックが互いに隣接する場合には、前記隣接する複数のブロックについて前記所定領域における座標の平均値を求め、該平均値を前記所定領域における改変箇所の座標として特定することを特徴とする請求項４または５記載の画像処理装置。
【請求項７】
前記ブロックは、複数の単ブロックを含み、
前記デコード部は、前記ブロックに含まれる複数の単ブロックの特徴量の関係に基づいてビットパターンを特定することを特徴とする請求項３〜６のいずれか一項に記載の画像処理装置。
【請求項８】
前記ブロックは、２つの互いに隣接する単ブロックであることを特徴とする請求項７記載の画像処理装置。
【請求項９】
特徴量を用いてコードが埋め込まれた第１の印刷画像において特徴量を変化させることによって前記コードに対して改変が付加された第２の印刷画像を撮影することによって撮影画像を取得する画像取得ステップと、
前記撮影画像から第２の印刷画像の特徴量に基づいてコードを得るデコードステップと、
前記デコードステップで得られたコードに基づいて、前記撮影画像における前記コードの改変箇所の座標を取得する改変座標取得ステップと、を含むことを特徴とする画像処理方法。
【請求項１０】
コンピュータに、
特徴量を用いてコードが埋め込まれた第１の印刷画像において特徴量を変化させることによって前記コードに対して改変が付加された第２の印刷画像を撮影することによって撮影画像を取得する画像取得ステップと、
前記撮影画像から第２の印刷画像の特徴量に基づいてコードを得るデコードステップと、
前記デコードステップで得られたコードに基づいて、前記撮影画像における前記コードの改変箇所の座標を取得する改変座標取得ステップと、を実行させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、および、画像処理プログラムに関する。
【背景技術】
【０００２】
紙などの媒体に印刷された画像を取り込み、取り込まれた画像に対して処理する技術などが開示されている。一方で、サーバから通信によって取り込んだ画像をクライアントで処理するとともに表示する技術などが開示されている。このように、画像を処理する技術が開示されている。
【０００３】
印刷された画像を識別する技術として、画像の特徴点を用いて他の画像との一致を判定する方法がある。該方法では、サーバまたはローカルに候補となる画像群を用意しておき、印刷された画像の画素の一部を特徴点として該画像群の特徴点と比較し、全てまたは所定値以上の特徴点が一致する画像を選定し、識別情報を特定する。
【０００４】
印刷された画像を識別する別の技術として、人間の目には見えづらい形でコードを元の印刷された画像に埋め込み、該印刷された画像を光学的に撮影した撮影画像から、埋め込まれたコードを特定して、画像を特定する方法がある。撮影画像に含まれる元の画像から、ユーザによって改変された位置を検出する方法としては、元の画像が特定されている場合に、前述の特徴点を比較し異なる位置を改変箇所として特定する方法がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−１１３５０９号公報
【特許文献２】特開２００９−３００５０１号公報
【特許文献３】特開２００１−１３４７７６号公報
【特許文献４】特開２０００−２２２５６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特徴点を用いて画像の一致を判定する技術には以下の３点の課題がある。１点目は、特徴点による画像比較を行う場合にサーバまたはローカルに画像を用意しておく必要がある点である。これによりサーバまたはローカルに一定以上の記憶領域を使用する必要があり、さらに元の画像を登録しておく必要があるため運用コストがかかる。
【０００７】
２点目は、ネットワーク上の通信によって処理速度が遅くなる点である。３点目は、与えられた画像が改変されるような場合において、サーバまたはローカルに登録されたどの画像とも特徴点が一致しなくなり画像が識別できない場合が発生する点である。また、誤った画像と一致していると判定される可能性もある。
【０００８】
一方、画像に埋め込まれたコードを検出する方法では、サーバまたはローカルに元画像を用意することなく画像の特定が可能である。また該方法では、印刷画像の一部に改変があった場合でも誤り訂正によって元の埋め込まれたコードを検出することが可能である。しかしながら、改変があった箇所を特定する方法については提案されていない。
【０００９】
本発明は上記課題に鑑みなされたものであり、撮像画像から元の画像を特定した上で、改変された位置を高速に特定することができる画像処理装置、画像処理方法、および、画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、明細書開示の画像処理装置は、特徴量を用いてコードが埋め込まれた第１の印刷画像において特徴量を変化させることによって前記コードに対して改変が付加された第２の印刷画像を撮影することによって撮影画像を取得する画像取得部と、前記撮影画像から第２の印刷画像の特徴量に基づいてコードを得るデコード部と、前記デコード部で得られたコードに基づいて、前記撮影画像における前記コードの改変箇所の座標を取得する改変座標取得部と、を備えるものである。
【００１１】
上記課題を解決するために、明細書開示の画像処理方法は、特徴量を用いてコードが埋め込まれた第１の印刷画像において特徴量を変化させることによって前記コードに対して改変が付加された第２の印刷画像を撮影することによって撮影画像を取得する画像取得ステップと、前記撮影画像から第２の印刷画像の特徴量に基づいてコードを得るデコードステップと、前記デコードステップで得られたコードに基づいて、前記撮影画像における前記コードの改変箇所の座標を取得する改変座標取得ステップと、を含むものである。
【００１２】
上記課題を解決するために、明細書開示の画像処理プログラムは、コンピュータに、特徴量を用いてコードが埋め込まれた第１の印刷画像において特徴量を変化させることによって前記コードに対して改変が付加された第２の印刷画像を撮影することによって撮影画像を取得する画像取得ステップと、前記撮影画像から第２の印刷画像の特徴量に基づいてコードを得るデコードステップと、前記デコードステップで得られたコードに基づいて、前記撮影画像における前記コードの改変箇所の座標を取得する改変座標取得ステップと、を実行させるものである。
【発明の効果】
【００１３】
明細書開示の画像処理装置、画像処理方法、および、画像処理プログラムによれば、撮像画像から元の画像を特定した上で改変された位置を高速に特定することができる。
【図面の簡単な説明】
【００１４】
【図１】実施例１に係る画像処理装置のハードウェア構成を説明するためのブロック図である。
【図２】実施例１に係る画像処理プログラムの実行によって実現される各機能のブロック図である。
【図３】（ａ）は、実施例１において用いる印刷画像Ｐについて説明するための図であり、（ｂ）は、四角形領域ＳＱについて説明するための図である。
【図４】四角形領域ＳＱについて説明するための図である。
【図５】３６ビットの同一コードを説明するための図である。
【図６】（ａ）は四角形領域ＳＱ´を説明するための図であり、（ｂ）は撮影された四角形領域ＳＱ´を説明するための図である。
【図７】実施例１に係る画像処理装置によって実行されるフローチャートの一例を説明するための図である。
【図８】デコードの手順を説明するための図である。
【図９】ステップＳ４の詳細を表すフローチャートの一例を説明するための図である。
【図１０】エラービットパターンＢｅの取得過程の詳細を表している。
【図１１】四角形領域ＳＱ´に含まれるペアブロックの位置を説明するための図である。
【図１２】（ａ）は、１回目に取得したペアブロック群の位置の例を示し、（ｂ）は、２回目に走査を行ったペアブロック群の位置を示す図である。
【図１３】ペアブロック群の走査の詳細を表す図である。
【図１４】改変ペアブロックの位置を表す図である。
【図１５】撮影画像Ｉ上にテキストが表示された図である。
【図１６】テーブルの一例を説明するための図である。
【図１７】実施例２に係る画像処理装置のハードウェア構成を説明するためのブロック図である。
【図１８】実施例２に係る画像処理プログラムの実行によって実現される各機能のブロック図である。
【図１９】実施例２において用いるカレンダーについて説明するための図である。
【図２０】カレンダーの３か所に記入されたスケジュールＳＣ１，ＳＣ２，ＳＣ３を説明するための図である。
【図２１】日付欄全体ＳＱ２の単ブロックを説明するための図である。
【図２２】実施例２に係る画像処理装置によって実行されるフローチャートの一例を説明するための図である。
【図２３】１回目に走査するペアブロック群の位置を説明するための図である。
【図２４】紙に書き込んだスケジュールが表示された画面を説明するための図である。
【図２５】実施例３に係る画像処理装置の外観図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照しつつ、実施例について説明する。
【実施例１】
【００１６】
実施例１に係る画像処理装置１００は、ユーザによって改変された印刷画像を撮影することによって、印刷画像に埋め込まれたコードと改変箇所とを特定する装置である。印刷画像は、印刷媒体に印刷された画像である。印刷媒体は、情報が紙面などに読み取り可能に描画されている媒体をいう。印刷媒体は、例えば、紙面にインク、塗料などで印刷された新聞、雑誌、書籍、広告のちらし、ポスターなどを含む。また、広告媒体は、広告のちらしの他、屋外広告の看板、屋外の大型ディスプレイの表示、テレビの画像広告、インターネットのウェブ上の画像広告などを含む。
【００１７】
本実施例においては、一例として、正解の地名を確認することができる地理学習システムについて説明する。具体的には、本実施例においては、画像処理装置１００は、ユーザによって地名が記入された白地図の印刷画像を撮影することによって、ユーザによって記入された箇所のみの正解を撮影画像に重畳して表示する。
【００１８】
図１は、実施例１に係る画像処理装置１００のハードウェア構成を説明するためのブロック図である。図１を参照して、画像処理装置１００は、ＣＰＵ１０、ＲＡＭ２０、通信部３０、操作部４０、インタフェース５０、撮影装置６０、記憶装置７０、メディアアクセス装置８０、インタフェース９０などを含む。これらの各機器は、バスなどによって接続されている。
【００１９】
ＣＰＵ１０は、中央演算処理装置である。ＣＰＵ１０は、１以上のコアを含む。ＲＡＭ２０は、ＣＰＵ１０が実行するプログラム、ＣＰＵ１０が処理するデータなどを一時的に記憶する揮発性メモリである。なお、ＲＡＭ２０は、ＲＯＭおよびＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を含んでいてもよい。
【００２０】
記憶装置７０は、不揮発性記憶装置であり、フラッシュメモリなどのソリッド・ステート・ドライブ（ＳＳＤ）等である。また、記憶装置７０は、ハードディスクドライブに駆動されるハードディスクなどであってもよい。さらに、記憶装置７０は、外部記憶装置であってもよい。なお、記憶装置７０は、ＲＡＭ２０と一体化されていてもよい。また、記憶装置７０とＲＡＭ２０とが同一の物理アドレス空間に配置されてもよい。記憶装置７０は、本実施例に係る画像処理プログラムを記憶する。
【００２１】
ディスプレイ３００は、例えば、液晶ディスプレイ、エレクトロルミネッセンスパネル等である。インタフェース９０は、例えば、ＶＧＡ（Ｖｉｄｅｏ  Ｇｒａｐｈｉｃｓ  Ａｒｒａｙ）等のグラフィックスモジュール、ＤＶＩ（Ｄｉｇｉｔａｌ  Ｖｉｓｕａｌ  Ｉｎｔｅｒｆａｃｅ）等のインタフェースである。画像処理装置１００は、インタフェース９０を介してディスプレイ３００に接続されている。
【００２２】
操作部４０は、キー配列、マウス、タッチパネル、静電パッド等の入力装置である。キー配列は、複数の押しボタンを含む。なお、キー配列としてキーボードを用いてもよい。静電パッドは、平面パッドを指等でなぞるユーザ操作を検知し、ユーザ操作に応じてディスプレイ３００上のカーソルの位置と移動状態とを制御するために使用される装置である。例えば、平面パッド下の電極の静電容量変化に基づいて、ユーザの指の動きが検知される。
【００２３】
通信部３０は、例えば、無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などのインタフェースである。ただし、通信部３０は、携帯電話基地局との通信部、あるいはＰＨＳ（Ｐｅｒｓｏｎａｌ  Ｈａｎｄｙ  Ｐｈｏｎｅ  Ｓｙｓｔｅｍ）基地局との通信部であってもよい。また、通信部３０は、ＬＡＮへの接続インタフェース（ＮＩＣ(Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ)）であってもよい。画像処理装置１００は、通信部３０を通じて、ネットワーク上のサーバ２００と通信し、情報を取得する。なお、サーバ２００に保存されているデータは、記憶装置７０に記憶されていてもよい。
【００２４】
メディアアクセス装置８０は、例えば、フラッシュメモリカード等の入出力装置である。メディアアクセス装置８０は、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、ブルーレイディスクなどの入出力装置へのインタフェースであってもよい。
【００２５】
撮影装置６０は、例えば、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）デバイス、ＭＯＳ（Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）デバイスなどである。撮影装置６０は、インタフェース５０に接続される。インタフェース５０は、ＵＳＢのような外部インタフェースであってもよい。また、インタフェース５０は、撮影装置６０のメーカ独自のインタフェースであってもよい。また、撮影装置６０が画像処理装置１００に内蔵される場合には、インタフェース５０は、ＣＰＵ１０と通信可能などのようなインタフェースであってもよい。      
【００２６】
記憶装置７０に記憶されている画像処理プログラムは、実行可能にＲＡＭ２０に展開される。ＣＰＵ１０は、ＲＡＭ２０に展開された画像処理プログラムを実行する。それにより、画像処理装置１００による画像処理が実行される。図２は、画像処理プログラムの実行によって実現される各機能のブロック図である。
【００２７】
図２を参照して、画像処理装置１００は、画像取得部１１０、デコード部１２０、改変座標取得部１３０、通信部１４０、および表示部１５０として機能する。さらに、改変座標取得部１３０は、正解ビットパターン取得部１３１、エラービットパターン取得部１３２、改変箇所検出部１３３、および改変座標変換部１３４として機能する。画像取得部１１０は、図１の撮影装置６０およびインタフェース５０に対応する。また、通信部１４０は、図１の通信部３０に対応する。また、表示部１５０は、インタフェース９０に対応する。
【００２８】
図３（ａ）は、本実施例において用いる印刷画像Ｐ（第１の印刷画像）について説明するための図である。図３（ａ）を参照して、本実施例においては、都道府県名が書き込まれていない日本地図を印刷画像Ｐとして用いる。印刷画像Ｐは、１以上の領域に分割されている。デコード部１２０は、分割されたいずれかの領域（所定領域）に対してデコード処理する。詳細は後述する。分割された領域の形状は特に限定されるものではない。本実施例においては、印刷画像Ｐは、縦横の罫線によって横１０個×縦１１個の計１１０個の四角形領域に分割されている。
【００２９】
図３（ｂ）は、上記の１１０個の四角形領域の１つである四角形領域ＳＱについて説明するための図である。四角形領域ＳＱには、当該地域に対応する位置コードＧが埋め込まれている。位置コードＧは、左上隅の緯度、左上隅の経度および緯度範囲、経度範囲の値であってもよい。また、位置コードＧは、四角形領域ＳＱの特定座標であってもよく、たとえば四角形の中心についての位置情報を一意に判定可能な値（郵便番号など）を示す値であってもよい。ただしこの場合には、該値を用いて四角形領域ＳＱの任意の点についても位置コードＧが計算できるように、地図の縮尺および方向が規定されている。
【００３０】
本実施例においては、四角形領域ＳＱは、Ｍ行×Ｎ列の単ブロックに分割されている。各単ブロックの特徴量を変更することによって位置コードＧが埋め込まれている。図４で説明する四角形領域ＳＱは、一例として２４行×２４列に分割されている。２つの単ブロック（以後、ペアブロックまたはブロックと称する。）の特徴量に差を設定することにより、ペアブロックに「０」または「１」のビットが割り当てられている。特徴量とは、例えば、単ブロックに含まれる画素の平均濃度、階調のレベル、単ブロックに含まれる画素の特定色（例えば黄色）の平均濃度などである。ペアブロックは、互いに離れた２つの単ブロックであってもよく、互いに隣接する２つの単ブロックであってもよい。本実施例においては、互いに隣接する２つの単ブロックをペアブロックとする。
【００３１】
例えば、単ブロックＡの特徴量が隣接する単ブロックＢの特徴量よりも小さい場合に、ペアブロックのビットを「０」と定義する。また、単ブロックＡの特徴量が単ブロックＢの特徴量よりも大きい場合に、ペアブロックのビットを「１」と定義する。図４の例では、１行あたりに１２個のペアブロック（２４単ブロック）が含まれるため、各行は１２ビット分のコードを表すことができる。したがって、全行（２４行）で、２８８ビット分のコードを表すことができる。
【００３２】
ただし、２８８ビットのコードに限定されることはない。例えば、図５を参照して、３６ビットの同一コードを複数回（例えば８回）繰り返して四角形領域ＳＱに埋め込んでもよい。同一コードを複数回埋め込むことで、多数決によっていわゆる誤り訂正を行うことができる。なお、単ブロック数が２４×２４に限定される訳ではない。また、コードに誤り検出符号を含むこともできる。
【００３３】
図５の例では、四角形領域ＳＱに埋め込まれるコード（以下、埋め込みコードＣ）は、「０１１０１００００１０１１００１１０１０１０１１１０１１０１１０１１１０」の３６ビットである。この３６ビットのデータが８回繰り返して埋め込まれている。コードを埋め込む方向として、例えば、左上から右下に向かう方向とすることができる。すなわち、図５の左から右に向かう行方向について、最上位の行を第１行と定義し、最下位の行を第２４行と定義する。そして、各行ごとに左から右に並ぶペアブロックごとにビットを定義する。さらに、第１行を開始行とし、第２４行を終了行とする。
【００３４】
図５は、８回の繰り返しの埋め込み位置を表している。埋め込みコードＣのうち先頭の１２ビット「０１１０１００００１０１」が位置コードＧで、残りの２４ビット「１００１１０１０１０１１１０１１０１１０１１１０」が誤り訂正コードＥである。誤り訂正コードＥによって、埋め込みコードＣのうち任意の５ビットまで誤りがあっても正しく位置コードＧを検出することができる。
【００３５】
埋め込みコードＣの埋め込み方法は、例えば、パラメータｄｉｒに対して、ｄｉｒ＝｛０，１，２，３｝という４つの値によって定義できる。ｄｉｒ＝０とは、四角形領域ＳＱの左上から開始し、左から右への行方向のペアブロック群によって、右下で終了するようにコードが埋めこまれた場合である。ｄｉｒ＝１は、ｄｉｒ＝０のコード埋め込み方向を９０度時計回りに回転したコードの埋め込み方向を指定する。すなわち、ｄｉｒ＝１とは、四角形領域ＳＱの右上から開始し、上から下への列方向のペアブロック群によって、左下で終了するようにコードが埋めこまれた場合である。
【００３６】
ｄｉｒ＝２は、ｄｉｒ＝０のコード埋め込み方向を１８０度時計回りに回転したコードの埋め込み方向を指定する。すなわち、ｄｉｒ＝２とは、四角形領域ＳＱの右下から開始し、右から左への行方向のペアブロック列に群によって、左上で終了するようにコードが埋めこまれた場合である。ｄｉｒ＝３は、ｄｉｒ＝０のコード埋め込み方向を２７０度時計回りに回転したコードの埋め込み方向を指定する。すなわち、ｄｉｒ＝３とは、四角形領域ＳＱの左下から開始し、下から上への列方向のペアブロック群によって、右上で終了するようにコードが埋めこまれた場合である。ただし、情報の埋め込み方向は、上記の場合に限定される訳ではない。例えば、上記定義とは逆に半時計周りに回転する方向で、ｄｉｒ＝｛０，１，２，３｝を定義してもよい。ｄｉｒ＝０が、左上から開始するものでなくてもよい。
【００３７】
例えば、地図上の埋め込みコードは、地図上の東西南北を基準に、地図の上方向を北とする画像で、ｄｉｒ＝０の埋め込み方向で埋め込むものとする。さらに、ネットワーク経由で取得される緯度経度情報は、地図上の東西南北を基準に、上を北とする画像でｄｉｒ＝０の埋め込み方向のときの左上点、右上点、右下点、左下点の緯度、経度が取得できるとする。デコード部１２０は、得られた埋め込みコードに基づいて、四角形領域ＳＱの四隅の緯度および経度をサーバ２００から取得する。デコード部１２０は、サーバ２００から取得した緯度経度情報と、四角形領域ＳＱの四隅座標とを対応付ける。ここで、四角形領域ＳＱの四隅座標は、撮影装置６０が撮影した画像上の座標軸での座標である。
【００３８】
このような定義を前提として、デコード部１２０が埋め込み方向ｄｉｒ＝０を検出した場合には、デコード部１２０は、サーバ２００から取得した緯度および経度を左上点、右上点、右下点、左下点の緯度および経度として用いればよい。埋め込み方向ｄｉｒ＝０を検出できたか否かは、撮影された画像に対して、デコード部１２０が埋め込み方向ｄｉｒ＝０でのデコード処理を試行し、デコードが成功したことによって判定できる。デコードが成功したか否かは、例えば、コードを示す情報の誤り検出において、誤りが検出されず、正常に復号できたか否かで判定できる。また、埋め込まれる情報に、コードそのものの他、特定の記号、例えば、"code="というようなコマンドあるいはキーワードを埋め込んでおいてもよい。そして、デコード部１２０は、コードとともに、コマンド、あるいはキーワードが検出されたことによって、正常にデコードできたか否かを判定してもよい。
【００３９】
また、デコード部１２０が例えば埋め込み方向ｄｉｒ＝１を検出した場合には、デコード部１２０は、サーバ２００から取得した緯度および経度を反時計回りに９０回転させて左上点、右上点、右下点、左下点の緯度および経度として用いればよい。ｄｉｒ＝２、ｄｉｒ＝３の場合も同様である。
【００４０】
図６（ａ）は、印刷画像Ｐの四角形領域ＳＱにユーザがペンで一部の県名を記入することによって改変された四角形領域ＳＱ´（第２の印刷画像）を説明するための図である。なお、ここでいう記入とは、ペンで記入することに限られず、文字が記入されたシールなどを貼付することも含まれる。図６（ａ）の例では、長野県（改変箇所Ｍ１）および静岡県（改変箇所Ｍ２）の２箇所が、文字の記入によって改変されている。改変箇所Ｍ１，Ｍ２の特定には、デコード処理において訂正された誤りビット情報を用いる。
【００４１】
図６（ｂ）は、撮影装置６０によって撮影された四角形領域ＳＱ´の撮影画像Ｉを説明するための図である。撮影画像Ｉでは、印刷画像Ｐに対する撮影装置６０の傾き回転角度によって、四角形領域ＳＱ´がゆがんで撮影されることがある。本実施例では、撮影画像Ｉの中から、埋め込まれた位置コードＧを特定するとともに、改変箇所Ｍ１，Ｍ２の座標とその座標に相当する位置コードＧを特定する。
【００４２】
続いて、誤りビット情報と改変箇所との関係について説明する。ユーザにより改変された四角形領域ＳＱ´のうち、ユーザが改変した改変箇所Ｍ１,Ｍ２の領域については、元の四角形領域ＳＱで設定されていた特徴量が変化することになる。たとえば、あるペアブロックについて、黄色の階調レベルを特徴量として大小関係を比較する場合において、元の四角形領域ＳＱでは左側の単ブロックの黄色階調レベルＹｌ＝２００、右側の単ブロックの黄色階調レベルＹｒ＝１７０であるとする。この場合、Ｙｌ＞Ｙｒとなるので当該ペアブロックには「１」のビットが埋め込まれていると判定できる。
【００４３】
ユーザが黒いペンで情報を記入した際に、当該ペアブロックの左側の単ブロックに黒いインクが上書きされると、当該単ブロックの黄色階調レベルＹｒが変更され、たとえば、Ｙｒ´＝１００となる。これにより、Ｙｌ＜Ｙｒ´となり、当該ペアブロックには「０」のビットが埋め込まれていると判定される。この場合、四角形領域ＳＱと四角形領域ＳＱ´とで、当該ペアブロックのビットが異なるため、当該ペアブロックに対して判定されるビットは誤りビットとなる。
【００４４】
なお、上書きされた場合でも、たとえば黄色階調レベルＹｒが変更され、Ｙｒ´＝５０となるような場合ではＹｌ＞Ｙｒ´となる大小関係は元の状態と変わらないため、判定されるビットは誤りビットにならない。ユーザがペンなどで情報を上書きする際に単ブロックの位置を意識して記入することはない場合、上書きされたことによる特徴量の大小関係の変化が起こる確率と起こらない確率とは等しいといえる。したがって、上書きされたペアブロックでは、平均して５０％の誤りが発生する。互いに隣接する複数の所定個数のペアブロック（以下、ペアブロック群と呼ぶ）において５０％から所定の範囲内のしきい値以上（例えば４０％以上）のペアブロックが誤りを含むペアブロック群の位置を改変箇所として特定することが好ましい。
【００４５】
図７は、画像処理装置１００によって実行されるフローチャートの一例を説明するための図である。図７を参照して、画像取得部１１０は、撮影画像Ｉを取得する（ステップＳ１）。撮影画像Ｉは、カメラプレビューで取得される毎秒例えば１５枚の撮影画像の全てでもよく、ユーザがシャッターを押して取得した一枚の撮影画像であってもよい。
【００４６】
次に、デコード部１２０は、撮影画像Ｉに含まれる四角形領域ＳＱ´に埋め込まれた位置コードＧに対してデコード処理する（ステップＳ２）。デコード部１２０は、最初に四隅の座標を検出する。四隅の座標検出については、ハフ変換を用いた方法を使用して、四角形領域の四隅の辺を特定し、辺の交点座標を四隅の座標として検出すればよい。
【００４７】
ハフ変換は、ＸＹ座表系のＮ個の点のうちの最も多くの点を通過する直線ＬＭを求める手法として知られている。例えば、直線ＬＭの式をｙ＝ａ＊ｘ＋ｂと仮定する。ここで、「＊」は乗算記号である。このとき、ＸＹ座表系のＮ個の点（ｘｉ，ｙｉ）ｉ＝１，Ｎを通る複数の関係式ｙｉ＝ａｉ＊ｘｉ＋ｂｉが作成できる。関係式ｙｉ＝ａｉ＊ｘｉ＋ｂｉは、座標系（ａ，ｂ）では、複数の直線の軌跡を構成する。ＸＹ座表系のＮ個の点（ｘｉ，ｙｉ）ｉ＝１，Ｎが一直線上（傾きａ０、Ｙ切片ｂ０）にある場合には、関係式ｙｉ＝ａｉ＊ｘｉ＋ｂｉは、一点（ａ０，ｂ０）を通る直線群となる。そこで、（ａ，ｂ）座標系で最も多くの直線が通過する点（ａ０，ｂ０）を求めることで、ＸＹ座表系のＮ個の点（ｘｉ，ｙｉ）ｉ＝１，Ｎの最も多数を通る直線を求めることができる。
【００４８】
四隅座標が１つでも検出できなかった場合には、デコード部１２０は、デコード処理を終了する。四隅座標が全て検出できた場合には、デコード部１２０は、四角形領域の４辺を順に埋め込み領域の上辺とした場合について、上辺方向に並ぶペアブロックに対して、画像の特徴量からビット０かビット１かを判定する。すなわち、デコード部１２０は、上辺に隣接するペアブロックの並びをビットの埋め込みと同一方向に辿り、ペアブロック内の単ブロック間で、特徴量を比較する。上辺に隣接するペアブロックの並びが第１ブロック群に相当する。デコード部１２０は、ビット埋め込み時と同一の定義にしたがって、ビット＝０またはビット＝１を判定する。特徴量が同一と判定された場合には、該ビットについては不定として、「２」を割り当てる。本実施例において、１行について１２ビットの情報が得られることになる。
【００４９】
図８を参照して、本実施例においては、全２４行で計２８８ビットの暫定ビットパターンＢｔが得られる。８回の埋め込みに合わせて、３６ビットごとの多数決を実施することによって、３６ビットの埋め込みコードＣ´が得られる。この際、不定として「２」を割り当てられたビットについては多数決から除外する。多数決の際に、「０」と「１」とが同数になった場合には、「０」または「１」のどちらかを強制的に割り当てる。たとえば、偶数番目のビットでは「０」を、奇数番目のビットでは「１」を割り当てる。
【００５０】
次に、図７を再度参照して、デコード部１２０は、デコード処理が成功したか否かを判定する（ステップＳ３）。ステップＳ３においては、誤り訂正処理により、埋め込みコードＣ´から誤りビットの検出・訂正を行い、誤り訂正に成功すると四角形領域ＳＱ´に埋め込まれた位置コードＧが特定される。この場合、デコード処理が成功したと判定される。誤り訂正に失敗した場合には、デコード処理が成功しなかったと判定される。誤り訂正には、ＢＣＨ、リードソロモンなどの方式がある。ステップＳ３においてデコード処理が成功したと判定されなかった場合には、フローチャートの実行が終了する。ステップＳ３においてデコード処理が成功したと判定された場合、改変座標取得部１３０は、改変箇所を検出する（ステップＳ４）。
【００５１】
図９は、ステップＳ４の詳細を表すフローチャートの一例を説明するための図である。図９を参照して、まず、正解ビットパターン取得部１３１は、四角形領域ＳＱ´に含まれる正解ビットパターンＢｃを取得する（ステップＳ１１）。正解ビットパターン取得部１３１は、位置コードＧに基づいて、誤り検出コードＥを追加した埋め込みコードＣを特定し、埋め込みコードＣを８回繰り返した２８８ビットの正解ビットパターンＢｃを得る。
【００５２】
次に、エラービットパターン取得部１３２は、正解ビットパターンＢｃと暫定ビットパターンＢｔとを比較することによって、エラービットパターンＢｅを取得する。この場合、各ｎ番目の正解ビットパターンＢｃと暫定ビットパターンＢｔとを比較し、一致していればエラービットパターンＢｅのｎ番目に正解ビットとして「１」を、異なっていれば誤りビットとして「０」を割り当てる。この処理を１番目から２８８番目までの全ビットについて行い、２８８ビットのエラービットパターンＢｅを取得する。図１０は、エラービットパターンＢｅの取得過程の詳細を表している。
【００５３】
図１１（ａ）および図１１（ｂ）は、四角形領域ＳＱ´に含まれるペアブロックの位置を説明するための図である。図１１（ｂ）では、正解ビットおよび誤りビットが表されている。図１１（ｂ）を参照して、誤りビットと判定されたペアブロックは、改変箇所Ｍ１，Ｍ２の周囲に集中的に発生している。改変箇所Ｍ１，Ｍ２以外の箇所の誤りビットは、撮影画像に発生したカメラのノイズ、紙の一部の汚れなどが原因で生じる。これらの原因による誤りビットは、改変箇所と比べて発生位置が集中的ではなく分散する。
【００５４】
次に、図９を再度参照して、改変箇所検出部１３３は、四角形領域ＳＱ´内のペアブロックについて、所定のペアブロックを中心とする３行×３列のペアブロックの集合（以後、ペアブロック群と呼ぶ）を１つ取得する（ステップＳ１３）。図１２（ａ）は、１回目に取得したペアブロック群の位置の例を示す。次に、改変箇所検出部１３３は、該ペアブロック群に含まれる誤りビットの数Ｎｅが所定の割合Ｔｈ以上であるか否かを判定する（ステップＳ１４）。ステップＳ１４において「Ｙｅｓ」と判定された場合、改変箇所検出部１３３は、該ペアブロック群の中心のペアブロックを改変ペアブロックと判定する（ステップＳ１５）。所定の割合Ｔｈは、上書きされたペアブロックにおける誤りビットの発生確率５０％をもとに決定した値である。所定の割合Ｔｈは、たとえばペアブロック群に含まれるペアブロックの数９個の５０％に相当する４．５個の小数点を切り捨てた数である「４」とする。
【００５５】
図９を再度参照して、ステップＳ１４において「Ｎｏ」と判定された場合およびステップＳ１５の実行後、改変箇所検出部１３３は、全てのペアブロック群の走査が完了したか否かを判定する（ステップＳ１６）。ステップＳ１６において「Ｎｏ」と判定された場合、改変箇所検出部１３３は、対象を１ペアブロック分進行方向に走査を進め、改変ペアブロックの判定を再度行う（ステップＳ１７）。ステップＳ１７の実行後、ステップＳ１３が再度実行される。図１２（ｂ）は、２回目に走査を行ったペアブロック群の位置を説明するための図である。なお、ペアブロック群のサイズは３行×３列以外でもよい。また、ペアブロック群は、図１２（ｃ）および図１２（ｄ）を参照して、正方形でなくてもよい。ペアブロック群は、２以上のペアブロックから構成され、所定のペアブロックと、該ペアブロックと隣接するまたは頂点が一致するペアブロックとから構成されていればよい。
【００５６】
図１３は、ペアブロック群の走査の詳細を表している。図１３の走査の結果、四角形領域ＳＱ´に含まれるすべてのペアブロック群について、改変ペアブロックは以下の１７個であった。なお、ここでは、（ペアブロックのＮ列目、ペアブロックのＭ行目）として表記した。図１４は、当該１７個の改変ペアブロックの位置を表す。
（４，５）、（４，６）、（４，７）、（４，８）
（２，２２）、（３，２２）、（４，２２）、（６，２２）
（２，２３）、（３，２３）、（４，２３）、（５，２３）、（６，２３）、（７，２３）
（３，２４）、（４，２４）、（５，２４）
【００５７】
次に、図９を再度参照して、改変箇所検出部１３３は、当該１７個の改変ペアブロックについて、列または行が隣接するペアブロックを検出する。具体的には、改変箇所検出部１３３は、列および行のどちらかが同じで、かつもう片方の値の差が±１となる改変ペアブロックを検出する。さらに、改変箇所検出部１３３は、それらの列および行を平均して、改変ペアブロックの中央の列および行を求める（ステップＳ１８）。
【００５８】
本実施例においては、隣接する改変ペアブロックは、
（４，５）、（４，６）、（４，７）、（４，８）と、
（２，２２）、（３，２２）、（４，２２）、（６，２２）、（２，２３）、（３，２３）、（４，２３）、（５，２３）、（６，２３）、（７，２３）、（３，２４）、（４，２４）、（５，２４）との２組に分類される。
【００５９】
中央のペアブロックの列および行の平均をＥＭ１，ＥＭ２とすると、
ＥＭ１＝（４，６．５）
ＥＭ２=（４．２，２２．９）
となる。
【００６０】
次に、改変座標変換部１３４は、ＥＭ１、ＥＭ２の列および行の情報を地理コードＧＭ１，ＧＭ２に変換する（ステップＳ１９）。改変箇所の地理コードが緯度および経度であった場合には、改変座標変換部１３４は、以下の処理によりＧＭ１，ＧＭ２を求める。まず、デコード処理において四角形領域ＳＱ´の左上隅の緯度、左上隅の経度、緯度範囲、および経度範囲が特定されているので、改変座標変換部１３４は、これらをもとに四隅の緯度経度を計算する。また、四隅のペアブロックの座標系（列，行）における座標は（０，０）（１２，０）（０，２４）（１２，２４）となるので、改変座標変換部１３４は、四隅の対応から射影変換による座標変換方法で緯度経度座標系への座標変換式を求める。
【００６１】
変換前の４点の座標を（Ｘ１，Ｙ１）（Ｘ２，Ｙ２）（Ｘ３，Ｙ３）（Ｘ４，Ｙ４）とし、変換後の座標を（ｘ１，ｙ１）（ｘ２，ｙ２）（ｘ３，ｙ３）（ｘ４，ｙ４）とする。この場合、射影変換の連立方程式は次のように表される。それにより、変換係数Ａ〜Ｈを求めることができる。
【００６２】
Ｘ１＊Ａ＋Ｙ１＊Ｂ＋Ｃ−ｘ１＊Ｘ１＊Ｇ−ｘ１＊Ｙ１＊Ｈ＝ｘ１
Ｘ１＊Ｄ＋Ｙ１＊Ｅ＋Ｆ−ｙ１＊Ｘ１＊Ｇ−ｙ１＊Ｙ１＊Ｈ＝ｙ１
Ｘ２＊Ａ＋Ｙ２＊Ｂ＋Ｃ−ｘ２＊Ｘ２＊Ｇ−ｘ２＊Ｙ２＊Ｈ＝ｘ２
Ｘ２＊Ｄ＋Ｙ２＊Ｅ＋Ｆ−ｙ２＊Ｘ２＊Ｇ−ｙ２＊Ｙ２＊Ｈ＝ｙ２
Ｘ３＊Ａ＋Ｙ３＊Ｂ＋Ｃ−ｘ３＊Ｘ３＊Ｇ−ｘ３＊Ｙ３＊Ｈ＝ｘ３
Ｘ３＊Ｄ＋Ｙ３＊Ｅ＋Ｆ−ｙ３＊Ｘ３＊Ｇ−ｙ３＊Ｙ３＊Ｈ＝ｙ３
Ｘ４＊Ａ＋Ｙ４＊Ｂ＋Ｃ−ｘ４＊Ｘ４＊Ｇ−ｘ４＊Ｙ４＊Ｈ＝ｘ４
Ｘ４＊Ｄ＋Ｙ４＊Ｅ＋Ｆ−ｙ４＊Ｘ４＊Ｇ−ｙ４＊Ｙ４＊Ｈ＝ｙ４
【００６３】
次に、改変座標変換部１３４は、以上の式から求めた係数Ａ〜Ｈを使った下式の座標変換式を作成する。改変座標変換部１３４は、下記座標変換式を用いて、四角形領域ＳＱ´の四隅の座標を緯度および経度に変換する。ここで、ＸおよびＹは撮影画像の座標系、ｘおよびｙは緯度および経度である。
ｘ＝（Ａ＊Ｘ＋Ｂ＊Ｙ＋Ｃ）／（Ｇ＊Ｘ＋Ｈ＊Ｙ＋１）
ｙ＝（Ｄ＊Ｘ＋Ｅ＊Ｙ＋Ｆ）／（Ｇ＊Ｘ＋Ｈ＊Ｙ＋１）
【００６４】
改変座標変換部１３４は、求めた座標変換式にＥＭ１，ＥＭ２を代入してＧＭ１，ＧＭ２を得る。次に、図７を再度参照して、改変座標変換部１３４は、１個以上の改変箇所が検出できたか否かを判定する（ステップＳ５）。ここで、１個の改変箇所とは、互いに隣接するペアブロックによって構成されるペアブロック群のことである。図１４の例では、２個の改変箇所が検出される。ステップＳ５において「Ｎｏ」と判定された場合には、フローチャートの実行が終了する。ステップＳ５において「Ｙｅｓ」と判定された場合には、通信部１４０は、改変箇所の地理コードＧＭ１，ＧＭ２を、サーバ２００に送信する。サーバ２００は、地理コードＧＭ１，ＧＭ２に対応する地名を通信部１４０に返す。それにより、通信部１４０は、改変箇所の地名を取得する（ステップＳ６）なお、地理コードに対応する地名は、記憶装置７０に記憶されていてもよい。
【００６５】
本実施例においては、地理コードＧＭ１は「長野県」に対応し、地理コードＧＭ２は「静岡県」にする。表示部１５０は、ディスプレイ３００に撮影画像Ｉを表示させる。さらに、表示部１５０は、サーバ２００から取得した「長野県」のテキスト情報を撮影画像Ｉ上の（ＸＭ１，ＹＭ１）の座標に、「静岡県」のテキスト情報を（ＸＭ２，ＹＭ２）の座標に重ねて表示させる（ステップＳ７）。その後、フローチャートの実行が終了する。
【００６６】
（ＸＭ１，ＹＭ１）および（ＸＭ２，ＹＭ２）は、デコード処理で検出された四角形領域ＳＱ´の撮影画像ＩにおけるＸＹ座標情報と、四隅のペアブロックの座標系（列，行）における座標情報とから、前述の座標変換方法で得られる。以上の処理により、図１５を参照して、撮影画像Ｉ上にテキストが表示される。なお、テキストの表示はテキストの中央が指定した座標となるようにしてもよいし、指定した座標に丸印などのアイコンを表示したうえで、その上下左右いずれかの方向に、テキストを表示してもよい。また、地理情報データベースから返却された改変箇所のテキスト情報に重複がある場合には、重複するテキストについてはいずれか一箇所のみを選択して（たとえば画面中央に最も近い座標に）表示してもよい。
【００６７】
図１６（ａ）は、サーバ２００または記憶装置７０に記憶されている四角形領域ＳＱの座標情報のテーブルの一例を説明するための図である。図１６（ｂ）は、サーバ２００または記憶装置７０に記憶されている地理コードと地名との関係のテーブルの一例を説明するための図である。
【００６８】
本実施例によれば、撮影画像から元の画像を特定することができる。また、改変箇所の特定に際して、改変画像と元画像とを照合しなくてもよい。これにより、元画像をサーバまたはローカルに用意する必要がなくなり、サーバまたはローカルの記憶領域の使用を削減でき、運用コストが下がる。また、ネットワーク上の通信を行わなくてもよくなる。
【００６９】
また、元画像との照合を行わなくてもよいため、改変箇所を高速に特定することができる。元画像との照合では、比較のために撮影画像を射影変換して元画像の座標系に合わせた上で、元画像との階調レベルなどを画素単位で比較する方法がある。このとき、撮影画像が横４８０画素、縦６４０画素、元画像が縦５００画素、横７００画素とすると、比較のために参照する画素の数は４８０×６４０＋５００×７００＝６５７２００画素となる。一方、本実施例の方式では、参照する情報は埋め込みペアブロックのビットパターンの情報で、本実施例では１２×２４＝２８８である。したがって、参照するデータの数が大幅に減少されるため、高速処理が可能となる。
【００７０】
また、本実施例によれば、改変された箇所の地名を選択的に表示することができる。改変の有無にかかわらず知名が表示されれば、ユーザが答えを記入していない箇所が残っていても、すべての正解が表示されてしまう。地図上で解答が記入済みの地域と未記入の地域とが隣接して入り組んでいるような場合に、記入済みの地域のみを撮影するということは困難である。本実施例によれば、ユーザが学習途中に解答を記入済みの地域と未記入の地域とを含む地図を撮影しても、記入済の箇所の正解が選択的に表示される。それにより、記入の都度解答を確認することができるため、学習効果の向上が期待できる。
【実施例２】
【００７１】
実施例２では、紙のカレンダーにユーザが記入した情報を、記入した日付とともに検出する予定記入検出システムについて説明する。図１７は、実施例２に係る画像処理装置１００ａのハードウェア構成を説明するためのブロック図である。図１７を参照して、画像処理装置１００ａが図１の画像処理装置１００と異なる点は、通信部３０が備わっていない点である。本実施例においては、記憶装置７０は、実施例２に係る画像処理プログラムを記憶している。
【００７２】
ＣＰＵ１０は、ＲＡＭ２０に展開された画像処理プログラムを実行する。それにより、画像処理装置１００ａによる画像処理が実行される。図１８は、画像処理プログラムの実行によって実現される各機能のブロック図である。図１８を参照して、画像処理装置１００ａは、図２の画像処理装置１００と異なり、通信部１４０の機能を有していない。
【００７３】
図１９は、本実施例において用いるカレンダー（第１の印刷画像）について説明するための図である。１か月分の日付欄全体ＳＱ２（所定領域）に、年月を示すコードＴが埋め込まれている。図１９のカレンダーは２０１０年１０月を表しているため、コードＴとして、たとえば１０進数で「２０１０１０」、２進数で「１１０００１０００１００１１００１０」というコードが埋め込まれている。ユーザは、日付欄の中に、ペンなどで予定を記入していくものとする。図２０は、図１９のカレンダーの３か所に記入されたスケジュールＳＣ１，ＳＣ２，ＳＣ３を説明するための図である。本実施例では、図２１を参照して、日付欄全体ＳＱ２に、横４８×縦３４個の単ブロックが配置されている。互いに隣接する２つの単ブロックをペアブロックとして用いる場合には、日付欄全体ＳＱ２に、横２４×縦３４個のペアブロックが配置されている。
【００７４】
図２２は、画像処理装置１００ａによって実行されるフローチャートの一例を説明するための図である。図２２を参照して、ステップＳ２１〜ステップＳ２５は、図７のステップＳ１〜ステップＳ５と同様である。ただし、日付欄の位置とペアブロックの位置との関係を予め記憶装置７０に保持しておくことで、ステップＳ２４の改変箇所の検出において、ペアブロック群の位置および走査する回数を日付欄の位置に合わせてもよい。
【００７５】
例えば、カレンダーにおいて、日付欄が始まるペアブロックの行数は５行目であることが予め記憶装置７０に登録されており、検出したコードＴから２０１０年１０月のカレンダーであることが特定されているものとする。この場合、２０１０年１０月１日の土曜日のペアブロックの位置が５行目かつ１８列目から始まると予め判定できるので、図２３を参照して、１回目に走査するペアブロック群の位置を、５行目かつ１８列目としてもよい。
【００７６】
以上の処理により改変箇所が検出されると、図２２を再度参照して、記憶装置７０に予め記憶された日付欄とペアブロックの位置との対応関係に基づいて、改変箇所検出部１１３３は、改変が付加された日付を検出する（ステップＳ２６）。次に、改変座標変換部１３４は、撮影画像の中から該当の日付欄の四隅の座標を前述の座標変換方法により特定し、該日付欄の画像を切り出す処理を行う（ステップＳ２７）。画像の切り出しの際には、射影変換によって撮影時の画像の歪みを補正してもよい。
【００７７】
次に、記憶装置７０は、切り出した画像を、別途用意された電子カレンダーシステムの該当日に対応付けて保存する（ステップＳ２８）。これにより、電子カレンダーシステムを起動した際に、図２４を参照して、該当日のスケジュールを閲覧した際に、紙に書き込んだスケジュールも参照することができる。
【００７８】
本実施例によれば、撮影画像から元の画像を特定することができる。また、改変箇所の特定に際して、改変画像と元画像とを照合しなくてもよい。これにより、元画像をサーバまたはローカルに用意する必要がなくなり、サーバまたはローカルの記憶領域の使用を削減でき、運用コストが下がる。また、ネットワーク上の通信を行わなくてもよくなる。また、元画像との照合を行わなくてもよいため、改変箇所を高速に特定することができる。
【実施例３】
【００７９】
実施例３では、文字、印などが記入された地図の印刷画像を撮影することによって、当該文字、印などが記入された改変箇所の位置を特定するナビゲーションシステムについて説明する。地図上において文字、印などが記入された改変箇所の位置が特定できれば、当該改変箇所を利用することができる。例えば、検索などを行わずに目的地を設定することができる。文字、印などが記入されておらず、コードが埋め込まれた地図を第１の印刷画像として用いる。文字、印などが記入された第１の印刷画像を第２の印刷画像として用いる。
【００８０】
画像処理装置１００ｂは、図１の画像処理装置１００と同様のハードウェア構成を有している。ただし、通信部３０および操作部４０は設けられていなくてもよい。本実施例においては、記憶装置７０は、実施例３に係る画像処理プログラムを記憶している。ＣＰＵ１０は、ＲＡＭ２０に展開された画像処理プログラムを実行する。それにより、画像処理装置１００ｂによる画像処理が実行される。画像処理装置１００ｂは、図２の画像処理装置１００と同様の機能を有している。ただし、画像処理装置１００ｂは、通信部１４０の機能を有していなくてもよい。
【００８１】
図２５は、画像処理装置１００ｂの外観図である。図２５（ａ）を参照して、画像処理装置１００ｂは、一面にディスプレイ３００が配置されている。図２５（ｂ）を参照して、画像処理装置１００ｂは、他面に撮影装置６０が配置されている。撮影装置６０は、地図を撮影する。地図５００の撮影に際して画像がゆがむことを抑制する目的で、撮影装置６０と地図との距離を固定するための透明カバー４００が設けられていてもよい。
【００８２】
図７のステップＳ１〜ステップＳ５と同様の処理を実行することによって、地図上における改変箇所を特定することができる。改変箇所が特定できれば、当該改変箇所を利用することができる。本実施例においても、撮影画像から元の画像を特定することができる。また、改変箇所の特定に際して、改変画像と元画像とを照合しなくてもよい。これにより、元画像をサーバまたはローカルに用意する必要がなくなり、サーバまたはローカルの記憶領域の使用を削減でき、運用コストが下がる。また、ネットワーク上の通信を行わなくてもよくなる。また、元画像との照合を行わなくてもよいため、改変箇所を高速に特定することができる。
【００８３】
以上、本発明の実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００８４】
１０  ＣＰＵ
２０  ＲＡＭ
３０  通信部
４０  操作部
５０  インタフェース
６０  撮影装置
７０  記憶装置
８０  メディアアクセス装置
９０  インタフェース
１００  画像処理装置
１１０  画像取得部
１２０  デコード部
１３０  改変座標取得部
１３１  正解ビットパターン取得部
１３２  エラービットパターン取得部
１３３  改変箇所検出部
１３４  改変座標変換部
１４０  通信部
１５０  表示部
【図１】
0005648410.tif 000002
【図２】
0005648410.tif 000003
【図３】
0005648410.tif 000004
【図４】
0005648410.tif 000005
【図５】
0005648410.tif 000006
【図６】
0005648410.tif 000007
【図７】
0005648410.tif 000008
【図８】
0005648410.tif 000009
【図９】
0005648410.tif 000010
【図１０】
0005648410.tif 000011
【図１１】
0005648410.tif 000012
【図１２】
0005648410.tif 000013
【図１３】
0005648410.tif 000014
【図１４】
0005648410.tif 000015
【図１５】
0005648410.tif 000016
【図１６】
0005648410.tif 000017
【図１７】
0005648410.tif 000018
【図１８】
0005648410.tif 000019
【図１９】
0005648410.tif 000020
【図２０】
0005648410.tif 000021
【図２１】
0005648410.tif 000022
【図２２】
0005648410.tif 000023
【図２３】
0005648410.tif 000024
【図２４】
0005648410.tif 000025
【図２５】
0005648410.tif 000026