以下、本発明に係る画像処理装置、領域決定方法及びコンピュータプログラムについて図を参照しつつ説明する。但し、本発明の技術的範囲はそれらの実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶ点に留意されたい。
図1は、本発明を適用した画像処理システムの概略構成を示す図である。図1に示すように、画像処理システム1は、画像読取装置10と、情報処理装置20とを有する。画像読取装置10は、例えばイメージスキャナ、デジタルカメラ等であり、情報処理装置20は、例えば画像読取装置10に接続して用いられるパーソナルコンピュータ等である。
画像読取装置10は、画像入力装置11と、第1画像メモリ12と、第1インターフェース装置13と、第1記憶装置14と、第1CPU15とを有する。以下、画像読取装置10の各部について詳細に説明する。
画像入力装置11は、撮像対象物である原稿等を撮像する撮像センサを有する。この撮像センサは、1次元又は2次元に配列されたCCD、CMOS等の撮像素子と、撮像素子に撮像対象物の像を結像する光学系を備え、各撮像素子は、RGB各色に対応するアナログ値を出力する。画像入力装置11は、撮像センサが出力した各アナログ値をデジタル値に変換して画素データを生成し、生成した各画素データから構成される画像データ(以下、RGB画像と称する)を生成する。このRGB画像は、各画素データが、例えばRGB各色毎に8bitで表される計24bitのRGB値からなるカラー画像データとなる。
画像入力装置11は、RGB画像の各画素のRGB値を輝度値及び色差値(YUV値)に変換した画像(以下、読取画像と称する)を生成し、第1画像メモリ12に保存する。なお、YUV値は、例えば以下の式により算出することができる。
Y値= 0.30×R値+0.59×G値+0.11×B値 (1)
U値=−0.17×R値−0.33×G値+0.50×B値 (2)
V値= 0.50×R値−0.42×G値−0.08×B値 (3)
第1画像メモリ12は、不揮発性半導体メモリ、揮発性半導体メモリ、磁気ディスク等の記憶装置を有する。第1画像メモリ12は、画像入力装置11と接続され、画像入力装置11により生成された読取画像を保存する。
第1インターフェース装置13は、USB等のシリアルバスに準じるインターフェース回路を有し、情報処理装置20と電気的に接続して画像データ及び各種の情報を送受信する。また、第1インターフェース装置13にフラッシュメモリ等を接続して第1画像メモリ12に保存されている画像データを一旦保存し、情報処理装置20に複写するようにしてもよい。
第1記憶装置14は、RAM(Random Access Memory)、ROM(Read Only Memory)等のメモリ装置、ハードディスク等の固定ディスク装置、又はフレキシブルディスク、光ディスク等の可搬用の記憶装置等を有する。また、第1記憶装置14には、画像読取装置10の各種処理に用いられるコンピュータプログラム、データベース、テーブル等が格納される。コンピュータプログラムは、例えばCD−ROM(compact disk read only memory)、DVD−ROM(digital versatile disk read only memory)等のコンピュータ読み取り可能な可搬型記録媒体から、公知のセットアッププログラム等を用いて第1記憶装置14にインストールされてもよい。
第1CPU15は、画像入力装置11、第1画像メモリ12、第1インターフェース装置13及び第1記憶装置14と接続され、これらの各部を制御する。第1CPU15は、画像入力装置11の読取画像生成制御、第1画像メモリ12の制御、第1インターフェース装置13を介した情報処理装置20とのデータ送受信制御、第1記憶装置14の制御等を行う。
情報処理装置20は、第2インターフェース装置21と、第2画像メモリ22と、表示装置23と、入力装置24と、第2記憶装置25と、第2CPU26と、画像処理回路27とを有する。以下、情報処理装置20の各部について詳細に説明する。
第2インターフェース装置21は、画像読取装置10の第1インターフェース装置13と同様のインターフェース回路を有し、情報処理装置20と画像読取装置10とを接続する。
第2画像メモリ22は、画像読取装置10の第1画像メモリ12と同様の記憶装置を有する。第2画像メモリ22には、第2インターフェース装置21を介して画像読取装置10から受信した読取画像を保存するとともに、画像処理回路27と接続され、画像処理回路27により読取画像に対して画像処理がなされた各種の処理画像を保存する。
表示装置23は、液晶、有機EL等から構成されるディスプレイ及びディスプレイに画像データを出力するインターフェース回路を有し、第2画像メモリ22と接続されて第2画像メモリ22に保存されている画像データをディスプレイに表示する。
入力装置24は、キーボード、マウス等の入力装置及び入力装置から信号を取得するインターフェース回路を有し、利用者の操作に応じた信号を第2CPU26に出力する。
第2記憶装置25は、画像読取装置10の第1記憶装置14と同様のメモリ装置、固定ディスク装置、可搬用の記憶装置等を有する。第2記憶装置25には、情報処理装置20の各種処理に用いられるコンピュータプログラム、データベース、テーブル等が格納される。コンピュータプログラムは、例えばCD−ROM、DVD−ROM等のコンピュータ読み取り可能な可搬型記録媒体から、公知のセットアッププログラム等を用いて第2記憶装置25にインストールされてもよい。
第2CPU26は、第2インターフェース装置21、第2画像メモリ22、表示装置23、入力装置24、第2記憶装置25及び画像処理回路27と接続され、これらの各部を制御する。第2CPU26は、第2インターフェース装置21を介した画像読取装置10とのデータ送受信制御、第2画像メモリ22の制御、表示装置23の表示制御、入力装置24の入力制御、第2記憶装置25の制御、画像処理回路27による画像処理の制御等を行う。
画像処理回路27は、第2画像メモリ22に接続され、原稿切出し処理を行う。この画像処理回路27は、第2CPU26に接続され、第2CPU26からの制御により予め第2記憶装置25に記憶されているプログラムに基づいて動作する。なお、画像処理回路27は、独立した集積回路、マイクロプロセッサ、ファームウェア等で構成されてもよい。
図2は、画像処理回路27の概略構成を示す図である。図2に示すように画像処理回路27は、第1エッジ画素抽出部201、領域検出部202、第2エッジ画素抽出部203、直線検出部204、矩形検出部205、領域決定部206及び切出し部207を有する。これらの各部は、プロセッサ上で動作するソフトウェアにより実装される機能モジュールである。なお、これらの各部は、それぞれ独立した集積回路、マイクロプロセッサ、ファームウェア等で構成されてもよい。
図3は、画像読取装置10による画像読取処理の動作を示すフローチャートである。以下、図3に示したフローチャートを参照しつつ、画像読取処理の動作を説明する。なお、以下に説明する動作のフローは、予め第1記憶装置14に記憶されているプログラムに基づき主に第1CPU15により画像読取装置10の各要素と協働して実行される。
最初に、画像入力装置11は、撮像対象物である原稿を撮影した読取画像を生成し、第1画像メモリ12に保存する(ステップS101)。
次に、第1CPU15は、第1画像メモリ12に保存された読取画像を第1インターフェース装置13を介して情報処理装置20に送信し(ステップS102)、一連のステップを終了する。
図4は、情報処理装置20による原稿切出し処理の動作を示すフローチャートである。以下、図4に示したフローチャートを参照しつつ、原稿切出し処理の動作を説明する。なお、以下に説明する動作のフローは、予め第2記憶装置25に記憶されているプログラムに基づき主に第2CPU26により情報処理装置20の各要素と協同して実行される。
最初に、第2CPU26は、読取画像を第2インターフェース装置21を介して画像読取装置10から取得し、第2画像メモリ22に保存する(ステップS201)。
次に、画像処理回路27は、第2画像メモリ22に保存された読取画像を読み出し、読取画像の輝度成分について水平方向及び垂直方向に画素を間引いた入力画像を生成し、第2画像メモリ22に保存する(ステップS202)。
一般に、情報処理装置20は処理する画像の画素数により処理速度が大きく異なるため、画素を間引く割合は、第2CPU26等の処理能力と情報処理装置20に要求される処理速度に応じて定められる。なお、画素を間引かなくても要求される処理速度を満たす場合は読取画像の輝度成分をそのまま入力画像としてもよい。
次に、画像処理回路27の各部は、入力画像について切出し領域決定処理を実施する(ステップS203)。切出し領域決定処理において、画像処理回路27の各部は、入力画像から原稿の画像を切出す切出し領域を決定する。切出し領域決定処理の詳細については後述する。
次に、切出し部207は、切出し領域決定処理において決定された切出し領域を入力画像から切出す(ステップS204)。
次に、第2CPU26は、切出し部207が切出した領域を表示装置23に表示し(ステップS205)、一連のステップを終了する。
図5は、切出し領域決定処理の動作の例を示すフローチャートである。図5に示す動作のフローは、図4に示すフローチャートのステップS203において実行される。
最初に、第1エッジ画素抽出部201及び領域検出部202は、入力画像について対象領域検出処理を実施する(ステップS301)。対象領域検出処理において、第1エッジ画素抽出部201は、入力画像からエッジ画素を抽出し、領域検出部202は、抽出されたエッジ画素のうち連結するエッジ画素によって囲まれる対象領域を検出する。対象領域検出処理の詳細については後述する。
次に、領域検出部202は、対象領域検出処理において対象領域を検出したか否かを判定する(ステップS302)。領域検出部202は、対象領域を全く検出していない場合、特に処理を行わず、一連のステップを終了し、一方、対象領域を検出している場合、処理をステップS303へ移行する。ステップS303〜S315の処理は、抽出された対象領域ごとに実施される。
次に、第2エッジ画素抽出部203、直線検出部204及び矩形検出部205は、対象領域について第1矩形検出処理を実施する(ステップS303)。第1矩形検出処理において、第2エッジ画素抽出部203は、対象領域からエッジ画素を抽出し、直線検出部204は、抽出されたエッジ画素から複数の直線を検出し、矩形検出部205は、検出された複数の直線のうち二本ずつが略直交する四本の直線から構成される第1矩形を検出する。第1矩形検出処理の詳細については後述する。
次に、領域決定部206は、検出された第1矩形について第1矩形判定処理を実施する(ステップS304)。第1矩形判定処理において、領域決定部206は、第1矩形が対象領域と一致するか否かを判定する。第1矩形判定処理の詳細については後述する。
次に、領域決定部206は、第1矩形が検出され、且つ第1矩形判定処理において第1矩形が対象領域と一致すると判定したか否かを判定する(ステップS305)。領域決定部206は、第1矩形が検出され、且つ第1矩形が対象領域と一致すると判定した場合、その第1矩形を切出し領域と判定する(ステップS306)。
一方、領域決定部206は、第1矩形が検出されなかった場合、又は第1矩形が対象領域と一致しないと判定した場合、対象領域の端部が入力画像の端部と近接しているか否かを判定する(ステップS307)。領域決定部206は、対象領域の左端、右端、上端及び下端の何れかが、入力画像の左端、右端、上端又は下端から所定距離内にある場合、近接していると判定し、所定距離内にない場合、近接していないと判定する。所定距離は、対象領域に写っている物が入力画像の端部と交わっているにも関わらずエッジ画素が抽出されない可能性のある入力画像の端部からの最大距離に定められ、例えば10mmに相当する距離に定められる。
領域決定部206は、対象領域の端部が入力画像の端部と近接していない場合、対象領域の外接矩形を切出し領域に決定する(ステップS308)。なお、この場合、領域決定部206は、少なくとも対象領域を含む領域を切出し領域とすればよく、対象領域自体を切出し領域としてもよい。
一方、対象領域の端部が入力画像の端部と近接している場合、第2エッジ画素抽出部203、直線検出部204及び矩形検出部205は、対象領域について第2矩形検出処理を実施する(ステップS309)。第2矩形検出処理において、直線検出部204は、第1矩形検出処理において検出した直線に加えて、対象領域の端部と近接している入力画像の端部を直線として検出し、矩形検出部205は、入力画像の端部を含む4本の直線から構成される第2矩形を検出する。第2矩形検出処理の詳細については後述する。
次に、領域決定部206は、検出された第2矩形について第2矩形判定処理を実施する(ステップS310)。第2矩形判定処理において、領域決定部206は、第2矩形が対象領域と一致するか否かを判定する。第2矩形判定処理の詳細については後述する。
次に、領域決定部206は、第2矩形が検出され、且つ第2矩形判定処理において第2矩形が対象領域と一致すると判定したか否かを判定する(ステップS311)。領域決定部206は、第2矩形が検出され、且つ第2矩形が対象領域と一致すると判定した場合、その第2矩形を切出し領域に決定する(ステップS312)。
一方、領域決定部206は、第2矩形が検出されなかった場合、又は第2矩形が対象領域と一致しないと判定した場合、第1矩形検出処理において第1矩形が検出されていたか否かを判定する(ステップS313)。領域決定部206は、第1矩形が検出されていた場合、その第1矩形を切出し領域に決定し(ステップS314)、第1矩形が検出されていなかった場合、対象領域の外接矩形を切出し領域に決定する(ステップS308)。
ステップS306、S308、S312又はS314において切出し領域を決定すると、画像処理回路27は、全ての対象領域について処理したか否かを判定する(ステップS315)。画像処理回路27は、まだ処理していない対象領域がある場合は処理をステップS303に戻して、ステップS303〜S315の処理を繰り返し、全ての対象領域について処理した場合は一連のステップを終了する。
図6は、対象領域検出処理の動作の例を示すフローチャートである。図6に示す動作のフローは、図5に示すフローチャートのステップS301において実行される。
最初に、第1エッジ画素抽出部201は、入力画像から水平方向及び垂直方向に画素を間引いた縮小画像を生成し、第2画像メモリ22に保存する(ステップS401)。
図7A〜図7Cは、対象領域検出処理における各画像について説明するための模式図である。図7Aに示す画像700は入力画像の例である。図7Aに示すように、入力画像700は、木目調等の模様702を有する机に載置された本701を原稿として撮像した画像である。図7Bに示す画像710は縮小画像の例である。入力画像700から縮小画像710への間引き率は、画像読取装置10の画像入力装置11の撮像素子及び光学系の影響により生じるランダムノイズ703が除去されるが、原稿内の網掛け部分704、文字705等は除去されないように予め定められる。
なお、第1エッジ画素抽出部201は、縮小画像を生成する代わりに、入力画像に平滑化フィルタを適用することによりランダムノイズ703を除去してもよい。または、第1エッジ画素抽出部201は、縮小画像にさらに平滑化フィルタを適用してもよい。
次に、第1エッジ画素抽出部201は、縮小画像について水平方向及び垂直方向におけるエッジ画素を抽出する。第1エッジ画素抽出部201は、縮小画像の水平方向及び垂直方向の何れかにおいてエッジ画素として抽出された画素からなる第1エッジ画像を生成し、第2画像メモリ22に保存する(ステップS402)。
第1エッジ画素抽出部201は、縮小画像の各画素の水平方向の両隣の画素の輝度値の差の絶対値(以下、隣接差分値と称する)を算出し、隣接差分値が閾値Th1を越える場合、その画像上の画素を垂直エッジ画素とする。この閾値Th1は、例えば、人が画像上の輝度の違いを目視により判別可能な輝度値の差(例えば20)に設定することができる。また、第1エッジ画素抽出部201は、各画像について垂直方向にも同様の処理を行い、水平エッジ画素を抽出する。なお、第1エッジ画素抽出部201は、注目画素及びその注目画素の水平方向、垂直方向及び斜め方向(8近傍)に隣接する画素の分散値をその注目画素についての分散値とし、各画素の分散値についての隣接差分値から垂直エッジ画素及び水平エッジ画素を抽出してもよい。
なお、第1エッジ画素抽出部201は、抽出した垂直エッジ画素及び水平エッジ画素をそれぞれラベリングによりグループ化し、水平方向の大きさ又は垂直方向の大きさが閾値Th2以下となるグループに含まれるエッジ画素を除去してもよい。閾値Th2は、原稿の載置面の汚れとして想定される値(例えば3mmに相当する値)に設定される。また、第1エッジ画素抽出部201は、各グループの面積もしくは各グループの外接矩形の面積が閾値以下である場合にそのグループに含まれるエッジ画素を除去してもよい。これらにより、原稿の載置面の汚れにより生じたエッジ画素を除去することができる。
第1エッジ画素抽出部201は、縮小画像において垂直エッジ画素又は水平エッジ画素として抽出された画素からなる画像を第1エッジ画像として生成する。なお、第1エッジ画素抽出部201は、生成した第1エッジ画像に対して膨張・収縮処理を実施してもよい。これにより、入力画像において連結している部分の一部がエッジ画素として抽出されない場合でも、第1エッジ画像においてその部分を連結させることができる。
次に、領域検出部202は、第1エッジ画像について、各エッジ画素が他のエッジ画素と連結しているか否かを判定し、連結しているエッジ画素を一つのグループとしてラベリングする(ステップS403)。領域検出部202は、水平方向、垂直方向又は斜め方向(8近傍)に相互に隣接するエッジ画素を連結していると判定する。なお、第1エッジ画素抽出部201は、水平方向又は垂直方向のみ(4近傍)に相互に隣接するエッジ画素を連結していると判定してもよい。
次に、領域検出部202は、各グループの水平方向及び垂直方向の両方の大きさが閾値Th3以下か否かを判定し、水平方向及び垂直方向の両方の大きさが閾値Th3以下となるグループに含まれるエッジ画素を第1エッジ画像から除去する(ステップS404)。閾値Th3は、情報処理装置40が検出を保証する原稿の最小サイズ(例えば1inchに相当する値)に設定される。この処理により、図7Bに示される机の模様711のように、情報処理装置40が検出を保証する原稿の最小サイズより小さいエッジ画素のグループは除去される。なお、領域検出部202は、各グループの水平方向及び垂直方向の何れかの大きさが閾値Th3以下である場合、又は各グループの面積もしくは各グループの外接矩形の面積が閾値(例えば1inch四方に相当する値)以下である場合にエッジ画素を除去してもよい。
次に、領域検出部202は、各グループが他のグループに包含されるか否かを判定し、他のグループに包含されるグループに含まれるエッジ画素を第1エッジ画像から除去する(ステップS405)。この処理により、図7Bに示されるコンテンツ712のように、原稿内のコンテンツによるエッジ画素のグループは除去される。
次に、領域検出部202は、除去されずに残った各グループについて、そのグループに含まれるエッジ画素によって囲まれる領域を検出し、検出した領域に対応する入力画像内の領域を対象領域として検出する。領域検出部202は、入力画像内の対象領域の外接矩形を第2画像メモリ22に保存し(ステップS406)、一連のステップを終了する。
図7Cに示す画像720は連結するエッジ画素によって囲まれる領域の例である。図7Cに示すように、連結するエッジ画素によって囲まれる領域720は、その連結するエッジ画素のグループの最も外側の外周721及びその内側の領域であり、領域720にはエッジ画素だけでなく、外周721の内側に存在する全ての画素722が含まれる。
なお、連結するエッジ画素によって囲まれる領域を、連結するエッジ画素のグループの最も外側の外周を含まない領域としてもよい。または、連結するエッジ画素によって囲まれる領域を、連結するエッジ画素のグループの最も外側の外周及びその内側の領域を所定画素分だけ膨張又は収縮させた領域としてもよい。また、連結するエッジ画素について、上記したようにエッジ画像に対して膨張・収縮処理を実施することにより、相互に隣接するエッジ画素だけでなく、相互に所定距離内に位置するエッジ画素とその間に位置する画素を含めてもよい。また、連結するエッジ画素の両端に位置するエッジ画素が、所定距離内にある場合は、両端のエッジ画素の間に位置する画素を連結するエッジ画素に含めてもよい。この所定距離は、例えば連結するエッジ画素の長さに所定比率(例えば80%)を乗じた長さとすることができる。これにより、例えばエッジ画素がU字型に連結している場合に、両端のエッジ画素を連結させて囲まれた領域を形成させることができる。
図8は、第1矩形検出処理の動作の例を示すフローチャートである。図8に示す動作のフローは、図5に示すフローチャートのステップS303において実行される。
最初に、第2エッジ画素抽出部203は、領域検出部202が検出した対象領域の外接矩形内において垂直エッジ画素及び水平エッジ画素を抽出する(ステップS501)。第2エッジ画素抽出部203は、第1エッジ画像を生成した場合と同様の方法で垂直エッジ画素及び水平エッジ画素を抽出する。なお、第1エッジ画像を生成した場合と同様に、第2エッジ画素抽出部203は、縮小画像から垂直エッジ画素及び水平エッジ画素を抽出してもよい。また、第2エッジ画素抽出部203は、抽出した垂直エッジ画素及び水平エッジ画素をそれぞれラベリングによりグループ化し、大きさが閾値Th2以下となるグループに含まれるエッジ画素を除去してもよい。
または、第2エッジ画素抽出部203は、他の方法により垂直エッジ画素及び水平エッジ画素を抽出してもよい。例えば、第2エッジ画素抽出部203は、入力画像からそれぞれ異なる間引き率で画素を間引いた複数の間引き画像を生成し、入力画像及び各間引き画像からそれぞれ垂直エッジ画素を抽出して垂直エッジ画素からなるエッジ画像を生成する。第2エッジ画素抽出部203は、最も小さい間引き画像から生成したエッジ画像をその次に小さい間引き画像から生成したエッジ画像と同一の解像度に拡大し、同一の解像度にした二つのエッジ画像において同一の位置に存在する垂直エッジ画素からなる画像を生成する。第2エッジ画素抽出部203は、生成した画像と、その次に小さい間引き画像から生成したエッジ画像に対して同様の処理を繰り返し、最終的に、入力画像から生成したエッジ画像の垂直エッジ画素と同一の位置に存在する垂直エッジ画素を抽出する。また、第2エッジ画素抽出部203は、同様の処理により水平エッジ画素を抽出する。これにより、ノイズを低減しつつ、垂直エッジ画素及び水平エッジ画素を抽出することができる。
次に、直線検出部204は、水平エッジ画素から生成されたエッジ画像(以下、水平エッジ画像と称する)及び垂直エッジ画素から生成されたエッジ画像(以下、垂直エッジ画像と称する)からそれぞれ複数の直線を検出する(ステップS502)。なお、水平エッジ画像からは水平方向に伸びる直線が検出され、垂直エッジ画像からは垂直方向に伸びる直線が検出される。
直線検出部204は、ハフ変換を用いて直線を検出する。なお、直線検出部204は、最小二乗法を用いて直線を検出してもよい。または、直線検出部204は、ハフ変換を用いて検出した直線から所定距離内にあるエッジ画素に対して最小二乗法を用いて直線を検出してもよい。この所定距離は、画像処理システム1が使用される環境等に応じて適宜定められ、例えば2mmに相当する距離に設定される。
次に、直線検出部204は、水平エッジ画像及び垂直エッジ画像からそれぞれ近似直線を検出する(ステップS503)。
図9A及び図9Bは、近似直線について説明するための模式図である。図9Aに示すような書籍原稿を撮影した入力画像900において、書籍原稿の綴じ目部901に対して平行な端部902は直線として検出されるが、綴じ目部901に対して直交する端部903は綴じ目部901の近傍で歪みが生じ、直線として検出されない場合がある。
そこで、直線検出部204は、図9Bのエッジ画像910に示すように、相互に隣接するエッジ画素911をラベリングにより一つのグループ912としてまとめる。直線検出部204は、そのグループ912に含まれるエッジ画素のうち、水平方向又は垂直方向における両端に位置するエッジ画素913及びエッジ画素914を結んだ直線915を近似直線として検出する。
次に、矩形検出部205は、直線検出部204が検出した直線又は近似直線からなる第1矩形を検出する(ステップS504)。
矩形検出部205は、直線検出部204が検出した複数の直線のうち二本ずつが略直交する四本の直線から構成される複数の矩形候補を抽出する。矩形検出部205は、まず水平方向の直線(以下、第1の水平線と称する)を一つ選択し、選択した直線と略平行(例えば±3°以内)かつ閾値Th4以上離れた水平方向の直線(以下、第2の水平線と称する)を抽出する。次に、矩形検出部205は、第1の水平線と略直交する(例えば90°に対して±3°以内)垂直方向の直線(以下、第1の垂直線と称する)を抽出する。次に、矩形検出部205は、第1の水平線と略直交し、かつ第1の垂直線と閾値Th5以上離れた垂直方向の直線(以下、第2の垂直線と称する)を抽出する。なお、閾値Th4及び閾値Th5は、画像読取装置10の読取りの対象となる原稿のサイズに応じて予め定められ、同じ値としてもよい。
矩形検出部205は、直線検出部204が検出した全ての直線について、上記の条件を満たす第1の水平線、第2の水平線、第1の垂直線及び第2の垂直線の全ての組合せを抽出し、抽出した各組合せから構成される矩形を矩形候補として抽出する。矩形検出部205は、抽出した矩形候補について面積を算出し、最も面積が大きい矩形候補を第1矩形として検出する。なお、矩形検出部205は、各矩形候補について、矩形候補の各辺から所定距離(例えば2mmに相当する距離)内にある全ての画素の数に対する所定距離内にあるエッジ画素の数の割合を算出し、矩形候補の面積にその割合を乗じて重み付けしてもよい。これにより、原稿の境界を明確に表している直線から構成される矩形を検出することができる。または、矩形検出部205は、各矩形候補について、矩形候補の各角の角らしさの度合いを表す評価点を算出し、評価点を用いて矩形候補の面積を重み付けしてもよい。
図10は、矩形候補の各角の評価点について説明するための模式図である。図10に示す画像1000において、点1001は矩形候補の角を表し、直線1002、1003は矩形候補の各辺を表す。この直線1002、1003の端部が相互に接している場合は、点1001は矩形の角らしいと考えられるが、直線1002、1003の端部が接していない場合又は直線1002、1003が交差している場合は、点1001は矩形の角らしくないと考えられる。
評価点は0点を基準とする。そして、角1001の近傍における辺1002から所定距離内の領域1004において、水平方向のライン毎にエッジ画素が存在するか否かを判定し、水平方向のラインにエッジ画素が存在する場合、評価点に1点を加算する。なお、各角の近傍の範囲及び各辺からの所定距離は、画像処理システム1が使用される環境等に応じて適宜定められ、例えば各角から5mmに相当する距離内の範囲及び各辺から2mmに相当する距離に設定することができる。同様に、角1001の近傍における辺1003から所定距離内の領域1005において、垂直方向のライン毎にエッジ画素が存在するか否かを判定し、垂直方向のラインにエッジ画素が存在する場合、評価点に1点を加算する。また、角1001の近傍における辺1002の延長線から所定距離内の領域1006において、水平方向のライン毎にエッジ画素が存在するか否かを判定し、水平方向のラインにエッジ画素が存在する場合、評価点から1点を減算する。同様に、角1001の近傍における辺1003の延長線から所定距離内の領域1007において、垂直方向のライン毎にエッジ画素が存在するか否かを判定し、垂直方向のラインにエッジ画素が存在する場合、評価点から1点を減算する。矩形検出部205は、評価点の取り得る最低値が0、取り得る最高値が1となるように評価点を正規化した値を算出し、矩形候補の面積にその値を乗じて重み付けすることにより、四つの角を明確に表している矩形を検出することができる。
なお、矩形検出部205は、検出した矩形の何れかの辺が近似直線である場合、その近似直線に対応するラベリングのグループに含まれる全てのエッジ画素がその矩形に含まれるように、その近似直線による辺を補正する。
図11A、図11Bは、近似直線を含む矩形について説明するための模式図である。図11Aの画像1100に示すように、原稿1101について検出した矩形1102の辺1103、1104が近似直線である場合、近似直線1103、1104が原稿1101と重なり、矩形1102が原稿1101の全領域を含まない可能性がある。そこで、矩形検出部205は、図11Bの画像1110に示すように、近似直線1103、1104を、各近似直線に対応するグループ1115、1116の外接矩形を構成する辺のうち、各近似直線と略平行であり、原稿1111からみて外側に位置する辺1113、1114に補正する。これにより、矩形1102は矩形1112に補正され、原稿1111の全領域を包含することが可能となる。
図12は、矩形検出部205によって検出される第1矩形の例を示す模式図である。図12に示す例では、対象領域1200の外接矩形1201内において、矩形1202〜1204が矩形候補として検出され、その中で最も面積が大きい矩形1202が第1矩形として検出される。
図13は、第1矩形判定処理の動作の例を示すフローチャートである。図13に示す動作のフローは、図5に示すフローチャートのステップS304において実行される。
最初に、領域決定部206は、領域検出部202が検出した対象領域の面積に対する矩形検出部205が検出した第1矩形の面積の比を算出する(ステップS601)。
次に、領域決定部206は、算出した面積の比が閾値Th6以上であるか否かを判定する(ステップS602)。領域決定部206は、算出した面積の比が閾値Th6以上である場合、対象領域と第1矩形は一致すると判定し(ステップS603)、一方、閾値Th6未満である場合、対象領域と第1矩形は一致しないと判定し(ステップS604)、一連のステップを終了する。
このように、「対象領域と矩形が一致する」とは、対象領域と矩形が完全に一致することだけでなく、略一致することを含み、対象領域の大きさに対する矩形の大きさの比が予め設定された閾値Th6以上であることを意味する。閾値Th6は、少なくとも0.5より大きい値(例えば0.8)に設定される。閾値Th6は、例えば、読取り対象として想定する原稿のサイズと原稿の載置台の模様として想定する最大サイズの合計に対する、想定する原稿のサイズの比に設定される。
なお、比を求める対象領域及び矩形の大きさは、面積に限定されず、外接矩形の面積、又は外接矩形の水平もしくは垂直方向の長さとしてもよい。または、対象領域と矩形の形状が略一致する場合に対象領域と矩形が一致すると判定してもよい。その場合、領域決定部206は、対象領域の外接矩形の水平及び垂直方向の長さの比に対する、矩形の水平及び垂直方向の長さの比の割合が所定範囲内(例えば0.8〜1.0)である場合、対象領域と矩形が一致すると判定し、所定範囲内でない場合、一致しないと判定する。さらに、領域決定部206は、これらの値のうちの二つ以上を組合せて用いて対象領域と矩形が一致するか否かを判定してもよい。
なお、前述したように、第1矩形検出処理において、矩形検出部205は第1矩形を一つのみ検出するが、第1矩形を複数検出するようにしてもよい。その場合、第1矩形判定処理において、領域決定部206は、検出された全ての第1矩形について対象領域と一致するか否かを判定する。そして、図3のステップS305において、領域決定部206は、検出された全ての第1矩形について対象領域と一致すると判定したか否かを判定し、何れの第1矩形も対象領域と一致しない場合、処理をステップS306へ移行させる。
以下に、図5のステップS309において実行される第2矩形検出処理の動作について説明する。
第2矩形検出処理の動作は図8に示した第1矩形検出処理の動作とほぼ同様である。ただし、図8のステップS502において、直線検出部204は、第1矩形検出処理において検出した直線に加えて、図5のステップS308で領域決定部206が対象領域の端部と近接していると判定した入力画像の端部を直線として検出する。そして、図8のステップS504において、矩形検出部205は、直線として検出された入力画像の端部を少なくとも含む4本の直線から構成される第2矩形を検出する。
図14は、第2矩形判定処理の動作の例を示すフローチャートである。図14に示す動作のフローは、図5に示すフローチャートのステップS310において実行される。
最初に、領域決定部206は、領域検出部202が検出した対象領域の面積に対する矩形検出部205が検出した第2矩形の面積の比を算出する(ステップS701)。
次に、領域決定部206は、算出した面積の比が閾値Th7以上であるか否かを判定する(ステップS702)。閾値Th7は、閾値Th6と同様に、少なくとも0.5より大きい値(例えば0.8)に設定され、読取り対象として想定する原稿のサイズと原稿の載置台の模様として想定する最大サイズの合計に対する、想定する原稿のサイズの比に予め設定される。なお、領域決定部206は、第1矩形判定処理と同様に、面積比以外の値を用いて対象領域と第2矩形を比較してもよい。
領域決定部206は、算出した面積の比が閾値Th7以上である場合、入力画像の端部と略直交する第2矩形の辺に沿った、入力画像の端部と交わる第2矩形の角の近傍領域を検出する。領域決定部206は、検出した近傍領域において、第2矩形の辺を構成する画素の数に対する、その辺を構成する画素のうちその辺と直交する方向にエッジ画素が存在する画素の数の比を算出する(ステップS703)。
図15Aは、第2矩形判定処理について説明するための模式図である。図15Aに示す例では、原稿1501が入力画像1500内に納まらないように撮像されており、原稿1501の上端1511及び下端1512と、入力画像1500の左端1513及び右端1514から第2矩形1515が構成されている。
領域決定部206は、まず、入力画像1500の左端1513と交わる第2矩形1515の左上角1521の近傍領域1525を検出する。近傍領域は、入力画像1500の左端1513と略直交する第2矩形1515の上端1511に沿った領域であり、上端1511と直交する方向の長さは例えば2mmに相当する長さに、上端1511と平行な方向の長さは例えば10mmに相当する長さに定められる。領域決定部206は、近傍領域1525において、第2矩形1515の上端1511を構成する画素ごとに、その画素を通過し、且つ上端1511と直交する(略垂直方向の)ライン上にエッジ画素が存在するか否かを判定する。そして、領域決定部206は、上端1511を構成する画素の数に対する、上端1511を構成する画素のうち上端1511と直交するライン上にエッジ画素が存在すると判定した画素の数の比を算出する。
同様に、領域決定部206は、入力画像1500の左端1513と交わる第2矩形1515の左下角1522の近傍領域1526を検出する。さらに、領域決定部206は、入力画像1500の右端1514と交わる第2矩形1515の右上角1523の近傍領域1527及び右下角1524の近傍領域1528を検出する。領域決定部206は、各近傍領域について、第2矩形1515の(略水平方向の)各辺を構成する画素の数に対する、各辺を構成する画素のうち各辺と直交する(略垂直方向の)ライン上にエッジ画素が存在する画素の数の比を算出する。
なお、原稿の左端及び右端と、入力画像の上端及び下端から第2矩形が構成される場合、第2矩形の左上角及び左下角の近傍領域は第2矩形の左端に沿った領域となり、第2矩形の右上角及び右下角の近傍領域は第2矩形の右端に沿った領域となる。その場合、領域決定部206は、各近傍領域について、第2矩形の(略垂直方向の)各辺を構成する画素の数に対する、各辺を構成する画素のうち各辺と直交する(略水平方向の)ライン上にエッジ画素が存在する画素の数の比を算出する。
次に、領域決定部206は、各近傍領域について算出した画素の数の比が閾値Th8以上であるか否かを判定する(ステップS704)。閾値Th8は、各近傍領域に原稿の端部が写っているか否かを識別可能な値に設定され、例えば0.8に設定される。
図15Bは、第2矩形判定処理について説明するための模式図である。図15Bに示す例では、原稿1531は入力画像1530内に納まっているが原稿1531は利用者の手1532及び1533によりおさえられている。この例では、原稿1531の上端1541及び下端1542と、入力画像1530の左端1543及び右端1544から第2矩形1545が構成されている。
図15Aに示すように、原稿1501が入力画像1500内に納まらないことにより第2矩形1515が検出されている場合、各近傍領域1525〜1528には原稿の端部が写るため、算出される画素比は1に近い値となる。一方、図15Bに示すように、原稿1531が入力画像1530と直接連なっていないが、利用者の手等を介して連なる場合、各近傍領域1555〜1558には原稿の端部が写らないため、算出される画素比は0に近い値となる。
領域決定部206は、各近傍領域において算出した画素の数の比が全て閾値Th8以上である場合、対象領域と第2矩形は一致すると判定し(ステップS705)、一連のステップを終了する。一方、領域決定部206は、何れかの近傍領域において算出した画素の数の比が閾値Th8未満である場合、またはステップS702で面積比が閾値Th7未満であると判定していた場合、対象領域と第2矩形は一致しないと判定し(ステップS706)、一連のステップを終了する。
上記の通り、領域決定部206は、検出した近傍領域において第2矩形の辺に沿って分布するエッジ画素に基づいて第2矩形が対象領域と一致するか否かを判定する。なお、領域決定部206は、検出した近傍領域における全画素の数に対するエッジ画素の数の比が閾値以上であるか否かにより第2矩形が対象領域と一致するか否かを判定してもよい。
以下に、図5のステップS306、S308、S312及びS314における各画像の状態について説明する。
ステップS306では、第1矩形が対象領域と一致しているので、図12に示すように、第1矩形は原稿による矩形1202であり、対象領域は原稿による矩形1202及び矩形1202に連なる机の模様からなる対象領域1200であると考えられる。この場合、対象領域を切出し領域とすると原稿に連なる机の模様を含めてしまうので、領域決定部206は、第1矩形1202を切出し領域とし、切出し領域に机の模様を含めないようにする。これにより、情報処理装置20は、原稿の載置台に模様がある場合でも、原稿が写っている部分のみを適切に切出すことができる。
一方、ステップS308では、第1矩形が対象領域と一致していないので、非矩形の形状をした原稿が対象領域として検出されたものと考えられる。この場合、領域決定部206は、対象領域の外接矩形を切出し領域とし、切出し領域に非矩形の形状をした原稿全体が含まれるようにする。これにより、情報処理装置20は、原稿の形状が矩形でない場合でも、原稿全体を確実に切出すことができる。
一方、ステップS312では、第2矩形が対象領域と一致している。この場合、図15Aに示すように、原稿1501が入力画像1500内に納まらず、原稿1501による対象領域が入力画像1500の端部1513、1514と交わり第2矩形1515と一致しているものと考えられる。この場合、領域決定部206は、第2矩形1515を切出し領域とし、切出し領域に入力画像に写っている原稿全体が含まれるようにする。これにより、情報処理装置20は、原稿が入力画像内に納まっていない場合でも、原稿内の一部のコンテンツを原稿全体と誤って検出して切出すことを抑制できる。
一方、ステップS314では、第1矩形及び第2矩形は対象領域と一致していないが、対象領域が入力画像の端部と近接し、且つ第1矩形が存在している。この場合、原稿に連なる机の模様が入力画像の端部と交わっているものと考えられる。一般に、机等に原稿を載置して画像読取装置で原稿を撮像する場合、利用者は、撮像範囲の中心位置に原稿を載置して撮像する傾向にある。したがって、原稿に連なる机の模様が入力画像の端部と交わっている場合、机の模様が撮像範囲全体にわたっている可能性が高い。
図16は、机の模様が撮像範囲全体にわたっている場合の入力画像の例を示す模式図である。図16に示す例では、入力画像1600に原稿1601が写っているが、机の模様1602が入力画像1600全体にわたっている。この場合、領域決定部206は、原稿1601による第1矩形1603を切出し領域とし、切出し領域に机の模様1602が含まれないようにする。これにより、情報処理装置20は、原稿の載置台の模様が広範囲にわたっている場合でも、原稿が写っている部分のみを適切に切出すことができる。
なお、図14のステップS704で画素数比が閾値Th8以上でないと判定されてステップS314に移行した場合、図15Bに示すように、原稿1531と利用者の手1532、1533等が連なって対象領域となっている可能性が高い。したがって、この場合も、領域決定部206は、原稿1531による第1矩形を切出し領域とし、切出し領域に可能な限り利用者の手1532、1533等が含まれないようにする。これにより、情報処理装置20は、入力画像に利用者の手等が写っている場合でも、原稿が写っている部分のみを適切に切出すことができる。
なお、第1矩形及び第2矩形は対象領域と一致していないが、対象領域が入力画像の端部と近接し、且つ第1矩形が存在している場合、矩形の模様を有する非矩形の形状をした原稿が入力画像に納まらないように撮像されている可能性もある。したがって、この場合、領域決定部206は、対象領域の外接矩形を切出し領域とし、対象領域に非矩形の形状をした原稿全体が含まれるようにしてもよい。
以上詳述したように、図4〜図6、図8、図13、図14に示したフローチャートに従って動作することによって、情報処理装置20は、入力画像から原稿の画像を切出すべき領域を適切に決定することが可能となった。
連結するエッジ画素によって囲まれる領域を単純に切出し領域とすると、原稿の載置台に模様がある場合、原稿に連なる原稿の載置台の模様が切出し領域に含まれる可能性がある。これを防ぐために、原稿の載置台の模様をノイズとして除去しようとすると、原稿の端部の一部まで除去してしまうおそれがある。情報処理装置20は、対象領域と対象領域内の矩形を比較することによって切出し領域を適切に決定でき、ノイズ除去処理により原稿の載置台の模様を取り除く必要がないため、原稿の端部の除去を防止できる。
なお、画像処理回路27が、切出し領域を決定する範囲は、利用者によって入力装置24から入力できるようにしてもよい。その場合、画像処理回路27の各部は、入力された範囲内で対象領域、各直線又は各矩形を検出し、切出し領域を決定する。
図17は、切出し領域を決定する範囲が指定された場合の処理について説明するための模式図である。図17の画像1700に示すように、原稿1701内の範囲1702が利用者によって指定されると、範囲1702内の各領域1703〜1706が対象領域として検出され、範囲1702内にない各領域1707〜1708は対象領域として検出されない。これにより、情報処理装置20はアルバム等を撮影した場合に、アルバム内の各写真を自動的に切出すことも可能となる。また、切出し領域を決定する範囲を限定することにより、切出すべき領域の外側に存在するノイズを適切に除去することができ、切出し領域を適切に決定することができる。
図18は、他の画像処理システム2の概略構成を示す図である。図18に示す画像処理システム2と、図1に示す画像処理システム1との差異は、画像処理回路を備える装置が異なる点である。すなわち、画像処理システム2では、情報処理装置40ではなく、画像読取装置30が画像処理回路36を有する。この画像処理回路36は、情報処理装置20の画像処理回路27と同様の機能を有する。
図18に示す画像処理システム2では、前述した図3、図4に示す処理とほぼ同様の処理を実行することができる。以下、図3のフローチャートに示される画像読取処理並びに図4のフローチャートに示される直線検出処理及び矩形検出処理についてどのように適応されるかを説明する。画像処理システム2では、ステップS101の処理及びステップS202〜S204の処理は、予め第1記憶装置34に記憶されているプログラムに基づき主に第1CPU35により画像読取装置30の各要素と協働して実行される。一方、ステップS205の処理は、予め第2記憶装置45に記憶されているプログラムに基づき主に第2CPU46により情報処理装置40の各要素と協働して実行される。
ステップS101において、画像読取装置30の画像入力装置31は、撮像対象物を撮影した読取画像を生成し、第1画像メモリ32に保存する。原稿切出し処理は、画像読取装置30で実施されるため、ステップS102、S201の読取画像の送受信処理は省略される。
ステップS202〜S204の処理は、画像読取装置30の画像処理回路36によって実行される。これらの処理の動作は、画像処理システム1について説明した情報処理装置20の画像処理回路27によって実行される場合と同様である。画像読取装置30の画像処理回路36は、切出した領域を第1インターフェース装置33を介して情報処理装置40に送信する。一方、ステップS205において、情報処理装置40の第2CPU46は、受信した領域を表示装置43に表示する。
このように、画像読取装置30が画像処理回路36を備えて原稿切出し処理を実行する場合も、情報処理装置が画像処理回路を備えて原稿切出し処理を実行する場合と同様の効果を得ることができる。
以上、本発明の好適な実施形態について説明してきたが、本発明はこれらの実施形態に限定されるものではない。例えば、画像読取装置と情報処理装置の機能分担は、図1及び図18に示す画像処理システムの例に限られず、画像処理回路内の各部を含めて画像読取装置及び情報処理装置の各部を画像読取装置と情報処理装置の何れに配置するかは適宜変更可能である。または、画像読取装置と情報処理装置を一つの装置で構成してもよい。
また、図1に示す画像処理システム1において、画像読取装置10の第1インターフェース装置13と、情報処理装置20の第2インターフェース装置21を直接接続するのではなく、インターネット、電話回線網(携帯端末回線網、一般電話回線網を含む)、イントラネット等のネットワークを介して接続してもよい。その場合、第1インターフェース装置13及び第2インターフェース装置21に、接続するネットワークの通信インターフェース回路を備える。また、その場合、クラウドコンピューティングの形態で画像処理のサービスを提供できるように、ネットワーク上に複数の情報処理装置20を分散して配置し、各情報処理装置20が協働して、直線検出処理、矩形検出処理等を分担するようにしてもよい。これにより、画像処理システム1は、複数の画像読取装置10が読み取った読取画像について、効率よく原稿切出し処理を実施できる。
同様に、図18に示す画像処理システム2においても、画像読取装置30の第1インターフェース装置33と、情報処理装置40の第2インターフェース装置41をネットワークを介して接続してもよい。