(58)【調査した分野】(Int.Cl.,DB名)
前記フィルタリング部は、前記劣化画像の勾配画像の二値化画像を作成し、前記二値化画像に現れる線の線幅に沿って両側にある画素の画素値差に応じて、前記画素値差に依存するガウス関数の前記標準偏差を設定する、
請求項1に記載の画像処理装置。
【発明を実施するための形態】
【0019】
以下、図面を参照しつつ、本発明の幾つかの実施形態に係る画像処理装置、プログラム及び方法について説明する。
【0020】
<1.画像処理装置の構成>
図1に示す画像処理装置1は、本発明の第1実施形態に係る画像処理装置である。画像処理装置1は、ハードウェアとしては、汎用のパーソナルコンピュータである。画像処理装置1には、CD−ROMやUSBメモリ等のコンピュータが読み取り可能な記録媒体60から、或いはLANやインターネット等のネットワーク経由で画像処理プログラム2が提供され、インストールされている。画像処理プログラム2は、動画及び静止画に対する画像処理を支援するためのアプリケーションソフトウェアである。画像処理プログラム2は、画像処理装置1に後述する動作に含まれるステップを実行させる。
【0021】
画像処理装置1は、ディスプレイ10、入力部20、記憶部30及び制御部40を有する。これらの部10〜40は、互いにバス線やケーブル等の通信線5を介して接続されており、適宜、通信可能である。ディスプレイ10は、液晶ディスプレイ等から構成され、後述する画面等をユーザに対し表示する。入力部20は、マウスやキーボート、タッチパネル等から構成され、画像処理装置1に対するユーザからの操作を受け付ける。記憶部30は、ハードディスクやフラッシュメモリ等から構成される不揮発性の記憶領域である。制御部40は、CPU、ROM及びRAM等から構成される。
【0022】
画像処理プログラム2は、記憶部30内に格納されている。記憶部30内には、ソフトウェア管理領域50が確保されている。ソフトウェア管理領域50は、画像処理プログラム2が使用する領域である。ソフトウェア管理領域50内には、オリジナル画像領域51及び加工ファイル領域52が確保されている。各領域51,52の役割については、後述する。
【0023】
制御部40は、記憶部30内に格納されている画像処理プログラム2を読み出して実行することにより、仮想的に表示制御部41及び画像処理部42として動作する。表示制御部41は、ディスプレイ10上に表示される画面、ウィンドウ、ボタンその他の全ての要素の表示を制御する。画像処理部42は、様々な種類の画像処理を実行する。各部41,42の動作の詳細は、後述する。
【0024】
<2.画像処理装置の動作>
制御部40は、ユーザが入力部20を介して所定の操作を行ったことを検出すると、画像処理プログラム2を起動する。画像処理プログラム2が起動されると、基本画面W1(
図2参照)がディスプレイ10上に表示される。
【0025】
<2−1.画像データの取込み>
基本画面W1は、オリジナル画像領域51への画像データの取込みの命令をユーザから受け付ける。オリジナル画像領域51へ取り込まれた画像データは、後述する再生処理及び画像処理の対象になる。制御部40は、静止画ファイル又は動画ファイルから、オリジナル画像領域51へ画像データを取り込む。なお、本明細書において、静止画ファイルとは、静止画形式のデータファイルであり、動画ファイルとは、動画形式のデータファイルである。
【0026】
静止画ファイルから画像データを取り込む場合、ユーザは、入力部20を操作することにより、1の静止画ファイルを指定するか、又は1のフォルダを指定する。前者の場合、制御部40は、その静止画ファイルの記憶部30内のアドレスパス及びファイル名をユーザに入力させる。後者の場合、制御部40は、そのフォルダの記憶部30内のアドレスパス及びフォルダ名をユーザに入力させる。その後、制御部40は、指定された静止画ファイル又は指定されたフォルダ内の全ての静止画ファイルを、オリジナル画像領域51に静止画ファイル群として保存する。なお、本明細書において、「群」という場合には、その要素数は複数とは限らず、1つであってもよい。
【0027】
一方、動画ファイルから画像データを取り込む場合、ユーザは、入力部20を操作することにより、1の動画ファイルの記憶部30内のアドレスパス及びファイル名を入力する。表示制御部41は、ユーザが動画ファイルを指定したことを検出すると、基本画面W1上に動画取込みウィンドウ(図示されない)を重ねて表示させる。動画取込みウィンドウは、指定された動画ファイルのタイムラインの全区間うち、任意の区間の選択をユーザから受け付ける。制御部40は、ユーザが入力部20を介して特定の区間を選択したことを検出すると、選択された区間に含まれるフレーム群に1対1で対応する静止画ファイル群を生成する。その後、制御部40は、この静止画ファイル群をオリジナル画像領域51に保存する。従って、本実施形態では、後述する再生処理及び画像処理の対象となる画像データは、動画ファイルではなく、静止画ファイルである。
【0028】
なお、制御部40は、オリジナル画像領域51へ取り込まれた静止画ファイル群が動画ファイルに由来するものではなく、静止画ファイルに由来するものであっても、静止画ファイル群に含まれるファイルをタイムラインに沿って配列されているものと認識する。配列は、ファイルの属性(ファイル名、作成日時、更新日時等)から自動的に判断される。
【0029】
<2−2.再生処理>
オリジナル画像領域51へ静止画ファイル群が取り込まれると、表示制御部41は、基本画面W1上に表示ウィンドウW2(
図3参照)を重ねて表示させる。表示ウィンドウW2は、オリジナル画像領域51へ取り込まれた静止画ファイル群のタイムラインの数だけ作成される。
【0030】
表示ウィンドウW2内には、まず、オリジナル画像領域51へ取り込まれた静止画ファイル群に含まれる1の静止画ファイル(例えば、タイムライン上で先頭のフレームに対応する静止画ファイル)が表示される。その後、後述するとおり、表示ウィンドウW2内に表示されるフレームは、ユーザの操作を受けて切り替わる。
【0031】
図3に示すとおり、基本画面W1上には、ウィンドウ選択プルダウンメニューT1、再生ボタンT2、コマ送りボタンT3、コマ戻しボタンT4及びタイムラインバーT5が配置されている。
【0032】
表示ウィンドウW2が複数存在する場合であっても、アクティブな表示ウィンドウW2は1つである。ウィンドウ選択プルダウンメニューT1は、どの表示ウィンドウW2をアクティブとするかの選択をユーザから受け付ける。以下、アクティブな表示ウィンドウW2に対応するタイムラインを、アクティブタイムラインと呼び、アクティブタイムラインに属するフレーム群を、アクティブフレーム群と呼ぶ。また、アクティブな表示ウィンドウW2内に現在表示されているフレームを、アクティブフレームと呼ぶ。
【0033】
表示制御部41は、アクティブな表示ウィンドウW2内で、アクティブフレーム群を動画として再生可能である。再生ボタンT2は、アクティブフレーム群の動画としての再生の命令をユーザから受け付ける。表示制御部41は、ユーザが入力部20を介して再生ボタンT2を押下したことを検出すると、アクティブな表示ウィンドウW2内に、アクティブフレーム群に含まれるフレームを、タイムラインに沿って順次コマ送りの形式で表示させる。なお、再生は、再生ボタンT2が押下された時点のアクティブフレームから開始する。また、再生ボタンT2は、再生の停止の命令をユーザから受け付ける。表示制御部41は、再生中にユーザが入力部20を介して再生ボタンT2を押下したことを検出すると、アクティブな表示ウィンドウW2内の表示を、その時点のアクティブフレームに固定する。
【0034】
コマ送りボタンT3、コマ戻しボタンT4はそれぞれ、アクティブフレームを、アクティブタイムラインに沿って1つ後、1つ前のフレームへ切り替える命令をユーザから受け付ける。
【0035】
タイムラインバーT5は、アクティブタイムラインを図式的に示すオブジェクトである。タイムラインバーT5は、そのバーが延びる方向に、アクティブフレーム群に含まれるフレーム数で等分に分割されている。タイムラインバーT5上の左からn番目の分割領域は、アクティブタイムライン上でn番目のフレームに対応する(nは、自然数)。
【0036】
図3に示すように、表示制御部41は、タイムラインバーT5上において、選択フレーム群に対応する分割領域A1と、非選択フレーム群に対応する分割領域A2とを、異なる表示形式で表示する。選択フレーム群とは、アクティブタイムライン上で現在選択されている区間に属するフレーム群である。非選択フレーム群とは、アクティブタイムライン上で現在選択されていない区間に属するフレーム群である。
【0037】
タイムラインバーT5は、アクティブタイムライン上の任意の区間の選択をユーザから受け付ける。このとき選択される区間は、連続区間であってもよいし、
図3に示すように、不連続区間であってもよい。具体的には、ユーザは、入力部20を介してタイムラインバーT5上の分割領域を操作することにより、アクティブフレーム群の中から、任意のフレームを任意の数だけ選択することができる。分割領域は、同時に複数選択が可能である。表示制御部41は、ユーザによりタイムラインバーT5上の分割領域が選択される度に、アクティブフレームを最新に選択された分割領域に対応するフレームに直ちに切り替える。画像処理部42は、選択フレーム群を後述される画像処理の対象として認識する。
【0038】
<2−3.画像処理>
画像処理部42は、選択フレーム群に対し、明るさ/コントラスト/彩度調整、拡大/縮小、ノイズ除去、シャープネス、歪曲補正、エッジ保存型ノイズ除などの複数の画像処理モジュールを実行可能である。画像処理モジュールは、画像処理プログラム2に組み込まれている。
【0039】
ユーザは、入力部20を介して基本画面W1を操作することにより、画像処理モジュールの中から任意のものを、任意の順番に、任意の回数だけ選択することが可能である。画像処理部42は、ユーザが画像処理モジュールを選択したことを検出する度に、その時点の選択フレーム群に対しその画像処理モジュールを実行する。なお、選択フレーム群に対し画像処理モジュールを実行するとは、選択フレーム群に含まれる各フレームに対しその画像処理モジュールを実行することである。
【0040】
フレームに対し画像処理モジュールが1回、2回、3回,・・・と、順次実行されてゆくにつれて、そのフレームは、第1次、第2次、第3次,・・・と、順次加工されてゆく。第0次フレームは、オリジナル画像領域51に保存されている静止画ファイルに対応する。第(m+1)次フレームは、第m次フレームの静止画ファイルに対し画像処理モジュールを1回実行した後の静止画ファイルに対応する(mは、0以上の整数)。画像処理部42は、第1次以降のフレームに対応する静止画ファイルを順次生成し、これらの静止画ファイルを加工ファイル領域52内にそれぞれ別個に保存する。
【0041】
図4は、1のタイムラインに属する画像群が画像処理プログラム2によりどのように管理されるかを示す概念図である。
図4において、横軸のN軸は、タイムライン上のフレームの順番を示しており、縦軸のM軸は、加工の順番を示している。
図4のN−M空間内の座標(n,m)に対応する四角形は、画像I(n,m)を表している。画像I(n,m)は、タイムライン上でn番目のフレームの第m次の画像である(nは、自然数であり、mは、0以上の整数である)。
【0042】
制御部40は、各フレームについて、現在選択されている座標mの値をパラメータm
sとして管理する。オリジナル画像領域51へ静止画ファイル群が取り込まれた直後、座標m
sは、初期値0である。その後、画像処理モジュールが1回実行される度に、そのフレームの座標m
sは1ずつインクリメントされる。また、ユーザは、入力部20を介して所定の操作を行うことにより、任意のフレームの座標m
sを自在に変更することができる。なお、フレームに対し画像処理モジュールを実行するとは、そのフレームの第m
s次の画像に対し画像処理モジュールを実行することである。従って、座標m
sを変更することには、画像処理モジュールの実行の対象を変更するという意味がある。また、フレームを表示するとは、そのフレームの座標m
sの画像を表示することである。従って、座標m
sを変更することには、アクティブな表示ウィンドウW2内に表示される対象を変更するという意味もある。
【0043】
<3.エッジ保存型ノイズ除去>
画像処理プログラム2に実装されている画像処理の1つである、エッジ保存型ノイズ除去処理とは、名前の通り、画像のエッジを強調しつつノイズを除去する処理である。エッジ保存型ノイズ除去処理には、一般的なバイラテラルフィルタによるフィルタリング処理(以下、一般バイラテラル処理という)と、特殊なバイラテラルフィルタによるフィルタリング処理(以下、特殊バイラテラル処理という)とが含まれる。特殊バイラテラル処理とは、一般バイラテラル処理を応用した超解像技術に係る処理である。
【0044】
上記2種類のフィルタリング処理は、バイラテラルフィルタを用いて対象画像Fをフィルタリングし、補正画像Gを得る処理である。今、対象画像Fの左上からx方向(横方向)にi番目でy方向(縦方向)にj番目の位置(すなわち、(i,j)の位置)の画素の画素値を、f(i,j)と表す(i=1,2,・・・,I,j=1,2,・・・,J,Iは、対象画像Fの横画素数、Jは、対象画像Fの縦画素数)。このとき、補正画像Gの(i,j)の位置の画素の画素値g(i,j)は、下式のとおり表される。
【数1】
【数2】
【0045】
上式中、kは、バイラテラルフィルタのカーネルのサイズを決定する定数である。また、wgt(i,j,m,n)は、バイラテラルフィルタが適用される局所領域内の各画素に割り当てられる重みを表している。この重みwgt(i,j,m,n)は、数2のとおり、複数種類のガウス関数の積として表される。右辺の1つ目のexp関数は、バイラテラルフィルタが適用される局所領域の中心の画素(注目画素)からの距離に依存するガウス関数である。また、右辺の2つ目のexp関数は、注目画素に対する画素値差に依存するガウス関数である。これら2つのガウス関数は、いずれもガウス分布の標準偏差σ
R,σ
Pをパラメータとしており、距離に依存するガウス関数の標準偏差σ
Rを調整することにより、補正画像Gのボケ具合(ノイズの改善度合い)が決定される。また、画素値差に依存するガウス関数の標準偏差σ
Pを調整することにより、補正画像Gをボケた状態からエッジが強調された状態まで変化させることができる。
【0046】
一般バイラテラル処理では、上述した標準偏差σ
R,σ
P、ひいてはカーネルの重みが、対象画像F全体に対して一律に設定される。他方、本実施形態に係る特殊バイラテラル処理では、カーネルの重みが、対象画像F全体に対して一律に設定されるのではなく、対象画像F内においてフィルタが適用される位置に応じて異なるように設定される。その結果、局所領域毎の特徴を反映しながら、対象画像Fにおけるエッジを強調しつつ、対象画像Fのエッジ周辺のアーティファクトを除去することができる。なお、本実施形態では、標準偏差σ
Pが注目画素毎に設定されるため、注目画素が対象画像F内において(i,j)の位置にあるときの標準偏差σ
Pを、σ
P(i,j)と表すことがある。
【0047】
以下、
図5を参照しつつ、特殊バイラテラル処理の流れについて詳細に説明する。特殊バイラテラル処理は、選択フレーム群に含まれる各フレームを対象として実行される。なお、
図5では、簡単のため、1枚のフレーム(対象画像F)に対する処理を説明するが、実際には、選択フレーム群に含まれる各フレームに対し、同様の処理が繰り返し実行されるものとする。
【0048】
まず、ステップS1において、画像処理部42は、対象画像Fの勾配画像G
1を作成する。勾配画像G
1とは、対象画像Fに含まれる各画素値のx方向(横方向)及びy方向(縦方向)の勾配(隣接画素間の画素値の増分)を表す画像である。勾配画像G
1の(i,j)の位置の画素の画素値g
1(i,j)は、以下の式に従って算出される(i=1,2,・・・,I,j=1,2・・・,J)。
【数3】
ただし、
【数4】
である。ただし、f(0,j)及びf(i,0)の値としては、この例に限られないが、0等の適当な値を設定することができる。
【0049】
続くステップS2では、画像処理部42は、勾配画像G
1の二値化画像G
2を作成する。二値化のための閾値は、本実施形態では8であるが、他の数値を設定することも可能である。また、本実施形態では、g
1(i,j)が閾値以上の場合に、g
2(i,j)=H=1に設定され、g
1(i,j)が閾値より小さい場合に、g
2(i,j)=L=0に設定される。なお、g
2(i,j)は、二値化画像G
2の(i,j)の位置の画素の画素値である。
【0050】
図6(a)〜(c)は、それぞれブレ量の異なる3枚のパターン画像を示す。より具体的には、
図6(b)は、
図6(a)の画像を拡大した画像であり、
図6(c)は、
図6(b)の画像をさらに拡大した画像である。また、
図6(d)〜
図6(f)は、それぞれ
図6(a)〜(c)の画像をステップS1,S2の方法で作成した二値化画像G
2である。
図6からも分かるとおり、二値化画像G
2においては、対象画像Fに含まれるエッジが幅のある線として現れる。また、線の幅は、ボケが強い程太くなる。そのため、二値化画像G
2に現れる線の線幅は、対象画像Fのボケ量ωを表す指標となる。
【0051】
続いて、
図5に示すとおり、画像処理部42は、二値化画像G
2を左上の画素から右下の画素までラスタスキャンし、g
2(i,j)=H=1の場合に、ステップS3〜S8を実行する。一方、g
2(i,j)=L=0の場合は、ステップS3〜S8が省略される。
【0052】
ステップS3では、画像処理部42は、二値化画像G
2の(i,j)の位置の画素(注目画素)の勾配方向φ(i,j)を、以下の式に従って算出する。
【数5】
【0053】
続くステップS4では、画像処理部42は、二値化画像G
2内において(i,j)の位置の注目画素から勾配方向φ(i,j)に進みながら、g
2(i,j)=L=0となる画素P1を探索する。また、続くステップS5では、画像処理部42は、二値化画像G
2内において(i,j)の位置の注目画素から勾配方向φ(i,j)の逆方向に進みながら、g
2(i,j)=L=0となる画素P2を探索する。さらに、ステップS6では、画素P1,P2間の距離を決定する。この距離は、画素数に基づいて表される。
【0054】
画素P1,P2は、画素値Hの注目画素から勾配方向φ(i,j)又はその逆方向に進みながら、画素値がLに切り替わる画素である。従って、画素P1,P2間の距離とは、二値化画像G
2に現れる線の線幅、すなわち、対象画像Fのボケ量ωを表すことができる。
【0055】
続くステップS7では、画像処理部42は、画素P1,P2間の画素値差PVDを算出する。PVDは、画素P1の画素値と画素P2の画素値との差分の絶対値として算出される。PVDは、二値化画像G
2に現れる線の線幅に沿って両側にある画素間の画素値差である。ところで、対象画像Fにおいてエッジの両側の画素間の画素値差が大きければ大きい程、エッジは明瞭になると言える。従って、PVDは、エッジの明瞭さを表す指標となる。
【0056】
続くステップS8では、画像処理部42は、画素値差PVDに応じて、標準偏差σ
P(i,j)を設定する。具体的には、予め定められている以下の式にステップS7のPVDを代入することにより、σ
P(i,j)を算出する。本実施形態では、注目画素毎にσ
P(i,j)が異なる値に設定される。
【数6】
【0057】
一般バイラテラルフィルタによる平滑化では、対象画像F全体に同じ標準偏差σ
Pを用いるため、エッジ部分における画素値差PVDが小さい場合には、エッジが保存されずに平滑化される。逆に、エッジ部分におけるPVDが大きいと、エッジの強調効果が生じない。従って、エッジ部分におけるPVDに応じて重みを変化させると、それぞれのエッジを急峻にすることが可能である。
【0058】
数6の式は、本発明者らが行った実験により得られた式である。本実験について、
図7及び表1を参照しつつ、詳しく説明する。
【表1】
【0059】
まず、本発明者は、その両側において様々な画素値差PVDを有するエッジを含む画像を用意し、それぞれを様々な拡大倍率(2〜6倍)で拡大した拡大画像を作成した。そして、標準偏差σ
Pを様々に変化させながら、これらの拡大画像にバイラテラルフィルタを順次適用した。なお、重みを設定するためのもう1つの標準偏差σ
Rは、後述するステップS10と同様に設定された。そして、バイラテラルフィルタが適用された補正画像の中から、最も良好なエッジ強調の効果が得られる画像を目視にて選択し、選択された画像に対応するσ
Pを、良好なエッジ強調の効果が得られるσ
Pとして決定した。表1は、このようなσ
PとPVDとの関係をまとめたものである。
【0060】
表1中の拡大倍率は、拡大画像のボケ量ωを表している。よって、表1からは、良好なエッジ強調の効果が得られる標準偏差σ
Pは、画像のボケ具合に依存しないことが分かった。一方で、良好なエッジ強調の効果が得られるσ
Pは、画素値差PVDに応じて変化することが分かった。
【0061】
図7は、表1の結果に基づいて、良好なエッジ強調の効果が得られる標準偏差σ
Pと、画素値差PVDとの関係をまとめたグラフである。数6は、σ
PとPVDとの関係を表す回帰直線である。従って、数6の式によれば、ステップS7で得られたPVDに基づいて、良好なエッジ強調の効果が得られるσ
Pを算出することができる。
【0062】
続いて、二値化画像G
2に含まれる各画素に対するステップS3〜S8が終了すると、ステップS9に進む。ステップS9では、画像処理部42は、ステップS6で得られた画素P1,P2間の距離、すなわち、二値化画像G
2に現れる線の線幅に応じて、対象画像F全体としてのボケ量ωを算出する。より具体的には、ボケ量ωは、二値化画像G
2に含まれるg
2(i,j)=H=1となる全ての画素に対して得られた画素P1,P2間の距離の平均値として算出される。
【0063】
続くステップS10では、画像処理部42は、ボケ量ωに応じて、標準偏差σ
Rを設定する。具体的には、予め定められている以下の式にステップS9のωを代入することにより、σ
Rを算出する。
【数7】
【0064】
対象画像Fに含まれるエッジを急峻にする効果を得るためには、ボケ量ωが大きい程、標準偏差σ
Rも大きくすることが必要となり得る。数7の式は、本発明者らが行った実験により得られた式である。本実験について、
図8及び表2を参照しつつ、詳しく説明する。
【表2】
【0065】
まず、本発明者は、
図6(a)のパターン画像を様々な拡大倍率で拡大した劣化画像(例えば、
図6(b)及び(c)の画像)を作成し、これらの画像全体としてのボケ量ωを算出した。次に、標準偏差σ
Rを様々に変化させながら、劣化画像にバイラテラルフィルタを順次適用し、こうして得られた補正画像においてエッジが最も急峻となったときのσ
Rを、良好なエッジ強調の効果が得られるσ
Rとして決定した。なお、バイラテラルフィルタの重みを設定するためのもう1つの標準偏差σ
Pは、前述のステップS8と同様に設定された。表2は、このようなσ
Rとωとの関係をまとめたものである。ところで、数6及び数7の回帰式を導出する過程において、最初の段階では、ωとσ
Rとの関係、PVDとσ
Pとの関係、及びσ
R,σ
Pの相互関係が分からない。よって、後述する
図9のような様々なPVDを有するパターン画像を複数の強度でぼかしたサンプル画像を多数作成し、σ
R及びσ
Pを様々に変化させながら、サンプル画像の変化と各標準偏差σ
R,σ
Pとの関係を調査した。
【0066】
また、
図8は、表2の結果に基づいて、良好なエッジ強調の効果が得られる標準偏差σ
Rと、ボケ量ωとの関係をまとめたグラフである。数7は、σ
Rとωとの関係を表す回帰直線である。従って、数7の式によれば、ステップS9で得られたωに基づいて、良好なエッジ強調の効果が得られるσ
Rを算出することができる。
【0067】
ステップS10が終了すると、
図5に示すとおり、画像処理部42は、対象画像Fを左上の画素から右下の画素までラスタスキャンし、対象画像Fに含まれる各画素(注目画素)に対し、ステップS11,S12を実行する。
【0068】
ステップS11では、画像処理部42は、既出の標準偏差σ
R,σ
P(i,j)に基づいて、対象画像F内において注目画素が(i,j)の位置にあるときのバイラテラルフィルタのカーネルの重みの配列を設定する。より具体的には、上述した数2の式に従って、m=−k,−(k−1),・・・,0,・・・,(k−1),k及びn=−k,−(k−1),・・・,0,・・・,(k−1),kに対し、バイラテラルフィルタのカーネル内の(m,n)の位置での重みwgt(i,j,m,n)を算出する。ただし、上述したことから明らかなとおり、g
2(i,j)=L=0の場合、標準偏差σ
Pは算出されない。従って、
図5に示すとおり、この場合には、σ
P=1に設定される。なお、対象画像Fの端部では、ミラー(折り返し)により対象画像Fのサイズを広げることにより、wgt(i,j,m,n)が算出される。
【0069】
続くステップS12では、画像処理部42は、数1の式に従って、(i,j)の位置にある注目画素の近傍領域に、ステップS11で算出された重みwgt(i,j,m,n)に基づくバイラテラルフィルタを適用し、補正画像Gに含まれる(i,j)の位置の画素の画素値g(i,j)を算出する。
図5に示すとおり、このステップS12は、注目画素毎に所定の回数Qだけ、繰り返し実行される。Qの数は、特に限定されないが、好ましくは2回以上である。そして、対象画像Fに含まれる各画素に対するステップS11,S12が終了すると、補正画像Gが作成される。その後、特殊バイラテラル処理が終了する。
【0070】
ところで、
図9(a)〜(c)の画像は、エッジの両側での画素値差PVDがそれぞれ72,52,28となるように
図6(a)のパターン画像の画素値を調整した後、これらのパターン画像を5倍拡大してボケさせた画像である。一方、
図9(d)〜(f)は、それぞれ
図9(a)〜(c)の画像に対し、Q=7として特殊バイラテラル処理を実行した結果を表している。この実験では、PVDに関わらず、Q=7のときに、エッジを急峻にする効果が十分に発揮されるという結果を得た。よって、Q=7であることが好ましい。
【0071】
<4.用途>
画像処理プログラム2は、多種多様な静止画及び動画に対する画像処理を取り扱うことができるが、例えば、警察等の機関が事件の捜査のために防犯カメラの監視映像を解析するのにも利用され得る。防犯カメラにおいては、注目する人や物等の対象が小さく映り込んでいることが多い。そのため、対象を詳細に観察するために画像を拡大し、さらにこれらを鮮鋭化すると、画像にはシュートやハロー、ジャギー等の各種アーティファクト(ノイズ)が表れ、しばしば画質が劣化する。この点、上述した特殊バイラテラル処理は、このような劣化画像のエッジを強調しつつ、アーティファクトを除去するのに特に好ましく使用することができる。
【0072】
<5.変形例>
以上、一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、その趣旨を逸脱しない限りにおいて、種々の変更が可能である。例えば、以下の変更が可能である。また、以下の変形例の要旨は、適宜組み合わせることができる。
【0073】
<5−1>
上記実施形態では、バイラテラルフィルタの重みを決定する標準偏差を注目画素毎に異なるものとしたが、同様のアルゴリズムは、例えばトリラテラルフィルタにも適用することができる。
【0074】
<5−2>
上記実施形態では、画素値差に依存するガウス関数の標準偏差σ
Pのみが注目画素毎に可変とされたが、距離に依存するガウス関数の標準偏差σ
Rについても同様に可変とすることができる。また、標準偏差σ
Rを注目画素毎に可変としつつ、標準偏差σ
Pを画像全体に対し一定とすることもできる。
【実施例】
【0075】
以下に、本発明の実施例について説明するが、本発明はこれに限定されない。
【0076】
図10に示されるサンプル画像を含む87枚のサンプル画像を用意し、これらの画像をそれぞれ標準偏差σ=1.2,1.5,1.8,2.1,2.4のガウスフィルターでぼかし、バイキュービック法により1/2,1/3,1/4,1/5,1/6倍に縮小した。さらに、これらの画像をバイキュービック法により元のサイズに拡大した。こうして得られた各劣化画像に対し、上記実施形態に係る特殊バイラテラル処理(実施例)、及び以下の4つの文献に示される補正処理(比較例1〜4)を実行し、補正画像を得た。
【0077】
比較例1: 国際公開第2006/041127号, "劣化情報復元方法と復元装置"
比較例2: 北耕次ら、"図形パッチ学習型超解像", 電気学会論文誌C(電子・情報・システム部門誌), Vol.136, No.7, pp.929-237, 2016.
比較例3:合志清ら、"非線形超解像技術の提案と画質評価”, 電子情報通信学会技術研究報告. PRMU2012−62, pp.59-64, 2012.
比較例4:Lingfeng Wangら,"Edge-Directed Single-Image Super-Resolution via Adaptive Gradient Magnitude Self-Interpolation", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, VOL.23, NO.8, pp.1289-1299, 2013.
【0078】
図11〜
図13に、劣化画像並びに実施例及び比較例1〜4に係る補正画像の例を示す。なお、
図11〜
図13は、それぞれ拡大倍率が3倍、4倍、5倍の結果である。比較例1では、低倍率拡大における結果は良好であるが、高倍率になるにつれて、拡大する前の画素パターンが顕著に認められる。比較例3及び比較例4では、エッジの改善効果は大きいが、比較例3については
図11及び
図13、比較例4については
図12及び
図13に見られる様に、エッジの縁取り現象が比較的発生しやすい傾向がある。これらの手法の土台になっているアンシャープマスクまたはラプラシアンフィルターの特徴であると言える。また、比較例2では、曲線のみを学習するため、補正画像のエッジは非常に滑らかある。しかし、劣化が増すにつれて復元のための緻密な情報が学習データ中に多く必要となるため、曲線のみでは情報量が十分でなく、
図13のように復元効果が極端に悪くなることがある。これに対し、実施例に係る手法によれば、エッジ周辺のアーティファクトが減少しており、さらにエッジが急峻に保たれることが確認された。
【0079】
図14は、様々な拡縮の倍率で作成された劣化画像に対する、実施例に係る補正画像を示す。
図15は、同画像に基づいて様々な拡縮の倍率で作成された劣化画像に対する、比較例1〜4及び実施例に係る補正画像を示す。これらを見ると、実施例では、バイラテラルフィルタの持つ平滑化効果が確認された。にもかかわらず、比較例1〜4よりもエッジ周辺のアーティファクトが少なく、より明瞭なエッジが倍率に関わらず安定して得られた。
【0080】
また、87枚のサンプル画像に基づく劣化画像、並びに比較例1〜4及び実施例に係る補正画像に対し、上記実施形態のステップ9で定義されたボケ量ωを算出し、その拡大倍率毎の平均値を表3にまとめた。ωは、エッジが急峻なほど小さくなり、エッジが緩やかであるほど大きくなる。さらに、エッジが急峻でもその周辺にアーティファクトがあると、ωは大きくなる。表3によると、実施例に係るωは、比較例1〜4のいずれよりも顕著に小さい。よって、実施例に係る手法によれば、エッジ周辺のアーティファクトを排除しつつ、エッジを急峻に保つことができることが確認された。
【表3】