(57)【要約】【課題】  できるだけ小容量で画像の回転補正を行うための技術を提供すること。【解決手段】  回転補正の対象となる入力画像のサイズと、該回転補正における回転角度と、を用いて、出力画像のサイズを求め、該求めたサイズを有する該出力画像を、該入力画像に対する該回転補正により求める。該出力画像を出力する。【選択図】  図１
2017175463.tif 000002
【特許請求の範囲】
【請求項１】
回転補正の対象となる入力画像のサイズと、該回転補正における回転角度と、を用いて、出力画像のサイズを求め、該求めたサイズを有する該出力画像を、該入力画像に対する該回転補正により求める計算手段と、
前記出力画像を出力する手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記計算手段は、
前記入力画像のサイズをα、前記回転角度をθとすると、前記出力画像のサイズβを、β≦α／（ｓｉｎθ＋ｃｏｓθ）を満たす最大の整数として求めることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記入力画像は、回転補正元の画像を複数の画素ブロックに分割した場合におけるそれぞれの画素ブロックであり、前記出力画像は、回転補正済みの画像を複数の画素ブロックに分割した場合におけるそれぞれの画素ブロックであることを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記計算手段は、
前記回転補正済みの画像のサイズが前記計算手段が求めたサイズの整数倍ではない場合、前記回転補正済みの画像が均等に分割されるように該求めたサイズを調整することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
画像処理装置が行う画像処理方法であって、
前記画像処理装置の計算手段が、回転補正の対象となる入力画像のサイズと、該回転補正における回転角度と、を用いて、出力画像のサイズを求め、該求めたサイズを有する該出力画像を、該入力画像に対する該回転補正により求める計算工程と、
前記画像処理装置の出力手段が、前記出力画像を出力する工程と
を備えることを特徴とする画像処理方法。
【請求項６】
コンピュータを、請求項１乃至４の何れか１項に記載の画像処理装置の各手段として機能させるためのコンピュータプログラム。
【請求項７】
シート材の画像を読み取り画像データとして出力する画像読取部と、
前記読み取り画像データの少なくとも一面以上を記憶する第一記憶部と、
前記読み取り画像データを記憶し前記第一記憶部よりも高速でアクセス可能な第二記憶部と、
前記読み取り画像データを複数のブロックに分割してブロックごとに回転処理することで、該読み取り画像データの傾きを補正する制御部と
を有し、
前記制御部は、
シート材のサイズおよび傾き角度を検知し、
前記第二記憶部の容量と傾き角度をもとに出力ブロックのサイズを算出し、
前記読み取り画像データを前記算出したサイズをもとに複数の出力ブロックに分割し、
前記出力ブロックを生成するために必要な入力ブロックを算出し、
前記入力ブロックを前記第一記憶部から前記第二記憶部に読み出し、
前記入力ブロック内の画像の傾きを補正した前記出力ブロックを生成し、
前記出力ブロックを前記第二記憶部から前記第一記憶部に書き込み、
前記読み取り画像データの傾きを補正する
ことを特徴とする画像読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、原稿の画像の傾きを補正する画像処理技術に関するものである。
【背景技術】
【０００２】
原稿を読み取るスキャナ等の画像読取装置は、シート状部材に記録されている画像を読み取るための画像読取部を有する。画像読取装置内で搬送中の原稿が斜行してしまうと、画像読取部で読み取った画像中の原稿も傾いてしまうため、該画像中の原稿を回転させることで該画像中の原稿の傾きを補正する画像処理（回転補正）を行う。
【０００３】
従来の画像読取装置では、補正回転角度が大きいほど、大容量メモリから画像を分割して読み出した入力画素ブロックの容量に対する出力画素ブロックの容量の比率が低下し、特に、補正回転角度が４５度の時が最も画像処理の効率が悪い。
【０００４】
特許文献１には、画像を回転する際に、大容量メモリから小容量高速メモリに入力画素ブロックを読み出す方法についての開示がある。この方法によれば、補正回転角度に応じて入力画素ブロックを読み出す方法を変えることで単位時間あたりの処理の効率を向上させている。より詳しくは、特許文献１では、補正回転角度が小さい場合には大きな範囲で入力画素ブロックを読み出し、補正回転角度が大きい場合には小さなライン状の範囲で分割して入力画素ブロックを読み出す。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第５１２４５０９号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に開示されている画像処理方法では、入力画素ブロックを読み出す二種類の方式を補正回転角度に応じて切り替えることで、傾き角度が大きくなったときの画像処理効率を向上させることを特徴としている。しかし、二種類の方式のどちらも出力画素ブロックの大きさを固定にした上で、適宜、入力画素ブロックを読み出す方式を変更するものである。
【０００７】
また、特許文献１に開示されている方法は、補正回転角度がある一定角度以上になった際に効果を発揮するものであり、通常の原稿搬送において頻繁に発生する、例えば５度以下のような微小な斜行の補正において画像処理効率を向上させるものではない。
【０００８】
また、小容量高速メモリの容量に充分余裕があるとしても、従来の画像回転処理では、予め規定された大きさの出力画素ブロックを生成するために必要な入力画素ブロックの容量しか小容量高速メモリを使用しないため、補正回転角度が小さいほど小容量高速メモリの大部分を使用せずに画像処理することになる。
【０００９】
一度の画像回転処理によって回転補正された画素ブロック（出力画素ブロック）として、８［ｂｉｔ］グレー画像の６４画素×６４画素の画素ブロックを生成する場合、出力画素ブロックの容量は６４２×８［ｂｉｔ］＝４０９６×８［ｂｉｔ］、つまり４０９６［Ｂｙｔｅ］になる。更に補正回転角度を４５度まで考慮すると、出力画素ブロックを生成するための回転元の画素ブロック（入力画素ブロック）を記憶するため必要な小容量高速メモリの容量は、６４２×（ｓｉｎ４５°＋ｃｏｓ４５°）２×８［ｂｉｔ］＝８１９２［Ｂｙｔｅ］となり、出力画素ブロックの容量の２倍を必要とすることが分かる。
【００１０】
本発明は以上の問題に鑑みてなされたものであり、できるだけ小容量で画像の回転補正を行うための技術を提供する。
【課題を解決するための手段】
【００１１】
本発明の一様態は、回転補正の対象となる入力画像のサイズと、該回転補正における回転角度と、を用いて、出力画像のサイズを求め、該求めたサイズを有する該出力画像を、該入力画像に対する該回転補正により求める計算手段と、前記出力画像を出力する手段とを備えることを特徴とする。
【発明の効果】
【００１２】
本発明の構成によれば、できるだけ小容量で画像の回転補正を行うことができる。
【図面の簡単な説明】
【００１３】
【図１】画像読み取り装置の機能構成例を示すブロック図。
【図２】画像メモリＩ／Ｆ部１０５の構成例を示すブロック図。
【図３】大容量メモリ１０６における記憶領域の一例を示す図。
【図４】小容量高速メモリ１０７の記憶領域と回転元の画素ブロックとを示す図。
【図５】入力画像５０２、画素ブロック４０２、記憶領域４０１の関係を示す図。
【図６】制御部１０４が行う処理のフローチャート。
【図７】画像読み取り装置の機能構成例を示すブロック図。
【図８】原稿検知部７０９を説明する図。
【図９】第３の実施形態を説明する図。
【図１０】第３の実施形態を説明する図。
【図１１】第４の実施形態を説明する図。
【図１２】第４の実施形態を説明する図。
【図１３】第５の実施形態を説明する図。
【図１４】第５の実施形態を説明する図。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載の構成の具体的な実施例の１つである。
【００１５】
［第１の実施形態］
本実施形態に係る画像処理装置は、シート状の記録媒体をスキャンして該記録媒体に記録されている情報を画像として読み取り、該画像に対して回転補正する画像読み取り装置であるものとし、該画像読み取り装置について説明を行う。
【００１６】
先ず、画像読み取り装置の機能構成例について、図１のブロック図を用いて説明する。なお、図１に示した構成は、画像読み取り装置が有する全ての構成ではなく、画像読み取り装置が行うものとして後述する処理を実現するための構成を抜粋したものであり、画像読み取り装置が有する構成の一部に過ぎない。また、図１に示した構成は、画像読み取り装置が行うものとして後述する各処理を実現可能な構成の一例に過ぎず、同等以上の機能を有する構成であれば、如何なる構成を採用しても構わない。
【００１７】
画像読み取り部１０１は、シート状の記録媒体をスキャンして該記録媒体に記されている情報を画像として読み取る装置であり、ＣＭＯＳセンサやＣＣＤセンサなどにより構成されている。
【００１８】
画像処理ＩＣ１０２は、画像読み取り部１０１が読み取った画像を入力画像として一旦大容量メモリ１０６に格納（取得）し、該入力画像に対して回転補正等の様々な画像処理を施してから出力する。画像処理ＩＣ１０２は、専用回路を組み込んだＡＳＩＣであっても構わないし、画像処理機能を有した汎用ＣＰＵなどであっても構わない。
【００１９】
大容量メモリ１０６は、ＳＤＲＡＭやＤＤＲ−ＳＤＲＡＭなどのＤＲＡＭを利用した揮発性メモリであっても構わないし、画像読み取り装置に接続される外部記憶装置であっても構わない。
【００２０】
次に、画像処理ＩＣ１０２の構成例について説明する。
【００２１】
制御部１０４は、画像処理ＩＣ１０２を構成する各部の動作制御を行うものであり、ＣＰＵ等のプロセッサと、ＲＡＭやＲＯＭ等のメモリ装置と、を有するものである。プロセッサはメモリ装置に格納されているコンピュータプログラムやデータを用いて処理を実行することで、画像読み取り装置が行うものとして後述する各処理を実行若しくは制御する。
【００２２】
画像入力部１０３は、画像読み取り部１０１から出力された画像を入力画像として取得し、該取得した入力画像を、画像メモリＩ／Ｆ部１０５を介して大容量メモリ１０６（第１記憶部）に格納する。
【００２３】
小容量高速メモリ１０７（第２記憶部）は、大容量メモリ１０６よりも容量が小さいメモリである。また、小容量高速メモリ１０７は、大容量メモリ１０６よりも高速にデータの読み書きを行うことができるメモリである。
【００２４】
画像出力部１０８は、画像メモリＩ／Ｆ部１０５から送出された入力画像若しくは回転補正済みの入力画像に対して、ガンマ補正、カラー／グレー変換、二値化処理、圧縮符号化処理、等の画像処理を施してから適当な出力先（外部のコンピュータ等）に対して出力する。
【００２５】
次に、画像メモリＩ／Ｆ部１０５のより詳細な構成について、図２のブロック図を用いて説明する。
【００２６】
画像入力部１０３から出力された入力画像は一旦画像入力バッファ１０５ａに格納され、画像入力バッファ１０５ａに格納された入力画像は、バースト長を長く設定してある程度まとまった単位で、大容量メモリ１０６に転送される。
【００２７】
ここで、回転補正を行うモードが設定されている場合、大容量メモリ１０６に格納されている入力画像は画素ブロック単位で回転画像入出力バッファ１０５ｂを介して小容量高速メモリ１０７に転送される。そして小容量高速メモリ１０７に転送された画素ブロックに対して回転補正がなされると、回転補正済みの画素ブロックは小容量高速メモリ１０７から回転画像入出力バッファ１０５ｂを介して大容量メモリ１０６に転送される。大容量メモリ１０６に転送された回転補正済みの画素ブロックは適宜、画像出力バッファ１０５ｃを介して画像出力部１０８に対して送出される。
【００２８】
一方、回転補正を行うモードが設定されていない場合には、大容量メモリ１０６に格納されている入力画像は、バースト長を長く設定してある程度まとまった単位で、画像出力バッファ１０５ｃを介して画像出力部１０８に対して送出される。
【００２９】
なお、画像読み取り部１０１が記録媒体の表裏を一度に読み取る機能を有する場合、大容量メモリ１０６は、例えば図３に示す如く、表面の画像を格納するための領域である表画像記憶領域１０６ａ、裏面の画像を格納するための領域である裏画像記憶領域１０６ｂ、を有するようにしても構わない。また、大容量メモリ１０６は、上記の回転画像入出力バッファ１０５ｂから転送される回転補正済みの画素ブロックを格納するための領域である回転画像記憶領域１０６ｃを有するようにしても構わない。もちろん、表面、裏面の何れか一方のみを読み取る場合であれば、対応する記憶領域だけを設けるようにすればよい。また、回転補正を行うモードが設定されていない場合には、回転画像記憶領域１０６ｃは設けなくても良い。このように、大容量メモリ１０６内における記憶領域の設け方については、様々な動作モードに応じて適宜変更すればよい。
【００３０】
なお、表画像記憶領域１０６ａ、裏画像記憶領域１０６ｂ、回転画像記憶領域１０６ｃは何れもリングバッファとなっており、新しい画像が入力されると該新しい画像を現時点で保持している画像に上書きして保存する。
【００３１】
次に、大容量メモリ１０６に格納されている入力画像に対する回転補正（該入力画像を角度θだけ回転させる処理）について説明する。本実施形態では、入力画像に対し、縦α画素×横α画素のサイズを有する画素ブロックを単位に回転補正を行う。αの値は予め定められた値であっても良いし、小容量高速メモリ１０７の容量から求めた値であっても良いし、如何なる方法で取得しても構わない。
【００３２】
制御部１０４は、大容量メモリ１０６に格納されている入力画像から、縦α画素×横α画素のサイズを有する画素ブロックを回転補正元画素ブロックとして抽出し、該抽出した回転補正元画素ブロックを、回転画像入出力バッファ１０５ｂを介して、小容量高速メモリ１０７中に設けられている領域Ａに転送する。
【００３３】
そして制御部１０４は、領域Ａに転送した回転補正元画素ブロックを角度θだけ回転させた回転補正済み画素ブロックを、領域Ａとは別個に小容量高速メモリ１０７内に設けられている領域Ｂ内で生成する。もちろん、小容量高速メモリ１０７の容量の関係で領域Ｂが小容量高速メモリ１０７内に設けることができなかった場合には、回転画像入出力バッファ１０５ｂなど、他のメモリ内に領域Ｂを設けても構わない。回転補正済み画素ブロックについて図４を用いて説明する。
【００３４】
図４において４０１は回転補正元画素ブロックであり、４０２は回転補正済み画素ブロックである。本実施形態では、回転補正済み画素ブロック４０２のサイズは、図４に示す如く、回転補正元画素ブロック４０１内でθだけ回転させても該回転補正元画素ブロック４０１からはみ出ないような最大の縦横サイズβ（縦β画素×横β画素）、とする。ここで、α、β、θの関係は以下の式を満たすことになる。
【００３５】
α≧β×ｓｉｎθ＋β×ｃｏｓθ
図４では、α＝１２８（縦１２８画素、横１２８画素）となっている（例えば、小容量高速メモリ１０７（領域Ａ）の容量が１６３８４Ｂｙｔｅ、入力画像が８ビットグレー画像である場合、小容量高速メモリ１０７（領域Ａ）が保持可能な最大の画素ブロックサイズは１２８画素×１２８画素となる）。また、図４ではθ＝３度となっている。然るにこの場合、β≦１２８画素／（ｓｉｎ３°＋ｃｏｓ３°）＝１２１．７９画素となり、且つβは整数であることから、βの取り得る最大の整数（β≦α／（ｓｉｎθ＋ｃｏｓθ）を満たす最大の整数）は１２１となる。すなわち、３度傾斜した画素ブロックを１２８画素×１２８画素のサイズの領域にはみ出すことなく格納する場合に、該画素ブロックが取り得る最大のサイズは１２１画素×１２１画素であることが分かる。
【００３６】
然るに図４の場合、制御部１０４は、回転補正元画素ブロック４０１をθだけ回転させた画像から、縦β画素×横β画素のサイズを有する画像を回転補正済み画素ブロック４０２として抽出し、該抽出した回転補正済み画素ブロック４０２を領域Ｂに格納する。なお、回転補正元画素ブロックと同じ中心位置を有し且つβ画素×横β画素のサイズを有する領域内の画像を回転角度θだけ回転させたものを回転補正済み画素ブロックとして生成しても構わない。
【００３７】
そして制御部１０４は、領域Ｂに格納した回転補正済み画素ブロックを、回転画像入出力バッファ１０５ｂを介して大容量メモリ１０６に転送する。そして制御部１０４は、大容量メモリ１０６に格納されている全ての回転補正済み画素ブロックから成る画像、即ち、回転補正済みの入力画像を、画像出力バッファ１０５ｃを介して画像出力部１０８に対して送出する。なお、回転角度が５度の場合、上記の式を満たすβは１１８となる。
【００３８】
また、画素ブロックを回転させた回転済み画素ブロックを生成する方法には、最も近傍の画素を使用するニアレストネイバーや、周囲の画素に重みづけして求めるバイリニアやバイキュービックなど、様々な方法があり、どの方法を採用しても構わない。
【００３９】
次に、１枚の入力画像に対して回転補正を行う場合に、制御部１０４が行う処理について、図６のフローチャートを用いて説明する。
【００４０】
＜ステップＳ６０１＞
制御部１０４は画像読み取り部１０１を制御して記録媒体に記録された情報を画像として読み取らせるので、画像読み取り部１０１は読み取った画像に対してシェーディング処理などの画像処理を施した後、該画像を画像入力部１０３に対して送出する。
【００４１】
＜ステップＳ６０２＞
画像入力部１０３は、画像読み取り部１０１から受けた画像を入力画像として取得し、該入力画像を画像メモリＩ／Ｆ部１０５に対して送出する。画像入力部１０３から出力された入力画像は一旦画像入力バッファ１０５ａに格納され、画像入力バッファ１０５ａに格納された入力画像は、バースト長を長く設定してある程度まとまった単位で、大容量メモリ１０６に転送される。
【００４２】
＜ステップＳ６０３＞
制御部１０４は、回転補正を行うモードが設定されているか否かを判断する。このモードは、例えば本装置が有するタッチパネル画面上に設定画面を表示させ、そこに「傾き補正」や「斜行補正」などのチェックボックスを表示させ、ユーザが該チェックボックスを有効にした場合に設定される。また、外部の装置において設定しても構わない。このように、回転補正を行うモードの設定方法はこの方法に限るものではない。
【００４３】
この判断の結果、回転補正を行うモードが設定されている場合には、処理はステップＳ６０６に進み、回転補正を行うモードが設定されていない場合には、処理はステップＳ６０４に進む。
【００４４】
＜ステップＳ６０４＞
制御部１０４は、大容量メモリ１０６に転送された入力画像を、バースト長を長く設定してある程度まとまった単位で、画像出力バッファ１０５ｃを介して画像出力部１０８に対して送出する。画像出力部１０８は、画像メモリＩ／Ｆ部１０５から送出された入力画像に対して、ガンマ補正、カラー／グレー変換、二値化処理、圧縮符号化処理、等の画像処理を施してから適当な出力先に対して出力する。なお、画像出力部１０８がこのような画像処理を行うことは必須ではなく、画像出力部１０８は、画像メモリＩ／Ｆ部１０５から送出された入力画像をそのまま適当な出力先に対して出力し、該出力先にてこのような画像処理を行うようにしても構わない。
【００４５】
＜ステップＳ６０６＞
制御部１０４は、大容量メモリ１０６に格納された入力画像に対する回転補正における回転角度を取得する。この回転角度は、ユーザが上記のタッチパネル画面上で指定した角度であっても良いし、入力画像を解析して求めた角度であっても構わない。入力画像を解析して回転角度を求める方法は周知であり、如何なる方法を採用しても構わない。例えば、入力画像内の文字列の並び方向が行方向であるのかそれとも列方向であるのかを認識し、行方向である場合には、水平方向（副走査方向）に対する文字列の並び方向の角度を回転角度とする。また、文字列の並び方向が列方向である場合には、垂直方向（走査方向）に対する文字列の並び方向の角度を回転角度とする。また、入力画像内の記録媒体の端部（エッジ）を検出し、入力画像の水平方向（垂直方向）の一辺に対する水平方向（垂直方向）のエッジの角度を回転角度としても構わない。
【００４６】
また、大容量メモリ１０６に格納された入力画像からではなく、画像入力バッファ１０５ａに格納された入力画像から回転角度を求めても構わないし、回転角度は、どの時点における入力画像から求めても構わない。
【００４７】
＜ステップＳ６０７＞
制御部１０４は、ステップＳ６０６で取得した回転角度（実際には回転角度の絶対値）が閾値以上であるか否かを判断する。この判断の結果、閾値以上であると判断した場合、即ち、時計回り若しくは反時計回りにおける回転角度が閾値以上である場合には、回転補正を行うものと判断し、処理はステップＳ６０８に進む。一方、閾値未満であると判断した場合、即ち、時計回り若しくは反時計回りにおける回転角度が閾値未満である場合には、回転補正は行わないものと判断し、処理はステップＳ６０４に進む。
【００４８】
＜ステップＳ６０８＞
制御部１０４は、上記の処理により、αとθとを用いてβを求める。
【００４９】
＜ステップＳ６０９＞
制御部１０４は、回転補正済みの入力画像を縦β画素×横β画素のサイズを有する画素ブロック（回転補正済み画素ブロック）を単位に分割した場合における未選択の回転補正済み画素ブロックを選択し、該選択した回転補正済み画素ブロックを得るために入力画像から抽出する画素ブロックを特定する。そして制御部１０４は、該特定した画素ブロックを大容量メモリ１０６に格納されている入力画像から抽出し、該抽出した画素ブロックを回転画像入出力バッファ１０５ｂを介して小容量高速メモリ１０７中の領域Ａに転送する。
【００５０】
＜ステップＳ６１０＞
制御部１０４は、ステップＳ６０９で領域Ａに転送した画素ブロックを上記の回転角度θだけ回転させた画像から、縦β画素×横β画素のサイズを有する画像を、回転補正済み画素ブロックとして抽出し、該抽出した回転補正済み画素ブロックを小容量高速メモリ１０７中の領域Ｂに格納する。そして制御部１０４は、領域Ｂに格納した回転補正済み画素ブロックを、回転画像入出力バッファ１０５ｂを介して大容量メモリ１０６に転送する。
【００５１】
上記の通り、画素ブロックを回転させた回転済み画素ブロックを生成する方法には、最も近傍の画素を使用するニアレストネイバーや、周囲の画素に重みづけして求めるバイリニアやバイキュービックなど、様々な方法があり、どの方法を採用しても構わない。
【００５２】
＜ステップＳ６１１＞
制御部１０４は、ステップＳ６０９で全ての回転補正済み画素ブロックを選択したか否かを判断する。この判断の結果、全ての回転補正済み画素ブロックを選択した場合には、処理はステップＳ６０４に進み、未選択の回転補正済み画素ブロックが残っている場合には、処理はステップＳ６０９に戻る。
【００５３】
なお、ステップＳ６１１からステップＳ６０４に処理が進んだ場合、制御部１０４は、大容量メモリ１０６に格納されている回転補正済みの入力画像を、バースト長を長く設定してある程度まとまった単位で、画像出力バッファ１０５ｃを介して画像出力部１０８に対して送出する。画像出力部１０８は、画像メモリＩ／Ｆ部１０５から送出された回転補正済みの入力画像に対して、ガンマ補正、カラー／グレー変換、二値化処理、圧縮符号化処理、等の画像処理を施してから適当な出力先に対して出力する。なお、画像出力部１０８がこのような画像処理を行うことは必須ではなく、画像出力部１０８は、画像メモリＩ／Ｆ部１０５から送出された回転補正済みの入力画像をそのまま適当な出力先に対して出力し、該出力先にてこのような画像処理を行うようにしても構わない。
【００５４】
なお、図６のフローチャートでは、大容量メモリ１０６に全ての回転補正済み画素ブロックが格納されてから画像出力部１０８への出力を行ったが、例えば水平１ライン分の回転補正済み画素ブロックが生成されるたびに、該水平１ライン分の回転補正済み画素ブロックを画像出力部１０８に対して送出しても良い。図５に、回転補正元画素ブロック４０１、回転補正済み画素ブロック４０２の関係を示す。
【００５５】
なお、本実施形態では、画素ブロックを単位に回転補正を行ったが、回転補正の単位はこれに限るものではなく、入力画像全体に対して一度の回転補正を行うようにしても構わない。
【００５６】
［第２の実施形態］
本実施形態は、第１の実施形態に係る画像読み取り装置に、記録媒体の傾きを検知するための原稿検知部を加えたものである。本実施形態に係る画像読み取り装置の機能構成例を図７に示す。図７において、図１に示した機能部と同じ機能部には同じ参照番号を付しており、該機能部に係る説明は省略する。また、第２の実施形態以降では、第１の実施形態との差分について重点的に説明し、以下で特に触れない限りは、第１の実施形態と同様であるものとする。
【００５７】
原稿検知部７０９は、画像読み取り装置内に搬送される記録媒体の傾きを検知するためのものである。記録媒体の傾きを検知するための構成には様々な構成が考えられる。本実施形態では図８に示す如く、矢印８０２の方向に搬送される記録媒体８０１に対して画像読み取り部１０１（例えばラインセンサ）が読み取り動作を行う一方、搬送方向とは直交する方向に複数個配置されたセンサ８０４を原稿検知部７０９として用いる。
【００５８】
このセンサ８０４は、搬送路を通過する記録媒体の有無を検知するセンサで構成しても良い。例えば、赤外光源を利用した紙検知センサであっても良いし、レバーを利用した紙検知センサであっても良いし、超音波を利用したセンサであっても良いし、それらを組み合わせたセンサであっても良い。何れにせよ、それぞれのセンサ８０４による記録媒体の有無の検知結果の時系列を得ることで、センサ８０４間の距離、記録媒体の搬送速度、それぞれのセンサ８０４において初めて記録媒体を検知したタイミング、から、記録媒体の端部の傾きを検知することができる。
【００５９】
また、原稿検知部７０９を画像読み取り部１０１と同じラインセンサなどにより構成しても構わない。その場合、制御部１０４は、原稿検知部７０９による記録媒体のスキャン結果から周知の技術でもって記録媒体の傾きを求めることができる。その場合、原稿検知部７０９における読み取り解像度は、画像読み取り部１０１と同じかそれよりも低くても構わない。
【００６０】
［第３の実施形態］
図９に示す如く、ステップＳ６０９でＮ番目に選択した回転補正済み画素ブロック９０２を得るために入力画像から抽出する回転補正元画素ブロック９０１と、ステップＳ６０９で（Ｎ＋１）番目に選択した回転補正済み画素ブロック９０４を得るために入力画像から抽出する回転補正元画素ブロック９０３と、には互いに重複する領域９０５が存在する。このような重複する領域は、小容量高速メモリ１０７の記憶領域のサイズ、回転補正済み画素ブロックのサイズ、回転角度θ、等を用いれば、周知の方法で求めることができる。
【００６１】
然るに、領域Ａに転送した回転補正元画素ブロック９０１を回転角度θだけ回転補正した回転補正済み画素ブロック９０２を領域Ｂ内で作成し、該作成した回転補正済み画素ブロック９０２を回転画像入出力バッファ１０５ｂを介して大容量メモリ１０６に転送した後、領域Ａに回転補正元画素ブロック９０３を転送するのであるが、その際、領域９０５に相当する部分（図１０の１００２）は、大容量メモリ１０６から転送することなく、従前に領域Ａに格納されている「回転補正元画素ブロック９０１において領域９０５に相当する部分（図１０の１００１）」を再利用する。
【００６２】
［第４の実施形態］
本実施形態では、傾き補正を行った後、更に９０度回転させて出力する場合について説明する。図１１に示す如く、先ずは、左下隅の位置にある画素ブロック１１０１について回転角度に９０度を加えた角度だけ時計回りに回転補正を行い、次に、その直上にある画素ブロック１１０２について回転角度に９０度を加えた角度だけ時計回りに回転補正を行う。一列分のラインブロックを生成したら、次のラインブロックを生成するため、画素ブロック１１０３について回転角度に９０度を加えた角度だけ時計回りに回転補正を行う。図１２の場合、回転角度が１０度である場合における画素ブロックの時計回りの回転を示している。
【００６３】
このように、回転させる画素ブロックの選択順を変更するだけで、補正回転角度に９０度単位の回転角を加算することで特殊な画像バッファを追加することなく、回転補正を行うことができる。
【００６４】
［第５の実施形態］
第１の実施形態では、ステップＳ６０９において、回転補正済みの入力画像の縦横サイズがβの整数倍であることを前提としているが、本実施形態では、回転補正済みの入力画像の縦横サイズがβの整数倍ではない場合について説明する。
【００６５】
小容量高速メモリ１０７（領域Ａ）の容量が１６３８４Ｂｙｔｅ、入力画像が８ビットグレー画像である場合、小容量高速メモリ１０７（領域Ａ）が保持可能な最大の画素ブロックサイズは、第１の実施形態で説明したように、１２８画素×１２８画素（α＝１２８）となる。また、θ＝３度とすると、第１の実施形態で説明したように、β≦１２８画素／（ｓｉｎ３°＋ｃｏｓ３°）＝１２１．７９画素となり、且つβは整数であることから、βの取り得る最大の整数は１２１となる。
【００６６】
ここで、図１３に示す如く、回転補正済み入力画像の水平方向における画素数ＸＯＵＴ（１３０１）が６８０画素であるとすると、該回転補正済み入力画像を水平方向に１２１画素毎に分割した場合、下記の如く、水平方向に５．６２分割することになる。
【００６７】
分割数＝ＸＯＵＴ／β＝６８０／１２１＝５．６２
つまり、回転補正済み入力画像における水平方向だけに着目すると、左端から５つの画素ブロックについては水平方向のサイズは１２１画素と均等であるものの、左端から６つ目の画素ブロックの水平方向のサイズは７５画素となり、この６つ目の画素ブロックの変換効率が悪くなる。つまり、６つの回転補正済み画素ブロックを生成する際の変換効率は、小容量高速メモリ１０７（領域Ａ）の容量が１６３８４Ｂｙｔｅであるから、６ブロック分の転送は、１６３８４Ｂｙｔｅ×６画素ブロックで合計９８３０４Ｂｙｔｅとなり、６つ分の画素ブロックは６８０画素×１２１画素で８２２８０画素、つまり８２２８０Ｂｙｔｅとなり、変換効率は８３．７％となる。
【００６８】
そこで本実施形態では、この場合は水平方向の分割数を、５．６２を超える最小の整数である６に決定（調整）する。回転補正済み入力画像の水平方向を６分割すると、回転補正済み画素ブロックの水平方向のサイズ１３０２は６８０画素／６＝１１３．３画素、つまり、１１４画素となる。同様の対処を垂直方向にも適用することで、回転補正済み画素ブロックのサイズを１１４画素×１１４画素と確定することができ、回転補正済みの入力画像を水平方向及び垂直方向に均等に分割することができる。なお、このとき、小容量高速メモリ１０７（領域Ａ）に求められるサイズαは、α≧１１４×（ｓｉｎ３°＋ｃｏｓ３°）＝１１９．８であるから、１２０となり、１２０画素×１２０画素のサイズの画像を保持できる容量があれば良いことになる。また、このときの６つの回転補正済み画素ブロックを生成する際の変換効率は、小容量高速メモリ１０７（領域Ａ）の容量が１２０画素×１２０画素であるから、６ブロック分の転送は、１２０×１２０×６＝８６４００画素、つまり８６４００Ｂｙｔｅとなり、６つ分の画素ブロックは６８０画素×１１４画素で７７５２０画素、つまり７７５２０Ｂｙｔｅとなり、変換効率は８９．７％となる。
【００６９】
なお、これまでの説明では、回転補正済み入力画像を分割する領域は正方形であるもの仮定して説明してきたが、回転補正済み入力画像の水平方向の分割については上記の通り均等サイズでもって分割し、垂直方向については、小容量高速メモリ１０７の容量に応じたサイズとしても構わない。
【００７０】
回転補正済み画素ブロックのサイズをβｘ画素（水平方向のサイズ）×βｙ（垂直方向のサイズ）とした場合に、該回転補正済み画素ブロックに対応する入力画像上の画素ブロック（θだけ傾斜した画素ブロック）の左端と右端との間の距離αｘは図４に示す如く、αｘ＝βｘ×ｃｏｓθ＋βｙ×ｓｉｎθであるから、βｘ＝１１４、θ＝３度の場合は、αｘ＝１１４×ｃｏｓ３°＋βｙ×ｓｉｎ３°となる。また、このような回転補正済み画素ブロックに対応する入力画像上の画素ブロック（θだけ傾斜した画素ブロック）の上端と下端との間の距離αｙは図４に示す如く、αｙ＝βｘ×ｓｉｎθ＋βｙ×ｃｏｓθであるから、βｘ＝１１４、θ＝３度の場合は、αｙ＝１１４×ｓｉｎ３°＋βｙ×ｃｏｓ３°となる。ここで、小容量高速メモリ１０７（領域Ａ）の容量を１６３８４画素とすると、αｘ×αｙ≦１６３８４が満たされることになるから、以下の式が成立することになる。
【００７１】
（１１４×ｃｏｓ３°＋βｙ×ｓｉｎ３°）×（１１４×ｓｉｎ３°＋βｙ×ｃｏｓ３°）≦１６３８４
この式から、βｙ≦１３０．０１２となり、これを満たす最大の整数１３０がβｙの値となる（１３０３）。なお、この場合、上記の式から、αｘ＝１２０、αｙ＝１３５となり、図１４に示す如く、回転補正済み画素ブロック１４０１は回転補正元画素ブロック１４０２からはみ出さないサイズとなっている。
【００７２】
このときの６つの回転補正済み画素ブロックを生成する際の変換効率は、小容量高速メモリ１０７（領域Ａ）の容量が１２０画素×１３５画素であるから、６ブロック分の転送は９７２００画素、つまり９７９２０Ｂｙｔｅとなり、６つ分の画素ブロックは６８０画素×１３０画素で８８４００画素、つまり８８４００Ｂｙｔｅとなり、変換効率は９０．９％となる。
【００７３】
同様に、１３０４に示すような回転補正済み入力画像の下端のラインブロックを生成する際には、回転補正済み入力画像の最終ラインの画素と、１３０４のように回転補正済み画素ブロックの最終ラインの画素を揃えることで、無駄な転送を防ぎ、変換効率を上げることができる。なお、このラインブロックにおけるブロックのサイズは、正方形にする方法でも良いし、バーストサイズに応じて幅方向の画素数を大きく設定しても良い。
【００７４】
［第６の実施形態］
第１〜５の実施形態は何れも、記録媒体を読み取ってその読み取り画像に対する回転補正を行う画像読み取り装置における動作として説明した。しかし、回転補正の対象となる画像を他の方法でもって取得し、該取得した画像に対して回転補正を行って出力する装置であれば、第１〜５の実施形態を適用可能な装置は画像読み取り装置以外の装置であっても構わない。
【００７５】
例えば、一般のＰＣ（パーソナルコンピュータ）等のコンピュータが有するハードディスクドライブ装置や該コンピュータに接続されているメモリ装置、若しくはネットワークを介して接続されている装置から回転補正の対象となる画像を取得し、該コンピュータが該画像に対して第１〜５の実施形態で説明したような回転補正を行って出力する、という形態も考え得る。
【００７６】
また、第１〜４の実施形態では、回転補正済み画素ブロックは正方形としてきた。しかし、回転補正済み画素ブロックの縦のサイズと横サイズとを異ならせても良く（回転補正済み画素ブロックを長方形としても良く）、その場合は、回転補正済み画素ブロックの水平方向のサイズをβｘ、垂直方向のサイズをβｙとして同様の処理を行えばよい。
【００７７】
このように、回転補正の対象となる入力画像のサイズと、該回転補正における回転角度と、を用いて、出力画像のサイズを求め、該求めたサイズを有する該出力画像を、該入力画像に対する該回転補正により求め（計算し）、該出力画像を出力することで、例えば、２種類以上の用紙サイズを含む複数枚の記録媒体を順次スキャンして得られる画像のそれぞれについて上記のような回転補正を行う場合であっても、その用紙サイズに応じた変換効率の良い回転補正を実現させることができる。
【００７８】
また、上記の実施形態において説明した画像読取装置は、以下のような構成を有する画像読取装置の一例であるともいえる。すなわち、この画像読取装置は、シート材の画像を読み取り画像データとして出力する画像読取部と、読み取り画像データの少なくとも一面以上を記憶する第一記憶部と、読み取り画像データを記憶し第一記憶部よりも高速でアクセス可能な第二記憶部と、読み取り画像データを複数のブロックに分割してブロックごとに回転処理することで、該読み取り画像データの傾きを補正する制御部とを有する。ここで、制御部は、シート材のサイズおよび傾き角度を検知し、第二記憶部の容量と傾き角度をもとに出力ブロックのサイズを算出し、読み取り画像データを上記算出したサイズをもとに複数の出力ブロックに分割し、出力ブロックを生成するために必要な入力ブロックを算出し、入力ブロックを第一記憶部から第二記憶部に読み出し、入力ブロック内の画像の傾きを補正した出力ブロックを生成し、出力ブロックを第二記憶部から第一記憶部に書き込み、読み取り画像データの傾きを補正する。
【符号の説明】
【００７９】
１０３：画像入力部  １０４：制御部  １０５：画像メモリＩ／Ｆ部  １０７：小容量高速メモリ  １０８：画像出力部
【図１】
2017175463.tif 000003
【図２】
2017175463.tif 000004
【図３】
2017175463.tif 000005
【図４】
2017175463.tif 000006
【図５】
2017175463.tif 000007
【図６】
2017175463.tif 000008
【図７】
2017175463.tif 000009
【図８】
2017175463.tif 000010
【図９】
2017175463.tif 000011
【図１０】
2017175463.tif 000012
【図１１】
2017175463.tif 000013
【図１２】
2017175463.tif 000014
【図１３】
2017175463.tif 000015
【図１４】
2017175463.tif 000016