以下、本願の一側面に係る情報処理装置、表示方法及び制御プログラムについて図を参照しつつ説明する。但し、本願の技術的範囲はそれらの実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶ点に留意されたい。
図1は、実施形態に従った画像処理システムの概略構成を示す図である。図1に示すように、画像処理システム1は、画像読取装置10と、情報処理装置20とを有する。画像読取装置10は、例えばイメージスキャナ、デジタルカメラ等であり、情報処理装置20は、例えば画像読取装置10に接続して用いられるパーソナルコンピュータ等である。
画像読取装置10は、画像入力装置11と、第1画像メモリ12と、第1インターフェース装置13と、第1記憶装置14と、第1CPU(Control Processing Unit)15とを有する。以下、画像読取装置10の各部について詳細に説明する。
画像入力装置11は、撮像対象物である原稿等を撮像する撮像センサを有する。この撮像センサは、撮像素子と、撮像素子に撮像対象物の像を結像する光学系を備える。各撮像素子は、RGB各色に対応するアナログ値を出力する。撮像素子は、1次元又は2次元に配列されたCCD(Charge Coupled Device)、CMOS(Complementary Metal Oxide Semiconductor)等である。画像入力装置11は、撮像センサが出力した各アナログ値をデジタル値に変換して画素データを生成し、生成した各画素データから構成される画像データ(以下、RGB画像と称する)を生成する。このRGB画像は、各画素データが、例えばRGB各色毎に8bitで表される計24bitのRGB値からなるカラー画像データとなる。
画像入力装置11は、RGB画像又は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(Universal Serial Bus)等のシリアルバスに準じるインターフェース回路を有し、情報処理装置20と電気的に接続して画像データ及び各種の情報を送受信する。また、第1インターフェース装置13にフラッシュメモリ等を接続して第1画像メモリ12に保存されている画像データを一旦保存し、情報処理装置20に複写するようにしてもよい。
第1記憶装置14は、RAM(Random Access Memory)、ROM(Read Only Memory)等のメモリ装置、ハードディスク等の固定ディスク装置、又はフレキシブルディスク、光ディスク等の可搬用の記憶装置等を有する。また、第1記憶装置14には、画像読取装置10の各種処理に用いられるコンピュータプログラム、データベース、テーブル等が格納される。コンピュータプログラムは、コンピュータ読み取り可能な可搬型記録媒体から公知のセットアッププログラム等を用いて第1記憶装置14にインストールされてもよい。可搬型記録媒体は、例えばCD−ROM(compact disk read only memory)、DVD−ROM(digital versatile disk read only memory)等である。
第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は、エッジ画素抽出部201、候補領域検出部202、外側エッジ画素抽出部203、直線検出部204、矩形検出部205、外周エッジ画素抽出部206、非矩形検出部207、マスク生成部208、領域決定部209、切出し部210及び記憶制御部211を有する。これらの各部は、プロセッサ上で動作するソフトウェアにより実装される機能モジュールである。なお、これらの各部はそれぞれ独立した集積回路、マイクロプロセッサ、ファームウェア等で構成されてもよい。
図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に保存された読取画像を読み出し、読取画像について水平方向及び垂直方向に画素を間引いた第1入力画像を生成し、第2画像メモリ22に保存する(ステップS202)。第1入力画像は入力画像の一例である。
一般に、情報処理装置20は処理する画像の画素数により処理速度が大きく異なるため、画素を間引く割合は、第2CPU26等の処理能力と情報処理装置20に要求される処理速度に応じて定められる。なお、画素を間引かなくても要求される処理速度を満たす場合は読取画像をそのまま第1入力画像としてもよい。
次に、画像処理回路27の各部は、第1入力画像について切出し領域決定処理を実施し(ステップS203)、一連のステップを終了する。切出し領域決定処理において、画像処理回路27の各部は、第1入力画像から原稿の画像を切出す切出し領域を決定する。切出し領域決定処理の詳細については後述する。
図5は、切出し領域決定処理の動作の例を示すフローチャートである。図5に示す動作のフローは、図4に示すフローチャートのステップS203において実行される。
最初に、エッジ画素抽出部201及び候補領域検出部202は、第1入力画像について候補領域検出処理を実施する(ステップS301)。候補領域検出処理において、エッジ画素抽出部201は、第1入力画像からエッジ画素を抽出し、候補領域検出部202は、抽出されたエッジ画素のうち連結するエッジ画素によって囲まれる候補領域を検出する。候補領域検出処理の詳細については後述する。
次に、候補領域検出部202は、候補領域検出処理において候補領域を検出したか否かを判定する(ステップS302)。候補領域検出部202は、候補領域を全く検出していない場合、特に処理を行わず、一連のステップを終了し、一方、候補領域を検出している場合、処理をステップS303へ移行する。ステップS303〜S315の処理は、抽出された候補領域ごとに実施される。
次に、エッジ画素抽出部201、外側エッジ画素抽出部203、直線検出部204及び矩形検出部205は、候補領域について矩形検出処理を実施する(ステップS303)。矩形検出処理において、エッジ画素抽出部201は、エッジ画素を抽出し、外側エッジ画素抽出部203は、エッジ画素のうち外側に位置する外側エッジ画素を抽出する。さらに、直線検出部204は、外側エッジ画素から複数の直線を検出し、矩形検出部205は、検出された複数の直線のうち二本ずつが略直交する四本の直線から構成される矩形を検出する。矩形検出処理の詳細については後述する。
次に、領域決定部209は、矩形検出処理において、矩形検出部205により矩形が検出されたか否かを判定する(ステップS304)。領域決定部209は、矩形検出部205により矩形が検出された場合、その検出された矩形を第1入力画像から原稿の画像を切出す切出し領域に決定する(ステップS305)。次に、切出し部210は、決定した切出し領域、即ち検出された矩形を入力画像から切出す(ステップS306)。
次に、記憶制御部211は、切出した画像を第2画像メモリ22に記憶する(ステップS307)。記憶制御部211は、切出した画像を、第2画像メモリ22の内、不揮発性半導体メモリ等の、画像を長期的に記憶する記憶媒体に記憶する。なお、記憶制御部211は、切出した画像を第2記憶装置25のハードディスク等に記憶してもよい。第2画像メモリ22又は第2記憶装置25に記憶された画像は、入力装置24を用いた利用者からの要求に従って、表示装置23に表示される。
一方、エッジ画素抽出部201、外周エッジ画素抽出部206、非矩形検出部207及びマスク生成部208は、矩形検出部205により矩形が検出されなかった場合、候補領域について非矩形検出処理を実施する(ステップS308)。非矩形検出処理において、エッジ画素抽出部201は、エッジ画素を抽出し、外周エッジ画素抽出部206は、抽出されたエッジ画素のうち連結するエッジ画素の外周を構成する外周エッジ画素を抽出する。さらに、非矩形検出部207は、外周エッジ画素で囲まれる非矩形を検出し、マスク生成部208は、検出された非矩形に基づいて、切出される画像から背景を分離するためのマスクを生成する。非矩形検出処理の詳細については後述する。
次に、領域決定部209は、非矩形検出処理において検出された非矩形を含む領域を第1入力画像から原稿の画像を切出す切出し領域に決定する(ステップS309)。領域決定部209は、検出された非矩形の外接矩形を切出し領域に決定する。なお、領域決定部209は、検出された非矩形自体を切出し領域に決定してもよい。次に、切出し部210は、決定した切出し領域を含む領域を第1入力画像から切出す(ステップS310)。さらに、切出し部210は、マスク生成部208が生成したマスクを使用して、切出した画像から背景を分離した、原稿のみを表す分離画像を抽出する。
次に、記憶制御部211は、切出した画像及び分離画像を第2画像メモリ22に記憶する(ステップS311)。記憶制御部211は、切出した画像を、第2画像メモリ22の内、不揮発性半導体メモリ等の、画像を長期的に記憶する記憶媒体に記憶し、分離画像を揮発性半導体メモリ等の、画像を一時的に記憶する記憶媒体に記憶する。なお、記憶制御部211は、切出した画像を第2記憶装置25のハードディスク等に記憶し、分離画像をRAMに記憶してもよい。また、記憶制御部211は、切出した画像をファイルとして記憶し、一方、分離画像を例えばクリップボードに記憶することにより特定のアプリケーションで利用可能に記憶する。これにより、利用者は、文書編集ソフト、画像編集ソフト、表計算ソフト等において、貼付けコマンドのみを実行することにより、分離画像を利用することが可能となり、利用者の利便性を向上させることが可能となる。
なお、記憶制御部211は、矩形を検出した場合と非矩形を検出した場合とで切出した画像(及び分離画像)を保存するファイル形式を変更してもよい。例えば、記憶制御部211は、矩形を検出した場合(ステップS307の場合)、切出した画像をJPEG(Joint Photographic Experts Group)形式で保存する。一方、記憶制御部211は、非矩形を検出した場合(ステップS311の場合)、切出した画像を透過PNG(Portable Network Graphics)形式で保存する。これにより、情報処理装置20は、形状に適した形式で画像を保存することが可能となり、利用者の利便性を向上させることが可能となる。
次に、画像処理回路27は、全ての候補領域について処理したか否かを判定する(ステップS312)。画像処理回路27は、まだ処理していない候補領域がある場合は処理をステップS303に戻して、ステップS303〜S312の処理を繰り返し、全ての候補領域について処理した場合は一連のステップを終了する。
図6は、候補領域検出処理の動作の例を示すフローチャートである。図6に示す動作のフローは、図5に示すフローチャートのステップS301において実行される。
最初に、エッジ画素抽出部201は、第1入力画像からさらに水平方向及び垂直方向に画素を間引いた第2入力画像を生成し、第2画像メモリ22に保存する(ステップS401)。第2入力画像は、入力画像の他の例である。
図7A〜図7Dは、候補領域検出処理における各画像について説明するための模式図である。図7Aに示す画像700は第1入力画像の例である。図7Aに示すように、第1入力画像700は、木目調等の模様702を有する机に載置された本701を原稿として撮像した画像である。図7Bに示す画像710は第2入力画像の例である。第1入力画像700から第2入力画像710への間引き率は、画像読取装置10の画像入力装置11の撮像素子及び光学系の影響により生じるランダムノイズ703が除去されるが、原稿内の網掛け部分704、文字705等は除去されないように予め定められる。
なお、エッジ画素抽出部201は、第2入力画像を生成する代わりに、第1入力画像に平滑化フィルタを適用することによりランダムノイズ703を除去してもよい。または、エッジ画素抽出部201は、第2入力画像にさらに平滑化フィルタを適用してもよい。
次に、エッジ画素抽出部201は、第2入力画像について水平方向及び垂直方向におけるエッジ画素を抽出する。エッジ画素抽出部201は、第2入力画像の水平方向及び垂直方向の何れかにおいてエッジ画素として抽出された画素からなるエッジ画像を生成し、第2画像メモリ22に保存する(ステップS402)。
エッジ画素抽出部201は、第2入力画像の各画素の水平方向の両隣の画素の輝度値の差の絶対値(以下、隣接差分値と称する)を算出し、隣接差分値が閾値Th1を越える場合、その画像上の画素を垂直エッジ画素とする。この閾値Th1は、例えば、人が画像上の輝度の違いを目視により判別可能な輝度値の差(例えば20)に設定することができる。また、エッジ画素抽出部201は、各画像について垂直方向にも同様の処理を行い、水平エッジ画素を抽出する。なお、エッジ画素抽出部201は、注目画素及びその注目画素の水平方向、垂直方向及び斜め方向(8近傍)に隣接する画素の分散値をその注目画素についての分散値として算出してもよい。その場合、エッジ画素抽出部201は、各画素の分散値についての隣接差分値から垂直エッジ画素及び水平エッジ画素を抽出してもよい。
なお、エッジ画素抽出部201は、抽出した垂直エッジ画素及び水平エッジ画素をそれぞれラベリングによりグループ化し、水平方向の大きさ又は垂直方向の大きさが閾値Th2以下となるグループに含まれるエッジ画素を除去してもよい。閾値Th2は、原稿の載置面の汚れとして想定される値(例えば3mmに相当する値)に設定される。また、エッジ画素抽出部201は、各グループの面積もしくは各グループの外接矩形の面積が閾値以下である場合にそのグループに含まれるエッジ画素を除去してもよい。これらにより、原稿の載置面の汚れにより生じたエッジ画素を除去することができる。
エッジ画素抽出部201は、第2入力画像において垂直エッジ画素又は水平エッジ画素として抽出された画素からなる画像をエッジ画像として生成する。なお、エッジ画素抽出部201は、生成したエッジ画像に対して膨張・収縮処理を実施してもよい。これにより、第2入力画像において連結している部分の一部がエッジ画素として抽出されない場合でも、エッジ画像においてその部分を連結させることができる。
次に、候補領域検出部202は、エッジ画像について、各エッジ画素が他のエッジ画素と連結しているか否かを判定し、連結しているエッジ画素を一つのグループとしてラベリングする(ステップS403)。候補領域検出部202は、水平方向、垂直方向又は斜め方向(8近傍)に相互に隣接するエッジ画素を連結していると判定する。なお、エッジ画素抽出部201は、水平方向又は垂直方向のみ(4近傍)に相互に隣接するエッジ画素を連結していると判定してもよい。
次に、候補領域検出部202は、各グループの水平方向及び垂直方向の両方の大きさが閾値Th3以下か否かを判定し、水平方向及び垂直方向の両方の大きさが閾値Th3以下となるグループに含まれるエッジ画素をエッジ画像から除去する(ステップS404)。閾値Th3は、情報処理装置40が検出を保証する原稿の最小サイズ(例えば1inchに相当する値)に設定される。なお、候補領域検出部202は、各グループの水平方向及び垂直方向の何れかの大きさが閾値Th3以下である場合、又は各グループの面積もしくは各グループの外接矩形の面積が閾値以下である場合にエッジ画素を除去してもよい。外接矩形の面積と比較する閾値は、例えば1inch四方に相当する値とすることができる。
図7Cに示す画像720は、所定の大きさ以下となるグループに含まれるエッジ画素を除去したエッジ画像の例である。画像720では、図7Bに示される机の模様711のように、情報処理装置40が検出を保証する原稿の最小サイズより小さいエッジ画素のグループは除去される。
次に、候補領域検出部202は、各グループが他のグループに包含されるか否かを判定し、他のグループに包含されるグループに含まれるエッジ画素をエッジ画像から除去する(ステップS405)。
図7Dに示す画像730は、他のグループに包含されるグループに含まれるエッジ画素を除去したエッジ画像の例である。画像730では、図7Cに示されるコンテンツ721のように、原稿内のコンテンツによるエッジ画素のグループは除去される。
次に、候補領域検出部202は、除去されずに残った各グループについて、そのグループに含まれるエッジ画素によって囲まれる領域を検出し、検出した領域に対応する第1入力画像内の領域を候補領域として検出する。候補領域検出部202は、第1入力画像内の候補領域の外接矩形を第2画像メモリ22に保存し(ステップS406)、一連のステップを終了する。
図7Dに示す画像730では、連結するエッジ画素によって囲まれる領域は、その連結するエッジ画素のグループの最も外側の外周731及びその内側の領域であり、その領域にはエッジ画素だけでなく、外周731の内側に存在する全ての画素732が含まれる。
なお、連結するエッジ画素によって囲まれる領域を、連結するエッジ画素のグループの最も外側の外周を含まない領域としてもよい。または、連結するエッジ画素によって囲まれる領域を、連結するエッジ画素のグループの最も外側の外周及びその内側の領域を所定画素分だけ膨張又は収縮させた領域としてもよい。また、連結するエッジ画素について、上記したようにエッジ画像に対して膨張・収縮処理を実施することにより、相互に隣接するエッジ画素だけでなく、相互に所定距離内に位置するエッジ画素とその間に位置する画素を含めてもよい。また、連結するエッジ画素の両端に位置するエッジ画素が、所定距離内にある場合は、両端のエッジ画素の間に位置する画素を連結するエッジ画素に含めてもよい。この所定距離は、例えば連結するエッジ画素の長さに所定比率(例えば80%)を乗じた長さとすることができる。これにより、例えばエッジ画素がU字型に連結している場合に、両端のエッジ画素を連結させて囲まれた領域を形成させることができる。
図8は、矩形検出処理の動作の例を示すフローチャートである。図8に示す動作のフローは、図5に示すフローチャートのステップS303において実行される。
最初に、エッジ画素抽出部201は、候補領域検出部202が検出した候補領域内において垂直エッジ画素及び水平エッジ画素を抽出し、垂直エッジ画素又は水平エッジ画素として抽出された画素からなる画像を第2エッジ画像として生成する(ステップS501)。エッジ画素抽出部201は、エッジ画像を生成した場合と同様の方法で垂直エッジ画素及び水平エッジ画素を抽出する。なお、エッジ画像を生成した場合と同様に、エッジ画素抽出部201は、第2入力画像から垂直エッジ画素及び水平エッジ画素を抽出してもよい。また、エッジ画素抽出部201は、抽出した垂直エッジ画素及び水平エッジ画素をそれぞれラベリングによりグループ化し、大きさが閾値Th2以下となるグループに含まれるエッジ画素を除去してもよい。
または、エッジ画素抽出部201は、他の方法により垂直エッジ画素及び水平エッジ画素を抽出してもよい。例えば、エッジ画素抽出部201は、第1入力画像からそれぞれ異なる間引き率で画素を間引いた複数の間引き画像を生成し、第1入力画像及び各間引き画像からそれぞれ垂直エッジ画素を抽出して垂直エッジ画素からなるエッジ画像を生成する。エッジ画素抽出部201は、最も小さい間引き画像から生成したエッジ画像をその次に小さい間引き画像から生成したエッジ画像と同一の解像度に拡大し、同一の解像度にした二つのエッジ画像において同一の位置に存在する垂直エッジ画素からなる画像を生成する。エッジ画素抽出部201は、生成した画像と、その次に小さい間引き画像から生成したエッジ画像に対して同様の処理を繰り返し、最終的に、第1入力画像から生成したエッジ画像の垂直エッジ画素と同一の位置に存在する垂直エッジ画素を抽出する。また、エッジ画素抽出部201は、同様の処理により水平エッジ画素を抽出する。これにより、ノイズを低減しつつ、垂直エッジ画素及び水平エッジ画素を抽出することができる。
なお、エッジ画素抽出部201は、生成した第2エッジ画像に対して膨張・収縮処理を実施しない。これにより、第2エッジ画像では、机の模様、ノイズ等が誤って連結されることが防止される。
次に、外側エッジ画素抽出部203は、候補領域の端部が第1入力画像の端部と近接しているか否かを判定する(ステップS502)。外側エッジ画素抽出部203は、候補領域の左端、右端、上端及び下端の何れかが、第1入力画像の左端、右端、上端又は下端から所定距離内にある場合、近接していると判定し、所定距離内にない場合、近接していないと判定する。所定距離は、候補領域に写っている物が第1入力画像の端部と交わっているにも関わらずエッジ画素が抽出されない可能性のある第1入力画像の端部からの最大距離に定められ、例えば10mmに相当する距離に定められる。
なお、外側エッジ画素抽出部203は、候補領域が、第1入力画像内において予め定められた原稿読取範囲に納まらずにはみ出している場合に候補領域の端部が第1入力画像の端部と近接していると判定し、納まっている場合に近接していないと判定してもよい。その場合、利用者に、原稿を載置する机に原稿読取範囲を示すマットを敷いてから原稿を撮影させることにより、利用者に原稿読取範囲を認識させることができる。なお、画像読取装置10が光照射部(不図示)から、原稿を載置する机に原稿読取範囲を示す光を照射させることにより、利用者に原稿読取範囲を認識させてもよい。
外側エッジ画素抽出部203は、候補領域の端部が第1入力画像の端部と近接していない場合、抽出したエッジ画素のうち外側に位置する外側エッジ画素を抽出する。外側エッジ画素抽出部203は、外側エッジ画素として抽出された画素からなる画像を第3エッジ画像として生成する(ステップS503)。
図9A、図9Bは、外側エッジ画素の抽出処理について説明するための模式図である。図9Aに示す画像900は第2エッジ画像の例である。図9Aに示すように、外側エッジ画素抽出部203は、第2エッジ画像900の各水平ラインを矢印901のように左端側から右端側に向かって走査し、最初に検出したエッジ画素902を外側エッジ画素として抽出する。同様に、外側エッジ画素抽出部203は、第2エッジ画像900の各水平ラインを右端側から左端側に向かって走査し、最初に検出したエッジ画素903も外側エッジ画素として抽出する。同様に、外側エッジ画素抽出部203は、第2エッジ画像900の各垂直ラインを上端側から下端側、及び下端側から上端側に向かってそれぞれ走査し、最初に検出したエッジ画素904、905も外側エッジ画素として抽出する。即ち、外側エッジ画素抽出部203は、候補領域内の各水平ラインにおいて最も左端側及び右端側にそれぞれ位置するエッジ画素、及び候補領域内の各垂直ラインにおいて最も上端側及び下端側にそれぞれ位置するエッジ画素を外側エッジ画素として抽出する。
図9Bに示す画像910は、抽出された外側エッジ画素の例である。図9Bに示すように、外側エッジ画素911は、図9Aの第2エッジ画像900から検出されたエッジ画素902〜905から構成される。
一方、外側エッジ画素抽出部203は、候補領域の端部が第1入力画像の端部と近接している場合、候補領域内の全てのエッジ画素からなる画像を第3エッジ画像として生成する(ステップS504)。この場合、後述する矩形処理において、矩形検出部205は、候補領域内の全てのエッジ画素から矩形を検出する。
図10A、図10Bは、候補領域の端部が第1入力画像の端部と近接している例について説明するための模式図である。図10Aに示す画像1000は、原稿1001が利用者の手1002及び1003によりおさえられている状態を示す。この例では、利用者の手1002及び1003によるエッジ画素は、原稿読取範囲1004に納まらずにはみ出し、第1入力画像の端部にまで位置している。図10Bに示す画像1010は、図10Aに示す画像1000から抽出される外側エッジ画素の例である。図10Bに示すように、利用者の手1002及び1003より内側に位置する原稿の端部1005及び1006は、外側エッジ画素1011として抽出されない。このような場合、候補領域内の全てのエッジ画素からなる画像を第3エッジ画像として生成することにより、原稿の端部が抽出されなくなることを防止することができる。
これにより、原稿が載置されている机の模様等のエッジ強度が高い場合にも同様に、原稿の端部から検出されたエッジと机の模様から検出されたエッジとが繋がってしまい、原稿の端部が抽出されなくなることを防止することができる。
なお、外側エッジ画素抽出部203は、候補領域の端部が第1入力画像の端部と近接している場合、候補領域内の一部のエッジ画素を第3エッジ画像から除去してもよい。例えば、外側エッジ画素抽出部203は、候補領域の端部が第1入力画像の水平方向の端部と近接している場合、候補領域内で垂直方向の直線を検出し、候補領域の端部が第1入力画像の垂直方向の端部と近接している場合、候補領域内で水平方向の直線を検出する。外側エッジ画素抽出部203は、最も外側に検出された二つの直線の間にあるエッジ画素を第3エッジ画像から除去する。これにより、原稿内のコンテンツ等を原稿の端部の検出対象から除去することができ、原稿の端部の検出精度を向上させることができる。
次に、直線検出部204は、第3エッジ画像から複数の直線を検出する(ステップS505)。直線検出部204は、ハフ変換を用いて直線を検出する。なお、直線検出部204は、最小二乗法を用いて直線を検出してもよい。または、直線検出部204は、ハフ変換を用いて検出した直線から所定距離内にあるエッジ画素に対して最小二乗法を用いて直線を検出してもよい。この所定距離は、画像処理システム1が使用される環境等に応じて適宜定められ、例えば2mmに相当する距離に設定される。
次に、直線検出部204は、第3エッジ画像から近似直線を検出する(ステップS506)。
図11A及び図11Bは、近似直線について説明するための模式図である。図11Aに示すような書籍原稿を撮影した第1入力画像1100において、書籍原稿の綴じ目部1101に対して平行な端部1102は直線として検出される。しかしながら、綴じ目部1101に対して直交する端部1103は綴じ目部1101の近傍で歪みが生じ、直線として検出されない場合がある。
そこで、直線検出部204は、図11Bのエッジ画像1110に示すように、相互に隣接するエッジ画素1111をラベリングにより一つのグループ1112としてまとめる。直線検出部204は、そのグループ1112に含まれるエッジ画素のうち、水平方向又は垂直方向における両端に位置するエッジ画素1113及びエッジ画素1114を結んだ直線1115を近似直線として検出する。
次に、矩形検出部205は、直線検出部204が検出した直線又は近似直線からなる矩形を検出し(ステップS507)、一連のステップを終了する。
矩形検出部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は、抽出した矩形候補について面積を算出し、面積が所定値未満である矩形候補を除去する。矩形検出部205は、残った矩形候補の中で最も面積が大きい矩形候補を矩形として検出する。一方、矩形検出部205は、矩形候補が一つも残らなかった場合、矩形を検出しない。
なお、矩形検出部205は、各矩形候補について、矩形候補の各辺から所定距離(例えば2mmに相当する距離)内にある全ての画素の数に対する所定距離内にあるエッジ画素の数の割合を算出し、矩形候補の面積にその割合を乗じて重み付けしてもよい。これにより、原稿の境界を明確に表している直線から構成される矩形を検出することができる。または、矩形検出部205は、各矩形候補について、矩形候補の各角の角らしさの度合いを表す評価点を算出し、評価点を用いて矩形候補の面積を重み付けしてもよい。
図12は、矩形候補の各角の評価点について説明するための模式図である。図12に示す画像1200において、点1201は矩形候補の角を表し、直線1202、1203は矩形候補の各辺を表す。この直線1202、1203の端部が相互に接している場合は、点1201は矩形の角らしいと考えられるが、直線1202、1203の端部が接していない場合又は直線1202、1203が交差している場合は、点1201は矩形の角らしくないと考えられる。
評価点は0点を基準とする。そして、角1201の近傍における辺1202から所定距離内の領域1204において、水平方向のライン毎にエッジ画素が存在するか否かを判定し、水平方向のラインにエッジ画素が存在する場合、評価点に1点を加算する。なお、各角の近傍の範囲及び各辺からの所定距離は、画像処理システム1が使用される環境等に応じて適宜定められ、例えば各角から5mmに相当する距離内の範囲及び各辺から2mmに相当する距離に設定することができる。同様に、角1201の近傍における辺1203から所定距離内の領域1205において、垂直方向のライン毎にエッジ画素が存在するか否かを判定し、垂直方向のラインにエッジ画素が存在する場合、評価点に1点を加算する。また、角1201の近傍における辺1202の延長線から所定距離内の領域1206において、水平方向のライン毎にエッジ画素が存在するか否かを判定し、水平方向のラインにエッジ画素が存在する場合、評価点から1点を減算する。同様に、角1201の近傍における辺1203の延長線から所定距離内の領域1207において、垂直方向のライン毎にエッジ画素が存在するか否かを判定し、垂直方向のラインにエッジ画素が存在する場合、評価点から1点を減算する。矩形検出部205は、評価点の取り得る最低値が0、取り得る最高値が1となるように評価点を正規化した値を算出し、矩形候補の面積にその値を乗じて重み付けすることにより、四つの角を明確に表している矩形を検出することができる。
図13A〜図13Cは、非矩形の画像について矩形検出処理を実行した場合について説明するための模式図である。図13Aに示す画像1300は、矩形状の模様1302を有する、うちわ形状の物1301を撮像した第1入力画像の例である。図13Bに示す画像1310は、第1入力画像1300から生成された第3エッジ画像の例である。図13Bに示すように、第3エッジ画像1310は、外側エッジ画素1311から構成され、第3エッジ画像1310において矩形状の模様1302は抽出されない。図13Cに示す画像1320は、第3エッジ画像1310から抽出された直線の例である。図13Cに示すように、第3エッジ画像1310から、うちわ形状の柄の部分1321〜1323が直線として検出される。しかしながら、図13A〜図13Cに示す例では、二本ずつが略直交する四本の直線から構成される矩形は検出されない。
図14は、非矩形検出処理の動作の例を示すフローチャートである。図14に示す動作のフローは、図5に示すフローチャートのステップS308において実行される。
最初に、エッジ画素抽出部201は、候補領域検出部202が検出した候補領域内において水平、垂直及び斜め方向にエッジ画素を抽出する。次に、エッジ画素抽出部201は、水平、垂直及び斜め方向にエッジ画素として抽出された画素からなる画像を第4エッジ画像として生成する(ステップS601)。
エッジ画素抽出部201は、第1入力画像の各画素について、上から下へ向かう垂直方向、左から右へ向かう水平方向、左下から右上へ向かう斜め方向、及び右下から左上へ向かう斜め方向の隣接差分値をそれぞれ算出する。エッジ画素抽出部201は、算出した何れかの隣接差分値の絶対値が閾値Th1を越える場合、その画像上の画素をエッジ画素とする。
次に、エッジ画素抽出部201は、抽出したエッジ画素をラベリングによりグループ化し、大きさが閾値Th2以下となるグループに含まれるエッジ画素を除去する(ステップS602)。これにより、第4エッジ画像に含まれるノイズ成分を除去することができる。
次に、エッジ画素抽出部201は、生成した第4エッジ画像において、エッジ画素を膨張させた膨張画像を生成する(ステップS603)。これにより、第2入力画像において、連結している部分の一部がエッジ画素として抽出されない場合でも、膨張画像においてその部分を連結させることができる。
次に、外周エッジ画素抽出部206は、膨張画像に対して、エッジ画素以外の画素(非エッジ画素)についてラベリング処理を実行し、膨張画像の端部と連結しているグループを抽出する(ステップS604)。
図15A、図15Bは、非矩形検出処理における各画像について説明するための模式図である。図15Aに示す画像1500のように、膨張画像の端部と連結しているグループ1502は、原稿1501の外周の外側に位置する非エッジ画素のグループとなる。
次に、外周エッジ画素抽出部206は、抽出したグループに含まれる画素を無効画素とし、他の画素を有効画素とする画像を生成する(ステップS605)。
図15Bに示す画像1510は、ステップS606で生成される画像の例である。画像1510では、抽出したグループに含まれる画素1512が無効画素となり、他の画素1511が有効画素となる。
次に、外周エッジ画素抽出部206は、生成した画像において、有効画素を収縮させた収縮画像を生成する(ステップS606)。この収縮処理は、ステップS602で膨張させたエッジ画素を元のサイズに戻すために実行される。従って、非矩形検出部207は、ステップS602でエッジ画素を膨張させた膨張度合いと同じ度合いだけ非矩形を収縮させる。なお、非矩形検出部207は、ステップS602でエッジ画素を膨張させた膨張度合いより大きい度合いで非矩形を収縮させてもよい。その場合、原稿が載置されている机の模様等のエッジ強度が高い場合に、机の模様等により検出されたエッジ画素を有効画素から除去することができる。
次に、外周エッジ画素抽出部206は、収縮画像の有効画素の外周を構成するエッジ画素を外周エッジ画素として抽出する(ステップS607)。
図15Bに示すように、有効画素1511の外周を構成する外周エッジ画素1513は、連結するエッジ画素の外周を構成するエッジ画素となる。
次に、非矩形検出部207は、抽出された外周エッジ画素で囲まれる非矩形を検出する(ステップS608)。非矩形検出部207は、非矩形を複数検出した場合、最も面積が大きい非矩形のみを、検出した非矩形として選択する。これにより、机の模様等により発生するノイズを除去することができる。
次に、マスク生成部208は、検出された非矩形に基づいて、切出される画像から背景を分離するためのマスクを生成する(ステップS609)。マスクは、水平及び垂直方向のそれぞれにおいて、切出し画像と同数の画素を有し、且つ、検出された非矩形に対応する画素を有効画素とし、他の画素を無効画素とする画像で構成される。情報処理装置20は、マスクを用いて、切出される画像から、マスク内の有効画素の位置に対応する画素のみを抽出することにより、分離画像を抽出することができる。
なお、画像処理回路27は、図5のステップS301に示した候補領域検出処理を省略し、第1入力画像全体に対して、矩形検出処理及び非矩形検出処理を実行してもよい。その場合でも、情報処理装置20は、原稿の画像を切出すべき領域を適切に決定することができる。
また、エッジ画素抽出部201は、候補領域を検出するためのエッジ画素と、矩形を検出するためのエッジ画素と、非矩形を検出するためのエッジ画素とを別個に検出せずに、候補領域を検出するためのエッジ画素を用いて矩形又は非矩形を検出してもよい。その場合、情報処理装置20は、エッジ画素の検出処理による処理負荷を低減し、処理の高速化を図ることができる。
また、画像処理回路27は、図5のステップS308に示した非矩形検出処理を省略し、矩形が検出されなかった場合、候補領域を非矩形として用いてもよい。その場合、外周エッジ画素抽出部206は、候補領域の外周を構成するエッジ画素を外周エッジ画素として抽出し、非矩形検出部207は、候補領域を非矩形として検出する。
以上詳述したように、図4〜図6、図8、図14に示したフローチャートに従って動作することによって、情報処理装置20は、原稿の画像を切出すべき領域を適切に決定することが可能となった。特に、情報処理装置20は、入力画像が複雑な背景を有する場合でも、原稿の領域を精度良く検出することが可能となった。さらに、情報処理装置20は、撮影対象物が立体物、手、写真の切抜き等の非矩形の形状を有する場合でも、精度良く撮影対象物の輪郭線を検出し、背景を削除することが可能となった。
また、情報処理装置20は、矩形を検出するためのエッジ画素として垂直及び水平エッジ画素のみを使用し、非矩形を検出するためのエッジ画素として斜めエッジ画素も使用する。これにより、情報処理装置20は、エッジが多少欠落しても検出可能な直線で構成される矩形を検出するときは背景等によるノイズの影響を低減させつつ、エッジが欠落すると検出することが困難な曲線を有する非矩形を検出するときはエッジの欠落を防止できる。
図16は、他の画像処理システム2の概略構成を示す図である。図16に示す画像処理システム2と、図1に示す画像処理システム1との差異は、画像処理回路を備える装置が異なる点である。すなわち、画像処理システム2では、情報処理装置40ではなく、画像読取装置30が画像処理回路36を有する。この画像処理回路36は、情報処理装置20の画像処理回路27と同様の機能を有する。
図16に示す画像処理システム2では、前述した図3、図4に示す処理とほぼ同様の処理を実行することができる。以下、図3のフローチャートに示される画像読取処理並びに図4のフローチャートに示される原稿切出し処理についてどのように適応されるかを説明する。画像処理システム2では、ステップS101の処理及びステップS202〜S203の処理は、予め第1記憶装置34に記憶されているプログラムに基づき主に第1CPU35により画像読取装置30の各要素と協働して実行される。
ステップS101において、画像読取装置30の画像入力装置31は、撮像対象物を撮影した読取画像を生成し、第1画像メモリ32に保存する。原稿切出し処理は、画像読取装置30で実施されるため、ステップS102、S201の読取画像の送受信処理は省略される。
ステップS202〜S203の処理は、画像読取装置30の画像処理回路36によって実行される。これらの処理の動作は、画像処理システム1について説明した情報処理装置20の画像処理回路27によって実行される場合と同様である。画像読取装置30の画像処理回路36は、切出した領域及び分離画像を第1インターフェース装置33を介して情報処理装置40に送信する。
このように、画像読取装置30が画像処理回路36を備えて原稿切出し処理を実行する場合も、情報処理装置が画像処理回路を備えて原稿切出し処理を実行する場合と同様の効果を得ることができる。
以上、本発明の好適な実施形態について説明してきたが、本発明はこれらの実施形態に限定されるものではない。例えば、画像読取装置と情報処理装置の機能分担は、図1及び図16に示す画像処理システムの例に限られず、画像処理回路内の各部を含めて画像読取装置及び情報処理装置の各部を画像読取装置と情報処理装置の何れに配置するかは適宜変更可能である。または、画像読取装置と情報処理装置を一つの装置で構成してもよい。
また、画像処理システム1において、第1インターフェース装置13と第2インターフェース装置21は、インターネット、電話回線網(携帯端末回線網、一般電話回線網を含む)、イントラネット等のネットワークを介して接続してもよい。その場合、第1インターフェース装置13及び第2インターフェース装置21に、接続するネットワークの通信インターフェース回路を備える。また、その場合、クラウドコンピューティングの形態で画像処理のサービスを提供できるように、ネットワーク上に複数の情報処理装置20を分散して配置し、各情報処理装置20が協働して、直線検出処理、矩形検出処理等を分担するようにしてもよい。これにより、画像処理システム1は、複数の画像読取装置10が読み取った読取画像について、効率よく原稿切出し処理を実施できる。
同様に、図16に示す画像処理システム2においても、画像読取装置30の第1インターフェース装置33と、情報処理装置40の第2インターフェース装置41をネットワークを介して接続してもよい。