JPH09231054A - 数値演算装置及びその方法及びそのコンピュータプログラム製品 - Google Patents

数値演算装置及びその方法及びそのコンピュータプログラム製品

Info

Publication number
JPH09231054A
JPH09231054A JP8041638A JP4163896A JPH09231054A JP H09231054 A JPH09231054 A JP H09231054A JP 8041638 A JP8041638 A JP 8041638A JP 4163896 A JP4163896 A JP 4163896A JP H09231054 A JPH09231054 A JP H09231054A
Authority
JP
Japan
Prior art keywords
value
processing
block
image
calculation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP8041638A
Other languages
English (en)
Inventor
Hiroshi Mori
浩 森
Kazuhiro Saito
和浩 斎藤
Takeshi Makita
剛 蒔田
Osamu Yamada
修 山田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP8041638A priority Critical patent/JPH09231054A/ja
Priority to US08/807,606 priority patent/US6333788B1/en
Publication of JPH09231054A publication Critical patent/JPH09231054A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Processing Or Creating Images (AREA)
  • Facsimile Image Signal Circuits (AREA)

Abstract

(57)【要約】 【課題】 整数演算で画像処理の数値演算を行なうと、
小数部が切り捨てられ誤差が大きくなり精度が保てず、
浮動小数点演算で画像処理の数値演算を行なうと精度は
保てるが処理時間がかかってしまう。 【解決手段】 画像を処理する際の数値演算方法におい
て、演算値が予め設定した有効桁数より大きくなると予
測される場合は、有効桁数保存変数を用い演算値の桁数
を切り捨て、演算値が予め設定した有効桁数より小さく
なると予測される場合は、有効桁数保存変数を用い演算
値の桁数をくり上げることにより演算値を予め設定した
有効桁数内に収める。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は数値演算装置及びそ
の方法及びそのコンピュータプログラム製品に関し、例
えば、大きな値から小さい値へと数値を収束させる様
な、繰り返し演算を利用した画像処理を行なう際の数値
演算装置及びその方法及びそのコンピュータプログラム
製品に関する。
【0002】
【従来の技術】近年の画像処理技術の高度化はめざまし
く、フルカラー画像等の多値画像の処理や、多値画像内
の文字認識処理等が可能な画像処理など高度な数値演算
処理が必要とされる画像処理装置も普及してきている。
【0003】このような画像処理技術において、多値画
像の2値化処理における2値化閾値の決定においても高
速、高精度の要求される数値演算処理が不可欠になって
いる。
【0004】従来からコンピュータ上の数値演算方法に
は整数演算と浮動小数点演算がある。整数演算はコンピ
ュータの扱える整数有効数値(16bit整数で327
67〜−32768)内で高速に演算され、さらにコン
ピュータ内部の整数有効数値(CPUやシステムなどの
処理環境に依存する)内では、より高速に演算される。
浮動小数点演算は数値部と指数部を持った型の数値で行
われるので、大きな数値から、少数点以下の数値まで表
現できる。
【0005】
【発明が解決しようとしている課題】多値画像の2値化
処理における2値化閾値の決定においても整数演算、浮
動小数点演算を用いて画像のヒストグラムの統計的演算
で2値化閾値を決定することが要求される。
【0006】そして、この2値化閾値決定の演算法にお
いては、以下のような問題がある。
【0007】整数演算で画像処理の数値演算を行ってい
る場合、浮動小数点演算に比べ圧倒的に高速であるが、
割り算などで少数部が切り捨てられることによる誤差が
発生し、繰り返し演算に割り算が含まれている場合など
には誤差が大きくなりやすく精度が保てない。また整数
の幅に制限があり、制限を超えた大きな数値や、小数点
以下の数値は扱えない。
【0008】浮動小数点演算で画像処理の数値演算を行
っている場合、高精度を保つことができるが、演算処理
が遅く処理時間がかかってしまう。
【0009】本発明は上述した課題を解決するためにな
されたものであり、限られたコンピュータの扱える整数
の有効数値内で一定の精度を保ち、特に、大きな数値か
ら小さい数値まで収束させるような繰り返し演算の高速
化を可能にする、画像処理の際の数値演算装置及びその
方法及びそのコンピュータプログラム製品を提供するこ
とを目的とする。
【0010】
【課題を解決するための手段】上述した目的を達成する
ために、本発明の画像処理方法は以下の構成を備える。
【0011】即ち、画像を処理する際の数値演算方法に
おいて、演算値が予め設定した有効桁数より大きくなる
と予測される場合は、有効桁数保存変数を用い演算値の
桁数を切り捨て、演算値が予め設定した有効桁数より小
さくなると予測される場合は、有効桁数保存変数を用い
演算値の桁数をくり上げることにより、演算値を予め設
定した有効桁数内に収める。
【0012】又、本発明の画像処理装置は以下の構成を
備える。
【0013】即ち、画像を処理する際の数値演算装置に
おいて、演算値が予め設定した有効桁数より大きくなる
と予測される場合に、有効桁数保存変数を用い演算値の
桁数を切り捨てる第1演算手段と、演算値が予め設定し
た有効桁数より小さくなると予測される場合に、有効桁
数保存変数を用い演算値の桁数をくり上げる第2演算手
段とを有し、演算値を予め設定した有効桁数内に収め
る。
【0014】
【発明の実施の形態】以下、図面を参照して本発明に係
る実施の形態について詳細に説明する。
【0015】図1は、本実施の形態における2値化処理
を実行するシステム構成を示すブロック図である。図1
において、1は画像の2値化処理、文字認識処理などを
行う画像処理装置であり、2は画像を入力するスキャナ
等の画像入力装置、3は処理後の画像を表示する若しく
は処理後の画像を記録する画像出力装置である。
【0016】画像処理装置1において、4は画像入力装
置2とのインターフェースとなる入力部、5は処理中の
データを記憶するメモリ等の記憶部、6は入力画像の輝
度頻度(ヒストグラム)を累計する輝度頻度累計部であ
る。7は入力画像が文字画像かどうかを判別する画像特
徴判別部、8は入力画像のブロック単位の2値化閾値を
算出する2値化閾値算出部であり、9はブロック単位の
2値化閾値をもとに補間処理を行い画素単位の2値化閾
値を算出する補間処理部、10は補間処理部9において
算出された画素単位の2値化閾値を用いて2値化画像を
作成する2値化部である。11は文字領域として抽出さ
れた領域に対する文字認識処理を行う文字認識部、12
は文字領域以外に分離された領域に対する各種画像処理
や画像のレイアウト処理を行う画像処理部、13は画像
表示装置3とのインターフェースとなる出力部である。
これら各構成は、CPU,ROM,RAMにより構成さ
れる制御部15により統括的に制御される。
【0017】上述した構成をなす本実施の形態の画像処
理装置1において実行される文字認識処理について、以
下説明する。
【0018】図2は、本実施の形態の特徴である2値化
閾値決定方法を利用した文字認識処理を示すフローチャ
ートである。
【0019】まず、ステップS201ではスキャナなど
の画像入力装置2により、画像データを入力する。ここ
での入力は、8ビットの多値画像データとして行われ
る。続いてステップS202では、画像入力時に発生す
る画像入力装置2の電気的ノイズの除去や、原稿画像の
劣化、原稿の傾きなど、入力画像に対する補正を行う。
続いてステップS203においては、ステップS201
で入力された多値画像に対し、本実施の形態の特徴であ
るところの文字ブロック(つぶれ文字ブロック、かすれ
文字ブロック)の判別をし、それぞれに最適な2値化閾
値を決定して、該2値化閾値により2値画像を生成す
る。そして、ステップS204に進み、ステップS20
3において2値化された2値画像が、文字ブロックと判
別されたブロックであるか否かの判断をし、ステップS
205では、該文字ブロックを2値画像から切り出し、
該2値画像に対して文字認識処理を行い、認識された文
字コードを出力する。ステップS206では、未処理ブ
ロックが画像中にあるかの判断をし、ある場合はステッ
プS204へ、ない場合はステップS207へ進む。ス
テップS207では、文字ブロックと、非文字ブロック
とを合成し、原稿画像と同じレイアウトにする。
【0020】《2値化処理》次に、本実施の形態の特徴
であるところの文字ブロック(つぶれ文字ブロック、か
すれ文字ブロック)の判別をし、2値化処理を行うステ
ップS203について、図3のフローチャートを参照し
て詳細に説明する。
【0021】図3において、まずステップS301で8
ビットの多値画像を画像処理装置1内の記憶部5から不
図示のメモリ等に処理ブロックの単位(64画素×64
画素)ごとに入力する。尚、該多値画像は、スキャナー
などの画像入力装置2により、予め記憶部5に格納され
ているものとする。そして、ステップS302におい
て、文字ブロック(つぶれ文字ブロック、かすれ文字ブ
ロック)の判別をし、入力画像の処理ブロックの単位
(64画素×64画素)ごとに2値化のための閾値決定
処理を行う。つぶれ文字とは1文字の画数が多いため、
つぶれてしまっている文字、又かすれ文字とはうすくな
ってしまった文字のことである。本例ではこれらの文字
にも最適な閾値を割り当てることができる。ステップS
303では、文字フラグMFが「1」かどうかの判断
(処理中のブロックが文字ブロックかどうかの判断。詳
細後述)をする。その結果が、文字ブロックであればス
テップS305へ、文字ブロックでなければステップS
304へ進む。ステップS304では、閾値THを下限
値Lと上限値Hによる制限を行う。つまり、ステップS
302で決定された閾値THが、下限値Lよりも小さい
ときは閾値THをLで代表させ、上限値Hよりも大きい
ときは閾値THをHで代表させるような制限処理を行
う。尚、この下限値Lと上限値Hは、画像入力装置2の
特性により決定される値である。
【0022】ステップS305では、つぶれ文字フラグ
TFが「1」かどうかの判断(処理中のブロックがつぶ
れ文字ブロックかどうかの判断。詳細後述)をする。そ
の結果が、つぶれ文字ブロックであればステップS30
6へ、つぶれ文字ブロックでなければステップS307
へ進む。ステップS306では、閾値THの制限を行
う。つまり、ステップS302またはステップS304
で決定された閾値THに文字つぶれ防止用の定数TPを
かけるような制限処理を行う。ここで、定数TPは画像
入力装置2の特性により決定される値である。そして、
ステップS307では、入力画像の最後の処理ブロック
(64画素×64画素)かどうかの判断をし、最後の処
理ブロックであればステップS308へ進み、未処理ブ
ロックがあればS301へ戻る。ステップS308で
は、ステップS302、またはステップS304、また
はステップS306で決定されたブロック単位の閾値T
Hに基づきスムージング処理(詳細後述)を行い、画素
単位の閾値THを算出する。最後に、ステップS309
ではステップS308で算出された画素単位の閾値TH
を用い単純2値化処理を行い、この2値化処理を終え
る。
【0023】《閾値決定処理》次に、本実施の形態にお
ける2値化の閾値決定処理について、図4のフローチャ
ートを参照して詳細に説明する。
【0024】ステップS401において、パラメータS
TART、ENDにそれぞれ「0」、「255」をセッ
トする。START、ENDはそれぞれ、後段のステッ
プS402やステップS403で求める輝度値の統計量
の始点及び終点に対応する。また、閾値決定処理ループ
回数iに「0」をセットする。ステップS401では同
時に、処理ブロック(64画素×64画素)中の全画素
を用い、8ビット、即ち「0」から「255」までの各
デジタル値に対する頻度(ヒストグラム)を計算する。
【0025】ステップS402では、STARTからE
NDまでのデジタル値に対応する画素の平均値AVを算
出する。たとえば、START=0、END=255で
あれば、「0」から「255」の値を持つ画素の平均値
AVを算出し、START=0、END=109であれ
ば「0」から「109」の値を持つ画素の平均値AVを
算出する。
【0026】ステップS403では、STARTからE
NDまでの輝度値に対応する画素のスキュー値SKを算
出する。スキュー値とは、ヒストグラム分布の偏りを示
す統計量である。スキュー値の算出には、以下に示す
(1)式を用いる。
【0027】 SK=(Σ(Xi−AV)3)/D ・・・ (1) ここで、Xiは画素の輝度値である。また、Dは画像全
体の分散値であり、(2)式により算出される。
【0028】 D=Σ(Xi−AV)2 ・・・ (2)
【0029】上述した式(1)において、スキュー値は
各画素の輝度値と、その平均値との差分を3乗すること
により算出されるが、奇数乗であれば3乗に限定される
ものではない。
【0030】ステップS404では、1つの処理ブロッ
クにおける閾値決定処理ループ回数iの判断(i=0、
つまり最初のループかどうかの判断)を行う。iが
「0」であればステップS405へ、iが「0」以外で
あればステップS406へ進む。ステップS405で
は、処理中のブロックが「文字ブロック」かどうかの画
像特徴判別を行い(詳細後述)、ステップS414へ進
む。
【0031】ステップS406では(3)式に示すよう
にヒストグラムの偏りの大きさを判断する。
【0032】 −0.1<SK かつ SK<0.1 ・・・ (3) つまり、スキュー値SKの絶対値が「0.1」未満かの
判断を行う。ステップS406が真ならばステップS4
16へ、偽ならばステップS407へ進む。
【0033】ステップS407では、閾値決定処理ルー
プ回数iの判断を行い、iが「1」ならばステップS4
08へ、「1」以外ならステップS409へ進む。ステ
ップS408では、処理中のブロックが「つぶれ文字ブ
ロック」かどうかの判断と処理を行い(詳細後述)、ス
テップS409へ進む。ステップS409では、閾値決
定処理ループ回数iの判断を行い、iが「9」ならばス
テップS416へ、「9」以外ならステップS410へ
進む。ステップS410では、処理中のブロックが「か
すれ文字ブロック」かどうかの判断と処理を行い(詳細
後述)、ステップS411へ進む。ステップS411で
は、かすれ文字フラグKFが「1」かどうかの判断を
し、「1」ならばステップS416へ、「1」以外なら
ステップS412へ進む。
【0034】ステップS412では、以下に示す(4)
式によりヒストグラムの偏りの方向を判断する。
【0035】SK > 0 ・・・ (4)
【0036】ステップS412において(4)式が真
(ヒストグラムの偏りが平均値AVよりも大きい値の範
囲にある事を意味する)ならばステップS413へ進
み、偽(ヒストグラムの偏りが平均値AVよりも小さい
値の範囲にある事を意味する)ならばステップS414
へ進む。
【0037】ステップS413では、STARTに平均
値AVをセットし、ENDは変化させない。そして、ス
テップS415へ進む。ステップS414では、STA
RTは変化させず、ENDに平均値AVをセットする。
そして、ステップS415へ進む。ステップS415で
は、閾値決定処理ループ回数iに「1」を加え、そして
ステップS402に戻り、再びSTART値からEND
値までの平均値AVを算出する。
【0038】最後に、ステップS416では平均値AV
を、2値化閾値THとして設定し、この閾値決定処理を
終える。
【0039】以上説明したようにして本実施の形態にお
ける2値化処理が行われるが、式(3)、(4)で示し
た範囲は、これに限定されるものではない。
【0040】《数値演算処理》次に本実施の形態の平均
値AV算出処理(図4のS402)とスキュー値算出処
理(図4のS403)の2つの処理を一連の処理として
コンピュータ上で実現した例を図17のフローチャート
を参照して具体的に説明する。
【0041】ステップS1301において有効桁数保存
変数Seido1、Seido2を決定する。
【0042】Seido1は整数演算で少数部分の精度
を保つために演算値の桁数を繰り上げるように演算値に
掛ける変数で、コンピュータ内部の整数有効数値によっ
て決定される。本実施の形態では、コンピュータ内部整
数が16bitの場合8bit分の256、32bit
の場合16bit分の65536とする。本数値演算処
理は多値画像の8bitデータを扱うので、元の数値部
分を8bit以上確保するように桁数の繰り上げ幅(S
eido1)を決めている。
【0043】Seido2は整数演算で演算結果がコン
ピュータの扱える整数有効数値(本実施の形態では32
bit)を越える(オーバーフロー)を防ぐために演算
値の桁数を切り捨てるように演算値を割る変数で、平均
値AV算出とスキュー値算出を一単位とする閾値決定処
理ループ回数iの数値によって決定される。閾値決定処
理ループ回数を重ねるにつれSTART、END間が狭
まりヒストグラムの要素数が減り、オーバーフローの可
能性が少なくなるため、iの値により決定するようにし
ている。本実施の形態では、閾値決定処理ループ回数i
の数値が大きくなるに従い、演算値の桁数切り捨て量を
減少させるように以下の式によりSeido2の値を決
定する。
【0044】 Seido2=2^(10−i) ・・・ (8) この値は閾値決定処理ループ回数ごとの最大演算桁数の
理論上のbit数のオーバーフロー桁数により決めてい
る。
【0045】輝度値Kにおけるヒストグラムの値をHI
ST〔K〕とすると、平均AVは以下の式で表わせる。
【0046】 AV=(Σ(HIST〔K〕×K))/(Σ(HIST〔K〕))…(9)
【0047】ステップS1302では累計変数Sum1
=Σ(HIST〔K〕×K)と累積変数num=Σ(H
IST〔K〕)を求め、ステップS1303ではSum
1をnumで割り、平均値AVを求める。
【0048】ステップS1304ではSum1にステッ
プS1301で決定したSeido1を掛け、ステップ
S1305ではスキュー値算出処理用の精度確保平均値
AV′を求める。
【0049】本実施の形態の式(1)(2)を演算処理
しやすい形に変えたものが以下のステップS1306〜
S1313である。
【0050】ステップS1306はスキュー値算出処理
の処理ループの輝度値Kの初期値STARTを設定す
る。
【0051】ステップS1307では中間変数Tmpを
求めている。
【0052】Tmp=(K×Seido1−AV′)×
(K×Seido1−AV′)の輝度値Kには精度確保
平均値AV′と同様にステップS1301で決定したS
eido1を掛ける。
【0053】ステップS1308ではTmpをステップ
S1301で決定したSeido2で割る。例えばi=
1で、64×64の処理ブロック単位、8bit画像、
8bit分の精度確保の場合、次のステップで最大演算
桁数が理論上32bitを超え40bitになるため、
このステップでオーバーフローを防ぐ処理を行う。この
ときSeido2の値が10なのは、処理ブロック単位
に余裕を持たせるためである。
【0054】ステップS1309ではTmpにヒストグ
ラムの値HIST〔K〕を掛ける。
【0055】ステップS1310では累積変数Sum2
にTmpを加え、累積変数Sum3にはTmp×(K×
Seido1−AV′)を加える。
【0056】ステップS1311はK=ENDか調べ、
スキュー値算出処理の処理ループ終了の判定を行う。
【0057】ステップS1312はKに1を加えステッ
プS1307に戻る。
【0058】ステップS1313ではSum3をSum
2で割ってスキュー値SKを求め、分子分母間(Sum
3とSum2)での有効桁数保存変数の不均衡(分子3
乗項に対し分母2乗項)を解消するため、ステップS1
301で決定したSeido1で割る。
【0059】以上により数値演算処理を終わる。
【0060】以上説明した様に本実施の形態の平均値A
V算出処理とスキュー値算出処理が行われるが、ここで
示した有効桁数保存変数Seido1、Seido2の
決定条件はこれに限定されるものではない。
【0061】以上説明したように本実施の形態における
数値演算処理によれば、コンピュータの処理環境によっ
て決めた有効桁数保存変数を演算値に掛けることにより
整数演算でも小数点以下の精度を保つことを可能にし、
また平均値算出、スキュー値算出を一単位として各単位
ごとに求めた有効桁数保存変数で演算値を割ることで演
算結果がコンピュータの扱える整数有効数値を超えるこ
となく演算することが可能となる。これにより、一定の
精度を保ちつつ、高速な画像処理の数値演算方法を得る
ことができる。
【0062】《画像特徴判別処理》次に、ステップS4
05における画像特徴判別処理について、図5を用い詳
細に説明する。ステップS501では、処理中のブロッ
クが「文字ブロック」かどうかを示す、文字フラグMF
に「0」をセットする。また、閾値決定処理ループにお
ける最初のスキュー値を表わすSK0に酢きゅー値SK
をセットする(これは、この画像特徴判別処理は閾値決
定処理ループにおける最初のループのみ処理が行われる
からである)。ステップS502では、処理中のブロッ
クが「文字ブロック」かどうかの判断を(5)式により
行う。
【0063】SK0 < MH ・・・ (5) ここで、MHは処理中のブロックが「文字ブロック」か
どうかを示す値であり、ここでは、「MH=−20.
0」とする。ステップS502において(5)式が真な
らばステップS503へ、偽ならばこの画像特徴判別処
理を終える。ステップS503では、処理中のブロック
が「文字ブロック」であることを示す、文字フラグMH
に「1」をセットし、この画像特徴判別処理を終える。
【0064】以上説明したようにして本実施の形態にお
ける画像特徴判別処理が行われるが、式(5)で示した
条件は、これに限定されるものではない。
【0065】《つぶれ文字処理》次に、ステップS40
8におけるつぶれ文字処理について、図6を用い詳細に
説明する。ステップS601では、処理中のブロックが
「つぶれ文字ブロック」かどうかを示す、つぶれ文字フ
ラグTFに「0」をセットする。また、処理中のブロッ
クのヒストグラムの偏りが大きいことを示すフラグPF
に「0」をセットする。そしてステップS602で、閾
値決定処理ループにおける最初のループのスキュー値S
K0と、処理中のループのスキュー値SKが共にマイナ
スであるかの判断をし、共にマイナスであれば、ステッ
プS603でフラグPFに「1」をセットする。ステッ
プS604では、文字フラグMFが「 1」かどうかの
判断(つまり処理中のブロックが文字ブロックかどうか
の判断)を行い、「1」ならばステップS605へ、
「1」以外ならこのつぶれ文字処理を終える。ステップ
S605では、処理中のブロックが「つぶれ文字ブロッ
ク」かどうかの判断を(6)式により行う。
【0066】 SK0/SK < −SR ・・・ (6) ここで、−SRは処理中のブロックが「つぶれ文字ブロ
ック」かどうかを示す値であり、ここでは、「−SR=
−3.0」とする。ステップS605において(6)式
が真ならばステップS606へ、偽ならばこのつぶれ文
字処理を終える。ステップS606では、処理中のブロ
ックが「つぶれ文字ブロック」であることを示す、つぶ
れ文字フラグTFに「1」をセットし、このつぶれ文字
処理を終える。
【0067】以上説明したようにして本実施の形態にお
ける、つぶれ文字処理が行われるが、式(6)で示した
条件は、これに限定されるものではない。
【0068】《かすれ文字処理》さらに、ステップS4
10におけるかすれ文字処理について、図7を用い詳細
に説明する。ステップS701では、処理中のブロック
が「かすれ文字ブロック」かどうかを示す、かすれ文字
フラグKFに「0」をセットする。ステップS702で
は、文字フラグMFが「1」かどうかの判断(処理中の
ブロックが文字ブロックかどうかの判断)を行い、
「1」ならばステップS703へ、「1」以外ならこの
かすれ文字処理を終える。ステップS703では、フラ
グPFが「1」かどうかの判断をし、「1」ならばステ
ップS704へ、「1」以外ならこのかすれ文字処理を
終える。ステップS704では、処理中のブロックが
「かすれ文字ブロック」かどうかの判断を(7)式によ
り行う。
【0069】 SK0/SK > SR ・・・ (7) ここで、SRは処理中のブロックが「かすれ文字ブロッ
ク」かどうかを示す値であり、ここでは、「SR=3.
0」とする。ステップS704において(7)式が真な
らばステップS705へ、偽ならばこのかすれ文字処理
を終える。ステップS705では、処理中のブロックが
「かすれ文字ブロック」であることを示す、かすれ文字
フラグKFに「1」をセットし、このかすれ文字処理を
終える。
【0070】以上説明したようにして本実施の形態にお
けるかすれ文字処理が行われるが、式(7)で示した条
件は、これに限定されるものではない。
【0071】以下、具体的な画像の例を参照し、本実施
の形態の閾値決定処理について更に詳細に説明する。
【0072】まず、図8に示すヒストグラムの例を用い
て、本実施の形態における図4の2値化閾値THの決定
処理について説明する。
【0073】図8は、つぶれ文字画像(8ビット入力)
のヒストグラムを示したものである。図8において、横
軸は、左端が「0」即ち黒、右端が「255」即ち白を
表わす輝度のデジタル値であり、縦軸は、各デジタル値
の頻度を表わしている。図9は、図8に示す様なヒスト
グラムを有する画像に対して、上述した図4で示す2値
化処理においてステップS402とS403で示した処
理の際の、各パラメータの値の変化を示す図である。
尚、図9において示される各パラメータ値は、ステップ
S402及びS403を通過する回数によって、それぞ
れ示されている。
【0074】まず、ステップS402及びS403を通
過する1回目の処理(閾値決定処理ループ回数i=0)
では、START=0、END=255で平均値AV、
統計量SKを計算し、それぞれ「109」、「−27.
4」という値を得る。そして、i=0であるので、ステ
ップS404からステップS405へ進む。ステップS
405の画像特徴判別処理では、(5)式により統計量
SKが「−20.0」未満であるため真となり、文字フ
ラグMFに「1」がセットされ、ステップS414でS
TART=0、END=109が設定される。
【0075】続いて2回目の処理(i=1)では、ST
ART=0、END=109における平均値AV、統計
量SKを計算し、それぞれ「62」、「8.9」という
値を得る。統計量SKが「0.1」を超えるため、ステ
ップS406からステップS407へ進み、i=1であ
るのでステップS408へ進む。ステップS408で
は、スキュー値SKがプラスのため、フラグPFは
「0」のままとなる。そして、(6)式の結果が「−
3.08(=−27.4/8.9)」と真なので、つぶ
れ文字フラグTFに「1」がセットされる。そして、ス
テップS410では、フラグPFが「0」のままなので
かすれフラグKFは「0」のままである。さらに、スキ
ュー値SKがプラスの為、ステップS413でSTAR
T=62、END=109が設定される。
【0076】続いて3回目の処理(i=2)では、ST
ART=62、END=109における平均値AV、統
計量DKを計算し、それぞれ「84」、「1.9」とい
う値を得る。この場合は、統計量SKが「0.1」を超
えるため、ステップS407、ステップS409へと進
む。そして、スキュー値SKがプラスの為、ステップS
413でSTART=84、END=109が設定され
る。
【0077】続いて4回目の処理(i=3)では、ST
ART=84、END=109における平均値AV、統
計量SKを計算し、それぞれ「96」、「0.6」とい
う値を得る。この場合は、統計量SKが「0.1」を超
えるため、処理が続き、スキュー値SKがプラスの為、
ステップS413でSTART=96、END=109
が設定される。
【0078】続いて5回目の処理(i=4)では、ST
ART=96、END=109における平均値AV、統
計量SKを計算し、それぞれ「102」、「−0.3」
という値を得る。この場合は、統計量SKが「−0.
1」未満のため、処理が続き、スキュー値SKがマイナ
スの為、ステップS414でSTART=96、END
=102が設定される。
【0079】続いて6回目の処理(i=5)では、ST
ART=96、END=102における平均値AV、統
計量SKを計算し、それぞれ「98」、「0.3」とい
う値を得る。この場合は、統計量SKが「0.1」を超
えるため、処理が続き、スキュー値SKがプラスの為、
ステップS413でSTART=98、END=102
が設定される。
【0080】続いて7回目の処理(i=6)では、ST
ART=98、END=102における平均値AV、統
計量SKを計算し、それぞれ「99」、「0.4」とい
う値を得る。この場合は、統計量SKが「0.1」を超
えるため、処理が続き、スキュー値SKがプラスの為、
ステップS413でSTART=99、END=102
が設定される。
【0081】続いて8回目の処理(i=7)では、ST
ART=99、END=102における平均値AV、統
計量SKを計算し、それぞれ「100」、「0.2」と
いう値を得る。この場合は、統計量SKが「0.1」を
超えるため、処理が続き、スキュー値SKがプラスの
為、ステップS413でSTART=100、END=
102が設定される。
【0082】続いて9回目の処理(i=8)では、ST
ART=100、END=102における平均値AV、
統計量SKを計算し、それぞれ「101」、「−0.
2」という値を得る。この場合は、統計量SKが「−
0.1」未満のため、処理が続き、スキュー値SKがマ
イナスの為、ステップS414でSTART=100、
END=101が設定される。
【0083】続いて10回目の処理(i=9)では、S
TART=100、END=101における平均値A
V、統計量SKを計算し、それぞれ「100」、「0.
2」という値を得る。この場合は、統計量SKが「0.
1」を超えるが、閾値決定処理ループ回数iが「9」の
ため、ステップS409における判断により、ステップ
S416へと進み、閾値THに平均値AVである「10
0」をセットし、この閾値決定処理を終える。ただし、
この例におけるブロックは、つぶれ文字フラグTFに
「1」がセットされているため、図3のステップS30
5の判断が真となり、ステップS306で閾値に制限を
受け、THには「85(=100×0.85)」がセッ
トされ、ステップS308での閾値THのスムージング
処理の後、ステップS309で2値化される。(この場
合TPに「0.85」がセットされている。)そして、
2値化された画像は記憶部5に格納される。
【0084】次に、図10に示すヒストグラムの例を用
いて、本実施の形態における図4の2値化閾値THの決
定処理について説明する。
【0085】図10は、かすれ文字画像(8ビット入
力)のヒストグラムを示したものである。図11は、図
10に示す様なヒストグラムを有する画像に対して、上
述した図4で示す2値化処理においてステップS402
とS403で示した処理の際の、各パラメータの値の変
化を示す図である。尚、図11において示される各パラ
メータ値は、ステップS402及びS403を通過する
回数によって、それぞれ示されている。
【0086】まず、ステップS402及びS403を通
過する1回目の処理(閾値決定処理ループ回数i=0)
では、START=0、END=255で平均値AV、
統計量SKを計算し、それぞれ「130」、「−60.
2」という値を得る。そして、i=0であるので、ステ
ップS404からステップS405へ進む。ステップS
405の画像特徴判別処理では、(5)式により統計量
SKが「−20.0」未満であるため真となり、文字フ
ラグMFに「1」がセットされ、ステップS414でS
TART=0、END=130が設定される。
【0087】続いて2回目の処理(i=1)では、ST
ART=0、END=130における平均値AV、統計
量SKを計算し、それぞれ「95」、「−19.3」と
いう値を得る。統計量SKが「0.1」を超えるため、
ステップS406からステップS407へ進み、i=1
であるのでステップ408へ進む。ステップS408で
は、スキュー値SK、SK0が共にマイナスのため、フ
ラグPFに「1」がセットされる。そして、(6)式の
結果が「3.11(=−60.2/−19.3)」と偽
なので、つぶれ文字フラグTFは「0」のままとなる。
そして、ステップS410のかすれ文字処理では、文字
フラグMF、フラグPF共に「1」なので、ステップS
704で(7)式の計算を行い、結果が「3.11(=
−60.2/−19.3)」と真なので、かすれ文字フ
ラグKFに「1」をセットする。かすれフラグKFが
「1」なので、ステップS411からステップS416
へと進み、閾値THに平均値AVの「95」をセット
し、この閾値決定処理を終える。そして、図3のステッ
プS308での閾値THのスムージング処理の後、ステ
ップS309で2値化され、2値化された画像は記憶部
5に格納される。
【0088】《スムージング処理》では、図3のステッ
プS308のスムージング処理の説明を図12〜図16
を用いて説明する。
【0089】図12は、図3のステップS308のスム
ージング処理の構成を最も良く示すフローチャートであ
る。図12において、ステップS1201からステップ
S1204までは、ブロック単位で行なうスムージング
処理の各種パラメータの設定を行なうステップであり、
ステップS1201は、スムージングを行なうブロック
の垂直方向スムージング領域の設定、ステップS120
2は、スムージングを行なうブロックの水平方向スムー
ジング領域の設定、ステップS1203は、スムージン
グを行なうブロックの垂直方向スムージングステップの
設定、ステップS1204は、スムージングを行なうブ
ロックの水平方向のスムージングステップの設定を行な
う。そして、ステップS1205からステップS120
9までは、ステップS1201からステップS1204
までの設定に基づきブロック単位で2値化閾値のスムー
ジングを実行するステップである。ステップS1205
は、スムージング処理ブロック画像の抽出を行ない、ス
テップS1206は、スムージングを行なうブロックの
4隅の閾値の設定、ステップS1207は、垂直方向ス
ムージング処理、ステップS1208は、水平方向スム
ージング処理を行なう。そして、ステップS1209で
は未処理のスムージングを行なうブロックがあるか否か
を判断し、未処理のブロックがある場合は、ステップS
1205に行き、スムージング処理を継続し、未処理の
スムージングを行なうブロックがない場合は、終了す
る。
【0090】以下、各ステップの詳細を行なうために、
ステップS301〜S307までのループにおけるブロ
ック単位の閾値を算出するブロックとスムージング処理
を行なうブロックとの関係について説明したあと、ステ
ップS1201〜ステップS1209までの各ステップ
の詳細を説明する。
【0091】図13は、図3のステップS301〜S3
07までのループにおけるブロック単位の閾値を算出す
るブロックの単位を示しているもので、左上隅から64
×64画素毎にブロックが区切られており、B11〜B
nmとブロックに番号が示されている。以下、ステップ
S301〜S307までのブロック単位の閾値の算出ル
ープをブロック閾値算出ループと呼び、その結果得られ
た閾値をブロック閾値と呼ぶ。
【0092】図14は、ブロック閾値算出ループにて算
出された2値化のためのブロック閾値と画素単位の閾値
を算出するためのスムージング処理の単位となるブロッ
クとの関係を示した図である。図14において、細い実
線は図13のブロック分けと同様のもので、左上第1画
素を起点とした64×64のブロック分けを示す。ブロ
ック閾値算出ループでは、ブロック閾値はこの細い実線
で分割されたブロック単位で算出されるので、ブロック
閾値はそのブロックを代表する閾値と考えることができ
る。そこで、この細い実線で分割されたブロックの中心
点、即ち、太い点線の交点がブロック閾値算出ループよ
り得られたブロック閾値とし、ステップS308のスム
ージング処理では、その新たに太い点線で分割されたブ
ロック単位で、各太い点線で分割されたブロックの4隅
の閾値に基づき補間処理することにより、その太い点線
で分割されたブロックの画素単位の閾値を算出する。以
下、この太い点線で分割されたブロックをスムージング
ブロックと呼ぶ。
【0093】つまり、ステップS308のスムージング
処理では、図14における太い点線で分割されたBL1
1、BL12、...BL1(m−1),BL1m,B
L21,bl22,...BLn(m−1),BLnm
を新たにスムージング処理のためのスムージングブロッ
クと定義し、各ブロックの交点、即ち、太い点線の交点
には、図中に示しているようなブロック閾値を定義す
る。例えば、BL11の4隅の閾値は、TH11,TH
11,TH11,TH11であり、BL22の4隅の閾
値は、TH11,TH12,TH21,TH22であ
る。そして、スムージングブロックにおいて、その4隅
の閾値により、垂直方向、又は、水平方向の線形補間を
行なう。たとえば、BL22のスムージング処理は、T
H11,TH12,TH21,TH22の4つの閾値に
より垂直水平方向の線形補間がおこなわれる。
【0094】さて、図12のステップS1201からS
1204までを、図15を用いて説明する。
【0095】図15において、TH_TL,TH_T
R,TH_BL,TH_BRは、そのスムージングブロ
ックにおける4隅のブロック閾値を示し、各スムージン
グブロックにおけるTH_TL,TH_TR,TH_B
L,TH_BRの値とブロック閾値算出ループより算出
されたブロック閾値との関係は、前記に説明した通りで
ある。
【0096】ステップS1201は、垂直方向スムージ
ング領域の設定を行なう。垂直方向スムージング領域と
は、垂直方向の補間演算を行なう領域であり、図15に
示されているように、V1とV2によって設定されてい
る。例えば、V1=1,V2=64の場合、垂直方向補
間演算は全領域に対して行なわれる、また、V1=1
7,V2=48の時は、スムージングブロックにおい
て、第1行から第16行までは、垂直方向の補間演算が
行なわれず第1行の閾値が繰り返し用いられる、第17
行から第48行までは、TH_TL,TH_TR,TH
_BL,TH_BRを用いて垂直方向の補間演算が行な
われ、そして、第49行から第64行までは、垂直方向
の補間演算が行なわれず、第49行の値が繰り返し用い
られる。
【0097】ステップS1202は、水平方向のスムー
ジング領域の設定を行なう。水平方向のスムージング領
域とは、水平方向の補間演算を行なう領域であり、図1
5に示されているように、H1とH2によって設定され
る。例えば、H1=1,H2=64の場合、水平方向補
間演算は全領域に対して行なわれる、また、H1=1
7,H2=48の時は、スムージングブロックにおい
て、第1列から第16列までは、水平方向の補間演算が
行なわれず第1列の閾値が繰り返し用いられる、第17
列から第48列までは、TH_TL,TH_TR,TH
_BL,TH_BRを用いて水平方向の補間演算が行な
われ、そして、第49列から第64列までは、水平方向
の補間演算が行なわれず、第49列の値が繰り返し用い
られる。
【0098】従って、図15において、(0,0)を左
上隅,(H1,V1)を右下隅とした四角形領域は、T
H_TLの値が繰り返され、(H2,0)を左上隅,
(64,V1)を右下隅とした四角形領域は、TH_T
Rの値が繰り返され、(0,V2)を左上隅,(H1,
64)を右下隅とした四角形領域は、TH_BLの値が
繰り返され、(H2,V2)を左上隅,(64,64)
を右下隅とした四角形領域は、TH_BRの値が繰り返
される。(0,V1)を左上隅,(H1,V2)を右下
隅とした四角形領域と(H2,V1)を左上隅,(6
4,V2)を右下隅とした四角形領域は、垂直方向の補
間演算のみが行われ、(H1,0)を左上隅,(H2,
V1)を右下隅とした四角形領域と(H1,V2)を左
上隅,(H2,64)を右下隅とした四角形領域は、水
平方向の補間演算のみが行われる。そして、(H1,V
1)を左上隅,(H2,V2)を右下隅とした四角形領
域は、垂直方向と水平方向の両方の補間演算が行われ
る。
【0099】以上説明したように、垂直、水平方向のス
ムージング領域を小さくすればするほど、スムージング
のための補間演算回数が減り、スムージング処理のため
の計算時間を短くすることができる、しかし、スムージ
ング領域を小さくすればするほど、ブロックの境界の画
像データの変化が急峻となるため、ブロック歪みが出や
すくなるという特性を持つ。本実施の形態では、この領
域設定が可変であるため、入力装置や入力画像の解像度
に最適なスムージング領域の設定が可能となる。
【0100】ステップS1203は、垂直方向スムージ
ングステップの設定を行なう。垂直方向スムージングス
テップとは、ステップS1201で設定された垂直方向
のスムージング領域内の補間演算を何画素おきに演算す
るかを示す値であり、VSTEPによって設定される。
例えば、垂直方向スムージングステップVSTEPが1
の時は、1画素毎に補間演算を行ない、4の時は、4画
素おきに行なう。そして、複数画素おきに補間演算を行
なった場合、その補間演算により得られた値と値の間の
値は、補間演算によって得られた値を繰り返して用い
る。例えば、V1=1,V2=64で垂直方向スムージ
ングステップVSTEPが16の場合、第1行、第17
行、第33行、第49行の値が、4隅のブロック閾値か
ら補間演算によって算出される。そして、第2行から1
6行までは、第1行の値が繰り返され、第18行から第
32行までの値は、第17行の値が繰り返され、第34
行から第48行までの値は、第33行の値が繰り返さ
れ、第50行から第64行までの値は、第49行の値が
繰り返される。
【0101】ステップS1204は、水平方向スムージ
ングステップの設定を行なう。水平方向スムージングス
テップとは、ステップS1202で設定された水平方向
のスムージング領域内の補間演算を何画素おきに演算す
るかを示す値であり、HSTEPによって設定される。
例えば、水平方向スムージングステップHSTEPが1
の時は、1画素毎に補間演算を行ない、4の時は、4画
素おきに行なう。そして、複数画素おきに補間演算を行
なった場合、その補間演算により得られた値と値の間の
値は、補間演算によって得られた値を繰り返して用い
る。例えば、H1=1,H2=64で水平方向スムージ
ングステップHSTEPが16の場合、第1列、第17
列、第33列、第49列の値が、4隅のブロック閾値か
ら補間演算によって算出される。そして、第2列から1
6列までは、第1列の値が繰り返され、第18列から第
32列までの値は、第17列の値が繰り返され、第34
列から第48列までの値は、第33列の値が繰り返さ
れ、第50列から第64列までの値は、第49列の値が
繰り返される。
【0102】従って、垂直、水平方向のスムージングス
テップを小さくすればするほど、スムージングのための
補間演算回数が減り、スムージング処理のための計算時
間を短くすることができる、しかし、スムージングステ
ップを小さくすればするほど、スムージング領域の閾値
の変化が粗くなるため、ブロック歪みが出やすくなると
いう特性を持つ。本実施の形態では、この領域設定が可
変であるため、入力装置や入力画像の解像度に最適なス
ムージングステップの設定が可能となる。
【0103】次に、ステップS1205からステップS
1209までの補間演算を行なうループの説明を行なう
前に、図15を用いて、垂直方向と水平方向の補間演算
方法を説明した後で、補間演算ループの説明を行なう。
図15に於いて、垂直方向の補間演算に関し、TH_T
LとTH_BLを用いた垂直方向補間処理結果をVLi
(i=1,2,...,(V2−V1+1)/VSTE
P)とし、HT_TRとTH_BRを用いた垂直方向補
間処理結果をVRi(i=1,2,...,(V2−V
1+1)/VSTEP)とすると、VLi,VRiは、 VLi=TH_TL+(i−1)*(TH_BL−TH_TL)/((V2− V1+1)/VSTEP) ... (12−1) VRi=TH_TR+(i−1)*(TH_BR−TH_TR)/((V2− V1+1)/VSTEP) ... (12−2) と表すことができる。そして、このVLiとVRiを用
いて各行の水平方向補間処理を行なう。その補間結果を
Hij(i=1,2,...,(V2−V1+1)/V
STEP,j=i=1,2,...,(H2−H1+
1)/HSTEP)とすると、Hijは、 Hij=VLi+(j−1)*(VRi−VLi)/((H2−H1+1)/ HSTEP)...(12−3) と表すことができる。ここで、(V2−V1+1)/V
STEPは、垂直方向の1ライン当たりの補間演算回数
を、(H2−H1+1)/HSTEPは、水平方向の1
ラインあたりの補間演算回数を示す。
【0104】V1=1,V2−64,H1=1,H2=
64,VSTEP=1,HSTEP=1で、TH_TL
=32,TH_TR=96,TH_BL=96,TH_
BR=160とすると、上記(12−1)式、(12−
2)式、(12−3)式からスムージングブロック内の
閾値を算出すると図16のようになる。
【0105】次に、ステップS1205からステップS
1209までのループの処理について詳細に説明する。
このループは、図14に示したBL11、BL1
2、...BL1(m−1),BL1m,BL21,B
L22,...BLn(m−1),BLnmのスムージ
ングブロック毎に処理するループである。 ・ステップS1205において、BL11の画像データ
を抽出する。 ・ステップS1206にて、その4隅の閾値が、TH_
TL=TH11,TH_TR=TH11,TH_BL=
TH11,TH_BR=TH11のように設定される。 ・ステップS1207では、垂直方向のスムージング処
理を行なうが、HT_TLとTH_BLの値が同じで、
TH_TRとTH_BLの値が同じため、垂直方向の補
間演算は行なわれず、同じ値TH11が繰り返される。 ・ステップS1208では、水平方向の補間処理に関し
ても左端と右端の値が同じため、水平方向の補間演算は
行なわれず、同じ値TH11が繰り返される。 ・ステップS1209では、未処理ブロックがあるので
ステップS1205に進む。
【0106】次にスムージングブロックBL12の処理
が行なわれる。 ・ステップS1205では、次のスムージングブロック
BL12の画像データが抽出される。 ・ステップS1206では、4隅のブロック閾値TH_
TL=TH11,TH_TR=TH12,TH_BL=
TH11,TH_BR=TH12が設定される。 ・ステップS1207では、TH_TLとTH_BL、
そして、TH_TRとTH_BRが同じ値のため、垂直
方向の補間演算は行なわれず、VLiではTH11が、
VRiではTH12が繰り返される。 ・ステップS1208では、上記(12−3)式に基づ
き、水平方向の補間演算が行なわれる。ただし、i=
1,2,...,(V2−V1+1)/VSTEPにお
いて、常にVLi=TH11,VRi=TH12である
ため、Hijの値は、iが変化しても同じとなる。従っ
て、i=2以降は、i=1の時の値H1j(j=1,
2,...,(H2−H1+1)/HSTEP)が繰り
返し用いられる。 ・ステップS1209では、未処理ブロックがあるので
ステップS1205に進む。 以下、上記スムージングブロックBL12と同様の処理
がスムージングブロックBL13,BL14,...,
BL1mまで繰り返される。
【0107】次にスムージングブロックBL21の処理
が行なわれる。 ・ステップS1205では、次のスムージングブロック
BL21の画像データが抽出される。 ・ステップS1206では、4隅のブロック閾値TH_
TL=TH11,TH_TR=TH11,TH_BL=
TH21,TH_BR=TH21が設定される。 ・ステップS1207では、上記(12−1)式に基づ
きVLiが、上記(12−2)式に基づきVRiの補間
演算が行なわれ、VLi,VRiが求められる。 ・ステップS1208では、TH_TLとTH_TR、
そして、TH_BLとTH_BRが同じためVLiとV
Riの値が、i=1,2,...(V2−V1+1)/
VSTEPの全てにおいて、同じとなるためi=1の時
のみ、水平方向の補間演算は行なわれず、VLiの値が
Hij(j=1,2,...,(H2−H1+1)/H
STEP)が繰り返し用いられる。そして、この繰り返
しが、i=1,2,...(V2−V1+1)/VST
EPまで行なわれる。 ・ステップS1209では、未処理ブロックがあるので
ステップS1205に進む。
【0108】次にスムージングブロックBL22の処理
が行なわれる。 ・ステップS1205では、次のスムージングブロック
BL22の画像データが抽出される。 ・ステップS1206では、4隅のブロック閾値TH_
TL=TH11,TH_TR=TH12,TH_BL=
TH21,TH_BR=TH22が設定される。 ・ステップS1207では、上記(12−1)式に基づ
きVLiが、上記(12−2)式に基づきVRiの補間
演算が行なわれ、VLi,VRiが求められる。 ・ステップS1208では、上記(12−3)式に基づ
き、水平方向の補間演算が行なわれ、Hijが求められ
る。 ・ステップS1209では、未処理ブロックがあるので
ステップS1205に進む。
【0109】以下、上記と同様の処理がBLnmまで繰
り返されて、画像全域の2値化閾値のステップS308
のスムージング処理が終了する。
【0110】この様に本実施の形態の閾値決定方法によ
れば、多値画像中のブロックごとに輝度頻度を算出し、
該輝度頻度に基づいてブロック単位の2値化閾値を算出
し、該ブロック単位の2値化閾値を補間することで画素
単位の2値化閾値を算出することにより、即ち、画像中
のブロック単位で対象物と背景濃度の間に適切な閾値を
自動的に設定し、さらに画素単位で2値化閾値を自動的
に設定することが可能になる。これにより、画像中の文
字部分/それ以外の部分それぞれに対し、背景から対象
物を適切に分離し、かつブロック歪の無い2値化画像を
得ることができる。
【0111】《スムージング処理の他の例》前記実施の
形態では、スムージング処理を実施するために、垂直方
向のスムージング処理を行った後に水平方向のスムージ
ング処理を行っているが、この順番はこれに限らず、水
平方向のスムージング処理の後で垂直方向のスムージン
グ処理を実施してもよい。
【0112】また、前記実施の形態では、スムージング
処理を実施するためスムージングブロックを定義し、ス
ムージングブロックごとに補間演算を行なっているが、
この演算順序はこれに限らず、上下左右、様々に分割し
て、スムージング処理を実現しても良い。例えば、全画
像領域の第1ラインの補間演算を行なった後に、第2ラ
イン、第3ラインとラスター順次で行っても良い。さら
に、実施の形態で定義したスムージングブロックのBL
21,BL22,...,BL2m,BL3
1,...,BLnmまでを上下2つに分けて、 BL11,BL12,...,BL1m BL21上,BL22上,...,BL2m上 BL21下,BL22下,...,BL2m下 BL31上,BL32上,...,BL3m上 BL31下,BL32下,...,BL3m下 ・・・・・・・・・・・・ BLn1下,BLn2下,...,BLnm下 とスムージングをすることもできる。
【0113】このとき、スムージングパラメータをV1
=33,V2=64,H1=1,H2=64と設定し、
スムージングブロックの第1行から第32行までと第3
3行からスムージングブロックの最終行までとで上下に
2つに分けると、スムージングブロックの上側は、TH
_TLとTH_TRから水平方向のスムージングのみを
行ない、下側はTH_TL,TH_TR,TH_BL,
TH_BRの4つから垂直水平方向のスムージングを行
なう。この場合は、BL11,BL12,...,BL
1m,BL21上,...,BL2m上は、図13の第
1バンドと第2バンドの結果の閾値のみを用いてスムー
ジング処理をすることができ、BL21下,BL22
下,...,BL2m下,BL3上,BL32
上,...,BL3m上は、図13の第1バンドと第2
バンドの結果の閾値のみを用いてスムージング処理をす
ることができる。BL31下以降も、スムージングブロ
ックの下側と上側をセットにして処理することにより、
前バンドのブロック閾値を保存しておくだけで、図13
に示されているバンド単位で処理することができる。こ
れにより、本発明をバンド処理で実現する場合に複数バ
ンド持つことなく、シングルバンドでスムージング処理
を実現できるため、画像用バンドメモリを節約すること
ができる。
【0114】(他の実施の形態)前記実施の形態におい
て、画像の入力は、1画素単色の8ビットの多値画像デ
ータとしたが、これに限定する必要はなく、複数のカラ
ーであってもよい。つまりは、2値化するためのデータ
として複数ビットの情報があればよい。
【0115】また、ヒストグラムを算出する際の画像の
処理ブロックについて、64画素×64画素としたが、
ブロックの大きさは32画素×32画素でもよい。さら
にはブロックの形は正方形でも長方形でもよい。つま
り、処理ブロックを64画素×96画素のようにしても
よい。メモリの容量によっては、画像全面を処理ブロッ
クとしてもよい。
【0116】また、ヒストグラムを算出する際の画像に
おけるサンプリングについて、全画素でも、数画素おき
でもよい。さらに、平均AVや統計量SKなどの計算
は、8ビットで行なわなくてもよく、高速化、メモリ削
減等のため、少ないビット数で演算するようにしてもよ
い。
【0117】また、統計量SKの収束条件を「±0.
1」としたが、これに限定することはなく、別の条件を
定めてもよく、統計量SKを用いて2値化の閾値を決定
するように構成すればよく、限定しない。また、画像入
力装置や画像入力条件により変化させる等、別の条件を
定めてもよい。
【0118】また、(5)式の文字ブロックの判定に関
し、文字フラグMFを「−20.0」としたが、これに
限定することはなく、統計量SKを用いて文字ブロック
の判定を行うよう、別の条件を定めてもよい。また、画
像入力装置や画像入力条件により変化させる等、別の条
件を定めてもよい。
【0119】また、(6)式、(7)式でつぶれ文字ブ
ロックやかすれ文字ブロックの判定に、SR値を用い
「3.0」としたが、これに限定することはなく、統計
量SKを用いてつぶれ文字ブロックやかすれ文字ブロッ
クの判定を行うよう、別の条件を定めてもよい。また、
画像入力装置や画像入力条件により変化させる等、別の
条件を定めてもよい。
【0120】また、閾値の下限値Lと上限値Hについ
て、画像入力装置や画像入力条件により変化させる等、
構成してもよい。
【0121】また、つぶれ防止の為に定数TPを用い
「0.85」としたが、これに限定することはなく、画
像入力装置や画像入力条件により変化させる等、別の条
件を定めてもよい。
【0122】また、本発明の目的は、前述した実施形態
の機能を実現するソフトウェアのプログラムコードを記
憶した記憶媒体を、システムあるいは装置に供給し、そ
のシステムあるいは装置のコンピュータ(またはCPU
やMPU)が記憶媒体に格納されたプログラムコードを
読み出し実行することによっても、達成されることは言
うまでもない。
【0123】この場合、記憶媒体から読み出されたプロ
グラムコード自体が前述した実施形態の機能を実現する
ことになり、そのプログラムコードを記憶した記憶媒体
は本発明を構成することになる。
【0124】プログラムコードを供給するための記憶媒
体としては、例えば、フロッピーディスク、ハードディ
スク、光ディスク、光磁気ディスク、CD−ROM、C
D−R、磁気テープ、不揮発性のメモリカード、ROM
などを用いる事ができる。
【0125】例えば、図18を例に説明すると、1〜3
は図1の1〜3に対応し、この装置のCPU101が、
フロッピーディスク103に格納されたプログラムコー
ドをメモリ102に読み出し、実行することによって達
成される。
【0126】また、コンピュータが読み出したプログラ
ムコードを実行することにより、前述した実施形態の機
能が実現されるだけでなく、そのプログラムコードの指
示に基づき、コンピュータ上で稼働しているOS(オペ
レーティングシステム)などが実際の処理の一部又は全
部を行い、その処理によって前述した実施形態の機能が
実現される場合も含まれることは言うまでもない。
【0127】さらに、記憶媒体から読み出されたプログ
ラムコードが、コンピュータに挿入された機能拡張ボー
ドやコンピュータに接続された機能拡張ユニットに備わ
るメモリに書き込まれた後、そのプログラムコードの指
示に基づき、その機能拡張ボードや機能拡張ユニットに
備わるCPUなどが実際の処理の一部または全部を行
い、その処理によって前述した実施形態の機能が実現さ
れる場合も含まれることは言うまでもない。
【0128】本発明を上記記憶媒体に適応する場合、そ
の記憶媒体には、先に説明したフローチャートに対応す
るプログラムコードを格納することになるが、簡単に説
明すると、図19のメモリマップ例に示す各モジュール
を記憶媒体に格納することになる。
【0129】すなわち、例えば、図3のS301処理ブ
ロック抽出処理に対応する「ブロック処理モジュー
ル」、図4のS401ヒストグラム算出処理に対応する
「ヒストグラム算出モジュール」、図4のS402平均
値算出処理に対応する「平均値算出モジュール」、図4
のS403SK値算出処理に対応する「Skew値算出
モジュール」、図4のS405画像特徴判別処理に対応
する「画像特徴判別処理モジュール」、図4のS416
閾値算出処理、または図3のS304閾値制限処理、ま
たは図3のS306閾値制限処理に対する「閾値算出モ
ジュール」、図3のS308スムージング処理に対応す
る「スムージング処理モジュール」および、図3のS3
09単純2値化処理に対応する「2値化処理モジュー
ル」、の各モジュールのプログラムコードを記憶媒体に
格納すればよい。
【0130】以上説明したように、本実施例の形態によ
れば、2値化においてブロック歪のない滑らかな2値再
現が可能となる。
【0131】特に、本実施の形態によれば、多値画像中
のブロックごとに輝度頻度を算出し、該輝度頻度に基づ
いてブロック単位の2値化閾値を算出し、該ブロック単
位の2値化閾値を補間することで画素単位の2値化閾値
を算出することにより、即ち、画像中のブロック単位で
対象物と背景濃度の間に適切な閾値を自動的に設定し、
さらに画素単位で2値化閾値を自動的に設定することが
可能になる。これにより、画像中の文字部分/それ以外
の部分それぞれに対し、背景から対象物に適切に分離
し、かつブロック歪の無い2値化画像を得ることができ
る。
【0132】また、本実施の形態の補間(スムージング
処理)により、ブロック歪みを除去することができる。
また、スムージングのためのパラメータを調整すること
により、スムージングのための補間処理時間を短縮した
り、入力装置や入力画像の解像度等の特性に応じた補間
処理を実現することができる。さらに、ブロックと同じ
高さの画像用バンドメモリを用いたバンド処理を本発明
に適用した場合、スムージングパラメータの設定によ
り、シングルバンドのみでスムージングを実現すること
ができ、バンドメモリに必要となるコストを抑えること
ができる。
【0133】又、コンピュータの処理環境によって決め
た有効桁数保存変数を演算値に掛けることにより整数演
算でも小数点以下の精度を保つことを可能にし、また平
均値算出、スキュー値算出を一単位として各単位ごとに
求めた有効桁数保存変数で演算値を割ることで演算結果
がコンピュータの扱える整数有効数値を超えることなく
演算することが可能となる。これにより、一定の精度を
保ちつつ、高速な画像処理の数値演算方法を得ることが
できる。
【0134】
【発明の効果】以上説明したように本発明によれば、コ
ンピュータの処理環境によって決めた有効桁数保存変数
を演算値に掛けることにより整数演算でも少数点以下の
精度を保つことを可能にし、また平均値算出、スキュー
値算出を一単位として各単位ごとに求めた有効桁数保存
変数で演算値を割ることで演算結果がコンピュータの扱
える整数有効数値を超えることなく演算することが可能
となる。これにより、一定の精度を保ちつつ、高速な画
像処理の数値演算を行う事ができる。
【図面の簡単な説明】
【図1】本発明に係る実施の形態における画像処理装置
のシステム構成を示すブロック図である。
【図2】本実施の形態における文字認識処理を示すフロ
ーチャートである。
【図3】本実施の形態における2値化処理を示すフロー
チャートである。
【図4】本実施の形態における閾値決定処理を示すフロ
ーチャートである。
【図5】本実施の形態における画像特徴判別処理を示す
フローチャートである。
【図6】本実施の形態におけるつぶれ文字処理を示すフ
ローチャートである。
【図7】本実施の形態におけるかすれ文字処理を示すフ
ローチャートである。
【図8】本実施の形態におけるつぶれ文字画像のヒスト
グラム例を示す図である。
【図9】本実施の形態のつぶれ文字の2値化処理におけ
る各変数値の変遷例を示す図である。
【図10】本実施の形態におけるかすれ文字画像のヒス
トグラム例を示す図である。
【図11】本実施の形態のかすれ文字の2値化処理にお
ける各変数値の変遷例を示す図である。
【図12】本実施の形態におけるスムージング処理を示
すフローチャートである。
【図13】図3のステップS301〜ステップS307
までのブロック単位の閾値を算出するループにおけるブ
ロックを示す図である。
【図14】スムージングブロックとブロック閾値との関
係を示す図である。
【図15】スムージングブロックの4隅の閾値と垂直方
向スムージング領域、水平方向スムージング領域を示す
図である。
【図16】TH_TL=32,TH_TR=96,TH
_BL=96,TH_BR=160としたときの、スム
ージングブロック内の補間演算結果を示す図である。
【図17】数値演算処理を示すフローチャートである。
【図18】本発明に係る実施の形態におけるコンピュー
タプログラム製品例を説明する図である。
【図19】本発明の実施形態である画像処理を実行する
ためのプログラムモジュールの所定の記憶媒体でのレイ
アウトの一例の図である。
【符号の説明】
1 画像処理装置 2 画像入力装置 3 画像表示装置 4 入力部 5 記憶部 6 輝度頻度累計部 7 画像特徴判別部 8 2値化閾値算出部 9 補間処理部 10 2値化部 11 文字認識部 12 画像処理部 13 出力部 15 制御部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 山田 修 東京都大田区下丸子3丁目30番2号キヤノ ン株式会社内

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 画像を処理する際の数値演算方法におい
    て、演算値が予め設定した有効桁数より大きくなると予
    測される場合は、有効桁数保存変数を用い演算値の桁数
    を切り捨て、演算値が予め設定した有効桁数より小さく
    なると予測される場合は、有効桁数保存変数を用い演算
    値の桁数をくり上げることにより、演算値を予め設定し
    た有効桁数内に収めることを特徴とする数値演算方法。
  2. 【請求項2】 有効桁数保存変数は、処理単位ごとに決
    定することを特徴とする請求項1記載の数値演算方法。
  3. 【請求項3】 前記処理単位は、前記画像の輝度頻度の
    平均値と、前記画像の輝度頻度の偏りを求める単位であ
    ることを特徴とする請求項2記載の数値演算方法。
  4. 【請求項4】 前記有効桁数は処理環境によって決定さ
    れることを特徴とする請求項1記載の数値演算方法。
  5. 【請求項5】 画像を処理する際の数値演算装置におい
    て、演算値が予め設定した有効桁数より大きくなると予
    測される場合に、有効桁数保存変数を用い演算値の桁数
    を切り捨てる第1演算手段と、演算値が予め設定した有
    効桁数より小さくなると予測される場合に、有効桁数保
    存変数を用い演算値の桁数をくり上げる第2演算手段と
    を有し、演算値を予め設定した有効桁数内に収めること
    を特徴とする数値演算装置。
  6. 【請求項6】 前記有効桁数保存変数を処理単位ごとに
    決定する決定手段を有することを特徴とする請求項5記
    載の数値演算装置。
  7. 【請求項7】 前記決定手段は前記画像の輝度頻度の平
    均値と、前記画像の輝度頻度の偏りを求める単位を処理
    単位とすることを特徴とする請求項6記載の数値演算装
    置。
  8. 【請求項8】 前記有効桁数は処理環境によって決定さ
    れることを特徴とする請求項5記載の数値演算装置。
  9. 【請求項9】 コンピュータプログラム製品であって、
    多値画像を2値画像に変換処理する数値演算を行う、コ
    ンピュータ読み取り可能なプログラムコード手段を有す
    るコンピュータ使用可能な媒体を備え、前記プログラム
    製品は、 演算値が処理環境によって決定される有効桁数より大き
    くなると予測される場合に、有効桁数保存変数を用い演
    算値の桁数を切り捨てるコンピュータ読み取り可能な第
    1プログラムコード手段と、 演算値が処理環境によって決定される有効桁数より小さ
    くなると予測される場合に、有効桁数保存変数を用い演
    算値の桁数をくり上げるコンピュータ読み取り可能な第
    2プログラムコード手段と、 有効桁数保存変数を前記画像の輝度頻度の平均値と、前
    記画像の輝度頻度の偏りを求める単位ごとに決定するコ
    ンピュータ読み取り可能な第3プログラムコード手段
    と、 を備えることを特徴とするコンピュータプログラム製
    品。
