画像処理装置及びその方法
【課題】 主走査方向の横の歪みと副走査方向の縦の歪みが組み合わさって局所的な歪みを補正することは難しかった。
【解決手段】 ブロック単位で特徴量が異なる複数のブロックを埋め込んだ画像を読み取って当該画像の画像データを出力するスキャナ101と、スキャナ101から出力される画像データに埋め込まれている各ブロックの位置を検出するブロック位置検出部102と、その検出した各ブロックの位置と、予め設定されている各ブロックの仕様とに基づいて各ブロックの位置のズレ量を算出するブロック位置ズレ検出部103と、そのズレ量に基づいて画像データを補正するブロック位置ズレ補正部104とを有する。
【解決手段】 ブロック単位で特徴量が異なる複数のブロックを埋め込んだ画像を読み取って当該画像の画像データを出力するスキャナ101と、スキャナ101から出力される画像データに埋め込まれている各ブロックの位置を検出するブロック位置検出部102と、その検出した各ブロックの位置と、予め設定されている各ブロックの仕様とに基づいて各ブロックの位置のズレ量を算出するブロック位置ズレ検出部103と、そのズレ量に基づいて画像データを補正するブロック位置ズレ補正部104とを有する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ブロック単位で特徴量が異なる複数のブロックを埋め込んだ画像を読み取って、その読み取った画像の歪みを補正する画像処理装置及びその方法に関する。
【背景技術】
【0002】
近年、複写機やスキャナ、デジタルカメラ、カメラ付き携帯電話等のように、画像を撮影或は読み取ることができる装置が増え、このような装置で得られた画像データを印刷する需要も増えてきている。また画像を読み取る性能も向上しているため、そのような装置で読み取った画像を印刷し、その印刷画像を、再度、画像読取装置で読み取る機会も増えてきている。更に、印刷した画像と読み込んだ画像が同じになるような忠実性が求められてきている。
【特許文献1】特開2002−171395号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
従来の画像読取装置は、イメージセンサの性能に頼るところが大きく、イメージセンサの性能によっては、読み取った画像が歪んだり伸びたり縮んだりした画像になってしまう問題があった。イメージセンサは、CCDイメージセンサやCMOSイメージセンサ等のイメージセンサで、画像を光の情報として読み取り、その光の情報を画像データに変換する。
【0004】
このようなイメージセンサの性能に依存するという問題を解決するための技術が特許文献1に記載されている。特許文献1では、原稿の画像データで、部分領域と思われる領域(予め決められた位置で、予め決められたサイズの領域)に含まれる画像(部分画像)を1つ取り出す。次に、部分画像と思われる画像(準部分画像)に高速フーリエ変換を施し、得られた周波数データからピーク点を求めて記憶する。次に準部分画像に含まれる夫々のピーク点の位相成分データを求めて記憶し、ピーク点の位置データとピーク点の理想位置データとの「ずれ」を補正する。次に準部分画像の最初のピクセルと部分画像の最初のピクセルとのずれを検出し、原稿の画像データから電子透かしデータを読み込む技術が提案されている。
【0005】
しかしながらこの従来の技術では、原稿の画像データから1つの部分画像を取り出し、画像データ全体に対しての傾きや拡大縮小を求めて補正することはできるが、局所的な歪みを補正することは難しい。例えば、一般的なスキャナにおいては、CCDイメージセンサを横方向に一列に並べ、一列に並べたイメージセンサを縦方向に1ラインずつ移動させながら原稿を読み取っている。ここでCCDが並んでいる方向を「主走査方向」、CCD或いは原稿が移動する方向を「副走査方向」とする。このようにして原稿をスキャナで読み込む際に、CCDの性能による主走査方向の歪み、CCD或いは原稿が移動する機構部分の性能による副走査方向の歪みが出てきてしまう。従って、画像読取装置で読み取られた原稿の画像データには、主走査方向の横の歪みと副走査方向の縦の歪みが組み合わさって局所的な歪みが出てきてしまう。上記従来の技術では、このような局所的な歪みを補正することは難しい。
【0006】
本発明の目的は上記従来技術の問題点を解決することにある。
【0007】
本願発明の一態様によれば、読み取られた原稿の画像データにおける歪みを補正することができる画像処理装置及びその方法を提供できる。
【課題を解決するための手段】
【0008】
上記目的を達成するために本発明の一態様に係る画像処理装置は以下のような構成を備える。即ち、
ブロック単位で特徴量が異なる複数のブロックを埋め込んだ画像を読み取って当該画像の画像データを出力する画像読取手段と、
前記画像読取手段から出力される前記画像データに埋め込まれている各ブロックの位置を検出するブロック位置検出手段と、
前記ブロック位置検出手段で検出した前記各ブロックの位置と、予め設定されている前記各ブロックの仕様とに基づいて、前記ブロック位置検出手段で検出した各ブロックの位置のズレ量を算出する位置ズレ算出手段と、
前記位置ズレ算出手段により算出した前記ズレ量に基づいて、前記画像読取手段から出力された前記画像データを補正する補正手段と、
を有することを特徴とする。
【0009】
上記目的を達成するために本発明の一態様に係る画像処理方法は以下のような工程を備える。即ち、
ブロック単位で特徴量が異なる複数のブロックを埋め込んだ画像を読み取って当該画像の画像データを出力する画像読取工程と、
前記画像読取工程から出力される前記画像データに埋め込まれている各ブロックの位置を検出するブロック位置検出工程と、
前記ブロック位置検出工程で検出した前記各ブロックの位置と、予め設定されている前記各ブロックの仕様とに基づいて、前記ブロック位置検出工程で検出した各ブロックの位置のズレ量を算出する位置ズレ算出工程と、
前記位置ズレ算出工程で算出した前記ズレ量に基づいて、前記画像読取工程から出力された前記画像データを補正する補正工程と、
を有することを特徴とする。
【発明の効果】
【0010】
本発明によれば、読み取られた原稿の画像データにおける歪みを補正することができる。
【発明を実施するための最良の形態】
【0011】
以下、添付図面を参照して本発明の好適な実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【0012】
本実施形態では、ブロック単位で特徴量が異なるブロックが埋め込まれた原稿を読み取る画像読取装置を有する画像処理システムの例で説明する。
【0013】
図2は、本発明の実施形態に係る画像処理システムの構成を説明するブロック図である。
【0014】
この画像処理システムは、画像処理装置200と、それに接続されたスキャナ101を有している。画像処理装置200において、システムバス201には、CPU202、ROM203、RAM204、ハードディスク等の二次記憶装置205が接続されている。またユーザインターフェースとして、表示部206、キーボード207、ポインティングデバイス208がCPU202等に接続されている。更に、画像読取用のスキャナ101がI/Oインターフェース209を介して接続されている。
【0015】
CPU202は、アプリケーション(以下の説明する処理を実行する機能を有する)の実行が指示されると二次記憶装置205にインストールされている対応するプログラムを読み出してRAM204にロードする。その後、そのプログラムを起動することにより、その指示された処理を実行することができる。
【0016】
[第1実施形態]
以下、本発明の第1実施形態に係る画像処理システムの概要について図を参照しながら説明する。
【0017】
図1は、第1実施形態に係る画像処理システムの機能構成を説明するブロック図である。
【0018】
この画像処理システムは、スキャナ101により印刷画像110を読み取り、そのスキャナ101から出力される画像情報111に対して処理を行うブロック位置検出部102、ブロック位置ズレ検出部103、及びブロック位置ズレ補正部104を有している。
【0019】
スキャナ101は、機械的な走査により、取り込む対象となる原稿(写真・文字・線画・立体物等)上の位置情報とその個所の色情報をデジタルデータに変換して画像情報111として出力する。本実施形態では、取り込む対象となる原稿は、付加情報が埋め込まれている画像を印刷した用紙(印刷画像110)とする。またスキャナ101から出力される画像情報111は、例えば、赤、緑、青の3種類の色からなるデータで、各色8ビットで1画素あたり24ビットの画像情報111とする。
【0020】
ブロック位置検出部102は、スキャナ101から出力される画像情報111に対して、ブロック毎に埋め込まれている多重化パターンを検出するために、ブロック単位でのテクスチャの周波数特性の解析処理を行う。そして、その周波数特性値に基づいて、印刷画像110に埋め込まれている複数のブロックの位置を検出し、各ブロックの位置を示すブロック位置情報112として出力する。ブロック位置ズレ検出部103は、予め設定してあるブロックの規則性(ブロックのサイズ、形状、配置等を規定する仕様)と、ブロック位置検出部102で検出したブロック位置情報112とを比較して、ブロックの位置ズレを検出する。第1実施形態におけるブロックの規則性は、例えばブロックが正方形、或は長方形であるものとする。このようなブロックの規則性に従って、ブロック位置の理想的な位置を求め、ブロック位置検出部102で検出した補正前のブロック位置と、補正後のブロック位置とを位置ズレ補正値113として出力する。ブロック位置ズレ補正部104は、ブロック位置検出部102で検出したブロック位置と理想的なブロック位置から、スキャナ101で読み込んだ画像情報111を補正する。スキャナ101で読み込んだ歪んだ状態のブロック位置と理想的なブロック位置がわかっているので、歪んだブロック位置の画像情報を理想的なブロック位置の画像情報に画像変換する。
【0021】
この第1実施形態では、予め設定してあるブロックの規則性は、N画素×N画素の正方ブロックを示している。しかし、埋め込まれているブロックに対してブロック位置の検出処理、ブロック位置ズレ算出処理が行えれば、どのような形状でも構わない。例えば、ブロック毎に埋め込まれている付加情報に予め設定してあるブロックの規則性を埋め込んでおき、復元化処理により埋め込まれている付加情報を復元し、その付加情報を利用してブロック位置ズレ検出処理を行うようにしても良い。
【0022】
図3は、本発明の第1実施形態に係る画像処理システムにおける動作手順を説明するフローチャートである。
【0023】
まずステップS1で、ブロック単位で付加情報が埋め込まれている印刷画像110をスキャナ101により読み取り画像情報111として出力する。次にステップS2に進み、ブロック位置検出部102がこの画像情報111を入力し、付加情報が埋め込まれている各ブロックの位置を検出する。そして、その検出したブロック位置情報112をブロック位置ズレ検出部103に出力する。次にステップS3に進み、ブロック位置ズレ検出部103は、そのブロック位置情報112からブロック毎の位置ズレを検出し、位置ズレ補正値113して出力する。次にステップS4に進み、ブロック位置ズレ補正部104は、画像情報111と、前述した位置ズレ補正値113とを入力し、位置ズレ補正値113に基づいて画像情報111を補正し、その補正した結果を補正画像114として出力する。
【0024】
尚、第1実施形態の画像読取装置では、印刷画像110を読み取る方法としてスキャナ101を使用しているが本発明はこれに限定されない。印刷画像110に埋め込まれている付加情報を抽出できる画質(解像度)で画像を読み取ることができる装置であれば、例えば、デジタルカメラやカメラ付き携帯電話、フィルムスキャナ等であっても良い。
【0025】
図4は、第1実施形態でスキャナ101で読み取られる印刷画像の一例を説明するための図である。
【0026】
印刷媒体(原稿)302は、付加情報の埋め込み領域301を含んでいる。そしてこの印刷媒体を、スキャナ読み取り範囲303で示される範囲で光学的に読み取ることにより印刷画像110が得られる。スキャナ読み取り範囲303は、印刷媒体302のサイズよりも大きく設定されている。付加情報埋め込み領域301は、付加情報を含むブロックが複数埋め込まれている領域である。ここで各ブロックは、N画素×N画素の正方ブロックであることを想定し、埋め込み領域301は幅(BW)及び高さ(BH)の領域としている。ブロック位置検出部102は、画像情報111を入力し、付加情報をブロック単位に分割して埋め込んだブロックの位置を検出する。
【0027】
このブロック位置検出部102によるブロック位置の検出方法は、まず、スキャナ101から出力される画像情報111に対し、1画素及び複数画素ずつ位置をずらしながら特徴量の解析処理を行う。この特徴量の解析処理は、まず、前述の規則性である、予め設定されているブロックのサイズに従って、そのブロックサイズ単位でのテクスチャの周波数特性の解析処理を行う。次にこの周波数特性の解析処理で算出される周波数特性量、及び、その周波数特性に基づいて、ブロックに埋め込まれている符号を判定する判定基準となる符号判定量を算出する。よって符号判定量はブロックの判定基準となる判定量となる。次に、これら周波数特性量と符号判定量とを用いてブロックの位置を検出する。ブロック位置検出部102の詳細については、以下で説明する。
【0028】
図5は、第1実施形態に係るブロック位置検出部102の機能構成を示す機能ブロック図である。
【0029】
このブロック位置検出部102は、入力端子501と部分ブロック位置検出部502と、検出ブロック位置保存部503、ブロック位置算出部504とを具備している。入力端子501を介して入力される画像情報111は、部分ブロック位置検出部502とブロック位置算出部504とに供給される。また部分ブロック位置検出部502には、前述の付加情報埋め込み領域301に対応する領域情報である検出領域情報505が入力されている。部分ブロック位置検出部502では、その検出領域情報510で指定された領域におけるブロック位置を検出し、ブロック位置情報511を出力する。
【0030】
図6は、この部分ブロック位置検出部502における処理を説明する図である。
【0031】
例えば、検出領域情報510が、画像情報111上の1つの部分ブロック位置検出領域601を設定しているとする。このときブロック位置検出部102は、この部分ブロック位置検出領域601に対してブロック位置の検出を行う。ブロック位置の検出方法は、部分ブロック位置検出領域601内でブロック602の位置を画素毎に領域601内でずらしながら、付加情報を分離するために画像上のテクスチャの周波数を解析する。そして周波数解析時の周波数特性値及び付加情報を分離する際の付加情報判定値を算出する。次に、周波数解析時の周波数特性値及び付加情報を分離する際の付加情報判定値から特徴抽出を行ってブロック位置を検出する。こうして算出した周波数解析時の周波数特性値及び付加情報を分離する際の付加情報判定値は、付加情報が埋め込まれているブロック位置で算出する場合と、埋め込まれていないブロック位置で算出する場合とで異なる判定値となる。また付加情報が埋め込まれているブロック位置で算出する場合と、埋め込まれているブロック位置がずれている個所で算出する場合とで異なる判定値となる。
【0032】
検出ブロック位置保存部503は、部分ブロック位置検出部502が検出したブロック位置情報511を入力してメモリ(不図示)に格納する。次に検出領域情報510により指定された領域分の処理が行われているか否かを判定する。ここで、その領域分の処理が完了していない場合は、再度、部分ブロック位置検出部502によるブロックの位置検出を行う。こうして検出したブロック位置情報511を入力してメモリに格納する。そしてその領域分の処理を完了した場合は、そのメモリに格納された1つ或は複数のブロック位置情報511をブロック位置情報512としてブロック位置算出部504に出力する。ブロック位置算出部504は、ブロック位置情報512から、付加情報が埋め込まれているブロックの位置を算出し、ブロック位置情報112として出力する。
【0033】
図7は、第1実施形態に係るブロック位置検出部102における動作手順を説明するためのフローチャートである。
【0034】
先ずステップS11で、部分ブロック位置検出部502は、検出領域情報510に基づいて、ブロックを検出する領域を設定する。次にステップS12で、部分ブロック位置の検出処理を行う。
【0035】
図8は、第1実施形態において、スキャナ101から出力された画像情報111の領域内で部分ブロック位置検出領域が配置されていることを示す概要図である。
【0036】
ここで部分ブロック位置検出領域は、画像情報111の領域内で、太線で囲ってある部分ブロック位置検出領域801〜806を示す。ここでは画像情報111の領域内に6つの部分ブロック位置検出領域801〜806が予め設定されている。
【0037】
図では、予め部分ブロック位置の検出領域を設定しているが、部分ブロック位置の検出領域の大きさ、位置、個数に関して特に限定しない。また、部分ブロック位置の検出領域は、予め設定されていてもよい。また画像情報111の入力情報に従って設定された領域でも、一度検出したブロック位置情報511から次の部分ブロック位置の検出領域を設定してもよく、特に限定はしない。例えば、検出領域情報510により、画像情報111の領域を4分割して、その4つの領域を部分ブロック位置検出領域としても良い。更に検出領域情報510の中に部分ブロック位置検出を行う処理間隔を予め設定しておき、処理間隔に従って、次の部分ブロック位置検出領域とした検出領域情報510により設定しても構わない。
【0038】
次にステップS12の部分ブロック位置検出処理では、部分ブロック位置検出領域内でブロック位置の検出を行う。
【0039】
図9は、図7のステップS12の部分ブロック位置検出処理の手順を説明するためのフローチャートである。
【0040】
まずステップS21で、付加情報の分離処理を行う際の基準となるブロック開始位置を設定する。次にステップS22に進み、ブロック開始位置からブロック単位で画像上のテクスチャの周波数解析を行って周波数特性量を算出する。そして、周波数解析結果の周波数特性量から、埋め込まれているブロック単位の符号判定を行う符号判定量を算出する。次にステップS23に進み、周波数特性量と符号判定量をメモリ(不図示)に記憶する。次にステップS24に進み、部分ブロック位置検出領域分の処理を終えたかどうかを判定する。終了していないときはステップS21に戻り、終了するとステップS25に進む。ステップS25では、ステップS22で求めた周波数特性量と、付加情報を分離するための符号判定量から、部分ブロック位置検出領域内のブロック位置を算出する。そして、その算出したブロック位置をブロック位置情報511として検出ブロック位置保存部503に出力する。
【0041】
この部分ブロック位置検出処理の詳細について以下の例で説明する。
【0042】
例えばステップS11で設定した部分ブロック位置検出領域が、横100×縦100画素からなる合計10000画素分の領域であるとして説明する。
【0043】
まずステップS21でブロック開始位置を設定する。ここでは、部分ブロック位置検出領域の10000画素分の内、1画素を選択し、その選択した1画素の位置をブロック開始位置として設定する。次にステップS22の付加情報分離処理では、ステップS21で設定したブロック開始位置からブロック単位で画像上のテクスチャの周波数解析を行う。そして、埋め込まれているブロック単位の符号判定を行う。更に、その周波数特性量に基づいて、埋め込まれているブロック単位の符号判定を行う符号判定量を算出する。こうして算出した周波数特性量及び符号判定量は、付加情報が埋め込まれているブロック位置で算出する場合と、埋め込まれているブロック位置がずれている個所で算出する場合とで判定量が異なることする。
【0044】
図10は、図8の部分ブロック位置検出領域801内の付加情報分離処理領域1001が、埋め込まれているブロックの位置(点線で示す)と一致していない状態を説明する図である。
【0045】
図11は、図8の部分ブロック位置検出領域801内の付加情報分離処理領域1101が、埋め込まれているブロックの位置(点線で示す)と一致している状態を説明する図である。
【0046】
例えば、図10と図11で判定量を求めた場合、図10で求めた符号判定量は小さく、図11で求めた符号判定量は大きくなる。
【0047】
次にステップS23では、ステップS22の付加情報分離処理で算出した、周波数特性量と符号判定量をメモリ(不図示)に格納する。尚、ここでは、周波数解析結果の周波数特性量と符号判定量とをメモリに格納しているが、特に限定することない。例えば、周波数特性量及び符号判定量のいずれか一方だけをメモリに格納しても構わない。
【0048】
次にステップS24に進み、部分ブロック位置検出領域10000画素に対する終了しているかを判断する。ステップS24で、この領域に対する処理が終了していると判定した場合は、ステップS25の部分ブロック位置算出処理に移行する。一方、この領域分の処理が終了していないと判定した場合は、再度ステップS21に戻って、ブロック開始位置設定から処理を行う。尚、ステップS24の終了判定は、例えば、10000画素分の周波数特性量及び符号判定量を算出し終えたかどうかで判定する。ステップS25の部分ブロック位置算出処理では、メモリに格納した10000画素分の符号判定量に基づいてブロック位置を算出する。
【0049】
この部分ブロック位置算出方法として、例えば、符号判定量からブロック位置を算出する方法を説明する。例えば、算出された符号判定量が高い方が、埋め込まれているブロック位置と一致している可能性が高い規則性がある場合、算出した符号判定量から高い値を算出することによってブロック位置を算出できる。従って、符号判定量から最大値検出を行えば、ブロック位置を算出できることになる。尚、算出された符号判定量が低い方が、埋め込まれているブロック位置と一致している可能性が高いとしても特に構わない。
【0050】
図12は、部分ブロック位置検出領域内で、1画素ごとずらしながら算出した部分ブロック位置検出領域分の符号判定量を説明する図である。
【0051】
図12の場合、符号判定量の「60」が最大値であるため、符号判定量が「60」となる位置が部分ブロック位置として判定される。図では、部分ブロック位置検出領域内で1画素ごとずらしながら算出した符号判定量を示している。いま、この検出領域の左上の座標(X,Y)=(0,0)を基準とした場合、座標(X,Y)=(3,3)の座標を部分ブロック位置と判定する。尚、これ以外にも例えば、1画素ごとずらしながら算出した符号判定量を縦軸と横軸で加算して、加算した値から、各縦軸、横軸から最大値を算出する方法も考えられる。
【0052】
図13は、1画素ごとずらしながら算出した符号判定量を縦軸と横軸で加算した値をグラフに表した概要図である。
【0053】
図13では、埋め込まれているブロックのサイズは6×6画素とすると、6画素毎に横軸、縦軸に最大値が現れると推測できる。従って、6画素毎に横軸、縦軸が最大になる箇所を検出できれば良いことになる。黒太枠で囲んである12×12個の符号判定量1301は、部分ブロック位置検出領域を12×12画素とした場合に、1画素毎に符号判定量を算出した値を示している。符号判定量1301の場合、符号判定量の横軸の加算値を網点の判定量の横軸合計値1302とし、符号判定量の縦軸の加算値を網点の判定量の横軸合計値1303としている。判定量の横軸合計値のグラフ1304は、判定量の横軸合計値1302をグラフに表わしたものである。また、判定量の縦軸合計値のグラフ1305は、判定量の縦軸合計値1303をグラフに表和したものである。これらグラフ1304,1305に示す通り、算出された判定量の縦軸、横軸の加算値に特徴が現れる。
【0054】
図13では、部分ブロック位置検出領域の左上の座標(X,Y)=(0,0)を基準とした場合、座標(X,Y)=(3,3)から、6画素間隔で符号判定量のピークが表れていることが分かる。よって、この座標位置が、付加情報が埋め込まれているブロックの位置であると推測できる。
【0055】
検出ブロック位置保存部503は、図7のステップS13の検出ブロック保存処理と、ステップS14の部分ブロック位置検出処理の終了判定処理を行う。ステップS13の検出ブロック保存処理では、部分ブロック位置検出部502で検出したブロック位置情報511をメモリ(不図示)に順次格納する。例えば、図8に示すように、6つの部分ブロック位置検出領域801〜806が設定された場合には、各領域で検出した6つのブロック位置情報511をメモリに確保する。
【0056】
次にステップS14の部分ブロック位置検出処理の終了判定処理では、入力された検出領域情報510の情報と、検出処理を完了したブロックとを比較する。そして、複数個のブロック位置検出領域を設定している場合は、複数個のブロック位置検出領域で部分ブロック位置検出部の処理が終了しているか否かを判定する。例えば図8に示すように、検出領域情報510により、6つの部分ブロック位置検出領域801〜806が設定されている場合は、これら6つの領域で位置検出処理が完了しているかを判定する。そして、完了していない場合は、ステップS21に戻る。そして、終了する場合には、メモリに確保した複数のブロック位置情報511をブロック位置情報512として出力する。
【0057】
ブロック位置算出部504は、ステップS15のブロック位置算出処理を行う。このブロック位置算出処理では、検出ブロック位置保存部503から出力されたブロック位置情報512に基づいて、画像情報111全体のブロック位置情報112を算出する。
【0058】
次に図14及び図15を参照して、本実施形態に係るブロック位置算出部504によるブロック位置算出方法を説明する。
【0059】
図14は、ブロック位置算出部504に入力された画像情報111とブロック位置情報512との関係を示している概要図である。
【0060】
図15は、画像情報111で算出したブロック位置情報112の結果を示す概要図である。
【0061】
図14では、画像情報111で検出したブロック位置情報512を黒丸で示している。例えば、ブロック位置情報512の黒丸をブロック位置情報1401,1402で表示している。これらブロック位置情報1401,1402からブロック位置情報112を算出する方法は、予め設定しているN画素×N画素の正方ブロックサイズを利用し、公知の内分点算出、外分点算出の公式を用いて算出する。
【0062】
例えば、N画素×N画素の正方ブロックサイズを200×200画素とし、ブロック位置情報512のブロック位置情報1401の座標を(X座標,Y座標)=(300,100)とする。またブロック位置情報1402の座標を(X座標,Y座標)=(704,100)とする。ここでブロック位置情報1401とブロック位置情報1402のX座標の間隔(704−300=)404を求める。いま正方ブロックサイズが200×200画素であるため、404/200=2.02で四捨五入すると「2」となる。これにより、ブロック位置情報1401とブロック位置情報1402のX座標の間隔には、2つのブロックがあると推測できる。そこで、ブロック位置情報1401とブロック位置情報1402の内分点を求め、(X座標,Y座標)=(502,100)にブロックがあると推定する。またブロック位置情報1401とブロック位置情報1402の外分点を求め、(X座標,Y座標)=(98,100)にもブロックがあるとする。従って、ブロック位置情報112は、ブロック位置情報512に基づく内分、外分処理を実行して得られた画像情報111に存在するブロック位置の全ての位置情報となる。
【0063】
図15では、検出したブロック位置情報112の隣接する座標同士を点線で接続している。点線に囲まれた1ブロックが、N×N画素が埋め込まれているブロックであると想定している。また点線が重なり合っている格子点が、各ブロックの位置情報に相当し、各ブロック位置情報が検出ブロック位置保存部503のメモリ(不図示)に格納されている。このメモリに格納されている各ブロックの位置情報は、例えば、主走査方向に順次格納され、主走査方向に検出したブロック位置がなければ、次に副走査方向にずらして、主走査方向に順次格納する。こうして全てのブロックの位置情報がメモリに格納されると、そのメモリに格納されている全てのブロック位置情報と主走査方向のブロック数と副走査ブロック数と共にブロック位置情報112として出力する。以上が、ブロック位置検出部102の説明である。
【0064】
ブロック位置ズレ検出部103は、ブロック位置検出部102で検出したブロック位置情報112を入力し、各ブロックの位置ズレを検出する。そして、検出した各ブロックの位置ズレを補正するための情報を位置ズレ補正値113として出力する。
【0065】
図16は、第1実施形態に係るブロック位置ズレ検出部103によるブロック位置ズレの検出方法の手順を説明するためのフローチャートである。
【0066】
まずステップS31で、入力したブロック位置情報112から1つのブロック位置を選択する。この1つのブロック位置を選択する順序は、ブロック位置情報112のブロック位置が埋め込まれている順番とする。次にステップS32に進み、ステップS31で選択した1つのブロックに対し、予め設定したブロックの規則性を考慮して、ブロック位置を補正した後のブロック位置を算出する。次にステップS33に進み、補正前のブロック位置と、算出した補正後のブロック位置をメモリ(不図示)に保存する。次にステップS34で、入力したブロック位置情報112の全てに対してブロック位置ズレを算出したかどうかを判定する。ここで全てのブロックのブロック位置の位置ズレを算出していない場合はステップS31に進み、ブロック位置を次のブロック位置に移動して再度ステップS31〜S34を繰り返す。再度ステップS31〜S34を行う場合には、以前に算出したメモリに保存してある補正後のブロック位置を考慮する。こうして全てのブロック位置を算出するとステップS35に進み、メモリに保存した全ての補正前のブロック位置と、補正後のブロック位置とを位置ズレ補正値113として出力する。
【0067】
次に、画像読取装置で読み込んだ画像が局所的に横幅が歪んでいる場合を例にして図17〜図19を参照して、ブロック位置ズレ検出方法について説明する。
【0068】
予め設定されたブロックの規則性として、埋め込んだブロックは正方形で、印刷解像度600dpiで印刷した場合に1つのブロックサイズは10×10画素とする。ブロック位置検出部102に検出に使用した画像情報111は、読込解像度600dpiで読み取っている画像として説明する。
【0069】
図17(A)(B)は、理想的なブロック位置と画像読取装置で読み込んだ後のブロック位置を説明するための図である。図17(A)は、画像読取装置で読み込んだ後のブロック位置を示し、図17(B)は、理想的なブロック位置を示す。
【0070】
図17(A)において、B11〜B14,B21〜B24,B31〜B34,B41〜B44,B51〜B54は、画像読取装置で読み込んだ後のブロックの各ブロックを示している。また図17(B)のC11〜C14,C21〜C24,C31〜C34,C41〜C44,C51〜C54は、理想的なブロックの各ブロックを示す。即ち、図17(A)を補正した結果が図17(B)となる。
【0071】
図17(A)と図17(B)とを比較すると、画像読取装置で読み込んだブロックの横幅が理想的なブロックの横幅と比べて局所的に狭くなる部分と広くなる部分が発生している。画像読取装置で読み込んだ後のブロックの横幅Wb1,Wb2,Wb3,Wb4に対して、理想的なブロックの横幅はWc1,Wc2,Wc3,Wc4となっている。ここでWb2はWc2と同じ幅で、Wb4はWc4と同じ幅である。またWb1は、Wc1より幅が狭くなっており、Wb3はWc3より幅が広くなっている。位置1701は、ブロック位置検出部102で検出したブロック位置情報112の中で、最も左上に検出されたブロックの左上の座標位置を示す。ここで、位置1701の座標を(X,Y)=(0,0)とする。
【0072】
図18(A)(B)は、選択した1つのブロックB11の座標位置と、その選択したブロックB11を補正したブロックC11の座標位置を説明するための図である。図18(A)において、ブロックB11の4頂点181,182,183,184を示している。また図18(B)は、補正後のブロックC11を示し、4頂点181,182,183,184に対応する補正後の4頂点185,186,187,188が示されている。図18(A)では、横幅が2画素分狭くなって読み込まれたブロックB11として示されている。
【0073】
まず図17(A)の左上のブロック(B11)を選択する。このブロックB11が図18(A)で表わされており、頂点181の座標は(X,Y)=(0,0)である。図18(A)の横幅(W18a)を8画素とし、縦幅(W18b)を10画素として説明する。頂点181と182との間隔(横幅)と、頂点183と184との間隔(横幅)は(W18a)で示され、頂点181と183との間隔(縦幅)と頂点182と184との間隔(縦幅)は(W18b)である。これにより頂点182の座標は(X,Y)=(8,0)、頂点183の座標は(X,Y)=(0,10)、そして頂点184の座標は(X,Y)=(8,10)である。
【0074】
次に、頂点181の座標(X,Y)=(0,0)を基準とし、ブロックの規則性に従って、補正後のブロックC11の座標を算出する。ここで、ブロックの規則性が、ブロックが正方形で1つのブロックサイズは10×10画素としている。従って、頂点182の補正後の座標は、(X,Y)=(10,0)となる。頂点183の補正後の座標位置は、(X,Y)=(0,10)となる。また頂点184の補正後の座標は、(X,Y)=(10,10)となる。従って、図18(B)の頂点185,186,187,188のそれぞれの座標は、(0,0)、(10,0)、(0,10)、(10,10)となる。即ち、図18(B)の横幅(W18b)縦幅(H18b)は共に「10」となる。これら補正前のブロックの座標位置と、補正後のブロックの座標位置とはともに、ブロック位置ズレ検出部103のメモリに保存される。このようにして、補正前のブロックの相対位置と、そのブロックの規則性であるブロックサイズとの差分が、ブロック位置のズレ量として検出されることになる。
【0075】
図17(A)(B)の例では、この検出領域内に20個のブロックがあるので、ブロック位置ズレ検出部103は、これら20個のブロック位置に対してブロック位置ズレ検出を行う。従って、2回目のブロック位置でブロック位置ズレを検出することになる。例えば、2回目のブロック位置検出を左上のブロックから1つ右側のブロック(B12)を選択する。
【0076】
図19(A)(B)は、2回目に選択したブロックB12の座標位置と、このブロックを補正した後のブロックC12の位置を説明するための図である。
【0077】
図19(A)は、選択したブロックB12を示し、4頂点191,192,193,194を有している。図19(B)は、ブロックB12を補正したブロックC12を示し、4頂点195,196,197,198を有している。ここで、この選択されたブロックB12は歪んでいないブロックとして説明する。
【0078】
頂点191の座標は、図18(A)の頂点182の座標に相当するので、頂点191の座標は(X,Y)=(8,0)である。また頂点192,193,194の各座標は、ブロックB12が歪んでいないので、それぞれ(X,Y)=(18,0)、(X,Y)=(8,10)、(X,Y)=(18,10)となる。
【0079】
次に、1つめのブロックと同様に、ブロックの規則性に従って補正後のブロックC12の座標位置を算出する。しかし、頂点191の座標に相当する補正後のブロック座標位置は、ブロックB11の位置ズレ検出で既にずれて異なる座標となっている。そこで、メモリに保存している補正後のブロックC11の座標を読み出す。そして、その読み出した補正後のブロックC11の座標から、ブロックB12の補正後のブロックC12の座標を算出する。ここで図18(B)の頂点186,188の座標と、図19(B)の頂点195,197の座標が同じ位置となる。従って、ブロックC12の頂点195の座標は、頂点186の座標と同じ(X,Y)=(10,0)である。また頂点197の座標は(X,Y)=(10,10)である。そしてブロックB12は歪んでいないので、頂点196の座標は(X,Y)=(20,0)、頂点198の座標は(X,Y)=(20,10)となる。こうして算出した補正後のブロックの座標位置をメモリに保存する。
【0080】
ここでもメモリに保存する際には、ブロック位置検出部102でブロック位置をメモリに保存した順に、その補正後のブロック座標位置もメモリに保存する。例えば、主走査方向に順次ブロックの座標位置を格納していき、主走査方向に検出するブロックがなくなると、次に副走査方向にずらして、また主走査方向に順次格納していく。そして、ブロック位置情報112に含まれる全てのブロックに対する位置ズレ検出を完了すると、メモリに保存した全ての補正前のブロック座標位置と、算出した補正後のブロック座標位置を位置ズレ補正値113として出力する。尚、全てのブロックに対する処理を行ったかどうかの判定は、ブロック位置検出部102で検出した主走査方向のブロック数と副走査方向のブロック数が、検出した全てのブロック数になったかどうかにより判定する。
【0081】
こうしてブロック位置ズレ補正部104は、ブロック位置ズレ検出部103から供給される位置ズレ補正値113に基づいて、画像情報111に補正処理を施した補正画像114を出力する。
【0082】
図20は、第1実施形態に係るブロック位置ズレ補正部104によるブロック位置ズレ補正処理の動作手順を説明するフローチャートである。
【0083】
まずステップS41で、入力した位置ズレ補正値113から1つのブロック位置を選択する。この1つのブロック位置を選択する順序は、ブロック位置情報112のブロック位置が埋め込まれている順番とする。次にステップS42に進み、スキャナ101で読み取った画像情報111に対し、ステップS41で選択したブロックの補正前後のブロック位置情報から、任意の画像変換処理を行う。この任意の画像変換処理は、例えば、補正前より補正後の方の画像サイズが大きくなる場合には拡大処理を、画像サイズが小さくなる場合には縮小処理を、画像が傾いている場合には回転処理を、座標が移動している場合には座標変換処理を行う。拡大処理や縮小処理等の画像処理変換処理に関しては、最近隣補間や、線形補間、アフィン変換など公知の方法であれば特に限定しない。
【0084】
次にステップS43に進み、その選択したブロックに対する画像変換処理後の画像データをメモリ(不図示)に保存する。ここで画像データをメモリに保存する際には、補正後の隣接するブロックを結合してメモリに保存する。こうして最終的には、画像情報111全体を補正した画像データがメモリに保存される。次にステップS44に進み、位置ズレ補正値113に含まれる全てのブロックに対してブロック位置ズレ補正処理を行ったかどうかを判定する。全てのブロックに対してブロック位置ズレ補正処理を行っていなければ、位置ズレを補正するためのブロックをずらしてステップS41に戻り、前述の処理を繰り返す。こうして全てのブロックに対する処理が完了するとステップS45に進み、そのメモリに保存されている画像変換後の全ての画像データを補正画像114として出力して、この処理を終了する。
【0085】
次に、ブロック位置ズレ補正方法について、ブロック位置ズレ検出部103と同様で、画像読取装置で読み込んだ画像が局所的に横幅が歪んでいる場合を例にして図17と図18、図19を参照して説明する。
【0086】
まず図17(A)の左上の1ブロック(B11)を選択する。この選択されたブロックは、ブロック位置ズレ検出部103で説明した内容と同様に図18(A)に示す。
【0087】
図18(A)(B)は、ブロック位置ズレ検出部103で説明した内容と同様に、横幅が2画素分狭くなって読み込まれたブロックとして説明する。ブロック位置ズレ補正前の座標として、頂点181の座標(X,Y)=(0,0)、頂点182の座標(X,Y)=(8,0)、頂点183の座標(X,Y)=(0,10)、頂点184の座標(X,Y)=(8,10)となる。位置ズレ補正を行った後の図18(B)では、頂点185の座標(X,Y)=(0,0)、頂点186の座標(X,Y)=(10,0)、頂点187の座標(X,Y)=(0,10)、頂点188の座標(X,Y)=(10,10)となている。
【0088】
次に、図18(A)の補正前のブロックB11の左上頂点181の座標(X,Y)=(0,0)を基準として横×縦(8×10画素)の画像データを、図18(B)に示す補正後の横×縦(10×10画素)の画像データに変換する。図18(A)(B)のブロックの画像変換処理は、補正後の画素数が大きいので拡大処理を行う。拡大処理は、公知である最近隣補間、線形補間等いずれの方法を用いてもよい。その選択したブロックB11の画像変換処理後のブロックC11の画像データをメモリに保存する。この処理を他のブロックに対しても実行する。
【0089】
次に、ブロック位置ズレ検出部103で説明した内容と同様に、2回目に選択したブロックは歪んでいないブロックの場合を図19(A)(B)を参照して説明する。
【0090】
図19(A)(B)において、頂点191の座標(X,Y)=(8,0)、頂点192の座標(X,Y)=(18,0)、頂点193の座標(X,Y)=(8,10)、頂点194の座標(X,Y)=(18,10)である。
【0091】
ここで補正前のブロックB12の左上頂点191の座標(X,Y)=(8,0)を基準として10画素×10画素の画像データを、補正後の10画素×10画素の画像データに変換する。図19のブロックの画像変換処理は、補正前後で画素数は変わらないので拡大縮小処理等は行わない。しかし、1回目に選択した補正後の画像データの座標は既にずれて異なる座標となっているため、メモリに保存してある1回目に画像変換した画像データの座標位置を基準にする。1回目と2回目に選択したブロックの補正後の座標位置は、図18(B)の頂点186,188の座標と、図19(B)の頂点195,197の座標が同じであることを示す。従って、補正前のブロックの左上頂点191の座標(X,Y)=(8,0)と、ブロックC12の左上頂点195の座標(X,Y)=(10,0)とを基準として10画素×10画素の画像データに変換する。こうして変換されたブロックの画像データをメモリに保存する。メモリに保存する際には、ブロック位置検出部102でブロック位置をメモリに保存した順にメモリに保存する。例えば、主走査方向に順次格納され、主走査方向に検出したブロック位置がなければ、次に、副走査方向にずらして、また、主走査方向に順次格納する。画像データをメモリに保存する際には、補正後の隣接するブロックを画像結合してメモリに保存する。このような処理を残りのブロックに対して実行する。こうして全てのブロック位置でブロック位置ズレ補正を行った後、メモリに保存した全ての画像変換処理後の画像データを補正画像114として出力する。
【0092】
以上説明した第1実施形態では、説明を簡略化するために画像読取装置で読み込んだ画像が局所的に横方向が歪んでいる場合で説明した。しかしながら、その読み込んだ画像の局所的な歪みが縦方向で歪んでいても、前述の実施形態と同様にして、その歪みを補正することができる。
【0093】
また上記説明では、読み込んだ画像に傾きがなく、局所的な歪みを持つブロックの向き合う辺の大きさも同じである場合で説明している。しかし、読み込んだ画像に傾きがあり、歪んでいるブロックの向き合う辺の大きさは同じでない場合であっても、上述したブロック位置ズレ補正処理により、傾きを画像変換できるアフィン変換等の公知の画像変換技術を採用することにより補正できる。
【0094】
以上説明したように第1実施形態に係る画像処理装置及び方法によれば、読み込んだ画像が局所的に歪んでいても、埋め込まれているブロックからブロック位置を検出し補正することで、歪んで読み込まれた原稿を歪みの少ない画像データにすることができる。
【0095】
[第2実施形態]
次に本発明の第2実施形態に係る画像処理装置を説明する。尚、この画像処理の構成は前述した第1実施形態の画像処理装置の構成と同じであるため、その説明を省略する。
【0096】
前述の第1実施形態では、付加情報が埋め込まれているブロック位置を検出し、その検出したブロック位置に対してブロックの位置ズレを検出してズレ補正を行い、そのズレ補正に従ってブロック内の画像情報を補正して歪みを補正していた。しかし、画像上に、付加情報が埋め込まれているブロックが無い領域が存在する場合、その領域の画像データを補正することができない。この第2実施形態は、このような事情を考慮してなされたものである。以下、第2実施形態に係る画像読取装置について説明する。
【0097】
第2実施形態におけるブロック位置ズレ検出方法は、ブロック位置検出部102で検出したブロック位置情報112を利用して、ブロックが埋め込まれていない領域の補正位置の推定を行う。第2実施形態に係るブロック位置ズレ検出方法を、スキャナ101で読み込んだ画像が局所的に横方向に歪んでいる場合を例にして説明する。
【0098】
図21(A)(B)は、第2実施形態において、スキャナ101で読み込んだ後のブロック位置と、理想的なブロック位置との関係を説明するための図である。また読み込んだ画像データの内側にブロック位置があり、画像データの端部を基準としてブロックが埋め込まれていない領域が存在している例を示している。
【0099】
図21(A)は、スキャナ101で読み込んだ後のブロック位置を示し、図21(B)は、理想的なブロック位置を示す。図21(A)は、前述の図17(A)に対応している。図21(A)では、画像データの左辺に横幅Wxaの領域が追加されている。図21(B)は図17(B)に対応し、図21(A)の画像データの左辺の横幅Wxaの領域を補正した結果が、横幅Wxbで示した領域として追加されている。横幅Wxaは4画素とする。頂点2100,2101の各座標は、(X,Y)=(0,0)、(X,Y)=(4,0)となる。Wb1〜Wb4,Wc1〜Wc4、及び、B11〜B54、C11〜C54に関する説明は、前述の図17の場合と同様であるため省略する。
【0100】
まず、ブロックが埋め込まれていない領域に隣接するブロックの位置をブロック位置検出部102で検出したブロック位置情報112から選択する。次に、その選択したブロック位置情報112の4頂点の座標に基づいて、ブロックが埋め込まれていない領域の座標を算出する。このブロックが埋め込まれていない領域の座標の算出方法は、隣接するブロック位置の4頂点の外分点処理により算出する。ブロックが埋め込まれていない領域の座標の算出方法について図22で説明する。
【0101】
図22(A)(B)は、選択した1つのブロックの座標位置と、そのブロックを補正した後の座標位置を説明するための図である。図22(A)は、選択した1つのブロック(B11)を示す、4頂点221,222,223,224を有している。図22(B)は、そのブロック(B11)を補正したブロック(C11)を示し、4頂点225,226,227,228を有している。図22(A)は、実際よりも横幅が2画素分狭く読み込まれたブロックとして示している。また頂点2100,2101,2110の座標は、図21と同様の座標位置とする。
【0102】
ブロック位置ズレ補正前の頂点2100を基準とし、位置ズレ補正後のブロックの頂点の座標を算出する場合、位置ズレ補正前のブロックの頂点2100と補正後の頂点2110の座標は同じになるので、頂点2110の座標は(X,Y)=(0,0)となる。次に、ズレ補正前のブロックの頂点2101の座標から補正後のブロックの頂点2110の座標を算出する場合、隣接するブロック情報の画像変換情報を利用する。ここで隣接するブロックはブロック(B11)であるため、ブロック(B11)をブロック(C11)に変換する場合、横幅が8画素から10画素となりブロックの横幅が4分の5倍に拡大されている。この拡大された情報を基に、ブロックが埋め込まれていない領域の補正後の座標を算出する。即ち図22(A)では、ブロックが埋め込まれていない領域の横幅Wxaを4画素としている。従って図22(B)の、算出した隣接するブロックの画像変換情報と同じ横幅を4分の5倍して、そのブロックの横幅を5画素とする。従って、横幅Wxbは5画素となる。これにより補正後の頂点225の座標は、頂点2110の座標に5画素を加算した(X,Y)=(5,0)となる。
【0103】
こうして、画像がブロックが埋め込まれていない領域を含む場合でも、その領域の位置を補正し、またその補正したブロックの位置を算出して画像を補正できる。
【0104】
以上説明したように第2実施形態によれば、ブロックが埋め込まれていない領域があっても、隣接する埋め込まれているブロック位置情報から、その領域のサイズを推測することによってブロック位置のズレ量を算出できる。従って、画像データのブロックが埋め込まれていない領域が歪んでいても、歪みの少ない画像データにすることができる。
【0105】
(他の実施形態)
以上、本発明の実施形態について詳述したが、本発明は、複数の機器から構成されるシステムに適用しても良いし、また一つの機器からなる装置に適用しても良い。
【0106】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムを読み出して実行することによっても達成され得る。その場合、プログラムの機能を有していれば、形態は、プログラムである必要はない。
【0107】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明のクレームでは、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
【0108】
プログラムを供給するための記録媒体としては、様々なものが使用できる。例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などである。
【0109】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページからハードディスク等の記録媒体にダウンロードすることによっても供給できる。その場合、ダウンロードされるのは、本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルであってもよい。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明のクレームに含まれるものである。
【0110】
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布する形態としても良い。その場合、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムが実行可能な形式でコンピュータにインストールされるようにする。
【0111】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される形態以外の形態でも実現可能である。例えば、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【0112】
更に、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれるようにしてもよい。この場合、その後で、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される。
【図面の簡単な説明】
【0113】
【図1】第1実施形態に係る画像処理システムの機能構成を説明するブロック図である。
【図2】本発明の実施形態に係る画像処理システムの構成を説明するブロック図である。
【図3】本発明の第1実施形態に係る画像処理システムにおける動作手順を説明するフローチャートである。
【図4】第1実施形態でスキャナで読み取られる印刷画像の一例を説明するための図である。
【図5】第1実施形態に係るブロック位置検出部の機能構成を示す機能ブロック図である。
【図6】第1実施形態に係る部分ブロック位置検出部における処理を説明する図である。
【図7】第1実施形態に係るブロック位置検出部における動作手順を説明するためのフローチャートである。
【図8】第1実施形態において、スキャナから出力された画像情報の領域内で部分ブロック位置検出領域が配置されていることを示す概要図である。
【図9】図7のステップS12の部分ブロック位置検出処理の手順を説明するためのフローチャートである。
【図10】図8の部分ブロック位置検出領域内の付加情報分離処理領域が、埋め込まれているブロックの位置(点線で示す)と一致していない状態を説明する図である。
【図11】図8の部分ブロック位置検出領域内の付加情報分離処理領域が、埋め込まれているブロックの位置(点線で示す)と一致している状態を説明する図である。
【図12】部分ブロック位置検出領域内で、1画素ごとずらしながら算出した部分ブロック位置検出領域分の符号判定量を説明する図である。
【図13】1画素ごとずらしながら算出した符号判定量を縦軸と横軸で加算した値をグラフに表した概要図である。
【図14】ブロック位置算出部に入力された画像情報とブロック位置情報との関係を示している概要図である。
【図15】画像情報で算出したブロック位置情報の結果を示す概要図である。
【図16】第1実施形態に係るブロック位置ズレ検出部によるブロック位置ズレの検出方法の手順を説明するためのフローチャートである。
【図17】理想的なブロック位置と画像読取装置で読み込んだ後のブロック位置を説明するための図で、図17(A)は、画像読取装置で読み込んだ後のブロック位置を示し、図17(B)は、理想的なブロック位置を示している。
【図18】選択した1つのブロックB11の座標位置と、その選択したブロックB11を補正したブロックC11の座標位置を説明するための図である。
【図19】2回目に選択したブロックB12の座標位置と、このブロックを補正した後のブロックC12の座標位置を説明するための図である。
【図20】第1実施形態に係るブロック位置ズレ補正部によるブロック位置ズレ補正処理の動作手順を説明するフローチャートである。
【図21】第2実施形態において、スキャナで読み込んだ後のブロック位置と、理想的なブロック位置との関係を説明するための図である。
【図22】選択した1つのブロックの座標位置と、そのブロックを補正した後の座標位置を説明するための図である。
【技術分野】
【0001】
本発明は、ブロック単位で特徴量が異なる複数のブロックを埋め込んだ画像を読み取って、その読み取った画像の歪みを補正する画像処理装置及びその方法に関する。
【背景技術】
【0002】
近年、複写機やスキャナ、デジタルカメラ、カメラ付き携帯電話等のように、画像を撮影或は読み取ることができる装置が増え、このような装置で得られた画像データを印刷する需要も増えてきている。また画像を読み取る性能も向上しているため、そのような装置で読み取った画像を印刷し、その印刷画像を、再度、画像読取装置で読み取る機会も増えてきている。更に、印刷した画像と読み込んだ画像が同じになるような忠実性が求められてきている。
【特許文献1】特開2002−171395号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
従来の画像読取装置は、イメージセンサの性能に頼るところが大きく、イメージセンサの性能によっては、読み取った画像が歪んだり伸びたり縮んだりした画像になってしまう問題があった。イメージセンサは、CCDイメージセンサやCMOSイメージセンサ等のイメージセンサで、画像を光の情報として読み取り、その光の情報を画像データに変換する。
【0004】
このようなイメージセンサの性能に依存するという問題を解決するための技術が特許文献1に記載されている。特許文献1では、原稿の画像データで、部分領域と思われる領域(予め決められた位置で、予め決められたサイズの領域)に含まれる画像(部分画像)を1つ取り出す。次に、部分画像と思われる画像(準部分画像)に高速フーリエ変換を施し、得られた周波数データからピーク点を求めて記憶する。次に準部分画像に含まれる夫々のピーク点の位相成分データを求めて記憶し、ピーク点の位置データとピーク点の理想位置データとの「ずれ」を補正する。次に準部分画像の最初のピクセルと部分画像の最初のピクセルとのずれを検出し、原稿の画像データから電子透かしデータを読み込む技術が提案されている。
【0005】
しかしながらこの従来の技術では、原稿の画像データから1つの部分画像を取り出し、画像データ全体に対しての傾きや拡大縮小を求めて補正することはできるが、局所的な歪みを補正することは難しい。例えば、一般的なスキャナにおいては、CCDイメージセンサを横方向に一列に並べ、一列に並べたイメージセンサを縦方向に1ラインずつ移動させながら原稿を読み取っている。ここでCCDが並んでいる方向を「主走査方向」、CCD或いは原稿が移動する方向を「副走査方向」とする。このようにして原稿をスキャナで読み込む際に、CCDの性能による主走査方向の歪み、CCD或いは原稿が移動する機構部分の性能による副走査方向の歪みが出てきてしまう。従って、画像読取装置で読み取られた原稿の画像データには、主走査方向の横の歪みと副走査方向の縦の歪みが組み合わさって局所的な歪みが出てきてしまう。上記従来の技術では、このような局所的な歪みを補正することは難しい。
【0006】
本発明の目的は上記従来技術の問題点を解決することにある。
【0007】
本願発明の一態様によれば、読み取られた原稿の画像データにおける歪みを補正することができる画像処理装置及びその方法を提供できる。
【課題を解決するための手段】
【0008】
上記目的を達成するために本発明の一態様に係る画像処理装置は以下のような構成を備える。即ち、
ブロック単位で特徴量が異なる複数のブロックを埋め込んだ画像を読み取って当該画像の画像データを出力する画像読取手段と、
前記画像読取手段から出力される前記画像データに埋め込まれている各ブロックの位置を検出するブロック位置検出手段と、
前記ブロック位置検出手段で検出した前記各ブロックの位置と、予め設定されている前記各ブロックの仕様とに基づいて、前記ブロック位置検出手段で検出した各ブロックの位置のズレ量を算出する位置ズレ算出手段と、
前記位置ズレ算出手段により算出した前記ズレ量に基づいて、前記画像読取手段から出力された前記画像データを補正する補正手段と、
を有することを特徴とする。
【0009】
上記目的を達成するために本発明の一態様に係る画像処理方法は以下のような工程を備える。即ち、
ブロック単位で特徴量が異なる複数のブロックを埋め込んだ画像を読み取って当該画像の画像データを出力する画像読取工程と、
前記画像読取工程から出力される前記画像データに埋め込まれている各ブロックの位置を検出するブロック位置検出工程と、
前記ブロック位置検出工程で検出した前記各ブロックの位置と、予め設定されている前記各ブロックの仕様とに基づいて、前記ブロック位置検出工程で検出した各ブロックの位置のズレ量を算出する位置ズレ算出工程と、
前記位置ズレ算出工程で算出した前記ズレ量に基づいて、前記画像読取工程から出力された前記画像データを補正する補正工程と、
を有することを特徴とする。
【発明の効果】
【0010】
本発明によれば、読み取られた原稿の画像データにおける歪みを補正することができる。
【発明を実施するための最良の形態】
【0011】
以下、添付図面を参照して本発明の好適な実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【0012】
本実施形態では、ブロック単位で特徴量が異なるブロックが埋め込まれた原稿を読み取る画像読取装置を有する画像処理システムの例で説明する。
【0013】
図2は、本発明の実施形態に係る画像処理システムの構成を説明するブロック図である。
【0014】
この画像処理システムは、画像処理装置200と、それに接続されたスキャナ101を有している。画像処理装置200において、システムバス201には、CPU202、ROM203、RAM204、ハードディスク等の二次記憶装置205が接続されている。またユーザインターフェースとして、表示部206、キーボード207、ポインティングデバイス208がCPU202等に接続されている。更に、画像読取用のスキャナ101がI/Oインターフェース209を介して接続されている。
【0015】
CPU202は、アプリケーション(以下の説明する処理を実行する機能を有する)の実行が指示されると二次記憶装置205にインストールされている対応するプログラムを読み出してRAM204にロードする。その後、そのプログラムを起動することにより、その指示された処理を実行することができる。
【0016】
[第1実施形態]
以下、本発明の第1実施形態に係る画像処理システムの概要について図を参照しながら説明する。
【0017】
図1は、第1実施形態に係る画像処理システムの機能構成を説明するブロック図である。
【0018】
この画像処理システムは、スキャナ101により印刷画像110を読み取り、そのスキャナ101から出力される画像情報111に対して処理を行うブロック位置検出部102、ブロック位置ズレ検出部103、及びブロック位置ズレ補正部104を有している。
【0019】
スキャナ101は、機械的な走査により、取り込む対象となる原稿(写真・文字・線画・立体物等)上の位置情報とその個所の色情報をデジタルデータに変換して画像情報111として出力する。本実施形態では、取り込む対象となる原稿は、付加情報が埋め込まれている画像を印刷した用紙(印刷画像110)とする。またスキャナ101から出力される画像情報111は、例えば、赤、緑、青の3種類の色からなるデータで、各色8ビットで1画素あたり24ビットの画像情報111とする。
【0020】
ブロック位置検出部102は、スキャナ101から出力される画像情報111に対して、ブロック毎に埋め込まれている多重化パターンを検出するために、ブロック単位でのテクスチャの周波数特性の解析処理を行う。そして、その周波数特性値に基づいて、印刷画像110に埋め込まれている複数のブロックの位置を検出し、各ブロックの位置を示すブロック位置情報112として出力する。ブロック位置ズレ検出部103は、予め設定してあるブロックの規則性(ブロックのサイズ、形状、配置等を規定する仕様)と、ブロック位置検出部102で検出したブロック位置情報112とを比較して、ブロックの位置ズレを検出する。第1実施形態におけるブロックの規則性は、例えばブロックが正方形、或は長方形であるものとする。このようなブロックの規則性に従って、ブロック位置の理想的な位置を求め、ブロック位置検出部102で検出した補正前のブロック位置と、補正後のブロック位置とを位置ズレ補正値113として出力する。ブロック位置ズレ補正部104は、ブロック位置検出部102で検出したブロック位置と理想的なブロック位置から、スキャナ101で読み込んだ画像情報111を補正する。スキャナ101で読み込んだ歪んだ状態のブロック位置と理想的なブロック位置がわかっているので、歪んだブロック位置の画像情報を理想的なブロック位置の画像情報に画像変換する。
【0021】
この第1実施形態では、予め設定してあるブロックの規則性は、N画素×N画素の正方ブロックを示している。しかし、埋め込まれているブロックに対してブロック位置の検出処理、ブロック位置ズレ算出処理が行えれば、どのような形状でも構わない。例えば、ブロック毎に埋め込まれている付加情報に予め設定してあるブロックの規則性を埋め込んでおき、復元化処理により埋め込まれている付加情報を復元し、その付加情報を利用してブロック位置ズレ検出処理を行うようにしても良い。
【0022】
図3は、本発明の第1実施形態に係る画像処理システムにおける動作手順を説明するフローチャートである。
【0023】
まずステップS1で、ブロック単位で付加情報が埋め込まれている印刷画像110をスキャナ101により読み取り画像情報111として出力する。次にステップS2に進み、ブロック位置検出部102がこの画像情報111を入力し、付加情報が埋め込まれている各ブロックの位置を検出する。そして、その検出したブロック位置情報112をブロック位置ズレ検出部103に出力する。次にステップS3に進み、ブロック位置ズレ検出部103は、そのブロック位置情報112からブロック毎の位置ズレを検出し、位置ズレ補正値113して出力する。次にステップS4に進み、ブロック位置ズレ補正部104は、画像情報111と、前述した位置ズレ補正値113とを入力し、位置ズレ補正値113に基づいて画像情報111を補正し、その補正した結果を補正画像114として出力する。
【0024】
尚、第1実施形態の画像読取装置では、印刷画像110を読み取る方法としてスキャナ101を使用しているが本発明はこれに限定されない。印刷画像110に埋め込まれている付加情報を抽出できる画質(解像度)で画像を読み取ることができる装置であれば、例えば、デジタルカメラやカメラ付き携帯電話、フィルムスキャナ等であっても良い。
【0025】
図4は、第1実施形態でスキャナ101で読み取られる印刷画像の一例を説明するための図である。
【0026】
印刷媒体(原稿)302は、付加情報の埋め込み領域301を含んでいる。そしてこの印刷媒体を、スキャナ読み取り範囲303で示される範囲で光学的に読み取ることにより印刷画像110が得られる。スキャナ読み取り範囲303は、印刷媒体302のサイズよりも大きく設定されている。付加情報埋め込み領域301は、付加情報を含むブロックが複数埋め込まれている領域である。ここで各ブロックは、N画素×N画素の正方ブロックであることを想定し、埋め込み領域301は幅(BW)及び高さ(BH)の領域としている。ブロック位置検出部102は、画像情報111を入力し、付加情報をブロック単位に分割して埋め込んだブロックの位置を検出する。
【0027】
このブロック位置検出部102によるブロック位置の検出方法は、まず、スキャナ101から出力される画像情報111に対し、1画素及び複数画素ずつ位置をずらしながら特徴量の解析処理を行う。この特徴量の解析処理は、まず、前述の規則性である、予め設定されているブロックのサイズに従って、そのブロックサイズ単位でのテクスチャの周波数特性の解析処理を行う。次にこの周波数特性の解析処理で算出される周波数特性量、及び、その周波数特性に基づいて、ブロックに埋め込まれている符号を判定する判定基準となる符号判定量を算出する。よって符号判定量はブロックの判定基準となる判定量となる。次に、これら周波数特性量と符号判定量とを用いてブロックの位置を検出する。ブロック位置検出部102の詳細については、以下で説明する。
【0028】
図5は、第1実施形態に係るブロック位置検出部102の機能構成を示す機能ブロック図である。
【0029】
このブロック位置検出部102は、入力端子501と部分ブロック位置検出部502と、検出ブロック位置保存部503、ブロック位置算出部504とを具備している。入力端子501を介して入力される画像情報111は、部分ブロック位置検出部502とブロック位置算出部504とに供給される。また部分ブロック位置検出部502には、前述の付加情報埋め込み領域301に対応する領域情報である検出領域情報505が入力されている。部分ブロック位置検出部502では、その検出領域情報510で指定された領域におけるブロック位置を検出し、ブロック位置情報511を出力する。
【0030】
図6は、この部分ブロック位置検出部502における処理を説明する図である。
【0031】
例えば、検出領域情報510が、画像情報111上の1つの部分ブロック位置検出領域601を設定しているとする。このときブロック位置検出部102は、この部分ブロック位置検出領域601に対してブロック位置の検出を行う。ブロック位置の検出方法は、部分ブロック位置検出領域601内でブロック602の位置を画素毎に領域601内でずらしながら、付加情報を分離するために画像上のテクスチャの周波数を解析する。そして周波数解析時の周波数特性値及び付加情報を分離する際の付加情報判定値を算出する。次に、周波数解析時の周波数特性値及び付加情報を分離する際の付加情報判定値から特徴抽出を行ってブロック位置を検出する。こうして算出した周波数解析時の周波数特性値及び付加情報を分離する際の付加情報判定値は、付加情報が埋め込まれているブロック位置で算出する場合と、埋め込まれていないブロック位置で算出する場合とで異なる判定値となる。また付加情報が埋め込まれているブロック位置で算出する場合と、埋め込まれているブロック位置がずれている個所で算出する場合とで異なる判定値となる。
【0032】
検出ブロック位置保存部503は、部分ブロック位置検出部502が検出したブロック位置情報511を入力してメモリ(不図示)に格納する。次に検出領域情報510により指定された領域分の処理が行われているか否かを判定する。ここで、その領域分の処理が完了していない場合は、再度、部分ブロック位置検出部502によるブロックの位置検出を行う。こうして検出したブロック位置情報511を入力してメモリに格納する。そしてその領域分の処理を完了した場合は、そのメモリに格納された1つ或は複数のブロック位置情報511をブロック位置情報512としてブロック位置算出部504に出力する。ブロック位置算出部504は、ブロック位置情報512から、付加情報が埋め込まれているブロックの位置を算出し、ブロック位置情報112として出力する。
【0033】
図7は、第1実施形態に係るブロック位置検出部102における動作手順を説明するためのフローチャートである。
【0034】
先ずステップS11で、部分ブロック位置検出部502は、検出領域情報510に基づいて、ブロックを検出する領域を設定する。次にステップS12で、部分ブロック位置の検出処理を行う。
【0035】
図8は、第1実施形態において、スキャナ101から出力された画像情報111の領域内で部分ブロック位置検出領域が配置されていることを示す概要図である。
【0036】
ここで部分ブロック位置検出領域は、画像情報111の領域内で、太線で囲ってある部分ブロック位置検出領域801〜806を示す。ここでは画像情報111の領域内に6つの部分ブロック位置検出領域801〜806が予め設定されている。
【0037】
図では、予め部分ブロック位置の検出領域を設定しているが、部分ブロック位置の検出領域の大きさ、位置、個数に関して特に限定しない。また、部分ブロック位置の検出領域は、予め設定されていてもよい。また画像情報111の入力情報に従って設定された領域でも、一度検出したブロック位置情報511から次の部分ブロック位置の検出領域を設定してもよく、特に限定はしない。例えば、検出領域情報510により、画像情報111の領域を4分割して、その4つの領域を部分ブロック位置検出領域としても良い。更に検出領域情報510の中に部分ブロック位置検出を行う処理間隔を予め設定しておき、処理間隔に従って、次の部分ブロック位置検出領域とした検出領域情報510により設定しても構わない。
【0038】
次にステップS12の部分ブロック位置検出処理では、部分ブロック位置検出領域内でブロック位置の検出を行う。
【0039】
図9は、図7のステップS12の部分ブロック位置検出処理の手順を説明するためのフローチャートである。
【0040】
まずステップS21で、付加情報の分離処理を行う際の基準となるブロック開始位置を設定する。次にステップS22に進み、ブロック開始位置からブロック単位で画像上のテクスチャの周波数解析を行って周波数特性量を算出する。そして、周波数解析結果の周波数特性量から、埋め込まれているブロック単位の符号判定を行う符号判定量を算出する。次にステップS23に進み、周波数特性量と符号判定量をメモリ(不図示)に記憶する。次にステップS24に進み、部分ブロック位置検出領域分の処理を終えたかどうかを判定する。終了していないときはステップS21に戻り、終了するとステップS25に進む。ステップS25では、ステップS22で求めた周波数特性量と、付加情報を分離するための符号判定量から、部分ブロック位置検出領域内のブロック位置を算出する。そして、その算出したブロック位置をブロック位置情報511として検出ブロック位置保存部503に出力する。
【0041】
この部分ブロック位置検出処理の詳細について以下の例で説明する。
【0042】
例えばステップS11で設定した部分ブロック位置検出領域が、横100×縦100画素からなる合計10000画素分の領域であるとして説明する。
【0043】
まずステップS21でブロック開始位置を設定する。ここでは、部分ブロック位置検出領域の10000画素分の内、1画素を選択し、その選択した1画素の位置をブロック開始位置として設定する。次にステップS22の付加情報分離処理では、ステップS21で設定したブロック開始位置からブロック単位で画像上のテクスチャの周波数解析を行う。そして、埋め込まれているブロック単位の符号判定を行う。更に、その周波数特性量に基づいて、埋め込まれているブロック単位の符号判定を行う符号判定量を算出する。こうして算出した周波数特性量及び符号判定量は、付加情報が埋め込まれているブロック位置で算出する場合と、埋め込まれているブロック位置がずれている個所で算出する場合とで判定量が異なることする。
【0044】
図10は、図8の部分ブロック位置検出領域801内の付加情報分離処理領域1001が、埋め込まれているブロックの位置(点線で示す)と一致していない状態を説明する図である。
【0045】
図11は、図8の部分ブロック位置検出領域801内の付加情報分離処理領域1101が、埋め込まれているブロックの位置(点線で示す)と一致している状態を説明する図である。
【0046】
例えば、図10と図11で判定量を求めた場合、図10で求めた符号判定量は小さく、図11で求めた符号判定量は大きくなる。
【0047】
次にステップS23では、ステップS22の付加情報分離処理で算出した、周波数特性量と符号判定量をメモリ(不図示)に格納する。尚、ここでは、周波数解析結果の周波数特性量と符号判定量とをメモリに格納しているが、特に限定することない。例えば、周波数特性量及び符号判定量のいずれか一方だけをメモリに格納しても構わない。
【0048】
次にステップS24に進み、部分ブロック位置検出領域10000画素に対する終了しているかを判断する。ステップS24で、この領域に対する処理が終了していると判定した場合は、ステップS25の部分ブロック位置算出処理に移行する。一方、この領域分の処理が終了していないと判定した場合は、再度ステップS21に戻って、ブロック開始位置設定から処理を行う。尚、ステップS24の終了判定は、例えば、10000画素分の周波数特性量及び符号判定量を算出し終えたかどうかで判定する。ステップS25の部分ブロック位置算出処理では、メモリに格納した10000画素分の符号判定量に基づいてブロック位置を算出する。
【0049】
この部分ブロック位置算出方法として、例えば、符号判定量からブロック位置を算出する方法を説明する。例えば、算出された符号判定量が高い方が、埋め込まれているブロック位置と一致している可能性が高い規則性がある場合、算出した符号判定量から高い値を算出することによってブロック位置を算出できる。従って、符号判定量から最大値検出を行えば、ブロック位置を算出できることになる。尚、算出された符号判定量が低い方が、埋め込まれているブロック位置と一致している可能性が高いとしても特に構わない。
【0050】
図12は、部分ブロック位置検出領域内で、1画素ごとずらしながら算出した部分ブロック位置検出領域分の符号判定量を説明する図である。
【0051】
図12の場合、符号判定量の「60」が最大値であるため、符号判定量が「60」となる位置が部分ブロック位置として判定される。図では、部分ブロック位置検出領域内で1画素ごとずらしながら算出した符号判定量を示している。いま、この検出領域の左上の座標(X,Y)=(0,0)を基準とした場合、座標(X,Y)=(3,3)の座標を部分ブロック位置と判定する。尚、これ以外にも例えば、1画素ごとずらしながら算出した符号判定量を縦軸と横軸で加算して、加算した値から、各縦軸、横軸から最大値を算出する方法も考えられる。
【0052】
図13は、1画素ごとずらしながら算出した符号判定量を縦軸と横軸で加算した値をグラフに表した概要図である。
【0053】
図13では、埋め込まれているブロックのサイズは6×6画素とすると、6画素毎に横軸、縦軸に最大値が現れると推測できる。従って、6画素毎に横軸、縦軸が最大になる箇所を検出できれば良いことになる。黒太枠で囲んである12×12個の符号判定量1301は、部分ブロック位置検出領域を12×12画素とした場合に、1画素毎に符号判定量を算出した値を示している。符号判定量1301の場合、符号判定量の横軸の加算値を網点の判定量の横軸合計値1302とし、符号判定量の縦軸の加算値を網点の判定量の横軸合計値1303としている。判定量の横軸合計値のグラフ1304は、判定量の横軸合計値1302をグラフに表わしたものである。また、判定量の縦軸合計値のグラフ1305は、判定量の縦軸合計値1303をグラフに表和したものである。これらグラフ1304,1305に示す通り、算出された判定量の縦軸、横軸の加算値に特徴が現れる。
【0054】
図13では、部分ブロック位置検出領域の左上の座標(X,Y)=(0,0)を基準とした場合、座標(X,Y)=(3,3)から、6画素間隔で符号判定量のピークが表れていることが分かる。よって、この座標位置が、付加情報が埋め込まれているブロックの位置であると推測できる。
【0055】
検出ブロック位置保存部503は、図7のステップS13の検出ブロック保存処理と、ステップS14の部分ブロック位置検出処理の終了判定処理を行う。ステップS13の検出ブロック保存処理では、部分ブロック位置検出部502で検出したブロック位置情報511をメモリ(不図示)に順次格納する。例えば、図8に示すように、6つの部分ブロック位置検出領域801〜806が設定された場合には、各領域で検出した6つのブロック位置情報511をメモリに確保する。
【0056】
次にステップS14の部分ブロック位置検出処理の終了判定処理では、入力された検出領域情報510の情報と、検出処理を完了したブロックとを比較する。そして、複数個のブロック位置検出領域を設定している場合は、複数個のブロック位置検出領域で部分ブロック位置検出部の処理が終了しているか否かを判定する。例えば図8に示すように、検出領域情報510により、6つの部分ブロック位置検出領域801〜806が設定されている場合は、これら6つの領域で位置検出処理が完了しているかを判定する。そして、完了していない場合は、ステップS21に戻る。そして、終了する場合には、メモリに確保した複数のブロック位置情報511をブロック位置情報512として出力する。
【0057】
ブロック位置算出部504は、ステップS15のブロック位置算出処理を行う。このブロック位置算出処理では、検出ブロック位置保存部503から出力されたブロック位置情報512に基づいて、画像情報111全体のブロック位置情報112を算出する。
【0058】
次に図14及び図15を参照して、本実施形態に係るブロック位置算出部504によるブロック位置算出方法を説明する。
【0059】
図14は、ブロック位置算出部504に入力された画像情報111とブロック位置情報512との関係を示している概要図である。
【0060】
図15は、画像情報111で算出したブロック位置情報112の結果を示す概要図である。
【0061】
図14では、画像情報111で検出したブロック位置情報512を黒丸で示している。例えば、ブロック位置情報512の黒丸をブロック位置情報1401,1402で表示している。これらブロック位置情報1401,1402からブロック位置情報112を算出する方法は、予め設定しているN画素×N画素の正方ブロックサイズを利用し、公知の内分点算出、外分点算出の公式を用いて算出する。
【0062】
例えば、N画素×N画素の正方ブロックサイズを200×200画素とし、ブロック位置情報512のブロック位置情報1401の座標を(X座標,Y座標)=(300,100)とする。またブロック位置情報1402の座標を(X座標,Y座標)=(704,100)とする。ここでブロック位置情報1401とブロック位置情報1402のX座標の間隔(704−300=)404を求める。いま正方ブロックサイズが200×200画素であるため、404/200=2.02で四捨五入すると「2」となる。これにより、ブロック位置情報1401とブロック位置情報1402のX座標の間隔には、2つのブロックがあると推測できる。そこで、ブロック位置情報1401とブロック位置情報1402の内分点を求め、(X座標,Y座標)=(502,100)にブロックがあると推定する。またブロック位置情報1401とブロック位置情報1402の外分点を求め、(X座標,Y座標)=(98,100)にもブロックがあるとする。従って、ブロック位置情報112は、ブロック位置情報512に基づく内分、外分処理を実行して得られた画像情報111に存在するブロック位置の全ての位置情報となる。
【0063】
図15では、検出したブロック位置情報112の隣接する座標同士を点線で接続している。点線に囲まれた1ブロックが、N×N画素が埋め込まれているブロックであると想定している。また点線が重なり合っている格子点が、各ブロックの位置情報に相当し、各ブロック位置情報が検出ブロック位置保存部503のメモリ(不図示)に格納されている。このメモリに格納されている各ブロックの位置情報は、例えば、主走査方向に順次格納され、主走査方向に検出したブロック位置がなければ、次に副走査方向にずらして、主走査方向に順次格納する。こうして全てのブロックの位置情報がメモリに格納されると、そのメモリに格納されている全てのブロック位置情報と主走査方向のブロック数と副走査ブロック数と共にブロック位置情報112として出力する。以上が、ブロック位置検出部102の説明である。
【0064】
ブロック位置ズレ検出部103は、ブロック位置検出部102で検出したブロック位置情報112を入力し、各ブロックの位置ズレを検出する。そして、検出した各ブロックの位置ズレを補正するための情報を位置ズレ補正値113として出力する。
【0065】
図16は、第1実施形態に係るブロック位置ズレ検出部103によるブロック位置ズレの検出方法の手順を説明するためのフローチャートである。
【0066】
まずステップS31で、入力したブロック位置情報112から1つのブロック位置を選択する。この1つのブロック位置を選択する順序は、ブロック位置情報112のブロック位置が埋め込まれている順番とする。次にステップS32に進み、ステップS31で選択した1つのブロックに対し、予め設定したブロックの規則性を考慮して、ブロック位置を補正した後のブロック位置を算出する。次にステップS33に進み、補正前のブロック位置と、算出した補正後のブロック位置をメモリ(不図示)に保存する。次にステップS34で、入力したブロック位置情報112の全てに対してブロック位置ズレを算出したかどうかを判定する。ここで全てのブロックのブロック位置の位置ズレを算出していない場合はステップS31に進み、ブロック位置を次のブロック位置に移動して再度ステップS31〜S34を繰り返す。再度ステップS31〜S34を行う場合には、以前に算出したメモリに保存してある補正後のブロック位置を考慮する。こうして全てのブロック位置を算出するとステップS35に進み、メモリに保存した全ての補正前のブロック位置と、補正後のブロック位置とを位置ズレ補正値113として出力する。
【0067】
次に、画像読取装置で読み込んだ画像が局所的に横幅が歪んでいる場合を例にして図17〜図19を参照して、ブロック位置ズレ検出方法について説明する。
【0068】
予め設定されたブロックの規則性として、埋め込んだブロックは正方形で、印刷解像度600dpiで印刷した場合に1つのブロックサイズは10×10画素とする。ブロック位置検出部102に検出に使用した画像情報111は、読込解像度600dpiで読み取っている画像として説明する。
【0069】
図17(A)(B)は、理想的なブロック位置と画像読取装置で読み込んだ後のブロック位置を説明するための図である。図17(A)は、画像読取装置で読み込んだ後のブロック位置を示し、図17(B)は、理想的なブロック位置を示す。
【0070】
図17(A)において、B11〜B14,B21〜B24,B31〜B34,B41〜B44,B51〜B54は、画像読取装置で読み込んだ後のブロックの各ブロックを示している。また図17(B)のC11〜C14,C21〜C24,C31〜C34,C41〜C44,C51〜C54は、理想的なブロックの各ブロックを示す。即ち、図17(A)を補正した結果が図17(B)となる。
【0071】
図17(A)と図17(B)とを比較すると、画像読取装置で読み込んだブロックの横幅が理想的なブロックの横幅と比べて局所的に狭くなる部分と広くなる部分が発生している。画像読取装置で読み込んだ後のブロックの横幅Wb1,Wb2,Wb3,Wb4に対して、理想的なブロックの横幅はWc1,Wc2,Wc3,Wc4となっている。ここでWb2はWc2と同じ幅で、Wb4はWc4と同じ幅である。またWb1は、Wc1より幅が狭くなっており、Wb3はWc3より幅が広くなっている。位置1701は、ブロック位置検出部102で検出したブロック位置情報112の中で、最も左上に検出されたブロックの左上の座標位置を示す。ここで、位置1701の座標を(X,Y)=(0,0)とする。
【0072】
図18(A)(B)は、選択した1つのブロックB11の座標位置と、その選択したブロックB11を補正したブロックC11の座標位置を説明するための図である。図18(A)において、ブロックB11の4頂点181,182,183,184を示している。また図18(B)は、補正後のブロックC11を示し、4頂点181,182,183,184に対応する補正後の4頂点185,186,187,188が示されている。図18(A)では、横幅が2画素分狭くなって読み込まれたブロックB11として示されている。
【0073】
まず図17(A)の左上のブロック(B11)を選択する。このブロックB11が図18(A)で表わされており、頂点181の座標は(X,Y)=(0,0)である。図18(A)の横幅(W18a)を8画素とし、縦幅(W18b)を10画素として説明する。頂点181と182との間隔(横幅)と、頂点183と184との間隔(横幅)は(W18a)で示され、頂点181と183との間隔(縦幅)と頂点182と184との間隔(縦幅)は(W18b)である。これにより頂点182の座標は(X,Y)=(8,0)、頂点183の座標は(X,Y)=(0,10)、そして頂点184の座標は(X,Y)=(8,10)である。
【0074】
次に、頂点181の座標(X,Y)=(0,0)を基準とし、ブロックの規則性に従って、補正後のブロックC11の座標を算出する。ここで、ブロックの規則性が、ブロックが正方形で1つのブロックサイズは10×10画素としている。従って、頂点182の補正後の座標は、(X,Y)=(10,0)となる。頂点183の補正後の座標位置は、(X,Y)=(0,10)となる。また頂点184の補正後の座標は、(X,Y)=(10,10)となる。従って、図18(B)の頂点185,186,187,188のそれぞれの座標は、(0,0)、(10,0)、(0,10)、(10,10)となる。即ち、図18(B)の横幅(W18b)縦幅(H18b)は共に「10」となる。これら補正前のブロックの座標位置と、補正後のブロックの座標位置とはともに、ブロック位置ズレ検出部103のメモリに保存される。このようにして、補正前のブロックの相対位置と、そのブロックの規則性であるブロックサイズとの差分が、ブロック位置のズレ量として検出されることになる。
【0075】
図17(A)(B)の例では、この検出領域内に20個のブロックがあるので、ブロック位置ズレ検出部103は、これら20個のブロック位置に対してブロック位置ズレ検出を行う。従って、2回目のブロック位置でブロック位置ズレを検出することになる。例えば、2回目のブロック位置検出を左上のブロックから1つ右側のブロック(B12)を選択する。
【0076】
図19(A)(B)は、2回目に選択したブロックB12の座標位置と、このブロックを補正した後のブロックC12の位置を説明するための図である。
【0077】
図19(A)は、選択したブロックB12を示し、4頂点191,192,193,194を有している。図19(B)は、ブロックB12を補正したブロックC12を示し、4頂点195,196,197,198を有している。ここで、この選択されたブロックB12は歪んでいないブロックとして説明する。
【0078】
頂点191の座標は、図18(A)の頂点182の座標に相当するので、頂点191の座標は(X,Y)=(8,0)である。また頂点192,193,194の各座標は、ブロックB12が歪んでいないので、それぞれ(X,Y)=(18,0)、(X,Y)=(8,10)、(X,Y)=(18,10)となる。
【0079】
次に、1つめのブロックと同様に、ブロックの規則性に従って補正後のブロックC12の座標位置を算出する。しかし、頂点191の座標に相当する補正後のブロック座標位置は、ブロックB11の位置ズレ検出で既にずれて異なる座標となっている。そこで、メモリに保存している補正後のブロックC11の座標を読み出す。そして、その読み出した補正後のブロックC11の座標から、ブロックB12の補正後のブロックC12の座標を算出する。ここで図18(B)の頂点186,188の座標と、図19(B)の頂点195,197の座標が同じ位置となる。従って、ブロックC12の頂点195の座標は、頂点186の座標と同じ(X,Y)=(10,0)である。また頂点197の座標は(X,Y)=(10,10)である。そしてブロックB12は歪んでいないので、頂点196の座標は(X,Y)=(20,0)、頂点198の座標は(X,Y)=(20,10)となる。こうして算出した補正後のブロックの座標位置をメモリに保存する。
【0080】
ここでもメモリに保存する際には、ブロック位置検出部102でブロック位置をメモリに保存した順に、その補正後のブロック座標位置もメモリに保存する。例えば、主走査方向に順次ブロックの座標位置を格納していき、主走査方向に検出するブロックがなくなると、次に副走査方向にずらして、また主走査方向に順次格納していく。そして、ブロック位置情報112に含まれる全てのブロックに対する位置ズレ検出を完了すると、メモリに保存した全ての補正前のブロック座標位置と、算出した補正後のブロック座標位置を位置ズレ補正値113として出力する。尚、全てのブロックに対する処理を行ったかどうかの判定は、ブロック位置検出部102で検出した主走査方向のブロック数と副走査方向のブロック数が、検出した全てのブロック数になったかどうかにより判定する。
【0081】
こうしてブロック位置ズレ補正部104は、ブロック位置ズレ検出部103から供給される位置ズレ補正値113に基づいて、画像情報111に補正処理を施した補正画像114を出力する。
【0082】
図20は、第1実施形態に係るブロック位置ズレ補正部104によるブロック位置ズレ補正処理の動作手順を説明するフローチャートである。
【0083】
まずステップS41で、入力した位置ズレ補正値113から1つのブロック位置を選択する。この1つのブロック位置を選択する順序は、ブロック位置情報112のブロック位置が埋め込まれている順番とする。次にステップS42に進み、スキャナ101で読み取った画像情報111に対し、ステップS41で選択したブロックの補正前後のブロック位置情報から、任意の画像変換処理を行う。この任意の画像変換処理は、例えば、補正前より補正後の方の画像サイズが大きくなる場合には拡大処理を、画像サイズが小さくなる場合には縮小処理を、画像が傾いている場合には回転処理を、座標が移動している場合には座標変換処理を行う。拡大処理や縮小処理等の画像処理変換処理に関しては、最近隣補間や、線形補間、アフィン変換など公知の方法であれば特に限定しない。
【0084】
次にステップS43に進み、その選択したブロックに対する画像変換処理後の画像データをメモリ(不図示)に保存する。ここで画像データをメモリに保存する際には、補正後の隣接するブロックを結合してメモリに保存する。こうして最終的には、画像情報111全体を補正した画像データがメモリに保存される。次にステップS44に進み、位置ズレ補正値113に含まれる全てのブロックに対してブロック位置ズレ補正処理を行ったかどうかを判定する。全てのブロックに対してブロック位置ズレ補正処理を行っていなければ、位置ズレを補正するためのブロックをずらしてステップS41に戻り、前述の処理を繰り返す。こうして全てのブロックに対する処理が完了するとステップS45に進み、そのメモリに保存されている画像変換後の全ての画像データを補正画像114として出力して、この処理を終了する。
【0085】
次に、ブロック位置ズレ補正方法について、ブロック位置ズレ検出部103と同様で、画像読取装置で読み込んだ画像が局所的に横幅が歪んでいる場合を例にして図17と図18、図19を参照して説明する。
【0086】
まず図17(A)の左上の1ブロック(B11)を選択する。この選択されたブロックは、ブロック位置ズレ検出部103で説明した内容と同様に図18(A)に示す。
【0087】
図18(A)(B)は、ブロック位置ズレ検出部103で説明した内容と同様に、横幅が2画素分狭くなって読み込まれたブロックとして説明する。ブロック位置ズレ補正前の座標として、頂点181の座標(X,Y)=(0,0)、頂点182の座標(X,Y)=(8,0)、頂点183の座標(X,Y)=(0,10)、頂点184の座標(X,Y)=(8,10)となる。位置ズレ補正を行った後の図18(B)では、頂点185の座標(X,Y)=(0,0)、頂点186の座標(X,Y)=(10,0)、頂点187の座標(X,Y)=(0,10)、頂点188の座標(X,Y)=(10,10)となている。
【0088】
次に、図18(A)の補正前のブロックB11の左上頂点181の座標(X,Y)=(0,0)を基準として横×縦(8×10画素)の画像データを、図18(B)に示す補正後の横×縦(10×10画素)の画像データに変換する。図18(A)(B)のブロックの画像変換処理は、補正後の画素数が大きいので拡大処理を行う。拡大処理は、公知である最近隣補間、線形補間等いずれの方法を用いてもよい。その選択したブロックB11の画像変換処理後のブロックC11の画像データをメモリに保存する。この処理を他のブロックに対しても実行する。
【0089】
次に、ブロック位置ズレ検出部103で説明した内容と同様に、2回目に選択したブロックは歪んでいないブロックの場合を図19(A)(B)を参照して説明する。
【0090】
図19(A)(B)において、頂点191の座標(X,Y)=(8,0)、頂点192の座標(X,Y)=(18,0)、頂点193の座標(X,Y)=(8,10)、頂点194の座標(X,Y)=(18,10)である。
【0091】
ここで補正前のブロックB12の左上頂点191の座標(X,Y)=(8,0)を基準として10画素×10画素の画像データを、補正後の10画素×10画素の画像データに変換する。図19のブロックの画像変換処理は、補正前後で画素数は変わらないので拡大縮小処理等は行わない。しかし、1回目に選択した補正後の画像データの座標は既にずれて異なる座標となっているため、メモリに保存してある1回目に画像変換した画像データの座標位置を基準にする。1回目と2回目に選択したブロックの補正後の座標位置は、図18(B)の頂点186,188の座標と、図19(B)の頂点195,197の座標が同じであることを示す。従って、補正前のブロックの左上頂点191の座標(X,Y)=(8,0)と、ブロックC12の左上頂点195の座標(X,Y)=(10,0)とを基準として10画素×10画素の画像データに変換する。こうして変換されたブロックの画像データをメモリに保存する。メモリに保存する際には、ブロック位置検出部102でブロック位置をメモリに保存した順にメモリに保存する。例えば、主走査方向に順次格納され、主走査方向に検出したブロック位置がなければ、次に、副走査方向にずらして、また、主走査方向に順次格納する。画像データをメモリに保存する際には、補正後の隣接するブロックを画像結合してメモリに保存する。このような処理を残りのブロックに対して実行する。こうして全てのブロック位置でブロック位置ズレ補正を行った後、メモリに保存した全ての画像変換処理後の画像データを補正画像114として出力する。
【0092】
以上説明した第1実施形態では、説明を簡略化するために画像読取装置で読み込んだ画像が局所的に横方向が歪んでいる場合で説明した。しかしながら、その読み込んだ画像の局所的な歪みが縦方向で歪んでいても、前述の実施形態と同様にして、その歪みを補正することができる。
【0093】
また上記説明では、読み込んだ画像に傾きがなく、局所的な歪みを持つブロックの向き合う辺の大きさも同じである場合で説明している。しかし、読み込んだ画像に傾きがあり、歪んでいるブロックの向き合う辺の大きさは同じでない場合であっても、上述したブロック位置ズレ補正処理により、傾きを画像変換できるアフィン変換等の公知の画像変換技術を採用することにより補正できる。
【0094】
以上説明したように第1実施形態に係る画像処理装置及び方法によれば、読み込んだ画像が局所的に歪んでいても、埋め込まれているブロックからブロック位置を検出し補正することで、歪んで読み込まれた原稿を歪みの少ない画像データにすることができる。
【0095】
[第2実施形態]
次に本発明の第2実施形態に係る画像処理装置を説明する。尚、この画像処理の構成は前述した第1実施形態の画像処理装置の構成と同じであるため、その説明を省略する。
【0096】
前述の第1実施形態では、付加情報が埋め込まれているブロック位置を検出し、その検出したブロック位置に対してブロックの位置ズレを検出してズレ補正を行い、そのズレ補正に従ってブロック内の画像情報を補正して歪みを補正していた。しかし、画像上に、付加情報が埋め込まれているブロックが無い領域が存在する場合、その領域の画像データを補正することができない。この第2実施形態は、このような事情を考慮してなされたものである。以下、第2実施形態に係る画像読取装置について説明する。
【0097】
第2実施形態におけるブロック位置ズレ検出方法は、ブロック位置検出部102で検出したブロック位置情報112を利用して、ブロックが埋め込まれていない領域の補正位置の推定を行う。第2実施形態に係るブロック位置ズレ検出方法を、スキャナ101で読み込んだ画像が局所的に横方向に歪んでいる場合を例にして説明する。
【0098】
図21(A)(B)は、第2実施形態において、スキャナ101で読み込んだ後のブロック位置と、理想的なブロック位置との関係を説明するための図である。また読み込んだ画像データの内側にブロック位置があり、画像データの端部を基準としてブロックが埋め込まれていない領域が存在している例を示している。
【0099】
図21(A)は、スキャナ101で読み込んだ後のブロック位置を示し、図21(B)は、理想的なブロック位置を示す。図21(A)は、前述の図17(A)に対応している。図21(A)では、画像データの左辺に横幅Wxaの領域が追加されている。図21(B)は図17(B)に対応し、図21(A)の画像データの左辺の横幅Wxaの領域を補正した結果が、横幅Wxbで示した領域として追加されている。横幅Wxaは4画素とする。頂点2100,2101の各座標は、(X,Y)=(0,0)、(X,Y)=(4,0)となる。Wb1〜Wb4,Wc1〜Wc4、及び、B11〜B54、C11〜C54に関する説明は、前述の図17の場合と同様であるため省略する。
【0100】
まず、ブロックが埋め込まれていない領域に隣接するブロックの位置をブロック位置検出部102で検出したブロック位置情報112から選択する。次に、その選択したブロック位置情報112の4頂点の座標に基づいて、ブロックが埋め込まれていない領域の座標を算出する。このブロックが埋め込まれていない領域の座標の算出方法は、隣接するブロック位置の4頂点の外分点処理により算出する。ブロックが埋め込まれていない領域の座標の算出方法について図22で説明する。
【0101】
図22(A)(B)は、選択した1つのブロックの座標位置と、そのブロックを補正した後の座標位置を説明するための図である。図22(A)は、選択した1つのブロック(B11)を示す、4頂点221,222,223,224を有している。図22(B)は、そのブロック(B11)を補正したブロック(C11)を示し、4頂点225,226,227,228を有している。図22(A)は、実際よりも横幅が2画素分狭く読み込まれたブロックとして示している。また頂点2100,2101,2110の座標は、図21と同様の座標位置とする。
【0102】
ブロック位置ズレ補正前の頂点2100を基準とし、位置ズレ補正後のブロックの頂点の座標を算出する場合、位置ズレ補正前のブロックの頂点2100と補正後の頂点2110の座標は同じになるので、頂点2110の座標は(X,Y)=(0,0)となる。次に、ズレ補正前のブロックの頂点2101の座標から補正後のブロックの頂点2110の座標を算出する場合、隣接するブロック情報の画像変換情報を利用する。ここで隣接するブロックはブロック(B11)であるため、ブロック(B11)をブロック(C11)に変換する場合、横幅が8画素から10画素となりブロックの横幅が4分の5倍に拡大されている。この拡大された情報を基に、ブロックが埋め込まれていない領域の補正後の座標を算出する。即ち図22(A)では、ブロックが埋め込まれていない領域の横幅Wxaを4画素としている。従って図22(B)の、算出した隣接するブロックの画像変換情報と同じ横幅を4分の5倍して、そのブロックの横幅を5画素とする。従って、横幅Wxbは5画素となる。これにより補正後の頂点225の座標は、頂点2110の座標に5画素を加算した(X,Y)=(5,0)となる。
【0103】
こうして、画像がブロックが埋め込まれていない領域を含む場合でも、その領域の位置を補正し、またその補正したブロックの位置を算出して画像を補正できる。
【0104】
以上説明したように第2実施形態によれば、ブロックが埋め込まれていない領域があっても、隣接する埋め込まれているブロック位置情報から、その領域のサイズを推測することによってブロック位置のズレ量を算出できる。従って、画像データのブロックが埋め込まれていない領域が歪んでいても、歪みの少ない画像データにすることができる。
【0105】
(他の実施形態)
以上、本発明の実施形態について詳述したが、本発明は、複数の機器から構成されるシステムに適用しても良いし、また一つの機器からなる装置に適用しても良い。
【0106】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムを読み出して実行することによっても達成され得る。その場合、プログラムの機能を有していれば、形態は、プログラムである必要はない。
【0107】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明のクレームでは、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
【0108】
プログラムを供給するための記録媒体としては、様々なものが使用できる。例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などである。
【0109】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページからハードディスク等の記録媒体にダウンロードすることによっても供給できる。その場合、ダウンロードされるのは、本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルであってもよい。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明のクレームに含まれるものである。
【0110】
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布する形態としても良い。その場合、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムが実行可能な形式でコンピュータにインストールされるようにする。
【0111】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される形態以外の形態でも実現可能である。例えば、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【0112】
更に、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれるようにしてもよい。この場合、その後で、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される。
【図面の簡単な説明】
【0113】
【図1】第1実施形態に係る画像処理システムの機能構成を説明するブロック図である。
【図2】本発明の実施形態に係る画像処理システムの構成を説明するブロック図である。
【図3】本発明の第1実施形態に係る画像処理システムにおける動作手順を説明するフローチャートである。
【図4】第1実施形態でスキャナで読み取られる印刷画像の一例を説明するための図である。
【図5】第1実施形態に係るブロック位置検出部の機能構成を示す機能ブロック図である。
【図6】第1実施形態に係る部分ブロック位置検出部における処理を説明する図である。
【図7】第1実施形態に係るブロック位置検出部における動作手順を説明するためのフローチャートである。
【図8】第1実施形態において、スキャナから出力された画像情報の領域内で部分ブロック位置検出領域が配置されていることを示す概要図である。
【図9】図7のステップS12の部分ブロック位置検出処理の手順を説明するためのフローチャートである。
【図10】図8の部分ブロック位置検出領域内の付加情報分離処理領域が、埋め込まれているブロックの位置(点線で示す)と一致していない状態を説明する図である。
【図11】図8の部分ブロック位置検出領域内の付加情報分離処理領域が、埋め込まれているブロックの位置(点線で示す)と一致している状態を説明する図である。
【図12】部分ブロック位置検出領域内で、1画素ごとずらしながら算出した部分ブロック位置検出領域分の符号判定量を説明する図である。
【図13】1画素ごとずらしながら算出した符号判定量を縦軸と横軸で加算した値をグラフに表した概要図である。
【図14】ブロック位置算出部に入力された画像情報とブロック位置情報との関係を示している概要図である。
【図15】画像情報で算出したブロック位置情報の結果を示す概要図である。
【図16】第1実施形態に係るブロック位置ズレ検出部によるブロック位置ズレの検出方法の手順を説明するためのフローチャートである。
【図17】理想的なブロック位置と画像読取装置で読み込んだ後のブロック位置を説明するための図で、図17(A)は、画像読取装置で読み込んだ後のブロック位置を示し、図17(B)は、理想的なブロック位置を示している。
【図18】選択した1つのブロックB11の座標位置と、その選択したブロックB11を補正したブロックC11の座標位置を説明するための図である。
【図19】2回目に選択したブロックB12の座標位置と、このブロックを補正した後のブロックC12の座標位置を説明するための図である。
【図20】第1実施形態に係るブロック位置ズレ補正部によるブロック位置ズレ補正処理の動作手順を説明するフローチャートである。
【図21】第2実施形態において、スキャナで読み込んだ後のブロック位置と、理想的なブロック位置との関係を説明するための図である。
【図22】選択した1つのブロックの座標位置と、そのブロックを補正した後の座標位置を説明するための図である。
【特許請求の範囲】
【請求項1】
ブロック単位で特徴量が異なる複数のブロックを埋め込んだ画像を読み取って当該画像の画像データを出力する画像読取手段と、
前記画像読取手段から出力される前記画像データに埋め込まれている各ブロックの位置を検出するブロック位置検出手段と、
前記ブロック位置検出手段で検出した前記各ブロックの位置と、予め設定されている前記各ブロックの仕様とに基づいて、前記ブロック位置検出手段で検出した各ブロックの位置のズレ量を算出する位置ズレ算出手段と、
前記位置ズレ算出手段により算出した前記ズレ量に基づいて、前記画像読取手段から出力された前記画像データを補正する補正手段と、
を有することを特徴とする画像処理装置。
【請求項2】
前記ブロック位置検出手段は、前記各ブロックの仕様に基づくブロック単位で前記画像データの周波数特性と、当該周波数特性に基づくブロックの判定基準となる判定量とを求め、前記周波数特性及び判定量に基づいてブロックの位置を検出することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記ブロックの仕様は、各ブロックに含まれる画素数、ブロックサイズ、及びその形状を規定していることを特徴とする請求項1又は2に記載の画像処理装置。
【請求項4】
前記ブロック位置検出手段により各ブロックの位置を検出する前記画像の範囲を指定する検出領域を指定する指定手段を更に有することを特徴とする請求項1乃至3のいずれか1項に記載の画像処理装置。
【請求項5】
前記位置ズレ算出手段は、前記ブロック位置検出手段で検出した前記各ブロックの相対位置と、前記仕様で規定された前記ブロックサイズとの差分を前記ズレ量として算出することを特徴とする請求項1に記載の画像処理装置。
【請求項6】
前記補正手段は、前記ズレ量に基づいて前記各ブロックの4頂点の座標を補正することにより前記画像データを補正することを特徴とする請求項1に記載の画像処理装置。
【請求項7】
ブロック単位で特徴量が異なる複数のブロックを埋め込んだ画像を読み取って当該画像の画像データを出力する画像読取工程と、
前記画像読取工程から出力される前記画像データに埋め込まれている各ブロックの位置を検出するブロック位置検出工程と、
前記ブロック位置検出工程で検出した前記各ブロックの位置と、予め設定されている前記各ブロックの仕様とに基づいて、前記ブロック位置検出工程で検出した各ブロックの位置のズレ量を算出する位置ズレ算出工程と、
前記位置ズレ算出工程で算出した前記ズレ量に基づいて、前記画像読取工程から出力された前記画像データを補正する補正工程と、
を有することを特徴とする画像処理方法。
【請求項8】
前記ブロック位置検出工程は、前記各ブロックの仕様に基づくブロック単位で前記画像データの周波数特性と、当該周波数特性に基づくブロックの判定基準となる判定量とを求め、前記周波数特性及び判定量に基づいてブロックの位置を検出することを特徴とする請求項7に記載の画像処理方法。
【請求項9】
前記ブロックの仕様は、各ブロックに含まれる画素数、ブロックサイズ、及びその形状を規定していることを特徴とする請求項7又は8に記載の画像処理方法。
【請求項10】
前記ブロック位置検出工程により各ブロックの位置を検出する前記画像の範囲を指定する検出領域を指定する指定工程を更に有することを特徴とする請求項7乃至9のいずれか1項に記載の画像処理方法。
【請求項11】
前記位置ズレ算出工程は、前記ブロック位置検出工程で検出した前記各ブロックの相対位置と、前記仕様で規定された前記ブロックサイズとの差分を前記ズレ量として算出することを特徴とする請求項7に記載の画像処理方法。
【請求項12】
前記補正工程は、前記ズレ量に基づいて前記各ブロックの4頂点の座標を補正することにより前記画像データを補正することを特徴とする請求項7に記載の画像処理方法。
【請求項13】
請求項7乃至12に記載の画像処理方法をコンピュータに実行させるプログラムを記憶したコンピュータにより読み取り可能な記憶媒体。
【請求項1】
ブロック単位で特徴量が異なる複数のブロックを埋め込んだ画像を読み取って当該画像の画像データを出力する画像読取手段と、
前記画像読取手段から出力される前記画像データに埋め込まれている各ブロックの位置を検出するブロック位置検出手段と、
前記ブロック位置検出手段で検出した前記各ブロックの位置と、予め設定されている前記各ブロックの仕様とに基づいて、前記ブロック位置検出手段で検出した各ブロックの位置のズレ量を算出する位置ズレ算出手段と、
前記位置ズレ算出手段により算出した前記ズレ量に基づいて、前記画像読取手段から出力された前記画像データを補正する補正手段と、
を有することを特徴とする画像処理装置。
【請求項2】
前記ブロック位置検出手段は、前記各ブロックの仕様に基づくブロック単位で前記画像データの周波数特性と、当該周波数特性に基づくブロックの判定基準となる判定量とを求め、前記周波数特性及び判定量に基づいてブロックの位置を検出することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記ブロックの仕様は、各ブロックに含まれる画素数、ブロックサイズ、及びその形状を規定していることを特徴とする請求項1又は2に記載の画像処理装置。
【請求項4】
前記ブロック位置検出手段により各ブロックの位置を検出する前記画像の範囲を指定する検出領域を指定する指定手段を更に有することを特徴とする請求項1乃至3のいずれか1項に記載の画像処理装置。
【請求項5】
前記位置ズレ算出手段は、前記ブロック位置検出手段で検出した前記各ブロックの相対位置と、前記仕様で規定された前記ブロックサイズとの差分を前記ズレ量として算出することを特徴とする請求項1に記載の画像処理装置。
【請求項6】
前記補正手段は、前記ズレ量に基づいて前記各ブロックの4頂点の座標を補正することにより前記画像データを補正することを特徴とする請求項1に記載の画像処理装置。
【請求項7】
ブロック単位で特徴量が異なる複数のブロックを埋め込んだ画像を読み取って当該画像の画像データを出力する画像読取工程と、
前記画像読取工程から出力される前記画像データに埋め込まれている各ブロックの位置を検出するブロック位置検出工程と、
前記ブロック位置検出工程で検出した前記各ブロックの位置と、予め設定されている前記各ブロックの仕様とに基づいて、前記ブロック位置検出工程で検出した各ブロックの位置のズレ量を算出する位置ズレ算出工程と、
前記位置ズレ算出工程で算出した前記ズレ量に基づいて、前記画像読取工程から出力された前記画像データを補正する補正工程と、
を有することを特徴とする画像処理方法。
【請求項8】
前記ブロック位置検出工程は、前記各ブロックの仕様に基づくブロック単位で前記画像データの周波数特性と、当該周波数特性に基づくブロックの判定基準となる判定量とを求め、前記周波数特性及び判定量に基づいてブロックの位置を検出することを特徴とする請求項7に記載の画像処理方法。
【請求項9】
前記ブロックの仕様は、各ブロックに含まれる画素数、ブロックサイズ、及びその形状を規定していることを特徴とする請求項7又は8に記載の画像処理方法。
【請求項10】
前記ブロック位置検出工程により各ブロックの位置を検出する前記画像の範囲を指定する検出領域を指定する指定工程を更に有することを特徴とする請求項7乃至9のいずれか1項に記載の画像処理方法。
【請求項11】
前記位置ズレ算出工程は、前記ブロック位置検出工程で検出した前記各ブロックの相対位置と、前記仕様で規定された前記ブロックサイズとの差分を前記ズレ量として算出することを特徴とする請求項7に記載の画像処理方法。
【請求項12】
前記補正工程は、前記ズレ量に基づいて前記各ブロックの4頂点の座標を補正することにより前記画像データを補正することを特徴とする請求項7に記載の画像処理方法。
【請求項13】
請求項7乃至12に記載の画像処理方法をコンピュータに実行させるプログラムを記憶したコンピュータにより読み取り可能な記憶媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【公開番号】特開2009−265925(P2009−265925A)
【公開日】平成21年11月12日(2009.11.12)
【国際特許分類】
【出願番号】特願2008−114416(P2008−114416)
【出願日】平成20年4月24日(2008.4.24)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成21年11月12日(2009.11.12)
【国際特許分類】
【出願日】平成20年4月24日(2008.4.24)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]