(57)【特許請求の範囲】
【請求項１】
入力画像を二値化するための閾値を決定する画像処理装置であって、
入力画像のヒストグラムを作成するヒストグラム作成手段と、
前記ヒストグラムの演算対象範囲の平均値を算出し、当該演算対象範囲において前記平均値より低い値の範囲と前記平均値より高い値の範囲とに関する正規化された偏りを算出する偏り算出手段と、
前記偏り算出手段で算出した偏りの絶対値が所定の値以下でない場合、当該偏りの符号により定まる前記ヒストグラムの演算対象範囲の最小値(start)と最大値(end)との何れかを、当該偏りの大きさに応じた割合で前記平均値に近づくように再設定することにより、前記演算対象範囲を再決定する演算範囲再決定手段と、
前記偏りの絶対値が前記所定の値以下になるまで、前記演算範囲再決定手段で再決定された演算対象範囲に基づいて前記偏り算出手段で偏りを再算出する処理を繰り返し行い、前記偏りの絶対値が前記所定の値以下になったときの演算対象範囲の平均値を二値化閾値として決定する閾値決定手段と
を有することを特徴とする画像処理装置。
【請求項２】
前記正規化された偏りは、前記演算対象範囲におけるヒストグラムの分散を分母とし、前記平均値より低い値の演算対象範囲におけるヒストグラムの分散と前記平均値より高い値の演算対象範囲におけるヒストグラムの分散との差分を分子とすることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記偏り算出手段で偏りを再算出する処理を所定回数繰り返したときに、前記偏りの絶対値が前記所定の値以下にならなかった場合、前記偏り算出手段で１回目に算出した偏りの値の符号と前記平均値とに基づいて前記演算対象範囲を再設定しなおして、前記偏り算出手段と前記演算範囲再決定手段と前記閾値決定手段とによる処理を再度実行することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記閾値決定手段で決定した前記二値化閾値が、前記偏り算出手段で１回目に算出した偏りの値の符号と前記画像のヒストグラム全域の標準偏差の値とに基づいて定められる範囲に収まっているか否か判定し、当該範囲に収まってない場合、前記閾値決定手段で決定した前記二値化閾値と前記偏り算出手段で１回目に算出した平均値とに基づいて前記演算対象範囲を再設定しなおして、前記偏り算出手段と前記演算範囲再決定手段と前記閾値決定手段とによる処理を再度実行するように制御することを特徴とする請求項１乃至３の何れか１項に記載の画像処理装置。
【請求項５】
前記偏り算出手段で１回目に算出した偏りの絶対値が予め定めた値より大きい場合、所定フラグをＯＮに設定し、前記所定フラグがＯＮのときに前記演算範囲再決定手段で再決定した前記演算対象範囲において前記偏り算出手段で算出した偏りが所定の条件を満たす場合、前記所定フラグをＯＦＦにするとともに、前記偏り算出手段で算出した偏りの符号に基づいて定まる前記演算対象範囲の最小値(start)と最大値(end)との何れかを前記平均値に再設定しなおして、前記偏り算出手段と前記演算範囲再決定手段と前記閾値決定手段とによる処理を再度実行するように制御することを特徴とする請求項１乃至４の何れか１項に記載の画像処理装置。
【請求項６】
入力画像を二値化するための閾値を決定する画像処理装置の処理方法であって、
入力画像のヒストグラムを作成するヒストグラム作成工程と、
前記ヒストグラムの演算対象範囲の平均値を算出し、当該演算対象範囲において前記平均値より低い値の範囲と前記平均値より高い値の範囲とに関する正規化された偏りを算出する偏り算出工程と、
前記偏り算出工程で算出した偏りの絶対値が所定の値以下でない場合、当該偏りの符号により定まる前記ヒストグラムの演算対象範囲の最小値(start)と最大値(end)との何れかを、当該偏りの大きさに応じた割合で前記平均値に近づくように再設定することにより、前記演算対象範囲を再決定する演算範囲再決定工程と、
前記偏りの絶対値が前記所定の値以下になるまで、前記演算範囲再決定工程で再決定された演算対象範囲に基づいて前記偏り算出工程で偏りを再算出する処理を繰り返し行い、前記偏りの絶対値が前記所定の値以下になったときの演算対象範囲の平均値を二値化閾値として決定する閾値決定工程と
を有することを特徴とする画像処理装置の処理方法。
【請求項７】
コンピュータを、請求項１乃至５の何れか１項に記載の画像処理装置として機能させるためのプログラム。
【請求項８】
コンピュータを、請求項１乃至５の何れか１項に記載の画像処理装置として機能させるためのプログラムが記憶されたコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、入力画像を二値化するための閾値を決定する画像処理装置及びその処理方法に関するものである。
【０００２】
【従来の技術】
従来、二値化技術として、特開平8-223409号公報や特開平9-305754号公報などに記載されたものが知られている。これらの二値化技術は、二値化しようとする画像の輝度ヒストグラムを作成し、「スキュー」と呼ばれるヒストグラムの偏りにより最終閾値の範囲を限定していく手法である。
【０００３】
簡単に説明すると、ヒストグラム範囲を［start..end］、その範囲の平均値をAVとし、ヒストグラムの各要素の存在確率をp[i]とすると、スキュー（skew）は、次式によって求められる。
【０００４】
skew=Σ(i-AV)(i-AV)p[i]/Σ(i-AV)(i-AV)(i-AV)p[i]  (i=start..end)
このスキューの符号の正負により平均値AVの左側又は右側へ範囲を狭めていき、スキューの値が予め決められた所定の値以下になるまで処理を続け、その時の平均値AVの値を二値化の閾値とする。
【０００５】
【発明が解決しようとする課題】
しかしながら、上記従来例では、二値化対象となるスキャナ毎に内部パラメータを変更しなければならいため、内部パラメータの決定に手間がかかり、更にはスキャンしたスキャナが不明な画像はうまく二値化できない可能性もあった。
【０００６】
説明すると、このスキューの最大値は２乗／３乗であるため、（end-start）の値で決まる。つまり、１回目のスキューの値によって文字領域か否かの判断をしているので、スキャナによるヒストグラムの山の広がり具合によって内部パラメータを変える必要があった。
【０００７】
本発明は、スキューの符号とその値の大きさとに応じて、演算範囲のstart側とend側のどちらを狭めるのかと狭める量との両方を決定することを目的とする。
【０００８】
【課題を解決するための手段】
上記目的を達成するために、本発明は、入力画像を二値化するための閾値を決定する画像処理装置であって、入力画像のヒストグラムを作成するヒストグラム作成手段と、前記ヒストグラムの演算対象範囲の平均値を算出し、当該演算対象範囲において前記平均値より低い値の範囲と前記平均値より高い値の範囲とに関する正規化された偏りを算出する偏り算出手段と、前記偏り算出手段で算出した偏りの絶対値が所定の値以下でない場合、当該偏りの符号により定まる前記ヒストグラムの演算対象範囲の最小値(start)と最大値(end)との何れかを、当該偏りの大きさに応じた割合で前記平均値に近づくように再設定することにより、前記演算対象範囲を再決定する演算範囲再決定手段と、前記偏りの絶対値が前記所定の値以下になるまで、前記演算範囲再決定手段で再決定された演算対象範囲に基づいて前記偏り算出手段で偏りを再算出する処理を繰り返し行い、前記偏りの絶対値が前記所定の値以下になったときの演算対象範囲の平均値を二値化閾値として決定する閾値決定手段とを有することを特徴とする。
【０００９】
また、上記目的を達成するために、本発明は、入力画像を二値化するための閾値を決定する画像処理装置の処理方法であって、入力画像のヒストグラムを作成するヒストグラム作成工程と、前記ヒストグラムの演算対象範囲の平均値を算出し、当該演算対象範囲において前記平均値より低い値の範囲と前記平均値より高い値の範囲とに関する正規化された偏りを算出する偏り算出工程と、前記偏り算出工程で算出した偏りの絶対値が所定の値以下でない場合、当該偏りの符号により定まる前記ヒストグラムの演算対象範囲の最小値(start)と最大値(end)との何れかを、当該偏りの大きさに応じた割合で前記平均値に近づくように再設定することにより、前記演算対象範囲を再決定する演算範囲再決定工程と、前記偏りの絶対値が前記所定の値以下になるまで、前記演算範囲再決定工程で再決定された演算対象範囲に基づいて前記偏り算出工程で偏りを再算出する処理を繰り返し行い、前記偏りの絶対値が前記所定の値以下になったときの演算対象範囲の平均値を二値化閾値として決定する閾値決定工程とを有することを特徴とする。
【００１０】
【発明の実施の形態】
以下、図面を参照しながら本発明に係る実施の形態を詳細に説明する。
【００１１】
図１は、実施形態における画像処理装置の構成を示すブロック図である。同図において、１０１はＣＰＵであり、後述するＲＯＭに格納されているプログラムに従って全体を制御する。１０２はＲＯＭであり、ＣＰＵ１０１のプログラムや制御データを格納する。１０３はＲＡＭであり、二値化を行う多値画像や二値化画像を格納するデータ領域及びＣＰＵ１０２の作業領域が定義されているメモリである。１０４は記憶装置であり、画像データ等の格納を行うハードディスクやＤＶＤ等である。１０５は画像読取手段として機能するスキャナであり、対象となる画像を光学的に読み取り、光電変換された画像データを出力する。１０６は出力装置であり、画像を表示するＣＲＴやＬＣＤのディスプレイ又は画像を印刷する電子写真方式やインクジェット方式のプリンタ等である。１０７は入力装置であり、ユーザの指示を入力するキーボードやマウス等のデバイスである。
【００１２】
以上の構成において、まず入力装置１０７からユーザの指示が入力されると、その指示内容に応じてＣＰＵ１０１が記憶装置１０４に予め保存されている画像データやスキャナ１０５より取り込まれた画像データをＲＡＭ１０３に格納し、詳細は後述する図２及び図３に示すフローチャートにより、ＲＡＭ１０３の多値画像を二値化するための二値化閾値を決定し、決定された二値化閾値により多値画像を二値化して出力装置１０６に出力又は記憶装置１０４に格納する。
【００１３】
尚、決定した二値化閾値を用いて多値画像を二値化する二値化処理については公知の二値化処理で良く、ここでの説明は省略する。
【００１４】
ここで、上述の二値化閾値を決定する処理として、ヒストグラムの偏りを示すスキューが正規化されたスキューを用いて、そのスキューの値に応じて最終閾値の範囲を狭めることにより、スキャナ特性に依存しない二値化閾値の決定処理について説明する。
【００１５】
図２及び図３は、実施形態における二値化閾値決定処理を示すフローチャートである。まず、ステップＳ２０１において、入力された画像の輝度ヒストグラムを作成し、ステップＳ２０２において、輝度を256階調とした場合、ヒストグラム範囲のstartを0、endを255に設定する。そして、ステップＳ２０３において、ヒストグラムをstartからendへ、endからstartへと調べていき、ヒストグラムのデータ数が０である部分を狭めて、それぞれstart0，end0とし、start0，end0でstart，endの値を再設定する。
【００１６】
次に、ステップＳ２０４において、１回目のヒストグラムの平均値AV0、skew sk0、標準偏差SDを演算する。ここで、skewは、ヒストグラム範囲をstart..end、その範囲の平均値をAVとし、ヒストグラムの各要素の存在確率をp[i]とすると、skewは次式となる。
【００１７】
a=Σ(i-AV)(i-AV)p[i]    (i=start..AV)
b=Σ(i-AV)(i-AV)p[i]    (i=AV..end)
skew=(b-a)/(a+b)
ここで、skewの値の取り得る範囲であるが、絶対値で1.0以下、即ち、±1.0に正規化されているものである。
【００１８】
次に、ステップＳ２０５において、収束条件のための閾値SRを演算する。閾値SRは次式となる。
【００１９】
sr=1.5+sqrt(fabs(sk0))
ここで、fabs()は絶対値の演算であり、sqrt()は平方根の演算である。
【００２０】
次に、ステップＳ２０６〜Ｓ２０８において、sk0の値の絶対値に応じて文字フラグmfを１又は０に設定する処理を行う。具体的には、ステップＳ２０６において、sk0の値の絶対値が0.2以上かを調べ、0.2以上であればステップＳ２０７へ進み、文字フラグmfを１に設定し、また0.2以上でなければステップＳ２０８へ進み、文字フラグmfを０に設定する。
【００２１】
次に、ステップＳ２０９において、ヒストグラム範囲start,end、その範囲の平均値av、skewの値から次のヒストグラム範囲start,endを再決定する演算範囲決定処理を行う。
【００２２】
図４は、実施形態における演算範囲決定処理を示すフローチャートである。まず、ステップＳ４０１において、その時点のskewの符号を調べ、その符号が負であればステップＳ４０２へ進み、また正であればステップＳ４０３へ進む。尚、ステップＳ４０２，Ｓ４０３の処理は同様であり、skewの値が±1.0に正規化されていることを利用し、その偏り（skew）の値に応じて領域を決定する。skewの値が負であればstart-av間の長さを、正であればav-end間の長さをそれぞれskewの割合でstart,endをavの値方向へ近づける処理を行う。その割合はskewの値が２乗で重み付けされているので、逆に平方根をとってsqrt(fabs(skew))とする。またskewの絶対値は1.0以下なので、値は1.0以下になる。従って、start,endの値が平均値avの値を越えてend,startの値に近づくことはない。
【００２３】
ここで図２に戻り、ステップＳ２１０において、ステップＳ２０９で決定したstart,endの範囲から二値化閾値thを求める閾値探索処理を行う。
【００２４】
図５は、実施形態における閾値探索処理を示すフローチャートである。まず、ステップＳ５０１において、ループカウンタＬを０に初期化する。そして、ステップＳ５０２において、その時のstart,end間の平均値AV、skewの値を演算し、ステップＳ５０３で、ループカウンタＬを＋１加算する。次に、ステップＳ５０４において、ループカウンタＬの値を調べ、カウンタ値が１５に達している場合はステップＳ５０５へ進む。このステップＳ５０５では、閾値探索の処理が収束しなかった場合であり、ここではその時の平均値AVの値を閾値thとして閾値探索処理を終了する。
【００２５】
また、ステップＳ５０４において、カウンタ値が１５に達していない場合にはステップＳ５０６へ進み、以下の条件１が成立するか否かを調べる。
【００２６】
mf==1  かつ
fabs(skew)＜0.0625  又は
(skew*sk0≧0.0)&&(fabs(sk0)≧fabs(sr*skew))
ここで、条件１が非成立の場合はステップＳ５０７へ進み、skewの値の絶対値を調べ、0.0625より小さければ、この閾値探索処理が収束した場合でありステップＳ５０８へ進み、その時の平均値AVの値を閾値thとして閾値探索処理を終了する。また、ステップＳ５０７において、skewの値の絶対値が0.0625以上であればステップＳ５０９へ進み、上述の演算範囲決定処理を行い、start又はendの値の再設定をしてステップＳ５０２へ戻り、上述の処理を繰り返す。
【００２７】
一方、上述のステップＳ５０６において、条件１が成立した場合は文字の二値品位を調整するための処理を行う。まずステップＳ５１０において、文字フラグｍｆを０にする。そして、ステップＳ５１１において、skewの符号を調べ、正ならステップＳ５１２へ進み、endの値をその時のAVの値に設定する。また、負ならステップＳ５１３へ進み、startの値をAVの値に設定する。そして、正負共にステップＳ５０２へ戻り、上述の処理を繰り返す。
【００２８】
上述の閾値探索処理が終了すると、図３に示すステップＳ２１１へ進み、sk0の符号を調べ、正であればステップＳ２１２へ進み、閾値探索処理で求めた閾値thが収束したか収束しなかったかを判断する。ここで、収束していればステップＳ２１３へ進み、閾値thが１回目の平均値AV0より小さいか判断し、小さくない場合はステップＳ２１４へ進み、startをAV0、endをend0に再初期化してステップＳ２０６へ戻る。また、ステップＳ２１３において、閾値thが１回目の平均値AV0より小さい場合はステップＳ２１５へ進み、求めた閾値thが１回目の平均値AV0から標準偏差SDの２倍以上離れているか否かを調べる。尚、本実施形態では、画像全体の標準偏差を利用してフォアグランドの割合を調整している。ここで、離れている場合はステップＳ２１６へ進み、startをstart0、endをthに再初期化してステップＳ２０６へ戻るが、離れていない場合は全処理を終了する。
【００２９】
一方、上述のステップＳ２１１において、sk0の符号が負であれば、上述した正の場合の処理と逆の処理を実行する。即ち、ステップＳ２１７において、閾値探索処理で求めた閾値thが収束したか収束しなかったかを判断し、収束していればステップＳ２１８へ進み、閾値thが１回目の平均値AV0より大きいか判断し、大きくない場合はステップＳ２１９へ進み、startをstart0、endをAV0に再初期化してステップＳ２０６へ戻る。また、ステップＳ２１８において、閾値thが１回目の平均値AV0より大きい場合はステップＳ２２０へ進み、求めた閾値thが１回目の平均値AV0から標準偏差SDの２倍以上離れているか否かを調べる。ここで、離れていない場合はステップＳ２２１へ進み、startをth、endをend0に再初期化してステップＳ２０６へ戻るが、離れている場合は全処理を終了する。
【００３０】
［変形例］
前述した演算範囲決定処理（図４）はこれだけに限らず、種々の変形例が可能である。以下、演算範囲決定処理の他の実施形態について詳細に説明する。
【００３１】
[演算範囲決定処理２]
まず、演算範囲決定処理２では、範囲を狭める割合をskewの平方根にしていたのをskewの絶対値に置き換えたものである。
【００３２】
即ち、図４に示したステップＳ４０２において、
start=ceil((double)start+(double)(av-start+1)*|skew|))とし、
ステップＳ４０３において、
end=floor((double)end-(double)(end-av+1)*|skew|))とする。
【００３３】
これにより、計算処理の負荷を軽くすることができる。
【００３４】
[演算範囲決定処理３]
次に、演算範囲決定処理３では、まずステップＳ４０２において、start-AV間のヒストグラムp[i]の総和Σp[i]を求め、
sqrt(|skew|)Σp[i]    (i=start..AV)
を計算する。そして、p[start]+p[start+1]+p[start+2]+…と順次計算していき、この値がsqrt(|skew|)Σp[i]の値を越える点を次のstartにする。
【００３５】
次に、ステップＳ４０３において、AV-end間のヒストグラムp[i]の総和Σp[i]を求め、
sqrt(|skew|)Σp[i]    (i=AV..end)
を計算する。そして、p[end]+p[end-1]+p[end-2]+…と順次計算していき、この値がsqrt(|skew|)Σp[i]の値を越える点を次のstartにする。
【００３６】
これにより、図２に示したステップＳ２０３の処理が不要になる。
【００３７】
[演算範囲決定処理４]
次に、演算範囲決定処理４では、まずステップＳ４０２において、start-AV間の(i-AV)(i-AV)p[i]の総和Σ(i-AV)(i-AV)p[i]を求め、
sqrt(|skew|)Σ(i-AV)(i-AV)p[i]    (i=start..AV)
を計算する。そして、(start-AV)(start-AV)p[start]+(start+1-AV)(start+1-AV)p[start+1]+…と順次計算していき、この値がsqrt(|skew|)Σ(i-AV)(i-AV)p[i]の値を越える点を次のstartにする。
【００３８】
次に、ステップＳ４０３において、start-AV間の(i - AV)(i - AV)p[i]の総和Σ(i-AV)(i-AV)p[i]を求め、
sqrt(|skew|)Σ(i-AV)(i-AV)p[i]    (i=AV..end)
を計算する。そして、(end-AV)(end-AV)p[end]+(end-1-AV)(end-1-AV)p[end-1]+…と順次計算していき、この値がsqrt(|skew|)Σ(i-AV)(i-AV)p[i]の値を越える点を次のendにする。
【００３９】
これにより、図２に示したステップＳ２０３の処理が不要になる。
【００４０】
以上説明したように、実施形態によれば、正規化したスキューを用いることによりスキャナ特性に依存しないで二値化閾値を求めることができる。更に、従来例でのスキュー値は３乗の計算が入るが、実施形態では２乗計算で済むため演算量を少なくできる。
【００４１】
尚、本発明は複数の機器（例えば、ホストコンピュータ，インタフェイス機器，リーダ，プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用してもよい。
【００４２】
また、本発明の目的は前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【００４３】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００４４】
プログラムコードを供給するための記憶媒体としては、例えばフロッピーディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００４５】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００４６】
更に、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００４７】
【発明の効果】
以上説明したように、本発明によれば、スキューの符号とその値の大きさとに応じて、演算範囲のstart側とend側のどちらを狭めるのかと狭める量との両方を決定することにより、入力画像の特性に依存しない二値化閾値を決定することが可能となる。
【図面の簡単な説明】
【図１】実施形態における画像処理装置の構成を示すブロック図である。
【図２】実施形態における二値化閾値決定処理を示すフローチャートである。
【図３】実施形態における二値化閾値決定処理を示すフローチャートである。
【図４】実施形態における演算範囲決定処理を示すフローチャートである。
【図５】実施形態における閾値探索処理を示すフローチャートである。
【符号の説明】
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  記憶装置
１０５  スキャナ
１０６  出力装置
１０７  入力装置
【図１】
0004478357.tif 000002
【図２】
0004478357.tif 000003
【図３】
0004478357.tif 000004
【図４】
0004478357.tif 000005
【図５】
0004478357.tif 000006