JP6230468B2 - 画像処理装置、画像処理方法、及びプログラム - Google Patents

画像処理装置、画像処理方法、及びプログラム Download PDF

Info

Publication number
JP6230468B2
JP6230468B2 JP2014077035A JP2014077035A JP6230468B2 JP 6230468 B2 JP6230468 B2 JP 6230468B2 JP 2014077035 A JP2014077035 A JP 2014077035A JP 2014077035 A JP2014077035 A JP 2014077035A JP 6230468 B2 JP6230468 B2 JP 6230468B2
Authority
JP
Japan
Prior art keywords
image data
output
pixel
input
inclination correction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014077035A
Other languages
English (en)
Other versions
JP2015198425A (ja
Inventor
晃司 正阿弥
晃司 正阿弥
克行 萩原
克行 萩原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2014077035A priority Critical patent/JP6230468B2/ja
Publication of JP2015198425A publication Critical patent/JP2015198425A/ja
Application granted granted Critical
Publication of JP6230468B2 publication Critical patent/JP6230468B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Editing Of Facsimile Originals (AREA)

Description

本発明は、画像処理装置、画像処理方法、及びプログラムに関する。具体的には、本発明は、画像を任意角回転する画像処理装置、画像処理方法、及びプログラムに関する。
従来、スキャナや複写機、プリンタ等の画像処理装置において、傾いて読み取った入力画像を補正するといった目的で、任意角の回転処理を行うことが知られている。
例えば、原稿が主走査方向に対して傾いていた場合に任意角の回転処理を行う技術がある。具体的には、原稿の画像データをセンサで読み取り、センサ特性補正後に画像データをDRAMへ保存する。そして、傾き補正回路が、読み出しアドレスを生成してそのアドレスに従ってDRAMから保存された画像データを読み出すことで、傾き補正を行い、傾き補正済みの画像データを出力する。
図2は、この従来技術に係る回転処理を実行する画像処理部200の概略構成を示すブロック図である。
センサ部201は、原稿の画像データを読み取り、読み取った画像データをAD変換部202へ出力する。また、センサ部201は、原稿の画像データを読み取った際に、主走査方向に対する原稿の傾き角度を検出し、検出した情報を傾き補正部211へ出力する。
AD変換部202は、センサ部201から入力されたデータをAD変換(アナログ−デジタル変換)し、AD変換後のデータをDMAC(direct memory access controller)203を介してDRAM204へ保存する。
センサ特性補正部206は、DMAC205を介してDRAM204から画像データを読み込み、予め検出したセンサ特性に従って入力画像データを補正する。そして、センサ特性補正後の画像データを、DMAC208を介してDRAM209へ保存する。
傾き補正部211は、DMAC210を介してDRAM209からセンサ特性補正後の画像データを読み込み、センサ部201から入力された情報を用いて原稿の傾き角度に基づく傾き補正を行い、傾き補正後の画像データを出力データバッファ213に出力する。
このように従来技術では、原稿がずれた状態でスキャンされた場合においても、画像処理部が、画像を任意角回転することで、スキャン時の原稿の傾きを補正している。
また、特許文献1には、回転処理の技術として、画像をブロック単位で領域分割し、入力画像の傾きに応じた角度に従って斜め方向にブロック単位でメモリから画像データを読み出す技術が開示されている。
特開2005−352703号公報
しかし、図2に示した従来技術では、センサ特性補正と、傾き補正との夫々に対してバッファを設けているため(即ち、DRAM209、出力データバッファ213)、バッファとして必要となるメモリ量が大きくなるという課題が存在する。また、構成によっては、バッファにおいて、所定の単位未満でのデータ転送における転送効率が低下するという課題も存在する。
本発明は上記のような課題を鑑みてなされたものであり、バッファとして必要となるメモリ量を低減し、所定の単位未満でのテータ転送単位における転送効率が低下しない画像処理装置を提供することを目的とする。
本発明は、原稿の画像データを補正して出力する画像処理装置であって、入力された画像データを記憶する記憶手段と、前記記憶手段から、ブロック単位で画像データを読み出すデータ転送手段と、前記データ転送手段により読み出した画像データに対する回転処理を実行する傾き補正手段とを備え、前記傾き補正手段は、前記原稿の傾き角度と、前記傾き補正手段からデータを転送する際のバースト長とに基づき、ブロック間で重複する部分の長さを算出することを特徴とする。
本発明では、センサ特性補正部と、傾き補正部とにおける処理単位(分割画像領域)を統一する。これにより、センサ特性補正後のデータをDRAMへ一旦保存することなく、傾き補正を行うことができる。
また、本発明では、当該処理単位を、原稿の傾きと、記憶手段における所定の読み出し単位とに基づく分割画像領域とする。これにより、前記記憶手段からの読み出し効率を向上してデータ転送することができる。従って、DRAMへのアクセス回数を減らして必要となるメモリ容量を低減でき、従来よりも小さなメモリサイズで任意角回転を実現できる。
読取装置のセンサ部と、原稿との位置関係を説明する図である。 従来技術に係る画像処理部の概略構成を示すブロック図である。 実施例1に係る画像処理部の概略構成を示すブロック図である。 実施例1に係る傾き補正部301へ画像データが入力される際の画素の順序と、傾き補正部301が傾き補正した後で画像データを出力する際の画素の順序とを示した図である。 実施例1に係る入力画像データから出力画像データを得る処理を説明する図である。 実施例1に係る入力ブロック間の重複部分を説明する拡大図である。 実施例1に係るブロック状のバースト転送単位について説明する図である。 実施例1に係るブロック状のバースト転送単位毎のバースト転送の際の、のりしろ幅及びのりしろ高さの計算について説明する図である。 実施例3に係る画像処理部の概略構成を示すブロック図である。 実施例3に係るのりしろ幅及びのりしろ高さの条件式について説明する図である。 実施例3に係る境界算出処理について説明する流れ図である。
[実施例1]
(センサ部と、原稿との位置関係)
図1(a)は、読取装置のセンサ部101と、原稿102との位置関係を説明する図である。読取装置は、センサ部101と、原稿102との副走査方向(Y軸方向)の相対位置を変化させることにより、原稿を読み取る。
本実施例では、図1(a)に示すように、センサ部101を固定し、不図示の搬送機構によって原稿102を原稿搬送方向に搬送しながら読み取っており、直線状のセンサユニットを用いて平面状の画像を描写する画像データを取得するものとして説明する。但し、本発明は、原稿台に原稿を固定して、センサユニットの位置を変えながら画像データを読み取る構成に対しても同様に適用可能である。
図1(a)には、原稿102を基準とする第1の座標系であるxy座標系と、読取装置(センサ部101)を基準とする第2の座標系であるXY座標系とが示されている。以下、第1の座標系と、第2の座標系との関係について説明する。
理想的には、原稿102は、何れかの辺が副走査方向(Y軸方向)に沿うように配置されるのが望ましいが、現実には、理想と異なる位置及び角度で配置される場合が多い。このとき、原稿位置ずれ(x,y)及び原稿傾き角(θ)が生じ、第1の座標系と、第2の座標系とは一致せず、特に大型の原稿で顕著であるが、微小な角度のずれであっても、原稿の両端を比較すると大きなずれとなる恐れがある。第1の座標系の座標値(x,y)は、図1(b)に示す関係式に従って、第2の座標系の座標値(X,Y)に変換可能である。
(画像処理部)
図3は、本実施例に係る読取装置が備える画像処理部300の概略構成を示すブロック図である。
画像処理部300は、以下に説明するように、図1に示した第1の座標系(xy座標系)の各画素位置における画素値を求めることで、原稿の傾き補正を実行する。
画像処理部300は、AD変換部202と、DMAC203と、DRAM204と、DMAC205と、センサ特性補正部206と、傾き補正部301とから構成される。以下、これらの構成における処理を説明する。
センサ部201は、原稿の読取データのほか、原稿位置ずれや原稿傾き角度といった原稿配置情報を取得する。
AD変換部202は、センサ部201で取得した原稿の読取データをAD変換し、AD変換後の画像データを構成する画素毎の画素値をDMAC203によってDRAM204へ保存する。
DRAM204は、センサ部201で取得した原稿の画像データを構成する画素毎の画素値を一時的に格納する。
センサ特性補正部206は、例えば、センサ部201内のどの素子で読み取った画素値か、あるいは、AD変換部202内のどのアンプで処理したかに応じて異なる特性を補正して画素値を正規化する。センサ特性補正部206による補正パラメータは、読取装置基準の第2の座標系(XY座標系)、特に主走査方向(X軸方向)に応じて決まる。従って、センサ特性補正を座標変換前に実行するため、センサ特性補正部206は、後述の傾き補正部301の前段に配置している。
傾き補正部301は、センサ部201から取得した原稿配置情報に基づき画像の傾きを補正し、原稿102を基準とする第1の座標系(xy座標系)における各座標値に対応する画素値を求める。傾き補正部301によって、第1の座標系における各画素位置に対応する画素値が得られる。傾き補正部301については、(傾き補正部)の項目で詳細に説明する。
出力データバッファ213は、傾き補正部301によって得られた傾き補正済みの画像データを格納する。尚、出力データバッファ213は、DRAM204と異なるオフセットアドレスを設定して共通のメモリデバイスを使用するように実装することも可能である。
(傾き補正部)
次に、傾き補正部301の詳細を説明する。図4(a)は、傾き補正部301へ画像データが入力される際の画素の順序を示した図であり、図4(b)は、傾き補正部301が傾き補正した後で画像データを出力する際の画素の順序を示した図である。以下、説明を簡単にするため、入力ブロック402における処理に注目して説明する。尚、他の入力ブロック401、403における処理についても、入力ブロック402における処理と同様である。
図4(a)には、傾き補正部301へ入力される入力ブロックの入力順序(即ち、入力1ブロック目、入力2ブロック目、入力3ブロック目・・・)と、入力ブロック内の画素の入力順序とが示されている。各入力ブロックの辺は、X軸方向又はY軸方向に平行であり、入力ブロックの大きさ(面積)は、傾き補正部301の内部バッファの大きさに応じて決まる。入力ブロックの幅を、DRAM204におけるバースト転送の単位(本明細書では「バースト転送単位」と表記する)の整数倍とすることで、データ転送効率が高まる。
原稿102は、センサ部の主走査方向(X軸方向)に対して、角度θだけ傾いて配置されている。傾き補正部301は、ブロック単位でDMAC205と同期した処理を行う。具体的には、傾き補正部301は、ブロック単位で画像データが入力されるように読み出しアドレス302を生成し、生成した読み出しアドレス302をDMAC205に渡して設定する。DMAC205は、設定された読み出しアドレス302に従ってDRAM204から画像データを読み出してセンサ特性補正部206へ出力する。そして、センサ特性補正部206は、画像データを構成する各画素についてセンサ特性の補正を行い、センサ特性補正済みの画素値を傾き補正部301に渡す。
図4(a)中の符号404は、傾き補正部301へ入力されるブロック402の先頭の画素を示している。DMAC205は、画素404を先頭に、矢印405で示す順で入力ブロック402内の各画素値をDRAM204から読み出す。
互いに隣接する入力ブロック間には、重複して画像データを読み出す領域がある。例えば、入力ブロック401及び入力ブロック402に対しては、のりしろ幅406に相当する重複領域がある。のりしろ幅406に関しては、(のりしろ幅)の項目で詳細に説明する。
図4(b)には、傾き補正部301が傾き補正した後で画像データを出力する際の画素の順序が示されている。
図4(b)中の符号407は、入力ブロック402に対する処理結果として、傾き補正部301が出力する先頭の画素を示している。傾き補正部301は、画素407を出力した後は、矢印408に示す方向に1ライン分の画素を出力していく。このときの矢印408で示すライン方向は、原稿102を基準とする第1の座標系(xy座標系)におけるx軸方向である。
このように、傾き補正部301は、原稿102を基準とする第1の座標系(xy座標系)における画素位置と、処理順の画素値とを、読取装置を基準とする第2の座標系(XY座標系)における画素位置と、画素値とから求めている。この座標変換では、既知の画像補間法を用いれば良い。一般的に広く利用されている方法としてバイリニア法、バイキュービック法等が挙げられる。また、補間せずに最近傍に位置する画素の画素値を選択しても良い。
図4(b)において、二点鎖線409及び二点鎖線410は、各入力ブロックに対応して出力すべき傾き補正後の画像データを構成する画素群を含んだ領域の境界を示している。二点鎖線409と、二点鎖線410との間の領域が、入力ブロック402に対応して求めるべき出力画像データを構成する画素群を含んだ領域である。詳細は、(出力画像データ取得処理)の項目で別途説明する。
(出力画像データ取得処理)
図5は、入力画像データから出力画像データを得る処理を説明する図である。図5を用いて、入力画像データから出力画像データを得る処理と、のりしろ幅の概要とについて、説明する。
図5は、図4の入力ブロック401と、入力ブロック402との重複部分(のりしろ幅406)を拡大した図である。尚、図5では、図面を明瞭にするために図4よりも原稿の傾き角度θを大きく示している。
読取装置基準の第2の座標系(XY座標系)で定義される、入力グリッド501の各格子点に位置する三角記号(△)は、傾き補正部301へ入力される画像データを構成する画素を示している。
原稿102を基準とする第1の座標系(xy座標系)で定義される、出力グリッド502は、傾き補正部301が出力する画像データを構成する画素毎の位置を示している。出力グリッド502の各格子点に位置する丸記号(●,○すべて)は、傾き補正部301が出力する画像データを構成する画素を示している。
出力グリッド502の各格子点位置に対応する出力画素値が計算できれば、回転後の出力画素値が得られる。より具体的には、出力座標グリッドの各格子点位置を計算すること、及び、当該格子点位置に対応する出力画素値を、入力画素値を用いた補間等の計算により求めることで、任意角回転処理が可能となる。各格子点位置における計算については、別途説明する。
符号503は、入力グリッド501におけるバースト長(本明細書では、「入力バースト長」と略記される)を示しており、本実施例では、バースト転送単位4[画素/バースト]の場合を低に挙げて説明する。即ち、DMAC205は、画像データをDRAM204からバースト転送で読み込む際に、1バースト(4画素に相当)毎に読み込む。このとき、入力グリッド501におけるバースト転送単位の距離を示す入力バースト長は、入力グリッド501における3画素分の距離に相当する。
符号504及び符号505は、出力グリッド502におけるバースト長(本明細書では、「出力バースト長」と略記される)を示しており、本実施例では、バースト転送単位4[画素/バースト]の場合を例に挙げて説明する。即ち、傾き補正部301は、傾き補正後の画像データをバースト転送で出力データバッファ213へ書き込む際に、1バースト(4画素に相当)毎に書きこむ。このとき、出力グリッド502におけるバースト転送単位の距離を示す出力バースト長は、出力グリッド502における3画素分の距離に相当する。
(出力画像データ取得処理−傾き補正部への画像データ入力)
以下、傾き補正部301への画像データ入力について説明する。上で説明したように、入力ブロック401内の画素が、X軸方向に沿って1ラインずつ傾き補正部301へ入力される。
このとき、入力される画素は、図5の三角記号(△)によって示されており、入力ブロック401において、傾き補正部301へ入力される1ライン目の最後の1バースト(4画素)は、図5の画素506から開始しX軸方向に沿って進む4画素となる。
以降、入力ブロック401において最後のラインまで入力されると、傾き補正部301は、入力ブロック401に対応する出力画素値を求める。このとき、ダブルバッファ構成として、傾き補正部301が入力ブロック401に対する処理を実行する間に、次の入力ブロック402内の画像データを準備しておいても良い。
(出力画像データ取得処理−傾き補正部からの画像データ出力)
次に、傾き補正部301からのデータ出力について説明する。図5において、出力グリッド502の各格子点に位置する丸記号のうち、黒丸(●)が入力ブロック401に対応するものであり、白丸(○)が入力ブロック402に対応するものである。
入力ブロック401における最初のラインに対して、傾き補正部301が出力する最後の1バースト(4画素)は、画素507から開始しx軸方向に沿って進む4画素となる。
入力ブロック401に対して、傾き補正部301が出力する2ライン目の最後の1バースト(4画素)は、画素508から開始しx軸方向に沿って進む4画素となる。以降、y軸方向へ1ラインずつ進みながら、同様のx軸方向に進む出力処理を順次行っていく。
ここで出力画素509に注目すると、出力画素509は、入力ブロック401内に位置しているが、入力ブロック402に対応する出力画素である。これは、出力画素509が出力される1バーストは、矢印505で示した長さに相当し、出力画素509を含む1バーストの4画素目の出力画素510が、入力ブロック401の範囲を超えて、入力ブロック402内に位置しているためである。従って、出力画素509を含む1バーストの出力は、入力ブロック402に対する処理結果となる。
一方で、出力画素513に注目すると、出力画素513は、入力ブロック401に対応する出力画素である。これは、出力画素513を含む1バーストの4画素目の出力画素514が、入力ブロック401の範囲内であり、入力ブロック401に対する計算結果として求めることが可能なためである。より正確には、出力画素514を出力する際に補間演算で必要となる、出力画素514の周囲の入力4画素が、入力ブロック401の範囲内であるためである。この詳細は、図6を用いて別途説明する。
出力画素511は、出力画素509と同様に、入力ブロック402に対する処理結果として出力される。但し、出力画素511の次のラインの出力画素513は、入力ブロック401に対する処理結果として出力される。
よって、のりしろ幅406は、入力ブロック401に対する処理結果として出力画素513及び出力画素514を求め、入力ブロック402に対する処理結果として出力画素511及び出力画素512を求めることが可能なように設定する必要がある。
(のりしろ幅)
図6を用いてのりしろ幅についてより詳細に説明する。図6は、図5の出力画素511近傍を拡大した拡大図である。以下、説明を簡単にするために、出力画素値を求めるために最近傍法を用いる場合を例に挙げて説明する。
出力画素512の画素値は、入力グリッド501上に位置する入力画素518〜521のうちの、出力画素512の最近傍に位置する入力画素518の画素値である。入力画素518は、入力ブロック401に含まれているが、出力画素512の画素位置が入力ブロック401の範囲を超えているため、出力画素511から出力画素512にかけての1バーストは、入力ブロック402に対する処理結果として出力されるものとする。
一方、出力画素514の画素値は、入力グリッド501上に位置する入力画素515〜518のうちの、出力画素514の最近傍に位置する入力画素517の画素値である。出力画素514の画素位置は、入力ブロック401の範囲内であるため、出力画素513から出力画素514にかけての1バーストは、入力ブロック402に先行する入力ブロック401に対する処理結果として出力されるものとする。
尚、出力画素513から出力画素514までの1バーストのように、1バーストの先頭画素と、末尾画素とがのりしろ幅406内に収まる場合は、当該1バーストは、入力ブロック401と、入力ブロック402との何れに対する処理結果として出力可能である。従って、出力画素513から出力画素514までの1バーストを、入力ブロック401に後続する入力ブロック402に対する処理結果として出力する構成としても良い。
出力画素513と、出力画素514とを結ぶ線分は、出力グリッド502における出力バースト長505分の長さを有する線分である。この線分は、座標変換すると、入力グリッド501における、線分526に対応する。従って、出力バースト長505に対する、入力グリッド501における長さ(入力バースト長)は、出力バースト長×cosθに等しい。
従って、のりしろ幅は、入力グリッド501(XY座標系)において以下の(式1)を満たすようにすれば、不足することはない。尚、のりしろ幅は、画素間距離を1としたとき、画素数の整数倍と等しい値である必要があるため、端数が出た場合には条件を満たす整数値に切り上げてのりしろ幅を算出する。また、画像データ入力側においてバースト読み出しアクセスを実行する場合は、データ転送効率向上のために、のりしろ幅を、入力バースト長の単位に切り上げる必要がある。
のりしろ幅≧出力バースト長×cosθ・・・(式1)
但し、出力グリッド502の入力グリッド501に対する位置や、入力ブロックの大きさによっては、全ての場合において上記(式1)を満たすのりしろ幅が必要とは限らない。のりしろ幅に関して必要最小限の値が必要であれば、ブロック境界付近の各画素位置を座標変換することにより、のりしろ幅を求めることは可能である。
別の実装形態として、補間処理を伴う補間法により出力画素値を求める場合は、以下のバイリニア補間による例のように、のりしろ幅を補間処理で使用する空間フィルタの(X軸方向の)タップ数に応じて増やす必要がある。ここで、タップ数とは、出力画素値を算出するために、注目する出力画素を中心として参照される周辺入力画素の数を表している。
出力画素511の画素値は、入力グリッド501上かつ出力画素511周辺に位置する入力画素522〜525から求める。また、出力画素512の画素値は、入力グリッド501上かつ出力画素512周辺に位置する入力画素518〜521から求める。このように、補間法では、前述の最近傍法の場合と比較して、入力グリッド501において1画素分大きな範囲にわたって入力画素を参照することになる。このとき、参照する各入力画素は最初から入力グリッド501上に配置されているため、のりしろ幅の補間フィルタのタップ数に対応する増分は座標変換の対象とはならない。よって、のりしろ幅が満たすべき条件は以下の(式2)で表現できる。
のりしろ幅≧出力バースト長×cosθ+(フィルタタップ数−1)・・・(式2)
また、のりしろ高さについても同様に、以下の(式3)に従って求めることが可能である。但し、(式3)で使用するフィルタタップ数は高さ方向(Y軸方向)のものとなる。
のりしろ高さ≧出力バースト長×sinθ+(フィルタタップ数−1)・・・(式3)
さらに別の実装形態として、図7に示すようにアクセスに有利なブロック状の画素群と、メモリアドレスとの対応で、バースト転送単位を幅2画素、高さ2画素のように2次元の構造とする場合がある。図7(b)において、同一の記号で示した画素が、1回のバースト転送でアクセス可能な画素である。
図7の例では、1画素当たりの情報量を32ビットとしているため、画素位置(x,y)からバイトアドレスとしてメモリアドレスaを算出する際に、図7(a)に示すように、メモリアドレスaの下位2ビットは使用せず、画素位置によらずに0としている。
図8(a)に、バースト転送単位がブロック状であり、1回のバースト転送に対応する入力画像データにおける領域の幅及び高さが共に1より大きい場合の、のりしろ幅801及びのりしろ高さ802を示す。のりしろ幅801及びのりしろ高さ802は、図8(a)に示すように、バースト転送領域の幅bx及び高さby並びに原稿傾き角度θを用いて計算可能である。尚、図8(a)に示す式では、補間のための空間フィルタを考慮していないが、補間処理の場合には、前述のように補間フィルタのタップ数に応じた画素数を加算すれば良い。また、図8内に示した式の角度θは、反時計回りを正とする。即ち、図8に示したθは負の値とする。
上で説明した通り、さらに別の実施形態によれば、傾き補正部301は、原稿傾き角度θと、出力バースト長と、補間フィルタのタップ数とに基づいてのりしろ幅及びのりしろ高さを求める。特に、読取動作の都度、原稿傾き角度θに応じてのりしろ幅及びのりしろ高さを算出する。そして、算出したのりしろ幅及びのりしろ高さを有するのりしろを考慮した分割領域に基づいてDRAM204からデータを読み出してデータ転送を行う。
上述した本実施例によるデータ転送を行うことで、センサ特性補正後のデータをDRAMへ一旦保存することなく、傾き補正を行うことができ、センサ特性補正及び傾き補正を一括処理することができる。また、出力画素値がバースト単位でまとめてアクセスされることで、出力データバッファ213のデータ転送効率の向上が可能である。
よって、バッファメモリを集約し、DRAMへのアクセス回数を減らして、必要となるメモリ容量を削減できる。
以上、本実施例では、傾き補正部301がバースト転送単位毎に出力データバッファ213に画像データを出力する場合を例に挙げて説明したが、出力データの書き込み先は、DRAMに限定されるものではない。例えば、ハードディクス装置に書き込む場合の論理セクタ若しくはクラスタ、又は、フラッシュメモリデバイスに書き込む場合に、ブロック毎に書き込む場合でも同様である。つまり、所定単位の画素数をまとめて書き込むと好適である場合に共通して、本発明を適用可能である。
[実施例2]
実施例1において用いる座標変換のパラメータを変更することで、傾き補正時に併せて、変倍処理が実行可能となる。具体的には、実施例1で説明した図1(b)に示す座標変換式に代えて、図1(c)に示す式を使用することで、x軸方向にa倍、y軸方向にb倍とする変倍処理を実行ことができる。但し、図1(c)の式において、拡大・縮小のパラメータa,bはいずれも0ではないものとする。パラメータa,bのいずれかでも0となった場合は、画像データが縮退してしまうので実用性に乏しい。
図8(b)に、実施例1で説明した図8(a)の場合に対して、a=1.5, b=1の拡大率を適用して、x軸方向に1.5倍拡大した例を示す。但し、便宜上、出力画素についてx軸だけ縮尺を変えて、1.5倍の画素密度で示している。この場合の、のりしろ幅803及びのりしろ高さ804は、図8(b)に示すように、バースト転送領域の幅bx及び高さby並びに回転角θに加えて、拡大・縮小の倍率a,bを加味することによって計算可能である。
以上のように、のりしろ幅及びのりしろ高さを設定することで、本発明は、傾き補正と同時に拡大処理、若しくは、縮小処理を行う場合にも対応可能である。
[実施例3]
本実施例では、図9に示すように、画像処理部900において、傾き補正部301の後段に、空間フィルタ処理を行うフィルタ処理部901を設けている。また、本実施例では、実施例1で使用した出力データバッファ213(図3を参照)に代えて、DRAM204の所定領域を出力画像データの格納に割り当てる。
本実施例では、傾き補正部301は、出力座標系の各ラインについて、図4(b)において二点鎖線409及び二点鎖線410で示されるような境界を算出し、当該算出した境界に基づいてDMAC902に対して書き込みアドレスを指示する。境界算出処理の詳細については後述する。
図10に、本実施例に係るのりしろ幅及びのりしろ高さの条件式を示す。本実施例では、フィルタ処理部901では原稿基準の第1の座標系(xy座標系)に基づいて画像処理を行う。従って、フィルタ処理部901の後段で使用する、読取装置基準の第2の座標系(XY座標系)における隣接する入力ブロック間ののりしろ幅及びのりしろ高さを求めるためには座標変換が必要である。
(境界算出処理)
図11は、傾き補正部301によって実行される境界算出処理の内容を示す流れ図である。当該処理では、出力の座標系における、ある出力予定位置が、入力ブロック内にあるか否かを判定することにより、境界位置を決定する。図4(b)に示したように、同一の入力ブロック内であっても、出力のラインが変わることで境界位置がずれる場合がある(二点鎖線409及び二点鎖線410を参照)。このことを考慮して、本実施例による境界算出処理では、ライン毎に境界位置を求める。傾き補正部301は1ブロック分の処理にあたって、図11に示す境界算出処理を必要数だけ(具体的には出力のライン数だけ)繰り返す。
ステップS1101において、処理対象ブロックの注目ラインにおけるライン開始位置を取得する。ライン開始位置は、原稿基準の第1の座標系(xy座標系)における座標値である。先頭のブロックにおいては、所定の座標位置をライン開始位置とする。また、他のブロックにおいては、先行するブロックの処理の際に、後述のステップS1107で保存したライン終了位置の次の位置をライン開始位置とする。
ステップS1102において、出力予定位置及び暫定終了位置を初期値に設定する。このとき、出力予定位置及び暫定終了位置を共に、ステップS1101で取得したライン開始位置と同じ値に設定する。
ステップS1103において、座標変換処理を実行する。具体的には、原稿基準の第1の座標系(xy座標系)における出力予定位置を、図1(a)又は図1(b)に示すような座標変換式を用いて、読取装置基準の第2の座標系(XY座標系)における値に変換する。このとき、出力の基準となる位置の他、フィルタ処理部901において参照する画素があれば、当該参照する画素全ての位置についても座標変換し、後続ステップS1104において、当該座標変換により取得した位置に基づき、全ての画素について判定すれば良い。
ステップS1104において、入力位置判定処理を実行する。具体的には、第2の座標系(XY座標系)に変換した出力予定位置が、入力ブロックの範囲内であるか否かを判定する。判定の結果、第2の座標系(XY座標系)に変換した出力予定位置が入力ブロックの範囲内である場合には、ステップS1105に進み、そうでない場合には、ステップS1106に進む。但し、傾き補正部301で補間処理により出力画素値を決定する場合には、補間処理で参照する画素が全て入力ブロックの範囲内にあるか否かを判定することにより入力位置判定処理を実行する。
ステップS1105において、暫定終了位置及び出力予定位置を更新する。具体的には、入力ブロックの範囲内であると判定した出力予定位置を、新たな暫定終了位置とする。また、出力予定位置は、注目ライン内において次の出力バースト長だけ進んだ位置に設定する。ステップS1105に続いて、ステップS1103へと戻り、ステップS1104において出力予定位置が入力ブロックの範囲外と判定されるまで、ステップS1103からステップS1105までの処理を繰り返す。
ステップS1106において、暫定終了位置をライン終了位置として設定し、また、後続のブロックの処理において参照するために、注目ラインにおけるライン終了位置として保存する。
ステップS1107において、ステップS1101で取得したライン開始位置と、ステップS1106で設定したライン終了位置とに基づいて、DMAC902に対してDRAM204への書き込みアドレスを設定する。
以上のように、のりしろ幅及びのりしろ高さを計算し、また、境界位置を決定することにより、傾き補正部301の後段にフィルタ処理部901を配置する場合にも、途中に大きな画像バッファを設けることなく一括で処理可能である。
[その他の実施例]
本発明の目的は、前述した実施例の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システム又は装置に供給し、システム又は装置(具体的にはCPUやMPU)がプログラムコードを読み出し実行することによっても、達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM、DVD等を用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOSが実際の処理の一部又は全部を行っても良い。OSの処理によって前述した実施例の機能が実現される場合も、本発明の範囲に含まれる。
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、処理が実行されても良い。また、機能拡張ボードや機能拡張ユニットに備わるCPUが実際の処理の一部又は全部を実行しても良く、機能拡張ボードや機能拡張ユニットに備わるCPUの実行処理によって前述した実施例の機能が実現される場合も、本発明の範囲に含まれる。
また、前述の実施例の機能を実現するためのプログラムコードを、1つのコンピュータ(CPU、MPU)で実行しても良いし、複数のコンピュータが協働することによって実行しても良い。更に、プログラムコードをコンピュータが実行しても良いし、プログラムコードの機能を実現するための回路等のハードウエアを設けても良い。または、プログラムコードの一部をハードウエアで実現し、残りの部分をコンピュータが実行しても良い。

Claims (8)

  1. 原稿の画像データを補正して出力する画像処理装置であって、
    入力された画像データを記憶する記憶手段と、
    前記記憶手段から、ブロック単位で画像データを読み出すデータ転送手段と、
    前記データ転送手段により読み出した画像データに対する回転処理を実行する傾き補正手段と
    を備え、
    前記傾き補正手段は、前記原稿の傾き角度と、前記傾き補正手段からデータを転送する際のバースト長とに基づき、ブロック間で重複する部分の長さを算出することを特徴とする画像処理装置。
  2. 前記回転処理を実行した後の画像データを記憶する記憶手段を更に備えることを特徴とする請求項1に記載の画像処理装置。
  3. 前記データ転送手段は、前記算出したブロック間で重複する部分の長さに基づき、前記ブロック内で処理を開始する画素位置を決定する読み出しアドレスを生成することを特徴とする請求項1又は2に記載の画像処理装置。
  4. 前記傾き補正手段は、画像の拡大又は縮小の倍率に基づき、前記ブロック間で重複する部分の長さを算出することを特徴とする請求項1乃至3の何れか一項に記載の画像処理装置。
  5. 前記傾き補正手段の後段に空間フィルタ処理を行うフィルタ処理手段を更に備え、
    前記傾き補正手段は、前記フィルタ処理手段のフィルタタップ数に基づき、前記ブロック間で重複する部分の長さを算出することを特徴とする請求項1乃至4の何れか一項に記載の画像処理装置。
  6. 前記傾き補正手段は、出力する画像データを構成する画素の位置が、前記ブロックの範囲内にあるか否かを判定することにより、前記回転処理を実行した後の画像データを記憶する記憶手段へ渡す書き込みアドレスを生成することを特徴とする請求項5に記載の画像処理装置。
  7. 原稿の画像データを補正して出力する画像処理方法であって、
    入力された画像データを記憶手段に記憶する記憶ステップと、
    前記記憶手段から、ブロック単位で画像データを読み出すデータ転送ステップと、
    前記データ転送ステップにおいて読み出した画像データに対する回転処理を実行する傾き補正ステップと
    を備え、
    前記傾き補正ステップにおいて、前記原稿の傾き角度と、前記傾き補正ステップにおいてデータを転送する際のバースト長とに基づき、ブロック間で重複する部分の長さを算出することを特徴とする画像処理方法。
  8. コンピュータを、請求項1乃至6の何れか一項に記載の画像処理装置として機能させるための、プログラム。
JP2014077035A 2014-04-03 2014-04-03 画像処理装置、画像処理方法、及びプログラム Active JP6230468B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014077035A JP6230468B2 (ja) 2014-04-03 2014-04-03 画像処理装置、画像処理方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014077035A JP6230468B2 (ja) 2014-04-03 2014-04-03 画像処理装置、画像処理方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2015198425A JP2015198425A (ja) 2015-11-09
JP6230468B2 true JP6230468B2 (ja) 2017-11-15

Family

ID=54547867

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014077035A Active JP6230468B2 (ja) 2014-04-03 2014-04-03 画像処理装置、画像処理方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP6230468B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6859781B2 (ja) 2017-03-21 2021-04-14 富士ゼロックス株式会社 画像処理装置、画像処理方法およびプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005086598A (ja) * 2003-09-10 2005-03-31 Fuji Xerox Co Ltd 画像処理装置、画像処理方法、画像処理プログラムおよび画像処理回路
JP4270035B2 (ja) * 2004-06-15 2009-05-27 富士ゼロックス株式会社 画像処理装置
JP4867757B2 (ja) * 2007-03-30 2012-02-01 パナソニック株式会社 スキャナ装置
JP5124509B2 (ja) * 2009-03-05 2013-01-23 株式会社Pfu 画像処理装置、傾き補正方法、および、プログラム

Also Published As

Publication number Publication date
JP2015198425A (ja) 2015-11-09

Similar Documents

Publication Publication Date Title
JP5593060B2 (ja) 画像処理装置、および画像処理装置の動作方法
JP2009151571A (ja) 画像データ供給装置及び方法
JP6335663B2 (ja) 画像処理装置およびその方法、並びに、画像読取装置
JP4124096B2 (ja) 画像処理方法および画像処理装置、並びにプログラム
JP2010108084A (ja) 画像処理装置
JP2013186624A (ja) 画像処理装置、および画像処理装置の動作方法
JP6230468B2 (ja) 画像処理装置、画像処理方法、及びプログラム
JP4786484B2 (ja) 演算処理用データ供給方法および画像処理装置
JP6200664B2 (ja) 画像データ処理装置、画像データ処理方法及び画像データ処理プログラム
JP2009147453A (ja) 画像処理装置、方法及びプログラム
JP6324174B2 (ja) 画像処理装置および画像処理方法
JP2012050009A (ja) 画像処理装置およびその制御方法
US8509568B2 (en) Image processing apparatus and image processing method
JP2010205143A (ja) 画像処理装置、傾き補正方法、および、プログラム
JP2015022363A (ja) データ転送制御装置、データ転送制御方法、及びプログラム
JP2005086598A (ja) 画像処理装置、画像処理方法、画像処理プログラムおよび画像処理回路
JP4232712B2 (ja) 画像処理装置
US8934736B2 (en) Image processing apparatus, image processing system, and method for having computer process image
JP6156653B2 (ja) 画像変形装置
US8417063B2 (en) Image processing apparatus and image processing system
JP2012183805A (ja) 画像形成装置及び方法
JP2008059452A (ja) 画像処理装置、画像処理方法
JP6886622B2 (ja) 画像処理装置
JP2007026307A (ja) 画像処理装置及びその制御方法
JP2018157492A (ja) 画像処理装置、画像処理方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170324

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170911

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170919

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171017

R151 Written notification of patent or utility model registration

Ref document number: 6230468

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151