次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一または類似の部分には同一または類似の符号を付している。
(実施の形態)
本発明の実施の形態に係る画像処理装置1は、焦点の異なる第1の画像データ11および第2の画像データ12とから、鮮明画像データ15を生成する。画像処理装置1は、図1に示すように、本発明の実施の形態に係る画像処理プログラムを、一般的なコンピュータにインストールし実行することによって実現される。画像処理プログラムは、コンピュータに各機能を実現させる。画像処理装置1は、記憶装置10および中央処理制御装置20を備える。
記憶装置10は、画像処理プログラムを記憶するとともに、第1の画像データ11、第2の画像データ12、画素毎マスクサイズデータ13、ぼけ画像データ14および鮮明画像データ15を記憶する。中央処理制御装置20で実現される各処理手段が、第1の画像データ11、第2の画像データ12、画素毎マスクサイズデータ13、ぼけ画像データ14および鮮明画像データ15を、記憶装置10に記憶する。
画像取得手段21は、第1の画像データ11および第2の画像データ12を取得し、記憶装置10に記憶する。画像取得手段21は、例えば、デジタルカメラに内蔵されるメモリカードに記憶された第1の画像データ11および第2の画像データ12を、メモリカードリーダ(図示せず)を介して読み出し、記憶装置10に記憶する。また、画像取得手段21は、通信制御装置(図示せず)を介して、第1の画像データ11および第2の画像データ12を受信し、記憶装置10に記憶する。そのほか、画像取得手段21は、どのような方式で画像データを取得しても良い。
第1の画像データ11および第2の画像データ12は、同一の対象物を同じ位置から異なる焦点で撮影した画像データである。第1の画像データ11および第2の画像データ12は、図8を参照して説明するように、2つの画像撮影部を備え、一度の操作で異なる焦点の画像データを撮影可能な画像撮影装置で撮影されたデータであっても良い。第1の画像データ11および第2の画像データ12は、図9を参照して説明するように、一つの画像撮影部を備え、プログラムの制御により、一度の操作で異なる焦点の画像の画像データを連続的に撮影可能な画像撮影装置で撮影されたデータであっても良い。
第1の画像データ11および第2の画像データ12は、同じ構成で画素を設け、各画素の画素値として、RGB毎の画素値を含む。第1の画像データ11および第2の画像データ12は、例えば、横方向に2048個、縦方向に1536個を格子状に並べたCCD(Charge Coupled Devices)で撮影された画像データである。この場合、第1の画像データ11および第2の画像データ12は、RGBのそれぞれの色について、2048*1536画素値を持つ。
第1の画像データ11および第2の画像データ12は、同じ場所から同一の対象物を撮影するので、第1の画像データ11の各画素で撮影される対象物の情報と、第2の画像データ12の各画素で撮影される対象物の情報は、対応する。しかしながら、第1の画像データ11と第2の画像データ12とは、焦点の位置が異なるので、同一の対象物を撮影していたとしても、各画像データにおける対象物の領域の大きさが異なる。具体的には、対象物がぼけて撮影された画像データにおける領域は、対象物に合焦して撮影された画像データにおける領域より広くなる。
図2を参照して、本発明の実施の形態に係る第1の画像データ11および第2の画像データ12を説明する。
図2(a)に示す第1の画像データ11は、対象物に焦点のあった近景合焦画像である。従って、第1の画像データ11は、対象物に合焦し、遠景はぼやけた画像となる。図2(a)は、模式的に、第1の画像データ11における対象物のエッジを、第1の対象物のエッジE1で表記し、対象物のエッジE1の範囲外を、背景B1とする。第1の画像データ11は、対象物に合焦するので、対象物と背景B1を区切るエッジE1は、高周波成分で構成され、シャープな輪郭となる。
図2(b)に示す第2の画像データ12は、背景に焦点のあった遠景合焦画像である。従って、第2の画像データ12は、遠景に合焦し、対象物はぼやけた画像となる。図2(b)は、模式的に、第2の画像データ12における対象物のエッジを第2の対象物のエッジE2で表記し、対象物のエッジE2の範囲外を、背景B2とする。第2の画像データ12は、対象物に合焦しないので、対象物と背景B2を区切るエッジE2は、第1の画像データ11に比べて低周波成分で構成され、周囲の背景と混じり、ぼやけた輪郭となる。従って図2に示すように、同一の対象物を撮影したとしても、第1の画像データ11における対象物は、第2の画像データ12における対象物よりも、狭い領域で表現される。
画像取得手段21が、第1の画像データ11および第2の画像データ12を記憶装置10に記憶すると、マスクサイズ決定手段22およびぼけ画像生成手段23による処理がそれぞれ実行される。
マスクサイズ決定手段22は、画像データの各画素についてマスクサイズを決定する。このマスクは、鮮明画像データ15の各画素の画素値を決定するための画像データを特定するために用いられる。
マスクサイズ決定手段22は、所定の画素について、第1の画像データ11における当該画素を含む所定領域の画素値と、第2の画像データ12における当該画素を含む所定領域の画素値との差分に基づいて、当該所定の画素のぼけ量を算出する。さらにマスクサイズ決定手段22は、ぼけ量が大きい場合は大きく、ぼけ量が小さい場合は小さいマスクサイズを決定する。より具体的にはマスクサイズ決定手段22は、第1の画像データ11における当該画素を含む所定領域の画素値と、第2の画像データ12における当該画素を含む所定領域の画素値について、ぼけ量を算出する。このときマスクサイズ決定手段22は、当該所定領域に、RGBの全ての画素値の差分が所定の閾値より大きい画素が多く含まれている場合にぼけ量が大きくなるようにぼけ量を算出する。またマスクサイズ決定手段22は、当該所定領域に、RGBの全ての画素値の差分が所定の閾値より少ない画素が多く含まれている場合にぼけ量が小さくなるように、ぼけ量を算出する。
本発明の実施の形態に係る画像処理装置1は、図2に示すように、焦点の位置によって、画像データにおける対象物の領域が異なる点に着目する。図2に示す例において、第1の画像データ11における対象物のエッジE1の大きさと、第2の画像データ12における対象物のエッジE2の大きさの差異は、第1の画像データ11と第2の画像データ12との、ぼけ度の差異に対応する。
マスクサイズ決定手段22は、画像データの所定の画素について、第1の画像データ11および第2の画像データ12から、所定の画素を中心とする所定領域の各画素のR、GおよびGそれぞれの画素値をそれぞれ抽出する。この所定領域は、例えば、64画素×64画素のサイズである。
さらにマスクサイズ決定手段22は、所定領域内の各画素について、第1の画像データ11のRの画素値と、第2の画像データ12のRの画素値との差分を算出する。同様にマスクサイズ決定手段22は、当該画素の第1の画像データ11のGの画素値と、第2の画像データ12のGの画素値との差分を算出するとともに、当該画素の第1の画像データ11のBの画素値と、第2の画像データ12のBの画素値との差分を算出する。マスクサイズ決定手段22は、所定領域の全ての画素のうち、RGBの全ての画素値の差分が、所定の閾値より大きい画素の数を算出する。マスクサイズ決定手段22は、この所定領域において、RGBの全ての画素値の差分が、所定の閾値より大きい画素の数を、この所定領域の中心画素のぼけ量とする。
マスクサイズ決定手段22は、各画素についてぼけ量を算出すると、各画素の識別子と、ぼけ量が大きいほど大きいマスクサイズを、ぼけ量が小さいほど小さいマスクサイズを対応づけて、画素毎マスクサイズデータ13を生成する。マスクサイズ決定手段22は、生成した画素毎マスクサイズデータ13を、記憶装置10に記憶する。
ぼけ画像生成手段23は、第1の画像データ11および第2の画像データ12から、全ての領域でぼけたぼけ画像データ14を生成する。ぼけ画像生成手段23は、第1の画像データ11および第2の画像データ12の対応する画素の画素値を加算した後、横方向に隣接する画素値の加算を複数回繰り返す。さらにぼけ画像生成手段23は、縦方向に隣接する画素の画素値の加算を複数回繰り返して、ぼけ画像データ14を生成することができる。ぼけ画像生成手段23は、記憶装置10にぼけ画像データ14を記憶する。
マスクサイズ決定手段22により、画素毎のマスクサイズが決定されるとともに、ぼけ画像生成手段23により、ぼけ画像データ14が生成されると、鮮明画像生成手段24は、鮮明画像データ15を生成する。鮮明画像データ15は、所定の画素について、画素毎マスクサイズデータ13から、当該画素に対応づけられてマスクサイズ決定手段22で決定されたマスクサイズを取得する。鮮明画像生成手段24は、当該画素を含み、マスクサイズ決定手段22で決定されたマスクサイズの領域において、第1の画像データ11および第2の画像データ12のうち、ぼけ画像データ14の画素値とより乖離した画素値を有する画像データを特定する。マスクサイズ決定手段22は、特定された画像データの当該画素の画素値を、鮮明画像データ15の当該画素の画素値とする。全ての画素について、鮮明画像データ15の画素値を特定して、鮮明画像データ15を生成し、記憶装置10に記憶する。
鮮明画像生成手段24は、鮮明画像データ15の所定の画素の画素値を、第1の画像データ11の当該画素の画素値および第2の画像データ12の当該画素の画素値のうち、いずれかとする。このとき鮮明画像生成手段24は、第1の画像データ11および第2の画像データ12から、当該画素に対応づけられたマスクサイズを有する画素を中心とする領域の画素の画素値を抽出する。鮮明画像生成手段24は、第1の画像データ11から抽出した画素値と、第2の画像データから抽出した画素値とを比較して、よりぼけ画像データ14との差分が大きい画素値が抽出された画像データを特定する。鮮明画像生成手段24は、鮮明画像データ15における当該画素の画素値を、特定した画像データにおける当該画素の画素値とする。
(マスクサイズ)
ここに、図3ないし図4を参照して、マスクサイズ決定手段22が決定する最適なマスクサイズを説明する。
まず図3を参照して、図2に示した第1の画像データ11および第2の画像データ12について算出した、ぼけ画像データ14との差分情報の画素分布を説明する。この差分情報は、所定の画素について、当該画素に対応づけられたマスクサイズ内の全ての画素のRGBの値について、ぼけ画像データ14と、第1の画像データ11または第2の画像データ12との差分の絶対値の総和である。この差分情報は、鮮明画像生成手段24によって算出される。ぼけ画像データ14と、第1の画像データ11との差分情報は、後述する図7のステップS308で算出され、ぼけ画像データ14と、第2の画像データ12との差分情報は、ステップS310で算出される。図3に示す例では、この差分情報が大きい画素領域にハッチングを設けている。
ぼけ画像との差分情報が大きい領域AR1は、ぼけ画像データ14と第1の画像データ11との差分情報が大きい画素領域である。この領域AR1は、第1の画像データ11における対象物のエッジE1の周辺に設けられる。ぼけ画像との差分情報が大きい領域AR2は、ぼけ画像データ14と第2の画像データ12との差分情報が大きい画素領域である。この領域AR2は、第2の画像データ12における対象物のエッジE2の周辺に設けられる。ぼけ画像データにおいて対象物がぼけて大きく表示される。ぼけ画像データ14において、鮮明な対象物のエッジの外側に、ぼけた対象物のエッジが設けられることによって、領域AR2が生じる。
このとき、第1の画像データ11における第1の対象物のエッジE1の画素値は、第2の画像データ12における第2の対象物のエッジE2の画素値より高周波成分が大きい。従って、エッジE1の周辺の領域AR1の幅は、エッジE2の周辺の領域AR2の幅よりも狭くなる。
図4(a)は、小さすぎるマスクサイズのマスクM1およびM2を用いる場合を説明する。図4(a)において、マスクM1およびM2のマスクサイズは、図4(b)および(c)と比べて小さい。マスクM1は、第1の対象物のエッジE1近傍の画素P1について、鮮明な画素値を選択する場合のマスクである。マスクM2は、第2の対象物のエッジE2近傍の画素P2について、鮮明な画素値を選択する場合のマスクである。
鮮明画像生成手段24は、マスクM1の中心画素P1について、第1の対象物のエッジE1の高周波成分に基づいて第1の画像データ11から鮮明な画素値を選択することができる。しかしながら、第2の対象物のエッジE2の近傍の画素においてぼけ画像データ14と比較すると、第2の対象物のエッジE2があるため、第1の画像データ11よりも第2の画像データ12の方が、ぼけ画像データ14とより乖離することになる。従って、マスクM2の中心画素P2について画素値を選択する際、鮮明画像生成手段24は、第2の対象物のエッジE2に基づいて第2の画像データ12から鮮明な画素値を選択してしまう。
このように小さいマスクサイズのマスクM1およびM2を用いると、エッジE1周辺において第1の画像データ11から画素値を取得し、さらに、エッジE2周辺において第2の画像データ12から画素値を取得して、鮮明画像データ15を生成することになる。従って、鮮明画像データ15において、第1の画像データ11から取得した対象物のエッジの周辺に、さらに、第2の画像データ12から取得した対象物の薄いエッジが表示されることになる。これにより、小さいマスクサイズを用いると、対象物のエッジが二重になる鮮明画像データが生成されてしまう。
一方、図4(c)において、大きすぎるマスクサイズのマスクM4を用いる場合を説明する。マスクM4は、ぼけ画像との差分情報が大きい領域AR2より外の画素P4について、鮮明な画素値を選択する場合のマスクである。マスクサイズが大きすぎる場合、マスクM4内において、第2の画像データ12のエッジE2より、第1の画像データ11のエッジE1の影響が大きい。第2の画像データ12よりも第1の画像データ11の方が、第1の対象物のエッジE1があることにより、ぼけ画像データ14とより乖離することになる。従って、マスクM4の中心画素P4について画素値を選択する際、鮮明画像生成手段24は、第1の対象物のエッジE1に基づいて第1の画像データ11から鮮明な画素値を選択してしまう。このように大きいマスクサイズのマスクM4を用いると、鮮明画像データ15において、対象物以外の領域において、第1の画像データ11の背景B1の画素を取得しやすくなる。従って、鮮明画像データ15において、焦点の合わない背景が表示されることになる。
そこで、本発明の実施の形態に係るマスクサイズ決定手段22は、小さすぎず、また大きすぎない、最適なマスクサイズを算出する。
図4(b)は、最適なマスクサイズのマスクM3を用いる場合を説明する。マスクM4は、第2の対象物のエッジE2周辺の画素P3について、鮮明な画素値を選択する場合のマスクである。図4(b)に示す例では、マスクM3内に、第1の画像データ11のエッジE1と、第2の画像データ12のエッジE2とが含まれる。しかしながら、第2の画像データ12のエッジE2よりも、第1の画像データ11のエッジE1の高周波成分の影響が大きい。第2の画像データ12よりも第1の画像データ11の方が、第1の対象物のエッジE1があるため、ぼけ画像データ14とより乖離することになる。従って、マスクM3の中心画素P3について画素値を選択する際、鮮明画像生成手段24は、第1の対象物のエッジE1に基づいて第1の画像データ11から鮮明な画素値を選択する。
また、ぼけ画像との差分情報が大きい領域AR2の外側の画素について、鮮明な画素値を選択する際、マスクM3内に、第1の画像データ11のエッジE1の領域を含まない。従ってマスクM3の中心画素が対象物の外側の場合、鮮明画像生成手段24は、第2の画像データ12から鮮明な画素値を選択する。
このように、最適なマスクサイズのマスクM3によれば、対象物の周囲において、対象物に合焦した画像データから画素値を取得することができる。さらに最適なマスクサイズのマスクM3によれば、対象物外の領域において、背景に合焦した画像データから画素値を取得ことができる。従って、最適なマスクサイズのマスクM3によれば、全領域において鮮明な画像データを生成することができる。
本発明の実施の形態において、最適なマスクサイズは、対象物のエッジE2の内部の画素について、第1の画像データ11から画素値を取得し、領域AR2の外部において、第2の画像データ12から画素値を取得可能なマスクサイズである。ここで、「内部」は、対象物側のことを示し、「外部」は、対象物とは異なる側を示す。図3に示す例で、最適なマスクサイズの一辺は、Lminより大きく、Lmaxより小さいのが好ましい。
Lminは、lminの2倍である。lminは、第1の画像データ11における対象物のエッジE1と、第2の画像データ12における対象物のエッジE2間の距離である。マスクサイズの一辺がLminよりも小さくなると、図4(a)のマスクM2で示したように、第2の画像データ12における対象物のエッジE2の周辺で、第2の画像データ12の画素の画素値を選択する問題が生じる。従って、最適なマスクサイズの一辺の最小値をLminとすることにより、第2の画像データ12における対象物のエッジE2の周辺で、第1の画像データ11の画素の画素値を選択することができる。
Lmaxは、lmaxの2倍である。lmaxは、第1の画像データ11における対象物のエッジE1と、ぼけ画像との差分情報が大きい領域AR2の外側の境界間の距離である。マスクサイズの一辺がLmaxよりも大きくなると、図4(c)のマスクM4で示したように、ぼけ画像との差分情報が大きい領域AR2の外側で、第1の画像データ11の画素の画素値を選択する問題が生じる。従って、最適なマスクサイズの一辺の最大値をLmaxとすることにより、ぼけ画像との差分情報が大きい領域AR2の外側で、第2の画像データ12の画素の画素値を選択することができる。
このように本発明の実施の形態においては、最適なマスクサイズを、Lmin×Lminより大きく、かつLmax×Lmaxより小さくする。この場合、最適なマスクサイズのマスク内に、エッジE2より内側の画素について、第1の画像データ11のエッジE1を含め、領域AR2の外側の画素について、第1の画像データ11のエッジE1を含めないことができる。これにより、対象物の周辺の画素において、対象物の周辺がぼけた第2の画像データ12と比べて、より高周波成分の第1の画像データ11からの画素値を鮮明画像データ15の画素値とすることができる。また、対象物の外側の画素において、より高周波成分の第2の画像データ12からの画素値を鮮明画像データ15の画素値とすることができる。これにより本発明の実施の形態は、全ての画素において鮮明な鮮明画像データ15を生成することができる。
(マスクサイズ決定処理)
図5を参照して、マスクサイズ決定手段22によるマスクサイズ決定処理を説明する。マスクサイズ決定手段22は、画像データの画素毎に、鮮明画像生成手段24で参照するマスクサイズを決定する。本発明の実施の形態に係る画像処理装置1は、各画素のぼけ度に応じてマスクサイズを変更することにより、鮮明画像データ15を生成することができる。
まずマスクサイズ決定手段22は、記憶装置10から、ステップS101において第1の画像データ11を読み出すとともに、ステップS102において第2の画像データ12を読み出す。このとき、マスクサイズ決定手段22は、第1の画像データ11および第2の画像データ12の各画素について、RGBの各画素値を取得する。
次に、ステップS103においてマスクサイズ決定手段22は、全ての画素(i,j)について、RGB毎に、第1の画像データ11の当該画素の画素値と、第2の画像データ12の当該画素の画素値との差分の絶対値を算出する。ここで、所定の画素(i,j)における第1の画像データ11のRの画素値をR1(i,j)とし、Gの画素値をG1(i,j)とし、Bの画素値をB1(i,j)とする。同様に、所定の画素(i,j)における第2の画像データ12のRの画素値をR2(i,j)とし、Gの画素値をG2(i,j)とし、Bの画素値をB2(i,j)とする。また、所定の画素(i,j)の画素値のぼけ量をb(i,j)とし、Rの画素値のぼけ量をRb(i,j)とし、Gの画素値のぼけ量をGb(i,j)とし、Bの画素値のぼけ量をBb(i,j)とする。
マスクサイズ決定手段22は、ステップS104において、|R1(i,j)−R2(i,j)|を算出する。この値が閾値Tより大きい場合、ステップS105においてマスクサイズ決定手段22は、Rb(i,j)を1に設定し、ステップS106において小さい場合、Rb(i,j)を0に設定する。同様に、マスクサイズ決定手段22は、ステップS107において、|G1(i,j)−G2(i,j)|を算出する。この値が閾値Tより大きい場合、ステップS108においてマスクサイズ決定手段22は、Gb(i,j)を1に設定し、ステップS109において小さい場合、Gb(i,j)を0に設定する。マスクサイズ決定手段22は、ステップS110において、|B1(i,j)−B2(i,j)|を算出する。この値が閾値Tより大きい場合、ステップS111においてマスクサイズ決定手段22は、Bb(i,j)を1に設定し、ステップS112において小さい場合、Bb(i,j)を0に設定する。
ステップS104ないしステップS112においてRb(i,j)、Gb(i,j)およびBb(i,j)が算出されると、ステップS113においてマスクサイズ決定手段22は、当該画素(i,j)におけるぼけ量b(i,j)を算出する。具体的にマスクサイズ決定手段22は、Rb(i,j)、Gb(i,j)およびBb(i,j)が全て0の場合、b(i,j)=0とし、それ以外の場合は、b(i,j)=1とする。全ての画像についてぼけ量b(i,j)が算出されると、ステップS113ないしステップS117において各画素におけるマスクサイズを決定する。
まずステップS113においてマスクサイズ決定手段22は、処理対象の画素(i,j)を中心とする所定領域内の画素のぼけ量を取得し、このぼけ量の合計を算出する。この所定領域は、マスクサイズ決定手段22が決定するマスクサイズより大きい領域であることが好ましい。ステップS115ないしステップS117において、ステップS113において算出したぼけ量の総和に基づいて、ぼけ量の総和が大きいほどマスクサイズが大きくなるように、当該画素のマスクサイズを決定する。
当該画素のマスクサイズが決定されると、ステップS118においてマスクサイズ決定手段22は、当該画素の識別子(i,j)と、ステップS114ないしステップS116で決定されたマスクサイズとを対応づけて、画素毎マスクサイズデータ13に登録する。
画像データの全ての画素についてステップS114ないしステップS118の処理が終了すると、マスクサイズ決定手段22は処理を終了する。
(ぼけ画像生成処理)
図6を参照して、ぼけ画像生成手段23によるぼけ画像生成処理を説明する。ぼけ画像生成手段23は、第1の画像データ11および第2の画像データとから、全領域がぼけたぼけ画像データ14を生成する。本発明の実施の形態に係る画像処理装置1は、第1の画像データおよび第2の画像データうち、ぼけ画像データの画素値とより乖離した画像データの画素値を取得して、鮮明画像データ15を生成する。
ぼけ画像生成手段23は、まずステップS201において、第1の画像データ11を読み出し、ステップS202において第2の画像データ12を読み出す。ここで、第1の画像データ11の所定画素の画素値をR1、G1およびB1とし、第2の画像データ12の所定画素の画素値をR2、G2およびB2とする。
ステップS203においてぼけ画像生成手段23は、第1の画像データ11の画素値と、第2の画像データ12の画素値を取得し、同じ位置の画素の画素値を、RGB毎に加算する。具体的には、所定の画素について、R=R1+R2、G=G1+G2およびB=B1+B2を算出する。この処理を、画像データの全ての画素について繰り返す。
その後、ぼけ画像生成手段23は、隣り合う画素の画素値の加算を繰り返す。ここでは、ぼけ画像生成手段23が、横方向の隣り合う各画素の加算をk回繰り返した後、縦方向の隣り合う各画素の加算をk回繰り返す場合を説明する。各加算を、横方向1段目、横方向2段目、…横方向k段目とするとともに、縦方向1段目、縦方向2段目、…縦方向k段目と表記する。kは任意の数字で良い。また、隣り合う画素を加算する順序は問わない。
ステップS104においてぼけ画像生成手段23は、横方向1段目の加算をする。ぼけ画像生成手段23は、ステップS203で算出された各画素のRGBの値について、横方向に隣接する画素のRGBの画素値を算出する。例えばぼけ画像生成手段23は、所定の画素(i、j)のRの画素値に、この所定の画素の右方向に隣接する画素(i+1,j)のRの画素値を足し、当該所定の画素(i、j)の画素値とする。さらにぼけ画像生成手段23は、その所定の画素の右方向に隣接する画素(i+1、j)のRの画素値に、さらにその右方向に隣接する画素(i+2、j)のRの画素値を足し、当該所定の画素の右方向に隣接する画素(i+1、j)のRの画素値とする。Rについて、全ての画素について処理した後、GおよびBについても同様に処理を繰り返す。
横方向1段目の加算が終了すると、ステップS205においてぼけ画像生成手段23は、横方向2段目の加算をする。ステップS204と同様にぼけ画像生成手段23は、ステップS204で算出された各画素のRGBの値について、横方向に隣接する画素のRGBの画素値を算出する。
このように横方向の加算を繰り返し、ステップS206において横方向k段目の加算が終了すると、ステップS207においてぼけ画像生成手段23は、縦方向1段目の加算をする。ぼけ画像生成手段23は、ステップS206で算出された各画素のRGBの値について、縦方向に隣接する画素のRGBの画素値を算出する。例えばぼけ画像生成手段23は、所定の画素(i、j)のRの画素値に、この所定の画素の下方向に隣接する画素(i,j+1)のRの画素値を足し、当該所定の画素(i、j)の画素値とする。さらにぼけ画像生成手段23は、その所定の画素の下方向に隣接する画素(i、j+1)のRの画素値に、さらにその下方向に隣接する画素(i、j+2)のRの画素値を足し、当該所定の画素の右方向に隣接する画素(i、j+1)のRの画素値とする。Rについて、全ての画素について処理した後、GおよびBについても同様に処理を繰り返す。
縦方向1段目の加算が終了すると、ステップS208においてぼけ画像生成手段23は、縦方向2段目の加算をする。ステップS207と同様にぼけ画像生成手段23は、ステップS207で算出された各画素のRGBの値について、縦方向に隣接する画素のRGBの画素値を算出する。
このように縦方向の加算を繰り返し、ステップS209において縦方向k段目の加算が終了すると、ステップS210においてぼけ画像生成手段23は、縦方向k段目の計算結果について、各画素のRGBの各画素値について、1/2(2k+1)する。ステップS203において、画素値が約2倍になり、またステップS204ないしステップS208においてさらに約22k倍になっているので、ステップS209の出力結果は、ステップS201またはステップS202の2(2k+1)倍になっている。そこで、ステップS210において、ステップS109で出力された各画素のRGBの各画素値を、2(2k+1)で割って、第1の画像データ11および第2の画像データ12に対応するように、振幅を調整する。
ステップS211においてぼけ画像生成手段23は、ステップS210で出力された各画素のRGBの各画素値に基づいて、ぼけ画像データ14として出力する。
このようなぼけ画像生成方法は、乗算器を用いなくとも、加算を繰り返すことで、ぼけ画像データ14を生成することができるので、実装が容易である。なお、画像の境界の画素は、対象拡張法などを用いて処理されても良い。
(鮮明画像生成手段)
図7を参照して、鮮明画像生成手段24による鮮明画像生成処理を説明する。鮮明画像生成手段24は、各画素について、ぼけ画像データ14の画素値とより乖離した画像データの画素値を取得し、この画素値を結合して鮮明画像データ15を生成する。このとき鮮明画像生成手段24は、所定の画素について、第1の画像データ11の画素値と第2の画像データ12の画素値のどちらが乖離しているか判断する場合、画素毎マスクサイズデータ13においてこの所定の画素に対応づけられたマスクサイズを取得する。鮮明画像生成手段24は、この所定の画素値を中心とする、取得したマスクサイズ内の複数の画素の画素値について、ぼけ画像データ14、第1の画像データ11および第2の画像データ12を比較する。鮮明画像生成手段24は、第1の画像データ11および第2の画像データ12のうち、ぼけ画像データ14とより乖離した画像データの画素値を特定する。
ステップS301において鮮明画像生成手段24は、記憶装置10からぼけ画像データ14を読み出す。
さらに鮮明画像生成手段24は、ステップS302において、記憶装置10から第1の画像データ11を読み出す。ステップS303において鮮明画像生成手段24は、第1の画像データ11の各画素およびRGB毎に、ステップS301で読み出したぼけ画像データ14との差分を算出する。同様に鮮明画像生成手段24は、ステップS304において、記憶装置10から第2の画像データ12を読み出す。ステップS305において鮮明画像生成手段24は、第2の画像データ12の各画素およびRGB毎に、ステップS301で読み出したぼけ画像データ14との差分を算出する。
次に、画像データの全ての画素について、ステップS306ないしステップS313の処理を繰り返す。ここで、処理対象の画素を、画素(i,j)で示す。
ステップS306において鮮明画像生成手段24は、記憶装置10から画素毎マスクサイズデータ13を読み出し、当該画素(i,j)に対応づけられたマスクサイズを取得する。
ステップS307において鮮明画像生成手段24は、第1の画像データ11から、当該画素(i,j)を中心とするマスクサイズ内の画素を特定し、特定した画素について、ステップS303で算出したRGB毎の差分の絶対値を取得する。さらにステップS308において鮮明画像生成手段24は、ステップS307で生成したRGB毎の差分の絶対値の総和を算出し、P1(i,j)として出力する。
同様に、ステップS309において鮮明画像生成手段24は、第2の画像データ12から、当該画素(i,j)を中心とするマスクサイズ内の画素を特定し、特定した画素について、ステップS303で算出したRGB毎の差分の絶対値を取得する。さらにステップS310において鮮明画像生成手段24は、ステップS309で生成したRGB毎の差分の絶対値の総和を算出し、P2(i,j)として出力する。
ステップS311において鮮明画像生成手段24は、ステップS308で算出したP1(i,j)と、ステップS310で算出したP2(i,j)とを比較する。P1(i,j)の方が大きい場合、当該画素のマスク内の画素について、ぼけ画像データ14と比べて、第1の画像データ11の画素値が、第2の画像データ12の画素値より、より乖離していたことになる。従って、鮮明画像データ15の当該画素(i,j)のRGBの画素値を、第1の画像データ11の当該画素(i,j)のRGBの画素値とする。
一方、P2(i,j)の方が大きい場合、当該画素のマスク内の画素について、ぼけ画像データ14と比べて、第2の画像データ12の画素値が、第1の画像データ11の画素値より、より乖離していたことになる。従って、鮮明画像データ15の当該画素(i,j)のRGBの画素値を、第2の画像データ12の当該画素(i,j)のRGBの画素値とする。
このように、全ての画素について、ステップS306ないしステップS313の処理が繰り返されると、ステップS314において鮮明画像生成手段24は、鮮明画像データ15を生成する。この鮮明画像データ15は、ステップS312またはステップS313で決定された各画素のRGBの画素値に基づいて生成される。
このような本発明の実施の形態に係る画像処理装置1は、各画素のぼけ度に応じてマスクサイズを決定する。これにより、合焦していない対象物によるノイズを低減した画像データを生成することができる。
また本発明の実施の形態に係る画像処理装置1は、隣接する画素の画素値の加算を繰り返すことにより、ぼけ画像データを生成することができる。
このように本発明の実施の形態に係る画像処理装置1は、デジタルカメラ等によって撮影された2の画像データから、ぼけ画像データを生成するとともに、このぼけ画像データと、各画像データとの差分をそれぞれ算出する。これにより画像処理装置1は、2の画像データから高周波成分を取得する。さらに画像処理装置1は、各画素のぼけ度合いに応じてマスクサイズを決定し、マスク内の高周波成分の総和に基づいて、2の画像データから、より鮮明な画像領域を特定し、特定された領域を結合して、鮮明画像データを生成することができる。
また、画像処理装置1がぼけ画像データ14を生成する際、乗算器を使わず、加算器のみで実現可能なため、生成に必要な計算量を低減することができる。これにより、本発明の実施の形態に係る画像処理方法に要する時間を低減することができる。また、画像処理方法を、デジタルカメラなどのハードウェアスペックが制限される機器にも適用することができる。
(第1の変形例)
図8を参照して、第1の変形例に係る画像処理装置100を説明する。第1の変形例に係る画像処理装置100は、本発明の実施の形態に係る画像撮影プログラムおよび画像撮影方法を実現する。
第1の変形例に係る画像処理装置100は、いわゆるデジタルカメラなどの撮影機器である。画像処理装置100は、メモリ110、コントローラ120、ボタンやタッチパネルなどの入力装置130、第1の画像撮影部140、第2の画像撮影部150および表示装置160を備える。
メモリ110は、画像処理装置100のコントローラ120が、画像処理装置100の制御のためのプログラム、処理で参照更新されるデータ、画像処理装置100が撮影したデータなどを格納する記憶手段である。メモリ110は、一般的な画像撮影装置に必要なデータを記憶するとともに、図1を参照して説明した画像処理装置1の記憶装置10に記憶された各種データを記憶する。
コントローラ120は、画像処理装置100を制御する。コントローラ120は、メモリ110のデータを参照更新し、入力装置130から入力されたデータを処理する。またコントローラ120は、第1の画像撮影部140および第2の画像撮影部150から画像データを取得する。コントローラ120は、コントローラ120の処理結果を表示装置160に出力する。コントローラ120は、一般的な画像撮影装置に必要な処理を制御するとともに、図1を参照して説明した画像処理装置1の中央処理制御装置20で実現される各手段を実装する。コントローラ120は、図1の画像処理装置1と比べて、画像撮影制御手段125を備えるとともに第1の画像取得手段126および第2の画像取得手段127を備える点が異なる。
画像撮影制御手段125は、入力装置130から撮影指示が入力されると、第1の画像撮影部140および第2の画像撮影部150に、異なる対象物に合焦させて撮影する指示を入力する。第1の画像取得手段126は、第1の画像撮影部140から取得した第1の画像データ111をメモリ110に記憶する。第2の画像取得手段127は、第2の画像撮影部150から取得した第2の画像データ112をメモリ110に記憶する。
この第1の画像データ111および第2の画像データ112は、コントローラ120のマスクサイズ決定手段122、ぼけ画像生成手段123および鮮明画像生成手段124によって処理される。マスクサイズ決定手段122、ぼけ画像生成手段123および鮮明画像生成手段124の各処理は、図1ないし図7を参照して説明した実施の形態に係る画像処理装置1の処理と同様である。この処理によって画像処理装置100は、鮮明画像データ115を生成し、表示装置160に表示する。
このように、本発明の実施の形態に係る画像処理方法は、デジタルカメラなどの画像処理装置100で使用されても良い。これにより、第1の変形例に係る画像処理装置100は、鮮明画像を表示することができる。また、第1の変形例に係る画像処理装置100は、2つの画像撮影部を備え、異なる対象物に合焦した2つの画像データを同時に撮影することができるので、より明瞭な鮮明画像データ115を出力することができる。
(第2の変形例)
図9を参照して第2の変形例に係る画像処理装置101を説明する。第2の変形例に係る画像処理装置101は、第1の変形例に係る画像処理装置100と同様に、いわゆるデジタルカメラなどの画像撮影機器である。第2の変形例に係る画像処理装置101は、図8を参照して説明した第1の変形例に係る画像処理装置100と比べて、一つの画像撮影部170を備える点が異なる。
第2の変形例に係る画像撮影制御手段128は、画像撮影部170に、異なる対象物に合焦した2つの画像データを連続して撮影する指示を入力する。例えば画像撮影制御手段128は、画像撮影部170に、近景に合焦した第1の画像データ111を撮影した後、遠景に合焦した第2の画像データ112を撮影する指示を入力する。画像取得手段129は、画像撮影部170から第1の画像データ111を取得するとメモリ110に記憶し、第2の画像データ112を取得するとメモリ110に記憶する。
この第1の画像データ111および第2の画像データ112は、コントローラ120のマスクサイズ決定手段122、ぼけ画像生成手段123および鮮明画像生成手段124によって処理される。マスクサイズ決定手段122、ぼけ画像生成手段123および鮮明画像生成手段124の各処理は、図1ないし図7を参照して説明した実施の形態に係る画像処理装置1の処理と同様である。この処理によって画像処理装置101は、鮮明画像データ115を生成し、表示装置160に表示する。
このように、第2の変形例に係る画像処理装置101は、一つの画像撮影部で異なる対象物に合焦した2つの画像データを撮影し、これらの画像データから鮮明画像データ115を出力することができる。第2の変形例に係る画像処理装置101は、第1の変形例に係る画像処理装置101のように2つの画像撮影部を有さなくとも、鮮明画像データ115を出力することができる。
また第2の変形例に係る画像処理装置101によれば、一つの画像撮影部170で連続的に画像データを生成することができるので、異なる対象物に合焦した3以上の画像データを撮影することができる。
この場合、例えば図10に示すように、本発明の実施の形態に係る画像処理方法を繰り返し適用することにより鮮明画像データを生成することができる。まず画像処理方法は、入力となる3以上の画像データを、近景が合焦している画像データから、遠景が合焦している画像データとなるように、画像データを並べ替える。さらに画像処理方法は、最も近景が合焦している一枚目の画像データと、その次に近景が合焦している2枚目の画像データから、第1の鮮明画像データを生成する。さらに、画像処理方法は、第1の鮮明画像データと、2枚目の画像データの次に近景が合焦している3枚目の画像データから、第2の鮮明画像データを生成する。この処理を繰り返すことにより、複数の画像データからより鮮明な画像データを生成することができる。
なおここでは、複数の画像データを、近景が合焦している画像データから、遠景が合焦している画像データとなるように、画像データを並べ替える場合を説明したが、別の実施例もある。具体的には、遠景が合焦している画像データから、近景が合焦している画像データとなるように、画像データを並べ替えても良い。
従って、第2の変形例に係る画像処理装置101は、3以上の画像データから、より明瞭な鮮明画像データ115を生成することができる。また、画像処理装置101の一つの画像撮影部170が連続的に複数の画像データを撮影することにより、複数の画像撮影部を備える場合と比べて、コストの低減が期待できる。
(第1のテスト例)
図11ないし図18を参照して、本発明の実施の形態に係る画像処理方法で入出力する画像データを説明する。
図11ないし図14は、第1のテスト例の入出力の画像データである。図11ないし図14は、絵画とメロンを被写体とする同一の対象物を同一の位置から撮影した画像に関する画像データである。図11および図12は、デジタルカメラ等で撮影した入力画像データである。図11は、近景のメロンに合焦し、遠景の絵画がぼけた画像データである。図12は、遠景の絵画に合焦し、近景のメロンがぼけた画像データである。
図13は、図11の画像データと図12の画像データから、従来の手法に基づいて生成された鮮明画像データである。図13に示す従来の鮮明画像データにおいては、被写体のエッジ傍にぼけ情報が残留して表示されている。例えば、絵画の左側に白い線上のノイズが入り、メロンの弦の上部にも白い線上のノイズが入っている。
これは、上述した通り、ぼけた画像データにおいては被写体が大きく写ることに依存している。図12に示したメロンは、図11に示したメロンより、その輪郭がぼけている分、若干大きい。このメロンが撮影された大きさに差異があるにもかかわらず、同様のマスクサイズを適用しているので、図13に示す従来の画像データにおいて、被写体のエッジ傍に、その被写体のぼけた画像データのエッジが残ってしまう。
一方、図14は、本発明の実施の形態に係る手法に基づいて生成された鮮明画像データである。図14に示す画像データでは、メロンおよび絵画の両被写体に合焦しており、また、そのエッジ傍に図13に示したようなノイズも残っていない。
本発明の実施の形態においては、画像データの各画素に、そのぼけ量に応じた大きさのマスクを用いる。これにより本発明の実施の形態に係る画像処理方法は、被写体のエッジの傍に、その被写体のぼけた画像データのエッジにぼけ情報が残らず、より明瞭な鮮明画像データを生成することができる。
(第2のテスト例)
図11ないし図14に示す例は、2つの画像データから鮮明画像データを生成する場合を説明したが、図15ないし図18に示す例では、3つの画像データから鮮明画像データを生成する場合を説明する。図15ないし図18は、第2のテスト例の入出力の画像データである。
図15ないし図17は、デジタルカメラ等で撮影した入力画像データである。図15は、遠景の絵画に合焦し、中景のメロンと近景のリンゴがぼけた画像データである。図16は、近景のメロンに合焦し、遠景の絵画と近景のリンゴがぼけた画像データである。図17は、近景のリンゴに合焦し、遠景の絵画と中景のメロンがぼけた画像データである。
このように入力の画像データが3以上ある場合、図10を参照して説明した様に、画像処理方法は、2枚の画像データを合成する処理を繰り返し、鮮明画像データを生成する。例えば、画像処理方法は、図15に示した画像データと図16に示した画像データとから、第1の鮮明画像データを生成する。この第1の鮮明画像データは、遠景の絵画と中景のメロンとに合焦し、リンゴがぼけた画像データである。さらに、画像処理方法は、第1の鮮明画像データと図17に示した画像データとから、第2の鮮明画像データを生成する。
この第2の鮮明画像データは、図18に示すように、遠景の絵画、中景のメロン、近景のリンゴに合焦した鮮明画像データである。図18に示す画像データにおいても、図13に示したような被写体のエッジ近辺のノイズはみられない。
このように、本発明の実施の形態に係る画像処理装置、画像処理方法および画像処理プログラムは、焦点の異なる複数の画像データから鮮明画像データを生成することができる。
(その他の実施の形態)
上記のように、本発明の最良の実施の形態とその第1の変形例および第2の変形例によって記載したが、この開示の一部をなす論述および図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例および運用技術が明らかとなる。
例えば、本発明の最良の実施の形態に記載した画像処理方法および画像処理プログラムは、図1に示すようにコンピュータ上に構成されても良いし、図8および図9に示すように、デジタルカメラなどの画像撮影装置上に構成されても良い。
本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。従って、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。