JP8041638A 1996-02-28 1996-02-28 数値演算装置及びその方法及びそのコンピュータプログラム製品 Withdrawn JPH09231054A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP8041638A JPH09231054A (ja) 1996-02-28 1996-02-28 数値演算装置及びその方法及びそのコンピュータプログラム製品
US08/807,606 US6333788B1 (en) 1996-02-28 1997-02-27 Image processing apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8041638A JPH09231054A (ja) 1996-02-28 1996-02-28 数値演算装置及びその方法及びそのコンピュータプログラム製品

Publications (1)

Publication Number Publication Date
JPH09231054A true JPH09231054A (ja) 1997-09-05

Family

ID=12613878

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8041638A Withdrawn JPH09231054A (ja) 1996-02-28 1996-02-28 数値演算装置及びその方法及びそのコンピュータプログラム製品

Country Status (1)

Country Link
JP (1) JPH09231054A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7397483B1 (en) 1998-07-02 2008-07-08 Canon Kabushiki Kaisha Image data conversion using interpolation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7397483B1 (en) 1998-07-02 2008-07-08 Canon Kabushiki Kaisha Image data conversion using interpolation

Similar Documents

Publication Publication Date Title
EP1014688B1 (en) Image processing method and apparatus, image processing system, and storage medium
US6333788B1 (en) Image processing apparatus and method
JP4219542B2 (ja) 画像処理装置、画像処理方法および画像処理プログラムが格納された記録媒体
US9984445B2 (en) Tone mapping
US7054485B2 (en) Image processing method, apparatus and system
US6901170B1 (en) Image processing device and recording medium
EP0803842B1 (en) Binary image forming device
US6476934B1 (en) Geometrically reducing influence halftoning
US8259374B2 (en) Image processing apparatus and image forming apparatus
US7706619B2 (en) Image processing device that produces high-quality reduced image at fast processing speed
US6289136B1 (en) Image processing method and apparatus
JP3495841B2 (ja) 画像処理装置及びその方法及びそのコンピュータプログラム製品
CN114820363A (zh) 图像处理方法和装置
JPH09200504A (ja) 画像処理方法
JPH09231054A (ja) 数値演算装置及びその方法及びそのコンピュータプログラム製品
US6785415B1 (en) Image processing method, an image processing apparatus, and a recording media on which an image processing program is recorded
CN108109120B (zh) 一种点阵二维码的光照补偿方法及装置
CN115330637A (zh) 一种图像锐化方法、装置、计算设备及存储介质
WO2022024165A1 (ja) 情報処理装置、情報処理方法、及び、記録媒体
JP4887761B2 (ja) 画像処理プログラム及び画像処理装置
JPH07334648A (ja) 画像処理方法及びその装置
US7218419B2 (en) Image processing method and apparatus, and recording medium
JPH06301773A (ja) 減色画像処理方法および装置
JPH08221512A (ja) 画像処理装置及びその方法
JPH0652304A (ja) 画像処理装置及びその方法

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20030506