以下、本発明をその実施の形態を示す図面に基づいて具体的に説明する。
実施の形態1.
図1は本発明に係る画像処理装置の内部構成を示すブロック図である。本発明に係る画像処理装置は、制御部1、画像入力部2、画像処理部3、画像出力部4、記憶部5、及び操作部6を備えている。制御部1は、前記ハードウェア各部を制御するCPUと、制御の際に必要なデータ等を一時的に保持するRAMとを備えている。記憶部5は、例えば、不揮発性の半導体メモリであり、ハードウェア各部を制御するための制御プログラム、各種データを記憶している。制御部1は装置の電源投入時等において記憶部5から制御プログラムをロードし、記憶部5内の各種データを参照しながら当該制御プログラムを実行することにより、全体として本発明に係る画像処理装置として動作させる。また、操作部6は、利用者からの操作指示を受付けるための各種ハードウェアキーを備えている。
画像入力部2は、原稿の画像を光学的に読取る手段であり、読取用の原稿に光を照射する光源、CCD(Charge Coupled Device)のようなイメージセンサ等を備えている。画像入力部2では、所定の読取り位置にセットされた原稿からの反射光像を当該イメージセンサに結像させ、RGBデータ(R:Red, G:Green, B:Blue)を出力する。画像入力部2が出力するRGBデータは画像処理部3へ入力される。
画像処理部3は、画像入力部2から出力されるRGBデータに対して各種の色調整処理を行って出力用の画像データを生成する。生成した画像データは画像出力部4へ出力される。本実施の形態では、出力用の画像データとしてCMYKデータ(C : Cyan, M : Magenta, Y : Yellow, K : Black)を生成するようにしている。なお、画像処理部3の内部構成、動作等については後に詳述することとする。
画像出力部4は、画像処理部3が出力する画像データに基づいて用紙、OHPフィルム等のシート上に画像形成を行う手段である。そのため、画像出力部4は、感光体ドラムを所定の電位に帯電させる帯電器、外部から受付けた画像データに応じてレーザ光を発して感光体ドラム上に静電潜像を生成させるレーザ書込装置、感光体ドラム表面に形成された静電潜像にトナーを供給して顕像化する現像器、感光体ドラム表面に形成されたトナー像を用紙上に転写する転写器等(不図示)を備えており、電子写真方式にて利用者が所望する画像を用紙上に形成する。なお、レーザ書込装置を用いた電子写真方式により画像形成を行う他、インクジェット方式、熱転写方式、昇華方式等により画像形成を行う構成であってもよい。
本実施の形態では、画像入力部2を画像の読取手段として構成し、画像出力部4を画像形成手段として構成したが、外部から画像データを受信する手段、外部に画像データを送信する手段として構成するようにしてもよく、それらを適宜に組み合わせた構成であってもよい。例えば、画像入力部2が画像の読取手段、画像出力部4が画像データの送信手段である場合には、本発明はスキャナ装置(画像読取装置)として動作することとなり、画像入力部2が画像データの受信手段、画像出力部4が画像形成手段である場合には、本発明はプリンタ装置(画像形成装置)として動作することとなる。また、画像の読取手段、画像形成手段、画像データの送受信手段を備えるデジタル複合機にも適用できることは勿論のことである。
図2は画像処理部3の構成を説明するブロック図である。画像処理部3は、AD変換部31、シェーディング補正部32、入力階調補正部33、領域分離処理部34、色補正部35、黒生成・下色除去部36、画質調整部37、出力階調補正部38、階調再現処理部39を備えている。
AD変換部31は、画像入力部2から入力されたRGBデータをデジタル形式のデータに変換する。シェーディング補正部32は、AD変換部31から出力されるデジタル形式のRGBデータに対して、画像入力部2の照明系、結像系、撮像系で生じる各種の歪みを取り除く処理を施す。なお、本実施の形態では、AD変換、シェーディング補正を画像処理部3の内部で行う構成としたが、AD変換及びシェーディング補正を施して得られたデジタルRGBデータを外部から受付ける構成であってもよく、また、その場合にはAD変換部31及びシェーディング補正部32を搭載している必要がないことは勿論のことである。
入力階調補正部33は、シェーディング補正部32から受け取ったRGBデータのカラーバランスを整える処理を行うと共に、本画像処置装置が処理し易い濃度信号に変換し、後段の領域分離処理部34へ出力する。
領域分離処理部34は、RGBデータに基づいて入力画像中の各画素を文字領域、網点領域、写真領域の何れかに分離するものである。領域分離処理部34は、分離結果に基づき、各画素がどの領域に属しているかを示す領域識別情報を黒生成・下色除去部36、画質調整部37、及び階調再現処理部39に出力すると共に、入力階調補正部33より出力されたRGBデータをそのまま後段の色補正部35へ出力する。領域分離の手法としては、公知の手法を用いることができる。例えば、「画像電子学会予稿90−60−04」には、網点領域では画像信号の変動が大きいこと、及び背景に比べて濃度が高いことを利用して、網点領域と非網点領域とを分離できることが記載されている。また、文字領域では、最大信号レベルと最小信号レベルとの差が大きく、小領域内の濃度が高いことを利用して、文字領域と写真領域とを分離できることが記載されている。
色補正部35は、領域分離処理部34から出力されたRGBデータをCMYデータに変換すると共に、色再現の忠実化実現のために不要吸収成分を含むCMY色材の分光特性に基づいた色濁りを取り除く処理を行うものである。CMYデータに変換された後、色濁りを取り除く処理が施されたデータは黒生成・下色除去部36へ出力される。
黒生成・下色除去部36は、色補正後のCMYの3色データから黒(K)データを生成する黒生成、元のCMYデータから黒生成で得たKデータを差し引いて新たなCMYデータを生成する処理を行うものであり、CMYの3色のデータからをCMYKの4色のデータに変換する。黒生成処理の一例として、スケルトンブラックによる黒生成を行う方法が知られている。この方法では、スケルトンカーブの入力特性をy=f(x)、入力されるデータをC,M,Y、出力されるデータをC’,M’,Y’,K’、下色除去率をα(0<α<1)とすると、黒生成・下色除去処理は、K’=f{min(C,M,Y)}、C’=C−αK’、M’=M−αK’、Y’=Y−αK’のように表すことができる。
画質調整部37は、黒生成・下色除去部36より入力されるCMYKデータに対し、領域識別情報を基にデジタルフィルタによる空間フィルタ処理を行い、空間周波数特性を補正することによって出力画像のぼやけ、粒状性劣化等を防ぐ処理を行うものである。本発明は、特にこの画質調整部37に関するものであり、所定の画素数からなるブロック毎に画像の属性についての判定を行い、文字領域かつエッジ画像に属すると判定した場合には黒文字又は色文字の再現性を高めるためにエッジ強調処理を行う。また、網点領域かつ非エッジ画像に属すると判定した場合にはモアレの発生等を抑えるために平滑化処理を行う。
出力階調補正部38では、濃度信号などの信号を出力先の特性に応じた網点面積率に変換する出力階調補正処理を行う。
階調再現処理部39では、最終的に画像を画素に分離してそれぞれの階調を再現できるように処理する階調再現処理を行う。例えば、領域分離処理部34にて写真に分離された領域に関しては、階調再現性を重視したスクリーンでの二値化又は多値化処理を行い、領域分離処理部34にて文字に分離された領域に関しては、高周波数の再現性に適した高解像度のスクリーンでの二値化又は多値化処理を行う。
以下、画質調整部37の詳細について説明する。図3は画質調整部37の内部構成を示すブロック図である。画質調整部37は、周波数変換部371、ブロック判定部372、演算処理部373、逆周波数変換部374を備えており、前段の黒生成・下色除去部36から出力される画像データ(例えば、256階調の画像データPi(X,Y))を空間周波数成分に変換し、空間周波数成分の判定結果に応じた処理を施し、これらのデータを濃度領域に再変換した画像データ(例えば、256階調の画像データPo(X,Y))を出力する。ここで、図4の概念図に示したように、画像データPi(X,Y)は、X方向(右方向)及びY方向(下方向)の2次元マトリクス状に配置された画素によって構成された画素データのうち、Y番目のライン上のX番目の画素位置における画素データを表している。本実施の形態では、8×8画素により構成されるブロック単位の画像データを周波数変換部371に入力させ、このブロック単位で後述する各処理を行う。
周波数変換部371は、ブロック単位で入力された画像データに対し、周波数領域への変換を行う。本実施の形態では、直交変換の1つである離散コサイン変換(DCT : Discrete Cosine Transform)を利用して周波数領域への変換(以下、DCT変換という)を行う。本実施の形態では、図4に示したように、2次元画像に対して最も左上の画素を含むブロックから右方向(X方向)にブロック単位でDCT変換を行い、ブロック単位でラインを変更しながら最終的に最も右下の画素を含む最終ブロックまでDCT変換を行う。DCT変換の式は、入力画像をAij、出力画像をBij、入力画像AijのサイズをM行N列(M,Nは正の整数)とした場合、次式のように表すことができる。
周波数変換部371では、8×8画素を1ブロックとする画像データを受取り、その8×8画素のブロックについてDCT変換を行い、DCT変換された空間周波数成分Qj(S,T)をブロック判定部372及び演算処理部373へ出力する。図5は変換前後のブロックを示す概念図である。
ブロック判定部372は、周波数成分判定部372a、ブロック領域判定部372b、及び処理内容判定部372cを備えており、入力された各ブロック毎の画像の特徴を検出するとともに、検出した特徴に基づき、そのブロックに対して施すべき処理(本実施の形態ではエッジ強調処理または平滑化処理)を定める。すなわち、ブロック判定部372は、本発明に係る画像処理装置の判定手段として機能する。
周波数成分判定部372aには、周波数変換部371にて空間周波数成分に変換されたブロック単位のデータが入力され、それぞれのブロック内において直流成分の近傍位置での空間周波数成分の大きさを判定する。図6は空間周波数成分に変換された後のブロックを示す概念図である。本実施の形態では、8×8画素のブロックからなる画像データをDCT変換することにより、8×8のマトリクスサイズを有する空間周波数成分(DCT係数)のデータを取得するようにしている。8×8個の要素のうち、左上の位置に対応する成分が直流成分であり、それ以外の位置に対応する成分が交流成分となる。周波数成分判定部372aは直流成分の近傍の位置における周波数成分を表すDCT係数の大きさを求め、それぞれ少なくとも1つが予め定めた閾値よりも大きい否かを判定する。
例えば、図6の太線で囲まれるエッジブロック判定領域(すなわち、3×3のマトリクスサイズを有する領域)において、直流成分の位置の座標を(s0,t0)、その位置での空間周波数成分をQ(s0,t0)、その右隣の位置の座標を(s0+1,t0)、その位置での空間周波数成分をQ(s0+1,t0)、更にその右隣の位置の座標を(s0+2,t0)、その位置での空間周波数成分をQ(s0+2,t0)とし、一行下がって左側から順に各位置に対応する空間周波数成分をそれぞれQ(s0,t0+1)、Q(s0+1,t0+1)、Q(s0+2,t0+1)、更に一行下がって左側から順に各位置に対応する空間周波数成分をそれぞれQ(s0,t0+2)、Q(s0+1,t0+2)、Q(s0+2,t0+2)とした場合、エッジを含むブロック(エッジブロック)であるか否かの判定を、予め定めた閾値α(αは正の定数)を用いた以下の式により行う。
|Q(s0+n,t0+m)|>α、ここでn,m=0,1,2、かつn=m≠0
上記の判定式を満たすn,mの組が存在する場合、すなわち、直流成分以外の空間周波数成分(交流成分)のうち、何れかの大きさが閾値αより大きいと判断される場合には処理対象のブロック(以下、処理ブロックとする)がエッジブロックであると判定する。また、交流成分の何れの大きさも閾値α以下であると判断される場合には処理ブロックが非エッジブロックであると判定する。すなわち、周波数成分判定部372aは画像の特徴(エッジ成分を含むか否か)を検出する検出手段として機能し、この周波数成分判定部372aによる判定結果は処理内容判定部372cへ出力される。
ここで、前述した手法によりブロックにエッジが含まれているか否かを判定できる理由について説明する。ある自然画像に対してDCT変換後の各ブロックのなかで大きな値をもつものほど高い輝度を割り当てるとすると、実行後の結果から低周波数側に相当する成分(各ブロックの左上部分)の輝度が高くなる。すなわち、低周波数成分が多くの情報量を持つことになる。これは、相関の強い信号は、周波数上で見ると低周波数領域に信号の電力が集中することが知られている。このことは、各DCT係数において電力が集中する係数と、あまり集中しない係数とが存在することを意味する。換言すると、各DCT係数の大きさに大きな偏りが生じることになる。ある自然画像に対してDCT変換を行なって、DCT係数を見てみると直流成分のDCT係数がとくに大きな値を持ち、交流成分のDCT係数においても低周波成分の値が大きいことが分かる。
一方、ソリッド画像(エッジ成分を持たない濃度が均一な画像)にDCT変換を行なった場合、直流成分しか値をもたず、直流成分の周辺の低周波数成分は0となる。これに対して、エッジ成分を有する、あるいは、濃度の濃淡を有するなどの特徴量をもつ画像(自然画像など)の場合では、直流成分の周辺の低周波成分にも大きな値を示し、これらの値によって、原画像が特徴量をもっているかどうかの判断材料として使用できる。また、主走査方向にエッジ成分が目立つ場合や副走査方向にエッジ成分が目立つ場合などに、直流成分の右隣りの交流成分や真下の交流成分の値が影響を受けて大きくなる。以上の理由から、低周波数成分の絶対値の大きさを調べることにより、エッジ成分を含むか否かの判定をすることができる。
なお、上記の判定式で用いる閾値αは任意に設定することができる。例えば、閾値αの設定値が小さい場合には処理対象ブロックがエッジブロックであると判定され易く、閾値αの設定値が大きい場合には処理ブロックがエッジブロックであると判定されにくくなる。ここでは、一つの例としてα=64を設定することができる。このαを設定しておくことにより、処理ブロック単位でそれぞれ濃度領域での画像がエッジ成分を含んでいるか否かの判定材料として用いることができる。また、ブロック領域判定部372bの判定結果に応じて閾値αを設定するようにしてもよい。例えば、文字領域である場合にはエッジブロックであることが容易に判定されるような閾値α1(例えば、α1=32)を設定し、網点領域である場合にはエッジブロックであることが容易に判定されないような閾値α2(例えば、α2=96)を設定することも可能である。更に、入力する画像に応じてユーザ自身が操作部6を通じて閾値αを設定する構成であってもよい。
また、エッジブロック判定領域のマトリクスサイズを本実施の形態では3×3画素としたが、ハードウェアの条件が許すのであれば、低周波数領域にて更に広い範囲まで拡げるようにしてもよい。
ブロック領域判定部372bは、領域分離処理部34から画素毎の領域識別情報を受け取り、ブロック全体に対して領域の判定を行う。このブロック領域判定部372bにおけるブロック全体の領域判定は、画素単位で判定された領域識別情報を基に処理ブロック内(8×8画素)で文字領域に属する画素、網点領域に属する画素、写真領域に属する画素の3種類の画素をカウントし、それぞれの比率を求め、その結果に基づいてブロック全体の判定を行うものである。
なお、本実施の形態では、領域分離処理部34にて画素毎に文字領域、網点領域、写真領域に分離し、領域分離処理部34から出力される領域分離情報に基づき、ブロック領域判定部372bにてブロック単位の領域分離を行うようにしたが、領域分離処理部34においてブロック単位の領域分離を行い、分離結果を処理内容判定部372cに入力させる構成であってもよい。この場合、画質調整部37にブロック領域判定部372bを備えている必要がないことは勿論のことである。
図7はブロック領域判定部372bで用いる判定基準と判定結果との関係をまとめた図表である。ブロック領域判定部372bは、処理ブロックを構成する64画素のうち、文字領域に属すると判定された画素、網点領域に属すると判定された画素、及び写真領域に属すると判定された画素がどれくらいの割合で含まれているかを判定する。具体的には、領域A、領域B、領域Cの3つの領域が存在する場合(ただし、領域A、領域B、領域Cは文字領域、網点領域、写真領域の何れかに対応する)であって、その内の領域Aが処理ブロックの60%を占める場合には、その処理ブロックは領域Aに属する画像であると判定し、各領域A,B,Cの占める割合が60%未満である場合には、処理ブロックはその他の画像であると判定する。また、領域A、領域Bの2つの領域が存在する場合であって、その内の領域Aが処理ブロックの70%を占める場合には、その処理ブロックは領域Aに属する画像であると判定し、各領域A,Bの占める割合が70%未満である場合には、処理ブロックはその他の画像であると判定する。更に、領域Aのみが存在する場合には、その処理ブロックは領域Aに属する画像であると判定する。
なお、前述した判定基準は処理ブロックが属する画像領域を判定するための一例であり、好ましい画像が得られるように適切な値を設定すればよい。
このように、領域判定手段としてのブロック領域判定部372bでは、処理ブロック内で計算された判定画素が多く偏っている場合は、偏っているとされる領域を判定結果とするが、ブロック内に2つの領域が同じ程度の割合で存在する場合には、1つの領域に属すると判定せずにその他の領域であると判定し、後段の処理内容判定部372cへ判定結果を出力する。
処理内容判定部372cでは、周波数成分判定部372aによる判定結果と、ブロック領域判定部372bによる判定結果とを組み合わせて総合判定を行い、後述する演算処理部373での処理内容を定める。図8は周波数成分判定部372aによる判定結果とブロック領域判定部372bによる判定結果との組み合わせにより定まる処理内容をまとめた図表である。この図表で定められているように、領域判定によりブロック全体が文字領域であると判定された場合であって、周波数成分の判定結果がエッジブロックを示す場合には、演算処理部373で実行すべき処理をエッジ強調処理と判定する。また、領域判定によりブロック全体が文字領域であると判定された場合であって、周波数成分の判定結果が非エッジブロックを示す場合には、空間周波数成分Qj(S,T)に対して施す処理が選択されず、演算処理部373ではそのまま空間周波数成分Qj(S,T)のデータを逆周波数変換部374へ送出する処理が行われる。
ブロック全体の領域判定結果が文字領域であり、周波数成分の判定結果が非エッジブロックである場合としては、文字の外側のエッジ部分だけでなく、文字の内側も含んだ文字領域として誤判定される場合も含んでいる。すなわち、本実施の形態で用いるブロックのサイズ(8×8画素)よりも太い文字(例えば、幅が10画素くらいの太さの文字)が含まれている場合には、その内側も文字領域と誤判定してしまう場合があるが、周波数成分でのエッジ判定を行うことにより誤判定を防止することができる。
また、領域判定によりブロック全体が網点領域であると判定された場合であって、周波数成分の判定結果が非エッジブロックを示す場合には、演算処理部373で実行すべき処理を平滑化処理と判定する。領域判定により網点領域であると判定された場合であって、周波数成分の判定結果がエッジブロックを示す場合には、空間周波数成分Qj(S,T)に対して施す処理が選択されず、演算処理部373ではそのまま空間周波数成分Qj(S,T)のデータを逆周波数変換部374へ送出する処理が行われる。
網点領域には低周波数成分が含まれないため、通常、周波数成分の判定結果は非エッジブロックを示す。しかし、地図上に存在する文字のように網点領域に文字が存在する場合、又は網点文字、色文字のように網点で構成された文字の場合には領域判定で網点領域と判定され、周波数成分の判定結果ではエッジブロックと判定され得る。この場合にエッジ強調処理を行うとモアレが発生する虞があり、しかも、平滑化処理を行うと文字部分がぼやける虞があるため、これらの処理を施さないことが望ましい。このように、領域判定の判定結果と周波数成分の判定結果とを用いて総合的に判定することにより、判定精度を上げることができ、最適な処理を実行することが可能である。
また、領域判定によりブロック全体が写真領域であると判定された場合であって、周波数成分の判定結果がエッジブロックを示す場合には、演算処理部373で実行すべき処理をエッジ強調処理と判定する。領域判定によりブロック全体が写真領域であると判定された場合であって、周波数成分の判定結果が非エッジブロックを示す場合には、演算処理部373で実行すべき処理を平滑化処理と判定する。
更に、領域判定によりブロック全体が前述した何れの領域にも該当しないと判定された場合、すなわち、その他の領域と判定された場合、空間周波数成分Qj(S,T)に対して施す処理が選択されず、演算処理部373ではそのまま空間周波数成分Qj(S,T)のデータを逆周波数変換部374へ送出する処理が行われる。
例えば、ブロック内に文字領域と網点領域とが同程度含まれている場合、エッジ強調処理を施すと網点領域も強調され、平滑化処理がなされている網点領域との境界部分で違和感が生じる。一方、平滑化処理を行う場合は、文字領域に対して境界部分での違和感が生じる。従って、このような場合には、エッジ強調処理、平滑化処理の双方を行わないことにより画質劣化を防止することができる。
演算処理部373は、ブロック判定部372から出力される判定結果を受けてエッジ強調処理あるいは平滑化処理を行うか、又は周波数変換部371から出力される空間周波数成分Qj(S,T)のデータをそのまま逆周波数変換部374へ送出する処理を行う。
まず、演算処理部373にてエッジ強調処理を行う場合について説明する。図9はエッジ強調処理を施す領域について説明する説明図である。本実施の形態では8×8画素の処理ブロックのうち、垂直方向のみの成分を有するDCT係数、水平方向のみの成分を有するDCT係数、及び両者の交点位置に対応するDCT係数について演算処理を施すことによりエッジ強調処理を実行する。この演算処理を施す領域については、例えば、記憶部5内に予め設定されている。
エッジ強調処理を行う場合の演算処理では、処理ブロックの行番号と列番号とを加算した値、及び予め定めた定数をDCT係数Qj(S,T)に乗じることによって変換後のDCT係数Qk(S,T)を取得する。図10の概念図には、演算処理を施す領域において処理ブロックの行番号と列番号とを加算した値を示している。演算処理を施す領域においてDCT係数Qk(S,T)は次式のように表すことができる。
Qk(S,T)=Qj(S,T)×(行番号と列番号との加算値)×(定数)
なお、演算処理を施さない領域においては、入力されたQj(S,T)をそのまま、演算処理後の値としている。ここで、前述した式の定数としては、例えば、0.35を用いることができる。ただし、この値は一例にすぎず、ある微小な値で強調されるような値であればよい。また、この値によって強調されるため、エッジが強調されすぎないかどうかなどの全体のバランスを考え、実際の出力画像などを用いて画質の評価を行いながら決定するとよい。このような処理を行った場合でも、直流成分については変換しないため、ブロック全体の平均濃度は維持される。
次いで、演算処理部373にて平滑化処理を行う場合について説明する。図11は平滑化処理を施す領域について説明する説明図である。本実施の形態では、8×8画素の処理ブロックのうち、直流成分とその周辺とを除く領域において各DCT係数に演算処理を施し、平滑化処理を行う。より具体的には、DCT係数Qj(S,T)のうち、3<S+T≦14を満たす位置に対応したDCT係数Qj(S,T)について演算処理を施す。この演算処理を施す領域については、例えば、記憶部5内に予め設定されている。
図12は平滑化処理の際に用いる2次元マトリクスデータの一例を示す概念図である。図12に示したマトリクスデータは8×8のDCT係数のそれぞれに対応する値M(S,T)を持ち、0≦S+T≦3におけるM(S,T)の値は1であり、3<S+T≦14におけるM(S,T)は1以上の値をとる。
図12に示した2次元マトリクスデータは、一般にコントラスト感度関数(以下ではCSFとする。CSF : Contrast Sensitive Function)の特性、すなわち、人間の視覚特性を反映した特性を有している。一般に人間のコントラストに対する感度は、空間周波数に依存しており、人間の知覚系は一種のバンドパスフィルタと考えられる。例えば、白黒の縞模様を考えた場合、連続する縞と縞との間隔によって、人間の縞模様に対する感度が変化する。縞の間隔が非常に小さい場合、人間は縞模様を知覚することが困難になる。M(S,T)の値は、例えば、図12のハッチングで示された周波数成分を中心に、人間のコントラストに対する感度に応じて同心円状に変化するような値となっている。
演算処理部373は、DCT係数Qj(S,T)に対して演算処理を施して平滑化処理を行う場合、単位ブロック毎に周波数成分データSj(S、T)を2次元マトリクスデータの対応する要素M(S,T)で除算することにより、演算後のDCT係数Qk(S,T)を得る。すなわち、平滑化処理は下記の演算を実行することにより実現される。
Qk(S,T)=Sj(S,T)/M(S,T)
CSFでDCT係数Qj(S,T)を除算した場合、コントラストに対する感度が高い周波数成分のDCT係数が、コントラストに対する感度が低い周波数成分より大きな値で除されるため、効果的に平滑化されることとなる。なお、Qk(S,T)を小数点以下まで求めても良い。
本実施の形態によれば、単位ブロックがエッジ部分を有しない場合、単位ブロックが滑らかになるように2次元マトリクスを用いて平滑化処理され、単位ブロックがエッジ部分を有している場合、エッジ部分が強調される。従って、画像全体において、エッジ部分は強調し、エッジ部分を有しない平坦な画像部分はよりスムーズな画像を得ることができ、
原画像の特徴部分を良好に保つことができる。
なお、平滑化処理に使用する2次元マトリクスデータは、図12に示すものに限らず、人間のコントラストに対する感度が低い周波数成分に小さな値を設定し、コントラストに対する感度が高い周波数成分に大きな値を設定した2次元マトリクス、言い換えれば、低周波成分は維持し、8×8画素のブロック内において、同心円状に外側のDCT係数がより強く抑制されるような2次元マトリクスを用いても良い。例えば、ガウス分布となる2次元マトリクスデータを用いることも可能である。
また、実施の形態においては、3<S+T≦14の周波数成分を変更しているが、これに限るものではなく、1<S+T≦14の周波数成分を変更するように構成しても良い。
ブロック判定部372において、前述したエッジ強調処理も平滑化処理も行わないと判定された場合、DCT係数Qj(S,T)に対して演算処理を施すことなく、後段の逆周波数変換部374へデータを出力する。
逆周波数変換部374は、演算処理部373から出力されるDCT係数Qk(S,T)に逆周波数変換を行って、濃度領域データ(画像データ)への変換を行う。2次元DCT変換の逆変換の式を用いて逆周波数変換を行う。入力画像においてエッジ成分を含んでいるブロックはエッジ強調処理が行われているので、よりメリハリが効いたはっきりした画像を得ることができ、エッジ成分を含んでいない画像に関しては視覚特性を考慮したスムージング処理が行われる。強調処理は、直流成分以外の周波数全域を強調するのではなく、強調領域を限定しているため、曲線上にあるエッジ境界部での不必要なブロックパターンの出現を抑えて、きれいなエッジ曲線を得ることができる。
実施の形態2.
実施の形態1では、周波数成分判定部372aにおいて直流成分周辺の空間周波数成分の大きさを調べ、処理ブロックがエッジブロックであるか否かを判定する構成としたが、ブロック全体の平均濃度を表す直流成分の大きさも判定要素に加える構成としてもよい。例えば、処理しようとするブロックがエッジ成分を多く含む場合には、通常、直流成分周辺の成分は大きな値を持つようになる。そのため、エッジブロックの判定には、直流成分の周辺の値の大きさを調べ、これらの値が所定の値以上であればエッジブロックであると判定することができる。また、画像のエッジ部分は背景との濃度差によっても認識に差が生じる。例えば、ハイライト上の薄い文字などを文字として認識させ、はっきりと見せたい場合がある。この場合、薄い文字であるためにエッジブロックと判定されにくく、エッジ強調処理が行えず、文字として見づらくなる場合がある。そこで、本実施の形態では、ハイライト上の薄い文字でもエッジブロックと判定できるようにブロック全体の平均濃度を考慮して判定を行う。
本実施における画像処理装置のハードウェア構成は実施の形態1に示したものと同様である。すなわち、画質調整部37内のブロック判定部372は、周波数成分判定部372a、ブロック領域判定部372b、及び処理内容判定部372cを備えている。これらの判定部による判定結果によって、最終的に処理されるブロック毎の画像の特徴を検出するとともに、検出した特徴に基づき、そのブロックに対して施すべき処理(本実施の形態では、エッジ強調処理または平滑化処理)を定める。なお、領域識別情報を用いない場合には、ブロック領域判定部372bは無くてもよい。
周波数成分判定部372aには、周波数変換部371にて空間周波数成分に変換されたブロック単位のデータが入力される。周波数成分判定部372aは、それぞれのブロック内において直流成分近傍の位置における周波数成分を表すDCT係数の大きさを求め、これらの値に対して処理ブロックの直流成分の値を乗算し、少なくとも1つが予め定めた閾値β1(β1は正の整数)よりも大きいか否かを判定する。
実施の形態1と同様に、周波数成分判定部372aに入力するデータを8×8画素のブロックからなるデータとし、直流成分を含む3×3画素の領域をエッジブロック判定領域とした場合、エッジブロックであるか否かの判定を以下の式により行う。
|Q(s0+n,t0+m)|×|Q(s0,t0)|>β1
ここでn,m=0,1,2、かつn=m≠0
この判定式において、Q(s0,t0)はブロック内における直流成分を表し、Q(s0+n,t0+m)は、座標(s0+n,t0+m)における交流成分を表す。判定式を満たすn,mの組が存在する場合、すなわち、直流成分以外の空間周波数成分(交流成分)に直流成分の大きさを乗算した値のうち、何れかの大きさが閾値β1より大きいと判断される場合には、処理対象のブロック(処理ブロック)がエッジブロックであると判定する。また、直流成分が乗算された交流成分の何れの大きさも閾値β1以下であると判断される場合には、エッジブロックでないと判定する。すなわち、周波数成分判定部372aは、直流成分と交流成分とを用いて所定の演算を行う演算手段として機能すると共に、画像の特徴(エッジ成分を含むか否か)を検出する検出手段として機能する。
所定の空間周波数成分の値に直流成分を乗算した値を用いることにより、直流成分が大きいブロックでは比較対象となる値が強調され、よりエッジブロックと判定されやすくなる。一方、直流成分が小さいブロックでは比較対象となる値があまり強調されず、エッジブロックと判定されにくくなる。
例えば、画像データを8ビット、すなわち、256階調で表し、255が画像の白を表すとした場合、白っぽい画像では直流成分は比較的大きい値を持つ。ハイライト上に薄い文字が書かれているようなブロックでは、エッジ成分を持つにもかかわらず、背景のハイライト部分と薄い文字の濃度差が小さいため、直流成分の周辺のDCTデータと閾値とを用いた判定のみでは、通常はエッジブロックと判定されにくい。しかし、判定にブロック全体の平均濃度を表す直流成分を乗算した値を用いることによって、背景のハイライト部分と薄い文字の濃度差が小さい場合でも、処理ブロックの平均濃度が低いことから、直流成分が大きくなり、所定の空間周波数成分に、この直流成分を乗算した値を用いて閾値判定を行なえば、最終的には、参照する閾値が相対的に低くなったような作用を施し、よりエッジブロックと判定されやすくなる。このことにより、エッジ強調処理などの処理が行えることになり、ハイライト上の薄い文字をよりはっきりと表現したい場合などで効果が見られる。
更に、処理ブロックがエッジブロックでないと判定した場合、すなわち、直流成分が乗算された交流成分の何れの大きさも閾値β1以下であると判定した場合、その処理ブロックが非エッジブロックであるか否かを判定するようにしてもよい。例えば、実施の形態1と同様にして、直流成分近傍の交流成分の大きさと閾値β2(β2は正の整数)とを比較し、直流成分近傍の交流成分の大きさが閾値β2以下である場合、その処理ブロックが非エッジブロックであると判定し、閾値β2より大きい場合、その処理ブロックが中間ブロックであると判定することができる。
ここで、中間ブロックとは、ブロック判定においてエッジブロックにも非エッジブロックにも属さないブロックのことを表している。前述した判定式では、閾値の大きさによってエッジブロックであるか否かを定めている。そのため、明らかにエッジブロック、非エッジブロックと判定されるブロックは問題ないが、ちょうどこれらの中間に相当するブロック、つまり、閾値の設定に応じてエッジブロックになったり、非エッジブロックになったりするようなブロックは、閾値に敏感に影響を受けるため、どちらかのブロックに判定され、強調または平滑化処理が施されると画質に悪影響をもたらす虞がある。このため、エッジブロックでもなく、非エッジブロックでもないような判定が難しいブロックについては、前述したような判定基準によって中間ブロックであると判定し、ブロック全体としてはどちらの処理も行わないような方法を設けている。
閾値の具体的な設定例としては、直流成分を用いてエッジブロックか否かの判定に用いる閾値β1は34000であり、直流成分を用いずに、直流成分近傍の空間周波数成分のみで非エッジブロックであるか否かの判定に用いる閾値β2は16である。なお、これらの値は一例であり、好ましい画像が得られるような適切な値を設定すればよい。
周波数成分判定部372aによる判定結果は処理内容判定部372cに出力される。処理内容判定部372cでは、周波数成分判定部372aによる判定結果と、ブロック領域判定部372bによる判定結果とを組み合わせて総合判定を行い、処理ブロック全体に施す処理を定める。図13は周波数成分判定部372aによる判定結果とブロック領域判定部372bによる判定結果との組み合わせにより定まる処理内容をまとめた図表である。この図表に定められているように、周波数成分の判定により中間ブロックであると判定された処理ブロック、及び領域判定により文字領域、網点領域、写真領域の何れにも属さないと判定された処理ブロックについては、エッジ強調処理及び平滑化処理の何れも行わない。また、領域判定によりブロック全体が文字領域であると判定された場合であって、周波数成分の判定結果がエッジブロックを示す場合には、ブロック全体にエッジ強調処理を施すことが規定されている。更に、領域判定によりブロック全体が網点領域であると判定された場合であって、周波数成分の判定結果が非エッジブロックを示す場合には、ブロック全体に平滑化処理を施すことが規定され、領域判定によりブロック全体が写真領域であると判定された場合であって、周波数成分の判定結果がエッジブロック又は非エッジブロックを示す場合には、それぞれブロック全体にエッジ強調処理、平滑化処理を施すことが規定されている。
このように、周波数データによるブロック判定において、エッジブロック及び非エッジブロックの他に中間ブロック判定を設けることにより、強調処理が必要なブロック、平滑化処理が必要なブロック、いずれの処理も必要がないブロックを選別することができ、より画像の特徴を捉えた処理が可能となる。
実施の形態3.
実施の形態1では、各処理をハードウェアにより実現する画像処理装置として説明したが、ソフトウェアの処理により本発明の画像処理方法を実現する構成であってもよい。
図14は本発明に係るコンピュータプログラムがインストールされた画像処理装置の内部構成を説明するブロック図である。図中10は、本実施の形態に係る画像処理装置であり、具体的にはパーソナルコンピュータ、ワークステーション等である。画像処理装置10はCPU11を備えており、このCPU11がバス12に接続されたROM13から各種の制御プログラムをRAM14にロードして実行し、操作部15、補助記憶部16、記憶部17、画像入力IF18、画像出力IF19等のハードウェアを制御する。
操作部15は、処理対象となる画像データの選択、画像処理に必要なパラメータの入力、画像処理の開始指示等を受付けるために、キーボード、マウス等を備える。補助記憶部16は、本発明のコンピュータプログラムを記録した記録媒体20からコンピュータプログラムを読取るための読取装置を備えている。記録媒体20としては、FD(Flexible Disk)、CD−ROM等を用いることができる。記憶部17は、ディスク状の磁気記録媒体を有するハードディスク装置を備えており、補助記憶部16を通じて読取られたコンピュータプログラム、画像入力IF18を通じて入力された画像データ等を記憶する。
画像入力IF18は、画像入力装置21を接続するためのインタフェースである。画像入力IF18としてSCSI、USBのようなインタフェースを利用することでき、この画像入力IF18に接続する画像入力装置21は、スキャナ装置、デジタルスチルカメラ等である。画像出力IF19は、画像出力装置22を接続するためのインタフェースである。画像出力IF19としてUSBのようなインタフェースを利用することができ、この画像出力IF19に接続する画像出力装置22は、プリンタ装置等である。
なお、本発明に係るコンピュータプログラムを記録する記録媒体20としては、前述したFD及びCD−ROMの他に、MO、MD、DVD等の光ディスク、ハードディスクのような磁気記録媒体、ICカード、メモリカード、光カード等のカード型記録媒体、マスクROM、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read Only Memory)、フラッシュROM等による半導体メモリの利用も可能である。
以下、本実施の形態に係る画像処理装置10の動作について説明する。図15は画像処理装置10が実行する処理の手順を説明するフローチャートである。画像処理装置10のCPU11は、まず、画像入力IF18を通じて入力された画像データの各画素について領域分離処理を実行する(ステップS11)。領域分離処理では各画素が文字領域、網点領域、写真領域の何れに属しているかを判定し、その判定結果を領域分離情報として出力する。
次いで、CPU11は、入力された画像データから処理対象のブロック(処理ブロック)の読み出しを行う(ステップS12)。この処理ブロックは、例えば、8×8の画素データの集合により構成されるものであり、2次元画像に対して左上隅の画素を含むブロックから右方向にブロック単位で読出処理を行い、ブロック単位でラインを変更しながら最終的に右下隅の画素を含む最終ブロックまで読出処理を行う。
次いで、CPU11は、読み出した処理ブロックに対してDCT処理を実行する(ステップS13)。このDCT処理では、ブロック単位で読み出した画像データについて直交変換の1つである離散コサイン変換(DCT変換)を行い、周波数領域のデータに変換する。
次いで、CPU11は、ステップS13で取得した周波数領域のデータに基づいてDCT係数判定処理を実行する(ステップS14)。このDCT係数判定処理では、処理ブロック内において直流成分近傍の空間周波数成分の大きさが予め設定した閾値αよりも大きいか否かを判定することにより、エッジを含んだブロック(エッジブロック)であるか否かを検出する。図16はDCT係数判定処理の手順を説明するフローチャートである。CPU11は、まず、所定の空間周波数成分の大きさが予め定められた閾値αより大きいか否かを判断する(ステップS141)。判定は処理ブロック全体について行う必要はなく、実施の形態1と同様に、直流成分近傍の幾つかの空間周波数成分について行えばよい。また、閾値αは、前述のコンピュータプログラムで使用するパラメータとしてコンピュータプログラム内に記述しておけばよい。
所定の空間周波数成分の大きさが閾値αよりも大きいと判断した場合(S141:YES)、処理ブロックがエッジブロックであると判定し(ステップS142)、CPU11は、処理を図15に示したフローチャートのステップS14へ戻す。また、所定の空間周波数成分の大きさが何れも閾値α以下であると判断した場合(S141:NO)、処理ブロックが非エッジブロックであると判定し(ステップS143)、CPU11は、処理を図15に示したフローチャートのステップS14へ戻す。
次に、CPU11は、ステップS11で取得した領域識別情報に基づいてブロック領域判定処理を実行する(ステップS15)。すなわち、処理ブロック毎に文字領域に属する画素、網点領域に属する画素、写真領域に属する画素の3種類をカウントし、それぞれの比率を求め、処理ブロックが文字領域、網点領域、写真領域、又はその他の領域の何れに属するブロックであるかを判定する。図17はブロック領域判定処理の手順を説明するフローチャートである。CPU11は、まず、対象の処理ブロックについて各領域に属する画素の数をカウントし、文字領域、網点領域、写真領域の3つの領域が存在するか否かを判断する(ステップS151)。3つの領域が存在すると判断した場合(S151:YES)、処理ブロックの60%以上を占める領域が存在するか否かを判断する(ステップS152)。処理ブロックの60%以上を占める領域が存在すると判断した場合(S152:YES)、その領域を処理ブロックの領域と判定する(ステップS153)。すなわち、文字領域に属する画素が処理ブロック内の60%以上を占める場合、その処理ブロックが文字領域に属するブロックであると判定する。網点領域に属する画素、写真領域に属する画素が60%以上を占める場合も同様である。一方、処理ブロックの60%以上を占める領域が存在しないと判断した場合(S152:NO)、その処理ブロックをその他の領域と判定する(ステップS154)。
対象の処理ブロックに3つの領域が存在しないと判断した場合(S151:NO)、文字領域、網点領域、写真領域のうち2つの領域が存在するか否かを判断する(ステップS155)。2つの領域が存在すると判断した場合(S155:YES)、そのうち一方の領域が処理ブロックの70%以上を占めるか否かを判断する(ステップS156)。70%以上を占める領域が存在すると判断した場合(S156:YES)、その領域を処理ブロックの領域と判定し(ステップS157)、一方、70%以上を占める領域が存在しないと判断した場合(S156:NO)、処理ブロックをその他の領域と判定する(S154)。また、ステップS155で2つの領域が存在しないと判断した場合(S155:NO)、すなわち、処理ブロックには1つの領域のみが存在すると判断した場合、その存在する領域を処理ブロックの領域と判定する(ステップS158)。
処理ブロックの領域を判定した後、CPU11は、処理を図15に示したフローチャートのステップS15へ戻す。
次に、CPU11は、ブロック領域判定処理の判定結果に基づいて処理ブロックが文字領域に属するか否かを判断する(ステップS16)。文字領域に属すると判断した場合(S16:YES)、CPU11は、DCT係数判定処理の判定結果に基づいて処理ブロックがエッジブロックであるか否かを判断する(ステップS17)。処理ブロックがエッジブロックであると判断した場合(S17:YES)、CPU11は、処理ブロック内の所定の領域に対してエッジ強調処理を実行する(ステップS18)。すなわち、処理ブロックが文字領域に属しており、しかもエッジブロックである場合には、その処理ブロックに対してエッジ強調処理が施されることになる。そして、CPU11は逆DCT処理を行い(ステップS19)、周波数領域のデータを濃度領域のデータに変換する。
ステップS16において、処理ブロックが文字領域に属さないと判断した場合(S16:NO)、CPU11は、ブロック領域判定処理の判定結果に基づいて処理ブロックが網点領域に属するか否かを判断する(ステップS20)。網点領域に属すると判断した場合(S20:YES)、CPU11は、DCT係数判定処理の判定結果に基づいて処理ブロックがエッジブロックであるか否かを判断する(ステップS21)。処理ブロックがエッジブロックでないと判断した場合(S21:NO)、CPU11は、処理ブロック内の所定の領域に対して平滑化処理を実行する(ステップS24)。すなわち、処理ブロックが網点領域に属しており、しかも非エッジブロックである場合には、その処理ブロックに対して平滑化処理が施されることになる。そして、CPU11は逆DCT処理を行い(S19)、周波数領域のデータを濃度領域のデータに変換する。
ステップS20において、処理ブロックが網点領域に属さないと判断した場合(S20:NO)、CPU11は、ブロック領域判定処理の判定結果に基づいて処理ブロックが写真領域に属するか否かを判断する(ステップS22)。処理ブロックが写真領域に属すると判断した場合(S22:YES)、CPU11は、DCT係数判定処理の判定結果に基づいて処理ブロックがエッジブロックであるか否かを判断する(ステップS23)。処理ブロックがエッジブロックであると判断した場合(S23:YES)、CPU11は、処理ブロック内の所定の領域に対してエッジ強調処理を実行し(S18)、エッジブロックでないと判断した場合(S23:NO)、処理ブロック内の所定の領域に対して平滑化処理を実行する(ステップS24)。すなわち、処理ブロックが写真領域に属しており、しかもエッジブロックである場合にはエッジ強調処理が施されることとなり、非エッジブロックである場合には平滑化処理が施されることとなる。エッジ強調処理(S18)又は平滑化処理(S24)を実行した後、CPU11は逆DCT処理を行い(S19)、周波数領域のデータを濃度領域のデータに変換する。
また、ステップS17においてエッジブロックでないと判断された場合(S17:NO)、ステップS21においてエッジブロックであると判断された場合(S21:YES)、ステップS22において処理ブロックが写真領域に属さないと判断した場合(S22:NO)、エッジ強調処理及び平滑化処理の双方を実行することなく逆DCT処理を行い(S19)、周波数領域のデータを濃度領域のデータに変換する。
次いで、CPU11は、全ブロックについて処理が終了したか否かを判断し(ステップS25)、全ブロックの処理が終了していないと判断した場合(S25:NO)、CPU11は、処理をステップS12へ戻し、全ブロックの処理が終了したと判断した場合(S25:YES)、本ルーチンによる処理を終了する。
本実施の形態では、ブロック全体の領域判定結果と周波数成分判定結果とを基にブロックに対する処理を行う構成について説明したが、ブロックに対する領域判定結果を用いず、周波数成分のみの判定結果を用いて処理を行うようにしても良い。この場合、本発明をアプリケーションソフトウェアとして用いる場合に有効である。例えば、スキャナなどの画像入力装置で読み込んだ写真やネットワークを介してダウンロードした画像の場合、対象は判明しているので領域分離を行う必要はなく、必要に応じてエッジ強調や平滑化を行えばよい。
実施の形態4.
実施の形態3では、直流成分近傍の空間周波数成分の大きさを閾値αと比較することにより、処理ブロックがエッジブロックであるか、又は非エッジブロックであるかをソフトウェアの処理により判定する構成としたが、直流成分を考慮してエッジブロックであるか否かを判定し、更に、直流成分を用いずに、直流成分近傍の空間周波数成分のみで中間ブロックであるか、又は非エッジブロックであるかを判定する構成としてもよい。すなわち、本実施の形態では、実施の形態2に説明した画像処理装置をソフトウェアの処理により実現する構成について説明する。なお、本発明のコンピュータプログラムがインストールされる画像処理装置10の内部構成は、実施の形態3と全く同様であるため、その説明を省略することとする。
図18は画像処理装置10が実行する処理の手順を説明するフローチャートである。画像処理装置10のCPU11は、実施の形態3と同様の手順にて領域分離処理からDCT処理までの処理を実行する(ステップS31〜S33)。
次いで、CPU11は、DCT処理にて取得した周波数領域のデータに基づいてDCT係数判定処理を実行する(ステップS34)。このDCT係数判定処理では、処理ブロック内において直流成分近傍の空間周波数成分に対し直流成分の大きさを乗算し、得られた値と予め設定した閾値β1との大小関係を判定することにより、処理ブロックがエッジブロックであるか否かを判定する。エッジブロックでないと判定された処理ブロックについては、所定の空間周波数成分の大きさと予め設定した閾値との大小関係を比較することにより、非エッジブロックであるか、又は何れにも属さない中間ブロックであるか否かを判定する。図19はDCT係数判定処理の手順を説明するフローチャートである。CPU11は、まず、所定の空間周波数成分に直流成分を乗算した値が閾値β1より大きいか否かを判断する(ステップS341)。判定は処理ブロック全体について行う必要はなく、実施の形態2と同様に、直流成分近傍の幾つかの空間周波数成分について行えばよい。また、閾値β1は、使用するコンピュータプログラム内にパラメータとして記述しておけばよい。
所定の空間周波数成分に直流成分を乗算した値が閾値β1より大きいと判断した場合(S341:YES)、CPU11は、処理ブロックがエッジブロックであると判定する(ステップS342)。所定の空間周波数成分に直流成分を乗算した値が何れも閾値β1以下であると判断した場合(S341:NO)、直流成分近傍の所定の空間周波数成分が閾値β2より大きいか否かを判断する(ステップS343)。ここで、閾値β2は、前記コンピュータプログラム内にパラメータとして記述しておけばよい。所定の空間周波数成分の大きさが何れも閾値β2以下であると判断した場合(S343:NO)、CPU11は、処理ブロックが非エッジブロックであると判定し(ステップS345)、閾値β2よりも大きい空間周波数成分があると判断した場合(S343:YES)、処理ブロックがエッジブロックにも非エッジブロックにも属さない中間ブロックであると判定する(ステップS344)。
DCT係数に基づいて処理ブロックの判定を行った後、CPU11は、処理を図18に示したフローチャートへ戻す。
次に、CPU11は、ステップS31の領域分離処理により得られる領域識別情報に基づいてブロック領域判定処理を実行する(ステップS35)。すなわち、処理ブロック毎に文字領域に属する画素、網点領域に属する画素、写真領域に属する画素の3種類をカウントし、それぞれの比率を求め、処理ブロックが文字領域、網点領域、写真領域、又はその他の領域の何れに属するブロックであるか否かを判定する。具体的な処理手順は、実施の形態3で説明した図17のフローチャートと全く同様である。
次に、CPU11は、DCT係数判定処理の判定結果に基づいて対象の処理ブロックがエッジブロックにも非エッジブロックにも属さない中間ブロックであるか否かを判断する(ステップS36)。対象の処理ブロックが中間ブロックであると判断した場合(S36:YES)、その処理ブロックについてはエッジ強調処理及び平滑化処理の何れも行わないため、逆DCT処理を実行し(ステップS40)、周波数領域のデータを濃度領域のデータに変換する。
処理対象のブロックが中間ブロックでないと判断した場合(S36:NO)、CPU11は、ブロック領域判定処理の判定結果に基づいて処理ブロックが文字領域であるか否かを判断する(ステップS37)。文字領域に属すると判断した場合(S37:YES)、CPU11は、再度DCT係数判定処理の判定結果を利用し、対象の処理ブロックがエッジブロックであるか否かを判断する(ステップS38)。処理ブロックがエッジブロックであると判断した場合(S38:YES)、CPU11は、処理ブロック内の所定領域に対してエッジ強調処理を実行する(ステップS39)。すなわち、処理ブロックが文字領域に属しており、しかもエッジブロックである場合には、その処理ブロックに対してエッジ強調処理が施されることになる。エッジ強調処理を実行した後、CPU11は逆DCT処理を行い(S40)、周波数領域のデータを濃度領域のデータに変換する。
ステップS37で処理ブロックが文字領域に属さないと判断した場合(S37:NO)、CPU11は、ブロック領域判定処理の判定結果に基づいて処理ブロックが網点領域に属するか否かを判断する(ステップS41)。網点領域に属すると判断した場合(S41:YES)、CPU11は、DCT係数判定処理の判定結果に基づいて処理ブロックがエッジブロックであるか否かを判断する(ステップS42)。処理ブロックがエッジブロックでないと判断した場合(S42:NO)、CPU11は、処理ブロック内の所定の領域に対して平滑化処理を実行する(ステップS45)。すなわち、処理ブロックが網点領域に属しており、しかも非エッジブロックである場合には、その処理ブロックに対して平滑化処理が施されることになる。そして、CPU11は逆DCT処理を行い(S40)、周波数領域のデータを濃度領域のデータに変換する。
ステップS41で処理ブロックが網点領域に属さないと判断した場合(S41:NO)、CPU11は、ブロック領域判定処理の判定結果に基づいて処理ブロックが写真領域に属するか否かを判断する(ステップS43)。処理ブロックが写真領域に属すると判断した場合(S43:YES)、CPU11は、DCT係数判定処理の判定結果に基づいて処理ブロックがエッジブロックであるか否かを判断する(ステップS44)。処理ブロックがエッジブロックであると判断した場合(S44:YES)、CPU11は、処理ブロック内の所定の領域に対してエッジ強調処理を実行し(S39)、エッジブロックでないと判断した場合(S44:NO)、処理ブロック内の所定の領域に対して平滑化処理を実行する。すなわち、処理ブロックが写真領域に属しており、しかもエッジブロックである場合にはエッジ強調処理が施されることとなり、非エッジブロックである場合には平滑化処理が施されることとなる。エッジ強調処理(S39)又は平滑化処理(S45)を実行した後、CPU11は逆DCT処理を行い(S40)、周波数領域のデータを濃度領域のデータに変換する。
また、ステップS38でエッジブロックでないと判断された場合(S38:NO)、ステップS42でエッジブロックであると判断された場合(S42:YES)、ステップS43で処理ブロックが写真領域に属さないと判断した場合(S43:NO)、エッジ強調処理及び平滑化処理の双方を実行することなく逆DCT処理を行い(S40)、周波数領域のデータを濃度領域のデータに変換する。
次いで、CPU11は、全ブロックについて処理が終了したか否かを判断し(ステップS46)、全ブロックの処理が終了していないと判断した場合(S46:NO)、CPU11は、処理をステップS32へ戻し、全ブロックの処理が終了したと判断した場合(S46:YES)、本ルーチンによる処理を終了する。
このように本実施の形態では、直流成分を考慮しているためブロック全体の濃度に依存したエッジブロック判定が可能となり、エッジ判定精度が向上する。また、周波数データによるブロック判定において、エッジブロック及び非エッジブロックの他に中間ブロック判定を設けることにより、強調処理が必要なブロック、平滑化処理が必要なブロック、いずれの処理も必要がないブロックを選別することができ、より画像の特徴を捉えた処理が可能となる。
実施の形態5.
実施の形態4では、ブロック全体の領域判定結果と周波数判定結果とを基にブロックに対する処理を決定する構成としたが、領域判定結果を用いず、周波数成分のみの判定結果を用いて実行すべき処理を定める構成としてもよい。
図20は画像処理装置10が実行する処理の手順を説明するフローチャートである。画像処理装置10のCPU11は、まず、画像入力IF18を通じて入力された画像データから処理ブロックの読み出しを行う(ステップS51)。処理ブロックは、例えば、8×8の画素データの集合により構成される。次いで、CPU11は、読み出した処理ブロックに対してDCT処理を実行する(ステップS52)。このDCT処理では、ブロック単位で読み出した画像データについて直交変換の1つである離散コサイン変換(DCT変換)を行い、周波数領域のデータに変換する。
次いで、CPU11は、処理ブロック内の所定の空間周波数成分に直流成分を乗算した値が閾値β1より大きいか否かを判断する(ステップS53)。判定は処理ブロック全体について行う必要はなく、前述と同様に、直流成分近傍の幾つかの空間周波数成分について行えばよい。また、閾値β1は、使用するコンピュータプログラム内にパラメータとして記述しておけばよい。所定の空間周波数成分に直流成分を乗算した値が何れも閾値β1より大きいと判断した場合(S53:YES)、その処理ブロックはエッジブロックであると判定し(ステップS54)、エッジ強調処理を実行する(ステップS55)。エッジ強調処理を行った後、CPU11は、逆DCT処理を実行し(ステップS56)、周波数領域のデータを濃度領域のデータに変換する。
また、所定の空間周波数成分に直流成分を乗算した値が何れも閾値β1以下であると判断した場合(S53:NO)、直流成分近傍の所定の空間周波数成分が閾値β2より大きいか否かを判断する(ステップS58)。所定の空間周波数成分の大きさが何れも閾値β2以下であると判断した場合(S58:NO)、CPU11は、処理ブロックが非エッジブロックであると判定し(ステップS60)、処理ブロックに対して平滑化処理を実行する(ステップS61)。平滑化処理を行った後、CPU11は、逆DCT処理を実行し(S56)、周波数領域のデータを濃度領域のデータに変換する。また、所定の空間周波数成分の大きさが閾値β2よりも大きいと判断した場合(S58:YES)、処理ブロックはエッジブロックにも非エッジブロックにも属さない中間ブロックであると判定し(ステップS59)、エッジ強調処理及び平滑化処理の何れも実行せずに逆DCT処理を行い(S56)、周波数領域のデータを濃度領域のデータに変換する。
ステップS56で逆DCT処理を実行した後、CPU11は、全ブロックについても処理が終了したか否かを判断する(ステップS57)。全ブロックの処理が終了していないと判断した場合(S57:NO)、CPU11は、処理をステップS51へ戻し、全ブロックの処理が終了したと判断した場合(S57:YES)、本ルーチンによる処理を終了する。
このように、本実施の形態では周波数成分のみの判定結果を用いて実行すべき処理を定めているため、予め処理対象が判明している場合に有効である。例えば、スキャナなどの画像入力装置で読み込んだ写真、ネットワークを介してダウンロードした画像の場合、領域分離を行うことなく、周波数成分のみの判定結果を用いて画像に施すべき処理を定めることができる。