(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0008】
以下、実施形態について図面を参照しながら説明する。
(第1の実施形態)
まず、第1の実施形態について説明する。
【0009】
実施形態に係る画像処理装置は、複数の原稿を一度にスキャンする。画像形成装置は、スキャンして得られた画像から、各原稿の画像を切り出す処理(マルチクロップ処理)を行う。画像処理装置は、マルチクロップ処理を行った後に、重なって配置された複数の原稿の画像から1つのファイルを生成する。画像処理装置は、ファイルを所定のメディアに格納してもよい。また、画像処理装置は、外部装置にファイルを送信してもよい。
【0010】
図1は、実施形態に係る画像処理装置10の構成例を示すブロック図である。
図1が示すように、画像処理装置10は、基本的な構成として、プロセッサ11、ROM12、RAM13、NVM14、通信部15、スキャナインターフェース16、スキャナ17、操作部インターフェース18、操作部19、表示部インターフェース20及び表示部21などを備える。
【0011】
プロセッサ11と、ROM12、RAM13、NVM14、通信部15、スキャナインターフェース16、スキャナ17、操作部インターフェース18及び表示部インターフェース20とは、データバスなどを介して互いに接続される。
【0012】
スキャナインターフェース16とスキャナ17とは、データバスなどを介して互いに接続される。操作部インターフェース18と操作部19とは、データバスなどを介して互いに接続される。表示部インターフェース20と表示部21とは、データバスなどを介して互いに接続される。
なお、画像処理装置10は、
図1が示すような構成の他に必要に応じた構成を具備したり、特定の構成を除外したりしてもよい。
【0013】
プロセッサ11は、画像処理装置10全体の動作を制御する機能を有する。プロセッサ11は、内部メモリ及び各種のインターフェースなどを備えてもよい。プロセッサ11は、内部メモリ、ROM12又はNVM14が予め記憶するプログラムを実行することにより種々の処理を実現する。
【0014】
なお、プロセッサ11がプログラムを実行することにより実現する各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、プロセッサ11は、ハードウエア回路により実行される機能を制御する。
【0015】
ROM12は、予め制御用のプログラム及び制御データなどが記憶された不揮発性のメモリである。ROM12に記憶される制御プログラム及び制御データは、予め画像処理装置10の仕様に応じて組み込まれる。ROM12は、たとえば、画像処理装置10の回路基板を制御するプログラムなどを格納する。
【0016】
RAM13は、揮発性のメモリである。RAM13は、プロセッサ11の処理中のデータなどを一時的に格納する。RAM13は、プロセッサ11からの命令に基づき種々のアプリケーションプログラムを格納する。また、RAM13は、アプリケーションプログラムの実行に必要なデータ及びアプリケーションプログラムの実行結果などを格納してもよい。
【0017】
NVM14は、データの書き込み及び書き換えが可能な不揮発性のメモリである。NVM14は、例えば、ハードディスク、SSD、EEPROM(登録商標)又はフラッシュメモリなどにより構成される。NVM14は、画像処理装置10の運用用途に応じてプログラム、アプリケーション、及び種々のデータを格納する。
【0018】
通信部15は、外部装置とデータを送受信するためのインターフェースである。たとえば、通信部15は、LAN接続又はBluetooth(登録商標)接続などをサポートするインターフェースである。
【0019】
スキャナインターフェース16は、プロセッサ11がスキャナ17と通信するためのインターフェースである。たとえば、スキャナインターフェース16は、スキャナ17からスキャン画像を取得する。スキャナインターフェース16は、取得したスキャン画像をプロセッサ11に送信する。また、プロセッサ11は、スキャナインターフェース16を通じて、スキャナ17にスキャンを行わせる信号などを送信する。
【0020】
スキャナ17は、プロセッサ11からの信号などに基づいて画像を読み取る。たとえば、スキャナ17は、原稿台にセットされる原稿をスキャンする。たとえば、スキャナ17は、直線状に配置したセンサ群を移動させて原稿を読み取る構成であってもよい。また、スキャナ17は、センサ群に原稿からの光を供給するキャリッジを移動させる構成であってもよい。スキャナ17の構成は、特定の構成に限定されるものではない。
ここでは、原稿は、矩形であるものとする。
【0021】
スキャナ17は、画像を読み取って得られたスキャン画像(スキャン画像データ)をプロセッサ11へ送信する。なお、スキャナ17は、RAM13又は画像メモリなどにスキャン画像を格納してもよい。
【0022】
操作部インターフェース18は、プロセッサ11が操作部19と通信するためのインターフェースである。たとえば、プロセッサ11は、操作部インターフェース18を通じて、操作部19に入力された操作を示す信号を受信する。
【0023】
操作部19は、画像処理装置10の利用者によって、種々の操作が入力される。操作部19は、利用者に入力された操作を示す信号をプロセッサ11へ送信する。操作部19は、たとえば、キーボード、テンキー又はタッチパネルなどである。また、操作部19は、利用者からジェスチャーの入力を受け付けてもよい。
【0024】
表示部インターフェース20は、プロセッサ11が表示部21と通信するためのインターフェースである。たとえば、プロセッサ11は、表示部インターフェース20を通じて、表示部21に画面を表示させる信号を送信する。
【0025】
表示部21は、プロセッサ11が出力する画像を表示する表示装置である。表示部21は、たとえば、液晶モニタなどである。
【0026】
なお、操作部19がタッチパネルから形成される場合、操作部19及び表示部21は、一体的に形成されてもよい。また、操作部19及び表示部21は、コントロールパネルとして一体的に形成されてもよい。また、操作部インターフェース18及び表示部インターフェース20は、一体的に形成されてもよい。
【0027】
次に、プロセッサ11が実現する機能について説明する。以下の機能は、プロセッサ11がNVM14などに格納されるプログラムを実行することで実現される。
【0028】
まず、プロセッサ11は、原稿をスキャンしたスキャン画像を取得する機能を有する。
たとえば、プロセッサ11は、操作部19を通じてスキャンを開始する操作を受け付ける。ここでは、利用者は、スキャナ17の原稿台に、名刺、カード又は書面などの原稿をセットする。利用者は、1つのファイルにまとめたい原稿を一部重ねて原稿台にセットする。利用者は、スキャンを開始する操作を操作部19に入力する。
【0029】
プロセッサ11は、当該操作の入力を受け付けると、スキャナ17に対してスキャンを行わせる信号を送信する。スキャナ17は、当該信号を受信して、原稿のスキャンを行う。スキャナ17は、スキャンによって得られたスキャン画像をプロセッサ11に送信する。なお、スキャナ17は、スキャン画像をRAM13又は画像メモリに格納してもよい。
【0030】
図2は、スキャン画像の例を示す。
図2が示すように、スキャン画像は、原稿A乃至Eを写す。ここでは、原稿A及びBは、重なっているものとする。また、原稿C及びDは、重なっているものとする。原稿Eは、他の原稿と重なっていないものとする。
【0031】
なお、プロセッサ11は、2値化処理などの高画質化処理をスキャン画像に対して行ってもよい。
【0032】
また、プロセッサ11は、スキャン画像から、原稿が写る原稿領域の輪郭線を抽出する機能を有する。
たとえば、プロセッサ11は、エッジ検出などの画像処理を行うことで、原稿領域の輪郭線を抽出する。プロセッサ11が輪郭線を抽出する方法は、特定の方法に限定されるものではない。
【0033】
図3は、プロセッサ11が抽出した輪郭線の例を示す。
図3が示すように、プロセッサ11は、輪郭線100乃至300を抽出する。輪郭線100は、原稿A及びBの輪郭線である。輪郭線200は、原稿C及びDの輪郭線である。輪郭線300は、原稿Eの輪郭線である。
【0034】
また、プロセッサ11は、輪郭線から頂点を抽出する機能を有する。
たとえば、プロセッサ11は、輪郭線を含む画像の特徴量から頂点を抽出する。また、プロセッサ11は、輪郭線の各点における曲率を算出して、頂点を抽出してもよい。プロセッサ11が頂点を抽出する方法は、特定の方法に限定されるものではない。
【0035】
図4は、プロセッサ11が抽出した頂点の例である。
図4では、黒丸は、頂点を示す。
図4が示すように、プロセッサ11は、原稿の角に頂点を抽出する。また、プロセッサ11は、重なった各原稿のエッジが交差する点に頂点を抽出する。
【0036】
また、プロセッサ11は、複数の原稿が重なっているかを判定する機能を有する。
プロセッサ11は、輪郭線において複数の原稿が重なっているかを判定する。プロセッサ11は、輪郭線の頂点に数に基づいて原稿が重なっているか判定する。
【0037】
原稿が重なっていない場合、プロセッサ11は、当該原稿の輪郭線から原稿の角において4つの頂点を抽出する。また、複数の原稿が重なっている場合、プロセッサ11は、原稿の角に加えて各原稿のエッジが交差する点に頂点を抽出するため、5つ以上の頂点を抽出する。
【0038】
従って、プロセッサ11は、輪郭線から頂点の数が5つ以上である場合、輪郭線において複数の原稿が重なっていると判定する。
【0039】
なお、プロセッサ11が原稿の重なりを判定する方法は、特定の方法に限定されるものではない。
【0040】
また、プロセッサ11は、抽出した頂点から、隣接し直角を形成する第1乃至第3の頂点を抽出する機能を有する。
プロセッサ11は、抽出した頂点から隣接する(連続する)3つの頂点(第1乃至第3の頂点)を抽出する。第1乃至第3の頂点は、輪郭線上において順に連続するものとする。
【0041】
たとえば、プロセッサ11は、連続する第1の頂点と第2の頂点とが形成する直線と、連続する第2の頂点と第3の頂点とが形成する直線と、の角度を算出する。プロセッサ11は、算出した角度が直角である場合、当該第1乃至第3の頂点を、隣接し直角を形成する第1乃至第3の頂点として抽出する。なお、プロセッサ11は、算出した角度と直角との差が所定の閾値以下である場合に、算出した角度が直角であると判定してもよい。
【0042】
図5及び
図6は、プロセッサ11が抽出した第1乃至第3の頂点の例を示す。
図5及び
図6は、輪郭線100の頂点を示す。
【0043】
図5が示す例では、プロセッサ11は、頂点101乃至103を抽出する。ここでは、頂点101と頂点102とが形成する直線と、頂点102と頂点103とが形成する直線と、の角度が直角である。
【0044】
図6が示す例では、プロセッサ11は、頂点102乃至104を抽出する。ここでは、頂点102と頂点103とが形成する直線と、頂点103と頂点104とが形成する直線と、の角度が直角である。
【0045】
また、プロセッサ11は、抽出した第1乃至第3の頂点から矩形を形成する第4の頂点を推定する機能を有する。
即ち、プロセッサ11は、第1乃至第4の頂点が矩形を形成するように、第4の頂点を推定する。たとえば、プロセッサ11は、第2の頂点から第3の頂点に伸びるベクトルを算出する。プロセッサ11は、第1の頂点にベクトルを加算して第4の頂点を推定する。
【0046】
なお、プロセッサ11が第4の頂点を推定する方法は、特定の方法に限定されるものではない。
【0047】
図5が示す例では、プロセッサ11は、第4の頂点として頂点111を推定する。
図5が示すように、頂点101乃至103及び111は、矩形を形成する。
また、
図6が示す例では、プロセッサ11は、第4の頂点として頂点112を推定する。
図6が示すように、頂点102乃至104及び112は、矩形を形成する。
【0048】
また、プロセッサ11は、第1乃至第4の頂点が形成する矩形が原稿領域の内側(即ち、輪郭線の内側)にあるかを判定する機能を有する。
プロセッサ11は、第1乃至第4の頂点から矩形を設定する。プロセッサ11は、設定した矩形が輪郭線の内側に含まれるかを判定する。
【0049】
図5が示す例では、プロセッサ11は、頂点101乃至103及び111から矩形121を設定する。
図5が示すように、プロセッサ11は、矩形121が輪郭線外に形成されるため原稿領域の内側にないと判定する。
図6が示す例では、プロセッサ11は、頂点102乃至104及び112とから矩形122を設定する。
図6が示すように、プロセッサ11は、矩形122が原稿領域の内側にあると判定する。
【0050】
プロセッサ11は、原稿領域に内側にあると判定した矩形を候補矩形としてRAM13又はNVM14に格納する。
たとえば、プロセッサ11は、矩形122を候補矩形として格納する。
【0051】
また、プロセッサ11は、他の候補矩形に包含される候補矩形を削除する機能を有する。
プロセッサ11は、RAM13又はNVM14から候補矩形を取得する。プロセッサ11は、当該候補矩形が他の候補矩形に包含されるか判定する。プロセッサ11は、当該候補矩形が他の候補矩形に包含されていると判定すると、当該候補矩形を削除する。
【0052】
プロセッサ11は、残った候補矩形(他の候補矩形に包含されていない候補矩形)を1つの原稿が写る領域(単一原稿領域)として特定する。
【0053】
図7は、プロセッサ11が特定した単一原稿領域の例を示す。
図7が示すように、プロセッサ11は、頂点101、107、108及び113が形成する矩形を単一原稿領域131として特定する。また、プロセッサ11は、頂点103乃至105及び114が形成する矩形を単一原稿領域132として特定する。
【0054】
また、プロセッサ11は、単一原稿領域に基づいてスキャン画像からそれぞれの原稿の原稿画像(原稿画像データ)を抽出する機能を有する。
プロセッサ11は、スキャン画像から単一原稿領域内の画像を原稿画像として抽出する。
図7が示す例では、プロセッサ11は、単一原稿領域131から原稿Aの原稿画像を抽出する。また、プロセッサ11は、単一原稿領域132から原稿Bの原稿画像を抽出する。
【0055】
なお、プロセッサ11は、原稿画像の傾きを補正してもよい。また、プロセッサ11は、原稿画像に対して種々の高画質化処理を行ってもよい。
【0056】
また、プロセッサ11は、重なって配置されたそれぞれの原稿の原稿画像を含む1つのファイルを生成する機能を有する。
即ち、プロセッサ11は、重なって配置された原稿の原稿画像をまとめて1つのファイルに格納する。
【0057】
たとえば、プロセッサ11は、重なって配置された原稿の原稿画像の1つを1ページ目に他方を2ページ目に格納した1つのファイル(マルチページファイル)を生成する。たとえば、プロセッサ11は、原稿画像からPDFファイルを生成する。
【0058】
なお、プロセッサ11は、重なっていない原稿の原稿画像からファイルを生成する。たとえば、プロセッサ11は、1つの原稿画像から構成されるPDFファイル(シングルページファイル)を生成する。
【0059】
図2が示す例では、プロセッサ11は、原稿Aの原稿画像と原稿Bの原稿画像とから1つのファイルを生成する。また、プロセッサ11は、原稿Cの原稿画像と原稿Dの原稿画像とから1つのファイルを生成する。また、プロセッサ11は、原稿Eの原稿画像から1つのファイルを生成する。
【0060】
なお、プロセッサ11は、生成したファイルをNVM14に格納してもよい。また、プロセッサ11は、画像処理装置10にセットされたメモリ(USBメモリなど)にファイルを格納してもよい。また、プロセッサ11は、通信部15を通じて外部装置へファイルを送信してもよい。
【0061】
次に、画像処理装置10の動作例について説明する。
図8は、画像処理装置10の動作例を説明するためのフローチャートである。ここでは、利用者は、スキャナ17に原稿をセットしてスキャンを開始する操作を操作部19に入力するものとする。
【0062】
まず、画像処理装置10のプロセッサ11は、スキャナインターフェース16を通じてスキャナ17から原稿をスキャンしたスキャン画像を取得する(ACT11)。スキャン画像を取得すると、プロセッサ11は、スキャン画像に対して2値化処理を行う(ACT12)。
【0063】
2値化処理を行うと、プロセッサ11は、スキャン画像から原稿領域の輪郭線を抽出する(ACT13)。輪郭線を抽出すると、プロセッサ11は、輪郭線から頂点を抽出する(ACT14)。
【0064】
頂点を抽出すると、プロセッサ11は、1つの輪郭線において頂点の数が5つ以上あるか判定する(ACT15)。1つの輪郭線において頂点の数が5つ以上あると判定すると(ACT15、YES)、プロセッサ11は、画像分離処理(単一原稿領域を生成する処理)を行う(ACT16)。
【0065】
1つの輪郭線において頂点の数が5つ以上ないと判定した場合(ACT15、NO)、又は、画像分離処理を行った場合(ACT16)、プロセッサ11は、スキャン画像から1つの原稿画像を抽出する(ACT17)。
【0066】
原稿画像を抽出すると、プロセッサ11は、原稿画像の傾きを補正する(ACT18)。原稿画像の傾きを補正すると、プロセッサ11は、他に単一原稿領域があるか判定する(ACT19)。
【0067】
他に単一原稿領域があると判定すると(ACT19、YES)、プロセッサ11は、ACT17に戻る。
【0068】
他に単一原稿領域がないと判定すると(ACT19、NO)、プロセッサ11は、原稿画像が複数あるか判定する(ACT20)。原稿画像が複数あると判定すると(ACT20、YES)、プロセッサ11は、複数の原稿画像からマルチページファイルを生成する(ACT21)。原稿画像が複数ないと判定すると(ACT20、NO)、プロセッサ11は、原稿からシングルページファイルを生成する(ACT22)。
【0069】
複数の原稿画像からマルチページファイルを生成した場合(ACT21)、又は、原稿からシングルページファイルを生成した場合(ACT22)、プロセッサ11は、他の輪郭線があるか判定する(ACT23)。
【0070】
他の輪郭線があると判定すると(ACT23、YES)、プロセッサ11は、ACT15に戻る。他の輪郭線がないと判定すると(ACT23、NO)、プロセッサ11は、動作を終了する。
【0071】
次に、プロセッサ11が画像分離処理(ACT16)を行う動作例について説明する。
図9は、プロセッサ11が画像分離処理を行う動作例について説明するためのフローチャートである。
【0072】
プロセッサ11は、抽出した頂点から、隣接し直角を形成する第1乃至第3の頂点を抽出する(ACT31)。第1乃至第3の頂点を抽出すると、プロセッサ11は、第1乃至第3の頂点と矩形を形成する第4の頂点を推定する(ACT32)。
【0073】
第4の頂点を推定すると、プロセッサ11は、第1乃至第4の頂点から矩形を形成する(ACT33)。矩形を形成すると、プロセッサ11は、形成した矩形が輪郭線の内側であるか判定する(ACT34)。
【0074】
形成した矩形が輪郭線の内側であると判定すると(ACT34、YES)、プロセッサ11は、矩形を候補矩形として保存する(ACT35)。
【0075】
形成した矩形が輪郭線の内側でないと判定した場合(ACT34、NO)、又は、矩形を候補矩形として保存した場合(ACT35)、プロセッサ11は、他に抽出する3頂点があるか判定する(ACT36)。
【0076】
他に抽出する3頂点があると判定すると(ACT36、YES)、プロセッサ11は、ACT31に戻る。
【0077】
他に抽出する3頂点がないと判定すると(ACT36、NO)、プロセッサ11は、他の候補矩形に包含される候補矩形を削除する(ACT37)。他の候補矩形に包含される候補矩形を削除すると、プロセッサ11は、残った候補矩形を単一原稿領域と特定する(ACT38)。
【0078】
残った候補矩形を単一原稿領域と特定すると、プロセッサ11は、動作を終了する。
【0079】
なお、プロセッサ11は、重なった原稿の原稿画像をそれぞれ個別に含むファイルを生成してもよい。
また、画像処理装置は、画像を用紙に印刷するプリンタを備えてもよい。プロセッサ11は、プリンタを用いて原稿画像を印刷してもよい。また、プロセッサ11は、複数の原稿画像から1つのファイルを生成した場合、原稿画像を両面印刷してもよい。
【0080】
以上のように構成された画像形成装置は、スキャン画像から重なって配置された複数の原稿の輪郭線を抽出する。画像処理装置は、輪郭線の頂点に基づいて1つの原稿が写る原稿領域を特定する。そのため、画像処理装置は、原稿が重なって配置されても、各原稿の原稿画像を抽出することができる。その結果、画像処理装置は、効果的にマルチクロップ処理を行うことができる。
【0081】
また、画像処理装置は、重なって配置された原稿から1つのファイルを生成する。そのため、画像処理装置は、利用者から操作部を通じてマルチページファイルを生成する操作を受け付けることなく、マルチページファイルを生成することができる。
(第2の実施形態)
次に、第2の実施形態について説明する。
第2の実施形態に係る画像処理装置1は、第1及び第2の頂点と直角を形成する第3の頂点を検索する点で第1の実施形態に係る画像処理装置1と異なる。従って、他の点については、同一の符号を付して詳細な説明を省略する。
【0082】
第2の実施形態に係る画像処理装置1の構成は、第1の実施形態のそれと同様である。従って、第2の実施形態に係る画像処理装置1の構成についての説明を省略する。
【0083】
次に、プロセッサ11が実現する機能について説明する。以下の機能は、プロセッサ11がNVM14などに格納されるプログラムを実行することで実現される。
【0084】
まず、プロセッサ11は、抽出した頂点から、隣接する第1及び第2の頂点を抽出する機能を有する。
プロセッサ11は、抽出した頂点から、輪郭線で直接つながる2つの頂点を第1及び第2の頂点として抽出する。
【0085】
ここでは、プロセッサ11は、3枚の原稿が写るスキャン画像を取得するものとする。
図10は、スキャン画像の例を示す。
図10が示すように、スキャン画像は、原稿A乃至Cを写す。ここでは、原稿A及びBは、重なっているものとする。また、原稿B及びCは、重なっているものとする。
【0086】
図11は、プロセッサ11が抽出した輪郭線の例を示す。
図11が示すように、プロセッサ11は、輪郭線400を抽出する。輪郭線400は、原稿A、B及びCの輪郭線である。
【0087】
図12は、プロセッサ11が抽出した頂点の例である。
図12では、黒丸は、頂点を示す。
図12が示すように、プロセッサ11は、原稿の角に頂点を抽出する。また、プロセッサ11は、重なった各原稿のエッジが交差する点に頂点を抽出する。
【0088】
図13は、プロセッサ11が抽出した第1及び第2の頂点の例を示す。
図13が示す例では、プロセッサ11は、頂点401及び402を抽出する。頂点401と頂点402とは、輪郭線400で直接つながる。
【0089】
また、プロセッサ11は、抽出した頂点から、第1及び第2の頂点と直角を形成する第3の頂点を検索する機能を有する。
プロセッサ11は、第1の頂点と第2の頂点とが形成する直線と、第2の頂点と第3の頂点とが形成する直線とが直交するように、第3の頂点を決定する。また、プロセッサ11は、第1の頂点と第2の頂点とが形成する直線と、第1の頂点と第3の頂点とが形成する直線とが直交するように、第3の頂点を決定する。
【0090】
図14乃至
図17は、プロセッサ11が第3の頂点を検索する動作例を示す。
図14が示す例では、プロセッサ11は、頂点403が第3の頂点となるか判定する。
図14が示すように、頂点401と頂点402とが形成する直線と、頂点402と頂点403とが形成する直線と、が形成する角度が直線とならない。また、頂点401と頂点402とが形成する直線と、頂点401と頂点403とが形成する直線と、が形成する角度が直線とならない。従って、プロセッサ11は、頂点401及び402に関して、頂点403を第3の頂点とはならないと判定する。
【0091】
図15が示す例では、プロセッサ11は、頂点404が第3の頂点となるか判定する。
図15が示すように、頂点401と頂点402とが形成する直線と、頂点402と頂点404とが形成する直線と、が形成する角度が直線となる。従って、プロセッサ11は、頂点401及び402に関して、頂点404を第3の頂点となるものと判定する。
【0092】
図16が示す例では、プロセッサ11は、頂点405が第3の頂点となるか判定する。
図16が示すように、頂点401と頂点402とが形成する直線と、頂点402と頂点405とが形成する直線と、が形成する角度が直線となる。従って、プロセッサ11は、頂点401及び402に関して、頂点405を第3の頂点となるものと判定する。
【0093】
図17が示す例では、プロセッサ11は、頂点408が第3の頂点となるか判定する。ここでは、プロセッサ11は、第1及び第2の頂点として頂点406及び407を抽出したものとする。
【0094】
図17が示すように、頂点406と頂点407とが形成する直線と、頂点406と頂点408とが形成する直線と、が形成する角度が直線となる。従って、プロセッサ11は、頂点401及び402に関して、頂点408を第3の頂点となるものと判定する。
【0095】
また、プロセッサ11は、抽出した第1並びに2の頂点及び検索した第3の頂点から矩形を形成する第4の頂点を推定する機能を有する。
即ち、プロセッサ11は、第1乃至第4の頂点が矩形を形成するように、第4の頂点を推定する。たとえば、プロセッサ11は、第2の頂点から第3の頂点に伸びるベクトルを算出する。プロセッサ11は、第1の頂点にベクトルを加算して第4の頂点を推定する。
【0096】
なお、プロセッサ11が第4の頂点を推定する方法は、特定の方法に限定されるものではない。
【0097】
図15が示す例では、プロセッサ11は、第4の頂点として頂点411を推定する。
図15が示すように、頂点401、402、404及び411は、矩形を形成する。
また、
図16が示す例では、プロセッサ11は、第4の頂点として頂点412を推定する。
図16が示すように、頂点401、402、405及び412は、矩形を形成する。
【0098】
また、
図17が示す例では、プロセッサ11は、第4の頂点として頂点413を推定する。
図17が示すように、頂点406乃至408及び413は、矩形を形成する。
【0099】
また、プロセッサ11は、第1乃至第4の頂点が形成する矩形が原稿領域の内側(即ち、輪郭線の内側)にあるかを判定する機能を有する。
プロセッサ11は、第1乃至第4の頂点から矩形を設定する。プロセッサ11は、設定した矩形が輪郭線の内側に含まれるかを判定する。
【0100】
図15が示す例では、プロセッサ11は、頂点401、402、404及び411から矩形421を設定する。
図15が示すように、プロセッサ11は、矩形421が原稿領域の内側にあると判定する。
図16が示す例では、プロセッサ11は、頂点401、402、405及び412から矩形422を設定する。
図16が示すように、プロセッサ11は、矩形422が原稿領域の内側にあると判定する。
【0101】
図17が示す例では、プロセッサ11は、頂点406、407、408及び413から矩形423を設定する。
図17が示すように、プロセッサ11は、矩形423が輪郭線外にはみ出すため原稿領域の内側にないと判定する。
【0102】
プロセッサ11は、原稿領域に内側にあると判定した矩形を候補矩形としてRAM13又はNVM14に格納する。
また、プロセッサ11は、他の候補矩形に包含される候補矩形を削除する機能を有する。
プロセッサ11は、RAM13又はNVM14から候補矩形を取得する。プロセッサ11は、当該候補矩形が他の候補矩形に包含されるか判定する。プロセッサ11は、当該候補矩形が他の候補矩形に包含されていると判定すると、当該候補矩形を削除する。
【0103】
たとえば、矩形421は矩形422に包含されるため、プロセッサ11は、矩形421を削除する。
【0104】
プロセッサ11は、残った候補矩形(他の候補矩形に包含されていない候補矩形)を1つの原稿が写る領域(単一原稿領域)として特定する。
【0105】
図18は、プロセッサ11が特定した単一原稿領域の例を示す。
図18が示すように、プロセッサ11は、単一原稿領域431、432(矩形422)及び433を特定する。
【0106】
また、プロセッサ11は、単一原稿領域が他の単一原稿領域と重なった範囲の割合(重なり率)を算出する機能を有する。
プロセッサ11は、単一原稿領域ごとに重なり率を算出する。たとえば、プロセッサ11は、所定の単一原稿領域の面積(第1の面積)と当該単一原稿領域が他の単一原稿領域に重なっている面積(第2の面積)とを抽出する。プロセッサ11は、第2の面積を第1の面積で除算して、当該単一原稿領域の重なり率を算出する。
【0107】
図18が示す例では、プロセッサ11は、単一原稿領域431の面積を特定する。また、プロセッサ11は、単一原稿領域431と単一原稿領域432とが重なっている領域の面積を算出する。プロセッサ11は、重なっている領域の面積を単一原稿領域431の面積で除算して単一原稿領域431の重なり率を算出する。
【0108】
また、プロセッサ11は、単一原稿領域432の面積を特定する。また、プロセッサ11は、単一原稿領域432と単一原稿領域431及び433が重なっている領域の面積をそれぞれ算出し合算する。プロセッサ11は、合算した面積を単一原稿領域432の面積で除算して単一原稿領域432の重なり率を算出する。
プロセッサ11は、単一原稿領域433についても同様に重なり率を算出する。
【0109】
また、プロセッサ11は、重なり率が所定の閾値よりも大きい単一原稿領域に対して警告を提示する機能を有する。
たとえば、プロセッサ11は、表示部21に、重なり率が所定の閾値を超えていることを示す警告を単一原稿領域ごとに表示する。たとえば、プロセッサ11は、単一原稿領域の原稿画像に警告を付して表示する。
【0110】
図19は、表示部21が表示する警告の例を示す。
図19が示すように、プロセッサ11は、単一原稿領域431の原稿画像(原稿Aの画像)、単一原稿領域432の原稿画像(原稿Bの画像)及び単一原稿領域433の原稿画像(原稿Cの画像)を表示する。即ち、プロセッサ11は、原稿画像のサムネイルを表示する。
【0111】
ここでは、プロセッサ11は、単一原稿領域431(原稿Aの領域)及び単一原稿領域432(原稿Bの領域)の重なり率が所定の閾値よりも高いと判定したものとする。
【0112】
プロセッサ11は、原稿Aの原稿画像及び原稿Bの原稿画像の近傍に警告を表示する。ここでは、プロセッサ11は、警告として「アラート!」を表示する。なお、プロセッサ11は、警告として、他の文言を表示してもよい。また、プロセッサ11は、原稿画像の枠の色又は太さを変えてもよい。プロセッサ11が表示する警告の構成は、特定の構成に限定されるものではない。
【0113】
図19が示すように、プロセッサ11は、原稿画像を削除するアイコン21a、スキャン動作をキャンセルするアイコン21b及び保存を行うアイコン21cなどを表示してもよい。
【0114】
また、プロセッサ11は、それぞれの原稿画像を個別に含むファイルを生成する機能を有する。
プロセッサ11は、アイコン21cへのタップを受け付けると、それぞれの原稿画像を個別に含むファイルを生成する。
【0115】
たとえば、プロセッサ11は、原稿Aの原稿画像を含むファイル、原稿Bの原稿画像を含むファイル及び原稿Cの原稿画像を含むファイルを生成する。
【0116】
プロセッサ11は、生成したファイルをNVM14に保存してもよい。また、プロセッサ11は、画像処理装置10にセットされたメモリ(USBメモリなど)にファイルを保存してもよい。なお、プロセッサ11は、通信部15を通じて外部装置へファイルを送信してもよい。
【0117】
次に、画像処理装置10の動作例について説明する。
図20及び21は、画像処理装置10の動作例を説明するためのフローチャートである。ここでは、利用者は、スキャナ17に原稿をセットしてスキャンを開始する操作を操作部19に入力するものとする。
【0118】
まず、画像処理装置10のプロセッサ11は、スキャナインターフェース16を通じてスキャナ17から原稿をスキャンしたスキャン画像を取得する(ACT41)。スキャン画像を取得すると、プロセッサ11は、スキャン画像に対して2値化処理を行う(ACT42)。
【0119】
2値化処理を行うと、プロセッサ11は、スキャン画像から原稿領域の輪郭線を抽出する(ACT43)。輪郭線を抽出すると、プロセッサ11は、輪郭線から頂点を抽出する(ACT44)。
【0120】
頂点を抽出すると、プロセッサ11は、1つの輪郭線において頂点の数が5つ以上あるか判定する(ACT45)。1つの輪郭線において頂点の数が5つ以上あると判定すると(ACT45、YES)、プロセッサ11は、画像分離処理を行う(ACT46)。
【0121】
1つの輪郭線において頂点の数が5つ以上ないと判定した場合(ACT45、NO)、又は、画像分離処理を行った場合(ACT46)、プロセッサ11は、スキャン画像から1つの原稿画像を抽出する(ACT47)。
【0122】
原稿画像を抽出すると、プロセッサ11は、原稿画像の傾きを補正する(ACT48)。原稿画像の傾きを補正すると、プロセッサ11は、他に単一原稿領域があるか判定する(ACT49)。
【0123】
他に単一原稿領域があると判定すると(ACT49、YES)、プロセッサ11は、ACT47に戻る。
【0124】
他に単一原稿領域がないと判定すると(ACT49、NO)、プロセッサ11は、他の輪郭線があるか判定する(ACT50)。
【0125】
他の輪郭線があると判定すると(ACT50、YES)、プロセッサ11は、ACT45に戻る。他の輪郭線がないと判定すると(ACT50、NO)、プロセッサ11は、抽出した原稿画像のサムネイルを表示部21に表示する(ACT51)。
【0126】
サムネイルを表示すると、プロセッサ11は、原稿画像に対応する重なり率が所定の閾値を超えているかを判定する(ACT52)。重なり率が所定の閾値を超えていると判定すると(ACT52、YES)、プロセッサ11は、警告を表示する(ACT53)。
【0127】
重なり率が所定の閾値を超えてないと判定した場合(ACT52、NO)、又は、警告を表示した場合(ACT53)、プロセッサ11は、操作部19を通じて、原稿画像を保存する操作を受け付けたか判定する(ACT54)。
【0128】
原稿画像を保存する操作を受け付けていないと判定すると(ACT54、NO)、プロセッサ11は、ACT54に戻る。
【0129】
原稿画像を保存する操作を受け付けたと判定すると(ACT54、YES)、プロセッサ11は、原稿画像を所定のメモリに保存する(ACT55)。原稿画像を所定のメモリに保存すると、プロセッサ11は、動作を終了する。
【0130】
次に、プロセッサ11が画像分離処理(ACT46)を行う動作例について説明する。
図22は、プロセッサ11が画像分離処理を行う動作例について説明するためのフローチャートである。
【0131】
プロセッサ11は、抽出した頂点から、隣接する第1及び第2の頂点を抽出する(ACT61)。第1及び第2の頂点を抽出すると、プロセッサ11は、第1及び第2の頂点と直角を形成する第3の頂点を検索する(ACT62)。
【0132】
第3の頂点を検索すると、プロセッサ11は、第1乃至第3の頂点と矩形を形成する第4の頂点を推定する(ACT63)。
【0133】
第4の頂点を推定すると、プロセッサ11は、第1乃至第4の頂点から矩形を形成する(ACT64)。矩形を形成すると、プロセッサ11は、形成した矩形が輪郭線の内側であるか判定する(ACT65)。
【0134】
形成した矩形が輪郭線の内側であると判定すると(ACT65、YES)、プロセッサ11は、矩形を候補矩形として保存する(ACT66)。
【0135】
形成した矩形が輪郭線の内側でないと判定した場合(ACT65、NO)、又は、矩形を候補矩形として保存した場合(ACT66)、プロセッサ11は、第1及び第2の頂点と直角を形成する他の第3の頂点があるか判定する(ACT67)。
【0136】
他の第3の頂点があると判定すると(ACT67、YES)、プロセッサ11は、ACT62に戻る。
【0137】
他の第3の頂点がないと判定すると(ACT67、NO)、プロセッサ11は、隣接する他の第1及び第2の頂点があるか判定する(ACT68)。隣接する他の第1及び第2の頂点があると判定すると(ACT68、YES)、プロセッサ11は、ACT61に戻る。
【0138】
隣接する他の第1及び第2の頂点がないと判定すると(ACT68、NO)、プロセッサ11は、他の候補矩形に包含される候補矩形を削除する(ACT69)。他の候補矩形に包含される候補矩形を削除すると、プロセッサ11は、残った候補矩形を単一原稿領域と特定する(ACT70)。
【0139】
残った候補矩形を単一原稿領域と特定すると、プロセッサ11は、各単一原稿領域の重なり率を算出する(ACT71)。各単一原稿領域の重なり率を算出すると、プロセッサ11は、動作を終了する。
【0140】
なお、プロセッサ11は、原稿画像を外部装置に送信してもよい。また、プロセッサ11は、保存する原稿画像の選択を受け付け、選択された原稿画像を保存してもよい。
また、プロセッサ11は、4枚以上が重なる原稿を写したスキャン画像に基づいて、各原稿の原稿画像を抽出してもよい。
【0141】
また、プロセッサ11は、重なって配置されたそれぞれの原稿の原稿画像を含む1つのファイルを生成してもよい。たとえば、プロセッサ11は、原稿A乃至Cの原稿画像から1つのファイルを生成してもよい。
以上のように構成された画像処理装置は、隣接する第1及び第2の頂点から直角を形成する第3の頂点を抽出する。画像処理装置は、第1乃至第3の頂点から矩形を形成する第4の頂点を推定する。画像処理装置は、当該矩形に基づいてスキャン画像から原稿画像を抽出する。
【0142】
その結果、画像処理装置は、3つの角が輪郭線上で連続しない原稿(複数の原稿と重なってる原稿)についても原稿画像を抽出することができる。そのため、画像処理装置は、3枚以上の原稿が重なっている場合であっても、各原稿の原稿画像を特定することができる。
【0143】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
以下に本件出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
原稿をスキャンしたスキャン画像データを取得するインターフェースと、
前記スキャン画像データから前記原稿の原稿領域の輪郭線を抽出し、
前記輪郭線の頂点を抽出し、
前記頂点に基づいて、前記原稿領域において複数の原稿が重なっているかを判定し、 前記複数の原稿が重なっていると判定した場合、前記スキャン画像データからそれぞれの原稿の原稿画像データを抽出し、
それぞれの原稿画像データを個別に含むファイルを生成する、
プロセッサと、
を備える画像処理装置。
[C2]
前記原稿は、矩形であり、
前記プロセッサは、
前記複数の原稿が重なっていると判定した場合、前記頂点から隣接し直角を形成する第1乃至第3の頂点を抽出し、
前記第1乃至第3の頂点から矩形を形成する第4の頂点を推定し、
前記矩形に基づいて前記スキャン画像データからそれぞれの原稿の原稿画像データを抽出する、
前記C1に記載の画像処理装置。
[C3]
前記原稿は、矩形であり、
前記プロセッサは、
前記複数の原稿が重なっていると判定した場合、前記頂点から隣接する第1及び第2の頂点を抽出し、
前記頂点から、前記第1及び第2の頂点と直角を形成する第3の頂点を抽出し、
前記第1乃至第3の頂点から矩形を形成する第4の頂点を推定し、
前記矩形に基づいて前記スキャン画像データからそれぞれの原稿の原稿画像データを抽出する、
前記C1に記載の画像処理装置。
[C4]
前記プロセッサは、
前記原稿領域の内側に形成される前記矩形に基づいて前記スキャン画像データからそれぞれの原稿の原稿画像データを抽出する、
前記C2又は3に記載の画像処理装置。
[C5]
前記プロセッサは、
他の矩形に包含されない前記矩形に基づいて前記スキャン画像データからそれぞれの原稿の原稿画像データを抽出する、
前記C2乃至4の何れか1項に記載の画像処理装置。