(58)【調査した分野】(Int.Cl.,DB名)
前記平行線評価手段は、前記平行線評価値として、前記複数の前記直線のそれぞれと前記注目境界点群の境界点のそれぞれとの主走査方向の各位置における副走査方向の距離の総和を算出する
請求項4記載の原稿の傾き量検出装置。
前記傾き線設定手段は、前記注目境界点群のうちの副走査方向の両端となる2つの境界点の主走査方向の位置に基づいて、前記傾き線の傾きの方向が第1方向か前記第1方向と反対の第2方向かを決定する
請求項1ないし8のいずれかに記載の傾き量検出装置。
【発明を実施するための形態】
【0019】
図1には本発明の一実施形態に係る画像処理装置1の概略の構成が、
図2には画像処理装置1およびその制御部100のハードウェア構成が、それぞれ示されている。
【0020】
画像処理装置1は、コピー機、プリンタ、およびファクシミリ機などの機能を集約したMFPである。画像処理装置1は、コピー、画像のデータ化(スキャン)、およびファクシミリ送信などのように、シート状の原稿8から画像を読み取ってその画像データを処理するジョブを実行する際には、原稿8の傾き量を検出する傾き量検出装置として動作する。
【0021】
画像処理装置1は、自動原稿送り装置(ADF:Auto Document Feeder)10、スキャナ20、プリンタ部30、給紙部35、給紙キャビネット40、自動両面ユニット50、操作パネル60、ファクシミリユニット70、通信インターフェース75、制御部100、および補助記憶装置120を備える。
【0022】
自動原稿送り装置10は、給紙トレイ11および排紙トレイ16を有し、給紙トレイ11にセットされた1枚または複数枚の原稿8を排紙トレイ16へ搬送する。搬送中に、スキャナ20によって原稿8の画像が読み取られる。給紙トレイ11は、原稿8の有無を検出するセンサを有する。
【0023】
自動原稿送り装置10は、スキャナ20のプラテンガラス21を覆うカバーとして、背面側の軸を中心に回転して開閉可能に構成されている。画像処理装置1のユーザは、自動原稿送り装置10の前端部を持ち上げてプラテンガラス21を露出させ、プラテンガラス21の上に原稿を載置することができる。
【0024】
スキャナ20は、自動原稿送り装置10によって搬送されている原稿8またはユーザによってプラテンガラス21の上に置かれた原稿8から、それに記録されている画像を光学的に読み取る。スキャナ20は、読み取った画像の各画素の階調値を表わす画像データを制御部100へ送る。
【0025】
なお、自動原稿送り装置10およびスキャナ20の構成については、後にさらに詳しく述べる。
【0026】
プリンタ部30は、電子写真法によって用紙に画像を印刷する。イエロー、マゼンダ、シアンおよびブラックの各色のトナー像を形成するための感光体ドラム31a 、31b 、31c 、31d および露光走査ユニット32a 、32b 、32c 、32dを備える。色の異なる4つのトナー像を転写ベルト33に重ねて転写し、重なったトナー像を給紙部35から搬送されてきた用紙に転写する。
【0027】
給紙部35は、用紙を収納しておくための給紙カセット36,38と、給紙カセット36,38から用紙を繰り出すためのピックアップローラ37,39とを備え、プリンタ部30に用紙を供給する。
【0028】
給紙キャビネット40は、給紙部35と同様に給紙カセット41,43と、給紙カセット41,43から用紙を繰り出すためのピックアップローラ42,44とを備える。ピックアップローラ42,44によって繰り出された用紙は、給紙部35の用紙搬送路を経由してプリンタ部30に供給される。
【0029】
自動両面ユニット50は、両面印刷を可能にするためのユニットであり、片面に画像が印刷された用紙をプリンタ部30から取り込み、表裏を反転させてプリンタ部30へ用紙を戻す。
【0030】
操作パネル60は、ユーザによる入力操作のための画面を表示するタッチパネルディスプレイ61と、ハードキーが配置されたキー入力部62とを有し、入力操作に応じた信号を制御部100に送る。
【0031】
ファクシミリユニット70は、外部のファクシミリ端末との間でG3などのプロトコルを用いて画像データをやりとりする。
【0032】
通信インターフェース75は、パーソナルコンピュータ、スマートフォン、および画像処理装置1に着脱可能なUSBメモリなどの機器と通信回線を介して通信するためのインターフェースである。通信回線として、ローカルエリアネットワーク回線(LAN回線)、インターネット、近距離無線通信回線などが用いられる。
【0033】
制御部100は、画像処理装置1の全体的な制御を受け持つメインコントローラである。
図2に示すように制御部100は、CPU(Central Processing Unit )101、RAM(Random Access Memory)102、ROM(Read Only Memory)103、および画像処理部104を備える。
【0034】
ROM103には、画像処理装置1をコピー機、ファクシミリ機、およびイメージリーダなどとして動作させるために、自動原稿送り装置10、スキャナ20およびプリンタ部30などを制御するプログラムが記憶されている。さらに、画像処理部104を制御して原稿8の傾き量SVの検出および読取り画像の傾き補正を行うための傾き補正用プログラムが記憶されている。これらプログラムは、必要に応じてRAM102にロードされ、CPU101によって実行される。
【0035】
画像処理部104は、スキャナ20から受け取った画像データにシェーディング補正や色収差補正といった読取り光学系の特性に関わる処理を施す。さらに、画像処理部104は、原稿8の傾き量SVを検出するための処理の一部または全部、および検出した傾き量SVに基づいて画像データを補正する傾き補正処理の一部または全部を受け持つ。画像処理部104は、傾き量SVの検出をソフトウェアのみで行う場合よりも高速に行うためのハードウェアを含んで構成される。
【0036】
補助記憶装置120は、制御部100から送られてくる画像データを記憶する。補助記憶装置120として、ハードディスクドライブまたはSSD(Solid State Drive )などが用いられる。
【0037】
図3には自動原稿送り装置10およびスキャナ20の構成が示されている。
【0038】
自動原稿送り装置10は、給紙トレイ11、ピックアップローラ12a、捌きローラ対12b、複数の送りローラ対12c,12d,12e,12f,12g,12h、搬送路13、背景板14,15、および排紙トレイ16などを有する。
【0039】
ピックアップローラ12aは、給紙トレイ11から最上の原稿8を取り出す。捌きローラ対12bは、複数枚の原稿8が重なって取り出されたときに1枚のみを通過させるように回転によって捌く。
【0040】
送りローラ対12c,12d,12e,12f,12g,12hは、搬送路13に沿って間隔をあけて配置されており、給紙トレイ11から取り出された原稿8を搬送し、読取り位置を通過させた後に排紙トレイ16に排出する。
【0041】
原稿8が搬送路13における送りローラ対12eとその次の送りローラ対12fとの間を通過するとき、読取り位置において、原稿8の下面の画像が、静止状態の光源ユニット22を介しイメージセンサ27によって読み取られる。つまり、背景板14の表面上の読取り位置を原稿8が先端側から後端側へと移動することにより、原稿8に対する主走査方向の走査(スキャン)が行われる。
【0042】
背景板14,15は、スキャナ20による読み取りの撮像面に原稿8の背景として映り込む部材である。背景板14は、搬送路13を形成する壁面の一部となるように配置されており、自動原稿送り装置10によって原稿8を搬送しながら画像を読み取る場合に原稿8の背景となる。背景板15は、それを支持する自動原稿送り装置10を閉じたときにプラテンガラス21と対向して配置され、プラテンガラス21の上面に置かれた静止状態の原稿8から画像を読み取る場合に原稿8の背景となる。
【0043】
背景板14,15は、樹脂、金属またはこれらを組み合わせた複合材料などからなり、その表面は白色であるかまたは光沢を有する。背景板14,15の両者の材質が同じでもよいし、異なっていてもよい。
【0044】
スキャナ20は、フラットヘッド型であり、光源ユニット22、ミラーユニット23、結像レンズ26、およびイメージセンサ27を有する。光源ユニット22は、原稿8を照射する光源24と、原稿8からの反射光をミラーユニット23へ導くミラー25aとを有する。光源24は例えばLEDアレイであり、原稿8をその搬送方向と直交する方向の全長にわたって照射可能である。ミラーユニット23は、光源ユニット22から入射する光を折り返してイメージセンサ27へ入射させるミラー25b,25cを有する。光源ユニット22およびミラーユニット23は、プラテンガラス21と平行に移動可能に構成されている。
【0045】
自動原稿送り装置10によって原稿8を搬送しながら画像を読み取る場合には、光源ユニット22およびミラーユニット23は移動しない。光源ユニット22は背景板14の下方の位置で静止したままである。光源24は、背景板14の表面を通過する原稿8の下面に向けて、原稿8の進行方向における後方側からプラテンガラス21越しに例えば白色の光を照射する。この光が原稿8および背景板14で反射してミラー25a,25b,25cおよび結像レンズ26を経てイメージセンサ27に入射する。これにより、原稿8および背景板14の照射された部分の像がイメージセンサ27の撮像面に結像する。イメージセンサ27は、結像した像を一列に並ぶ画素の列として読み取る。イメージセンサ27の駆動によって主走査が行われ、原稿8の搬送によって副走査が行われる。主走査と副走査とにより原稿8の画像が背景板14とともに線順次に読み取られる。
【0046】
一方、プラテンガラス21の上に置かれた静止状態の原稿8から画像を読み取る場合には、光源ユニット22は一定の速度で移動し、ミラーユニット23は光路長が一定になるように光源ユニット22の半分の速度で移動する。この場合、光源ユニット22およびミラーユニット23の移動によって副走査が行われる。主走査はイメージセンサ27の駆動によって行われる。
【0047】
以下、自動原稿送り装置10を用いて原稿8を搬送しながら画像を読み取る場合を例として、原稿8の傾き量を検出する機能について説明する。ただし、背景板15の表面に配置された静止状態の原稿8から画像を読み取る場合にも、原稿8の傾き量を検出することができる。
【0048】
図4には原稿8および背景板14を底面視した様子の一例とそれに対応した入力画像G10とが示されている。つまり、
図4は、
図3における背景板14およびその表面を通過する原稿8を、光源ユニット22の側から見て示す図である。
【0049】
図4において、原稿8が副走査方向M2に搬送されて背景板14の表面を通過する期間に、所定の密度で周期的に主走査が行われる。
図4(A)に示す通り、主走査方向M1は副走査方向M2と直角に交差する方向である。主走査と副走査とにより読み取られる領域200は、原稿8の全体を包含する大きさの矩形領域である。
【0050】
原稿8の前端8aの付近が光源24によって照射されている間、原稿8の前側に帯状の影9が生じる。影9は、原稿8の主走査方向M1の全長にわたって延び、原稿8の厚さに応じた幅をもつ。この影9が原稿8および背景板14とともにイメージセンサ27によって撮像される。
【0051】
つまり、
図4(B)のように原稿部80と背景部140と影部90とを有した入力画像G10が読取り画像として得られる。原稿部80は原稿8に対応し、背景部140は背景板14に対応し、影部90は影9に対応する。入力画像G10は、原稿8の前後左右の各端辺を含んだ矩形領域を読み取った画像であり、通常は原稿部80の全体を含んだ画像、またはその一部の画像である。
【0052】
画像処理装置1は、背景部140と影部90とを有した入力画像G10に基づいて、画像処理によって原稿8の傾き量を検出する。
【0053】
なお、
図4(B)の例において、原稿部80は、主走査方向M1に対して右下がりに傾いている。すなわち、入力画像G10の前端辺(図での上辺)と原稿部80の前端辺との距離は、左側よりも右側の方が大きい。
【0054】
図5には入力画像G10の副走査方向における階調値MDの変化の例が各曲線KSによって示されている。
図5に示される各曲線KSは、主走査方向に異なる各画素の位置に対応したものである。階調値MDは、明度または輝度であって、明るい画素では大きく、暗い画素では小さい。
【0055】
入力画像G10における副走査方向M2の階調値MDの変化をみると、原稿8の下地色が明色である一般的な場合には、背景部140で大きく(明るく)、影部90に移るにつれて次第に小さくなり(暗くなり)、影部90から原稿部80へ移るにつれて大きくなる。
【0056】
背景板14の表面は上述した通り白色または光沢を有するので、背景部140の階調値MD0は、通常、最大となり、他の部分よりも確実に大きい。背景部140の階調値MD0を、光源24の出力調整またはイメージセンサ27の感度調整によって、階調範囲の上限値またはその近辺に設定することができる。
【0057】
また、影部90は背景板14のうちの遮光された部位の像であるので、影部90の階調値MDは背景部140の階調値MD0よりも確実に小さい。ただし、影9は、原稿8の前端8aから遠いほど、照射光の回り込みの影響などで淡くなりやすい。このため、背景部140の近くでは影部90の階調値MDは大きく、背景部140から遠くなるにつれて小さくなる。
【0058】
これに対して、原稿部80の階調値MDは、原稿8の下地色および表面の光反射率などの光学特性に依存する。また、原稿8の縁部にまで画像が存在する場合にはその画像の濃度にも依存する。したがって、原稿部80の階調値が影部90の階調値より必ずしも大きいとは限らず、影部90と同程度となる場合もある。
【0059】
そこで、画像処理装置1は、原稿8の光学特性などの如何にかかわらず原稿8の傾き量SVを検出するため、影部90と原稿部80との境界点(原稿部80に近い側の境界点)ではなく、背景部140と影部90との境界点KT(背景部140に近い側の境界点)を、原稿8と背景板14との境界点として検出する。すなわち、境界点が複数検出された場合に、背景板14に対し副走査方向に最も近い位置に存在する境界点KTを選択する。
【0060】
詳しくは、副走査方向M2の先頭側から順に各画素の階調値MDを調べていき、階調値MDがしきい値th3以下である最初に出現した画素の副走査方向M2の位置Yを境界点KTとする。同様の手順で主走査方向M1の各画素の位置Xについて境界点KTを検出する。しきい値th3を「境界点のしきい値th3」と言うことがある。
【0061】
しきい値th3は、第1のしきい値th1以下であるという条件JK1、および背景板14の階調値MD0に対する差が第2のしきい値th2以上であるという条件JK2の、両方を満足する値である。条件JK1は固定的な条件である。条件JK2は背景板14の光学特性および光源24の出力に応じて変わる可変の条件である。
【0062】
図5に示す各曲線KSにおいて、副走査方向の位置が進むにつれて階調値MDが背景部140の階調値MD0から低下していき、その途上において複数の画素についての階調値MDがサンプリングされる。そして、階調値MDが最初にしきい値th3以下となったときの画素が、境界点KTとして検出される。階調値MDがしきい値th3となる画素が複数検出された場合も、最初にしきい値th3以下となった画素が境界点KTとして選択される。
【0063】
なお、条件JK2を満足する最小の階調値MDが第1のしきい値th1よりも大きい場合は、境界点のしきい値th3を第1のしきい値th1と一致させてもよい。また、条件JK2を満足する最小の階調値MDが第1のしきい値th1よりも小さい場合は、条件JK2を満足する最小の階調値MDを境界点のしきい値th3としてもよい。
【0064】
画像処理装置1は、検出した境界点KTに基づいて、原稿8の前端8aに対応した影9の傾き量を原稿8の傾き量SVとして検出する。
【0065】
ところで、影9の幅は、原稿8の撓み(湾曲)および浮き上がりの影響を受けることによって不均一となる。つまり、主走査方向M1の各位置Xの境界点KTが主走査方向M1に一直線状に並ばずに、不規則に曲がる曲線を描くように並ぶ場合が起こり得る。画像処理装置1によると、このような場合にも原稿8の傾き量SVを検出することができる。
【0066】
図6には画像処理装置1の機能的構成の例が、
図7には中点設定部304の機能的構成の例が、それぞれ示されている。また、
図8には傾き量SVの検出方法の概要が模式的に示されている。
【0067】
図6において、画像処理装置1には、境界点検出部301、境界点メモリ302、注目境界点群設定部303、中点設定部304、傾き線設定部305、傾き絞込み部306、傾き量決定部307、傾き補正部308、および検出ピッチ設定部309などが設けられる。これらの機能は、上に述べた制御部100のハードウェア構成により、および上に述べた傾き補正用プログラムがCPU101によって実行されることにより実現される。
【0068】
境界点検出部301は、走査手段であるスキャナ20から入力画像G10を取得し、入力画像G10における副走査方向M2の階調値MDの変化から原稿8と背景板14(または背景板15)との境界点KTを検出する。階調値MDは、上に述べた通り、明るいほど大きい階調情報(明度情報)である。ただし、濃度のように暗いほど大きい階調情報でもよい。
【0069】
境界点検出部301は、入力画像G10の各画素のうち、背景板14,15に対し副走査方向M2の近辺に存在し、明度情報の階調値MDが上に述べたように第1のしきい値th1以下であってかつ背景板14,15の明度情報の階調値MD0に対する差が第2のしきい値th2以上である画素を、境界点KTとして検出する。主走査方向M1の画素単位の位置Xごとに境界点KTを検出する手順は上に述べた通りである。
【0070】
境界点検出部301は、主走査方向M1の各位置Xについて検出した境界点KTを境界点メモリ302に記憶させる。入力画像G10の主走査方向M1のサイズ(画素数)の最大値が例えば8192である場合、最大で8192個の境界点KTが境界点メモリ302に格納される可能性がある。実際には、境界点KTの個数は原稿8のサイズに応じた数となる。境界点メモリ302は、例えばRAM102に設けられる。
【0071】
境界点KTとして格納するデータは、副走査方向M2の位置Yを表わすものであり、入力画像G10の副走査方向M2の画素番号(主走査ライン番号)、または副走査方向M2の先頭の画素から境界点KTまでの画素数のカウント値であってよい。また、主走査方向M1の画素の配列順にアドレスを割り当て、各境界点KTの主走査方向M1の位置Xを境界点メモリ302のアドレスで特定するようにしてもよい。位置Xと位置Yとの組を境界点KTのデータとして格納してもよい。
【0072】
なお、位置Yを表わすデータの値は、入力画像G10の前端に近いほど小さく、前縁から遠いほど大きいものとする。
【0073】
境界点検出部301は、検出ピッチ設定部309からの通知に従って、原稿8の主走査方向M1のサイズに応じて、境界点KTを検出する複数の位置Xの主走査方向M1のピッチDxを変更する。
【0074】
なお、入力画像G10における主走査方向M1の両端部では階調値MDが異常になりやすい。また、両端部以外でもノイズの影響を受けて階調値MDが異常(イレギュラー)になることがある。したがって、イレギュラーな境界点KTが検出された場合に、それを無効にして以後の処理の対象(検出の結果)から除外することとしてもよい。例えば、境界点KTとして検出された位置Yが、それに隣接する正常な境界点KTの位置Yに対し、設定されたしきい値以上の差を有する場合に、それをイレギュラーな境界点KTであるとし、例えばそれを境界点メモリ302に格納しない。
【0075】
注目境界点群設定部303は、傾き量SVを検出するための以降の処理に用いる注目境界点群KTGを定める。注目境界点群KTGは、
図8(A)に示すように、主走査方向M1に沿って検出された複数の境界点KTのうちの主走査方向M1に互いに離れた2つの境界点KT1,KTnおよびこれら2つの境界点KT1,KTnの間の1以上の境界点KTからなる。つまり、注目境界点群設定部303は、検出された境界点KTのうちから、特定の複数の境界点KTを選択し、これらを注目境界点群KTGとして設定する。
【0076】
注目境界点群KTGの両端の境界点KT1,KTnは、検出されたすべての境界点KTからなる境界点群KTGbにおける主走査方向M1の両端の境界点KTでもよいし、他の境界点KTでもよい。つまり、注目境界点群KTGは、境界点群KTGbの全体であってもよいし一部分であってもよい。ただし、傾き量SVの検出の精度を高める上で、注目境界点群KTGの境界点KTの個数は、より多いのが好ましい。
【0077】
境界点群KTGbの一部分を注目境界点群KTGに定める場合の例としては、上述したようにイレギュラーな境界点KTを除去したことによって、検出された境界点KTの主走査方向M1の位置の連続性が途切れた場合がある。この場合、最も長く連続した部分を注目境界点群KTGに定めればよい。また、原稿8の端辺のうちの浮き上がりが生じやすい部位が既知の場合には、境界点群KTGbのうちの当該浮き上がりが生じやすい部位以外に対応した部分(端辺の直線性が良好と推察される部分)を注目境界点群KTGに定めることができる。
【0078】
中点設定部304は、注目境界点群KTGの主走査方向M1の位置Xおよび副走査方向M2の位置Yに基づいて、
図8(A)に示すように、原稿8の端辺8aの全体または一部分を近似するための傾き線Laの中点Pcを定める。例えば、以下の通り、中点Pcの候補を複数定める。そして、複数の候補をそれぞれ評価し、最も好ましい候補を中点Pcに定める。
【0079】
中点設定部304は、
図7に示すように、平行線設定部341、平行線評価部342、平行線再設定部343、および中点位置設定部344を有する。
【0080】
平行線設定部341は、注目境界点群KTGのうちの副走査方向M2の両端となる境界点KT以外を通りかつ主走査方向M1と平行な複数の直線(
図12参照)を設定する。例えば、注目境界点群KTGのうちの副走査方向M2の両端間の距離を4分割する3本の直線L1,L2,L3を設定する。
【0081】
平行線評価部342は、平行線設定部341によって設定された複数の直線L1,L2,L3のそれぞれについて、注目境界点群KTGとの誤差を表わす平行線評価値EV3を算出する。例えば、平行線評価値EV3として、複数の直線L1,L2,L3のそれぞれと注目境界点群KTGの境界点KTのそれぞれとの主走査方向M1の各位置Xにおける副走査方向の距離y1,y2,y3の総和Σy1,Σy2,Σy3を算出する。
【0082】
平行線評価値EV3は、距離y1,y2,y3の総和Σy1,Σy2,Σy3以外であってもよい。例えば主走査方向M1の位置Xに応じて重み付けした距離y1’,y2’,y3’の総和を平行線評価値EV3として算出してもよい。
【0083】
平行線再設定部343は、3本の直線L1,L2,L3が設定された場合に、中央(2本目)の直線についての平行線評価値EV3が最小になるまで、平行線評価値EV3が最小である直線が中央の直線となるようにする3本の直線L1,L2,L3の再設定を繰り返す。そして、3本の直線L1,L2,L3を再設定するごとに平行線評価部342に平行線評価値EV3を算出させる。
【0084】
平行線再設定部343は、中央の直線についての平行線評価値EV3が最小になったときに、当該中央の直線の副走査方向M2の位置Ycを中点位置設定部344に通知する。
【0085】
中点位置設定部344は、通知された位置Yc、すなわち設定(再設定を含む)された複数の直線L1,L2,L3のうちの算出された平行線評価値EV3が最も小さい直線の副走査方向M2の位置を、傾き線Laの中点Pcの副走査方向M2の位置Ycに定める。
【0086】
また、中点位置設定部344は、注目境界点群KTGの主走査方向M1の中央の位置を中点Pcの主走査方向M1の位置Xcに定める。
【0087】
図6に戻って、傾き線設定部305は、傾き線Laとして、中点Pcを通り主走査方向M1に対して傾いた直線を設定する。傾き線設定部305は、傾き線Laの候補として、傾きの方向が互いに反対である2本の傾き線L4,L5(
図17参照)を設定する。そして、傾き線L4,L5を注目境界点群KTGとの誤差に基づいて評価し、評価の高い方を傾き線Laに設定する。
図8(B)の例では、傾き線Laは、主走査方向M1に平行な状態から中点Pcを中心に反時計回りに回転させた方向に傾いている。
【0088】
傾き線設定部305は、傾き線Laの候補を2本設定して評価するものに限らず、注目境界点群KTGのうちの副走査方向M2の両端となる2つの境界点KTの主走査方向M1の位置Ymax,Yminに基づいて、傾き線Laの傾きの方向が第1方向かそれと反対の第2方向か決定するものであってもよい。つまり、位置Ymaxが主走査方向M1の中央に対する左側でありかつ位置Yminが右側である場合に第1方向とし、逆に位置Ymaxが右側でありかつ位置Yminが左側である場合に第2方向とすることができる。位置Ymax,Yminに基づいて傾き線Laの傾きの方向を決める構成によると、2本の候補を評価する構成よりも短い時間で傾き線Laを設定することができる。
【0089】
傾き絞込み部306は、注目境界点群KTGと傾き線Laとの誤差が小さくなるように傾き線Laの傾き量SVを変更する。傾き絞込み手段306は、傾き線評価部361および傾き線再設定部362を有する。
【0090】
傾き線評価部361は、注目境界点群KTGと傾き線Laとの誤差を表わす傾き線評価値EV4を算出する。例えば、傾き線評価値EV4として、注目境界点群KTGの各境界点KTと傾き線Laとの副走査方向M2の距離の総和を算出する。副走査方向M2の位置Yの差の2乗の総和などの他の数値を算出してもよい。
【0091】
傾き線再設定部362は、算出された傾き線評価値EV4がしきい値th4以下になるまで、傾き線Laの傾き量が再設定ごとに段階的に小さくなるように、傾き線Laを中点Pcを中心に回転した線に置き換える傾き線Laの再設定を繰り返す。そして、傾き線Laを再設定するごとに傾き線評価部361に傾き線評価値EV4を算出させる。
【0092】
しきい値th4は、原稿8の傾き量SVの検出の精度を決める値であり、画像処理装置1の仕様に応じて選定される。しきい値th4は、傾き量SVを角度で表わす場合には、例えば1.0〜5.0度の範囲内の、0.1度刻みの角度に選定される。また、傾き量SVを傾き線Laの主走査方向M1の一端と中点Pcとの副走査方向M2のずれ(画素数)で表わす場合には、例えば100〜200の範囲内の値に選定される。ただし、これら数値に限らない。
【0093】
傾き量決定部307は、注目境界点群KTGと傾き線Laとの誤差がしきい値以下である傾き線Laの傾き量SVを原稿8の傾き量SVとして決定する。
【0094】
傾き補正部308は、傾き量決定部307により決定された原稿8の傾き量SVに応じた傾き補正処理を、入力画像G10に対して施す。傾き補正処理は、入力画像G10を傾き量SVに応じた角度だけ回転させることにより、傾きの無い傾き補正画像G12を生成する処理である。傾き補正画像G12は、ジョブに応じてこれを処理する手段に引き渡される。
【0095】
検出ピッチ設定部309は、原稿8の主走査方向M1のサイズに応じて、境界点検出部301が境界点KTを検出する主走査方向M1の複数の位置XのピッチDxを設定して、境界点検出部301に通知する。ピッチDxは主走査方向M1の画素単位のサンプリング間隔である。
【0096】
図9に示すように、原稿8のサイズが大きい場合には、原稿8のサイズが小さい場合よりもピッチDxを大きくする。例えば、原稿8がA4サイズである場合はピッチDxを1画素とし、原稿8がA3サイズである場合はピッチDxを2画素とする。ピッチDxが1画素の場合には、境界点検出部301は、入力画像G10における主走査方向M1のすべての画素の位置Xについて境界点KTを検出する。ピッチDxが2画素の場合には、1つおきの画素の位置Xについて境界点KTを検出する。
【0097】
このように原稿8のサイズが大きい場合に境界点KTを検出する位置Xを間引くことにより、原稿8のサイズにかかわらずほぼ同程度の個数の位置であって、原稿8の主走査方向M1の全長を均等に区分する各位置Xの境界点KTを検出することができる。個数を同程度にすることによって、境界点メモリ302の記憶容量を原稿8のサイズにかかわらず無駄なく利用することができ、均等に区分することによって、傾き量SVの検出の精度が原稿8によってばらつくのを防ぐことができる。
【0098】
以下、画像処理装置1による傾き量SVの検出の例をフローチャートを参照して説明する。
【0099】
図10には画像処理装置1における全体的な処理の流れの例が、
図11には注目領域設定処理の流れの例が、それぞれ示されている。また、
図12には注目境界点群KTGの設定および注目領域95の設定の例が示されている。
【0100】
図10に示すように、画像処理装置1は、注目領域設定処理(#11)、注目領域絞込み処理(#12)、および傾き方向判定処理(#13)を順に実行し、それによって原稿8の傾き量SVを検出する。その後、傾き量SVに応じて入力画像G10を補正する傾き補正処理(#14)を実行し、得られた傾き補正画像G20をジョブに応じて印刷したり送信したりする(#15)。
【0101】
図11に示す注目領域設定処理において、自動原稿送り装置10の給紙トレイ11またはスキャナ20のプラテンガラス21の上にセットされた原稿8の画像を読み取って入力画像G10を得る(#110)。入力画像G10の画素の階調値に基づいて、背景板14,15と原稿8との境界点KTを検出していったん保持する(#111)。
【0102】
保持した境界点KTのそれぞれが有効か無効かを判定する(#112)。例えば、主走査方向M1の先頭から順に各境界点KTとその次の境界点KTとについて、副走査方向M2の距離yを求め、差yがしきい値(例えば10画素分)を超える場合に、一方または両方の境界点KTを無効と判定する。そして、無効と判定した境界点KTを検出結果から除去する(#113)。この除去は、境界点メモリ302に格納されているデータを無効を表わすデータに置き換えるものでよい。除去されずに残った境界点KTが、すなわち有効と判定された境界点KTが本発明における「検出された境界点KT]の例である。
【0103】
図12(A)には、有効か無効かを判定する前の段階における境界点群KTGaが示されている。境界点群KTGaにおける主走査方向M1の両端部に無効な境界点KTがある。
図12(B)には、無効な境界点KTを除去した後の段階における境界点群KTGbが示されている。
【0104】
有効な境界点KTからなる境界点群KTGbの全体または一部分を、注目境界点群KTGに設定する(
図11の#114)。
図12(B)の例では、境界点群KTGbの全体が注目境界点群KTGに設定されている。注目境界点群KTGは、主走査方向M1の先頭の境界点KT1から末尾の境界点KTnまでのn個の境界点KTからなる。nは実際には数千以上である。
【0105】
次に、
図12(C)に示す注目領域95を設定する(#115)。注目領域95は、入力画像G10のうちの注目境界点群KTGの全体を含む最小の矩形領域である。すなわち、
注目領域95の主走査方向M1の範囲は、境界点KT1の位置X1から境界点KTnの位置Xnまでの範囲であり、副走査方向M2の範囲は、境界点KTminの位置Yminから境界点KTmaxの位置Ymaxまでの範囲である。位置Yminの値は、注目境界点群KTGにおける最小値であり、位置Ymaxの値は最大値である。つまり、境界点KTmin,KTmaxは、注目境界点群KTGにおける副走査方向M2の両端の境界点KTである。
【0106】
図13には
図10におけるステップ#12の注目領域絞込み処理の流れの例が示されている。また、
図14には注目領域95を絞り込むための直線の設定の例が、
図15には原稿8の複数の状態のそれぞれに対応する注目境界点群KTG1,KTG2,KTG3とそれらに応じた注目領域95の絞込みの例が、それぞれ示されている。
【0107】
図13において、注目領域95を後側領域95Aと前側領域95Bとに副走査方向M2に区分する直線L1を設定する(#120)。
図14(A)に示すように、直線L1は、注目境界点群KTGにおける副走査方向M2の中央またはそれに近い境界点KTmidを通る。注目領域95の副走査方向M2の画素数が奇数の場合には、副走査方向M2の中央の境界点KTが境界点KTmidであり、偶数の場合には、中央に最も近い2つの境界点KTの一方が境界点KTmidである。つまり、直線L1は、注目領域95を副走査方向M2に2等分またはほぼ2等分するように区分する。
【0108】
続いて、
図14(A)に示すように、後側領域95Aを副走査方向M2に区分する直線L2、前側領域95Bを副走査方向M2に区分する直線L3を設定する(#121、#122)。これら直線L2,L3による区分も、直線L1による区分と同様に、対象の領域を2等分またはほぼ2等分する区分である。つまり、3本の直線L1,L2,L3は、注目領域951をほぼ4等分する。
【0109】
次に、3本の直線L1,L2,L3のそれぞれについて、注目境界点群KTGのすべての境界点KTのそれぞれとの副走査方向M2の距離y1,y2,y3の総和Σy1,Σy2,Σy3を算出する(#123、#124、#125)。そして、総和Σy1,Σy2,Σy3のうちの最小のものを判別する(#126)。総和Σy1,Σy2,Σy3は、平行線評価値EV3の例である。
【0110】
直線L1についての総和Σy1が最小である場合、フローはステップ#127へ進む。この場合には、
図15(A)のように、注目領域95を副走査方向M2の中央部に絞り込むように変更する。詳しくは、直線L2が後側の端辺(図での上辺)となり、直線L3が前側の端辺(図での下辺)となるように注目領域95を縮小する。そして、
図10のフローに戻る。
【0111】
直線L2についての総和Σy2が最小である場合、フローはステップ#128へ進む。この場合には、
図15(B)のように、注目領域95を副走査方向M2の後側に絞り込むように変更する。詳しくは、直線L1が前側の端辺(図での下辺)となるように注目領域95を縮小する。そして、ステップ#120へ戻って、変更後の注目領域95について以前と同様の手順で改めて3本の直線L1,L2,L3を設定して評価する。
【0112】
直線L3についての総和Σy3が最小である場合、フローはステップ#129へ進む。この場合には、
図15(C)のように、注目領域95を副走査方向M2の前側に絞り込むように変更する。詳しくは、直線L1が後側の端辺(図での上辺)となるように注目領域95を縮小する。そして、ステップ#120へ戻る。この場合も、改めて3本の直線L1,L2,L3を設定して評価する。
【0113】
つまり、3本の直線L1,L2,L3のうちの一端から数えて2本目である中央の直線L1についての総和Σy1が最小になるまで、注目領域95の絞込みを繰り返す。
【0114】
直線L1についての総和Σy1が最小になったとき、この直線L1の位置Yが上に述べた中点Pcの副走査方向M2の位置Ycとなる。
【0115】
図16には
図10におけるステップ#13の傾き方向判定処理の流れの例が示されている。また、
図17には傾き線L4,L5の設定の例が示されている。
【0116】
図16において、
図17(A)に示すように、直線L1の主走査方向M1の中央を中点Pcとし、共に中点Pcを通り互いに傾きの方向が異なる2本の傾き線L4,L5を傾き線Laの候補として設定する(#130、#131)。
【0117】
一方の傾き線L4は、直線L1を時計回りに回転したものに相当する第1方向に傾いた直線であり、
図17における注目領域95の左上の頂点P2および右下の頂点P3の少なくとも一方を含む。中点Pcがちょうど注目領域95の中心と一致する場合に、傾き線L4は頂点P2,P3を共に含む。つまり、傾き線L4の傾き量(直線L1となす角度)は、傾き線L4が注目領域95に収まる範囲内の量に限定されている。
【0118】
他方の傾き線L5は、直線L1を反時計回りに回転したものに相当する第2方向に傾いた直線であり、
図17における注目領域95の左下の頂点P1および右上の頂点P4の少なくとも一方を含む。傾き線L5についても、傾き線L4と同様に傾き量が限定されている。
【0119】
次に、2本の傾き線L4,L5のそれぞれについて、注目境界点群KTGのすべての境界点KTのそれぞれとの副走査方向M2の距離y4,y5の総和Σy4,Σy5を算出する(#132、#133)。そして、総和Σy4,Σy5の大きさを比較する(#134)。総和Σy4,Σy5は、平行線評価値EV4の例である。
【0120】
傾き線L4についての総和Σy4の方が総和Σy5よりも小さい場合には、第1方向の傾き量の判定処理(#135)を実行して
図10のフローに戻る。傾き線L5についての総和Σy5の方が小さい場合には、第2方向の傾き量の判定処理(#136)を実行して
図10のフローに戻る。
【0121】
図18には第2方向の傾き量の判定処理の流れの例が示されている。また、
図19には傾き線Laの傾き量SVの絞込みの例が示されている。
【0122】
第2方向の傾き量の判定処理では、以下の通り、傾き線L5を傾き線Laとして定め、傾き線Laの傾き量を絞り込んで原稿8の傾き量SVを決定する。
【0123】
直線L1と傾き線L5とを一対の線に設定し(#360)、
図19(A)に示すように、一対の線の間の角度θを2分割する傾き線L7を設定する(#361)。この2分割は、角度θを2等分またはほぼ2等分するものであればよい。
【0124】
一対の線および傾き線L7のそれぞれについて、注目境界点群KTGのすべての境界点KTのそれぞれとの副走査方向M2の距離y1,y5,y7の総和Σy1,Σy5,Σy7を算出する(#362)。総和Σy1,Σy5については、以前に算出した結果を流用し、このステップ#362での算出を省略してもよい。
【0125】
3つの総和Σy1,Σy5,Σy7の中で最も小さいものはいずれかを判別する(#363)。そして、最小の総和が上に述べたしきい値th4以下か否かを判定する(#364)。
【0126】
最小の総和がしきい値th4以下である場合には(#364でYES) 、当該総和に対応する線(傾き線L5、傾き線L7または直線L1)の傾き量SVを原稿8の傾き量SVに決定する(#365)。
【0127】
最小の総和がしきい値th4以下でない場合には(#364でNO) 、傾き量の絞込みを続ける。詳しくは、3つのΣy1,Σy5,Σy7のうちの最小のものと次に小さいものとを選択し、選択した2つの総和に対応した2本の線を一対の線とするという「線の置換え」を行う(#366)。そして、ステップ#361に戻って、線の置換え後の一対の線の間の角度を2分割し、ステップ#361以降の処理を再び行う。
【0128】
図19(A)において、傾き線L5,L7に対応する総和Σy5,Σy7が直線L1対応する総和Σy1よりも小さい場合には、
図19(B)のように、線の置換えにより元の傾き線L7が一対の線の片方である直線L1とされ、この直線L1と傾き線L5との間の角度(θ/2)を2等分する傾き線L7が改めて設定される。
【0129】
なお、元の直線L1と傾き線L7とに対応する総和Σy1,Σy7が傾き線L5に対応する総和Σy5よりも小さい場合には、線の置換えによって、元の傾き線L7が一対の線の片方である傾きL5とされる。
【0130】
図20には第1方向の傾き量の判定処理の流れの例が示されている。第1方向の傾き量の判定処理は、傾き線L4を傾き線Laとして定め、傾き線Laの傾き量を絞り込んで原稿8の傾き量SVを決定する処理である。基本的な流れは第2方向の傾き量の判定処理と同様である。
【0131】
すなわち、直線L1と傾き線L4とを一対の線に設定し(#350)、一対の線の間の角度θを2等分する傾き線L6を設定する(#351)。
【0132】
一対の線および傾き線L6のそれぞれについて、注目境界点群KTGのすべての境界点KTのそれぞれとの副走査方向M2の距離y1,y4,y6の総和Σy1,Σy4,Σy6を算出する(#352)。総和Σy4,Σy6は、平行線評価値EV4の例である。
【0133】
3つの総和Σy1,Σy4,Σy6の中で最も小さいものはいずれかを判別する(#353)。そして、判別した最小の総和がしきい値th4以下か否かを判定する(#354)。
【0134】
最小の総和がしきい値th4以下である場合には(#353でYES) 、当該総和に対応する線(傾き線L4、傾き線L6または直線L1)の傾き量SVを原稿8の傾き量SVに決定する(#354)。
【0135】
最小の総和がしきい値th4以下でない場合には(#353でNO) 、ステップ#351に戻って、傾き量の絞込みを続ける。
【0136】
上に述べた実施形態によると、ハフ変換または最小二乗法による近似線の算出といった複雑な演算処理によらずに、原稿8の傾き量SVを検出することができる。画素の階調値としきい値th3との比較による境界点KTの検出、注目境界点群KTGの設定、傾き線Laの中点Pcを定めるための注目領域95の絞込み、傾き線Laの設定、傾き線Laの傾き量の絞込み、および絞込みの結果に基づく原稿8の傾き量SVの決定は、いずれもハードウェアによる実現が容易な処理である。つまり、これらの処理をハードウェア化することによって、ソウトウェアのみによって行う場合よりも傾き量SVを高速で検出することができる。検出の高速化、すなわち検出の契機に対する応答性の向上は、特に自動原稿送り装置10を用いて複数の原稿8の画像を次々に読み取る場合に重要となる。迅速に傾き量SVを検出することにより、各原稿8から読み取った入力画像G10に対する傾き補正をより早く実施することができる。
【0137】
このように、原稿に依存しない精度でかつ従来よりも短い時間で原稿の傾き量SVを検出することができる。
【0138】
上に述べた実施形態において、原稿8の前端8aに対応した影9を含む画像を用いて傾き量SVを検出するので、原稿8の読み取りの初期において傾き量SVを検出することができ、傾き量SVを用いた種々の処理を早いタイミングで行うことができる。
【0139】
また、自動原稿送り装置10によらず、プラテンガラス21の上にセットされた静止状態の原稿8の傾き量SVを検出する場合には、光源ユニット22が移動して原稿8の後端に近づいたときに原稿8の後端側に生じる影9を用いればよい。
【0140】
この場合に、例えば、境界点検出部301は、入力画像G10における後端側から画素の各階調値MDを調べていき、階調値MDがしきい値th3以下である最初に出現した画素の副走査方向M2の位置Yを境界点KTとすればよい。
【0141】
なお、光源24の配置位置に応じて影9のできる位置が変わるので、それに応じて境界点KTを検出し傾き量SVを検出すればよい。例えば、光源ユニット22の移動方向の前方側から原稿8を照明する場合には、上に述べた原稿8を搬送する場合の傾き量SVの検出と同様に、原稿8の前端側に生じる影9を利用して傾き量SVを検出すればよい。
【0142】
画像処理装置1は、MFPに限らず、原稿8の画像を読み取る機器であればよく、コピー機、ファクシミリ機、イメージリーダなどであってもよい。自動原稿送り装置10に、原稿8から画像を読み取るイメージセンサを配置してもよい。
【0143】
その他、画像処理装置1の全体または各部の構成、処理の内容、順序、またはタイミング、境界点KTの検出の方法、原稿8の傾き量SVの決定の方法などは、本発明の趣旨に沿って適宜変更することができる。