画像拡大方法、そのコンピュータプログラム、及び画像処理装置
【課題】境界が比較的わかりやすい拡大画像が得られる画像拡大方法を提供する。
【解決手段】 原画像を高解像度化して拡大画像を得る画像拡大方法であって、前記原画像における単位画素に対応する前記拡大画像の対応領域中の複数の画素の各画素値として、前記原画像における前記単位画素又はその周辺にある複数の周辺画素のいずれかの画素値を選択することで、前記原画像における前記単位画素それぞれを細分化して拡大画像を得る細分化ステップを含む。
【解決手段】 原画像を高解像度化して拡大画像を得る画像拡大方法であって、前記原画像における単位画素に対応する前記拡大画像の対応領域中の複数の画素の各画素値として、前記原画像における前記単位画素又はその周辺にある複数の周辺画素のいずれかの画素値を選択することで、前記原画像における前記単位画素それぞれを細分化して拡大画像を得る細分化ステップを含む。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像拡大方法、そのコンピュータプログラム、及び画像処理装置に関するものである。
【背景技術】
【0002】
画像を拡大する場合、解像度をそのままで単純に拡大するとジャギーが生じるため、拡大対象となる原画像の画素間を、画像拡大アルゴリズムに従って、滑らかな関数で結んで補間することが行われている。従来の画像拡大アルゴリズムには、Spline法、Lanczos法などがある。
【発明の概要】
【発明が解決しようとする課題】
【0003】
しかし、従来の画像拡大アルゴリズムでは、全体的にぼけた画像となり、画像中の境界面がわかりにくいという問題がある。なお、従来の画像拡大アルゴリズムでは、拡大した画像を原画像の大きさに縮小すると、原画像の画素値とは異なってしまうという問題もあった。
そこで、本発明は、境界が比較的わかりやすい拡大画像が得られる画像拡大方法等を提供することを目的とする。
【課題を解決するための手段】
【0004】
本発明は、原画像を高解像度化して拡大画像を得る画像拡大方法であって、前記原画像における単位画素に対応する前記拡大画像の対応領域中の複数の画素の各画素値として、前記原画像における前記単位画素又はその周辺にある複数の周辺画素のいずれかの画素値を選択することで、前記原画像における前記単位画素それぞれを細分化して拡大画像を得る細分化ステップを含むことを特徴とする画像拡大方法である。
【0005】
前記細分化ステップは、前記原画像における前記単位画素又はその周辺にある複数の周辺画素のうちどの画素の画素値を、前記対応領域中のどの画素の画素値として選択するかを、影響度情報及び配置情報に基づいて、決定するものであり、前記影響度情報は、前記単位画素及び前記周辺画素の画素値それぞれが、前記対応領域における画素の画素値として占める画素数を示す情報であり、前記配置情報は、前記対応領域に配置される画素の位置を規律する情報であり、前記影響度情報及び配置情報は、前記単位画素及び前記周辺画素の画素値に基づいて生成されるのが好ましい。
【0006】
前記影響度情報は、当該影響度情報に従った場合の対応領域の平均画素値と、前記単位画素の画素値と、の差である平均輝度差を小さくするように決定されるのが好ましい。
【0007】
前記影響度情報は、前記単位画素及び前記周辺画素の画素値における最大値及び最小値が、前記対応領域中における画素値として占める割合が大きくなるように決定されるのが好ましい。
【0008】
前記影響度情報は、当該影響度情報に従った場合の対応領域の平均画素値と前記単位画素の画素値との差である平均輝度差を、前記単位画素及び前記周辺画素の平均画素値と前記単位画素及び前記周辺画素の画素値それぞれとの差の絶対値に、対応する前記単位画素及び前記周辺画素の影響度情報を乗じたものの総和を示す分散値で除した値である変換度に基づいて決定されるのが好ましい。また、前記影響度情報は、前記変換度が最小となるように決定されるのが好ましい。
【0009】
前記配置情報は、前記周辺画素の画素値が、前記対応領域における画素の画素値として占める範囲の広がり方向を示す方向情報を含むのが好ましい。
また、前記配置情報は、前記周辺画素の画素値それぞれが、前記対応領域中の画素の画素値として選択される際における前記周辺画素間の優先順位を示す情報を含むのが好ましい。
【0010】
前記拡大画像におけるエッジを抽出するエッジ抽出ステップを更に含み、前記エッジ抽出ステップでは、画像におけるエッジが強調されるように画像拡大を行う第1画像拡大アルゴリズムによって前記原画像を拡大した場合の画素値と、前記第1画像拡大アルゴリズムよりも画像全体が滑らかになる第2画像拡大アルゴリズムによって前記対象を拡大した場合の画素値と、が一致する位置にある画素をエッジとして抽出し、前記細分化ステップでは、前記対応領域中の画素のうち、前記エッジに相当する画素は、その画素値として、前記原画像における前記単位画素の画素値を選択するのが好ましい。
【0011】
前記第1画像拡大アルゴリズムは、Lanczos法又は線形補間法であるのが好ましく、前記第2画像拡大アルゴリズムは、Spline法又はMitchell法であるのが好ましい。
【0012】
拡大対象である原画像を、所定の画像拡大アルゴリズムに従って所望の拡大率で拡大させて初期拡大画像を得る拡大ステップと、前記初期拡大画像を補正して補正拡大画像を得る補正ステップと、前記補正拡大画像中の各画素それぞれの画素値を置換した近似拡大画像を得る置換ステップと、前記近似拡大画像を前記原画像のサイズに縮小したものと、前記原画像と、の差分を示す判定用差分画像を得る判定用差分画像抽出ステップと、前記判定用差分画像に基づいて、前記近似拡大画像が前記原画像の拡大画像として適切であるか否かを判定する判定ステップと、を更に含み、前記補正ステップは、前記初期拡大画像を前記原画像のサイズに縮小させた縮小画像を得るステップと、前記原画像と前記縮小画像との差分を示す差分画像を得るステップと、前記差分画像を前記画像拡大アルゴリズムに従って前記拡大率で拡大させて拡大差分画像を得るステップと、前記初期拡大画像に前記拡大差分画像を加算して補正拡大画像を得るステップと、を含み、前記置換ステップは、前記原画像における単位画素に対応する前記補正拡大画像の対応領域中の複数の置換対象画素それぞれの画素値を、近似値に置換することで近似拡大画像を得るものであり、更に前記置換ステップでは、前記近似値として、前記原画像における前記単位画素及びその周辺にある複数の周辺画素の各画素値のうち、前記置換対象画素の画素値に最も近い値が選択され、前記判定ステップにおいて、前記近似拡大画像が前記原画像の拡大画像として適切であると判定されると、前記近似拡大画像を拡大画像として出力し、前記近似拡大画像が前記原画像の拡大画像として適切でないと判定されると前記細分化ステップで得た拡大画像を出力するのが好ましい。
【0013】
前記補正ステップによって得られた前記補正拡大画像を前記初期拡大画像として、前記補正ステップを複数回繰り返すのが好ましい。
【0014】
前記所定の画像拡大アルゴリズムは、Spline法又はMitchell法であるのが好ましい。
【0015】
他の観点からみた本発明は、コンピュータに、前記画像拡大方法におけるステップを実行させるためのコンピュータプログラムである。
【0016】
他の観点からみた本発明は、原画像を高解像度化しつつ拡大した拡大画像を得る画像処理装置であって、前記原画像における単位画素に対応する前記拡大画像における対応領域中の複数の画素の画素値として、前記原画像における前記単位画素又はその周辺にある複数の周辺画素のいずれかの画素値を選択することで、前記原画像における前記単位画素それぞれを細分化して拡大画像を得る細分化手段を備えていることを特徴とする画像処理装置である。
【発明の効果】
【0017】
本発明によれば、境界が比較的わかりやすい拡大画像が得られる。
【図面の簡単な説明】
【0018】
【図1】実施形態に係る画像拡大方法の処理の流れを示すフローチャートである。
【図2】元画像とそれを縮小した原画像(拡大対象の画像)である。
【図3】エッジ部分の作成処理のフローチャートである。
【図4】エッジ部分の抽出処理を示す概念図である。
【図5】エッジ付画像である。
【図6】面領域の作成処理のフローチャートである。
【図7】置換ステップを示す概念図である。
【図8】周辺輝度近似拡大画像である。
【図9】判定用差分画像とその求め方を示す図である。
【図10】補完処理のフローチャートである。
【図11】一次勾配と二次勾配の求め方を示す概念図である。
【図12】対応領域への値の代入の仕方を示す概念図である。
【図13】実施例に係る拡大画像である。
【図14】単純拡大画像である。
【図15】(a)はB−Spline法による拡大画像であり、(b)はLanczos法による拡大画像である。
【発明を実施するための形態】
【0019】
以下、本発明の好ましい実施形態について添付図面を参照しながら説明する。
【0020】
[1.画像処理装置の全体構成]
図1は、画像処理装置における処理ステップを示している。本実施形態における画像処理装置は、CPU・メモリなどを有するコンピュータによって構成され、後述する画像処理装置の機能(画像拡大処理)はコンピュータにインストールされたコンピュータプログラムが当該コンピュータによって実行されることで実現される。
なお、本実施形態の画像処理装置の機能は、画像処理プロセッサなどのハードウェアによって構成されてもよい。
【0021】
[2.画像拡大処理の概要]
図1に示すように、本実施形態の画像拡大処理は、エッジ部分の作成処理(ステップS1)、面領域の作成処理(ステップS2)、補完処理(ステップS3)の各ステップから構成されている。拡大対象となる原画像が入力されるとこれらのステップS1〜S3によって、原画像を拡大した拡大画像が出力される。
【0022】
なお、本実施形態では、図2に示す元画像を1/5に縮小した画像を原画像とし、この原画像を5倍に拡大する場合を例として説明する。ただし、拡大率が5倍に限定されるものではなく、任意の拡大率を採用することができる。
【0023】
[3.エッジ部分の作成処理]
図3は、エッジ部分の作成処理(ステップS1)を示している。このステップS1で得られたエッジ部分の位置(画素位置)を示す情報は、ステップS3の補完処理で用いられる。
図3に示すように、エッジ部分の作成処理は、Lanczos法(第1画像拡大アルゴリズム)によって原画像を5倍に拡大するステップS11と、B−Spline法(第2画像拡大アルゴリズム)によって原画像を5倍に拡大するステップS12と、Lanczos法による補間関数とB−Spline法による補間関数との交点を抽出するステップS13とを含んでいる。
【0024】
図4(a)(b)は、原画像を拡大したときの補間関数と原画像の輝度値(画素値)とを示している。図(a)(b)における点線又は実線の曲線が補間関数であり、図4(a)(b)中の棒グラフを構成する各棒は、原画像における各画素の輝度値を示している。
【0025】
図4(a)に示すように、Lanczos法では、補間関数曲線(点線)が原画像における各画素の輝度値を必ず通過するように補間関数が生成される(ステップS11)。このため、補間関数の山では原画像の輝度値よりも値が大きくなり、補間関数曲線の谷では原画像の輝度値よりも値が小さくなることがある。このようにLanczos法は、画素間の輝度差が大きくなりやすく、原画像におけるエッジを強調する第1画像拡大アルゴリズムである。
【0026】
Lanczos法のような第1画像拡大アルゴリズムでは、輝度差は強調されるものの、そのため、画像中の物体が実際よりも大きくなりすぎたり、物体のまわりに疑似輪郭が生じたりする。
なお、エッジを強調する他の第1画像拡大アルゴリズムとしては、線形補間法などがある。
【0027】
図4(b)に示すように、B−Spline法(Spline法)では、補間関数曲線(実線)の山や谷が、原画像の輝度値に到達せず、原画像における各画素の輝度値をより滑らかに近似する補間関数が生成される(ステップS12)。このように、B−Sline法は、Lanczos法よりも画像が全体的に滑らかにする第2画像拡大アルゴリズムである。
【0028】
B−Splineのような第2画像拡大アルゴリズムでは、画像が滑らかになるものの全体的にぼけた画像となる。
なお、第1画像拡大アルゴリズムよりも画像を滑らかにする他の第2画像拡大アルゴリズムとしては、Mitchell法などがある。
【0029】
ステップS13の交点抽出ステップでは、Lanczos法の補間関数曲線とB−Spline法の補間関数曲線の交点、すなわち、ステップS11で得た拡大画像における輝度値とステップS12で得た拡大画像における輝度値とが一致する画素の位置、を抽出する。以下では、この交点を「エッジ」とよび、同じ輝度(画素値)のエッジを繋いだ線を「エッジライン」という。
【0030】
図5は、ステップS1の処理によって得られたエッジラインを拡大画像に重ねて表示したものを示している。
図5において、白色の線がエッジラインである。このようなエッジ部分を示す情報は、ステップS3において拡大画像を生成する際に用いられる。
具体的には、エッジ(エッジライン)は、ステップS3において生成される拡大画像中の物体(画素値)の境界(境界線)線として用いられる。このエッジを用いることで、Lanczos法で拡大した場合に物体が大きくなりすぎる問題や疑似輪郭の問題を防止できる。
【0031】
[4.面領域の作成処理]
図6は、面領域の作成処理(ステップS2)を示している。
面領域の作成処理は、原画像を、B−Spline(Spline)法などの所定の画像拡大アルゴリズムに従って所望の拡大率(ここでは5倍)で拡大して初期拡大画像を得る拡大ステップS21と、初期拡大画像を補正して補正拡大画像を得る1又は複数の補正ステップS22a,S22b,・・と、補正拡大画像中の各画素それぞれの画素値を最適な周辺輝度値で置換した近似拡大画像を得る置換ステップS23と、近似拡大画像を縮小する縮小ステップS24と、原画像とこの縮小ステップS24で縮小した画像との差分を示す判定用差分画像を得る判定用差分画像抽出ステップS25と、を含んでいる。
【0032】
前記拡大ステップS21は、画像中において輝度がほぼ一定な面領域は比較的良好に拡大されるが、輝度値の変化が大きくなる境界部分ではぼけが生じ易い画像拡大アルゴリズムで前処理的な拡大を行う。この拡大ステップS21で採用できる画像拡大アルゴリズムとしては、B−Spline法のほか、Mitchell法などを採用することができる。
【0033】
前記補正ステップS22は、初期拡大画像のぼけにより原画像と間により生じた差分(ぼけによる差分)を初期拡大画像に加えることで、ぼけを減少させるためのものである。このため、補正ステップS22では、まず、初期拡大画像を原画像のサイズにするため1/5縮小を行って縮小画像を得るステップS22a−1を行い、その縮小画像と原画像との差分(画素ごとに輝度値の差を求めたもの)を示す差分画像を得るステップS22a−2を行う。
【0034】
この差分画像を再び、B−Spline法によって前記拡大率(5倍)で拡大して拡大差分画像を得るステップS22a−3を行い、その拡大差分画像を初期拡大画像に加算させてぼけを解消した補正拡大画像を得るステップS22a−4を行う。
【0035】
本実施形態において、前記補正ステップ22aは、1回だけでなく、2回繰り返される。2回目の補正ステップS22bは、1回目の補正ステップS22aで得られた補正拡大画像を、初期拡大画像として、1回目の補正ステップS22aと同様に行う。なお、補正ステップは、2回だけでなく、任意の回数(n回)繰り返すことができる。補正ステップを複数回繰り返すことで、ぼけをより解消することができる。
【0036】
前記置換ステップS23では、補正拡大画像中の画素を、原画像における画素の輝度値のうち適切な近似値で置換する。
ここでは、まず、図7に示すように、原画像中のある単位画素(1ピクセル;図7(a)ではdata[4]に相当するピクセル)を拡大(5倍拡大)した領域を「対応領域」という。図7(a)では、前述のある単位画素及び単位画素に隣接する8個の周辺画素の計9個の画素の輝度値をdata[0]〜data[8]で示している。図7(b)では、対応領域中の25個の画素の輝度値をSpline[0]〜Spline[24]で示している。
【0037】
置換ステップS23では、対応領域中の25個の画素の輝度値Spline[0]〜Spline[24]を、適切な近似値block[0]〜block[24]で置換する。近似値block[0]〜block[24]としては、原画像における前述のある単位画素及び単位画素に隣接する8個の周辺画素の計9個の画素の輝度値data[0]〜data[8]の中から選択される。
【0038】
具体的には、各画素の近似値block[i](i=0〜24)は、下記式に基づいて選択される。
【数1】
つまり、各画素(置換対象画素)の近似値block[i]としては、data[0]〜data[8]のうち、その画素(置換対象画素)の補正拡大画像における輝度地Splin[i]に最も近い値が選択される。
【0039】
以上のような置換は、補正拡大画像における全画素について行われるため、置換ステップで得られた近似拡大画像中の各画素の輝度値は、原画像におけるいずれかの画素の輝度値となる。これにより、画像中の境界が比較的はっきりした近似拡大画像が得られる。図8に上記処理で得られた近似拡大画像(周辺輝度近似拡大画像)の例を示す。
【0040】
前記縮小ステップS24では、前記近似拡大画像を1/5縮小した縮小画像を得る。そして、前記判定用差分画像抽出ステップS25では、図9に示すように、各画素について原画像の輝度値から縮小画像の輝度値を引いて、判定用差分画像を得る。
【0041】
[5.補完処理]
図10に示すように補完処理(ステップS3)では、まず、判定用差分画像抽出ステップS25で得た判定用差分画像に基づいて、処理を終了するか否かの判定処理(ステップS31)を行う。
【0042】
この判定処理では、判定用差分画像における各画素の輝度値が所定の閾値以下であるか否かを判定する。判定用差分画像における各画素の輝度値が所定の閾値以下である場合には、これまでの処理で得られた近似拡大画像が、拡大画像として十分的に適切であるとみなし、処理を終了し、前記近似拡大画像を出力画像(拡大画像)とする。
【0043】
一方、判定用差分画像における各画素の輝度値が所定の閾値よりも大きい場合には、これまでの処理で得られた近似拡大画像は、拡大画像としては不適切であるとみなし、補完処理(ステップS3)における以降の各ステップ(ステップS32〜S34)を実行する。
【0044】
判定処理(ステップS31)において、処理を継続することとなった場合、ステップS32〜S34の処理によって原画像から拡大画像を生成する。
まず、ステップS32では、原画像の各画素(単位画素)について、原画像のある特定の画素(単位画素)及びその特定画素に隣接する8個の周辺画素の計9個の画素の輝度値(周辺輝度値)が、その特定画素を拡大したときの拡大画像中の対応領域に及ぼす影響度情報K[j](j:0〜8)を算出する。
この影響度情報K[j]は、9個の周辺輝度値それぞれが、対応領域中の画素の輝度値として選択される画素数(影響面積)である。
【0045】
後に行われるステップS34では、対応領域中の各画素として、前記特定画素及びその特定画素に隣接する8個の周辺画素の計9個の周辺輝度値の中から選択される一の画素値が代入される。
したがって、前記影響度情報K[j]は、9個の周辺輝度値それぞれが、前記対応領域において、何個の画素分存在するかを示す値となる。
【0046】
この影響度情報K[j]は次のように算出される。
まず、9個のK[j](j:0〜8)の総和は、前記対応領域中の画素数(5×5=25)に等しい。よって、下記式が成り立つ。
【数2】
【0047】
また、拡大画像における前記対応領域中の25個の各画素の画素値をblock[i](i:0〜24)とすると、下記式のように、これら25個の画素値block[i]の平均値は、原画像において対応する特定画素の輝度値(対象輝度値)とほぼ等しくなるべきである。
【数3】
【0048】
また、9個の周辺輝度値をdata[j](j:0〜8)とすると、
【数4】
といえることから、
【数5】
と変形することができる。
この平均輝度差が小さいほど、拡大画像を再び縮小したときに原画像に近い画像となり好ましい拡大画像となる。
【0049】
ここで、境界等がくっきりした拡大画像にするためには、周辺輝度値data[j]の最小値と最大値の影響度情報(影響面積)K[j]が大きくなるようにするのが好ましい。
つまり、
【数6】
【数7】
とおくと、上記分散値が大きくなるほど、くっきりした画像といえる。
【0050】
よって、
【数8】
と定義し、上記変換度が最小となるようにK[j]の値を決定すればよい。具体的には、ステップS32では、K[j]を適宜変更して、その都度、上記変換度を算出し、当該変換度が最小となったK[j]を採用する。ただし、エッジラインが対応領域内に存在する場合、当該対応領域内におけるエッジラインの面積(画素数)を、特定画素(単位画素)についての影響度情報(影響面積)K[4]に固定した上で、他の影響度情報K[0]〜K[3],K[5]〜[8]の変更を行って、変換度が最小となる値を求める。
【0051】
9個の影響度情報(影響面積)K[j]が求まると、続いて、ステップS33では、これらの影響度情報(影響面積)K[j]から、配置情報(勾配)を算出する。ここで算出される配置情報は、前記対応領域に配置する画素の位置を規律する情報である。
【0052】
本実施形態において、配置情報は、周辺画素の画素値それぞれが、前記対応領域における画素の画素値として占める範囲の広がり方向を示す方向情報を含んでおり、この方向情報を「一次勾配」として求める。
また、配置情報は、周辺画素の画素値それぞれが、前記対応領域における画素の画素値として選択される際における前記周辺画素間の優先順位を示す優先情報を含んでおり、この優先情報を「二次勾配」として求める。
【0053】
一次勾配及び二次勾配は、図11のようにして算出される。まず、図11(a1)に示すような原画像の特定画素の影響度情報K[4]及びその周辺画素の影響度情報K[0]〜K[3],K[5]〜K[8]の具体値が、図11(a2)に示す値であるとする。
このとき、一次勾配a,b,c,d,e,f,g,h(図11(c1)参照)は、図11(c2)のような値となり、この一次勾配を構成する各値a,b,c,d,e,f,g,hは、影響度情報K[j]に基づき、図11(b1)中に示す式に従って算出される。ここでは、a=9,b=7,C=10,d=4,e=8,f=6,g=11,h=5である(図11(b2)(c2)参照)。
【0054】
一次勾配の各値のうち[a,b]の組は、図11において影響度情報の上下方向の勾配を示し、[c,d]の組は、影響度情報の左右方向の勾配を示し,[e,f]の組は、影響度情報の左斜下−右斜上方向の勾配を示し、[g,h]の組は、図において影響度情報の左斜上−右斜下方向の勾配を示している。
【0055】
また、二次勾配A,B,C,D,E,F,G,H(図11(e1)参照)は、図11(e2)に示すような値となり、この二次勾配を構成する各値A,B,C,D,E,F,G,Hは、一次勾配に基づき、図11(d1)中に示す式に従って算出される。ここでは、A=26,B=20,C=29,D=15,E=25,F=19,G=30,H=16である(図11(d2)(e2)参照)。
これらの二次勾配の各値は、特定画素の周囲における影響度情報の全体的な勾配を示している。
【0056】
続いて、ステップS1で求めたエッジ(エッジライン)の位置情報、影響度情報(影響面積)、勾配(一次勾配、二次勾配)に基づいて、前記特定画素の細分化ステップS34を行う。
細分化ステップS34では、影響度情報K[j]それぞれが示す数に従って、特定画素又は周辺画素の輝度値を、前記対応領域中の画素値として代入する。
【0057】
例えば、図12に示すように、影響度情報(影響面積)K[j]、一次勾配、二次勾配が求まっているものとする。
この場合、まず、対応領域中に、エッジラインとなる画素が存在する場合、原画像の対応する特定画素の画素値data[4]を、エッジラインとなる画素(block[2],block[7],block[12],block[18],block[23])の画素値として代入する。図12では、エッジラインとなる画素は×で示している。なお、ここでは、エッジライン上の画素数=K[4]=5である。
【0058】
続いて、影響面積Kの四隅(K[0],K[2],K[6],K[8])の値が、1以上のときには、その四隅に対応する原画像の周辺画素の輝度値(data[0],data[2],data[6],data[8])を、対応領域の四隅の画素(block[0],block[4],block[20],block[24])として代入する。ただし、対応領域の四隅がエッジライン上の場合には、この代入は行わない。
【0059】
なお、図12の対応領域における各画素中の数字は、対応領域中の画素に値が代入される順番(エッジラインを除く)であり、対応領域の四隅には、「1」が記されている。
また、対応領域中の各画素を囲む図形は、対応領域中の画素の輝度値として、どの周辺画素の輝度値が代入されたかを識別するためのものであり、一重丸印は特定画素の左斜上の周辺輝度値(data[0])、二重丸印は同真上の周辺輝度値(data[1])、一重星印は同右斜上の周辺輝度値(data[2])、一重四角印は同左横の周辺輝度値(data[3])、二重四角印は同右横の周辺輝度値(data[5])、一重三角印は同左斜下の周辺輝度値(data[6])、二重星印は同真下の周辺輝度値(data[7])、二重三角印は同右斜下の周辺輝度値(data[8])を示す。
【0060】
続いて、二次勾配の一番高い値(図12では、「30」)から順番に選択して、以下の処理(i)(ii)を行う。
【0061】
(i)対応領域において値が未代入である画素について、周辺画素の中心から、近い距離にある画素順に、選択された二次勾配の値に対応する位置の周辺画素の輝度値data[i]を代入する。このとき、前記中心から同距離の複数の未代入画素が存在した場合、複数の未代入画素同士を結ぶ方向の勾配を、一次勾配を参照して決定し、当該方向における一次勾配の値が小さい方の未代入画素から値を代入する。
【0062】
(ii)上記(i)のようにして値を代入していき、値を代入すべき画素がエッジラインに当たった場合は、エッジラインを越えずに、エッジラインに沿って広がるように、次に代入すべき画素を選択する。ただし、値を未代入の画素が残っていない場合には、エッジラインをまたいでもよいものとする。
【0063】
具体的に図12では、対応領域に代入する周辺画素の優先順位(代入順位)としては、二次勾配の値の大きい順に、data[0]=30、data[3]=29、data[1]=26、data[6]=25、data[7]=20、data[2]=19、data[8]=16、data[5]=15となる。
【0064】
最初の代入値であるdata[0]については、対応する影響度情報(影響面積)K[0]=4であるから、対応領域において占めるべき画素数は4つであり、すでに一つが対応領域の左斜上隅に代入されているから、ここでは、残りは3つである。
【0065】
ここで、data[0]の中心から最短距離の対応領域中の未代入画素は、block[1]とblock[5]の2つがある。この2つの画素のうちどちらを優先して代入するかは、一次勾配を参照して決定する。つまり、block[1]とblock[5]とを結ぶ方向は、data[0]の中心を基準としてみると、右斜上と左斜下とを結ぶ方向である。この方向の勾配は、一次勾配を参照すると、右斜上が「6」であり、左斜下が「8」であることから、右斜上のほうが小さい値である。値が大きいほうは他の周辺画素からの影響を受け易い位置となるので、値の小さい右斜上側にあるblock[1]が優先して代入される画素(2番目に代入される画素)として選択される。
【0066】
続いて、block[1]の画素と同距離にあるとblock[5]の画素が、次に代入される画素(3番目に代入される画素)として選択される。さらに、この状態において、data[0]の中心から最短距離の対応領域中の未代入画素は、block[6]となるから、この画素が、4番目に代入される画素として選択される。
以上で、最初の代入値であるdata[0]の対応領域中への代入が完了する。
同様に、次の代入値data[3]の対応領域中への代入が行われ、他の代入値についても順次代入が行われて、細分化ステップS34が終了する。
【0067】
上記細分化ステップS34を行った場合、画像処理装置は、当該細分化ステップS34によって得られた画像を、拡大画像(出力画像)として出力する。なお、細分化ステップ34は、エッジが含まれる対応領域にだけ行い、エッジが含まれない対応領域については面領域の作成処理で得た値を画素値として採用しても良いし、原画像の全画素対応する対応領域すべてについて行っても良い。
【0068】
上記の補完処理(ステップS3)によって得られた拡大画像を図13に示す。また、比較例として、高解像度化を行わずに原画像の単純拡大を行った単純拡大画像を図14に、原画像をB−Spline法により拡大を行った拡大画像を図15(a)に、原画像をLanczos法により拡大を行った拡大画像を、図15(b)に示す。
【0069】
図14の単純拡大画像ではジャギーが生じている。図15(a)(b)に示す従来の画像拡大アルゴリズムで拡大した画像は、単純拡大画像よりは全体的に滑らかになるものの、ぼけた画像となっている。また、従来の画像拡大アルゴリズムで拡大した画像をもう一度、原画像のサイズに縮小した場合、原画像とは異なる画素値となる。
特に、Lanczos法で拡大した図15(b)では、疑似輪郭が生じ、物体がやや大きくなっている(トンボの尻尾の部分の周辺を参照)。
【0070】
これに対し、図13の拡大画像(実施例)では、図15(a)(b)に比べて、ぼけがある程度解消されており、境界線がわかりやすくなっている。また、疑似輪郭もみられない。また、再縮小した場合、原画像とほぼ同じ画素値となる。
【0071】
[6.付記]
なお、上記において開示した事項は、例示であって、本発明を限定するものではなく、様々な変形が可能である
【符号の説明】
【0072】
S1 エッジ部分の作成処理(エッジ抽出ステップ)
S2 面領域の作成処理
S3 補完処理
【技術分野】
【0001】
本発明は、画像拡大方法、そのコンピュータプログラム、及び画像処理装置に関するものである。
【背景技術】
【0002】
画像を拡大する場合、解像度をそのままで単純に拡大するとジャギーが生じるため、拡大対象となる原画像の画素間を、画像拡大アルゴリズムに従って、滑らかな関数で結んで補間することが行われている。従来の画像拡大アルゴリズムには、Spline法、Lanczos法などがある。
【発明の概要】
【発明が解決しようとする課題】
【0003】
しかし、従来の画像拡大アルゴリズムでは、全体的にぼけた画像となり、画像中の境界面がわかりにくいという問題がある。なお、従来の画像拡大アルゴリズムでは、拡大した画像を原画像の大きさに縮小すると、原画像の画素値とは異なってしまうという問題もあった。
そこで、本発明は、境界が比較的わかりやすい拡大画像が得られる画像拡大方法等を提供することを目的とする。
【課題を解決するための手段】
【0004】
本発明は、原画像を高解像度化して拡大画像を得る画像拡大方法であって、前記原画像における単位画素に対応する前記拡大画像の対応領域中の複数の画素の各画素値として、前記原画像における前記単位画素又はその周辺にある複数の周辺画素のいずれかの画素値を選択することで、前記原画像における前記単位画素それぞれを細分化して拡大画像を得る細分化ステップを含むことを特徴とする画像拡大方法である。
【0005】
前記細分化ステップは、前記原画像における前記単位画素又はその周辺にある複数の周辺画素のうちどの画素の画素値を、前記対応領域中のどの画素の画素値として選択するかを、影響度情報及び配置情報に基づいて、決定するものであり、前記影響度情報は、前記単位画素及び前記周辺画素の画素値それぞれが、前記対応領域における画素の画素値として占める画素数を示す情報であり、前記配置情報は、前記対応領域に配置される画素の位置を規律する情報であり、前記影響度情報及び配置情報は、前記単位画素及び前記周辺画素の画素値に基づいて生成されるのが好ましい。
【0006】
前記影響度情報は、当該影響度情報に従った場合の対応領域の平均画素値と、前記単位画素の画素値と、の差である平均輝度差を小さくするように決定されるのが好ましい。
【0007】
前記影響度情報は、前記単位画素及び前記周辺画素の画素値における最大値及び最小値が、前記対応領域中における画素値として占める割合が大きくなるように決定されるのが好ましい。
【0008】
前記影響度情報は、当該影響度情報に従った場合の対応領域の平均画素値と前記単位画素の画素値との差である平均輝度差を、前記単位画素及び前記周辺画素の平均画素値と前記単位画素及び前記周辺画素の画素値それぞれとの差の絶対値に、対応する前記単位画素及び前記周辺画素の影響度情報を乗じたものの総和を示す分散値で除した値である変換度に基づいて決定されるのが好ましい。また、前記影響度情報は、前記変換度が最小となるように決定されるのが好ましい。
【0009】
前記配置情報は、前記周辺画素の画素値が、前記対応領域における画素の画素値として占める範囲の広がり方向を示す方向情報を含むのが好ましい。
また、前記配置情報は、前記周辺画素の画素値それぞれが、前記対応領域中の画素の画素値として選択される際における前記周辺画素間の優先順位を示す情報を含むのが好ましい。
【0010】
前記拡大画像におけるエッジを抽出するエッジ抽出ステップを更に含み、前記エッジ抽出ステップでは、画像におけるエッジが強調されるように画像拡大を行う第1画像拡大アルゴリズムによって前記原画像を拡大した場合の画素値と、前記第1画像拡大アルゴリズムよりも画像全体が滑らかになる第2画像拡大アルゴリズムによって前記対象を拡大した場合の画素値と、が一致する位置にある画素をエッジとして抽出し、前記細分化ステップでは、前記対応領域中の画素のうち、前記エッジに相当する画素は、その画素値として、前記原画像における前記単位画素の画素値を選択するのが好ましい。
【0011】
前記第1画像拡大アルゴリズムは、Lanczos法又は線形補間法であるのが好ましく、前記第2画像拡大アルゴリズムは、Spline法又はMitchell法であるのが好ましい。
【0012】
拡大対象である原画像を、所定の画像拡大アルゴリズムに従って所望の拡大率で拡大させて初期拡大画像を得る拡大ステップと、前記初期拡大画像を補正して補正拡大画像を得る補正ステップと、前記補正拡大画像中の各画素それぞれの画素値を置換した近似拡大画像を得る置換ステップと、前記近似拡大画像を前記原画像のサイズに縮小したものと、前記原画像と、の差分を示す判定用差分画像を得る判定用差分画像抽出ステップと、前記判定用差分画像に基づいて、前記近似拡大画像が前記原画像の拡大画像として適切であるか否かを判定する判定ステップと、を更に含み、前記補正ステップは、前記初期拡大画像を前記原画像のサイズに縮小させた縮小画像を得るステップと、前記原画像と前記縮小画像との差分を示す差分画像を得るステップと、前記差分画像を前記画像拡大アルゴリズムに従って前記拡大率で拡大させて拡大差分画像を得るステップと、前記初期拡大画像に前記拡大差分画像を加算して補正拡大画像を得るステップと、を含み、前記置換ステップは、前記原画像における単位画素に対応する前記補正拡大画像の対応領域中の複数の置換対象画素それぞれの画素値を、近似値に置換することで近似拡大画像を得るものであり、更に前記置換ステップでは、前記近似値として、前記原画像における前記単位画素及びその周辺にある複数の周辺画素の各画素値のうち、前記置換対象画素の画素値に最も近い値が選択され、前記判定ステップにおいて、前記近似拡大画像が前記原画像の拡大画像として適切であると判定されると、前記近似拡大画像を拡大画像として出力し、前記近似拡大画像が前記原画像の拡大画像として適切でないと判定されると前記細分化ステップで得た拡大画像を出力するのが好ましい。
【0013】
前記補正ステップによって得られた前記補正拡大画像を前記初期拡大画像として、前記補正ステップを複数回繰り返すのが好ましい。
【0014】
前記所定の画像拡大アルゴリズムは、Spline法又はMitchell法であるのが好ましい。
【0015】
他の観点からみた本発明は、コンピュータに、前記画像拡大方法におけるステップを実行させるためのコンピュータプログラムである。
【0016】
他の観点からみた本発明は、原画像を高解像度化しつつ拡大した拡大画像を得る画像処理装置であって、前記原画像における単位画素に対応する前記拡大画像における対応領域中の複数の画素の画素値として、前記原画像における前記単位画素又はその周辺にある複数の周辺画素のいずれかの画素値を選択することで、前記原画像における前記単位画素それぞれを細分化して拡大画像を得る細分化手段を備えていることを特徴とする画像処理装置である。
【発明の効果】
【0017】
本発明によれば、境界が比較的わかりやすい拡大画像が得られる。
【図面の簡単な説明】
【0018】
【図1】実施形態に係る画像拡大方法の処理の流れを示すフローチャートである。
【図2】元画像とそれを縮小した原画像(拡大対象の画像)である。
【図3】エッジ部分の作成処理のフローチャートである。
【図4】エッジ部分の抽出処理を示す概念図である。
【図5】エッジ付画像である。
【図6】面領域の作成処理のフローチャートである。
【図7】置換ステップを示す概念図である。
【図8】周辺輝度近似拡大画像である。
【図9】判定用差分画像とその求め方を示す図である。
【図10】補完処理のフローチャートである。
【図11】一次勾配と二次勾配の求め方を示す概念図である。
【図12】対応領域への値の代入の仕方を示す概念図である。
【図13】実施例に係る拡大画像である。
【図14】単純拡大画像である。
【図15】(a)はB−Spline法による拡大画像であり、(b)はLanczos法による拡大画像である。
【発明を実施するための形態】
【0019】
以下、本発明の好ましい実施形態について添付図面を参照しながら説明する。
【0020】
[1.画像処理装置の全体構成]
図1は、画像処理装置における処理ステップを示している。本実施形態における画像処理装置は、CPU・メモリなどを有するコンピュータによって構成され、後述する画像処理装置の機能(画像拡大処理)はコンピュータにインストールされたコンピュータプログラムが当該コンピュータによって実行されることで実現される。
なお、本実施形態の画像処理装置の機能は、画像処理プロセッサなどのハードウェアによって構成されてもよい。
【0021】
[2.画像拡大処理の概要]
図1に示すように、本実施形態の画像拡大処理は、エッジ部分の作成処理(ステップS1)、面領域の作成処理(ステップS2)、補完処理(ステップS3)の各ステップから構成されている。拡大対象となる原画像が入力されるとこれらのステップS1〜S3によって、原画像を拡大した拡大画像が出力される。
【0022】
なお、本実施形態では、図2に示す元画像を1/5に縮小した画像を原画像とし、この原画像を5倍に拡大する場合を例として説明する。ただし、拡大率が5倍に限定されるものではなく、任意の拡大率を採用することができる。
【0023】
[3.エッジ部分の作成処理]
図3は、エッジ部分の作成処理(ステップS1)を示している。このステップS1で得られたエッジ部分の位置(画素位置)を示す情報は、ステップS3の補完処理で用いられる。
図3に示すように、エッジ部分の作成処理は、Lanczos法(第1画像拡大アルゴリズム)によって原画像を5倍に拡大するステップS11と、B−Spline法(第2画像拡大アルゴリズム)によって原画像を5倍に拡大するステップS12と、Lanczos法による補間関数とB−Spline法による補間関数との交点を抽出するステップS13とを含んでいる。
【0024】
図4(a)(b)は、原画像を拡大したときの補間関数と原画像の輝度値(画素値)とを示している。図(a)(b)における点線又は実線の曲線が補間関数であり、図4(a)(b)中の棒グラフを構成する各棒は、原画像における各画素の輝度値を示している。
【0025】
図4(a)に示すように、Lanczos法では、補間関数曲線(点線)が原画像における各画素の輝度値を必ず通過するように補間関数が生成される(ステップS11)。このため、補間関数の山では原画像の輝度値よりも値が大きくなり、補間関数曲線の谷では原画像の輝度値よりも値が小さくなることがある。このようにLanczos法は、画素間の輝度差が大きくなりやすく、原画像におけるエッジを強調する第1画像拡大アルゴリズムである。
【0026】
Lanczos法のような第1画像拡大アルゴリズムでは、輝度差は強調されるものの、そのため、画像中の物体が実際よりも大きくなりすぎたり、物体のまわりに疑似輪郭が生じたりする。
なお、エッジを強調する他の第1画像拡大アルゴリズムとしては、線形補間法などがある。
【0027】
図4(b)に示すように、B−Spline法(Spline法)では、補間関数曲線(実線)の山や谷が、原画像の輝度値に到達せず、原画像における各画素の輝度値をより滑らかに近似する補間関数が生成される(ステップS12)。このように、B−Sline法は、Lanczos法よりも画像が全体的に滑らかにする第2画像拡大アルゴリズムである。
【0028】
B−Splineのような第2画像拡大アルゴリズムでは、画像が滑らかになるものの全体的にぼけた画像となる。
なお、第1画像拡大アルゴリズムよりも画像を滑らかにする他の第2画像拡大アルゴリズムとしては、Mitchell法などがある。
【0029】
ステップS13の交点抽出ステップでは、Lanczos法の補間関数曲線とB−Spline法の補間関数曲線の交点、すなわち、ステップS11で得た拡大画像における輝度値とステップS12で得た拡大画像における輝度値とが一致する画素の位置、を抽出する。以下では、この交点を「エッジ」とよび、同じ輝度(画素値)のエッジを繋いだ線を「エッジライン」という。
【0030】
図5は、ステップS1の処理によって得られたエッジラインを拡大画像に重ねて表示したものを示している。
図5において、白色の線がエッジラインである。このようなエッジ部分を示す情報は、ステップS3において拡大画像を生成する際に用いられる。
具体的には、エッジ(エッジライン)は、ステップS3において生成される拡大画像中の物体(画素値)の境界(境界線)線として用いられる。このエッジを用いることで、Lanczos法で拡大した場合に物体が大きくなりすぎる問題や疑似輪郭の問題を防止できる。
【0031】
[4.面領域の作成処理]
図6は、面領域の作成処理(ステップS2)を示している。
面領域の作成処理は、原画像を、B−Spline(Spline)法などの所定の画像拡大アルゴリズムに従って所望の拡大率(ここでは5倍)で拡大して初期拡大画像を得る拡大ステップS21と、初期拡大画像を補正して補正拡大画像を得る1又は複数の補正ステップS22a,S22b,・・と、補正拡大画像中の各画素それぞれの画素値を最適な周辺輝度値で置換した近似拡大画像を得る置換ステップS23と、近似拡大画像を縮小する縮小ステップS24と、原画像とこの縮小ステップS24で縮小した画像との差分を示す判定用差分画像を得る判定用差分画像抽出ステップS25と、を含んでいる。
【0032】
前記拡大ステップS21は、画像中において輝度がほぼ一定な面領域は比較的良好に拡大されるが、輝度値の変化が大きくなる境界部分ではぼけが生じ易い画像拡大アルゴリズムで前処理的な拡大を行う。この拡大ステップS21で採用できる画像拡大アルゴリズムとしては、B−Spline法のほか、Mitchell法などを採用することができる。
【0033】
前記補正ステップS22は、初期拡大画像のぼけにより原画像と間により生じた差分(ぼけによる差分)を初期拡大画像に加えることで、ぼけを減少させるためのものである。このため、補正ステップS22では、まず、初期拡大画像を原画像のサイズにするため1/5縮小を行って縮小画像を得るステップS22a−1を行い、その縮小画像と原画像との差分(画素ごとに輝度値の差を求めたもの)を示す差分画像を得るステップS22a−2を行う。
【0034】
この差分画像を再び、B−Spline法によって前記拡大率(5倍)で拡大して拡大差分画像を得るステップS22a−3を行い、その拡大差分画像を初期拡大画像に加算させてぼけを解消した補正拡大画像を得るステップS22a−4を行う。
【0035】
本実施形態において、前記補正ステップ22aは、1回だけでなく、2回繰り返される。2回目の補正ステップS22bは、1回目の補正ステップS22aで得られた補正拡大画像を、初期拡大画像として、1回目の補正ステップS22aと同様に行う。なお、補正ステップは、2回だけでなく、任意の回数(n回)繰り返すことができる。補正ステップを複数回繰り返すことで、ぼけをより解消することができる。
【0036】
前記置換ステップS23では、補正拡大画像中の画素を、原画像における画素の輝度値のうち適切な近似値で置換する。
ここでは、まず、図7に示すように、原画像中のある単位画素(1ピクセル;図7(a)ではdata[4]に相当するピクセル)を拡大(5倍拡大)した領域を「対応領域」という。図7(a)では、前述のある単位画素及び単位画素に隣接する8個の周辺画素の計9個の画素の輝度値をdata[0]〜data[8]で示している。図7(b)では、対応領域中の25個の画素の輝度値をSpline[0]〜Spline[24]で示している。
【0037】
置換ステップS23では、対応領域中の25個の画素の輝度値Spline[0]〜Spline[24]を、適切な近似値block[0]〜block[24]で置換する。近似値block[0]〜block[24]としては、原画像における前述のある単位画素及び単位画素に隣接する8個の周辺画素の計9個の画素の輝度値data[0]〜data[8]の中から選択される。
【0038】
具体的には、各画素の近似値block[i](i=0〜24)は、下記式に基づいて選択される。
【数1】
つまり、各画素(置換対象画素)の近似値block[i]としては、data[0]〜data[8]のうち、その画素(置換対象画素)の補正拡大画像における輝度地Splin[i]に最も近い値が選択される。
【0039】
以上のような置換は、補正拡大画像における全画素について行われるため、置換ステップで得られた近似拡大画像中の各画素の輝度値は、原画像におけるいずれかの画素の輝度値となる。これにより、画像中の境界が比較的はっきりした近似拡大画像が得られる。図8に上記処理で得られた近似拡大画像(周辺輝度近似拡大画像)の例を示す。
【0040】
前記縮小ステップS24では、前記近似拡大画像を1/5縮小した縮小画像を得る。そして、前記判定用差分画像抽出ステップS25では、図9に示すように、各画素について原画像の輝度値から縮小画像の輝度値を引いて、判定用差分画像を得る。
【0041】
[5.補完処理]
図10に示すように補完処理(ステップS3)では、まず、判定用差分画像抽出ステップS25で得た判定用差分画像に基づいて、処理を終了するか否かの判定処理(ステップS31)を行う。
【0042】
この判定処理では、判定用差分画像における各画素の輝度値が所定の閾値以下であるか否かを判定する。判定用差分画像における各画素の輝度値が所定の閾値以下である場合には、これまでの処理で得られた近似拡大画像が、拡大画像として十分的に適切であるとみなし、処理を終了し、前記近似拡大画像を出力画像(拡大画像)とする。
【0043】
一方、判定用差分画像における各画素の輝度値が所定の閾値よりも大きい場合には、これまでの処理で得られた近似拡大画像は、拡大画像としては不適切であるとみなし、補完処理(ステップS3)における以降の各ステップ(ステップS32〜S34)を実行する。
【0044】
判定処理(ステップS31)において、処理を継続することとなった場合、ステップS32〜S34の処理によって原画像から拡大画像を生成する。
まず、ステップS32では、原画像の各画素(単位画素)について、原画像のある特定の画素(単位画素)及びその特定画素に隣接する8個の周辺画素の計9個の画素の輝度値(周辺輝度値)が、その特定画素を拡大したときの拡大画像中の対応領域に及ぼす影響度情報K[j](j:0〜8)を算出する。
この影響度情報K[j]は、9個の周辺輝度値それぞれが、対応領域中の画素の輝度値として選択される画素数(影響面積)である。
【0045】
後に行われるステップS34では、対応領域中の各画素として、前記特定画素及びその特定画素に隣接する8個の周辺画素の計9個の周辺輝度値の中から選択される一の画素値が代入される。
したがって、前記影響度情報K[j]は、9個の周辺輝度値それぞれが、前記対応領域において、何個の画素分存在するかを示す値となる。
【0046】
この影響度情報K[j]は次のように算出される。
まず、9個のK[j](j:0〜8)の総和は、前記対応領域中の画素数(5×5=25)に等しい。よって、下記式が成り立つ。
【数2】
【0047】
また、拡大画像における前記対応領域中の25個の各画素の画素値をblock[i](i:0〜24)とすると、下記式のように、これら25個の画素値block[i]の平均値は、原画像において対応する特定画素の輝度値(対象輝度値)とほぼ等しくなるべきである。
【数3】
【0048】
また、9個の周辺輝度値をdata[j](j:0〜8)とすると、
【数4】
といえることから、
【数5】
と変形することができる。
この平均輝度差が小さいほど、拡大画像を再び縮小したときに原画像に近い画像となり好ましい拡大画像となる。
【0049】
ここで、境界等がくっきりした拡大画像にするためには、周辺輝度値data[j]の最小値と最大値の影響度情報(影響面積)K[j]が大きくなるようにするのが好ましい。
つまり、
【数6】
【数7】
とおくと、上記分散値が大きくなるほど、くっきりした画像といえる。
【0050】
よって、
【数8】
と定義し、上記変換度が最小となるようにK[j]の値を決定すればよい。具体的には、ステップS32では、K[j]を適宜変更して、その都度、上記変換度を算出し、当該変換度が最小となったK[j]を採用する。ただし、エッジラインが対応領域内に存在する場合、当該対応領域内におけるエッジラインの面積(画素数)を、特定画素(単位画素)についての影響度情報(影響面積)K[4]に固定した上で、他の影響度情報K[0]〜K[3],K[5]〜[8]の変更を行って、変換度が最小となる値を求める。
【0051】
9個の影響度情報(影響面積)K[j]が求まると、続いて、ステップS33では、これらの影響度情報(影響面積)K[j]から、配置情報(勾配)を算出する。ここで算出される配置情報は、前記対応領域に配置する画素の位置を規律する情報である。
【0052】
本実施形態において、配置情報は、周辺画素の画素値それぞれが、前記対応領域における画素の画素値として占める範囲の広がり方向を示す方向情報を含んでおり、この方向情報を「一次勾配」として求める。
また、配置情報は、周辺画素の画素値それぞれが、前記対応領域における画素の画素値として選択される際における前記周辺画素間の優先順位を示す優先情報を含んでおり、この優先情報を「二次勾配」として求める。
【0053】
一次勾配及び二次勾配は、図11のようにして算出される。まず、図11(a1)に示すような原画像の特定画素の影響度情報K[4]及びその周辺画素の影響度情報K[0]〜K[3],K[5]〜K[8]の具体値が、図11(a2)に示す値であるとする。
このとき、一次勾配a,b,c,d,e,f,g,h(図11(c1)参照)は、図11(c2)のような値となり、この一次勾配を構成する各値a,b,c,d,e,f,g,hは、影響度情報K[j]に基づき、図11(b1)中に示す式に従って算出される。ここでは、a=9,b=7,C=10,d=4,e=8,f=6,g=11,h=5である(図11(b2)(c2)参照)。
【0054】
一次勾配の各値のうち[a,b]の組は、図11において影響度情報の上下方向の勾配を示し、[c,d]の組は、影響度情報の左右方向の勾配を示し,[e,f]の組は、影響度情報の左斜下−右斜上方向の勾配を示し、[g,h]の組は、図において影響度情報の左斜上−右斜下方向の勾配を示している。
【0055】
また、二次勾配A,B,C,D,E,F,G,H(図11(e1)参照)は、図11(e2)に示すような値となり、この二次勾配を構成する各値A,B,C,D,E,F,G,Hは、一次勾配に基づき、図11(d1)中に示す式に従って算出される。ここでは、A=26,B=20,C=29,D=15,E=25,F=19,G=30,H=16である(図11(d2)(e2)参照)。
これらの二次勾配の各値は、特定画素の周囲における影響度情報の全体的な勾配を示している。
【0056】
続いて、ステップS1で求めたエッジ(エッジライン)の位置情報、影響度情報(影響面積)、勾配(一次勾配、二次勾配)に基づいて、前記特定画素の細分化ステップS34を行う。
細分化ステップS34では、影響度情報K[j]それぞれが示す数に従って、特定画素又は周辺画素の輝度値を、前記対応領域中の画素値として代入する。
【0057】
例えば、図12に示すように、影響度情報(影響面積)K[j]、一次勾配、二次勾配が求まっているものとする。
この場合、まず、対応領域中に、エッジラインとなる画素が存在する場合、原画像の対応する特定画素の画素値data[4]を、エッジラインとなる画素(block[2],block[7],block[12],block[18],block[23])の画素値として代入する。図12では、エッジラインとなる画素は×で示している。なお、ここでは、エッジライン上の画素数=K[4]=5である。
【0058】
続いて、影響面積Kの四隅(K[0],K[2],K[6],K[8])の値が、1以上のときには、その四隅に対応する原画像の周辺画素の輝度値(data[0],data[2],data[6],data[8])を、対応領域の四隅の画素(block[0],block[4],block[20],block[24])として代入する。ただし、対応領域の四隅がエッジライン上の場合には、この代入は行わない。
【0059】
なお、図12の対応領域における各画素中の数字は、対応領域中の画素に値が代入される順番(エッジラインを除く)であり、対応領域の四隅には、「1」が記されている。
また、対応領域中の各画素を囲む図形は、対応領域中の画素の輝度値として、どの周辺画素の輝度値が代入されたかを識別するためのものであり、一重丸印は特定画素の左斜上の周辺輝度値(data[0])、二重丸印は同真上の周辺輝度値(data[1])、一重星印は同右斜上の周辺輝度値(data[2])、一重四角印は同左横の周辺輝度値(data[3])、二重四角印は同右横の周辺輝度値(data[5])、一重三角印は同左斜下の周辺輝度値(data[6])、二重星印は同真下の周辺輝度値(data[7])、二重三角印は同右斜下の周辺輝度値(data[8])を示す。
【0060】
続いて、二次勾配の一番高い値(図12では、「30」)から順番に選択して、以下の処理(i)(ii)を行う。
【0061】
(i)対応領域において値が未代入である画素について、周辺画素の中心から、近い距離にある画素順に、選択された二次勾配の値に対応する位置の周辺画素の輝度値data[i]を代入する。このとき、前記中心から同距離の複数の未代入画素が存在した場合、複数の未代入画素同士を結ぶ方向の勾配を、一次勾配を参照して決定し、当該方向における一次勾配の値が小さい方の未代入画素から値を代入する。
【0062】
(ii)上記(i)のようにして値を代入していき、値を代入すべき画素がエッジラインに当たった場合は、エッジラインを越えずに、エッジラインに沿って広がるように、次に代入すべき画素を選択する。ただし、値を未代入の画素が残っていない場合には、エッジラインをまたいでもよいものとする。
【0063】
具体的に図12では、対応領域に代入する周辺画素の優先順位(代入順位)としては、二次勾配の値の大きい順に、data[0]=30、data[3]=29、data[1]=26、data[6]=25、data[7]=20、data[2]=19、data[8]=16、data[5]=15となる。
【0064】
最初の代入値であるdata[0]については、対応する影響度情報(影響面積)K[0]=4であるから、対応領域において占めるべき画素数は4つであり、すでに一つが対応領域の左斜上隅に代入されているから、ここでは、残りは3つである。
【0065】
ここで、data[0]の中心から最短距離の対応領域中の未代入画素は、block[1]とblock[5]の2つがある。この2つの画素のうちどちらを優先して代入するかは、一次勾配を参照して決定する。つまり、block[1]とblock[5]とを結ぶ方向は、data[0]の中心を基準としてみると、右斜上と左斜下とを結ぶ方向である。この方向の勾配は、一次勾配を参照すると、右斜上が「6」であり、左斜下が「8」であることから、右斜上のほうが小さい値である。値が大きいほうは他の周辺画素からの影響を受け易い位置となるので、値の小さい右斜上側にあるblock[1]が優先して代入される画素(2番目に代入される画素)として選択される。
【0066】
続いて、block[1]の画素と同距離にあるとblock[5]の画素が、次に代入される画素(3番目に代入される画素)として選択される。さらに、この状態において、data[0]の中心から最短距離の対応領域中の未代入画素は、block[6]となるから、この画素が、4番目に代入される画素として選択される。
以上で、最初の代入値であるdata[0]の対応領域中への代入が完了する。
同様に、次の代入値data[3]の対応領域中への代入が行われ、他の代入値についても順次代入が行われて、細分化ステップS34が終了する。
【0067】
上記細分化ステップS34を行った場合、画像処理装置は、当該細分化ステップS34によって得られた画像を、拡大画像(出力画像)として出力する。なお、細分化ステップ34は、エッジが含まれる対応領域にだけ行い、エッジが含まれない対応領域については面領域の作成処理で得た値を画素値として採用しても良いし、原画像の全画素対応する対応領域すべてについて行っても良い。
【0068】
上記の補完処理(ステップS3)によって得られた拡大画像を図13に示す。また、比較例として、高解像度化を行わずに原画像の単純拡大を行った単純拡大画像を図14に、原画像をB−Spline法により拡大を行った拡大画像を図15(a)に、原画像をLanczos法により拡大を行った拡大画像を、図15(b)に示す。
【0069】
図14の単純拡大画像ではジャギーが生じている。図15(a)(b)に示す従来の画像拡大アルゴリズムで拡大した画像は、単純拡大画像よりは全体的に滑らかになるものの、ぼけた画像となっている。また、従来の画像拡大アルゴリズムで拡大した画像をもう一度、原画像のサイズに縮小した場合、原画像とは異なる画素値となる。
特に、Lanczos法で拡大した図15(b)では、疑似輪郭が生じ、物体がやや大きくなっている(トンボの尻尾の部分の周辺を参照)。
【0070】
これに対し、図13の拡大画像(実施例)では、図15(a)(b)に比べて、ぼけがある程度解消されており、境界線がわかりやすくなっている。また、疑似輪郭もみられない。また、再縮小した場合、原画像とほぼ同じ画素値となる。
【0071】
[6.付記]
なお、上記において開示した事項は、例示であって、本発明を限定するものではなく、様々な変形が可能である
【符号の説明】
【0072】
S1 エッジ部分の作成処理(エッジ抽出ステップ)
S2 面領域の作成処理
S3 補完処理
【特許請求の範囲】
【請求項1】
原画像を高解像度化して拡大画像を得る画像拡大方法であって、
前記原画像における単位画素に対応する前記拡大画像の対応領域中の複数の画素の各画素値として、前記原画像における前記単位画素又はその周辺にある複数の周辺画素のいずれかの画素値を選択することで、前記原画像における前記単位画素それぞれを細分化して拡大画像を得る細分化ステップ
を含むことを特徴とする画像拡大方法。
【請求項2】
前記細分化ステップは、前記原画像における前記単位画素又はその周辺にある複数の周辺画素のうちどの画素の画素値を、前記対応領域中のどの画素の画素値として選択するかを、影響度情報及び配置情報に基づいて、決定するものであり、
前記影響度情報は、前記単位画素及び前記周辺画素の画素値それぞれが、前記対応領域における画素の画素値として占める画素数を示す情報であり、
前記配置情報は、前記対応領域に配置される画素の位置を規律する情報であり、
前記影響度情報及び配置情報は、前記単位画素及び前記周辺画素の画素値に基づいて生成される
請求項1記載の画像拡大方法。
【請求項3】
前記影響度情報は、当該影響度情報に従った場合の対応領域の平均画素値と、前記単位画素の画素値と、の差である平均輝度差を小さくするように決定される
請求項2記載の画像拡大方法。
【請求項4】
前記影響度情報は、前記単位画素及び前記周辺画素の画素値における最大値及び最小値が、前記対応領域中における画素値として占める割合が大きくなるように決定される
請求項2又は3記載の画像拡大方法。
【請求項5】
前記影響度情報は、当該影響度情報に従った場合の対応領域の平均画素値と前記単位画素の画素値との差である平均輝度差を、前記単位画素及び前記周辺画素の平均画素値と前記単位画素及び前記周辺画素の画素値それぞれとの差の絶対値に、対応する前記単位画素及び前記周辺画素の影響度情報を乗じたものの総和を示す分散値で除した値である変換度に基づいて決定される
請求項2〜4のいずれか1項に記載の画像拡大方法。
【請求項6】
前記影響度情報は、前記変換度が最小となるように決定される
請求項5記載の画像拡大方法。
【請求項7】
前記配置情報は、前記周辺画素の画素値が、前記対応領域における画素の画素値として占める範囲の広がり方向を示す方向情報を含む
請求項2〜6のいずれか1項に記載の画像拡大方法。
【請求項8】
前記配置情報は、前記周辺画素の画素値それぞれが、前記対応領域中の画素の画素値として選択される際における前記周辺画素間の優先順位を示す情報を含む
請求項2〜7のいずれか1項に記載の画像拡大方法。
【請求項9】
前記拡大画像におけるエッジを抽出するエッジ抽出ステップを更に含み、
前記エッジ抽出ステップでは、画像におけるエッジが強調されるように画像拡大を行う第1画像拡大アルゴリズムによって前記原画像を拡大した場合の画素値と、前記第1画像拡大アルゴリズムよりも画像全体が滑らかになる第2画像拡大アルゴリズムによって前記対象を拡大した場合の画素値と、が一致する位置にある画素をエッジとして抽出し、
前記細分化ステップでは、前記対応領域中の画素のうち、前記エッジに相当する画素は、その画素値として、前記原画像における前記単位画素の画素値を選択する
請求項1〜8のいずれか1項に記載の画像拡大方法。
【請求項10】
前記第1画像拡大アルゴリズムは、Lanczos法又は線形補間法である
請求項9記載の画像拡大方法。
【請求項11】
前記第2画像拡大アルゴリズムは、Spline法又はMitchell法である
請求項9又は10記載の画像拡大方法。
【請求項12】
拡大対象である原画像を、所定の画像拡大アルゴリズムに従って所望の拡大率で拡大させて初期拡大画像を得る拡大ステップと、
前記初期拡大画像を補正して補正拡大画像を得る補正ステップと、
前記補正拡大画像中の各画素それぞれの画素値を置換した近似拡大画像を得る置換ステップと、
前記近似拡大画像を前記原画像のサイズに縮小したものと、前記原画像と、の差分を示す判定用差分画像を得る判定用差分画像抽出ステップと、
前記判定用差分画像に基づいて、前記近似拡大画像が前記原画像の拡大画像として適切であるか否かを判定する判定ステップと、
を更に含み、
前記補正ステップは、
前記初期拡大画像を前記原画像のサイズに縮小させた縮小画像を得るステップと、
前記原画像と前記縮小画像との差分を示す差分画像を得るステップと、
前記差分画像を前記画像拡大アルゴリズムに従って前記拡大率で拡大させて拡大差
分画像を得るステップと、
前記初期拡大画像に前記拡大差分画像を加算して補正拡大画像を得るステップと、
を含み、
前記置換ステップは、前記原画像における単位画素に対応する前記補正拡大画像の対応領域中の複数の置換対象画素それぞれの画素値を、近似値に置換することで近似拡大画像を得るものであり、
更に前記置換ステップでは、前記近似値として、前記原画像における前記単位画素及びその周辺にある複数の周辺画素の各画素値のうち、前記置換対象画素の画素値に最も近い値が選択され、
前記判定ステップにおいて、前記近似拡大画像が前記原画像の拡大画像として適切であると判定されると、前記近似拡大画像を拡大画像として出力し、前記近似拡大画像が前記原画像の拡大画像として適切でないと判定されると前記細分化ステップで得た拡大画像を出力する
請求項1〜11のいずれか1項に記載の画像拡大方法。
【請求項13】
前記補正ステップによって得られた前記補正拡大画像を前記初期拡大画像として、前記補正ステップを複数回繰り返す
請求項12記載の画像拡大方法。
【請求項14】
前記所定の画像拡大アルゴリズムは、Spline法又はMitchell法である
請求項12又は13に記載の画像拡大方法。
【請求項15】
コンピュータに、請求項1〜14のいずれか1項に記載の画像拡大方法におけるステップを実行させるためのコンピュータプログラム。
【請求項16】
原画像を高解像度化しつつ拡大した拡大画像を得る画像処理装置であって、
前記原画像における単位画素に対応する前記拡大画像における対応領域中の複数の画素の画素値として、前記原画像における前記単位画素又はその周辺にある複数の周辺画素のいずれかの画素値を選択することで、前記原画像における前記単位画素それぞれを細分化して拡大画像を得る細分化手段を備えていることを特徴とする画像処理装置。
【請求項1】
原画像を高解像度化して拡大画像を得る画像拡大方法であって、
前記原画像における単位画素に対応する前記拡大画像の対応領域中の複数の画素の各画素値として、前記原画像における前記単位画素又はその周辺にある複数の周辺画素のいずれかの画素値を選択することで、前記原画像における前記単位画素それぞれを細分化して拡大画像を得る細分化ステップ
を含むことを特徴とする画像拡大方法。
【請求項2】
前記細分化ステップは、前記原画像における前記単位画素又はその周辺にある複数の周辺画素のうちどの画素の画素値を、前記対応領域中のどの画素の画素値として選択するかを、影響度情報及び配置情報に基づいて、決定するものであり、
前記影響度情報は、前記単位画素及び前記周辺画素の画素値それぞれが、前記対応領域における画素の画素値として占める画素数を示す情報であり、
前記配置情報は、前記対応領域に配置される画素の位置を規律する情報であり、
前記影響度情報及び配置情報は、前記単位画素及び前記周辺画素の画素値に基づいて生成される
請求項1記載の画像拡大方法。
【請求項3】
前記影響度情報は、当該影響度情報に従った場合の対応領域の平均画素値と、前記単位画素の画素値と、の差である平均輝度差を小さくするように決定される
請求項2記載の画像拡大方法。
【請求項4】
前記影響度情報は、前記単位画素及び前記周辺画素の画素値における最大値及び最小値が、前記対応領域中における画素値として占める割合が大きくなるように決定される
請求項2又は3記載の画像拡大方法。
【請求項5】
前記影響度情報は、当該影響度情報に従った場合の対応領域の平均画素値と前記単位画素の画素値との差である平均輝度差を、前記単位画素及び前記周辺画素の平均画素値と前記単位画素及び前記周辺画素の画素値それぞれとの差の絶対値に、対応する前記単位画素及び前記周辺画素の影響度情報を乗じたものの総和を示す分散値で除した値である変換度に基づいて決定される
請求項2〜4のいずれか1項に記載の画像拡大方法。
【請求項6】
前記影響度情報は、前記変換度が最小となるように決定される
請求項5記載の画像拡大方法。
【請求項7】
前記配置情報は、前記周辺画素の画素値が、前記対応領域における画素の画素値として占める範囲の広がり方向を示す方向情報を含む
請求項2〜6のいずれか1項に記載の画像拡大方法。
【請求項8】
前記配置情報は、前記周辺画素の画素値それぞれが、前記対応領域中の画素の画素値として選択される際における前記周辺画素間の優先順位を示す情報を含む
請求項2〜7のいずれか1項に記載の画像拡大方法。
【請求項9】
前記拡大画像におけるエッジを抽出するエッジ抽出ステップを更に含み、
前記エッジ抽出ステップでは、画像におけるエッジが強調されるように画像拡大を行う第1画像拡大アルゴリズムによって前記原画像を拡大した場合の画素値と、前記第1画像拡大アルゴリズムよりも画像全体が滑らかになる第2画像拡大アルゴリズムによって前記対象を拡大した場合の画素値と、が一致する位置にある画素をエッジとして抽出し、
前記細分化ステップでは、前記対応領域中の画素のうち、前記エッジに相当する画素は、その画素値として、前記原画像における前記単位画素の画素値を選択する
請求項1〜8のいずれか1項に記載の画像拡大方法。
【請求項10】
前記第1画像拡大アルゴリズムは、Lanczos法又は線形補間法である
請求項9記載の画像拡大方法。
【請求項11】
前記第2画像拡大アルゴリズムは、Spline法又はMitchell法である
請求項9又は10記載の画像拡大方法。
【請求項12】
拡大対象である原画像を、所定の画像拡大アルゴリズムに従って所望の拡大率で拡大させて初期拡大画像を得る拡大ステップと、
前記初期拡大画像を補正して補正拡大画像を得る補正ステップと、
前記補正拡大画像中の各画素それぞれの画素値を置換した近似拡大画像を得る置換ステップと、
前記近似拡大画像を前記原画像のサイズに縮小したものと、前記原画像と、の差分を示す判定用差分画像を得る判定用差分画像抽出ステップと、
前記判定用差分画像に基づいて、前記近似拡大画像が前記原画像の拡大画像として適切であるか否かを判定する判定ステップと、
を更に含み、
前記補正ステップは、
前記初期拡大画像を前記原画像のサイズに縮小させた縮小画像を得るステップと、
前記原画像と前記縮小画像との差分を示す差分画像を得るステップと、
前記差分画像を前記画像拡大アルゴリズムに従って前記拡大率で拡大させて拡大差
分画像を得るステップと、
前記初期拡大画像に前記拡大差分画像を加算して補正拡大画像を得るステップと、
を含み、
前記置換ステップは、前記原画像における単位画素に対応する前記補正拡大画像の対応領域中の複数の置換対象画素それぞれの画素値を、近似値に置換することで近似拡大画像を得るものであり、
更に前記置換ステップでは、前記近似値として、前記原画像における前記単位画素及びその周辺にある複数の周辺画素の各画素値のうち、前記置換対象画素の画素値に最も近い値が選択され、
前記判定ステップにおいて、前記近似拡大画像が前記原画像の拡大画像として適切であると判定されると、前記近似拡大画像を拡大画像として出力し、前記近似拡大画像が前記原画像の拡大画像として適切でないと判定されると前記細分化ステップで得た拡大画像を出力する
請求項1〜11のいずれか1項に記載の画像拡大方法。
【請求項13】
前記補正ステップによって得られた前記補正拡大画像を前記初期拡大画像として、前記補正ステップを複数回繰り返す
請求項12記載の画像拡大方法。
【請求項14】
前記所定の画像拡大アルゴリズムは、Spline法又はMitchell法である
請求項12又は13に記載の画像拡大方法。
【請求項15】
コンピュータに、請求項1〜14のいずれか1項に記載の画像拡大方法におけるステップを実行させるためのコンピュータプログラム。
【請求項16】
原画像を高解像度化しつつ拡大した拡大画像を得る画像処理装置であって、
前記原画像における単位画素に対応する前記拡大画像における対応領域中の複数の画素の画素値として、前記原画像における前記単位画素又はその周辺にある複数の周辺画素のいずれかの画素値を選択することで、前記原画像における前記単位画素それぞれを細分化して拡大画像を得る細分化手段を備えていることを特徴とする画像処理装置。
【図1】
【図3】
【図4】
【図6】
【図7】
【図10】
【図11】
【図12】
【図2】
【図5】
【図8】
【図9】
【図13】
【図14】
【図15】
【図3】
【図4】
【図6】
【図7】
【図10】
【図11】
【図12】
【図2】
【図5】
【図8】
【図9】
【図13】
【図14】
【図15】
【公開番号】特開2011−22747(P2011−22747A)
【公開日】平成23年2月3日(2011.2.3)
【国際特許分類】
【出願番号】特願2009−166501(P2009−166501)
【出願日】平成21年7月15日(2009.7.15)
【出願人】(593006630)学校法人立命館 (359)
【Fターム(参考)】
【公開日】平成23年2月3日(2011.2.3)
【国際特許分類】
【出願日】平成21年7月15日(2009.7.15)
【出願人】(593006630)学校法人立命館 (359)
【Fターム(参考)】
[ Back to top ]