(57)【要約】【課題】  主走査方向の横の歪みと副走査方向の縦の歪みが組み合わさって局所的な歪みを補正することは難しかった。【解決手段】  ブロック単位で特徴量が異なる複数のブロックを埋め込んだ画像を読み取って当該画像の画像データを出力するスキャナ１０１と、スキャナ１０１から出力される画像データに埋め込まれている各ブロックの位置を検出するブロック位置検出部１０２と、その検出した各ブロックの位置と、予め設定されている各ブロックの仕様とに基づいて各ブロックの位置のズレ量を算出するブロック位置ズレ検出部１０３と、そのズレ量に基づいて画像データを補正するブロック位置ズレ補正部１０４とを有する。【選択図】  図１
2009265925.tif 000002
【特許請求の範囲】
【請求項１】
ブロック単位で特徴量が異なる複数のブロックを埋め込んだ画像を読み取って当該画像の画像データを出力する画像読取手段と、
前記画像読取手段から出力される前記画像データに埋め込まれている各ブロックの位置を検出するブロック位置検出手段と、
前記ブロック位置検出手段で検出した前記各ブロックの位置と、予め設定されている前記各ブロックの仕様とに基づいて、前記ブロック位置検出手段で検出した各ブロックの位置のズレ量を算出する位置ズレ算出手段と、
前記位置ズレ算出手段により算出した前記ズレ量に基づいて、前記画像読取手段から出力された前記画像データを補正する補正手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記ブロック位置検出手段は、前記各ブロックの仕様に基づくブロック単位で前記画像データの周波数特性と、当該周波数特性に基づくブロックの判定基準となる判定量とを求め、前記周波数特性及び判定量に基づいてブロックの位置を検出することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記ブロックの仕様は、各ブロックに含まれる画素数、ブロックサイズ、及びその形状を規定していることを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記ブロック位置検出手段により各ブロックの位置を検出する前記画像の範囲を指定する検出領域を指定する指定手段を更に有することを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記位置ズレ算出手段は、前記ブロック位置検出手段で検出した前記各ブロックの相対位置と、前記仕様で規定された前記ブロックサイズとの差分を前記ズレ量として算出することを特徴とする請求項１に記載の画像処理装置。
【請求項６】
前記補正手段は、前記ズレ量に基づいて前記各ブロックの４頂点の座標を補正することにより前記画像データを補正することを特徴とする請求項１に記載の画像処理装置。
【請求項７】
ブロック単位で特徴量が異なる複数のブロックを埋め込んだ画像を読み取って当該画像の画像データを出力する画像読取工程と、
前記画像読取工程から出力される前記画像データに埋め込まれている各ブロックの位置を検出するブロック位置検出工程と、
前記ブロック位置検出工程で検出した前記各ブロックの位置と、予め設定されている前記各ブロックの仕様とに基づいて、前記ブロック位置検出工程で検出した各ブロックの位置のズレ量を算出する位置ズレ算出工程と、
前記位置ズレ算出工程で算出した前記ズレ量に基づいて、前記画像読取工程から出力された前記画像データを補正する補正工程と、
を有することを特徴とする画像処理方法。
【請求項８】
前記ブロック位置検出工程は、前記各ブロックの仕様に基づくブロック単位で前記画像データの周波数特性と、当該周波数特性に基づくブロックの判定基準となる判定量とを求め、前記周波数特性及び判定量に基づいてブロックの位置を検出することを特徴とする請求項７に記載の画像処理方法。
【請求項９】
前記ブロックの仕様は、各ブロックに含まれる画素数、ブロックサイズ、及びその形状を規定していることを特徴とする請求項７又は８に記載の画像処理方法。
【請求項１０】
前記ブロック位置検出工程により各ブロックの位置を検出する前記画像の範囲を指定する検出領域を指定する指定工程を更に有することを特徴とする請求項７乃至９のいずれか１項に記載の画像処理方法。
【請求項１１】
前記位置ズレ算出工程は、前記ブロック位置検出工程で検出した前記各ブロックの相対位置と、前記仕様で規定された前記ブロックサイズとの差分を前記ズレ量として算出することを特徴とする請求項７に記載の画像処理方法。
【請求項１２】
前記補正工程は、前記ズレ量に基づいて前記各ブロックの４頂点の座標を補正することにより前記画像データを補正することを特徴とする請求項７に記載の画像処理方法。
【請求項１３】
請求項７乃至１２に記載の画像処理方法をコンピュータに実行させるプログラムを記憶したコンピュータにより読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブロック単位で特徴量が異なる複数のブロックを埋め込んだ画像を読み取って、その読み取った画像の歪みを補正する画像処理装置及びその方法に関する。
【背景技術】
【０００２】
近年、複写機やスキャナ、デジタルカメラ、カメラ付き携帯電話等のように、画像を撮影或は読み取ることができる装置が増え、このような装置で得られた画像データを印刷する需要も増えてきている。また画像を読み取る性能も向上しているため、そのような装置で読み取った画像を印刷し、その印刷画像を、再度、画像読取装置で読み取る機会も増えてきている。更に、印刷した画像と読み込んだ画像が同じになるような忠実性が求められてきている。
【特許文献１】特開２００２−１７１３９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来の画像読取装置は、イメージセンサの性能に頼るところが大きく、イメージセンサの性能によっては、読み取った画像が歪んだり伸びたり縮んだりした画像になってしまう問題があった。イメージセンサは、ＣＣＤイメージセンサやＣＭＯＳイメージセンサ等のイメージセンサで、画像を光の情報として読み取り、その光の情報を画像データに変換する。
【０００４】
このようなイメージセンサの性能に依存するという問題を解決するための技術が特許文献１に記載されている。特許文献１では、原稿の画像データで、部分領域と思われる領域（予め決められた位置で、予め決められたサイズの領域）に含まれる画像（部分画像）を１つ取り出す。次に、部分画像と思われる画像（準部分画像）に高速フーリエ変換を施し、得られた周波数データからピーク点を求めて記憶する。次に準部分画像に含まれる夫々のピーク点の位相成分データを求めて記憶し、ピーク点の位置データとピーク点の理想位置データとの「ずれ」を補正する。次に準部分画像の最初のピクセルと部分画像の最初のピクセルとのずれを検出し、原稿の画像データから電子透かしデータを読み込む技術が提案されている。
【０００５】
しかしながらこの従来の技術では、原稿の画像データから１つの部分画像を取り出し、画像データ全体に対しての傾きや拡大縮小を求めて補正することはできるが、局所的な歪みを補正することは難しい。例えば、一般的なスキャナにおいては、ＣＣＤイメージセンサを横方向に一列に並べ、一列に並べたイメージセンサを縦方向に１ラインずつ移動させながら原稿を読み取っている。ここでＣＣＤが並んでいる方向を「主走査方向」、ＣＣＤ或いは原稿が移動する方向を「副走査方向」とする。このようにして原稿をスキャナで読み込む際に、ＣＣＤの性能による主走査方向の歪み、ＣＣＤ或いは原稿が移動する機構部分の性能による副走査方向の歪みが出てきてしまう。従って、画像読取装置で読み取られた原稿の画像データには、主走査方向の横の歪みと副走査方向の縦の歪みが組み合わさって局所的な歪みが出てきてしまう。上記従来の技術では、このような局所的な歪みを補正することは難しい。
【０００６】
本発明の目的は上記従来技術の問題点を解決することにある。
【０００７】
本願発明の一態様によれば、読み取られた原稿の画像データにおける歪みを補正することができる画像処理装置及びその方法を提供できる。
【課題を解決するための手段】
【０００８】
上記目的を達成するために本発明の一態様に係る画像処理装置は以下のような構成を備える。即ち、
ブロック単位で特徴量が異なる複数のブロックを埋め込んだ画像を読み取って当該画像の画像データを出力する画像読取手段と、
前記画像読取手段から出力される前記画像データに埋め込まれている各ブロックの位置を検出するブロック位置検出手段と、
前記ブロック位置検出手段で検出した前記各ブロックの位置と、予め設定されている前記各ブロックの仕様とに基づいて、前記ブロック位置検出手段で検出した各ブロックの位置のズレ量を算出する位置ズレ算出手段と、
前記位置ズレ算出手段により算出した前記ズレ量に基づいて、前記画像読取手段から出力された前記画像データを補正する補正手段と、
を有することを特徴とする。
【０００９】
上記目的を達成するために本発明の一態様に係る画像処理方法は以下のような工程を備える。即ち、
ブロック単位で特徴量が異なる複数のブロックを埋め込んだ画像を読み取って当該画像の画像データを出力する画像読取工程と、
前記画像読取工程から出力される前記画像データに埋め込まれている各ブロックの位置を検出するブロック位置検出工程と、
前記ブロック位置検出工程で検出した前記各ブロックの位置と、予め設定されている前記各ブロックの仕様とに基づいて、前記ブロック位置検出工程で検出した各ブロックの位置のズレ量を算出する位置ズレ算出工程と、
前記位置ズレ算出工程で算出した前記ズレ量に基づいて、前記画像読取工程から出力された前記画像データを補正する補正工程と、
を有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、読み取られた原稿の画像データにおける歪みを補正することができる。
【発明を実施するための最良の形態】
【００１１】
以下、添付図面を参照して本発明の好適な実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１２】
本実施形態では、ブロック単位で特徴量が異なるブロックが埋め込まれた原稿を読み取る画像読取装置を有する画像処理システムの例で説明する。
【００１３】
図２は、本発明の実施形態に係る画像処理システムの構成を説明するブロック図である。
【００１４】
この画像処理システムは、画像処理装置２００と、それに接続されたスキャナ１０１を有している。画像処理装置２００において、システムバス２０１には、ＣＰＵ２０２、ＲＯＭ２０３、ＲＡＭ２０４、ハードディスク等の二次記憶装置２０５が接続されている。またユーザインターフェースとして、表示部２０６、キーボード２０７、ポインティングデバイス２０８がＣＰＵ２０２等に接続されている。更に、画像読取用のスキャナ１０１がＩ／Ｏインターフェース２０９を介して接続されている。
【００１５】
ＣＰＵ２０２は、アプリケーション（以下の説明する処理を実行する機能を有する）の実行が指示されると二次記憶装置２０５にインストールされている対応するプログラムを読み出してＲＡＭ２０４にロードする。その後、そのプログラムを起動することにより、その指示された処理を実行することができる。
【００１６】
［第１実施形態］
以下、本発明の第１実施形態に係る画像処理システムの概要について図を参照しながら説明する。
【００１７】
図１は、第１実施形態に係る画像処理システムの機能構成を説明するブロック図である。
【００１８】
この画像処理システムは、スキャナ１０１により印刷画像１１０を読み取り、そのスキャナ１０１から出力される画像情報１１１に対して処理を行うブロック位置検出部１０２、ブロック位置ズレ検出部１０３、及びブロック位置ズレ補正部１０４を有している。
【００１９】
スキャナ１０１は、機械的な走査により、取り込む対象となる原稿（写真・文字・線画・立体物等）上の位置情報とその個所の色情報をデジタルデータに変換して画像情報１１１として出力する。本実施形態では、取り込む対象となる原稿は、付加情報が埋め込まれている画像を印刷した用紙（印刷画像１１０）とする。またスキャナ１０１から出力される画像情報１１１は、例えば、赤、緑、青の３種類の色からなるデータで、各色８ビットで１画素あたり２４ビットの画像情報１１１とする。
【００２０】
ブロック位置検出部１０２は、スキャナ１０１から出力される画像情報１１１に対して、ブロック毎に埋め込まれている多重化パターンを検出するために、ブロック単位でのテクスチャの周波数特性の解析処理を行う。そして、その周波数特性値に基づいて、印刷画像１１０に埋め込まれている複数のブロックの位置を検出し、各ブロックの位置を示すブロック位置情報１１２として出力する。ブロック位置ズレ検出部１０３は、予め設定してあるブロックの規則性（ブロックのサイズ、形状、配置等を規定する仕様）と、ブロック位置検出部１０２で検出したブロック位置情報１１２とを比較して、ブロックの位置ズレを検出する。第１実施形態におけるブロックの規則性は、例えばブロックが正方形、或は長方形であるものとする。このようなブロックの規則性に従って、ブロック位置の理想的な位置を求め、ブロック位置検出部１０２で検出した補正前のブロック位置と、補正後のブロック位置とを位置ズレ補正値１１３として出力する。ブロック位置ズレ補正部１０４は、ブロック位置検出部１０２で検出したブロック位置と理想的なブロック位置から、スキャナ１０１で読み込んだ画像情報１１１を補正する。スキャナ１０１で読み込んだ歪んだ状態のブロック位置と理想的なブロック位置がわかっているので、歪んだブロック位置の画像情報を理想的なブロック位置の画像情報に画像変換する。
【００２１】
この第１実施形態では、予め設定してあるブロックの規則性は、Ｎ画素×Ｎ画素の正方ブロックを示している。しかし、埋め込まれているブロックに対してブロック位置の検出処理、ブロック位置ズレ算出処理が行えれば、どのような形状でも構わない。例えば、ブロック毎に埋め込まれている付加情報に予め設定してあるブロックの規則性を埋め込んでおき、復元化処理により埋め込まれている付加情報を復元し、その付加情報を利用してブロック位置ズレ検出処理を行うようにしても良い。
【００２２】
図３は、本発明の第１実施形態に係る画像処理システムにおける動作手順を説明するフローチャートである。
【００２３】
まずステップＳ１で、ブロック単位で付加情報が埋め込まれている印刷画像１１０をスキャナ１０１により読み取り画像情報１１１として出力する。次にステップＳ２に進み、ブロック位置検出部１０２がこの画像情報１１１を入力し、付加情報が埋め込まれている各ブロックの位置を検出する。そして、その検出したブロック位置情報１１２をブロック位置ズレ検出部１０３に出力する。次にステップＳ３に進み、ブロック位置ズレ検出部１０３は、そのブロック位置情報１１２からブロック毎の位置ズレを検出し、位置ズレ補正値１１３して出力する。次にステップＳ４に進み、ブロック位置ズレ補正部１０４は、画像情報１１１と、前述した位置ズレ補正値１１３とを入力し、位置ズレ補正値１１３に基づいて画像情報１１１を補正し、その補正した結果を補正画像１１４として出力する。
【００２４】
尚、第１実施形態の画像読取装置では、印刷画像１１０を読み取る方法としてスキャナ１０１を使用しているが本発明はこれに限定されない。印刷画像１１０に埋め込まれている付加情報を抽出できる画質（解像度）で画像を読み取ることができる装置であれば、例えば、デジタルカメラやカメラ付き携帯電話、フィルムスキャナ等であっても良い。
【００２５】
図４は、第１実施形態でスキャナ１０１で読み取られる印刷画像の一例を説明するための図である。
【００２６】
印刷媒体（原稿）３０２は、付加情報の埋め込み領域３０１を含んでいる。そしてこの印刷媒体を、スキャナ読み取り範囲３０３で示される範囲で光学的に読み取ることにより印刷画像１１０が得られる。スキャナ読み取り範囲３０３は、印刷媒体３０２のサイズよりも大きく設定されている。付加情報埋め込み領域３０１は、付加情報を含むブロックが複数埋め込まれている領域である。ここで各ブロックは、Ｎ画素×Ｎ画素の正方ブロックであることを想定し、埋め込み領域３０１は幅（ＢＷ）及び高さ（ＢＨ）の領域としている。ブロック位置検出部１０２は、画像情報１１１を入力し、付加情報をブロック単位に分割して埋め込んだブロックの位置を検出する。
【００２７】
このブロック位置検出部１０２によるブロック位置の検出方法は、まず、スキャナ１０１から出力される画像情報１１１に対し、１画素及び複数画素ずつ位置をずらしながら特徴量の解析処理を行う。この特徴量の解析処理は、まず、前述の規則性である、予め設定されているブロックのサイズに従って、そのブロックサイズ単位でのテクスチャの周波数特性の解析処理を行う。次にこの周波数特性の解析処理で算出される周波数特性量、及び、その周波数特性に基づいて、ブロックに埋め込まれている符号を判定する判定基準となる符号判定量を算出する。よって符号判定量はブロックの判定基準となる判定量となる。次に、これら周波数特性量と符号判定量とを用いてブロックの位置を検出する。ブロック位置検出部１０２の詳細については、以下で説明する。
【００２８】
図５は、第１実施形態に係るブロック位置検出部１０２の機能構成を示す機能ブロック図である。
【００２９】
このブロック位置検出部１０２は、入力端子５０１と部分ブロック位置検出部５０２と、検出ブロック位置保存部５０３、ブロック位置算出部５０４とを具備している。入力端子５０１を介して入力される画像情報１１１は、部分ブロック位置検出部５０２とブロック位置算出部５０４とに供給される。また部分ブロック位置検出部５０２には、前述の付加情報埋め込み領域３０１に対応する領域情報である検出領域情報５０５が入力されている。部分ブロック位置検出部５０２では、その検出領域情報５１０で指定された領域におけるブロック位置を検出し、ブロック位置情報５１１を出力する。
【００３０】
図６は、この部分ブロック位置検出部５０２における処理を説明する図である。
【００３１】
例えば、検出領域情報５１０が、画像情報１１１上の１つの部分ブロック位置検出領域６０１を設定しているとする。このときブロック位置検出部１０２は、この部分ブロック位置検出領域６０１に対してブロック位置の検出を行う。ブロック位置の検出方法は、部分ブロック位置検出領域６０１内でブロック６０２の位置を画素毎に領域６０１内でずらしながら、付加情報を分離するために画像上のテクスチャの周波数を解析する。そして周波数解析時の周波数特性値及び付加情報を分離する際の付加情報判定値を算出する。次に、周波数解析時の周波数特性値及び付加情報を分離する際の付加情報判定値から特徴抽出を行ってブロック位置を検出する。こうして算出した周波数解析時の周波数特性値及び付加情報を分離する際の付加情報判定値は、付加情報が埋め込まれているブロック位置で算出する場合と、埋め込まれていないブロック位置で算出する場合とで異なる判定値となる。また付加情報が埋め込まれているブロック位置で算出する場合と、埋め込まれているブロック位置がずれている個所で算出する場合とで異なる判定値となる。
【００３２】
検出ブロック位置保存部５０３は、部分ブロック位置検出部５０２が検出したブロック位置情報５１１を入力してメモリ（不図示）に格納する。次に検出領域情報５１０により指定された領域分の処理が行われているか否かを判定する。ここで、その領域分の処理が完了していない場合は、再度、部分ブロック位置検出部５０２によるブロックの位置検出を行う。こうして検出したブロック位置情報５１１を入力してメモリに格納する。そしてその領域分の処理を完了した場合は、そのメモリに格納された１つ或は複数のブロック位置情報５１１をブロック位置情報５１２としてブロック位置算出部５０４に出力する。ブロック位置算出部５０４は、ブロック位置情報５１２から、付加情報が埋め込まれているブロックの位置を算出し、ブロック位置情報１１２として出力する。
【００３３】
図７は、第１実施形態に係るブロック位置検出部１０２における動作手順を説明するためのフローチャートである。
【００３４】
先ずステップＳ１１で、部分ブロック位置検出部５０２は、検出領域情報５１０に基づいて、ブロックを検出する領域を設定する。次にステップＳ１２で、部分ブロック位置の検出処理を行う。
【００３５】
図８は、第１実施形態において、スキャナ１０１から出力された画像情報１１１の領域内で部分ブロック位置検出領域が配置されていることを示す概要図である。
【００３６】
ここで部分ブロック位置検出領域は、画像情報１１１の領域内で、太線で囲ってある部分ブロック位置検出領域８０１〜８０６を示す。ここでは画像情報１１１の領域内に６つの部分ブロック位置検出領域８０１〜８０６が予め設定されている。
【００３７】
図では、予め部分ブロック位置の検出領域を設定しているが、部分ブロック位置の検出領域の大きさ、位置、個数に関して特に限定しない。また、部分ブロック位置の検出領域は、予め設定されていてもよい。また画像情報１１１の入力情報に従って設定された領域でも、一度検出したブロック位置情報５１１から次の部分ブロック位置の検出領域を設定してもよく、特に限定はしない。例えば、検出領域情報５１０により、画像情報１１１の領域を４分割して、その４つの領域を部分ブロック位置検出領域としても良い。更に検出領域情報５１０の中に部分ブロック位置検出を行う処理間隔を予め設定しておき、処理間隔に従って、次の部分ブロック位置検出領域とした検出領域情報５１０により設定しても構わない。
【００３８】
次にステップＳ１２の部分ブロック位置検出処理では、部分ブロック位置検出領域内でブロック位置の検出を行う。
【００３９】
図９は、図７のステップＳ１２の部分ブロック位置検出処理の手順を説明するためのフローチャートである。
【００４０】
まずステップＳ２１で、付加情報の分離処理を行う際の基準となるブロック開始位置を設定する。次にステップＳ２２に進み、ブロック開始位置からブロック単位で画像上のテクスチャの周波数解析を行って周波数特性量を算出する。そして、周波数解析結果の周波数特性量から、埋め込まれているブロック単位の符号判定を行う符号判定量を算出する。次にステップＳ２３に進み、周波数特性量と符号判定量をメモリ（不図示）に記憶する。次にステップＳ２４に進み、部分ブロック位置検出領域分の処理を終えたかどうかを判定する。終了していないときはステップＳ２１に戻り、終了するとステップＳ２５に進む。ステップＳ２５では、ステップＳ２２で求めた周波数特性量と、付加情報を分離するための符号判定量から、部分ブロック位置検出領域内のブロック位置を算出する。そして、その算出したブロック位置をブロック位置情報５１１として検出ブロック位置保存部５０３に出力する。
【００４１】
この部分ブロック位置検出処理の詳細について以下の例で説明する。
【００４２】
例えばステップＳ１１で設定した部分ブロック位置検出領域が、横１００×縦１００画素からなる合計１００００画素分の領域であるとして説明する。
【００４３】
まずステップＳ２１でブロック開始位置を設定する。ここでは、部分ブロック位置検出領域の１００００画素分の内、１画素を選択し、その選択した１画素の位置をブロック開始位置として設定する。次にステップＳ２２の付加情報分離処理では、ステップＳ２１で設定したブロック開始位置からブロック単位で画像上のテクスチャの周波数解析を行う。そして、埋め込まれているブロック単位の符号判定を行う。更に、その周波数特性量に基づいて、埋め込まれているブロック単位の符号判定を行う符号判定量を算出する。こうして算出した周波数特性量及び符号判定量は、付加情報が埋め込まれているブロック位置で算出する場合と、埋め込まれているブロック位置がずれている個所で算出する場合とで判定量が異なることする。
【００４４】
図１０は、図８の部分ブロック位置検出領域８０１内の付加情報分離処理領域１００１が、埋め込まれているブロックの位置（点線で示す）と一致していない状態を説明する図である。
【００４５】
図１１は、図８の部分ブロック位置検出領域８０１内の付加情報分離処理領域１１０１が、埋め込まれているブロックの位置（点線で示す）と一致している状態を説明する図である。
【００４６】
例えば、図１０と図１１で判定量を求めた場合、図１０で求めた符号判定量は小さく、図１１で求めた符号判定量は大きくなる。
【００４７】
次にステップＳ２３では、ステップＳ２２の付加情報分離処理で算出した、周波数特性量と符号判定量をメモリ（不図示）に格納する。尚、ここでは、周波数解析結果の周波数特性量と符号判定量とをメモリに格納しているが、特に限定することない。例えば、周波数特性量及び符号判定量のいずれか一方だけをメモリに格納しても構わない。
【００４８】
次にステップＳ２４に進み、部分ブロック位置検出領域１００００画素に対する終了しているかを判断する。ステップＳ２４で、この領域に対する処理が終了していると判定した場合は、ステップＳ２５の部分ブロック位置算出処理に移行する。一方、この領域分の処理が終了していないと判定した場合は、再度ステップＳ２１に戻って、ブロック開始位置設定から処理を行う。尚、ステップＳ２４の終了判定は、例えば、１００００画素分の周波数特性量及び符号判定量を算出し終えたかどうかで判定する。ステップＳ２５の部分ブロック位置算出処理では、メモリに格納した１００００画素分の符号判定量に基づいてブロック位置を算出する。
【００４９】
この部分ブロック位置算出方法として、例えば、符号判定量からブロック位置を算出する方法を説明する。例えば、算出された符号判定量が高い方が、埋め込まれているブロック位置と一致している可能性が高い規則性がある場合、算出した符号判定量から高い値を算出することによってブロック位置を算出できる。従って、符号判定量から最大値検出を行えば、ブロック位置を算出できることになる。尚、算出された符号判定量が低い方が、埋め込まれているブロック位置と一致している可能性が高いとしても特に構わない。
【００５０】
図１２は、部分ブロック位置検出領域内で、１画素ごとずらしながら算出した部分ブロック位置検出領域分の符号判定量を説明する図である。
【００５１】
図１２の場合、符号判定量の「６０」が最大値であるため、符号判定量が「６０」となる位置が部分ブロック位置として判定される。図では、部分ブロック位置検出領域内で１画素ごとずらしながら算出した符号判定量を示している。いま、この検出領域の左上の座標（Ｘ，Ｙ）＝（０，０）を基準とした場合、座標（Ｘ，Ｙ）＝（３，３）の座標を部分ブロック位置と判定する。尚、これ以外にも例えば、１画素ごとずらしながら算出した符号判定量を縦軸と横軸で加算して、加算した値から、各縦軸、横軸から最大値を算出する方法も考えられる。
【００５２】
図１３は、１画素ごとずらしながら算出した符号判定量を縦軸と横軸で加算した値をグラフに表した概要図である。
【００５３】
図１３では、埋め込まれているブロックのサイズは６×６画素とすると、６画素毎に横軸、縦軸に最大値が現れると推測できる。従って、６画素毎に横軸、縦軸が最大になる箇所を検出できれば良いことになる。黒太枠で囲んである１２×１２個の符号判定量１３０１は、部分ブロック位置検出領域を１２×１２画素とした場合に、１画素毎に符号判定量を算出した値を示している。符号判定量１３０１の場合、符号判定量の横軸の加算値を網点の判定量の横軸合計値１３０２とし、符号判定量の縦軸の加算値を網点の判定量の横軸合計値１３０３としている。判定量の横軸合計値のグラフ１３０４は、判定量の横軸合計値１３０２をグラフに表わしたものである。また、判定量の縦軸合計値のグラフ１３０５は、判定量の縦軸合計値１３０３をグラフに表和したものである。これらグラフ１３０４，１３０５に示す通り、算出された判定量の縦軸、横軸の加算値に特徴が現れる。
【００５４】
図１３では、部分ブロック位置検出領域の左上の座標（Ｘ，Ｙ）＝（０，０）を基準とした場合、座標（Ｘ，Ｙ）＝（３，３）から、６画素間隔で符号判定量のピークが表れていることが分かる。よって、この座標位置が、付加情報が埋め込まれているブロックの位置であると推測できる。
【００５５】
検出ブロック位置保存部５０３は、図７のステップＳ１３の検出ブロック保存処理と、ステップＳ１４の部分ブロック位置検出処理の終了判定処理を行う。ステップＳ１３の検出ブロック保存処理では、部分ブロック位置検出部５０２で検出したブロック位置情報５１１をメモリ（不図示）に順次格納する。例えば、図８に示すように、６つの部分ブロック位置検出領域８０１〜８０６が設定された場合には、各領域で検出した６つのブロック位置情報５１１をメモリに確保する。
【００５６】
次にステップＳ１４の部分ブロック位置検出処理の終了判定処理では、入力された検出領域情報５１０の情報と、検出処理を完了したブロックとを比較する。そして、複数個のブロック位置検出領域を設定している場合は、複数個のブロック位置検出領域で部分ブロック位置検出部の処理が終了しているか否かを判定する。例えば図８に示すように、検出領域情報５１０により、６つの部分ブロック位置検出領域８０１〜８０６が設定されている場合は、これら６つの領域で位置検出処理が完了しているかを判定する。そして、完了していない場合は、ステップＳ２１に戻る。そして、終了する場合には、メモリに確保した複数のブロック位置情報５１１をブロック位置情報５１２として出力する。
【００５７】
ブロック位置算出部５０４は、ステップＳ１５のブロック位置算出処理を行う。このブロック位置算出処理では、検出ブロック位置保存部５０３から出力されたブロック位置情報５１２に基づいて、画像情報１１１全体のブロック位置情報１１２を算出する。
【００５８】
次に図１４及び図１５を参照して、本実施形態に係るブロック位置算出部５０４によるブロック位置算出方法を説明する。
【００５９】
図１４は、ブロック位置算出部５０４に入力された画像情報１１１とブロック位置情報５１２との関係を示している概要図である。
【００６０】
図１５は、画像情報１１１で算出したブロック位置情報１１２の結果を示す概要図である。
【００６１】
図１４では、画像情報１１１で検出したブロック位置情報５１２を黒丸で示している。例えば、ブロック位置情報５１２の黒丸をブロック位置情報１４０１，１４０２で表示している。これらブロック位置情報１４０１，１４０２からブロック位置情報１１２を算出する方法は、予め設定しているＮ画素×Ｎ画素の正方ブロックサイズを利用し、公知の内分点算出、外分点算出の公式を用いて算出する。
【００６２】
例えば、Ｎ画素×Ｎ画素の正方ブロックサイズを２００×２００画素とし、ブロック位置情報５１２のブロック位置情報１４０１の座標を（Ｘ座標，Ｙ座標）＝（３００，１００）とする。またブロック位置情報１４０２の座標を（Ｘ座標，Ｙ座標）＝（７０４，１００）とする。ここでブロック位置情報１４０１とブロック位置情報１４０２のＸ座標の間隔（７０４−３００＝）４０４を求める。いま正方ブロックサイズが２００×２００画素であるため、４０４／２００＝２．０２で四捨五入すると「２」となる。これにより、ブロック位置情報１４０１とブロック位置情報１４０２のＸ座標の間隔には、２つのブロックがあると推測できる。そこで、ブロック位置情報１４０１とブロック位置情報１４０２の内分点を求め、（Ｘ座標，Ｙ座標）＝（５０２，１００）にブロックがあると推定する。またブロック位置情報１４０１とブロック位置情報１４０２の外分点を求め、（Ｘ座標，Ｙ座標）＝（９８，１００）にもブロックがあるとする。従って、ブロック位置情報１１２は、ブロック位置情報５１２に基づく内分、外分処理を実行して得られた画像情報１１１に存在するブロック位置の全ての位置情報となる。
【００６３】
図１５では、検出したブロック位置情報１１２の隣接する座標同士を点線で接続している。点線に囲まれた１ブロックが、Ｎ×Ｎ画素が埋め込まれているブロックであると想定している。また点線が重なり合っている格子点が、各ブロックの位置情報に相当し、各ブロック位置情報が検出ブロック位置保存部５０３のメモリ（不図示）に格納されている。このメモリに格納されている各ブロックの位置情報は、例えば、主走査方向に順次格納され、主走査方向に検出したブロック位置がなければ、次に副走査方向にずらして、主走査方向に順次格納する。こうして全てのブロックの位置情報がメモリに格納されると、そのメモリに格納されている全てのブロック位置情報と主走査方向のブロック数と副走査ブロック数と共にブロック位置情報１１２として出力する。以上が、ブロック位置検出部１０２の説明である。
【００６４】
ブロック位置ズレ検出部１０３は、ブロック位置検出部１０２で検出したブロック位置情報１１２を入力し、各ブロックの位置ズレを検出する。そして、検出した各ブロックの位置ズレを補正するための情報を位置ズレ補正値１１３として出力する。
【００６５】
図１６は、第１実施形態に係るブロック位置ズレ検出部１０３によるブロック位置ズレの検出方法の手順を説明するためのフローチャートである。
【００６６】
まずステップＳ３１で、入力したブロック位置情報１１２から１つのブロック位置を選択する。この１つのブロック位置を選択する順序は、ブロック位置情報１１２のブロック位置が埋め込まれている順番とする。次にステップＳ３２に進み、ステップＳ３１で選択した１つのブロックに対し、予め設定したブロックの規則性を考慮して、ブロック位置を補正した後のブロック位置を算出する。次にステップＳ３３に進み、補正前のブロック位置と、算出した補正後のブロック位置をメモリ（不図示）に保存する。次にステップＳ３４で、入力したブロック位置情報１１２の全てに対してブロック位置ズレを算出したかどうかを判定する。ここで全てのブロックのブロック位置の位置ズレを算出していない場合はステップＳ３１に進み、ブロック位置を次のブロック位置に移動して再度ステップＳ３１〜Ｓ３４を繰り返す。再度ステップＳ３１〜Ｓ３４を行う場合には、以前に算出したメモリに保存してある補正後のブロック位置を考慮する。こうして全てのブロック位置を算出するとステップＳ３５に進み、メモリに保存した全ての補正前のブロック位置と、補正後のブロック位置とを位置ズレ補正値１１３として出力する。
【００６７】
次に、画像読取装置で読み込んだ画像が局所的に横幅が歪んでいる場合を例にして図１７〜図１９を参照して、ブロック位置ズレ検出方法について説明する。
【００６８】
予め設定されたブロックの規則性として、埋め込んだブロックは正方形で、印刷解像度６００ｄｐｉで印刷した場合に１つのブロックサイズは１０×１０画素とする。ブロック位置検出部１０２に検出に使用した画像情報１１１は、読込解像度６００ｄｐｉで読み取っている画像として説明する。
【００６９】
図１７（Ａ）（Ｂ）は、理想的なブロック位置と画像読取装置で読み込んだ後のブロック位置を説明するための図である。図１７（Ａ）は、画像読取装置で読み込んだ後のブロック位置を示し、図１７（Ｂ）は、理想的なブロック位置を示す。
【００７０】
図１７（Ａ）において、Ｂ１１〜Ｂ１４，Ｂ２１〜Ｂ２４，Ｂ３１〜Ｂ３４，Ｂ４１〜Ｂ４４，Ｂ５１〜Ｂ５４は、画像読取装置で読み込んだ後のブロックの各ブロックを示している。また図１７（Ｂ）のＣ１１〜Ｃ１４，Ｃ２１〜Ｃ２４，Ｃ３１〜Ｃ３４，Ｃ４１〜Ｃ４４，Ｃ５１〜Ｃ５４は、理想的なブロックの各ブロックを示す。即ち、図１７（Ａ）を補正した結果が図１７（Ｂ）となる。
【００７１】
図１７（Ａ）と図１７（Ｂ）とを比較すると、画像読取装置で読み込んだブロックの横幅が理想的なブロックの横幅と比べて局所的に狭くなる部分と広くなる部分が発生している。画像読取装置で読み込んだ後のブロックの横幅Ｗｂ１，Ｗｂ２，Ｗｂ３，Ｗｂ４に対して、理想的なブロックの横幅はＷｃ１，Ｗｃ２，Ｗｃ３，Ｗｃ４となっている。ここでＷｂ２はＷｃ２と同じ幅で、Ｗｂ４はＷｃ４と同じ幅である。またＷｂ１は、Ｗｃ１より幅が狭くなっており、Ｗｂ３はＷｃ３より幅が広くなっている。位置１７０１は、ブロック位置検出部１０２で検出したブロック位置情報１１２の中で、最も左上に検出されたブロックの左上の座標位置を示す。ここで、位置１７０１の座標を（Ｘ，Ｙ）＝（０，０）とする。
【００７２】
図１８（Ａ）（Ｂ）は、選択した１つのブロックＢ１１の座標位置と、その選択したブロックＢ１１を補正したブロックＣ１１の座標位置を説明するための図である。図１８（Ａ）において、ブロックＢ１１の４頂点１８１，１８２，１８３，１８４を示している。また図１８（Ｂ）は、補正後のブロックＣ１１を示し、４頂点１８１，１８２，１８３，１８４に対応する補正後の４頂点１８５，１８６，１８７，１８８が示されている。図１８（Ａ）では、横幅が２画素分狭くなって読み込まれたブロックＢ１１として示されている。
【００７３】
まず図１７（Ａ）の左上のブロック（Ｂ１１）を選択する。このブロックＢ１１が図１８（Ａ）で表わされており、頂点１８１の座標は（Ｘ，Ｙ）＝（０，０）である。図１８（Ａ）の横幅（Ｗ１８ａ）を８画素とし、縦幅（Ｗ１８ｂ）を１０画素として説明する。頂点１８１と１８２との間隔（横幅）と、頂点１８３と１８４との間隔（横幅）は（Ｗ１８ａ）で示され、頂点１８１と１８３との間隔（縦幅）と頂点１８２と１８４との間隔（縦幅）は（Ｗ１８ｂ）である。これにより頂点１８２の座標は（Ｘ，Ｙ）＝（８，０）、頂点１８３の座標は（Ｘ，Ｙ）＝（０，１０）、そして頂点１８４の座標は（Ｘ，Ｙ）＝（８，１０）である。
【００７４】
次に、頂点１８１の座標（Ｘ，Ｙ）＝（０，０）を基準とし、ブロックの規則性に従って、補正後のブロックＣ１１の座標を算出する。ここで、ブロックの規則性が、ブロックが正方形で１つのブロックサイズは１０×１０画素としている。従って、頂点１８２の補正後の座標は、（Ｘ，Ｙ）＝（１０，０）となる。頂点１８３の補正後の座標位置は、（Ｘ，Ｙ）＝（０，１０）となる。また頂点１８４の補正後の座標は、（Ｘ，Ｙ）＝（１０，１０）となる。従って、図１８（Ｂ）の頂点１８５，１８６，１８７，１８８のそれぞれの座標は、（０，０）、（１０，０）、（０，１０）、（１０，１０）となる。即ち、図１８（Ｂ）の横幅（Ｗ１８ｂ）縦幅（Ｈ１８ｂ）は共に「１０」となる。これら補正前のブロックの座標位置と、補正後のブロックの座標位置とはともに、ブロック位置ズレ検出部１０３のメモリに保存される。このようにして、補正前のブロックの相対位置と、そのブロックの規則性であるブロックサイズとの差分が、ブロック位置のズレ量として検出されることになる。
【００７５】
図１７（Ａ）（Ｂ）の例では、この検出領域内に２０個のブロックがあるので、ブロック位置ズレ検出部１０３は、これら２０個のブロック位置に対してブロック位置ズレ検出を行う。従って、２回目のブロック位置でブロック位置ズレを検出することになる。例えば、２回目のブロック位置検出を左上のブロックから１つ右側のブロック（Ｂ１２）を選択する。
【００７６】
図１９（Ａ）（Ｂ）は、２回目に選択したブロックＢ１２の座標位置と、このブロックを補正した後のブロックＣ１２の位置を説明するための図である。
【００７７】
図１９（Ａ）は、選択したブロックＢ１２を示し、４頂点１９１，１９２，１９３，１９４を有している。図１９（Ｂ）は、ブロックＢ１２を補正したブロックＣ１２を示し、４頂点１９５，１９６，１９７，１９８を有している。ここで、この選択されたブロックＢ１２は歪んでいないブロックとして説明する。
【００７８】
頂点１９１の座標は、図１８（Ａ）の頂点１８２の座標に相当するので、頂点１９１の座標は（Ｘ，Ｙ）＝（８，０）である。また頂点１９２，１９３，１９４の各座標は、ブロックＢ１２が歪んでいないので、それぞれ（Ｘ，Ｙ）＝（１８，０）、（Ｘ，Ｙ）＝（８，１０）、（Ｘ，Ｙ）＝（１８，１０）となる。
【００７９】
次に、１つめのブロックと同様に、ブロックの規則性に従って補正後のブロックＣ１２の座標位置を算出する。しかし、頂点１９１の座標に相当する補正後のブロック座標位置は、ブロックＢ１１の位置ズレ検出で既にずれて異なる座標となっている。そこで、メモリに保存している補正後のブロックＣ１１の座標を読み出す。そして、その読み出した補正後のブロックＣ１１の座標から、ブロックＢ１２の補正後のブロックＣ１２の座標を算出する。ここで図１８（Ｂ）の頂点１８６，１８８の座標と、図１９（Ｂ）の頂点１９５，１９７の座標が同じ位置となる。従って、ブロックＣ１２の頂点１９５の座標は、頂点１８６の座標と同じ（Ｘ，Ｙ）＝（１０，０）である。また頂点１９７の座標は（Ｘ，Ｙ）＝（１０，１０）である。そしてブロックＢ１２は歪んでいないので、頂点１９６の座標は（Ｘ，Ｙ）＝（２０，０）、頂点１９８の座標は（Ｘ，Ｙ）＝（２０，１０）となる。こうして算出した補正後のブロックの座標位置をメモリに保存する。
【００８０】
ここでもメモリに保存する際には、ブロック位置検出部１０２でブロック位置をメモリに保存した順に、その補正後のブロック座標位置もメモリに保存する。例えば、主走査方向に順次ブロックの座標位置を格納していき、主走査方向に検出するブロックがなくなると、次に副走査方向にずらして、また主走査方向に順次格納していく。そして、ブロック位置情報１１２に含まれる全てのブロックに対する位置ズレ検出を完了すると、メモリに保存した全ての補正前のブロック座標位置と、算出した補正後のブロック座標位置を位置ズレ補正値１１３として出力する。尚、全てのブロックに対する処理を行ったかどうかの判定は、ブロック位置検出部１０２で検出した主走査方向のブロック数と副走査方向のブロック数が、検出した全てのブロック数になったかどうかにより判定する。
【００８１】
こうしてブロック位置ズレ補正部１０４は、ブロック位置ズレ検出部１０３から供給される位置ズレ補正値１１３に基づいて、画像情報１１１に補正処理を施した補正画像１１４を出力する。
【００８２】
図２０は、第１実施形態に係るブロック位置ズレ補正部１０４によるブロック位置ズレ補正処理の動作手順を説明するフローチャートである。
【００８３】
まずステップＳ４１で、入力した位置ズレ補正値１１３から１つのブロック位置を選択する。この１つのブロック位置を選択する順序は、ブロック位置情報１１２のブロック位置が埋め込まれている順番とする。次にステップＳ４２に進み、スキャナ１０１で読み取った画像情報１１１に対し、ステップＳ４１で選択したブロックの補正前後のブロック位置情報から、任意の画像変換処理を行う。この任意の画像変換処理は、例えば、補正前より補正後の方の画像サイズが大きくなる場合には拡大処理を、画像サイズが小さくなる場合には縮小処理を、画像が傾いている場合には回転処理を、座標が移動している場合には座標変換処理を行う。拡大処理や縮小処理等の画像処理変換処理に関しては、最近隣補間や、線形補間、アフィン変換など公知の方法であれば特に限定しない。
【００８４】
次にステップＳ４３に進み、その選択したブロックに対する画像変換処理後の画像データをメモリ（不図示）に保存する。ここで画像データをメモリに保存する際には、補正後の隣接するブロックを結合してメモリに保存する。こうして最終的には、画像情報１１１全体を補正した画像データがメモリに保存される。次にステップＳ４４に進み、位置ズレ補正値１１３に含まれる全てのブロックに対してブロック位置ズレ補正処理を行ったかどうかを判定する。全てのブロックに対してブロック位置ズレ補正処理を行っていなければ、位置ズレを補正するためのブロックをずらしてステップＳ４１に戻り、前述の処理を繰り返す。こうして全てのブロックに対する処理が完了するとステップＳ４５に進み、そのメモリに保存されている画像変換後の全ての画像データを補正画像１１４として出力して、この処理を終了する。
【００８５】
次に、ブロック位置ズレ補正方法について、ブロック位置ズレ検出部１０３と同様で、画像読取装置で読み込んだ画像が局所的に横幅が歪んでいる場合を例にして図１７と図１８、図１９を参照して説明する。
【００８６】
まず図１７（Ａ）の左上の１ブロック（Ｂ１１）を選択する。この選択されたブロックは、ブロック位置ズレ検出部１０３で説明した内容と同様に図１８（Ａ）に示す。
【００８７】
図１８（Ａ）（Ｂ）は、ブロック位置ズレ検出部１０３で説明した内容と同様に、横幅が２画素分狭くなって読み込まれたブロックとして説明する。ブロック位置ズレ補正前の座標として、頂点１８１の座標（Ｘ，Ｙ）＝（０，０）、頂点１８２の座標（Ｘ，Ｙ）＝（８，０）、頂点１８３の座標（Ｘ，Ｙ）＝（０，１０）、頂点１８４の座標（Ｘ，Ｙ）＝（８，１０）となる。位置ズレ補正を行った後の図１８（Ｂ）では、頂点１８５の座標（Ｘ，Ｙ）＝（０，０）、頂点１８６の座標（Ｘ，Ｙ）＝（１０，０）、頂点１８７の座標（Ｘ，Ｙ）＝（０，１０）、頂点１８８の座標（Ｘ，Ｙ）＝（１０，１０）となている。
【００８８】
次に、図１８（Ａ）の補正前のブロックＢ１１の左上頂点１８１の座標（Ｘ，Ｙ）＝（０，０）を基準として横×縦（８×１０画素）の画像データを、図１８（Ｂ）に示す補正後の横×縦（１０×１０画素）の画像データに変換する。図１８（Ａ）（Ｂ）のブロックの画像変換処理は、補正後の画素数が大きいので拡大処理を行う。拡大処理は、公知である最近隣補間、線形補間等いずれの方法を用いてもよい。その選択したブロックＢ１１の画像変換処理後のブロックＣ１１の画像データをメモリに保存する。この処理を他のブロックに対しても実行する。
【００８９】
次に、ブロック位置ズレ検出部１０３で説明した内容と同様に、２回目に選択したブロックは歪んでいないブロックの場合を図１９（Ａ）（Ｂ）を参照して説明する。
【００９０】
図１９（Ａ）（Ｂ）において、頂点１９１の座標（Ｘ，Ｙ）＝（８，０）、頂点１９２の座標（Ｘ，Ｙ）＝（１８，０）、頂点１９３の座標（Ｘ，Ｙ）＝（８，１０）、頂点１９４の座標（Ｘ，Ｙ）＝（１８，１０）である。
【００９１】
ここで補正前のブロックＢ１２の左上頂点１９１の座標（Ｘ，Ｙ）＝（８，０）を基準として１０画素×１０画素の画像データを、補正後の１０画素×１０画素の画像データに変換する。図１９のブロックの画像変換処理は、補正前後で画素数は変わらないので拡大縮小処理等は行わない。しかし、１回目に選択した補正後の画像データの座標は既にずれて異なる座標となっているため、メモリに保存してある１回目に画像変換した画像データの座標位置を基準にする。１回目と２回目に選択したブロックの補正後の座標位置は、図１８（Ｂ）の頂点１８６，１８８の座標と、図１９（Ｂ）の頂点１９５，１９７の座標が同じであることを示す。従って、補正前のブロックの左上頂点１９１の座標（Ｘ，Ｙ）＝（８，０）と、ブロックＣ１２の左上頂点１９５の座標（Ｘ，Ｙ）＝（１０，０）とを基準として１０画素×１０画素の画像データに変換する。こうして変換されたブロックの画像データをメモリに保存する。メモリに保存する際には、ブロック位置検出部１０２でブロック位置をメモリに保存した順にメモリに保存する。例えば、主走査方向に順次格納され、主走査方向に検出したブロック位置がなければ、次に、副走査方向にずらして、また、主走査方向に順次格納する。画像データをメモリに保存する際には、補正後の隣接するブロックを画像結合してメモリに保存する。このような処理を残りのブロックに対して実行する。こうして全てのブロック位置でブロック位置ズレ補正を行った後、メモリに保存した全ての画像変換処理後の画像データを補正画像１１４として出力する。
【００９２】
以上説明した第１実施形態では、説明を簡略化するために画像読取装置で読み込んだ画像が局所的に横方向が歪んでいる場合で説明した。しかしながら、その読み込んだ画像の局所的な歪みが縦方向で歪んでいても、前述の実施形態と同様にして、その歪みを補正することができる。
【００９３】
また上記説明では、読み込んだ画像に傾きがなく、局所的な歪みを持つブロックの向き合う辺の大きさも同じである場合で説明している。しかし、読み込んだ画像に傾きがあり、歪んでいるブロックの向き合う辺の大きさは同じでない場合であっても、上述したブロック位置ズレ補正処理により、傾きを画像変換できるアフィン変換等の公知の画像変換技術を採用することにより補正できる。
【００９４】
以上説明したように第１実施形態に係る画像処理装置及び方法によれば、読み込んだ画像が局所的に歪んでいても、埋め込まれているブロックからブロック位置を検出し補正することで、歪んで読み込まれた原稿を歪みの少ない画像データにすることができる。
【００９５】
［第２実施形態］
次に本発明の第２実施形態に係る画像処理装置を説明する。尚、この画像処理の構成は前述した第１実施形態の画像処理装置の構成と同じであるため、その説明を省略する。
【００９６】
前述の第１実施形態では、付加情報が埋め込まれているブロック位置を検出し、その検出したブロック位置に対してブロックの位置ズレを検出してズレ補正を行い、そのズレ補正に従ってブロック内の画像情報を補正して歪みを補正していた。しかし、画像上に、付加情報が埋め込まれているブロックが無い領域が存在する場合、その領域の画像データを補正することができない。この第２実施形態は、このような事情を考慮してなされたものである。以下、第２実施形態に係る画像読取装置について説明する。
【００９７】
第２実施形態におけるブロック位置ズレ検出方法は、ブロック位置検出部１０２で検出したブロック位置情報１１２を利用して、ブロックが埋め込まれていない領域の補正位置の推定を行う。第２実施形態に係るブロック位置ズレ検出方法を、スキャナ１０１で読み込んだ画像が局所的に横方向に歪んでいる場合を例にして説明する。
【００９８】
図２１（Ａ）（Ｂ）は、第２実施形態において、スキャナ１０１で読み込んだ後のブロック位置と、理想的なブロック位置との関係を説明するための図である。また読み込んだ画像データの内側にブロック位置があり、画像データの端部を基準としてブロックが埋め込まれていない領域が存在している例を示している。
【００９９】
図２１（Ａ）は、スキャナ１０１で読み込んだ後のブロック位置を示し、図２１（Ｂ）は、理想的なブロック位置を示す。図２１（Ａ）は、前述の図１７（Ａ）に対応している。図２１（Ａ）では、画像データの左辺に横幅Ｗｘａの領域が追加されている。図２１（Ｂ）は図１７（Ｂ）に対応し、図２１（Ａ）の画像データの左辺の横幅Ｗｘａの領域を補正した結果が、横幅Ｗｘｂで示した領域として追加されている。横幅Ｗｘａは４画素とする。頂点２１００，２１０１の各座標は、（Ｘ，Ｙ）＝（０，０）、（Ｘ，Ｙ）＝（４，０）となる。Ｗｂ１〜Ｗｂ４，Ｗｃ１〜Ｗｃ４、及び、Ｂ１１〜Ｂ５４、Ｃ１１〜Ｃ５４に関する説明は、前述の図１７の場合と同様であるため省略する。
【０１００】
まず、ブロックが埋め込まれていない領域に隣接するブロックの位置をブロック位置検出部１０２で検出したブロック位置情報１１２から選択する。次に、その選択したブロック位置情報１１２の４頂点の座標に基づいて、ブロックが埋め込まれていない領域の座標を算出する。このブロックが埋め込まれていない領域の座標の算出方法は、隣接するブロック位置の４頂点の外分点処理により算出する。ブロックが埋め込まれていない領域の座標の算出方法について図２２で説明する。
【０１０１】
図２２（Ａ）（Ｂ）は、選択した１つのブロックの座標位置と、そのブロックを補正した後の座標位置を説明するための図である。図２２（Ａ）は、選択した１つのブロック（Ｂ１１）を示す、４頂点２２１，２２２，２２３，２２４を有している。図２２（Ｂ）は、そのブロック（Ｂ１１）を補正したブロック（Ｃ１１）を示し、４頂点２２５，２２６，２２７，２２８を有している。図２２（Ａ）は、実際よりも横幅が２画素分狭く読み込まれたブロックとして示している。また頂点２１００，２１０１，２１１０の座標は、図２１と同様の座標位置とする。
【０１０２】
ブロック位置ズレ補正前の頂点２１００を基準とし、位置ズレ補正後のブロックの頂点の座標を算出する場合、位置ズレ補正前のブロックの頂点２１００と補正後の頂点２１１０の座標は同じになるので、頂点２１１０の座標は（Ｘ，Ｙ）＝（０，０）となる。次に、ズレ補正前のブロックの頂点２１０１の座標から補正後のブロックの頂点２１１０の座標を算出する場合、隣接するブロック情報の画像変換情報を利用する。ここで隣接するブロックはブロック（Ｂ１１）であるため、ブロック（Ｂ１１）をブロック（Ｃ１１）に変換する場合、横幅が８画素から１０画素となりブロックの横幅が４分の５倍に拡大されている。この拡大された情報を基に、ブロックが埋め込まれていない領域の補正後の座標を算出する。即ち図２２（Ａ）では、ブロックが埋め込まれていない領域の横幅Ｗｘａを４画素としている。従って図２２（Ｂ）の、算出した隣接するブロックの画像変換情報と同じ横幅を４分の５倍して、そのブロックの横幅を５画素とする。従って、横幅Ｗｘｂは５画素となる。これにより補正後の頂点２２５の座標は、頂点２１１０の座標に５画素を加算した（Ｘ，Ｙ）＝（５，０）となる。
【０１０３】
こうして、画像がブロックが埋め込まれていない領域を含む場合でも、その領域の位置を補正し、またその補正したブロックの位置を算出して画像を補正できる。
【０１０４】
以上説明したように第２実施形態によれば、ブロックが埋め込まれていない領域があっても、隣接する埋め込まれているブロック位置情報から、その領域のサイズを推測することによってブロック位置のズレ量を算出できる。従って、画像データのブロックが埋め込まれていない領域が歪んでいても、歪みの少ない画像データにすることができる。
【０１０５】
（他の実施形態）
以上、本発明の実施形態について詳述したが、本発明は、複数の機器から構成されるシステムに適用しても良いし、また一つの機器からなる装置に適用しても良い。
【０１０６】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムを読み出して実行することによっても達成され得る。その場合、プログラムの機能を有していれば、形態は、プログラムである必要はない。
【０１０７】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明のクレームでは、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０１０８】
プログラムを供給するための記録媒体としては、様々なものが使用できる。例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などである。
【０１０９】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページからハードディスク等の記録媒体にダウンロードすることによっても供給できる。その場合、ダウンロードされるのは、本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルであってもよい。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明のクレームに含まれるものである。
【０１１０】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布する形態としても良い。その場合、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムが実行可能な形式でコンピュータにインストールされるようにする。
【０１１１】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される形態以外の形態でも実現可能である。例えば、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【０１１２】
更に、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれるようにしてもよい。この場合、その後で、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される。
【図面の簡単な説明】
【０１１３】
【図１】第１実施形態に係る画像処理システムの機能構成を説明するブロック図である。
【図２】本発明の実施形態に係る画像処理システムの構成を説明するブロック図である。
【図３】本発明の第１実施形態に係る画像処理システムにおける動作手順を説明するフローチャートである。
【図４】第１実施形態でスキャナで読み取られる印刷画像の一例を説明するための図である。
【図５】第１実施形態に係るブロック位置検出部の機能構成を示す機能ブロック図である。
【図６】第１実施形態に係る部分ブロック位置検出部における処理を説明する図である。
【図７】第１実施形態に係るブロック位置検出部における動作手順を説明するためのフローチャートである。
【図８】第１実施形態において、スキャナから出力された画像情報の領域内で部分ブロック位置検出領域が配置されていることを示す概要図である。
【図９】図７のステップＳ１２の部分ブロック位置検出処理の手順を説明するためのフローチャートである。
【図１０】図８の部分ブロック位置検出領域内の付加情報分離処理領域が、埋め込まれているブロックの位置（点線で示す）と一致していない状態を説明する図である。
【図１１】図８の部分ブロック位置検出領域内の付加情報分離処理領域が、埋め込まれているブロックの位置（点線で示す）と一致している状態を説明する図である。
【図１２】部分ブロック位置検出領域内で、１画素ごとずらしながら算出した部分ブロック位置検出領域分の符号判定量を説明する図である。
【図１３】１画素ごとずらしながら算出した符号判定量を縦軸と横軸で加算した値をグラフに表した概要図である。
【図１４】ブロック位置算出部に入力された画像情報とブロック位置情報との関係を示している概要図である。
【図１５】画像情報で算出したブロック位置情報の結果を示す概要図である。
【図１６】第１実施形態に係るブロック位置ズレ検出部によるブロック位置ズレの検出方法の手順を説明するためのフローチャートである。
【図１７】理想的なブロック位置と画像読取装置で読み込んだ後のブロック位置を説明するための図で、図１７（Ａ）は、画像読取装置で読み込んだ後のブロック位置を示し、図１７（Ｂ）は、理想的なブロック位置を示している。
【図１８】選択した１つのブロックＢ１１の座標位置と、その選択したブロックＢ１１を補正したブロックＣ１１の座標位置を説明するための図である。
【図１９】２回目に選択したブロックＢ１２の座標位置と、このブロックを補正した後のブロックＣ１２の座標位置を説明するための図である。
【図２０】第１実施形態に係るブロック位置ズレ補正部によるブロック位置ズレ補正処理の動作手順を説明するフローチャートである。
【図２１】第２実施形態において、スキャナで読み込んだ後のブロック位置と、理想的なブロック位置との関係を説明するための図である。
【図２２】選択した１つのブロックの座標位置と、そのブロックを補正した後の座標位置を説明するための図である。
【図１】
2009265925.tif 000003
【図２】
2009265925.tif 000004
【図３】
2009265925.tif 000005
【図４】
2009265925.tif 000006
【図５】
2009265925.tif 000007
【図６】
2009265925.tif 000008
【図７】
2009265925.tif 000009
【図８】
2009265925.tif 000010
【図９】
2009265925.tif 000011
【図１０】
2009265925.tif 000012
【図１１】
2009265925.tif 000013
【図１２】
2009265925.tif 000014
【図１３】
2009265925.tif 000015
【図１４】
2009265925.tif 000016
【図１５】
2009265925.tif 000017
【図１６】
2009265925.tif 000018
【図１７】
2009265925.tif 000019
【図１８】
2009265925.tif 000020
【図１９】
2009265925.tif 000021
【図２０】
2009265925.tif 000022
【図２１】
2009265925.tif 000023
【図２２】
2009265925.tif 000024