画像処理方法
【課題】安価なシステムにおいて、用いる機器によって得られる処理速度が一定になり、かつプログラムの移植性がよい画像処理方法、画像処理プログラム及び画像処理装置を提供する。
【解決手段】画像を入力する画像入力ステップと、入力された画像から一定の範囲の画素数の処理対象画像を生成する処理対象画像生成ステップと、前記処理対象画像を入力し所定の画像処理をする画像処理ステップとを具備し、前記画像処理ステップにおける処理時間を一定範囲に収めたことを特徴とする画像処理方法。
【解決手段】画像を入力する画像入力ステップと、入力された画像から一定の範囲の画素数の処理対象画像を生成する処理対象画像生成ステップと、前記処理対象画像を入力し所定の画像処理をする画像処理ステップとを具備し、前記画像処理ステップにおける処理時間を一定範囲に収めたことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理方法に関し、特に、様々な装置において、様々な大きさの画像に対する認識処理を行う必要のある画像処理方法に関する。
【背景技術】
【0002】
近年、様々な媒体における計算処理速度が向上し、また様々な装置が安価になって普及したことに伴って、これまで高性能スキャナのような専用の装置とワークステーションのような高価な専用機器を用いて行ってきた処理を、汎用スキャナあるいはデジタルカメラとパーソナルコンピュータや携帯情報端末(以下PDAと呼ぶ)といったような安価な普及機器を用いて行うという傾向が強くなっている。
【0003】
一例として、これまでスキャナを用いて取り込んだ画像をパーソナルコンピュータやワークステーションで処理して認識を行っていた光学的文字読取りの機能が、カメラによって画像を入力することのできるカメラ付き携帯電話に搭載されるようになったことなどがあげられる。
【発明の開示】
【発明が解決しようとする課題】
【0004】
このような安価なシステムを用いる場合の問題点として、用いられる機器の性能が様々に異なるため、用いる機器によって得られる処理速度、入力画像の質が一定にはならないので、用いる機器によって得られる結果がまちまちになってしまうという点が挙げられる。
【0005】
特に機器の処理速度の違いによる実行時間の変化は顕著であり、例えば、PDAにワークステーションと同様のプログラムを用いた場合には、ワークステーションにおいて実用的な時間で動作しているプログラムであっても、PDAにおいては非実用的な時間がかかる場合が多い。
【0006】
上述の処理速度や入力画像の質が一定にならないという問題点は、使用する機器ごとにプログラムやパラメータの調整を行うことによってある程度回避することが可能であるが、機器の組み合わせの種類が膨大であるため、実際に行うことは困難であった。また、このように個別の調整が必要であったため、プログラムの移植性が悪かった。
【0007】
したがって、本発明の目的は、使用する機器によらず実行時間、処理結果が一定になり、かつプログラムの移植性がよい画像処理方法を提供することである。
【課題を解決するための手段】
【0008】
上記の目的を達成するために、請求項1に係る画像処理方法は、画像を入力する画像入力ステップと、入力された画像から一定の範囲の画素数の処理対象画像を生成する処理対象画像生成ステップと、前記処理対象画像を入力し所定の画像処理をする画像処理ステップとを具備し、前記画像処理ステップにおける処理時間を一定範囲に収めたことを特徴とする。
【発明の効果】
【0009】
本発明の画像処理方法によれば、様々な性能の機器によるさまざまな対象画像に対する画像処理において、処理に要する時間及び処理の結果を一定にすることができる。その結果、様々な機器に対して移植性の高く、一定の応答速度と性能を持った画像処理プログラムを構築することができる。
【発明を実施するための最良の形態】
【0010】
以下、本発明の実施の形態を、図面を参照しながら説明する。
【実施例1】
【0011】
実施例1では、本発明の画像処理方法に基づくプログラムを搭載したパーソナルコンピュータでの画像処理例について説明する。
【0012】
本実施例で対象となるものは、認識のための画像処理を行うものであり、許容される処理時間の中で、画質認識率を最適化しようとするものである。認識処理対象としては、具体的には、文字、顔、虹彩、指紋、掌紋などがあげられ、入力画像は静止画または動画である。
【0013】
図1は、本発明の画像処理方法を実施した画像処理機能の基本的な構成図の一例である。
【0014】
図1において、画像入力機能1は、スキャナーやデジタルカメラなどの画像入力機器やフラッシュメモリ等の記録媒体にファイルとして記録された処理対象の画像を入力するためのものである。画像入力機能1は、入力した入力画像Gを画像制御機能2へ出力する。画像制御機能2は、画像入力機能1が出力した入力画像Gを参照して、この入力画像Gを画像処理機能3で画像処理させるための所定範囲の画素数の処理対象画像を生成して画像処理機能3へ出力する。画像制御機能2において、所定範囲の画素数の処理対象画像を生成するための画像処理は、間引き、拡大、鮮鋭化、ぼかし等である。画像処理機能3は、画像制御機能2から出力された処理対象画像を所定の画像処理を行う機能を持つ。画像処理機能3は、画像処理した結果(実行結果)を画像制御機能2を介して結果出力機能4に出力する。結果出力機能4は、入力した画像処理機能3の処理結果を出力する機能を持つ。結果出力機能4の具体例としては、表示装置やDVD等の記録媒体へファイルとし出力する装置などがある。
【0015】
ここで、鮮鋭化処理、ぼかし処理に対する処理選択の概要を示す。
【0016】
鮮鋭化処理をするのか、ぼかし処理をするのかの判断を図2に示すフローチャートに従って行う。
【0017】
まず、原画を微分し、微分値の絶対値を画素値とする画像を生成する(ステップS21)。現画像を微分した微分画像の1例を図3に示す。簡単化のために、横方向のみの差分で例示している。次に原画像(図3)から画素値の最大値Xを求める(ステップS22)。この場合、最大値Xは255である。
【0018】
つぎに、最大値XをBLUR_THRESHOULDと比較する(ステップS23)。最大値Xの値のほうが小さければ鮮鋭化パラメータαを求める(ステップS24)。大きければ、最大値XをSHARP_THRESHOLDと比較する(ステップS25)。このステップS25の比較で最大値Xのほうが小さければ、ぼかしパラメータβを求める(ステップS26)。大きければ、鮮鋭化処理、ぼかし処理は不要であると判定し処理を終了する(ステップS27)。これらの情報を後述する画像処理機能3に対して与え、該当する画像処理を行わせる。
【0019】
図4は、鮮鋭化処理・ぼかし処理の1例を示している。f(x、y)は、処理前の画像中の位置(x、y)における画素値、f’(x、y、αorβ)は、該当パラメータを与えた場合の処理後の画素中の位置(x、y)における画素値である。なお、ぼかしの手段としては、例えばガウシアンフィルタ、平滑化フィルタ、帯域通過フィルタなどもあり、鮮鋭化の手段としては、ラプラシアンフィルタなどがある。また、位置の計算では、左上から右方向にx軸、下方向にy軸が伸びている。
【0020】
本実施例では、画像制御機能2によって生成された画素数が、所定範囲の処理対象画像になるように、画像処理機能3が所定の画像処理を行うため、画像処理に要する処理時間が、入力画像の画素数によらず一定とすることができる。
【0021】
これを実現するために、画像制御機能2は、処理対象画像の最大画素数(本実施例においてはPIXELMAXと定義する)および処理対象画像の最少画素数(本実施例においてはPIXELMINと定義する)を用いて、入力画像Gの横幅と高さに応じて入力画像Gに対する間引きするための間引き数Nないし拡大処理するための拡大数Mを決定する。画像制御機能2は、入力画像Gに対してN個間引きないしM倍拡大を行うことで処理対象画像の画素数を一定化することができ、結果として画像処理機能3での画像処理に要する時間が入力画像の大きさ(画素数)によらず一定化できる。なお、本実施例において、NおよびMは有理数であるものとする。また、N個間引きは、N画素の画素値から1画素の画素値を求める処理、M倍拡大は1画素の画素値からM画素の画素値を求める処理である。
【0022】
図5は、画像制御機能2において、間引き数Nないし拡大数Mを決定するための動作を示したフローチャートである。
【0023】
図5において、まず入力画像Gの横幅widthと高さheightとを乗算して入力画像の画素数pixelsを計算する(ステップS51)。即ち、pixels=width*heightの演算をする。
【0024】
次にステップS52において、演算で求めた入力画像Gの画素数pixelsと最大画素数PIXELMAXとを比較する。この比較の結果、画素数pixelsが最大画素数PIXELMAXより大きい場合にはステップS53へ進み、画素数pixelsが最大画素数PIXELMAXより小さい場合にはステップS55へ進む。
【0025】
ステップS53では、次の式を満たす最小の値Xを求める。即ち、pixels<=X*X*PIXELMAXを満たす最小の値Xを求める。この求めた値Xを間引き数Nとして設定する(ステップS54)。
【0026】
一方、ステップS55では、入力画像Gの画素数pixelsと最少画素数PIXELMINとを比較する。この比較の結果、画素数pixelsが最少画素数PIXELMINより小さい場合には、間引き数N及び拡大数Mを1に設定する(ステップS57)。また、画素数pixelsが最少画素数PIXELMINより大きい場合には、次の式を満たす最大の値Xを求める(ステップS57)。即ち、PIXELMIN<=X*X*pixelsを満たす最大の値Xを求める。この求めた値Xを拡大数Mとして設定する(ステップS58)。
【0027】
次に画像制御機能2における画像のN個間引き、およびM倍拡大の例を図6及び図7に示す。
【0028】
N個間引き処理とは、入力画像G中のN*N個の画素の画素値から1つの画素の画素値を決定するフィルタリング処理である。
【0029】
フィルタリング処理としては、図6に示すように、2*2フィルタを用いて最左最上の画素を抽出し、その画素値を出力する2*2フィルタリングによる2個間引き(図6上段)、3*3メディアンフィルタを用いて9個の画素を抽出し、その画素数の大きさの順に並べて中央値を出力する3*3メディアンフィルタリングによる3個間引き(図6中段)、2*2フィルタを用いて最上の行の画素を抽出し、その画素値の平均値を出力するフィルタ(図6下段)だけでなく、その他に最大値フィルタ、最小値フィルタなどがある。
【0030】
一方、M倍拡大処理とは、周囲の画素による補間処理を行うことにより、補間されるべき画素の画素値を計算する処理である。
【0031】
補間処理としては、図7に示すように、周囲4画素による線形補間処理による2倍拡大があり、その他に周囲2画素による線形補間処理、周囲4画素による多項式補間処理、周囲4画素による非線形補間処理などがある。
【0032】
上述した例から推定できるように、X画素は、N個間引きによってX/N画素に、また、M倍拡大によってMX−(M−1)画素に、それぞれ変換される。
【0033】
なお、間引きまたは拡大の方法は、図6及び図7に示す方法に限らず、例えば間引く際に、高さ方向の間引き数N1と幅方向の間引き数N2、拡大する際に、高さ方向の拡大数M1と幅方向の拡大数M2、というように、方向、あるいは位置などによって異なる値を用いるようにしてもよいし、N個間引きを行う際にM倍拡大してからMN個間引きを行ってもよいし、M倍拡大を行う際にMN倍拡大してからN個間引きを行ってもよい。
【0034】
また、間引き数N、拡大数Mの決定法は、図5に示す方法によらず、入力画像Gの大きさ、使用する機器(例えばパーソナルコンピュータであるか、PDAであるか、携帯電話であるか、専用機器であるかなど)、画像入力方法(デジタルカメラ撮影画像であるか、スキャナによるスキャン画像であるかなど)と間引き数N及び拡大数Mとの対応を定めたテーブル(例えば携帯電話でCIFテレビ画像であれば2倍拡大、パーソナルコンピュータでVGAビデオ画像であれば4倍拡大などとしたテーブル)から選択してもよいし、変数Aをテーブルから選択し、図5に示すPIXELMAXをA*PIXELMAXと変更してもよい。
【0035】
また、図5のフローチャートでは、入力画像Gの画素数pixelsに応じて間引き数Nと拡大数Mの両方が1より大きな値をもつことがあり得るが、例えば図2右側のようにpixels<=PIXELMAXとなった場合の間引き数Nと拡大数Mの値をN=M=1に固定して、拡大数Mが1より大きな値を持たないようにしてもよい。
【0036】
上述のとおり、本実施例では、N個間引きの場合には最左最上の画素を抽出するN*Nフィルタを用いたN個間引き(図6最上)について、M倍拡大の場合には周囲4画素での線形補間によるM倍拡大について説明した(図7)。なお、図6及び図7は濃淡画像における例を示しているが、複数色画像の場合であっても、色成分ごとに図中の処理を加えたり、色変換を行って処理を加えた後で逆変換を行うなどとすることにより、濃淡画像と同様の処理が実現できる。
【0037】
画像処理機能3によって行われる画像処理としては、例えば文字認識処理、顔画像認識処理、指紋画像認識処理、QRコード解析処理、2値化処理、2値化閾値設定処理、文字行位置抽出処理、平滑化処理、鮮鋭化処理などがある。また、このような画像処理は、上記画像処理の組み合わせであってもよい。
【0038】
画像制御機能2が処理対象画像を生成するための画像処理の内容は、入力画像Gを画像間引き・拡大処理すること、又は入力画像Gを画像間引き・拡大処理して作成された画像を幅方向に4つにブロック分割し、各ブロックに対して2値化を行うための閾値を設定し、各ブロックに対して求めた閾値を用いて2値化処理をすることである。各ブロックに対して2値化のための閾値を設定する処理としては、例えば各ブロックに対して大津の方法(大津展之、電子情報通信学会論文誌Vol.J63−D No.4 pp349−356)を用いるなどの方法がある。
【0039】
図8は、2値化閾値設定処理により求められたブロックごとの閾値を用いて入力画像Gを2値化する手法の一例を示している。図8の例では、間引き数N=2としているが、他の場合も同様である。以下、図8について詳細に説明する。
【0040】
まず、2個間引きによって作成された画像を用い、各ブロックに対する閾値を求める。閾値を求めた結果を、図8右図に示す。ただし、図8右図においては、求められた閾値をグレースケール値で表示している。
【0041】
次に、各ブロックのブロック位置を拡大する。例えば、2個間引きされた画像において(0,0)〜(25,10)までを含むブロック(最も左のブロック)は、2倍に拡大して、(0,0)〜(50,20)までを含むブロックとする。
【0042】
次に、このブロック情報、及び各ブロックにおける2値化の閾値を元に、入力画像Gを2値化する。2値化処理は、入力画像Gの各画素において、各画素が属するブロックにおける閾値よりも値が小さければ画素の2値化結果を1、同様に大きければ画素の2値化結果を0とする処理である。つまり、入力画像Gの各ブロックにおける画素値が、各ブロックの閾値より黒い画素が1、白い画素が0となる。
【0043】
この処理を行った結果が、図8下の2値化結果Rである。なお、図8下の2値化結果Rにおいては、処理結果が1となった画素を黒で、0となった画素を白で表している。
【0044】
ここで、入力画像Gを2値化する方法は、上記に限らず、画像処理機能3として、2値化閾値設定処理以外に行抽出処理を加え、この行抽出処理の結果行であると判断された位置のみを2値化するなどとしてもよい。
【0045】
また、画像処理機能3が画像処理の結果として出力する2値化画像は入力した画像を2値化したものに限らず、入力した画像を鮮鋭化処理やぼかし処理、あるいはエッジ強調処理などを加えた画像を2値化してもよい。また、2値化した画像をN個間引きまたはM倍拡大するなどしてもよい。
【0046】
図9は、画像入力機能1によって入力された画像に対して画像処理機能3が所定の画像処理を行い、結果出力手段に対して画像処理の結果を出力するまでの流れの1例を示したものである。ただし、図中入力画像G1、処理対象画像I1は、画素値として0〜255を取り、0が黒、255が白であり、ある画素Xの画素値Yが小さいほど該画素Xは黒く、同様に大きいほど白い、という条件を満たす画像とする。本実施例においては、グレースケール画像として上記の画像Iを定義する。
【0047】
以後、図9に沿って処理の流れを説明する。なお、PIXELMAXの値は6250、PIXELMINの値は2000と設定されているものとする。
【0048】
まず、画像入力機能1によって、例えばデジタルカメラによって撮影された幅500、高さ50の画像を読み込み、グレースケール画像である入力画像G1を取得する。
【0049】
次に、画像制御機能2によって、処理対象画像I1を生成する。この処理は、図5に示すフローチャートに従って以下のように行われる。
【0050】
まず、入力画像中の画素数pixelsを計算する。入力画像の幅は500、高さが50であるので、pixels=500*50=25000ピクセルである。
【0051】
次に、pixelsとPIXELMAXを比較する。25000>6250であるので、25000<=X*X*6250となる最大のXを求める。
【0052】
1*1*6250<25000、2*2*6250=25000>=25000であるので、これよりX=2となる。従って、間引き数N=2となる。
【0053】
次に、図6に示したサイズN*Nの最左最上画素値フィルタにN=2を適用した2*2フィルタによって、入力画像G1に対するフィルタリング処理を行い、間引きを行う。
【0054】
この処理により、幅250、高さ25の処理対象画像I1が得られる。I1の画素数を計算すると、当然ながら、250*25=6250である。
【0055】
次に、画像処理機能3に対して前記I1を入力し、画像処理機能3が入力した処理対象画像I1の2値化処理を行う。この処理によって、処理時間T1で2値化結果である出力画像R1を得る。T1は、1画素あたりに要する処理時間をtとすれば、6250tと表すことができる。
【実施例2】
【0056】
図10は、図9と大きさの異なる入力画像G2に対して適用した場合の例を示したものである。
【0057】
図9によって示した実施例1と同様にして、入力画像G2に対する間引き数Nを求めると、入力画像中の画素数が1000*100=100000なので、3*3*6250=56250<100000、4*4*6250=100000>=100000より間引き数N=4を得る。
【0058】
次に、先に示した実施例1と同様に、サイズN*Nの最左最上画素値フィルタを用いて入力画像G2の間引きを行う。本実施例では、N=4であるので、これを適用すると、幅250、高さ25の処理対象画像I2が得られる。
【0059】
次に、画像処理機能3に対して前記I2を入力し、2値化処理を行う。この処理によって、処理時間T2で2値化結果である出力画像R2を得る。T2は、1画素あたりに要する処理時間をtとすれば、6250tと表すことができる。
【0060】
ここで、前述の2つの実施例1,2における画像処理機能3の処理時間T1とT2を比較すると、両者とも6250t時間で2値化処理が行われている。すなわち、500*50の入力画像G1に対しても、1000*100の入力画像G2に対しても、同様の時間6250tで2値化処理が終了することとなり、入力画像の大きさによらず処理時間を一定化することができている。
【0061】
図11は、PIXELMAX6250、PIXELMIN2000を用いた場合における、入力画像Gの画素数と処理対象画像Iの画素数の変化を表したグラフである。間引き数Nの決定方法、間引き方法などは全て前記実施例と同様である。
【0062】
図11からわかるように、入力画像Gの画素数が変化しても、処理対象画像Iの画素数はほぼ一定に保たれ、もって画像処理機能3における処理時間もほぼ一定に保たれることがわかる。
【0063】
ここで、上記の実施例における機能(この機能を実現する処理プログラム)を、速度の異なる新たな機器に移植することを考える。この場合、上述のとおりPIXELMAX及びPIXELMINの変更によって処理時間が制御可能であるため、上記のPIXELMAX及びPIXELMINのみを変更すればプログラムを移植することが可能となる。すなわち、本発明によれば、異なる機器に対するプログラムの移植を容易に行うことができるようになる。なお、前記では移植する際にPIXELMAX及びPIXELMINの値を決定したが、これらの値は制御機能によってプログラムが実行される環境の情報、例えばCPUの演算速度などに基づいて自動的に決定されてもよい。
【実施例3】
【0064】
実施例3では、実施例1,2と同様に画像処理プログラムを搭載したパーソナルコンピュータの例について説明する。
【0065】
図12は、実施の形態3における本発明のプログラムの基本的な構成図の一例を示したものである。図12の画像処理プログラムは、実施の形態1,2と同様の画像入力機能1、画像制御機能2、画像処理機能3、結果出力機能4及び画像制御機能2において画像を制御する方法に加えて、前記制御に用いられるパラメータなどをユーザが指定する機能を提供するユーザ入力機能5を具備する。
【0066】
ユーザ入力機能5は、画像制御機能2における処理選択情報の生成をユーザが制御する機能である。本実施例では、画像制御機能2におけるPIXELMAX、PIXELMINを設定する機能であるとするが、これ以外の処理、例えば画像処理機能2に実行可能な処理を複数、例えば文字認識処理とQRコード解析処理を用意し、動作させるべき画像処理をパラメータとして指定させるなどとしてもよい。上述の例では、例えば文字認識であれば文字行抽出処理を行い、QRコード解析処理であればQRコードの探索を行うように、画像制御機能2における動作を変更することができる。また、鮮鋭化処理・ぼかし処理のパラメータを決定する関数を設定するなどしてもよい。上述の例では、設定された関数によってパラメータを決定することにより、動作を変更することができる。
【0067】
本実施例におけるユーザ入力機能5は、図12に示すように、PIXELMAX及びPIXELMINの値を変化させることのできるスクロールバーを持ったユーザ設定画面を表示し、画面を通じた操作によって、ユーザにPIXELMAX及びPIXELMINの値を変更するインターフェースを提供することによって実現する。なお、この場合は、スクロールバーによって実現したが、例えば値を直接入力可能にする設定を複数用意して、リストボックスなどから選択させてもよい。また、例えばPIXELMINをPIXELMAXの関数として定義し、PIXELMAXのみを上記のような手段で操作させたり、入力画像最大サイズ、入力画像最小サイズ、入力画像平均サイズを設定させ、上記3つの値からPIXELMAX及びPIXELMINを計算させてもよい。
【0068】
図13は、本実施例3の処理例である。最初に、図9に示した実施例1と同様のPIXELMAX=6250が設定されている場合を考える。
【0069】
この場合、入力画像G3が図9に示した入力画像G1と同様の大きさであるから、前述の場合と同じく、間引き数N=2となり、処理対象画像I3はI1と同じく幅250、高さ25となる。
【0070】
ここで、ユーザが、ユーザ設定画面に表示されているスクロールバーを右に動かし、PIXELMAXを25000に変更したとする。この状態で、同様に入力画像G3に対する処理を行うことを考える。
【0071】
先に示した実施例1と同様に、図5に従って入力画像G3に対する間引き数ないし拡大数を計算すると、1*1*25000=50*500=25000であるので、N=M=1となる。これにより、処理対象画像I3aは幅500、高さ50となる。
【0072】
以上によって示されるように、ユーザによる操作によって、処理対象画像の大きさが変更されている。すなわち、本実施例によれば、ユーザが、ユーザ入力機能5を介して画像制御機能2を操作することが可能である。
【0073】
なお、上記では画像処理プログラムの例によって示したが、例えばこのような機能を搭載したICチップなどによって構成される装置においても同様に制御機能を操作することが可能である。装置の場合、ユーザ入力機能は、例えばディップスイッチなどによって実現されてもよい。
【実施例4】
【0074】
図14は、実施例4として、実施例3と異なる動作方法を示した例である。ここで、PIXELMAX=6250が設定されている場合を考える。また、画像制御機能2は、可能な場合には鮮鋭化処理・ぼかし処理を行ってから2値化処理を行うように変更されているものとする。また、画像出力機能4によって結果が出力されるまでに要する時間の上限としてT、間引き処理に要する処理時間の予測値としてt1、鮮鋭化処理に要する処理時間の予測値としてt2、2値化処理に要する処理時間の予測値としてt3が、それぞれ設定されているものとする。
【0075】
図14の例では、画像制御機能2は、最初に間引き数Nを決定する。この場合、上述の通り間引き数N=2となり、処理対象画像I3が得られる。この間引き処理に要した時間をt1’とする。画像処理機能は、t1’及び処理対象画像I3を出力する。
【0076】
次に、画像制御機能2は、間引き処理に要した時間t1’、間引き処理を行った結果の処理画像I3、選択可能な他の処理に要する時間の予測値t2及びt3、及び実行時間の上限値Tに基づき、次の処理を選択する。この実施例では、図14に示したとおり、t1’+t2+t3がTより小さければ鮮鋭化処理・ぼかし処理を行ってから2値化処理を行う。そうでない場合は、鮮鋭化処理・ぼかし処理を行わず、2値化処理を行う。
【0077】
以上によって示されるように、実際の処理時間、および処理時間の予測値に基づいて処理を選択することにより、処理時間を一定範囲に保ちつつ、処理を変更することが可能となる。
【0078】
なお、この実施例ではt1、t2、t3は設定されているものとしたが、これらの値は自動的に計算されてもよい。また、処理の選択に用いる処理に要する時間の予測値としては、t2、t3ではなく、t1とt1’の比に基づいて補正したt2’、t3’を用いてもよい。また、本実施例は、実施例3のプログラムに基づいているが、同様に実施例1のプログラムに基づいてもよい。
【0079】
以上説明した各実施例では、画像制御機能2が処理対象画像を生成していたが、この処理対象画像を画像処理機能3自身が生成することでも良い。具体的には、画像制御機能2が画像入力機能1が出力した入力画像Gを参照して、この入力画像Gを画像処理機能3で上記処理対象画像を生成するための画像処理の内容を指定するための処理選択情報を決定し、入力画像Gと処理選択情報とを画像処理機能3へ出力する。
【0080】
処理選択情報とは、画像処理機能3にどのような処理対象画像を生成するための画像処理を行わせるのか、その処理内容を指定する情報とその処理内容の詳細を指定するためのパラメーターとから構成されるものである。この処理選択情報で指定される画像処理としては、間引き、拡大、鮮鋭化、ぼかし等である。画像処理機能3は、画像制御機能2から入力した入力画像Gに対して処理選択情報により指定される画像処理を行い処理対象画像を生成する機能を持つ。画像処理機能3は、自身で生成した処理対象画像を用いて、上記した文字認識処理、顔画像認識処理、指紋画像認識処理、QRコード解析処理、2値化処理、2値化閾値設定処理、文字行位置抽出処理、平滑化処理、鮮鋭化処理等や、これらの処理の組み合わせの画像処理を行う。
【産業上の利用可能性】
【0081】
様々な対象画像に対して、処理に要する時間を一定化させ、また、様々な機器に対する移植性の高い画像処理プログラムを構築することが不可欠な用途にも適用できる。
【図面の簡単な説明】
【0082】
【図1】本発明における画像処理方法の構造を示した図である。 (実施例1)
【図2】鮮鋭化またはぼかしを判別するフローチャートである。 (実施例1)
【図3】微分画像の説明図である。 (実施例1)
【図4】鮮鋭化またはぼかしの1例の説明図である。 (実施例1)
【図5】間引き数N、拡大数Mの決定方法を示した図である。 (実施例1)
【図6】画像間引き方法を示した図である。 (実施例1)
【図7】画像拡大方法を示した図である。 (実施例1)
【図8】処理結果を基に入力画像を2値化する方法を示した図である。(実施例1)
【図9】本発明の画像処理方法を用いた画像処理を示した図である。(実施例1)
【図10】同上の画像処理の異なる一例を示した図である。 (実施例2)
【図11】入力画像と処理対象画像の画素数の関係を示した図である。(実施例2)
【図12】本発明における異なる画像処理方法の構造を示した図である。(実施例3)
【図13】同上の画像処理方法の一例を示した図である。 (実施例3)
【図14】同上の画像処理の異なる一例を示した図である。 (実施例4)
【符号の説明】
【0083】
1…画像入力機能、2…画像制御機能、3…画像処理機能、4…結果出力機能、5…ユーザ入力機能、G,G1,G2,G3…入力画像、H…2値化結果、I,I1,I2,I3,I3a…処理対象画像、R1,R2…処理結果画像、t1,t2,t3…処理の実行時間の予測値、t1’…実行時間。
【技術分野】
【0001】
本発明は、画像処理方法に関し、特に、様々な装置において、様々な大きさの画像に対する認識処理を行う必要のある画像処理方法に関する。
【背景技術】
【0002】
近年、様々な媒体における計算処理速度が向上し、また様々な装置が安価になって普及したことに伴って、これまで高性能スキャナのような専用の装置とワークステーションのような高価な専用機器を用いて行ってきた処理を、汎用スキャナあるいはデジタルカメラとパーソナルコンピュータや携帯情報端末(以下PDAと呼ぶ)といったような安価な普及機器を用いて行うという傾向が強くなっている。
【0003】
一例として、これまでスキャナを用いて取り込んだ画像をパーソナルコンピュータやワークステーションで処理して認識を行っていた光学的文字読取りの機能が、カメラによって画像を入力することのできるカメラ付き携帯電話に搭載されるようになったことなどがあげられる。
【発明の開示】
【発明が解決しようとする課題】
【0004】
このような安価なシステムを用いる場合の問題点として、用いられる機器の性能が様々に異なるため、用いる機器によって得られる処理速度、入力画像の質が一定にはならないので、用いる機器によって得られる結果がまちまちになってしまうという点が挙げられる。
【0005】
特に機器の処理速度の違いによる実行時間の変化は顕著であり、例えば、PDAにワークステーションと同様のプログラムを用いた場合には、ワークステーションにおいて実用的な時間で動作しているプログラムであっても、PDAにおいては非実用的な時間がかかる場合が多い。
【0006】
上述の処理速度や入力画像の質が一定にならないという問題点は、使用する機器ごとにプログラムやパラメータの調整を行うことによってある程度回避することが可能であるが、機器の組み合わせの種類が膨大であるため、実際に行うことは困難であった。また、このように個別の調整が必要であったため、プログラムの移植性が悪かった。
【0007】
したがって、本発明の目的は、使用する機器によらず実行時間、処理結果が一定になり、かつプログラムの移植性がよい画像処理方法を提供することである。
【課題を解決するための手段】
【0008】
上記の目的を達成するために、請求項1に係る画像処理方法は、画像を入力する画像入力ステップと、入力された画像から一定の範囲の画素数の処理対象画像を生成する処理対象画像生成ステップと、前記処理対象画像を入力し所定の画像処理をする画像処理ステップとを具備し、前記画像処理ステップにおける処理時間を一定範囲に収めたことを特徴とする。
【発明の効果】
【0009】
本発明の画像処理方法によれば、様々な性能の機器によるさまざまな対象画像に対する画像処理において、処理に要する時間及び処理の結果を一定にすることができる。その結果、様々な機器に対して移植性の高く、一定の応答速度と性能を持った画像処理プログラムを構築することができる。
【発明を実施するための最良の形態】
【0010】
以下、本発明の実施の形態を、図面を参照しながら説明する。
【実施例1】
【0011】
実施例1では、本発明の画像処理方法に基づくプログラムを搭載したパーソナルコンピュータでの画像処理例について説明する。
【0012】
本実施例で対象となるものは、認識のための画像処理を行うものであり、許容される処理時間の中で、画質認識率を最適化しようとするものである。認識処理対象としては、具体的には、文字、顔、虹彩、指紋、掌紋などがあげられ、入力画像は静止画または動画である。
【0013】
図1は、本発明の画像処理方法を実施した画像処理機能の基本的な構成図の一例である。
【0014】
図1において、画像入力機能1は、スキャナーやデジタルカメラなどの画像入力機器やフラッシュメモリ等の記録媒体にファイルとして記録された処理対象の画像を入力するためのものである。画像入力機能1は、入力した入力画像Gを画像制御機能2へ出力する。画像制御機能2は、画像入力機能1が出力した入力画像Gを参照して、この入力画像Gを画像処理機能3で画像処理させるための所定範囲の画素数の処理対象画像を生成して画像処理機能3へ出力する。画像制御機能2において、所定範囲の画素数の処理対象画像を生成するための画像処理は、間引き、拡大、鮮鋭化、ぼかし等である。画像処理機能3は、画像制御機能2から出力された処理対象画像を所定の画像処理を行う機能を持つ。画像処理機能3は、画像処理した結果(実行結果)を画像制御機能2を介して結果出力機能4に出力する。結果出力機能4は、入力した画像処理機能3の処理結果を出力する機能を持つ。結果出力機能4の具体例としては、表示装置やDVD等の記録媒体へファイルとし出力する装置などがある。
【0015】
ここで、鮮鋭化処理、ぼかし処理に対する処理選択の概要を示す。
【0016】
鮮鋭化処理をするのか、ぼかし処理をするのかの判断を図2に示すフローチャートに従って行う。
【0017】
まず、原画を微分し、微分値の絶対値を画素値とする画像を生成する(ステップS21)。現画像を微分した微分画像の1例を図3に示す。簡単化のために、横方向のみの差分で例示している。次に原画像(図3)から画素値の最大値Xを求める(ステップS22)。この場合、最大値Xは255である。
【0018】
つぎに、最大値XをBLUR_THRESHOULDと比較する(ステップS23)。最大値Xの値のほうが小さければ鮮鋭化パラメータαを求める(ステップS24)。大きければ、最大値XをSHARP_THRESHOLDと比較する(ステップS25)。このステップS25の比較で最大値Xのほうが小さければ、ぼかしパラメータβを求める(ステップS26)。大きければ、鮮鋭化処理、ぼかし処理は不要であると判定し処理を終了する(ステップS27)。これらの情報を後述する画像処理機能3に対して与え、該当する画像処理を行わせる。
【0019】
図4は、鮮鋭化処理・ぼかし処理の1例を示している。f(x、y)は、処理前の画像中の位置(x、y)における画素値、f’(x、y、αorβ)は、該当パラメータを与えた場合の処理後の画素中の位置(x、y)における画素値である。なお、ぼかしの手段としては、例えばガウシアンフィルタ、平滑化フィルタ、帯域通過フィルタなどもあり、鮮鋭化の手段としては、ラプラシアンフィルタなどがある。また、位置の計算では、左上から右方向にx軸、下方向にy軸が伸びている。
【0020】
本実施例では、画像制御機能2によって生成された画素数が、所定範囲の処理対象画像になるように、画像処理機能3が所定の画像処理を行うため、画像処理に要する処理時間が、入力画像の画素数によらず一定とすることができる。
【0021】
これを実現するために、画像制御機能2は、処理対象画像の最大画素数(本実施例においてはPIXELMAXと定義する)および処理対象画像の最少画素数(本実施例においてはPIXELMINと定義する)を用いて、入力画像Gの横幅と高さに応じて入力画像Gに対する間引きするための間引き数Nないし拡大処理するための拡大数Mを決定する。画像制御機能2は、入力画像Gに対してN個間引きないしM倍拡大を行うことで処理対象画像の画素数を一定化することができ、結果として画像処理機能3での画像処理に要する時間が入力画像の大きさ(画素数)によらず一定化できる。なお、本実施例において、NおよびMは有理数であるものとする。また、N個間引きは、N画素の画素値から1画素の画素値を求める処理、M倍拡大は1画素の画素値からM画素の画素値を求める処理である。
【0022】
図5は、画像制御機能2において、間引き数Nないし拡大数Mを決定するための動作を示したフローチャートである。
【0023】
図5において、まず入力画像Gの横幅widthと高さheightとを乗算して入力画像の画素数pixelsを計算する(ステップS51)。即ち、pixels=width*heightの演算をする。
【0024】
次にステップS52において、演算で求めた入力画像Gの画素数pixelsと最大画素数PIXELMAXとを比較する。この比較の結果、画素数pixelsが最大画素数PIXELMAXより大きい場合にはステップS53へ進み、画素数pixelsが最大画素数PIXELMAXより小さい場合にはステップS55へ進む。
【0025】
ステップS53では、次の式を満たす最小の値Xを求める。即ち、pixels<=X*X*PIXELMAXを満たす最小の値Xを求める。この求めた値Xを間引き数Nとして設定する(ステップS54)。
【0026】
一方、ステップS55では、入力画像Gの画素数pixelsと最少画素数PIXELMINとを比較する。この比較の結果、画素数pixelsが最少画素数PIXELMINより小さい場合には、間引き数N及び拡大数Mを1に設定する(ステップS57)。また、画素数pixelsが最少画素数PIXELMINより大きい場合には、次の式を満たす最大の値Xを求める(ステップS57)。即ち、PIXELMIN<=X*X*pixelsを満たす最大の値Xを求める。この求めた値Xを拡大数Mとして設定する(ステップS58)。
【0027】
次に画像制御機能2における画像のN個間引き、およびM倍拡大の例を図6及び図7に示す。
【0028】
N個間引き処理とは、入力画像G中のN*N個の画素の画素値から1つの画素の画素値を決定するフィルタリング処理である。
【0029】
フィルタリング処理としては、図6に示すように、2*2フィルタを用いて最左最上の画素を抽出し、その画素値を出力する2*2フィルタリングによる2個間引き(図6上段)、3*3メディアンフィルタを用いて9個の画素を抽出し、その画素数の大きさの順に並べて中央値を出力する3*3メディアンフィルタリングによる3個間引き(図6中段)、2*2フィルタを用いて最上の行の画素を抽出し、その画素値の平均値を出力するフィルタ(図6下段)だけでなく、その他に最大値フィルタ、最小値フィルタなどがある。
【0030】
一方、M倍拡大処理とは、周囲の画素による補間処理を行うことにより、補間されるべき画素の画素値を計算する処理である。
【0031】
補間処理としては、図7に示すように、周囲4画素による線形補間処理による2倍拡大があり、その他に周囲2画素による線形補間処理、周囲4画素による多項式補間処理、周囲4画素による非線形補間処理などがある。
【0032】
上述した例から推定できるように、X画素は、N個間引きによってX/N画素に、また、M倍拡大によってMX−(M−1)画素に、それぞれ変換される。
【0033】
なお、間引きまたは拡大の方法は、図6及び図7に示す方法に限らず、例えば間引く際に、高さ方向の間引き数N1と幅方向の間引き数N2、拡大する際に、高さ方向の拡大数M1と幅方向の拡大数M2、というように、方向、あるいは位置などによって異なる値を用いるようにしてもよいし、N個間引きを行う際にM倍拡大してからMN個間引きを行ってもよいし、M倍拡大を行う際にMN倍拡大してからN個間引きを行ってもよい。
【0034】
また、間引き数N、拡大数Mの決定法は、図5に示す方法によらず、入力画像Gの大きさ、使用する機器(例えばパーソナルコンピュータであるか、PDAであるか、携帯電話であるか、専用機器であるかなど)、画像入力方法(デジタルカメラ撮影画像であるか、スキャナによるスキャン画像であるかなど)と間引き数N及び拡大数Mとの対応を定めたテーブル(例えば携帯電話でCIFテレビ画像であれば2倍拡大、パーソナルコンピュータでVGAビデオ画像であれば4倍拡大などとしたテーブル)から選択してもよいし、変数Aをテーブルから選択し、図5に示すPIXELMAXをA*PIXELMAXと変更してもよい。
【0035】
また、図5のフローチャートでは、入力画像Gの画素数pixelsに応じて間引き数Nと拡大数Mの両方が1より大きな値をもつことがあり得るが、例えば図2右側のようにpixels<=PIXELMAXとなった場合の間引き数Nと拡大数Mの値をN=M=1に固定して、拡大数Mが1より大きな値を持たないようにしてもよい。
【0036】
上述のとおり、本実施例では、N個間引きの場合には最左最上の画素を抽出するN*Nフィルタを用いたN個間引き(図6最上)について、M倍拡大の場合には周囲4画素での線形補間によるM倍拡大について説明した(図7)。なお、図6及び図7は濃淡画像における例を示しているが、複数色画像の場合であっても、色成分ごとに図中の処理を加えたり、色変換を行って処理を加えた後で逆変換を行うなどとすることにより、濃淡画像と同様の処理が実現できる。
【0037】
画像処理機能3によって行われる画像処理としては、例えば文字認識処理、顔画像認識処理、指紋画像認識処理、QRコード解析処理、2値化処理、2値化閾値設定処理、文字行位置抽出処理、平滑化処理、鮮鋭化処理などがある。また、このような画像処理は、上記画像処理の組み合わせであってもよい。
【0038】
画像制御機能2が処理対象画像を生成するための画像処理の内容は、入力画像Gを画像間引き・拡大処理すること、又は入力画像Gを画像間引き・拡大処理して作成された画像を幅方向に4つにブロック分割し、各ブロックに対して2値化を行うための閾値を設定し、各ブロックに対して求めた閾値を用いて2値化処理をすることである。各ブロックに対して2値化のための閾値を設定する処理としては、例えば各ブロックに対して大津の方法(大津展之、電子情報通信学会論文誌Vol.J63−D No.4 pp349−356)を用いるなどの方法がある。
【0039】
図8は、2値化閾値設定処理により求められたブロックごとの閾値を用いて入力画像Gを2値化する手法の一例を示している。図8の例では、間引き数N=2としているが、他の場合も同様である。以下、図8について詳細に説明する。
【0040】
まず、2個間引きによって作成された画像を用い、各ブロックに対する閾値を求める。閾値を求めた結果を、図8右図に示す。ただし、図8右図においては、求められた閾値をグレースケール値で表示している。
【0041】
次に、各ブロックのブロック位置を拡大する。例えば、2個間引きされた画像において(0,0)〜(25,10)までを含むブロック(最も左のブロック)は、2倍に拡大して、(0,0)〜(50,20)までを含むブロックとする。
【0042】
次に、このブロック情報、及び各ブロックにおける2値化の閾値を元に、入力画像Gを2値化する。2値化処理は、入力画像Gの各画素において、各画素が属するブロックにおける閾値よりも値が小さければ画素の2値化結果を1、同様に大きければ画素の2値化結果を0とする処理である。つまり、入力画像Gの各ブロックにおける画素値が、各ブロックの閾値より黒い画素が1、白い画素が0となる。
【0043】
この処理を行った結果が、図8下の2値化結果Rである。なお、図8下の2値化結果Rにおいては、処理結果が1となった画素を黒で、0となった画素を白で表している。
【0044】
ここで、入力画像Gを2値化する方法は、上記に限らず、画像処理機能3として、2値化閾値設定処理以外に行抽出処理を加え、この行抽出処理の結果行であると判断された位置のみを2値化するなどとしてもよい。
【0045】
また、画像処理機能3が画像処理の結果として出力する2値化画像は入力した画像を2値化したものに限らず、入力した画像を鮮鋭化処理やぼかし処理、あるいはエッジ強調処理などを加えた画像を2値化してもよい。また、2値化した画像をN個間引きまたはM倍拡大するなどしてもよい。
【0046】
図9は、画像入力機能1によって入力された画像に対して画像処理機能3が所定の画像処理を行い、結果出力手段に対して画像処理の結果を出力するまでの流れの1例を示したものである。ただし、図中入力画像G1、処理対象画像I1は、画素値として0〜255を取り、0が黒、255が白であり、ある画素Xの画素値Yが小さいほど該画素Xは黒く、同様に大きいほど白い、という条件を満たす画像とする。本実施例においては、グレースケール画像として上記の画像Iを定義する。
【0047】
以後、図9に沿って処理の流れを説明する。なお、PIXELMAXの値は6250、PIXELMINの値は2000と設定されているものとする。
【0048】
まず、画像入力機能1によって、例えばデジタルカメラによって撮影された幅500、高さ50の画像を読み込み、グレースケール画像である入力画像G1を取得する。
【0049】
次に、画像制御機能2によって、処理対象画像I1を生成する。この処理は、図5に示すフローチャートに従って以下のように行われる。
【0050】
まず、入力画像中の画素数pixelsを計算する。入力画像の幅は500、高さが50であるので、pixels=500*50=25000ピクセルである。
【0051】
次に、pixelsとPIXELMAXを比較する。25000>6250であるので、25000<=X*X*6250となる最大のXを求める。
【0052】
1*1*6250<25000、2*2*6250=25000>=25000であるので、これよりX=2となる。従って、間引き数N=2となる。
【0053】
次に、図6に示したサイズN*Nの最左最上画素値フィルタにN=2を適用した2*2フィルタによって、入力画像G1に対するフィルタリング処理を行い、間引きを行う。
【0054】
この処理により、幅250、高さ25の処理対象画像I1が得られる。I1の画素数を計算すると、当然ながら、250*25=6250である。
【0055】
次に、画像処理機能3に対して前記I1を入力し、画像処理機能3が入力した処理対象画像I1の2値化処理を行う。この処理によって、処理時間T1で2値化結果である出力画像R1を得る。T1は、1画素あたりに要する処理時間をtとすれば、6250tと表すことができる。
【実施例2】
【0056】
図10は、図9と大きさの異なる入力画像G2に対して適用した場合の例を示したものである。
【0057】
図9によって示した実施例1と同様にして、入力画像G2に対する間引き数Nを求めると、入力画像中の画素数が1000*100=100000なので、3*3*6250=56250<100000、4*4*6250=100000>=100000より間引き数N=4を得る。
【0058】
次に、先に示した実施例1と同様に、サイズN*Nの最左最上画素値フィルタを用いて入力画像G2の間引きを行う。本実施例では、N=4であるので、これを適用すると、幅250、高さ25の処理対象画像I2が得られる。
【0059】
次に、画像処理機能3に対して前記I2を入力し、2値化処理を行う。この処理によって、処理時間T2で2値化結果である出力画像R2を得る。T2は、1画素あたりに要する処理時間をtとすれば、6250tと表すことができる。
【0060】
ここで、前述の2つの実施例1,2における画像処理機能3の処理時間T1とT2を比較すると、両者とも6250t時間で2値化処理が行われている。すなわち、500*50の入力画像G1に対しても、1000*100の入力画像G2に対しても、同様の時間6250tで2値化処理が終了することとなり、入力画像の大きさによらず処理時間を一定化することができている。
【0061】
図11は、PIXELMAX6250、PIXELMIN2000を用いた場合における、入力画像Gの画素数と処理対象画像Iの画素数の変化を表したグラフである。間引き数Nの決定方法、間引き方法などは全て前記実施例と同様である。
【0062】
図11からわかるように、入力画像Gの画素数が変化しても、処理対象画像Iの画素数はほぼ一定に保たれ、もって画像処理機能3における処理時間もほぼ一定に保たれることがわかる。
【0063】
ここで、上記の実施例における機能(この機能を実現する処理プログラム)を、速度の異なる新たな機器に移植することを考える。この場合、上述のとおりPIXELMAX及びPIXELMINの変更によって処理時間が制御可能であるため、上記のPIXELMAX及びPIXELMINのみを変更すればプログラムを移植することが可能となる。すなわち、本発明によれば、異なる機器に対するプログラムの移植を容易に行うことができるようになる。なお、前記では移植する際にPIXELMAX及びPIXELMINの値を決定したが、これらの値は制御機能によってプログラムが実行される環境の情報、例えばCPUの演算速度などに基づいて自動的に決定されてもよい。
【実施例3】
【0064】
実施例3では、実施例1,2と同様に画像処理プログラムを搭載したパーソナルコンピュータの例について説明する。
【0065】
図12は、実施の形態3における本発明のプログラムの基本的な構成図の一例を示したものである。図12の画像処理プログラムは、実施の形態1,2と同様の画像入力機能1、画像制御機能2、画像処理機能3、結果出力機能4及び画像制御機能2において画像を制御する方法に加えて、前記制御に用いられるパラメータなどをユーザが指定する機能を提供するユーザ入力機能5を具備する。
【0066】
ユーザ入力機能5は、画像制御機能2における処理選択情報の生成をユーザが制御する機能である。本実施例では、画像制御機能2におけるPIXELMAX、PIXELMINを設定する機能であるとするが、これ以外の処理、例えば画像処理機能2に実行可能な処理を複数、例えば文字認識処理とQRコード解析処理を用意し、動作させるべき画像処理をパラメータとして指定させるなどとしてもよい。上述の例では、例えば文字認識であれば文字行抽出処理を行い、QRコード解析処理であればQRコードの探索を行うように、画像制御機能2における動作を変更することができる。また、鮮鋭化処理・ぼかし処理のパラメータを決定する関数を設定するなどしてもよい。上述の例では、設定された関数によってパラメータを決定することにより、動作を変更することができる。
【0067】
本実施例におけるユーザ入力機能5は、図12に示すように、PIXELMAX及びPIXELMINの値を変化させることのできるスクロールバーを持ったユーザ設定画面を表示し、画面を通じた操作によって、ユーザにPIXELMAX及びPIXELMINの値を変更するインターフェースを提供することによって実現する。なお、この場合は、スクロールバーによって実現したが、例えば値を直接入力可能にする設定を複数用意して、リストボックスなどから選択させてもよい。また、例えばPIXELMINをPIXELMAXの関数として定義し、PIXELMAXのみを上記のような手段で操作させたり、入力画像最大サイズ、入力画像最小サイズ、入力画像平均サイズを設定させ、上記3つの値からPIXELMAX及びPIXELMINを計算させてもよい。
【0068】
図13は、本実施例3の処理例である。最初に、図9に示した実施例1と同様のPIXELMAX=6250が設定されている場合を考える。
【0069】
この場合、入力画像G3が図9に示した入力画像G1と同様の大きさであるから、前述の場合と同じく、間引き数N=2となり、処理対象画像I3はI1と同じく幅250、高さ25となる。
【0070】
ここで、ユーザが、ユーザ設定画面に表示されているスクロールバーを右に動かし、PIXELMAXを25000に変更したとする。この状態で、同様に入力画像G3に対する処理を行うことを考える。
【0071】
先に示した実施例1と同様に、図5に従って入力画像G3に対する間引き数ないし拡大数を計算すると、1*1*25000=50*500=25000であるので、N=M=1となる。これにより、処理対象画像I3aは幅500、高さ50となる。
【0072】
以上によって示されるように、ユーザによる操作によって、処理対象画像の大きさが変更されている。すなわち、本実施例によれば、ユーザが、ユーザ入力機能5を介して画像制御機能2を操作することが可能である。
【0073】
なお、上記では画像処理プログラムの例によって示したが、例えばこのような機能を搭載したICチップなどによって構成される装置においても同様に制御機能を操作することが可能である。装置の場合、ユーザ入力機能は、例えばディップスイッチなどによって実現されてもよい。
【実施例4】
【0074】
図14は、実施例4として、実施例3と異なる動作方法を示した例である。ここで、PIXELMAX=6250が設定されている場合を考える。また、画像制御機能2は、可能な場合には鮮鋭化処理・ぼかし処理を行ってから2値化処理を行うように変更されているものとする。また、画像出力機能4によって結果が出力されるまでに要する時間の上限としてT、間引き処理に要する処理時間の予測値としてt1、鮮鋭化処理に要する処理時間の予測値としてt2、2値化処理に要する処理時間の予測値としてt3が、それぞれ設定されているものとする。
【0075】
図14の例では、画像制御機能2は、最初に間引き数Nを決定する。この場合、上述の通り間引き数N=2となり、処理対象画像I3が得られる。この間引き処理に要した時間をt1’とする。画像処理機能は、t1’及び処理対象画像I3を出力する。
【0076】
次に、画像制御機能2は、間引き処理に要した時間t1’、間引き処理を行った結果の処理画像I3、選択可能な他の処理に要する時間の予測値t2及びt3、及び実行時間の上限値Tに基づき、次の処理を選択する。この実施例では、図14に示したとおり、t1’+t2+t3がTより小さければ鮮鋭化処理・ぼかし処理を行ってから2値化処理を行う。そうでない場合は、鮮鋭化処理・ぼかし処理を行わず、2値化処理を行う。
【0077】
以上によって示されるように、実際の処理時間、および処理時間の予測値に基づいて処理を選択することにより、処理時間を一定範囲に保ちつつ、処理を変更することが可能となる。
【0078】
なお、この実施例ではt1、t2、t3は設定されているものとしたが、これらの値は自動的に計算されてもよい。また、処理の選択に用いる処理に要する時間の予測値としては、t2、t3ではなく、t1とt1’の比に基づいて補正したt2’、t3’を用いてもよい。また、本実施例は、実施例3のプログラムに基づいているが、同様に実施例1のプログラムに基づいてもよい。
【0079】
以上説明した各実施例では、画像制御機能2が処理対象画像を生成していたが、この処理対象画像を画像処理機能3自身が生成することでも良い。具体的には、画像制御機能2が画像入力機能1が出力した入力画像Gを参照して、この入力画像Gを画像処理機能3で上記処理対象画像を生成するための画像処理の内容を指定するための処理選択情報を決定し、入力画像Gと処理選択情報とを画像処理機能3へ出力する。
【0080】
処理選択情報とは、画像処理機能3にどのような処理対象画像を生成するための画像処理を行わせるのか、その処理内容を指定する情報とその処理内容の詳細を指定するためのパラメーターとから構成されるものである。この処理選択情報で指定される画像処理としては、間引き、拡大、鮮鋭化、ぼかし等である。画像処理機能3は、画像制御機能2から入力した入力画像Gに対して処理選択情報により指定される画像処理を行い処理対象画像を生成する機能を持つ。画像処理機能3は、自身で生成した処理対象画像を用いて、上記した文字認識処理、顔画像認識処理、指紋画像認識処理、QRコード解析処理、2値化処理、2値化閾値設定処理、文字行位置抽出処理、平滑化処理、鮮鋭化処理等や、これらの処理の組み合わせの画像処理を行う。
【産業上の利用可能性】
【0081】
様々な対象画像に対して、処理に要する時間を一定化させ、また、様々な機器に対する移植性の高い画像処理プログラムを構築することが不可欠な用途にも適用できる。
【図面の簡単な説明】
【0082】
【図1】本発明における画像処理方法の構造を示した図である。 (実施例1)
【図2】鮮鋭化またはぼかしを判別するフローチャートである。 (実施例1)
【図3】微分画像の説明図である。 (実施例1)
【図4】鮮鋭化またはぼかしの1例の説明図である。 (実施例1)
【図5】間引き数N、拡大数Mの決定方法を示した図である。 (実施例1)
【図6】画像間引き方法を示した図である。 (実施例1)
【図7】画像拡大方法を示した図である。 (実施例1)
【図8】処理結果を基に入力画像を2値化する方法を示した図である。(実施例1)
【図9】本発明の画像処理方法を用いた画像処理を示した図である。(実施例1)
【図10】同上の画像処理の異なる一例を示した図である。 (実施例2)
【図11】入力画像と処理対象画像の画素数の関係を示した図である。(実施例2)
【図12】本発明における異なる画像処理方法の構造を示した図である。(実施例3)
【図13】同上の画像処理方法の一例を示した図である。 (実施例3)
【図14】同上の画像処理の異なる一例を示した図である。 (実施例4)
【符号の説明】
【0083】
1…画像入力機能、2…画像制御機能、3…画像処理機能、4…結果出力機能、5…ユーザ入力機能、G,G1,G2,G3…入力画像、H…2値化結果、I,I1,I2,I3,I3a…処理対象画像、R1,R2…処理結果画像、t1,t2,t3…処理の実行時間の予測値、t1’…実行時間。
【特許請求の範囲】
【請求項1】
画像を入力する画像入力ステップと、
入力された画像から一定の範囲の画素数の処理対象画像を生成する処理対象画像生成ステップと、
前記処理対象画像を入力し所定の画像処理をする画像処理ステップとを具備し、
前記画像処理ステップにおける処理時間を一定範囲に収めたことを特徴とする画像処理方法。
【請求項2】
前記処理対象画像生成ステップは、一定の範囲の画素数の処理対象画像を生成するための処理パラメータを指定するための処理パラメータ入力ステップを具備することを特徴とする請求項1記載の画像処理方法。
【請求項1】
画像を入力する画像入力ステップと、
入力された画像から一定の範囲の画素数の処理対象画像を生成する処理対象画像生成ステップと、
前記処理対象画像を入力し所定の画像処理をする画像処理ステップとを具備し、
前記画像処理ステップにおける処理時間を一定範囲に収めたことを特徴とする画像処理方法。
【請求項2】
前記処理対象画像生成ステップは、一定の範囲の画素数の処理対象画像を生成するための処理パラメータを指定するための処理パラメータ入力ステップを具備することを特徴とする請求項1記載の画像処理方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図8】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図8】
【公開番号】特開2006−101379(P2006−101379A)
【公開日】平成18年4月13日(2006.4.13)
【国際特許分類】
【出願番号】特願2004−287130(P2004−287130)
【出願日】平成16年9月30日(2004.9.30)
【出願人】(000003078)株式会社東芝 (54,554)
【出願人】(301063496)東芝ソリューション株式会社 (1,478)
【Fターム(参考)】
【公開日】平成18年4月13日(2006.4.13)
【国際特許分類】
【出願日】平成16年9月30日(2004.9.30)
【出願人】(000003078)株式会社東芝 (54,554)
【出願人】(301063496)東芝ソリューション株式会社 (1,478)
【Fターム(参考)】
[ Back to top ]