画像処理装置、画像処理方法、画像処理プログラム及び画像処理システム
【課題】画像データに含まれる原稿領域の辺の境界線を構成する画素を検出した候補画素に基づいて境界線を算出する精度を向上する。
【解決手段】画像処理装置10は、原稿領域を含んだ画像データを入力する画像入力部60と、原稿領域の辺の境界線を構成する画素の候補となる候補画素を検出する候補画素検出部61と、原稿領域の辺毎に、境界線の複数の部位においてそれぞれ検出された候補画素の座標を複数の座標グループに分類する分類部63と、複数の座標グループ毎に属する座標に基づいて、境界線の複数の近似直線を算出する近似直線算出部68と、複数の近似直線のうち、近似直線から所定の距離の範囲にある候補画素数が最も多い近似直線に基づいて、辺の境界線の仮直線を決定する仮直線決定部69と、仮直線に基づいて原稿領域の画像を切り出だす画像切出部67を備える。
【解決手段】画像処理装置10は、原稿領域を含んだ画像データを入力する画像入力部60と、原稿領域の辺の境界線を構成する画素の候補となる候補画素を検出する候補画素検出部61と、原稿領域の辺毎に、境界線の複数の部位においてそれぞれ検出された候補画素の座標を複数の座標グループに分類する分類部63と、複数の座標グループ毎に属する座標に基づいて、境界線の複数の近似直線を算出する近似直線算出部68と、複数の近似直線のうち、近似直線から所定の距離の範囲にある候補画素数が最も多い近似直線に基づいて、辺の境界線の仮直線を決定する仮直線決定部69と、仮直線に基づいて原稿領域の画像を切り出だす画像切出部67を備える。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書で論じられる実施態様は、画像処理装置、画像処理方法、画像処理プログラム、及び画像処理システムに関する。
【背景技術】
【0002】
原稿を読み取って得られる画像データから原稿領域の画像を切り出す画像処理装置が知られている。例えば、画像処理装置は、原稿領域を含む画像を取得し、取得した画像に基づいてエッジ候補画素の座標値を検出し、検出したエッジ候補画素の座標値に基づいて原稿領域の傾きを算出し、検出したエッジ候補画素の座標値に基づいてエッジ端候補画素の座標値を抽出する。そして画像処理装置は、算出した原稿領域の傾きおよび抽出したエッジ端候補画素の座標値に基づいてエッジに対応する直線を算出し、算出したエッジに対応する直線に基づいて原稿領域の傾きを補正すると共に、当該直線に基づいて画像から原稿領域を切り出す。
【0003】
また、画像データで表示される直線の角度を検出する画像処理方法が知られている。画像処理方法では、注目画素のエッジ強度を算出し、エッジ強度としきい値とを比較し、エッジ方向を算出し、エッジ方向ヒストグラムを作成し、作成したエッジ方向ヒストグラムに基づいてピーク角度を決定し、ピーク角度を中心とする範囲内にあるエッジ画素に基づいてハフ変換により極座標ヒストグラムを作成し、極座標ヒストグラムに基づいて仮直線を決定し、仮直線の最長線分を検出し、最小二乗法に基づく回帰直線から直線の角度を決定する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2009−218953号公報
【特許文献2】特開2005−322044号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
画像処理装置が処理する画像データには、タブを有する原稿を読み取って得られるものがある。図1の(A)は、タブを有する原稿の模式図である。参照符号101は、原稿100の本体部分を示し、参照符号102は原稿100のタブの部分を示す。タブ102は、原稿100のエッジである1辺103において、原稿100とその外側の領域との間の境界線がより外側の境界線105とより内側の境界線104を持つ場合に、外側の境界線105によって辺が形成される部分である。
【0006】
タブ102を有する原稿には、例えばカタログやマニュアル、パンフレットがある。タブ102には、見出しなどの一定の情報が記載されている場合がある。また、タブ102は色分けされている場合がある。原稿にタブ102がある場合に、タブ102部分の境界線105で検出した境界の候補画素106とそれ以外の候補画素107に基づき辺103の境界線108を近似すると誤差が生じることがある。
【0007】
また、例えば原稿と画像読取装置の裏当て部との明度差が小さい等の場合には、画像データ内の原稿領域と背景領域の明度差が小さくなる場合がある。図1の(B)は、原稿領域と背景領域の明度差が小さい画像データの模式図である。画像データ200は、原稿領域201と背景領域202を含み、原稿領域201と背景領域202の明度差が比較的小さい。
【0008】
このため、原稿領域201内における明度変化が、原稿領域201と背景領域202との境界と誤検出されることがある。画素203は、原稿領域201と背景領域202との境界を検出した候補画素であり、画素204は、原稿領域201内における明度変化を境界と誤検出した候補画素である。これらの候補画素203及び204に基づいて辺の境界線205を近似した場合にも誤差が生じることがある。
【0009】
開示の装置及び方法は、画像データに含まれる原稿領域の辺の境界線を構成する画素を検出した候補画素に基づいて境界線を算出する精度を向上することを目的とする。
【課題を解決するための手段】
【0010】
装置の一観点によれば、原稿領域を含んだ画像データを入力する画像入力部と、原稿領域の辺の境界線を構成する画素の候補となる候補画素を検出する候補画素検出部と、原稿領域の辺毎に、境界線の複数の部位においてそれぞれ検出された候補画素の座標を複数の座標グループに分類する分類部と、複数の座標グループ毎に属する座標に基づいて、境界線の複数の近似直線を算出する近似直線算出部と、複数の近似直線のうち、近似直線から所定の距離の範囲にある候補画素数が最も多い近似直線に基づいて、辺の境界線の仮直線を決定する仮直線決定部と、仮直線に基づいて原稿領域の画像を切り出だす画像切出部を備える画像処理装置が与えられる。
【0011】
装置の他の一観点によれば、画像読取装置と、該画像読取装置との間の通信により該画像読取装置が読み込む画像を受信するコンピュータ装置を有する画像処理システムが与えられる。画像処理システムは、画像読取装置により読み込まれる画像データに含まれる原稿領域の辺の境界線を構成する画素の候補となる候補画素を検出する候補画素検出部と、原稿領域の辺毎に、境界線の複数の部位においてそれぞれ検出された候補画素の座標を複数の座標グループに分類する分類部と、複数の座標グループ毎に属する座標に基づいて、境界線の複数の近似直線を算出する近似直線算出部と、複数の近似直線のうち、近似直線から所定の距離の範囲にある候補画素数が最も多い近似直線に基づいて、辺の境界線の仮直線を決定する仮直線決定部と、仮直線に基づいて原稿領域の画像を切り出だす画像切出部を備える。
【0012】
方法の一観点によれば、画像処理方法が与えられる。画像処理方法は、画像処理装置に、原稿領域を含んだ画像データを取得する画像取得ステップと、原稿領域の辺の境界線を構成する画素の候補となる候補画素を検出する候補画素検出ステップと、原稿領域の辺毎に、境界線の複数の部位においてそれぞれ検出された候補画素の座標を複数の座標グループに分類する分類ステップと、複数の座標グループ毎に属する座標に基づいて、境界線の複数の近似直線を算出する近似直線算出ステップと、複数の近似直線のうち、近似直線から所定の距離の範囲にある候補画素数が最も多い近似直線に基づいて、辺の境界線の仮直線を決定する仮直線決定ステップと、仮直線に基づいて原稿領域の画像を切り出だす画像切出ステップを実行させる。
【0013】
コンピュータプログラムの一観点によれば、制御部を備えた情報処理装置に実行させるための画像処理プログラムが与えられる。画像処理プログラムは、この制御部に実行させるための、原稿領域を含んだ画像データを取得する画像取得ステップと、原稿領域の辺の境界線を構成する画素の候補となる候補画素を検出する候補画素検出ステップと、原稿領域の辺毎に、境界線の複数の部位においてそれぞれ検出された候補画素の座標を複数の座標グループに分類する分類ステップと、複数の座標グループ毎に属する座標に基づいて、境界線の複数の近似直線を算出する近似直線算出ステップと、複数の近似直線のうち、近似直線から所定の距離の範囲にある候補画素数が最も多い近似直線に基づいて、辺の境界線の仮直線を決定する仮直線決定ステップと、仮直線に基づいて原稿領域の画像を切り出だす画像切出ステップを含む。
【発明の効果】
【0014】
本件開示の装置又は方法によれば、画像データに含まれる原稿領域の辺の境界線を構成する画素を検出した候補画素に基づいて境界線を算出する精度を向上することができる。
【図面の簡単な説明】
【0015】
【図1】(A)はタブを有する原稿の模式図であり、(B)は原稿領域と背景領域の明度差が小さい画像データの模式図である。
【図2】画像処理システムのハードウエア構成図である。
【図3】画像処理システムの処理の第1例の説明図である。
【図4】(A)〜(C)は、図3に示す処理の説明図である。
【図5】(A)〜(C)は、図3に示す処理の説明図である。
【図6】図3に示す処理の説明図である。
【図7】画像処理制御部の構成例の第1例を示す図である。
【図8】(A)及び(B)は、クロップ設定の設定画面の構成例を示す図である。
【図9】候補画素検出部により検出された候補画素の説明図である。
【図10】分類部による座標グループ作成処理の第1例の説明図である。
【図11】(A)及び(B)は、座標グループ作成処理の説明図である。
【図12】(A)〜(C)は、候補画素間を結ぶ直線の傾きθが45°を超える場合の説明図である。
【図13】(A)及び(B)は、イメージスキャナに対して原稿が45°傾いた状態で読み取られた際の候補画素の状態を示す図である。
【図14】(A)〜(C)は、イメージスキャナに対して原稿が45°傾いた場合の処理の説明図である。
【図15】直線決定部による直線グループ作成処理の説明図である。
【図16】(A)及び(B)は、近似直線と座標グループの距離の算出方法の例示の説明図である。
【図17】直線グループの説明図である。
【図18】直線決定部による仮直線決定処理の第1例の説明図である。
【図19】直線決定部及び直線選択部による境界線決定処理の説明図である。
【図20】辺にタブが存在する場合の近似直線の説明図である。
【図21】(A)〜(D)は、画像処理システムの処理の他の実施例の説明図である。
【図22】画像処理制御部の構成例の第2例を示す図である。
【図23】画像処理システムの処理の第2例の説明図である。
【図24】分類部63による座標グループ作成処理の第2例の説明図である。
【図25】直線決定部による仮直線決定処理の第2例の説明図である。
【発明を実施するための形態】
【0016】
<1.ハードウエア構成>
以下、添付する図面を参照して本発明の実施例について説明する。図2は、画像処理システムのハードウエア構成図である。画像処理システム1は、画像読取装置10及びコンピュータ装置30を備える。画像読取装置10は、2次元の原稿を読み取って、この原稿に対応する画像信号を生成する。画像読取装置10は、例えば、複数の光源で露光された2次元原稿を走査して読み取る画像読取装置であってよい。このような、例えば画像読取装置の例として、例えばフィーダスキャナ、フラットベッドスキャナ、ハンディスキャナ等の各種スキャナ装置が挙げられる。
【0017】
コンピュータ装置30は、有線又は無線の通信回線を介して画像読取装置10との間で通信が可能であり、この通信回線を経由して画像読取装置10が読み取った原稿の画像信号を画像読取装置10から受信する。
【0018】
画像読取装置10は、CPU(Central Processing Unit: 中央処理ユニット)11、メモリ12、イメージセンサ13、AFE(Analog Front-End Processor)14と、シェーディング処理部15と、ブロックバッファ16を備える。また、画像読取装置10は、画像処理制御部17と、画像メモリ18と、調停部19と、入力部20と、出力部21と、インタフェース(I/F)22とバス23を備える。
【0019】
CPU11は、メモリ12に格納されたコンピュータプログラムに従い画像読取装置10の動作を制御する。ある実施例では、CPU11は、画像読取装置10が読み取る原稿画像の画像処理を行ってもよい。メモリ12にはこのような画像処理用のコンピュータプログラムが格納されてもよい。メモリ12には、CPU11により実行されるコンピュータプログラムや、このコンピュータプログラムの実行の際に使用されるデータが格納される。メモリ12は、プログラムを記憶するための非揮発性記憶装置や、データを一次的に記憶するための揮発性メモリを含んでいてよい。
【0020】
イメージセンサ13は、2次元の原稿を撮像して、原稿に対応する画像信号を出力する。イメージセンサ13は、例えば、1次元又は2次元に配列されたCCD(Charge Coupled Device)センサやCMOS(Complementary Metal Oxide Semiconductor)センサ等の撮像素子と、この撮像素子に原稿の像を結像する光学系を備える。AFE14は、イメージセンサ13から出力される画像信号に対して増幅やその他の信号処理を施した後、処理された画像信号をシェーディング処理部15へ入力する。
【0021】
シェーディング処理部15は、AFE14から受信した画像信号を、画像データとしてブロックバッファに収容し、この画像データにシェーディング処理を施した後に、画像処理制御部17に出力する。画像処理制御部17は、シェーディング処理が施された後の画像データに所定の画像処理を施し、画像データを画像メモリ18に格納する。他の実施例においてシェーディング処理部15は、シェーディング処理が施された後の画像データを画像メモリ18に格納し、画像処理制御部17は、画像メモリ18から画像データを入力してもよい。調停部19は、画像処理制御部17が画像処理の際に行うメモリ12に対するアクセスと、CPU11によるメモリ12へのアクセスとが競合しないように、これらのアクセスを調停する。
【0022】
ある実施例では、シェーディング処理部15、画像処理制御部17及び調停部19は、論理回路として画像読取装置10に実装されてよい。論理回路は、例えば、LSI(large scale integration)やASIC(Application Specific Integrated Circuit)、FPGA(Field-Programming Gate Array)等であってよい。他の実施例では、シェーディング処理部15、画像処理制御部17及び調停部19は、CPUやDSP(digital signal processor)等のプロセッサと、このプロセッサが実行するプログラムを格納するメモリを含む電子回路として画像読取装置10に実装されてよい。
【0023】
入力部20は、ユーザによる入力操作を受け付ける入力装置である。入力部20は、例えば、ボタン、スクロールホイール、キーパッド、キーボード、ポインティングデバイス、タッチパネル等であってよい。出力部21は、画像読取装置10から各種情報をユーザに提示するための出力装置である。例えば、出力部21は、ユーザに提示する情報を利用者に可視的に表示する表示デバイスであってよい。出力部21は、発光素子や、液晶ディスプレイ、有機エレクトロルミネッセンスディスプレイ等の表示装置であってよい。または、出力部21は、音声信号を出力するスピーカやその駆動回路であってよい。
【0024】
I/F22は、画像読取装置10とコンピュータ装置30との間の有線及び/又は無線による通信インタフェースである。画像読取装置10は、読み取った原稿の画像データをI/F22を介してコンピュータ装置30へ送信することが可能である。画像読取装置10は、画像読取装置10の動作に関する設定情報や指示をI/F22を介してコンピュータ装置30から受信する。ある実施例では、画像読取装置10は、コンピュータ装置30により処理が施された画像データをI/F22を介して受信してよい。CPU11、シェーディング処理部15、画像処理制御部17、画像メモリ18、調停部19、入力部20、出力部21及びI/F22は、バス23によって電気的に接続されている。
【0025】
一方、コンピュータ装置30は、CPU31と、補助記憶装置32と、メモリ33と、入力部34と、出力部35と、媒体読取部36と、I/F37とバス38を備える。CPU31は、補助記憶装置32に格納されたコンピュータプログラムを実行することにより、コンピュータプログラムに応じた情報処理を実行する。ある実施例では、CPU31は、画像読取装置10により読み取られた原稿画像の画像処理を行ってもよい。補助記憶装置32にはこのような画像処理用のコンピュータプログラムが格納されてもよい。補助記憶装置32は、コンピュータプログラムを記憶するための、不揮発性記憶装置や、読み出し専用メモリ(ROM: Read Only Memory)やハードディスクなどを含んでいてもよい。
【0026】
メモリ33には、CPU31が現在実行中のプログラムや、このプログラムによって一時的に使用されるデータが記憶される。メモリ33は、ランダムアクセスメモリ(RAM: Random Access Memory)を含んでいてよい。入力部34は、ユーザによる入力操作を受け付ける入力装置である。入力部34は、例えば、キーパッド、キーボード、ポインティングデバイス、タッチパネル等であってよい。
【0027】
出力部35は、コンピュータ装置30によって処理された信号を出力する出力装置である。例えば、出力部35は、コンピュータ装置30によって処理された情報を利用者に可視的に表示する表示デバイスであってよい。出力部35は、例えば、液晶ディプレイ、CRT(Cathode Ray Tube)ディスプレイ、有機エレクトロルミネッセンスディスプレイなどの表示装置であってよい。または、出力部35は、音声信号を出力するスピーカやその駆動回路であってよい。
【0028】
媒体読取部36は、コンピュータに読み取り可能な可搬型記録媒体に記憶されたデータを読み取る入力装置である。媒体読取部36は、例えばCD−ROMドライブ装置やDVD−ROMドライブ装置、フレキシブルディスクドライブ装置、CD−Rドライブ装置や、DVD−Rドライブ装置、MOドライブ装置、フラッシュメモリ装置へのアクセス装置であってよい。
【0029】
I/F37は、画像読取装置10とコンピュータ装置30との間の有線及び/又は無線による通信インタフェースである。コンピュータ装置30は、画像読取装置10が読み取った原稿の画像データを、I/F37を経由して受信することが可能である。コンピュータ装置30は、画像読取装置10の動作に関する設定情報や指示をI/F37を介して画像読取装置10へ送信する。CPU31、補助記憶装置32、メモリ33、入力部34、出力部35、媒体読取部36及びI/F37は、バス38によって電気的に接続されている。
【0030】
<2.第1実施例>
<2.1. 概要説明>
続いて、図3を参照して、画像処理システム1により実施される処理の第1例について説明する。ステップS101において画像処理システム1は、画像データを入力する。図4の(A)は入力される画像データを示す。画像データ50は、画像読取装置10により読み取られた原稿に対応する原稿領域51を含む。ステップS102において画像処理システム1は、原稿領域の辺のそれぞれについて、各辺での原稿領域とその外側との境界線を構成する画素の候補となる候補画素を検出する。図4の(A)〜図4の(C)、図5の(A)〜図5の(C)及び図6において、例として辺52の境界線53で検出した候補画素を黒ドットで示す。
【0031】
ステップS103において画像処理システム1は、原稿領域の辺のいずれかを選択する。以下のステップS104〜S107は、原稿領域の辺毎に実行される。
【0032】
ステップS104において画像処理システム1は、境界線53の複数の部位においてそれぞれ検出された候補画素毎に異なるグループに分類することにより、複数の座標グループを生成する。図4の(B)は、座標グループcg1〜cg4に分類された候補画素を示す。
【0033】
ステップS105において画像処理システム1は、複数の座標グループに属する候補画素の集合により形成される直線グループを決定する。このとき、画像処理システム1は、各座標グループcg1〜cg4に属する候補画素に基づいて、境界線53の近似直線をそれぞれ算出する。候補画素の座標から近似直線を算出するために、最小二乗法やハフ変換などの様々な算出法を利用することができる。図4の(C)において、近似直線al1〜al4は、それぞれ各座標グループcg1〜cg4に属する候補画素に基づいて算出される近似直線である。
【0034】
次に、画像処理システム1は、近似直線al1〜al4のそれぞれについて、各近似直線から所定の距離の範囲にある候補画素の集合を形成し、それぞれの集合を1つの直線グループとして決定する。図5の(A)は、近似直線al1から所定の距離の範囲にある候補画素の集合により形成される直線グループlg1の説明図である。直線グループlg1には、座標グループcg1、cg2及びcg4に属する候補画素が含まれる。これら座標グループcg1、cg2及びcg4に属する候補画素は、近似直線al1から所定の距離の範囲にある。他の近似直線al2〜al4についても同様に直線グループを決定する。
【0035】
ステップS106において画像処理システム1は、境界線53の仮直線を決定する。画像処理システム1は、ステップS105で生成した直線グループのうち、最も所属する候補画素が多い直線グループを選択する。本例では、最も所属する候補画素が多い直線グループとして、図5の(A)に示す直線グループlg1が選択される。
【0036】
画像処理システム1は、選択された直線グループに含まれる候補画素に基づいて境界線53の仮直線を決定する。候補画素の座標から仮直線を決定するために、最小二乗法やハフ変換などの様々な算出法を利用することができる。図5の(B)に示す例では、画像処理システム1は、座標グループcg1、cg2及びcg4に属する候補画素に基づいて、境界線53の仮直線tlを決定する。仮直線tlの傾きの方向を参照符号54で示す。
【0037】
ステップS107において画像処理システム1は、画像データから原稿領域を切り出すための境界線を決定する。画像処理システム1は、仮直線に基づいて図4の(C)に示す近似直線al1〜al4のうちのいずれかを選択する。画像処理システム1は、例えば、仮直線の傾き54に基づいて近似直線al1〜al4のうちのいずれかを選択してよい。このとき傾き54と近似直線al1〜al4の傾きとの間の差分に基づいて、近似直線al1〜al4のいずれかを選択してよい。図5の(C)の例では近似直線al1及びal3が選択される。
【0038】
画像処理システム1は、選択された近似直線のうちのいずれか1個を、予め定めた原稿領域の外側又は内側を指定する設定に応じて選択する。以下の説明において、原稿領域の外側又は内側を指定する設定を「クロップ設定」と表記する。図6の例においてクロップ設定が原稿領域の外側を指定する場合には、原稿領域のより外側の直線である近似直線al3が選択される。クロップ設定が原稿領域の内側を指定する場合には、原稿領域のより内側の直線である近似直線al1が選択される。画像処理システム1は、クロップ設定によって選択された近似直線を、画像データ50から原稿領域51を切り出す境界線として決定する。
【0039】
ステップS108において画像処理システム1は、全ての辺において原稿領域を切り出す境界線を決定したか判断する。境界線を決定していない辺が存在する場合(ステップS108:N)には、処理はステップS109へ進む。全ての辺において原稿領域を切り出す境界線を決定した場合(ステップS108:Y)には、処理はS110へ進む。ステップS109において画像処理システム1は、未だ境界線を決定していない辺を選択し、処理をステップS104に戻す。
【0040】
ステップS110において画像処理システム1は、各辺についてステップS107で決定した境界線の位置で、入力した画像データから原稿領域の画像を切り出す。
【0041】
<2.2. 装置構成>
続いて、画像処理制御部17の構成について説明する。図7は画像処理制御部17の構成例の第1例を示す図である。画像処理制御部17は、画像入力部60、候補画素検出部61、分類部63、直線決定部64、設定部65、直線選択部66、画像切出部67を備える。なお、図7は、以下の説明に関係する機能を中心として示している。このため、画像処理制御部17は図示の構成要素以外の他の構成要素を含んでいてよい。候補画素記憶部62に格納される候補画素は、メモリ12に格納される。
【0042】
他の実施例では、画像入力部60、候補画素検出部61、分類部63、直線決定部64、設定部65、直線選択部66、画像切出部67により行われる処理の一部又は全部を、画像処理制御部17に代わってCPU11が実行してもよい。また他の実施例では、これらの処理の一部又は全部をコンピュータ装置30のCPU31によって実行してもよい。コンピュータ装置30は、候補画素記憶部62としてメモリ33に候補画素を記憶してもよい。
【0043】
CPU31にこれらの情報処理を実行させるコンピュータプログラムは、機械可読記録媒体に記録されて、媒体読取部36により読み取られて補助記憶装置32にインストールされてもよい。また、CPU31にこれらの情報処理を実行させるコンピュータプログラムは、図示しないネットワークインタフェースを介してネットワークからダウンロードされ、補助記憶装置32にインストールされてもよい。
【0044】
画像入力部60は、画像データ50を入力する。候補画素検出部61は、原稿領域の辺のそれぞれについて候補画素を検出する。候補画素検出部61は、検出した画素を候補画素記憶部62に格納する。分類部63は、候補画素を異なる複数の座標グループに分類する。
【0045】
直線決定部64は、近似直線算出部68と仮直線決定部69を備える。近似直線算出部68は、各座標グループに属する候補画素に基づいて、境界線53の近似直線をそれぞれ算出する。仮直線決定部69は、近似直線のそれぞれについて直線グループを生成する。仮直線決定部69は、生成した直線グループのうち最も所属する候補画素が多い直線グループを選択して、選択した直線グループに基づいて仮直線を決定する。
【0046】
直線決定部64は、仮直線決定部69により決定した仮直線に基づいて、近似直線のうちの1個以上の直線を選択する。なお、処理対象の辺にタブがある場合には、直線決定部64は、後述の通り、タブ部分の境界線を構成する候補画素の座標グループから求めた近似直線とタブ以外の辺の境界線を構成する候補画素の座標グループから求めた近似直線とをそれぞれ選択する。
【0047】
設定部65は、クロップ設定、すなわち原稿領域の外側又は内側の指定に関する設定を直線選択部66に与える。ある実施例では、クロップ設定は、例えば工場出荷時などに固定的に定めてよい。またある実施例では、設定部65は、ユーザによるクロップ設定を受け付けて直線選択部66に与えてもよい。設定部65は、画像読取装置10やコンピュータ装置30の表示装置に表示された設定画面を介してユーザが入力するクロップ設定を受け付けてもよい。設定画面の例を図8の(A)に示す。
【0048】
設定画面70は、例えば、第1コンボボックス71〜第4コンボボックス74と、設定ボタン75と、キャンセルボタン76を備える。第1コンボボックス71は画像データのカラーモードを指定する。第2コンボボックス72は両面原稿又は片面原稿の区別を指定する。第3コンボボックス73は原稿の画質を指定する。第4コンボボックス74はクロップ設定を指定する。
【0049】
図8の(B)は、クロップ設定のための第4コンボボックス74の構成例を示す。第4コンボボックス74は、原稿の「内側」及び「外側」をそれぞれ項目に持つメニュー77を備える。第4コンボボックス74は、ユーザによる画像読取装置10の入力部20やコンピュータ装置30の入力部34の操作に応じて、これらの項目のいずれかの選択入力を受け付ける。なお、他の実際例では、図8の(B)の「内側」に代えて「デフォルト」又は「デフォルト(内側)」を表示してよい。同様に図8の(B)の「外側」に代えて「タブ」又は「タブ(外側)」を表示してよい。
【0050】
図7を参照する。直線選択部66は、設定部65により指定されるクロップ設定に従って、直線決定部64が選択した近似直線のうちいずれか1個の直線を、画像データから原稿領域を切り出すための境界線として選択する。クロップ設定が原稿領域の外側を指定する場合には、直線選択部66は、直線決定部64が決定した近似直線のうち原稿領域のより外側にある近似直線が選択される。また、クロップ設定が原稿領域の内側を指定する場合には、直線選択部66は、直線決定部64が決定した近似直線のうち原稿領域のより内側にある近似直線が選択される。
【0051】
画像切出部67は、原稿領域の各辺について直線選択部66が選択した境界線の位置で、入力した画像データから原稿領域の画像を切り出す。画像切出部67により切り出された画像は、コンピュータ装置30に出力される。
【0052】
<2.3. 画像処理>
<2.3.1. 座標グループ生成処理>
続いて、画像処理制御部17の各構成要素により実行される処理について説明する。なお、以下の説明では、原稿領域の左辺の境界線を決定する場合の処理を例として説明するが、右辺についても同様に境界線を決定することができる。また、座標グループを生成する際に候補画素を走査する方向を90°変えることによって、上辺及び下辺の境界線についても同様に決定することができる。
【0053】
分類部63は、候補画素検出部61により検出された候補画素を異なる複数のグループに分類することによって座標グループを生成する。図9は、候補画素検出部61により検出された候補画素の説明図である。候補画素検出部61は、検出ラインL1〜L6、…においてそれぞれ境界線110の候補画素P1〜P6、…を検出する。検出ラインL1〜L6、…は、画像データの上から下へ向かう方向である走査方向SDに並べて、所定画素数dy毎に配列される。
【0054】
なお、以下の説明において画像データの上から下に向かう方向をY軸方向と表記し、左から右に向かう方向をX軸方向と表記することがある。またX軸方向及びY軸方向における各点の座標を、それぞれX座標、Y座標と表記することがある。
【0055】
分類部63は、処理対象として注目する候補画素(以下「注目候補画素」と表記する)を、走査方向SDの方向に向かって、連続する候補画素P1、P2、…、P(i−1)、Pi、P(i+1)、…に順次変化させる。すなわち分類部63は、走査方向SDの方向に向かって注目候補画素を走査する。分類部63は、注目候補画素を順次変化させながら、一つ上の検出ラインの候補画素と同じ座標グループに注目候補画素を入れるか否かを判断する。
【0056】
図10は、分類部63による座標グループ作成処理の第1例の説明図である。ステップS201において分類部63は、処理を開始する最初の注目候補画素を選択する。例えば分類部63は、上から2番目以下の候補画素を最初の注目候補画素を選択してよい。これは、後述のステップS205及びS206において、注目候補画素と一つ上の検出ラインで検出された候補画素との相対位置関係を判断するためである。
【0057】
ステップS202において分類部63は、第1個目の座標グループcg1を生成する。ステップS203において分類部63は、注目候補画素の検出ラインを示す変数「i」にステップS201で選択した注目候補画素の検出ラインを代入する。分類部63は、現在形成中の座標グループcgjを参照するインデックス「j」に「1」を代入する。
【0058】
ステップS204において分類部63は、第(i−1)番目の検出ラインの候補画素P(i−1)から注目候補画素Piへ向かう方向の傾きθを決定する。図11の(A)を参照して候補画素P(i−1)から候補画素Piへ向かう方向の傾きθを説明する。図11の(A)及び図11の(B)において一点鎖線は検出ラインを示す。
【0059】
傾きθは、候補画素P(i−1)と候補画素Piとを結ぶ直線Lと走査方向SDとのなす角として定められる。ここで原稿は、画像読取装置10のイメージセンサ13に対して、最大45°傾いた状態で読み取られることが想定される。このため、1本の境界線上にある候補画素間を結ぶ直線は、最大で45°傾くことが予定される。もし、候補画素間を結ぶ直線の傾きが45°以上傾いている場合には、これらの候補画素は1本の境界線上にないと判断できる。
【0060】
このため、ステップS205において分類部63は、傾きθが45°よりも大きいか否かを判断する。傾きθが45°以下である場合には、図11の(A)に示すように、注目候補画素Piを、1つ上の検出ライン上の候補画素P(i−1)と同じ座標グループcgに含める。一方で、図11の(B)に示すように傾きθが45°を超える場合には、注目候補画素Piを、1つ上の検出ライン上の候補画素P(i−1)と同じ座標グループcg1に含めない。なお、検出ライン間のY軸方向の間隔は一定値dyであるため、分類部63は、候補画素間のX座標の大きさがdyを超えるか否かによって、傾きθが45°を超えるか否かを判断してもよい。
【0061】
図10を参照する。傾きθが45°よりも大きい場合(ステップS205:Y)には、処理はオペレーションS206へ進む。傾きθが45°以下の場合(ステップS205:N)には、処理はオペレーションS209へ進む。ステップS206において分類部63は、現在形成中の座標グループcgjが空であるか否かを判断する。cgjが空の場合(ステップS206:Y)には、分類部63は新たな座標グループを生成せずに、処理はステップS215へ進む。cgjが空でない場合(ステップS206:N)には、分類部63は、ステップS207でインデックスjを1つ増加させ、ステップS208で新たな座標グループcgjを生成する。その後、処理はステップS215へ進む。
【0062】
なお、本実施例では、ステップS208で生成した新たな座標グループcgjに、注目候補画素Piを含めない。このため図11の(B)に示すように、傾きθが45°よりも大きい場合には、注目候補画素Piは新たな座標グループcg2にも、候補画素P(i−1)が属する座標グループcg1にも属さない。他の実施例では、分類部63は、ステップS208で生成した新たな座標グループcgjに注目候補画素Piを含めてもよい。
【0063】
隣接する候補画素間を結ぶ直線の傾きθが45°を超える場合として、例えば以下の2つの場合が想定される。
【0064】
(1)ノイズにより候補画素を誤検出した場合である。この場合、誤検出した候補画素の位置は本来の境界線から離れた位置で検出される。図12の(A)に示す例では、候補画素P1〜P6のうち、候補画素P4が本来の境界線BLから離れた位置で検出される。
【0065】
このような誤検出が生じやすい場合の例として、原稿領域と画像データの背景領域の明度差が小さい場合がある。図12の(B)は、原稿領域と背景領域の明度差が小さい画像データの模式図である。画像データ78は、原稿領域79と背景領域80を含み、原稿領域79と背景領域80の明度差が比較的小さい。このような場合には原稿領域79と背景領域80との境界における明度変化と、原稿領域79内における明度変化の違いを峻別しにくくなる。このため、例えば図12の(B)に示すように、参照符号81で示す部分では正常に境界線の位置で候補画素が検出される一方で、参照符号82で示す部分では境界線から離れた位置で候補画素が誤検出されることが生じることがある。
【0066】
境界線の近似直線を算出する際に、誤検出した候補画素を使用すると、近似直線の傾きに誤差が生じる原因となる。分類部63が、誤検出された候補画素を他の候補画素と同じ座標グループに含めないことで、座標グループに属する候補画素に基づいて算出される近似直線の傾きに、誤検出した候補画素による誤差が生じることを防止する。
【0067】
(2)辺にタブが存在し、タブ部分で候補画素の一方が検出され、タブでない部分で候補画素の他方が検出された場合である。この場合、これらの候補画素は同一直線の境界線上に存在しない。図12の(C)は、タブ部分及びタブでない部分で検出される候補画素の模式図である。候補画素P1〜P3はタブでない部分の境界線BL1上で検出される一方で、候補画素P4〜P6はタブ部分の境界線BL2上で検出される。
【0068】
候補画素P1〜P6はそもそも同一直線上で検出された点でないため、これらの候補画素に基づいて境界線の近似直線を算出すると、近似直線の傾きに誤差が生じる原因となる。分類部63が、タブ部分で検出された候補画素とタブ部分以外の候補画素とを同じ座標グループに含めないことで、これらの候補画素を混ぜて近似直線を算出した場合に生じる傾きの誤差を防止する。
【0069】
図10を参照する。ステップS209において分類部63は、注目候補画素Piが境界線の変曲点であるか否かを判断する。すなわち分類部63は、注目候補画素Piの前後において境界線が曲折するか否かを判断する。
【0070】
上述の通り、画像読取装置10のイメージセンサ13に対して、原稿が最大45°傾いた状態で読み取られる場合がある。原稿が最大45°傾いた状態で読み取られた場合の候補画素の状態を図13の(A)に示す。点P1は、原稿のいずれかの辺の境界BL1上で検出された候補画素である。点P3は、原稿の他の辺の境界BL2上で検出された候補画素である。候補画素P2は、境界BL1及びBL2が交わるコーナーで検出された候補画素である。
【0071】
候補画素P1からP2に向かう直線の傾きは45°である。このため、注目候補画素がP2である場合のステップS205の判断は「いいえ(N)」となり、分類部63は、候補画素P1とP2を異なる座標グループに分離しない。また、候補画素P2からP3に向かう直線の傾きも45°であるため、注目候補画素がP3である場合のステップS205の判断では、分類部63は、候補画素P2及びP3と異なる座標グループに分類しない。したがって、ステップS205の判断では、候補画素P1とP3は異なる座標グループに分類されない。
【0072】
候補画素P1及びP3は同一直線上で検出された点でないため、これらの候補画素に基づいて境界線の近似直線を算出すると、近似直線の傾きに誤差が生じる原因となる。したがって分類部63は、注目候補画素Piが境界線の変曲点であるか否かを判断し、変曲点の前後で座標グループを分割する。
【0073】
図13の(B)は、変曲点の検出方法の一例の説明図である。点Pi、P(i−1)及びP(i+1)は、それぞれ注目候補画素、注目候補画素よりも1つ上の検出ラインの候補画素、及び注目候補画素よりも1つ下の検出ラインの候補画素である。注目候補画素Piの座標を(xi,yi)とし、候補画素P(i−1)の座標を(x(i−1),y(i−1))とし、注目候補画素P(i+1)の座標を(x(i+1),y(i+1))とする。
【0074】
分類部63は、次式(1)により、候補画素の軌跡の2回微分値Aを算出する。
A=(dx2/dy2)−(dx1/dy1) …(1)
dx1=xi−x(i−1), dy1=yi−y(i−1)
dx2=x(i+1)−xi, dy2=y(i+1)−yi
【0075】
注目候補画素が変曲点でない場合、境界線の傾きdx1/dy1、dx2/dy2は一定であるから2回微分値Aの絶対値|A|は比較的小さく、注目候補画素が変曲点の場合には絶対値|A|が比較的大きくなる。分類部63は、絶対値|A|が所定閾値よりも大きいか否かを判断することにより注目候補画素が変曲点であるか否かを判断する。
【0076】
図10及び図14の(A)〜図14の(C)を参照し、変曲点の前後で座標グループを分割する処理を説明する。注目候補画素Piが変曲点でない場合(ステップS209:N)には、処理はステップS210へ進む。ステップS210において分類部63は、現在形成中の座標グループcg1に注目候補画素Piを追加する。その後、処理はステップS215へ進む。
【0077】
変曲点が検出される前の状態を図14の(A)に示す。点P1〜P4は、原稿のコーナー部で検出された候補画素である。候補画素の座標P1〜P4は、それぞれ(x1,y1)、(x2,y2)、(x3,y3)及び(x4,y4)である。いま、注目候補画素Piは候補画素P2であり、1つ上の検出ラインの候補画素P1は、座標グループcgmに所属する。注目候補画素P2は変曲点でないため、次式にて算出される2回微分の絶対値|A|が比較的小さく、変曲点の検出閾値Th1を超えない。
|A|=|(x3−x2)/(y3−y2)−(x2−x1)/(y2−y1)|
【0078】
その結果、処理はステップS210へ進む。ステップS210において注目候補画素P2は、座標グループcgmに加えられる。
【0079】
その後、注目候補画素Piは候補画素P2からP3に変わる。図14の(B)は、注目候補画素Piが候補画素P3である場合における2回微分の説明図である。注目候補画素P3は変曲点であるため、次式にて算出される2回微分の絶対値|A|が比較的大きくなり、変曲点の検出閾値Th1を超える。
|A|=|(x4−x3)/(y4−y3)−(x3−x2)/(y3−y2)|
【0080】
図10において、注目候補画素Piが変曲点である場合(ステップS209:Y)には、処理はステップS211に進む。ステップS211において分類部63は、現在形成中の座標グループcgjが空であるか否かを判断する。cgjが空の場合(ステップS211:Y)には、分類部63は新たな座標グループを生成せずに、処理はステップS214へ進む。cgjが空でない場合(ステップS211:N)には、分類部63は、ステップS212でインデックスjを1つ増加させ、ステップS213で新たな座標グループcgjを生成する。ステップS214において分類部63は、変曲点の前後の座標グループcg(j−1)及びcgjの両方に変曲点の候補画素Piを追加する。その後、処理はステップS215へ進む。
【0081】
図14の(C)は、変曲点P3が検出された結果、座標グループcgmに加えて新たな座標グループが生成された状態を示す。座標グループcgm及びcgm+1の両方に、変曲点の候補画素P3が加えられている。
【0082】
図10を参照する。ステップS215において分類部63は、注目候補画素Piの検出ラインが最後の検出ラインであるか否かを判定する。注目候補画素Piの検出ラインが最後の検出ラインである場合(ステップS215:Y)には、処理が終了する。注目候補画素Piの検出ラインが最後の検出ラインでない場合(ステップS215:N)には、処理はステップS216へ進む。ステップS216において分類部63は、注目候補画素Piを次の検出ラインの候補画素に進めて処理をステップS204に戻す。
【0083】
<2.3.2. 直線グループ生成処理>
続いて、直線決定部64による直線グループ生成処理について説明する。図15は、直線決定部64による直線グループ作成処理の説明図である。ステップS301において直線決定部64は、処理対象として注目する座標グループcgjを参照するインデックス「j」に「1」を代入する。以下、画素グループcgjを「注目座標グループcgj」と表記することがある。ステップS302において近似直線算出部68は、注目座標グループcgjに属する候補画素に基づいて、境界線53の近似直線aljを算出する。ステップS303において仮直線決定部69は、注目座標グループcgjに属する候補画素を含む直線グループlgjを生成する。
【0084】
ステップS304において仮直線決定部69は、座標グループを参照するインデックス「k」に「1」を代入する。ステップS305において仮直線決定部69は、座標グループcgkが注目座標グループcgjと等しいか否かを判断する。座標グループcgkが注目座標グループcgjと異なる場合(ステップS305:Y)には、処理はステップS306へ進む。座標グループcgkが注目座標グループcgjと同じ場合(ステップS305:N)には、ステップS306〜S308がスキップされて、処理はステップS309へ進む。
【0085】
ステップS306において仮直線決定部69は、近似直線aljと座標グループcgkとの間の距離dを判定する。距離dの算出には様々な算出方法を使用することができる。図16の(A)は、近似直線aljと座標グループcgkの距離dの算出方法の例示の説明図である。仮直線決定部69は、座標グループcgkの両端の端点と近似直線aljとのそれぞれの距離d1及びd2の平均を、距離dとして算出してよい。仮直線決定部69は、距離d1及びd2のうちいずれか長い方又は短い方を距離dとして算出してもよい。仮直線決定部69は、座標グループcgkに含まれるいずれかの候補画素と近似直線aljとの距離を、距離dとして算出してよい。
【0086】
図16の(B)は、近似直線aljと座標グループcgkの距離dの算出方法の例示の他の説明図である。仮直線決定部69は、座標グループcgkに基づいて算出される近似直線alkと近似直線aljとの間の距離を、距離dとして算出してもよい。
【0087】
ステップS307において仮直線決定部69は、距離dが所定の閾値Th2以下であるか否かを判断する。距離dが閾値Th2以下である場合(ステップS307:Y)には、処理はステップS308へ進む。距離dが閾値Th2を超える場合(ステップS307:N)には、ステップS308がスキップされて、処理はステップS309へ進む。ステップS308において仮直線決定部69は、座標グループcgkの候補画素を、直線グループlgjに追加する。
【0088】
ステップS309において仮直線決定部69は、インデックスkの値を1つ増加する。ステップS310において仮直線決定部69は、インデックスkの値が、座標グループの総数CGNを超えるか否かを判断する。kの値がCGNを超える場合(ステップS310:Y)には、処理はステップS311へ進む。kの値がCGNを超えない場合(ステップS310:N)には、処理はステップS305へ戻る。
【0089】
ステップS311において仮直線決定部69は、注目座標グループcgjのインデックスjの値を1つ増加する。ステップS312において仮直線決定部69は、インデックスjの値が、座標グループの総数CGNを超えるか否かを判断する。jの値がCGNを超える場合(ステップS312:Y)には処理は終了する。jの値がCGNを超えない場合(ステップS312:N)には、処理はステップS302へ戻る。
【0090】
上記のステップS301〜S312により形成される直線グループlgjについて説明する。図17は、直線グループの説明図である。図17において点線120は原稿領域を示し、黒ドットは候補画素を示す。図17の例において、複数の座標グループcg1〜cg4が形成され、近似直線alは座標グループcg1に基づいて算出された原稿領域の境界線の近似直線である。また、直線グループlgは、近似直線aljから所定の距離の範囲にある座標グループcg1、cg2及びcg4の候補画素の集合である。
【0091】
直線グループlgは、1つの座標グループcg1に属する候補画素だけでなく、この候補画素に基づき算出された境界線の近似直線alから所定の距離の範囲にある他の座標グループcg2及びcg4の候補画素も含む。したがって、仮直線決定部69は、同一直線上に位置する境界線を検出した候補画素でありながら異なる座標グループに分類された候補画素同士を1つの集合として識別する。
【0092】
<2.3.3. 仮直線決定処理>
続いて、直線決定部64による仮直線決定処理について説明する。図18は、直線決定部64による仮直線決定処理の第1例の説明図である。ステップS401において直線決定部64の仮直線決定部69は、生成された直線グループの中から、最も多い候補画素を含む直線グループを選択する。ステップS402において仮直線決定部69は、ステップS401で選択した直線グループに含まれる候補画素に基づいて、原稿領域の境界線の仮直線を算出する。ステップS403において仮直線決定部69は、走査方向SDと仮直線のなす角である仮直線の傾きを、原稿の傾きとして検出する。
【0093】
上述の通り、図7に示す分類部63は、同一直線の境界線上で検出されていない候補画素同士が同一の座標グループに含まれないように、候補画素を複数の座標グループに分類する。仮直線決定部69は、同一直線上に位置する境界線で検出され、異なる座標グループに分類された候補画素同士が同じ直線グループに属するように候補画素を分類する。仮直線決定部69は、最も多い候補画素を含む直線グループに含まれる候補画素に基づいて、仮直線を決定する。すなわち仮直線決定部69は、最も多く候補画素が検出された同一直線上にある境界線で検出された候補画素に基づいて境界線の仮直線を決定する。このため仮直線決定部69は、境界線の傾きすなわち原稿の傾きを高い精度で決定することができる。
【0094】
<2.3.4. 境界線決定処理>
次に、直線決定部64及び直線選択部66による境界線決定処理について説明する。図19は直線決定部64と直線選択部66による境界線決定処理の説明図である。ステップS501において直線決定部64は、近似直線と仮直線との傾きとの差を比べ、傾きの差が所定範囲内の1つ以上の近似直線を選択する。
【0095】
ステップS501において複数の近似直線が選択される場合の一例を説明する。図20は、辺にタブが存在する原稿領域を示す。原稿領域130の辺131には、タブ部分とタブ以外の部分が存在し、タブ部分の境界線132とタブでない部分の境界線133とは、同一直線上にはないが傾きは等しい。
【0096】
タブ部分で検出された候補画素の座標グループと、タブでない部分で検出された候補画素の座標グループが生成されると、これら座標グループから算出される近似直線の傾きと仮直線の傾きとの差が小さくなる。このため、直線決定部64は、タブ部分における原稿領域130の境界の近似直線と、タブ以外の部分における原稿領域130の境界の近似直線とをそれぞれ選択する。
【0097】
ステップS502において直線選択部66は、ステップS501で選択された近似直線が存在するか否かを判断する。選択された近似直線がある場合(ステップS502:Y)には処理はステップS503へ進む。選択された近似直線がない場合(ステップS502:N)には処理はステップS508へ進む。
【0098】
ステップS503において直線選択部66は、選択された近似直線が一本であるか否かを判断する。選択された近似直線が一本である場合(ステップS503:Y)には、処理はステップS504へ進む。選択された近似直線が複数である場合(ステップS503:N)には、処理はステップS505へ進む。ステップS504において直線選択部66は、選択された近似直線を、原稿領域を切り出す境界線として決定する。その後処理は終了する。
【0099】
ステップS505において直線選択部66は、設定部65により指定されたクロップ設定が、原稿領域の外側を指定するか否かを判断する。クロップ設定が外側を指定する場合(ステップS505:Y)には、処理はステップS506へ進む。クロップ設定が内側を指定する場合(ステップS505:N)には、処理はステップS507へ進む。
【0100】
ステップS506において直線選択部66は、選択された近似直線のうち最も原稿領域の外側に位置する近似直線を、原稿領域を切り出す境界線として決定する。その後処理は終了する。一方、ステップS507において直線選択部66は、選択された近似直線のうち最も原稿領域の内側に位置する近似直線を、原稿領域を切り出す境界線として決定する。その後処理は終了する。
【0101】
なお、ステップS506及びS507において、直線選択部66は、選択された複数の近似直線の間で、それぞれ近似直線から所定範囲にある候補画素により形成された直線グループに含まれる候補画素数を比較してもよい。そして直線選択部66は、候補画素数が最も多く含む直線グループを形成する近似直線を、原稿領域を切り出す境界線として決定してもよい。
【0102】
ステップS508において直線選択部66は、設定部65により指定されたクロップ設定が、原稿領域の外側を指定するか否かを判断する。クロップ設定が外側を指定する場合(ステップS508:Y)には、処理はステップS509へ進む。クロップ設定が内側を指定する場合(ステップS508:N)には、処理はステップS510へ進む。
【0103】
ステップS509において直線選択部66は、仮直線の傾きと同じ傾きを有し、最も原稿領域の外側にある座標グループのいずれかの候補画素を通過する直線を、原稿領域を切り出す境界線として決定してもよい。その後処理は終了する。ステップS510において直線選択部66は、仮直線の傾きと同じ傾きを有し、最も原稿領域の内側にある座標グループのいずれかの候補画素を通過する直線を、原稿領域を切り出す境界線として決定してもよい。
【0104】
ステップS501において直線決定部64は、座標グループから算出した近似直線の傾きに代えて、直線グループに属する候補画素から算出した境界線の近似直線の傾きと仮直線の傾きとを比較してもよい。そして傾きの差が所定範囲内の直線グループを選択してよい。
【0105】
また、ステップS504、S506及びS507において直線選択部66は、座標グループから算出した近似直線の代わりに、直線グループに属する候補画素から算出した境界線の近似直線を原稿領域を切り出す境界線として決定してよい。
【0106】
また、仮直線の傾きに代えて、原稿の傾きを他の手段で検出してもよい。原稿の傾きは、例えば、画像読取装置10が備える所定の原稿傾きセンサ(図示せず)によって検出してもよい。
<2.4. 実施例の効果>
【0107】
本実施例によれば、原稿領域とその外側との境界線を構成する画素として検出された複数の候補画素の中に、同一直線から離れた位置で検出された候補画素があっても、候補画素に基づいて算出される境界線の近似直線の傾きに生じる誤差が低減される。したがって、原稿領域とその外側との境界線を算出する近似直線の精度を向上することができる。
【0108】
例えば、原稿領域と画像データの背景領域の明度差が小さい場合に、境界線から離れた位置で誤検出される候補画素が生じる境界線の近似直線の傾きの誤差が低減される。また原稿領域がタブを含む場合には、タブ部分の境界線とタブ以外の部分の境界線は互いに同一直線上にない。本実施例によれば、これらの異なる複数の境界線で候補画素がそれぞれ検出されても、候補画素に基づいて算出される境界線の近似直線の傾きに生じる誤差が防止される。この結果、画像データから原稿領域の画像を切り出すための境界線に生じる傾きの誤差が低減され、原稿領域の各辺を精度良く検出することができる。
【0109】
本実施例によれば、原稿領域がタブを含む場合に、目的に応じてタブ部分を含む原稿画像及びタブ部分を含まない原稿画像のいずれかを任意に選択して画像データから切り出すことができる。
【0110】
<3.第2実施例>
続いて、画像処理システム1の他の実施例について説明する。図21の(A)〜図21の(D)は、画像処理システム1の処理の他の実施例の説明図である。図21の(A)〜図21の(D)において点線130は原稿領域を示し、黒ドットは、辺131において検出された候補画素を示す。本実施例では、画像処理システム1は、辺131における原稿領域と外側との境界線の複数の近似直線132〜135を算出する。画像処理システム1は、各候補画素と各近似直線132〜135との距離を判定する。
【0111】
画像処理システム1は、近似直線132〜135毎に、各近似直線との距離が所定範囲の候補画素を含む座標グループを生成する。図21の(B)は、近似直線132からの距離が所定範囲内の候補画素で形成される座標グループを示す。図21の(C)は、近似直線133からの距離が所定範囲内の候補画素で形成される座標グループを示す。図21の(D)は、近似直線134及び135からの距離が所定範囲内の候補画素で形成される座標グループを示す。
【0112】
近似直線132〜135からの距離が所定範囲内の候補画素で形成される4つの座標グループのうち、最も多くの候補画素を含むのは近似直線132からの距離が所定範囲内の候補画素で形成される図21の(B)の座標グループである。画像処理システム1は、近似直線132を、辺131の境界線の仮直線として決定する。画像処理システム1は、仮直線の傾きを原稿の傾きとして検出してもよい。
【0113】
図22は、画像処理制御部17の構成例の第2例を示す図である。図7に示す画像処理制御部17の第1例の構成要素と同一の構成要素については同一の参照符号を付する。同一の参照符号が付された構成要素の動作は、特に説明しない限り同じである。
【0114】
画像処理制御部17は、近似直線算出部90を備える。他の実施例では、画像処理制御部17に代わってCPU11が、近似直線算出部90の処理を実行してもよい。また他の実施例では、近似直線算出部90の処理をコンピュータ装置30のCPU31によって実行してもよい。
【0115】
近似直線算出部90は、候補画素検出部61により検出され候補画素記憶部62に格納された候補画素を選択して、これらの候補画素に基づいて、原稿領域の各辺の境界線毎に複数の近似直線を算出する。候補画素の座標から近似直線を算出するために、最小二乗法やハフ変換などの様々な算出法を利用することができる。
【0116】
分類部63は、近似直線と候補画素記憶部62に格納された各候補画素との距離を判定する。分類部63は、近似直線毎に、各近似直線との距離が所定範囲の候補画素を含む座標グループを生成する。仮直線決定部69は、最も多くの候補画素を含む座標グループを形成した近似直線を辺の仮直線として決定する。仮直線決定部69は、仮直線の傾きを、原稿の傾きとして検出する。
【0117】
直線決定部64は、仮直線に基づいて、近似直線算出部90が算出した複数の近似直線のいずれかを選択する。例えば、直線決定部64は、仮直線との傾きと近似直線の傾きとを比べ、傾きの差が所定範囲内の1つ以上の近似直線を選択する。直線選択部66は、直線決定部64が選択した近似直線のうちいずれか1個の直線を原稿領域を切り出すための境界線として選択する。
【0118】
図23は、画像処理システム1の処理の第2例の説明図である。ステップS601〜ステップS603の処理は、図3を参照して説明したステップS101〜S103の処理と同様である。以下のステップS604〜S606は原稿領域の辺毎に実行される。
【0119】
ステップS604において分類部63は、候補画素毎に異なるグループに分類することにより、複数の座標グループを生成する。図24は、分類部63による座標グループ作成処理の第2例の説明図である。
【0120】
ステップS701において座標グループを参照するインデックス「j」に「1」が代入される。ステップS702において近似直線算出部90は、候補画素記憶部62に格納された複数の候補画素を選択する。ステップS703において近似直線算出部90は、選択した候補画素に基づいて、原稿領域の辺の境界線の近似直線aljを算出する。
【0121】
ステップS704において分類部63は、近似直線aljとの距離が所定範囲の候補画素を含む座標グループcgjを生成する。ステップS705において近似直線算出部90は、更に座標グループを生成するか否かを判定する。例えば、近似直線算出部90は、まだいずれの座標グループにも属していない候補画素が存在する場合には、さらなる座標グループを生成すると判断し、全ての候補画素がいずれかの座標グループに属している場合に、さらなる座標グループは不要と判断する。
【0122】
更に座標グループを生成する場合(ステップS705:Y)には、処理はステップS706に進む。更に座標グループを生成しない場合(ステップS705:N)には、処理は終了する。ステップS706においてインデックスjの値は1増加する。その後処理はステップS702へ戻る。
【0123】
図23を参照する。ステップS605において直線決定部64は、座標グループ作成処理にて算出した近似直線aljのいずれかを仮直線として選択する。図25は、直線決定部64による仮直線決定処理の第2例の説明図である。
【0124】
ステップS801において直線決定部64の仮直線決定部69は、最も多くの候補画素を含む座標グループを形成した近似直線を辺の仮直線として決定する。ステップS802において仮直線決定部69は、仮直線の傾きを原稿の傾きとして検出する。
【0125】
図23を参照する。ステップS606において直線決定部64及び直線選択部66は、画像データから原稿領域を切り出すための境界線を決定する。境界線を決定する処理は、図19を参照して説明した境界線決定処理と同様であってよい。ステップS607〜S609の処理は、図3を参照して説明したステップS108〜S110の処理と同様である。
【0126】
本実施例によれば、辺の境界線の複数の近似直線を算出して、その中から近似直線との距離が所定範囲内の候補画素が最も多いものを選ぶ。このため、候補画素の中に、同一直線から離れた位置で検出された候補画素があっても、候補画素に基づいて算出される近似直線のうち、傾きの誤差がより少ないものを選択することができる。この結果、画像データから原稿領域の画像を切り出すための境界線に生じる傾きの誤差が低減され、原稿領域の各辺を精度良く検出することができる。
【0127】
また、本実施例においても、原稿領域がタブを含む場合に、目的に応じてタブ部分を含む原稿画像及びタブ部分を含まない原稿画像のいずれかを任意に選択して画像データから切り出すことができる。
【符号の説明】
【0128】
1 画像処理システム
10 画像読取装置
30 コンピュータ装置
60 画像入力部
61 候補画素検出部
63 分類部
64 直線決定部
65 設定部
66 直線選択部
67 画像切出部
【技術分野】
【0001】
本明細書で論じられる実施態様は、画像処理装置、画像処理方法、画像処理プログラム、及び画像処理システムに関する。
【背景技術】
【0002】
原稿を読み取って得られる画像データから原稿領域の画像を切り出す画像処理装置が知られている。例えば、画像処理装置は、原稿領域を含む画像を取得し、取得した画像に基づいてエッジ候補画素の座標値を検出し、検出したエッジ候補画素の座標値に基づいて原稿領域の傾きを算出し、検出したエッジ候補画素の座標値に基づいてエッジ端候補画素の座標値を抽出する。そして画像処理装置は、算出した原稿領域の傾きおよび抽出したエッジ端候補画素の座標値に基づいてエッジに対応する直線を算出し、算出したエッジに対応する直線に基づいて原稿領域の傾きを補正すると共に、当該直線に基づいて画像から原稿領域を切り出す。
【0003】
また、画像データで表示される直線の角度を検出する画像処理方法が知られている。画像処理方法では、注目画素のエッジ強度を算出し、エッジ強度としきい値とを比較し、エッジ方向を算出し、エッジ方向ヒストグラムを作成し、作成したエッジ方向ヒストグラムに基づいてピーク角度を決定し、ピーク角度を中心とする範囲内にあるエッジ画素に基づいてハフ変換により極座標ヒストグラムを作成し、極座標ヒストグラムに基づいて仮直線を決定し、仮直線の最長線分を検出し、最小二乗法に基づく回帰直線から直線の角度を決定する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2009−218953号公報
【特許文献2】特開2005−322044号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
画像処理装置が処理する画像データには、タブを有する原稿を読み取って得られるものがある。図1の(A)は、タブを有する原稿の模式図である。参照符号101は、原稿100の本体部分を示し、参照符号102は原稿100のタブの部分を示す。タブ102は、原稿100のエッジである1辺103において、原稿100とその外側の領域との間の境界線がより外側の境界線105とより内側の境界線104を持つ場合に、外側の境界線105によって辺が形成される部分である。
【0006】
タブ102を有する原稿には、例えばカタログやマニュアル、パンフレットがある。タブ102には、見出しなどの一定の情報が記載されている場合がある。また、タブ102は色分けされている場合がある。原稿にタブ102がある場合に、タブ102部分の境界線105で検出した境界の候補画素106とそれ以外の候補画素107に基づき辺103の境界線108を近似すると誤差が生じることがある。
【0007】
また、例えば原稿と画像読取装置の裏当て部との明度差が小さい等の場合には、画像データ内の原稿領域と背景領域の明度差が小さくなる場合がある。図1の(B)は、原稿領域と背景領域の明度差が小さい画像データの模式図である。画像データ200は、原稿領域201と背景領域202を含み、原稿領域201と背景領域202の明度差が比較的小さい。
【0008】
このため、原稿領域201内における明度変化が、原稿領域201と背景領域202との境界と誤検出されることがある。画素203は、原稿領域201と背景領域202との境界を検出した候補画素であり、画素204は、原稿領域201内における明度変化を境界と誤検出した候補画素である。これらの候補画素203及び204に基づいて辺の境界線205を近似した場合にも誤差が生じることがある。
【0009】
開示の装置及び方法は、画像データに含まれる原稿領域の辺の境界線を構成する画素を検出した候補画素に基づいて境界線を算出する精度を向上することを目的とする。
【課題を解決するための手段】
【0010】
装置の一観点によれば、原稿領域を含んだ画像データを入力する画像入力部と、原稿領域の辺の境界線を構成する画素の候補となる候補画素を検出する候補画素検出部と、原稿領域の辺毎に、境界線の複数の部位においてそれぞれ検出された候補画素の座標を複数の座標グループに分類する分類部と、複数の座標グループ毎に属する座標に基づいて、境界線の複数の近似直線を算出する近似直線算出部と、複数の近似直線のうち、近似直線から所定の距離の範囲にある候補画素数が最も多い近似直線に基づいて、辺の境界線の仮直線を決定する仮直線決定部と、仮直線に基づいて原稿領域の画像を切り出だす画像切出部を備える画像処理装置が与えられる。
【0011】
装置の他の一観点によれば、画像読取装置と、該画像読取装置との間の通信により該画像読取装置が読み込む画像を受信するコンピュータ装置を有する画像処理システムが与えられる。画像処理システムは、画像読取装置により読み込まれる画像データに含まれる原稿領域の辺の境界線を構成する画素の候補となる候補画素を検出する候補画素検出部と、原稿領域の辺毎に、境界線の複数の部位においてそれぞれ検出された候補画素の座標を複数の座標グループに分類する分類部と、複数の座標グループ毎に属する座標に基づいて、境界線の複数の近似直線を算出する近似直線算出部と、複数の近似直線のうち、近似直線から所定の距離の範囲にある候補画素数が最も多い近似直線に基づいて、辺の境界線の仮直線を決定する仮直線決定部と、仮直線に基づいて原稿領域の画像を切り出だす画像切出部を備える。
【0012】
方法の一観点によれば、画像処理方法が与えられる。画像処理方法は、画像処理装置に、原稿領域を含んだ画像データを取得する画像取得ステップと、原稿領域の辺の境界線を構成する画素の候補となる候補画素を検出する候補画素検出ステップと、原稿領域の辺毎に、境界線の複数の部位においてそれぞれ検出された候補画素の座標を複数の座標グループに分類する分類ステップと、複数の座標グループ毎に属する座標に基づいて、境界線の複数の近似直線を算出する近似直線算出ステップと、複数の近似直線のうち、近似直線から所定の距離の範囲にある候補画素数が最も多い近似直線に基づいて、辺の境界線の仮直線を決定する仮直線決定ステップと、仮直線に基づいて原稿領域の画像を切り出だす画像切出ステップを実行させる。
【0013】
コンピュータプログラムの一観点によれば、制御部を備えた情報処理装置に実行させるための画像処理プログラムが与えられる。画像処理プログラムは、この制御部に実行させるための、原稿領域を含んだ画像データを取得する画像取得ステップと、原稿領域の辺の境界線を構成する画素の候補となる候補画素を検出する候補画素検出ステップと、原稿領域の辺毎に、境界線の複数の部位においてそれぞれ検出された候補画素の座標を複数の座標グループに分類する分類ステップと、複数の座標グループ毎に属する座標に基づいて、境界線の複数の近似直線を算出する近似直線算出ステップと、複数の近似直線のうち、近似直線から所定の距離の範囲にある候補画素数が最も多い近似直線に基づいて、辺の境界線の仮直線を決定する仮直線決定ステップと、仮直線に基づいて原稿領域の画像を切り出だす画像切出ステップを含む。
【発明の効果】
【0014】
本件開示の装置又は方法によれば、画像データに含まれる原稿領域の辺の境界線を構成する画素を検出した候補画素に基づいて境界線を算出する精度を向上することができる。
【図面の簡単な説明】
【0015】
【図1】(A)はタブを有する原稿の模式図であり、(B)は原稿領域と背景領域の明度差が小さい画像データの模式図である。
【図2】画像処理システムのハードウエア構成図である。
【図3】画像処理システムの処理の第1例の説明図である。
【図4】(A)〜(C)は、図3に示す処理の説明図である。
【図5】(A)〜(C)は、図3に示す処理の説明図である。
【図6】図3に示す処理の説明図である。
【図7】画像処理制御部の構成例の第1例を示す図である。
【図8】(A)及び(B)は、クロップ設定の設定画面の構成例を示す図である。
【図9】候補画素検出部により検出された候補画素の説明図である。
【図10】分類部による座標グループ作成処理の第1例の説明図である。
【図11】(A)及び(B)は、座標グループ作成処理の説明図である。
【図12】(A)〜(C)は、候補画素間を結ぶ直線の傾きθが45°を超える場合の説明図である。
【図13】(A)及び(B)は、イメージスキャナに対して原稿が45°傾いた状態で読み取られた際の候補画素の状態を示す図である。
【図14】(A)〜(C)は、イメージスキャナに対して原稿が45°傾いた場合の処理の説明図である。
【図15】直線決定部による直線グループ作成処理の説明図である。
【図16】(A)及び(B)は、近似直線と座標グループの距離の算出方法の例示の説明図である。
【図17】直線グループの説明図である。
【図18】直線決定部による仮直線決定処理の第1例の説明図である。
【図19】直線決定部及び直線選択部による境界線決定処理の説明図である。
【図20】辺にタブが存在する場合の近似直線の説明図である。
【図21】(A)〜(D)は、画像処理システムの処理の他の実施例の説明図である。
【図22】画像処理制御部の構成例の第2例を示す図である。
【図23】画像処理システムの処理の第2例の説明図である。
【図24】分類部63による座標グループ作成処理の第2例の説明図である。
【図25】直線決定部による仮直線決定処理の第2例の説明図である。
【発明を実施するための形態】
【0016】
<1.ハードウエア構成>
以下、添付する図面を参照して本発明の実施例について説明する。図2は、画像処理システムのハードウエア構成図である。画像処理システム1は、画像読取装置10及びコンピュータ装置30を備える。画像読取装置10は、2次元の原稿を読み取って、この原稿に対応する画像信号を生成する。画像読取装置10は、例えば、複数の光源で露光された2次元原稿を走査して読み取る画像読取装置であってよい。このような、例えば画像読取装置の例として、例えばフィーダスキャナ、フラットベッドスキャナ、ハンディスキャナ等の各種スキャナ装置が挙げられる。
【0017】
コンピュータ装置30は、有線又は無線の通信回線を介して画像読取装置10との間で通信が可能であり、この通信回線を経由して画像読取装置10が読み取った原稿の画像信号を画像読取装置10から受信する。
【0018】
画像読取装置10は、CPU(Central Processing Unit: 中央処理ユニット)11、メモリ12、イメージセンサ13、AFE(Analog Front-End Processor)14と、シェーディング処理部15と、ブロックバッファ16を備える。また、画像読取装置10は、画像処理制御部17と、画像メモリ18と、調停部19と、入力部20と、出力部21と、インタフェース(I/F)22とバス23を備える。
【0019】
CPU11は、メモリ12に格納されたコンピュータプログラムに従い画像読取装置10の動作を制御する。ある実施例では、CPU11は、画像読取装置10が読み取る原稿画像の画像処理を行ってもよい。メモリ12にはこのような画像処理用のコンピュータプログラムが格納されてもよい。メモリ12には、CPU11により実行されるコンピュータプログラムや、このコンピュータプログラムの実行の際に使用されるデータが格納される。メモリ12は、プログラムを記憶するための非揮発性記憶装置や、データを一次的に記憶するための揮発性メモリを含んでいてよい。
【0020】
イメージセンサ13は、2次元の原稿を撮像して、原稿に対応する画像信号を出力する。イメージセンサ13は、例えば、1次元又は2次元に配列されたCCD(Charge Coupled Device)センサやCMOS(Complementary Metal Oxide Semiconductor)センサ等の撮像素子と、この撮像素子に原稿の像を結像する光学系を備える。AFE14は、イメージセンサ13から出力される画像信号に対して増幅やその他の信号処理を施した後、処理された画像信号をシェーディング処理部15へ入力する。
【0021】
シェーディング処理部15は、AFE14から受信した画像信号を、画像データとしてブロックバッファに収容し、この画像データにシェーディング処理を施した後に、画像処理制御部17に出力する。画像処理制御部17は、シェーディング処理が施された後の画像データに所定の画像処理を施し、画像データを画像メモリ18に格納する。他の実施例においてシェーディング処理部15は、シェーディング処理が施された後の画像データを画像メモリ18に格納し、画像処理制御部17は、画像メモリ18から画像データを入力してもよい。調停部19は、画像処理制御部17が画像処理の際に行うメモリ12に対するアクセスと、CPU11によるメモリ12へのアクセスとが競合しないように、これらのアクセスを調停する。
【0022】
ある実施例では、シェーディング処理部15、画像処理制御部17及び調停部19は、論理回路として画像読取装置10に実装されてよい。論理回路は、例えば、LSI(large scale integration)やASIC(Application Specific Integrated Circuit)、FPGA(Field-Programming Gate Array)等であってよい。他の実施例では、シェーディング処理部15、画像処理制御部17及び調停部19は、CPUやDSP(digital signal processor)等のプロセッサと、このプロセッサが実行するプログラムを格納するメモリを含む電子回路として画像読取装置10に実装されてよい。
【0023】
入力部20は、ユーザによる入力操作を受け付ける入力装置である。入力部20は、例えば、ボタン、スクロールホイール、キーパッド、キーボード、ポインティングデバイス、タッチパネル等であってよい。出力部21は、画像読取装置10から各種情報をユーザに提示するための出力装置である。例えば、出力部21は、ユーザに提示する情報を利用者に可視的に表示する表示デバイスであってよい。出力部21は、発光素子や、液晶ディスプレイ、有機エレクトロルミネッセンスディスプレイ等の表示装置であってよい。または、出力部21は、音声信号を出力するスピーカやその駆動回路であってよい。
【0024】
I/F22は、画像読取装置10とコンピュータ装置30との間の有線及び/又は無線による通信インタフェースである。画像読取装置10は、読み取った原稿の画像データをI/F22を介してコンピュータ装置30へ送信することが可能である。画像読取装置10は、画像読取装置10の動作に関する設定情報や指示をI/F22を介してコンピュータ装置30から受信する。ある実施例では、画像読取装置10は、コンピュータ装置30により処理が施された画像データをI/F22を介して受信してよい。CPU11、シェーディング処理部15、画像処理制御部17、画像メモリ18、調停部19、入力部20、出力部21及びI/F22は、バス23によって電気的に接続されている。
【0025】
一方、コンピュータ装置30は、CPU31と、補助記憶装置32と、メモリ33と、入力部34と、出力部35と、媒体読取部36と、I/F37とバス38を備える。CPU31は、補助記憶装置32に格納されたコンピュータプログラムを実行することにより、コンピュータプログラムに応じた情報処理を実行する。ある実施例では、CPU31は、画像読取装置10により読み取られた原稿画像の画像処理を行ってもよい。補助記憶装置32にはこのような画像処理用のコンピュータプログラムが格納されてもよい。補助記憶装置32は、コンピュータプログラムを記憶するための、不揮発性記憶装置や、読み出し専用メモリ(ROM: Read Only Memory)やハードディスクなどを含んでいてもよい。
【0026】
メモリ33には、CPU31が現在実行中のプログラムや、このプログラムによって一時的に使用されるデータが記憶される。メモリ33は、ランダムアクセスメモリ(RAM: Random Access Memory)を含んでいてよい。入力部34は、ユーザによる入力操作を受け付ける入力装置である。入力部34は、例えば、キーパッド、キーボード、ポインティングデバイス、タッチパネル等であってよい。
【0027】
出力部35は、コンピュータ装置30によって処理された信号を出力する出力装置である。例えば、出力部35は、コンピュータ装置30によって処理された情報を利用者に可視的に表示する表示デバイスであってよい。出力部35は、例えば、液晶ディプレイ、CRT(Cathode Ray Tube)ディスプレイ、有機エレクトロルミネッセンスディスプレイなどの表示装置であってよい。または、出力部35は、音声信号を出力するスピーカやその駆動回路であってよい。
【0028】
媒体読取部36は、コンピュータに読み取り可能な可搬型記録媒体に記憶されたデータを読み取る入力装置である。媒体読取部36は、例えばCD−ROMドライブ装置やDVD−ROMドライブ装置、フレキシブルディスクドライブ装置、CD−Rドライブ装置や、DVD−Rドライブ装置、MOドライブ装置、フラッシュメモリ装置へのアクセス装置であってよい。
【0029】
I/F37は、画像読取装置10とコンピュータ装置30との間の有線及び/又は無線による通信インタフェースである。コンピュータ装置30は、画像読取装置10が読み取った原稿の画像データを、I/F37を経由して受信することが可能である。コンピュータ装置30は、画像読取装置10の動作に関する設定情報や指示をI/F37を介して画像読取装置10へ送信する。CPU31、補助記憶装置32、メモリ33、入力部34、出力部35、媒体読取部36及びI/F37は、バス38によって電気的に接続されている。
【0030】
<2.第1実施例>
<2.1. 概要説明>
続いて、図3を参照して、画像処理システム1により実施される処理の第1例について説明する。ステップS101において画像処理システム1は、画像データを入力する。図4の(A)は入力される画像データを示す。画像データ50は、画像読取装置10により読み取られた原稿に対応する原稿領域51を含む。ステップS102において画像処理システム1は、原稿領域の辺のそれぞれについて、各辺での原稿領域とその外側との境界線を構成する画素の候補となる候補画素を検出する。図4の(A)〜図4の(C)、図5の(A)〜図5の(C)及び図6において、例として辺52の境界線53で検出した候補画素を黒ドットで示す。
【0031】
ステップS103において画像処理システム1は、原稿領域の辺のいずれかを選択する。以下のステップS104〜S107は、原稿領域の辺毎に実行される。
【0032】
ステップS104において画像処理システム1は、境界線53の複数の部位においてそれぞれ検出された候補画素毎に異なるグループに分類することにより、複数の座標グループを生成する。図4の(B)は、座標グループcg1〜cg4に分類された候補画素を示す。
【0033】
ステップS105において画像処理システム1は、複数の座標グループに属する候補画素の集合により形成される直線グループを決定する。このとき、画像処理システム1は、各座標グループcg1〜cg4に属する候補画素に基づいて、境界線53の近似直線をそれぞれ算出する。候補画素の座標から近似直線を算出するために、最小二乗法やハフ変換などの様々な算出法を利用することができる。図4の(C)において、近似直線al1〜al4は、それぞれ各座標グループcg1〜cg4に属する候補画素に基づいて算出される近似直線である。
【0034】
次に、画像処理システム1は、近似直線al1〜al4のそれぞれについて、各近似直線から所定の距離の範囲にある候補画素の集合を形成し、それぞれの集合を1つの直線グループとして決定する。図5の(A)は、近似直線al1から所定の距離の範囲にある候補画素の集合により形成される直線グループlg1の説明図である。直線グループlg1には、座標グループcg1、cg2及びcg4に属する候補画素が含まれる。これら座標グループcg1、cg2及びcg4に属する候補画素は、近似直線al1から所定の距離の範囲にある。他の近似直線al2〜al4についても同様に直線グループを決定する。
【0035】
ステップS106において画像処理システム1は、境界線53の仮直線を決定する。画像処理システム1は、ステップS105で生成した直線グループのうち、最も所属する候補画素が多い直線グループを選択する。本例では、最も所属する候補画素が多い直線グループとして、図5の(A)に示す直線グループlg1が選択される。
【0036】
画像処理システム1は、選択された直線グループに含まれる候補画素に基づいて境界線53の仮直線を決定する。候補画素の座標から仮直線を決定するために、最小二乗法やハフ変換などの様々な算出法を利用することができる。図5の(B)に示す例では、画像処理システム1は、座標グループcg1、cg2及びcg4に属する候補画素に基づいて、境界線53の仮直線tlを決定する。仮直線tlの傾きの方向を参照符号54で示す。
【0037】
ステップS107において画像処理システム1は、画像データから原稿領域を切り出すための境界線を決定する。画像処理システム1は、仮直線に基づいて図4の(C)に示す近似直線al1〜al4のうちのいずれかを選択する。画像処理システム1は、例えば、仮直線の傾き54に基づいて近似直線al1〜al4のうちのいずれかを選択してよい。このとき傾き54と近似直線al1〜al4の傾きとの間の差分に基づいて、近似直線al1〜al4のいずれかを選択してよい。図5の(C)の例では近似直線al1及びal3が選択される。
【0038】
画像処理システム1は、選択された近似直線のうちのいずれか1個を、予め定めた原稿領域の外側又は内側を指定する設定に応じて選択する。以下の説明において、原稿領域の外側又は内側を指定する設定を「クロップ設定」と表記する。図6の例においてクロップ設定が原稿領域の外側を指定する場合には、原稿領域のより外側の直線である近似直線al3が選択される。クロップ設定が原稿領域の内側を指定する場合には、原稿領域のより内側の直線である近似直線al1が選択される。画像処理システム1は、クロップ設定によって選択された近似直線を、画像データ50から原稿領域51を切り出す境界線として決定する。
【0039】
ステップS108において画像処理システム1は、全ての辺において原稿領域を切り出す境界線を決定したか判断する。境界線を決定していない辺が存在する場合(ステップS108:N)には、処理はステップS109へ進む。全ての辺において原稿領域を切り出す境界線を決定した場合(ステップS108:Y)には、処理はS110へ進む。ステップS109において画像処理システム1は、未だ境界線を決定していない辺を選択し、処理をステップS104に戻す。
【0040】
ステップS110において画像処理システム1は、各辺についてステップS107で決定した境界線の位置で、入力した画像データから原稿領域の画像を切り出す。
【0041】
<2.2. 装置構成>
続いて、画像処理制御部17の構成について説明する。図7は画像処理制御部17の構成例の第1例を示す図である。画像処理制御部17は、画像入力部60、候補画素検出部61、分類部63、直線決定部64、設定部65、直線選択部66、画像切出部67を備える。なお、図7は、以下の説明に関係する機能を中心として示している。このため、画像処理制御部17は図示の構成要素以外の他の構成要素を含んでいてよい。候補画素記憶部62に格納される候補画素は、メモリ12に格納される。
【0042】
他の実施例では、画像入力部60、候補画素検出部61、分類部63、直線決定部64、設定部65、直線選択部66、画像切出部67により行われる処理の一部又は全部を、画像処理制御部17に代わってCPU11が実行してもよい。また他の実施例では、これらの処理の一部又は全部をコンピュータ装置30のCPU31によって実行してもよい。コンピュータ装置30は、候補画素記憶部62としてメモリ33に候補画素を記憶してもよい。
【0043】
CPU31にこれらの情報処理を実行させるコンピュータプログラムは、機械可読記録媒体に記録されて、媒体読取部36により読み取られて補助記憶装置32にインストールされてもよい。また、CPU31にこれらの情報処理を実行させるコンピュータプログラムは、図示しないネットワークインタフェースを介してネットワークからダウンロードされ、補助記憶装置32にインストールされてもよい。
【0044】
画像入力部60は、画像データ50を入力する。候補画素検出部61は、原稿領域の辺のそれぞれについて候補画素を検出する。候補画素検出部61は、検出した画素を候補画素記憶部62に格納する。分類部63は、候補画素を異なる複数の座標グループに分類する。
【0045】
直線決定部64は、近似直線算出部68と仮直線決定部69を備える。近似直線算出部68は、各座標グループに属する候補画素に基づいて、境界線53の近似直線をそれぞれ算出する。仮直線決定部69は、近似直線のそれぞれについて直線グループを生成する。仮直線決定部69は、生成した直線グループのうち最も所属する候補画素が多い直線グループを選択して、選択した直線グループに基づいて仮直線を決定する。
【0046】
直線決定部64は、仮直線決定部69により決定した仮直線に基づいて、近似直線のうちの1個以上の直線を選択する。なお、処理対象の辺にタブがある場合には、直線決定部64は、後述の通り、タブ部分の境界線を構成する候補画素の座標グループから求めた近似直線とタブ以外の辺の境界線を構成する候補画素の座標グループから求めた近似直線とをそれぞれ選択する。
【0047】
設定部65は、クロップ設定、すなわち原稿領域の外側又は内側の指定に関する設定を直線選択部66に与える。ある実施例では、クロップ設定は、例えば工場出荷時などに固定的に定めてよい。またある実施例では、設定部65は、ユーザによるクロップ設定を受け付けて直線選択部66に与えてもよい。設定部65は、画像読取装置10やコンピュータ装置30の表示装置に表示された設定画面を介してユーザが入力するクロップ設定を受け付けてもよい。設定画面の例を図8の(A)に示す。
【0048】
設定画面70は、例えば、第1コンボボックス71〜第4コンボボックス74と、設定ボタン75と、キャンセルボタン76を備える。第1コンボボックス71は画像データのカラーモードを指定する。第2コンボボックス72は両面原稿又は片面原稿の区別を指定する。第3コンボボックス73は原稿の画質を指定する。第4コンボボックス74はクロップ設定を指定する。
【0049】
図8の(B)は、クロップ設定のための第4コンボボックス74の構成例を示す。第4コンボボックス74は、原稿の「内側」及び「外側」をそれぞれ項目に持つメニュー77を備える。第4コンボボックス74は、ユーザによる画像読取装置10の入力部20やコンピュータ装置30の入力部34の操作に応じて、これらの項目のいずれかの選択入力を受け付ける。なお、他の実際例では、図8の(B)の「内側」に代えて「デフォルト」又は「デフォルト(内側)」を表示してよい。同様に図8の(B)の「外側」に代えて「タブ」又は「タブ(外側)」を表示してよい。
【0050】
図7を参照する。直線選択部66は、設定部65により指定されるクロップ設定に従って、直線決定部64が選択した近似直線のうちいずれか1個の直線を、画像データから原稿領域を切り出すための境界線として選択する。クロップ設定が原稿領域の外側を指定する場合には、直線選択部66は、直線決定部64が決定した近似直線のうち原稿領域のより外側にある近似直線が選択される。また、クロップ設定が原稿領域の内側を指定する場合には、直線選択部66は、直線決定部64が決定した近似直線のうち原稿領域のより内側にある近似直線が選択される。
【0051】
画像切出部67は、原稿領域の各辺について直線選択部66が選択した境界線の位置で、入力した画像データから原稿領域の画像を切り出す。画像切出部67により切り出された画像は、コンピュータ装置30に出力される。
【0052】
<2.3. 画像処理>
<2.3.1. 座標グループ生成処理>
続いて、画像処理制御部17の各構成要素により実行される処理について説明する。なお、以下の説明では、原稿領域の左辺の境界線を決定する場合の処理を例として説明するが、右辺についても同様に境界線を決定することができる。また、座標グループを生成する際に候補画素を走査する方向を90°変えることによって、上辺及び下辺の境界線についても同様に決定することができる。
【0053】
分類部63は、候補画素検出部61により検出された候補画素を異なる複数のグループに分類することによって座標グループを生成する。図9は、候補画素検出部61により検出された候補画素の説明図である。候補画素検出部61は、検出ラインL1〜L6、…においてそれぞれ境界線110の候補画素P1〜P6、…を検出する。検出ラインL1〜L6、…は、画像データの上から下へ向かう方向である走査方向SDに並べて、所定画素数dy毎に配列される。
【0054】
なお、以下の説明において画像データの上から下に向かう方向をY軸方向と表記し、左から右に向かう方向をX軸方向と表記することがある。またX軸方向及びY軸方向における各点の座標を、それぞれX座標、Y座標と表記することがある。
【0055】
分類部63は、処理対象として注目する候補画素(以下「注目候補画素」と表記する)を、走査方向SDの方向に向かって、連続する候補画素P1、P2、…、P(i−1)、Pi、P(i+1)、…に順次変化させる。すなわち分類部63は、走査方向SDの方向に向かって注目候補画素を走査する。分類部63は、注目候補画素を順次変化させながら、一つ上の検出ラインの候補画素と同じ座標グループに注目候補画素を入れるか否かを判断する。
【0056】
図10は、分類部63による座標グループ作成処理の第1例の説明図である。ステップS201において分類部63は、処理を開始する最初の注目候補画素を選択する。例えば分類部63は、上から2番目以下の候補画素を最初の注目候補画素を選択してよい。これは、後述のステップS205及びS206において、注目候補画素と一つ上の検出ラインで検出された候補画素との相対位置関係を判断するためである。
【0057】
ステップS202において分類部63は、第1個目の座標グループcg1を生成する。ステップS203において分類部63は、注目候補画素の検出ラインを示す変数「i」にステップS201で選択した注目候補画素の検出ラインを代入する。分類部63は、現在形成中の座標グループcgjを参照するインデックス「j」に「1」を代入する。
【0058】
ステップS204において分類部63は、第(i−1)番目の検出ラインの候補画素P(i−1)から注目候補画素Piへ向かう方向の傾きθを決定する。図11の(A)を参照して候補画素P(i−1)から候補画素Piへ向かう方向の傾きθを説明する。図11の(A)及び図11の(B)において一点鎖線は検出ラインを示す。
【0059】
傾きθは、候補画素P(i−1)と候補画素Piとを結ぶ直線Lと走査方向SDとのなす角として定められる。ここで原稿は、画像読取装置10のイメージセンサ13に対して、最大45°傾いた状態で読み取られることが想定される。このため、1本の境界線上にある候補画素間を結ぶ直線は、最大で45°傾くことが予定される。もし、候補画素間を結ぶ直線の傾きが45°以上傾いている場合には、これらの候補画素は1本の境界線上にないと判断できる。
【0060】
このため、ステップS205において分類部63は、傾きθが45°よりも大きいか否かを判断する。傾きθが45°以下である場合には、図11の(A)に示すように、注目候補画素Piを、1つ上の検出ライン上の候補画素P(i−1)と同じ座標グループcgに含める。一方で、図11の(B)に示すように傾きθが45°を超える場合には、注目候補画素Piを、1つ上の検出ライン上の候補画素P(i−1)と同じ座標グループcg1に含めない。なお、検出ライン間のY軸方向の間隔は一定値dyであるため、分類部63は、候補画素間のX座標の大きさがdyを超えるか否かによって、傾きθが45°を超えるか否かを判断してもよい。
【0061】
図10を参照する。傾きθが45°よりも大きい場合(ステップS205:Y)には、処理はオペレーションS206へ進む。傾きθが45°以下の場合(ステップS205:N)には、処理はオペレーションS209へ進む。ステップS206において分類部63は、現在形成中の座標グループcgjが空であるか否かを判断する。cgjが空の場合(ステップS206:Y)には、分類部63は新たな座標グループを生成せずに、処理はステップS215へ進む。cgjが空でない場合(ステップS206:N)には、分類部63は、ステップS207でインデックスjを1つ増加させ、ステップS208で新たな座標グループcgjを生成する。その後、処理はステップS215へ進む。
【0062】
なお、本実施例では、ステップS208で生成した新たな座標グループcgjに、注目候補画素Piを含めない。このため図11の(B)に示すように、傾きθが45°よりも大きい場合には、注目候補画素Piは新たな座標グループcg2にも、候補画素P(i−1)が属する座標グループcg1にも属さない。他の実施例では、分類部63は、ステップS208で生成した新たな座標グループcgjに注目候補画素Piを含めてもよい。
【0063】
隣接する候補画素間を結ぶ直線の傾きθが45°を超える場合として、例えば以下の2つの場合が想定される。
【0064】
(1)ノイズにより候補画素を誤検出した場合である。この場合、誤検出した候補画素の位置は本来の境界線から離れた位置で検出される。図12の(A)に示す例では、候補画素P1〜P6のうち、候補画素P4が本来の境界線BLから離れた位置で検出される。
【0065】
このような誤検出が生じやすい場合の例として、原稿領域と画像データの背景領域の明度差が小さい場合がある。図12の(B)は、原稿領域と背景領域の明度差が小さい画像データの模式図である。画像データ78は、原稿領域79と背景領域80を含み、原稿領域79と背景領域80の明度差が比較的小さい。このような場合には原稿領域79と背景領域80との境界における明度変化と、原稿領域79内における明度変化の違いを峻別しにくくなる。このため、例えば図12の(B)に示すように、参照符号81で示す部分では正常に境界線の位置で候補画素が検出される一方で、参照符号82で示す部分では境界線から離れた位置で候補画素が誤検出されることが生じることがある。
【0066】
境界線の近似直線を算出する際に、誤検出した候補画素を使用すると、近似直線の傾きに誤差が生じる原因となる。分類部63が、誤検出された候補画素を他の候補画素と同じ座標グループに含めないことで、座標グループに属する候補画素に基づいて算出される近似直線の傾きに、誤検出した候補画素による誤差が生じることを防止する。
【0067】
(2)辺にタブが存在し、タブ部分で候補画素の一方が検出され、タブでない部分で候補画素の他方が検出された場合である。この場合、これらの候補画素は同一直線の境界線上に存在しない。図12の(C)は、タブ部分及びタブでない部分で検出される候補画素の模式図である。候補画素P1〜P3はタブでない部分の境界線BL1上で検出される一方で、候補画素P4〜P6はタブ部分の境界線BL2上で検出される。
【0068】
候補画素P1〜P6はそもそも同一直線上で検出された点でないため、これらの候補画素に基づいて境界線の近似直線を算出すると、近似直線の傾きに誤差が生じる原因となる。分類部63が、タブ部分で検出された候補画素とタブ部分以外の候補画素とを同じ座標グループに含めないことで、これらの候補画素を混ぜて近似直線を算出した場合に生じる傾きの誤差を防止する。
【0069】
図10を参照する。ステップS209において分類部63は、注目候補画素Piが境界線の変曲点であるか否かを判断する。すなわち分類部63は、注目候補画素Piの前後において境界線が曲折するか否かを判断する。
【0070】
上述の通り、画像読取装置10のイメージセンサ13に対して、原稿が最大45°傾いた状態で読み取られる場合がある。原稿が最大45°傾いた状態で読み取られた場合の候補画素の状態を図13の(A)に示す。点P1は、原稿のいずれかの辺の境界BL1上で検出された候補画素である。点P3は、原稿の他の辺の境界BL2上で検出された候補画素である。候補画素P2は、境界BL1及びBL2が交わるコーナーで検出された候補画素である。
【0071】
候補画素P1からP2に向かう直線の傾きは45°である。このため、注目候補画素がP2である場合のステップS205の判断は「いいえ(N)」となり、分類部63は、候補画素P1とP2を異なる座標グループに分離しない。また、候補画素P2からP3に向かう直線の傾きも45°であるため、注目候補画素がP3である場合のステップS205の判断では、分類部63は、候補画素P2及びP3と異なる座標グループに分類しない。したがって、ステップS205の判断では、候補画素P1とP3は異なる座標グループに分類されない。
【0072】
候補画素P1及びP3は同一直線上で検出された点でないため、これらの候補画素に基づいて境界線の近似直線を算出すると、近似直線の傾きに誤差が生じる原因となる。したがって分類部63は、注目候補画素Piが境界線の変曲点であるか否かを判断し、変曲点の前後で座標グループを分割する。
【0073】
図13の(B)は、変曲点の検出方法の一例の説明図である。点Pi、P(i−1)及びP(i+1)は、それぞれ注目候補画素、注目候補画素よりも1つ上の検出ラインの候補画素、及び注目候補画素よりも1つ下の検出ラインの候補画素である。注目候補画素Piの座標を(xi,yi)とし、候補画素P(i−1)の座標を(x(i−1),y(i−1))とし、注目候補画素P(i+1)の座標を(x(i+1),y(i+1))とする。
【0074】
分類部63は、次式(1)により、候補画素の軌跡の2回微分値Aを算出する。
A=(dx2/dy2)−(dx1/dy1) …(1)
dx1=xi−x(i−1), dy1=yi−y(i−1)
dx2=x(i+1)−xi, dy2=y(i+1)−yi
【0075】
注目候補画素が変曲点でない場合、境界線の傾きdx1/dy1、dx2/dy2は一定であるから2回微分値Aの絶対値|A|は比較的小さく、注目候補画素が変曲点の場合には絶対値|A|が比較的大きくなる。分類部63は、絶対値|A|が所定閾値よりも大きいか否かを判断することにより注目候補画素が変曲点であるか否かを判断する。
【0076】
図10及び図14の(A)〜図14の(C)を参照し、変曲点の前後で座標グループを分割する処理を説明する。注目候補画素Piが変曲点でない場合(ステップS209:N)には、処理はステップS210へ進む。ステップS210において分類部63は、現在形成中の座標グループcg1に注目候補画素Piを追加する。その後、処理はステップS215へ進む。
【0077】
変曲点が検出される前の状態を図14の(A)に示す。点P1〜P4は、原稿のコーナー部で検出された候補画素である。候補画素の座標P1〜P4は、それぞれ(x1,y1)、(x2,y2)、(x3,y3)及び(x4,y4)である。いま、注目候補画素Piは候補画素P2であり、1つ上の検出ラインの候補画素P1は、座標グループcgmに所属する。注目候補画素P2は変曲点でないため、次式にて算出される2回微分の絶対値|A|が比較的小さく、変曲点の検出閾値Th1を超えない。
|A|=|(x3−x2)/(y3−y2)−(x2−x1)/(y2−y1)|
【0078】
その結果、処理はステップS210へ進む。ステップS210において注目候補画素P2は、座標グループcgmに加えられる。
【0079】
その後、注目候補画素Piは候補画素P2からP3に変わる。図14の(B)は、注目候補画素Piが候補画素P3である場合における2回微分の説明図である。注目候補画素P3は変曲点であるため、次式にて算出される2回微分の絶対値|A|が比較的大きくなり、変曲点の検出閾値Th1を超える。
|A|=|(x4−x3)/(y4−y3)−(x3−x2)/(y3−y2)|
【0080】
図10において、注目候補画素Piが変曲点である場合(ステップS209:Y)には、処理はステップS211に進む。ステップS211において分類部63は、現在形成中の座標グループcgjが空であるか否かを判断する。cgjが空の場合(ステップS211:Y)には、分類部63は新たな座標グループを生成せずに、処理はステップS214へ進む。cgjが空でない場合(ステップS211:N)には、分類部63は、ステップS212でインデックスjを1つ増加させ、ステップS213で新たな座標グループcgjを生成する。ステップS214において分類部63は、変曲点の前後の座標グループcg(j−1)及びcgjの両方に変曲点の候補画素Piを追加する。その後、処理はステップS215へ進む。
【0081】
図14の(C)は、変曲点P3が検出された結果、座標グループcgmに加えて新たな座標グループが生成された状態を示す。座標グループcgm及びcgm+1の両方に、変曲点の候補画素P3が加えられている。
【0082】
図10を参照する。ステップS215において分類部63は、注目候補画素Piの検出ラインが最後の検出ラインであるか否かを判定する。注目候補画素Piの検出ラインが最後の検出ラインである場合(ステップS215:Y)には、処理が終了する。注目候補画素Piの検出ラインが最後の検出ラインでない場合(ステップS215:N)には、処理はステップS216へ進む。ステップS216において分類部63は、注目候補画素Piを次の検出ラインの候補画素に進めて処理をステップS204に戻す。
【0083】
<2.3.2. 直線グループ生成処理>
続いて、直線決定部64による直線グループ生成処理について説明する。図15は、直線決定部64による直線グループ作成処理の説明図である。ステップS301において直線決定部64は、処理対象として注目する座標グループcgjを参照するインデックス「j」に「1」を代入する。以下、画素グループcgjを「注目座標グループcgj」と表記することがある。ステップS302において近似直線算出部68は、注目座標グループcgjに属する候補画素に基づいて、境界線53の近似直線aljを算出する。ステップS303において仮直線決定部69は、注目座標グループcgjに属する候補画素を含む直線グループlgjを生成する。
【0084】
ステップS304において仮直線決定部69は、座標グループを参照するインデックス「k」に「1」を代入する。ステップS305において仮直線決定部69は、座標グループcgkが注目座標グループcgjと等しいか否かを判断する。座標グループcgkが注目座標グループcgjと異なる場合(ステップS305:Y)には、処理はステップS306へ進む。座標グループcgkが注目座標グループcgjと同じ場合(ステップS305:N)には、ステップS306〜S308がスキップされて、処理はステップS309へ進む。
【0085】
ステップS306において仮直線決定部69は、近似直線aljと座標グループcgkとの間の距離dを判定する。距離dの算出には様々な算出方法を使用することができる。図16の(A)は、近似直線aljと座標グループcgkの距離dの算出方法の例示の説明図である。仮直線決定部69は、座標グループcgkの両端の端点と近似直線aljとのそれぞれの距離d1及びd2の平均を、距離dとして算出してよい。仮直線決定部69は、距離d1及びd2のうちいずれか長い方又は短い方を距離dとして算出してもよい。仮直線決定部69は、座標グループcgkに含まれるいずれかの候補画素と近似直線aljとの距離を、距離dとして算出してよい。
【0086】
図16の(B)は、近似直線aljと座標グループcgkの距離dの算出方法の例示の他の説明図である。仮直線決定部69は、座標グループcgkに基づいて算出される近似直線alkと近似直線aljとの間の距離を、距離dとして算出してもよい。
【0087】
ステップS307において仮直線決定部69は、距離dが所定の閾値Th2以下であるか否かを判断する。距離dが閾値Th2以下である場合(ステップS307:Y)には、処理はステップS308へ進む。距離dが閾値Th2を超える場合(ステップS307:N)には、ステップS308がスキップされて、処理はステップS309へ進む。ステップS308において仮直線決定部69は、座標グループcgkの候補画素を、直線グループlgjに追加する。
【0088】
ステップS309において仮直線決定部69は、インデックスkの値を1つ増加する。ステップS310において仮直線決定部69は、インデックスkの値が、座標グループの総数CGNを超えるか否かを判断する。kの値がCGNを超える場合(ステップS310:Y)には、処理はステップS311へ進む。kの値がCGNを超えない場合(ステップS310:N)には、処理はステップS305へ戻る。
【0089】
ステップS311において仮直線決定部69は、注目座標グループcgjのインデックスjの値を1つ増加する。ステップS312において仮直線決定部69は、インデックスjの値が、座標グループの総数CGNを超えるか否かを判断する。jの値がCGNを超える場合(ステップS312:Y)には処理は終了する。jの値がCGNを超えない場合(ステップS312:N)には、処理はステップS302へ戻る。
【0090】
上記のステップS301〜S312により形成される直線グループlgjについて説明する。図17は、直線グループの説明図である。図17において点線120は原稿領域を示し、黒ドットは候補画素を示す。図17の例において、複数の座標グループcg1〜cg4が形成され、近似直線alは座標グループcg1に基づいて算出された原稿領域の境界線の近似直線である。また、直線グループlgは、近似直線aljから所定の距離の範囲にある座標グループcg1、cg2及びcg4の候補画素の集合である。
【0091】
直線グループlgは、1つの座標グループcg1に属する候補画素だけでなく、この候補画素に基づき算出された境界線の近似直線alから所定の距離の範囲にある他の座標グループcg2及びcg4の候補画素も含む。したがって、仮直線決定部69は、同一直線上に位置する境界線を検出した候補画素でありながら異なる座標グループに分類された候補画素同士を1つの集合として識別する。
【0092】
<2.3.3. 仮直線決定処理>
続いて、直線決定部64による仮直線決定処理について説明する。図18は、直線決定部64による仮直線決定処理の第1例の説明図である。ステップS401において直線決定部64の仮直線決定部69は、生成された直線グループの中から、最も多い候補画素を含む直線グループを選択する。ステップS402において仮直線決定部69は、ステップS401で選択した直線グループに含まれる候補画素に基づいて、原稿領域の境界線の仮直線を算出する。ステップS403において仮直線決定部69は、走査方向SDと仮直線のなす角である仮直線の傾きを、原稿の傾きとして検出する。
【0093】
上述の通り、図7に示す分類部63は、同一直線の境界線上で検出されていない候補画素同士が同一の座標グループに含まれないように、候補画素を複数の座標グループに分類する。仮直線決定部69は、同一直線上に位置する境界線で検出され、異なる座標グループに分類された候補画素同士が同じ直線グループに属するように候補画素を分類する。仮直線決定部69は、最も多い候補画素を含む直線グループに含まれる候補画素に基づいて、仮直線を決定する。すなわち仮直線決定部69は、最も多く候補画素が検出された同一直線上にある境界線で検出された候補画素に基づいて境界線の仮直線を決定する。このため仮直線決定部69は、境界線の傾きすなわち原稿の傾きを高い精度で決定することができる。
【0094】
<2.3.4. 境界線決定処理>
次に、直線決定部64及び直線選択部66による境界線決定処理について説明する。図19は直線決定部64と直線選択部66による境界線決定処理の説明図である。ステップS501において直線決定部64は、近似直線と仮直線との傾きとの差を比べ、傾きの差が所定範囲内の1つ以上の近似直線を選択する。
【0095】
ステップS501において複数の近似直線が選択される場合の一例を説明する。図20は、辺にタブが存在する原稿領域を示す。原稿領域130の辺131には、タブ部分とタブ以外の部分が存在し、タブ部分の境界線132とタブでない部分の境界線133とは、同一直線上にはないが傾きは等しい。
【0096】
タブ部分で検出された候補画素の座標グループと、タブでない部分で検出された候補画素の座標グループが生成されると、これら座標グループから算出される近似直線の傾きと仮直線の傾きとの差が小さくなる。このため、直線決定部64は、タブ部分における原稿領域130の境界の近似直線と、タブ以外の部分における原稿領域130の境界の近似直線とをそれぞれ選択する。
【0097】
ステップS502において直線選択部66は、ステップS501で選択された近似直線が存在するか否かを判断する。選択された近似直線がある場合(ステップS502:Y)には処理はステップS503へ進む。選択された近似直線がない場合(ステップS502:N)には処理はステップS508へ進む。
【0098】
ステップS503において直線選択部66は、選択された近似直線が一本であるか否かを判断する。選択された近似直線が一本である場合(ステップS503:Y)には、処理はステップS504へ進む。選択された近似直線が複数である場合(ステップS503:N)には、処理はステップS505へ進む。ステップS504において直線選択部66は、選択された近似直線を、原稿領域を切り出す境界線として決定する。その後処理は終了する。
【0099】
ステップS505において直線選択部66は、設定部65により指定されたクロップ設定が、原稿領域の外側を指定するか否かを判断する。クロップ設定が外側を指定する場合(ステップS505:Y)には、処理はステップS506へ進む。クロップ設定が内側を指定する場合(ステップS505:N)には、処理はステップS507へ進む。
【0100】
ステップS506において直線選択部66は、選択された近似直線のうち最も原稿領域の外側に位置する近似直線を、原稿領域を切り出す境界線として決定する。その後処理は終了する。一方、ステップS507において直線選択部66は、選択された近似直線のうち最も原稿領域の内側に位置する近似直線を、原稿領域を切り出す境界線として決定する。その後処理は終了する。
【0101】
なお、ステップS506及びS507において、直線選択部66は、選択された複数の近似直線の間で、それぞれ近似直線から所定範囲にある候補画素により形成された直線グループに含まれる候補画素数を比較してもよい。そして直線選択部66は、候補画素数が最も多く含む直線グループを形成する近似直線を、原稿領域を切り出す境界線として決定してもよい。
【0102】
ステップS508において直線選択部66は、設定部65により指定されたクロップ設定が、原稿領域の外側を指定するか否かを判断する。クロップ設定が外側を指定する場合(ステップS508:Y)には、処理はステップS509へ進む。クロップ設定が内側を指定する場合(ステップS508:N)には、処理はステップS510へ進む。
【0103】
ステップS509において直線選択部66は、仮直線の傾きと同じ傾きを有し、最も原稿領域の外側にある座標グループのいずれかの候補画素を通過する直線を、原稿領域を切り出す境界線として決定してもよい。その後処理は終了する。ステップS510において直線選択部66は、仮直線の傾きと同じ傾きを有し、最も原稿領域の内側にある座標グループのいずれかの候補画素を通過する直線を、原稿領域を切り出す境界線として決定してもよい。
【0104】
ステップS501において直線決定部64は、座標グループから算出した近似直線の傾きに代えて、直線グループに属する候補画素から算出した境界線の近似直線の傾きと仮直線の傾きとを比較してもよい。そして傾きの差が所定範囲内の直線グループを選択してよい。
【0105】
また、ステップS504、S506及びS507において直線選択部66は、座標グループから算出した近似直線の代わりに、直線グループに属する候補画素から算出した境界線の近似直線を原稿領域を切り出す境界線として決定してよい。
【0106】
また、仮直線の傾きに代えて、原稿の傾きを他の手段で検出してもよい。原稿の傾きは、例えば、画像読取装置10が備える所定の原稿傾きセンサ(図示せず)によって検出してもよい。
<2.4. 実施例の効果>
【0107】
本実施例によれば、原稿領域とその外側との境界線を構成する画素として検出された複数の候補画素の中に、同一直線から離れた位置で検出された候補画素があっても、候補画素に基づいて算出される境界線の近似直線の傾きに生じる誤差が低減される。したがって、原稿領域とその外側との境界線を算出する近似直線の精度を向上することができる。
【0108】
例えば、原稿領域と画像データの背景領域の明度差が小さい場合に、境界線から離れた位置で誤検出される候補画素が生じる境界線の近似直線の傾きの誤差が低減される。また原稿領域がタブを含む場合には、タブ部分の境界線とタブ以外の部分の境界線は互いに同一直線上にない。本実施例によれば、これらの異なる複数の境界線で候補画素がそれぞれ検出されても、候補画素に基づいて算出される境界線の近似直線の傾きに生じる誤差が防止される。この結果、画像データから原稿領域の画像を切り出すための境界線に生じる傾きの誤差が低減され、原稿領域の各辺を精度良く検出することができる。
【0109】
本実施例によれば、原稿領域がタブを含む場合に、目的に応じてタブ部分を含む原稿画像及びタブ部分を含まない原稿画像のいずれかを任意に選択して画像データから切り出すことができる。
【0110】
<3.第2実施例>
続いて、画像処理システム1の他の実施例について説明する。図21の(A)〜図21の(D)は、画像処理システム1の処理の他の実施例の説明図である。図21の(A)〜図21の(D)において点線130は原稿領域を示し、黒ドットは、辺131において検出された候補画素を示す。本実施例では、画像処理システム1は、辺131における原稿領域と外側との境界線の複数の近似直線132〜135を算出する。画像処理システム1は、各候補画素と各近似直線132〜135との距離を判定する。
【0111】
画像処理システム1は、近似直線132〜135毎に、各近似直線との距離が所定範囲の候補画素を含む座標グループを生成する。図21の(B)は、近似直線132からの距離が所定範囲内の候補画素で形成される座標グループを示す。図21の(C)は、近似直線133からの距離が所定範囲内の候補画素で形成される座標グループを示す。図21の(D)は、近似直線134及び135からの距離が所定範囲内の候補画素で形成される座標グループを示す。
【0112】
近似直線132〜135からの距離が所定範囲内の候補画素で形成される4つの座標グループのうち、最も多くの候補画素を含むのは近似直線132からの距離が所定範囲内の候補画素で形成される図21の(B)の座標グループである。画像処理システム1は、近似直線132を、辺131の境界線の仮直線として決定する。画像処理システム1は、仮直線の傾きを原稿の傾きとして検出してもよい。
【0113】
図22は、画像処理制御部17の構成例の第2例を示す図である。図7に示す画像処理制御部17の第1例の構成要素と同一の構成要素については同一の参照符号を付する。同一の参照符号が付された構成要素の動作は、特に説明しない限り同じである。
【0114】
画像処理制御部17は、近似直線算出部90を備える。他の実施例では、画像処理制御部17に代わってCPU11が、近似直線算出部90の処理を実行してもよい。また他の実施例では、近似直線算出部90の処理をコンピュータ装置30のCPU31によって実行してもよい。
【0115】
近似直線算出部90は、候補画素検出部61により検出され候補画素記憶部62に格納された候補画素を選択して、これらの候補画素に基づいて、原稿領域の各辺の境界線毎に複数の近似直線を算出する。候補画素の座標から近似直線を算出するために、最小二乗法やハフ変換などの様々な算出法を利用することができる。
【0116】
分類部63は、近似直線と候補画素記憶部62に格納された各候補画素との距離を判定する。分類部63は、近似直線毎に、各近似直線との距離が所定範囲の候補画素を含む座標グループを生成する。仮直線決定部69は、最も多くの候補画素を含む座標グループを形成した近似直線を辺の仮直線として決定する。仮直線決定部69は、仮直線の傾きを、原稿の傾きとして検出する。
【0117】
直線決定部64は、仮直線に基づいて、近似直線算出部90が算出した複数の近似直線のいずれかを選択する。例えば、直線決定部64は、仮直線との傾きと近似直線の傾きとを比べ、傾きの差が所定範囲内の1つ以上の近似直線を選択する。直線選択部66は、直線決定部64が選択した近似直線のうちいずれか1個の直線を原稿領域を切り出すための境界線として選択する。
【0118】
図23は、画像処理システム1の処理の第2例の説明図である。ステップS601〜ステップS603の処理は、図3を参照して説明したステップS101〜S103の処理と同様である。以下のステップS604〜S606は原稿領域の辺毎に実行される。
【0119】
ステップS604において分類部63は、候補画素毎に異なるグループに分類することにより、複数の座標グループを生成する。図24は、分類部63による座標グループ作成処理の第2例の説明図である。
【0120】
ステップS701において座標グループを参照するインデックス「j」に「1」が代入される。ステップS702において近似直線算出部90は、候補画素記憶部62に格納された複数の候補画素を選択する。ステップS703において近似直線算出部90は、選択した候補画素に基づいて、原稿領域の辺の境界線の近似直線aljを算出する。
【0121】
ステップS704において分類部63は、近似直線aljとの距離が所定範囲の候補画素を含む座標グループcgjを生成する。ステップS705において近似直線算出部90は、更に座標グループを生成するか否かを判定する。例えば、近似直線算出部90は、まだいずれの座標グループにも属していない候補画素が存在する場合には、さらなる座標グループを生成すると判断し、全ての候補画素がいずれかの座標グループに属している場合に、さらなる座標グループは不要と判断する。
【0122】
更に座標グループを生成する場合(ステップS705:Y)には、処理はステップS706に進む。更に座標グループを生成しない場合(ステップS705:N)には、処理は終了する。ステップS706においてインデックスjの値は1増加する。その後処理はステップS702へ戻る。
【0123】
図23を参照する。ステップS605において直線決定部64は、座標グループ作成処理にて算出した近似直線aljのいずれかを仮直線として選択する。図25は、直線決定部64による仮直線決定処理の第2例の説明図である。
【0124】
ステップS801において直線決定部64の仮直線決定部69は、最も多くの候補画素を含む座標グループを形成した近似直線を辺の仮直線として決定する。ステップS802において仮直線決定部69は、仮直線の傾きを原稿の傾きとして検出する。
【0125】
図23を参照する。ステップS606において直線決定部64及び直線選択部66は、画像データから原稿領域を切り出すための境界線を決定する。境界線を決定する処理は、図19を参照して説明した境界線決定処理と同様であってよい。ステップS607〜S609の処理は、図3を参照して説明したステップS108〜S110の処理と同様である。
【0126】
本実施例によれば、辺の境界線の複数の近似直線を算出して、その中から近似直線との距離が所定範囲内の候補画素が最も多いものを選ぶ。このため、候補画素の中に、同一直線から離れた位置で検出された候補画素があっても、候補画素に基づいて算出される近似直線のうち、傾きの誤差がより少ないものを選択することができる。この結果、画像データから原稿領域の画像を切り出すための境界線に生じる傾きの誤差が低減され、原稿領域の各辺を精度良く検出することができる。
【0127】
また、本実施例においても、原稿領域がタブを含む場合に、目的に応じてタブ部分を含む原稿画像及びタブ部分を含まない原稿画像のいずれかを任意に選択して画像データから切り出すことができる。
【符号の説明】
【0128】
1 画像処理システム
10 画像読取装置
30 コンピュータ装置
60 画像入力部
61 候補画素検出部
63 分類部
64 直線決定部
65 設定部
66 直線選択部
67 画像切出部
【特許請求の範囲】
【請求項1】
原稿領域を含んだ画像データを入力する画像入力部と、
前記原稿領域の辺の境界線を構成する画素の候補となる候補画素を検出する候補画素検出部と、
前記原稿領域の辺毎に、境界線の複数の部位においてそれぞれ検出された前記候補画素の座標を複数の座標グループに分類する分類部と、
前記複数の座標グループ毎に属する座標に基づいて、境界線の複数の近似直線を算出する近似直線算出部と、
前記複数の近似直線のうち、近似直線から所定の距離の範囲にある候補画素数が最も多い近似直線に基づいて、前記辺の境界線の仮直線を決定する仮直線決定部と、
前記仮直線に基づいて前記原稿領域の画像を切り出だす画像切出部と、
を備える画像処理装置。
【請求項2】
前記仮直線決定部は、前記複数の近似直線のうち、近似直線から所定の距離の範囲にある候補画素数が最も多い近似直線を選択し、選択された近似直線から所定の距離の範囲にある候補画素の座標に基づいて仮直線を決定する請求項1に記載の画像処理装置。
【請求項3】
前記仮直線決定部は、ある座標グループについて算出した近似直線と他の座標グループとの距離を判定することにより、この近似直線から所定の距離の範囲にある候補画素の数を決定することを特徴とする請求項1又は2に記載の画像処理装置。
【請求項4】
前記分類部は、連続して検出される候補画素の座標の連結状態に応じてこれら座標を同じ座標グループに分類するか否かを判断する請求項1〜3のいずれか一項に記載の画像処理装置。
【請求項5】
前記仮直線に基づき前記複数の近似直線のいずれかを選択する直線選択部を備え、
前記画像切出部は、選択された前記近似直線を境界線として前記原稿領域の画像を切り出だすことを特徴とする請求項1〜4のいずれか一項に記載の画像処理装置。
【請求項6】
前記直線選択部は、前記仮直線の傾きと前記近似直線との傾きとの差に応じて前記近似直線を選択することを特徴とする請求項5に記載の画像処理装置。
【請求項7】
前記直線選択部は、前記仮直線の傾きと前記近似直線との傾きとの差に応じて選択された複数の前記近似直線のうち最も外側又は内側の近似直線を、前記原稿領域の外側又は内側を指定する設定に応じて選択することを特徴とする請求項6に記載の画像処理装置。
【請求項8】
画像処理方法であって、
画像処理装置に、
原稿領域を含んだ画像データを取得する画像取得ステップと、
前記原稿領域の辺の境界線を構成する画素の候補となる候補画素を検出する候補画素検出ステップと、
前記原稿領域の辺毎に、境界線の複数の部位においてそれぞれ検出された前記候補画素の座標を複数の座標グループに分類する分類ステップと、
前記複数の座標グループ毎に属する座標に基づいて、境界線の複数の近似直線を算出する近似直線算出ステップと、
前記複数の近似直線のうち、近似直線から所定の距離の範囲にある候補画素数が最も多い近似直線に基づいて、前記辺の境界線の仮直線を決定する仮直線決定ステップと、
前記仮直線に基づいて前記原稿領域の画像を切り出だす画像切出ステップと、
を実行させることを特徴とする画像処理方法。
【請求項9】
制御部を備えた情報処理装置に実行させるための画像処理プログラムであって、
前記制御部に実行させるための、
原稿領域を含んだ画像データを取得する画像取得ステップと、
前記原稿領域の辺の境界線を構成する画素の候補となる候補画素を検出する候補画素検出ステップと、
前記原稿領域の辺毎に、境界線の複数の部位においてそれぞれ検出された前記候補画素の座標を複数の座標グループに分類する分類ステップと、
前記複数の座標グループ毎に属する座標に基づいて、境界線の複数の近似直線を算出する近似直線算出ステップと、
前記複数の近似直線のうち、近似直線から所定の距離の範囲にある候補画素数が最も多い近似直線に基づいて、前記辺の境界線の仮直線を決定する仮直線決定ステップと、
前記仮直線に基づいて前記原稿領域の画像を切り出だす画像切出ステップと、
を含むことを特徴とする画像処理プログラム。
【請求項10】
画像読取装置と、該画像読取装置との間の通信により該画像読取装置が読み込む画像を受信するコンピュータ装置とを有する画像処理システムであって、
前記画像読取装置により読み込まれる画像データに含まれる原稿領域の辺の境界線を構成する画素の候補となる候補画素を検出する候補画素検出部と、
前記原稿領域の辺毎に、境界線の複数の部位においてそれぞれ検出された前記候補画素の座標を複数の座標グループに分類する分類部と、
前記複数の座標グループ毎に属する座標に基づいて、境界線の複数の近似直線を算出する近似直線算出部と、
前記複数の近似直線のうち、近似直線から所定の距離の範囲にある候補画素数が最も多い近似直線に基づいて、前記辺の境界線の仮直線を決定する仮直線決定部と、
前記仮直線に基づいて前記原稿領域の画像を切り出だす画像切出部と、
を備える画像処理システム。
【請求項1】
原稿領域を含んだ画像データを入力する画像入力部と、
前記原稿領域の辺の境界線を構成する画素の候補となる候補画素を検出する候補画素検出部と、
前記原稿領域の辺毎に、境界線の複数の部位においてそれぞれ検出された前記候補画素の座標を複数の座標グループに分類する分類部と、
前記複数の座標グループ毎に属する座標に基づいて、境界線の複数の近似直線を算出する近似直線算出部と、
前記複数の近似直線のうち、近似直線から所定の距離の範囲にある候補画素数が最も多い近似直線に基づいて、前記辺の境界線の仮直線を決定する仮直線決定部と、
前記仮直線に基づいて前記原稿領域の画像を切り出だす画像切出部と、
を備える画像処理装置。
【請求項2】
前記仮直線決定部は、前記複数の近似直線のうち、近似直線から所定の距離の範囲にある候補画素数が最も多い近似直線を選択し、選択された近似直線から所定の距離の範囲にある候補画素の座標に基づいて仮直線を決定する請求項1に記載の画像処理装置。
【請求項3】
前記仮直線決定部は、ある座標グループについて算出した近似直線と他の座標グループとの距離を判定することにより、この近似直線から所定の距離の範囲にある候補画素の数を決定することを特徴とする請求項1又は2に記載の画像処理装置。
【請求項4】
前記分類部は、連続して検出される候補画素の座標の連結状態に応じてこれら座標を同じ座標グループに分類するか否かを判断する請求項1〜3のいずれか一項に記載の画像処理装置。
【請求項5】
前記仮直線に基づき前記複数の近似直線のいずれかを選択する直線選択部を備え、
前記画像切出部は、選択された前記近似直線を境界線として前記原稿領域の画像を切り出だすことを特徴とする請求項1〜4のいずれか一項に記載の画像処理装置。
【請求項6】
前記直線選択部は、前記仮直線の傾きと前記近似直線との傾きとの差に応じて前記近似直線を選択することを特徴とする請求項5に記載の画像処理装置。
【請求項7】
前記直線選択部は、前記仮直線の傾きと前記近似直線との傾きとの差に応じて選択された複数の前記近似直線のうち最も外側又は内側の近似直線を、前記原稿領域の外側又は内側を指定する設定に応じて選択することを特徴とする請求項6に記載の画像処理装置。
【請求項8】
画像処理方法であって、
画像処理装置に、
原稿領域を含んだ画像データを取得する画像取得ステップと、
前記原稿領域の辺の境界線を構成する画素の候補となる候補画素を検出する候補画素検出ステップと、
前記原稿領域の辺毎に、境界線の複数の部位においてそれぞれ検出された前記候補画素の座標を複数の座標グループに分類する分類ステップと、
前記複数の座標グループ毎に属する座標に基づいて、境界線の複数の近似直線を算出する近似直線算出ステップと、
前記複数の近似直線のうち、近似直線から所定の距離の範囲にある候補画素数が最も多い近似直線に基づいて、前記辺の境界線の仮直線を決定する仮直線決定ステップと、
前記仮直線に基づいて前記原稿領域の画像を切り出だす画像切出ステップと、
を実行させることを特徴とする画像処理方法。
【請求項9】
制御部を備えた情報処理装置に実行させるための画像処理プログラムであって、
前記制御部に実行させるための、
原稿領域を含んだ画像データを取得する画像取得ステップと、
前記原稿領域の辺の境界線を構成する画素の候補となる候補画素を検出する候補画素検出ステップと、
前記原稿領域の辺毎に、境界線の複数の部位においてそれぞれ検出された前記候補画素の座標を複数の座標グループに分類する分類ステップと、
前記複数の座標グループ毎に属する座標に基づいて、境界線の複数の近似直線を算出する近似直線算出ステップと、
前記複数の近似直線のうち、近似直線から所定の距離の範囲にある候補画素数が最も多い近似直線に基づいて、前記辺の境界線の仮直線を決定する仮直線決定ステップと、
前記仮直線に基づいて前記原稿領域の画像を切り出だす画像切出ステップと、
を含むことを特徴とする画像処理プログラム。
【請求項10】
画像読取装置と、該画像読取装置との間の通信により該画像読取装置が読み込む画像を受信するコンピュータ装置とを有する画像処理システムであって、
前記画像読取装置により読み込まれる画像データに含まれる原稿領域の辺の境界線を構成する画素の候補となる候補画素を検出する候補画素検出部と、
前記原稿領域の辺毎に、境界線の複数の部位においてそれぞれ検出された前記候補画素の座標を複数の座標グループに分類する分類部と、
前記複数の座標グループ毎に属する座標に基づいて、境界線の複数の近似直線を算出する近似直線算出部と、
前記複数の近似直線のうち、近似直線から所定の距離の範囲にある候補画素数が最も多い近似直線に基づいて、前記辺の境界線の仮直線を決定する仮直線決定部と、
前記仮直線に基づいて前記原稿領域の画像を切り出だす画像切出部と、
を備える画像処理システム。
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図1】
【図12】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図1】
【図12】
【公開番号】特開2013−58927(P2013−58927A)
【公開日】平成25年3月28日(2013.3.28)
【国際特許分類】
【出願番号】特願2011−196305(P2011−196305)
【出願日】平成23年9月8日(2011.9.8)
【出願人】(000136136)株式会社PFU (354)
【Fターム(参考)】
【公開日】平成25年3月28日(2013.3.28)
【国際特許分類】
【出願日】平成23年9月8日(2011.9.8)
【出願人】(000136136)株式会社PFU (354)
【Fターム(参考)】
[ Back to top ]