説明

画像処理装置、および画像処理方法、並びにコンピュータ・プログラム

【課題】 色収差によるパープルフリンジ等の偽色の補正を効率的に実行し高品質な画像データを生成、出力する装置および方法を提供する。
【解決手段】 画像データから白とび画素を検出し、検出した白とび画素の周囲に偽色画素検出領域を設定し、設定領域内において、パープルフリンジ等の偽色に対応する色を有する画素を検出し、検出画素を偽色画素として特定して、特定した偽色画素に対して周囲画素値に基づく補正処理を実行する。本構成により、白とび画素近傍に発生するパープルフリンジ等の偽色領域の効率的検出、部分的な画素値補正が可能となり、画像全体に対する影響を発生させることなく高品質な画像データの生成、出力が可能となる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、および画像処理方法、並びにコンピュータ・プログラムに関する。さらに詳細には、例えばレンズの収差による偽色の発生した画像データを補正し、高品質な画像データを生成する画像処理装置、および画像処理方法、並びにコンピュータ・プログラムに関する。
【背景技術】
【0002】
カメラで撮影する際には、レンズの収差によりさまざまな問題が引き起こされる。典型的な収差の例として、単色収差であるザイデルの五収差が挙げられる。これはドイツのザイデルによって分析されたレンズの球面に基づく5つの収差であり、球面収差、コマ収差、非点収差、歪曲収差、像面歪曲の各収差の総称である。さらに、これらの収差とは別に、色収差も重要な問題を引き起こすことが知られている。色収差は、レンズ素材に対する光の屈折率がその波長により異なることに起因し、撮像面にて偽色を生ずる。
【0003】
色収差の代表的な例として、光軸上の焦点位置が波長によって異なるため色のにじみが起こる軸上色収差や、波長により像倍率が異なるため色ずれが起こる倍率色収差などがよく知られているが、英語で一般的にPurple Fringe(パープルフリンジ)と呼ばれる現象も画像の劣化を引き起こす重要な原因となる。これは、光の波長により点像分布が異なっているために、画像中のエッジ部分に偽色が発生する現象である。通常の画素ではそれほど目立たない場合でも、輝度レベルにおける飽和状態としての白とびが起こっているハイコントラストのエッジ部分があれば、その周辺に紫色の偽色が発生し、不自然な像が結像されてしまう。一般に、白とびの近傍に発生する偽色は紫系の色が多く発生するためパープルフリンジと呼ばれる。ただし、レンズ、撮影条件などに応じて、偽色の色は緑がかった色となる場合など様々である。以下、パープルフリンジとは、発生する色に関わらず白とびが起こっているハイコントラストのエッジ部分における偽色発生現象を指すものとする。
【0004】
色収差を軽減するための技術としては、蛍石など特殊な素材で出来たガラスを用いたレンズがある。しかし、このようなレンズを製造するのはコストがかるため価格も高く、レンズ交換式のカメラ用など一部の高級なカメラで用いられているが、一般に広く普及しているとは言えない。
【0005】
また、特許文献1には、色収差によって発生する偽色を画像処理により軽減する方法が示されている。これは、緑チャンネルの高周波成分が高い部分に関して、色を抑制、つまり彩度を低下させる処理を行うものである。また、白とびが起こっている場合の対策として、露出を変えて2枚の画像を撮像し白とび部分の本来の輝度を推定し、彩度を低下させる処理を行う構成を開示している。
【0006】
しかし、特許文献1に記載の処理は、彩度の低下により偽色の軽減を行っているため、本来の被写体の色についての彩度も低下し、被写体本来の忠実な色の再現ができなくなりその結果、不自然な画像が出力されるという問題がある。また、白とび部分の輝度推定のために、2回撮影を行う必要があり、この2回の撮影の間に手ぶれや被写体ぶれなどが起こった場合、正しい結果を得ることが困難になるという問題がある。
【特許文献1】特開2003−60983号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
本発明は、上述の問題点に鑑みてなされたものであり、白とび周辺に発生するパープルフリンジ等の偽色に注目し、この偽色領域を効率的に検出し、部分的な補正を実行することにより、画像全体に対する影響を発生させることなく高品質な画像データを生成、出力することを可能とした画像処理装置、および画像処理方法、並びにコンピュータ・プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の第1の側面は、
画像処理装置であり、
画像データから白とび画素を検出する白とび検出部と、
前記白とび検出部の検出した白とび画素の周囲に偽色画素検出領域を設定する偽色画素検出領域設定部と、
前記偽色画素検出領域設定部の設定した領域内において、偽色に対応する色を有する画素を偽色画素として特定する偽色検出部と、
前記偽色検出部の検出した偽色画素について、周囲画素値に基づく画素値補正処理を実行する画素値補正部と、
を有することを特徴とする画像処理装置にある。
【0009】
さらに、本発明の画像処理装置の一実施態様において、前記画素値補正部は、偽色画素について、周囲画素値に基づく穴埋め補間処理を実行する穴埋め補間部と、偽色画素について、色ぼかし処理を実行する色ぼかし処理部とを有する構成であることを特徴とする。
【0010】
さらに、本発明の画像処理装置の一実施態様において、前記画素値補正部は、偽色画素の周囲に存在する画素から偽色画素および白とび画素を除くその他の画素を選択し、選択画素に基づく穴埋め補間処理を実行する構成であることを特徴とする。
【0011】
さらに、本発明の画像処理装置の一実施態様において、前記偽色検出部は、前記偽色画素検出領域設定部の設定した領域内において、あらかじめ設定された特定の色を有する画素を偽色画素として特定する処理を実行する構成であることを特徴とする。
【0012】
さらに、本発明の画像処理装置の一実施態様において、前記偽色は、パープルフリンジであり、前記偽色検出部は、前記偽色画素検出領域設定部の設定した領域内の紫色の画素を偽色画素として特定する処理を実行する構成であることを特徴とする。
【0013】
さらに、本発明の画像処理装置の一実施態様において、偽色画素検出領域設定部は、前記白とび検出部の検出した白とび画素の周囲に設定する偽色画素検出領域を、処理対象画像データの撮影時の絞り、焦点距離情報、光学中心から白とび画素(x,y)までの距離の少なくともいずれかのデータに基づいて決定する処理を実行する構成であることを特徴とする。
【0014】
さらに、本発明の画像処理装置の一実施態様において、前記白とび検出部は、予め定めた閾値以上の輝度を有する画素を白とび画素として選択する処理を実行する構成であることを特徴とする。
【0015】
さらに、本発明の画像処理装置の一実施態様において、前記画像処理装置は、さらに、入力画像データを輝度成分画像データと色成分画像データとに分離するデータ変換処理を実行する色変換部を有し、前記色変換部において生成された変換データに基づく画素値補正処理を実行する構成であることを特徴とする。
【0016】
さらに、本発明の画像処理装置の一実施態様において、前記偽色画素検出領域設定部は、処理対象画像と同一被写体の撮影画像であり、処理対象画像の白とび画素に対応する位置の画素が飽和輝度値を持たない参照画像を入力し、処理対象画像の白とび画素位置に対応する参照画像の対応画素の輝度値を取得する参照画像解析部と、前記参照画像解析部において取得した前記参照画像の対応画素の輝度値に基づいて偽色画素検出領域を設定する偽色画素検出領域決定部とを有する構成であることを特徴とする。
【0017】
さらに、本発明の画像処理装置の一実施態様において、前記偽色画素検出領域決定部は、参照画像の輝度値と、偽色発生可能画素範囲あるいは偽色画素検出領域を対応付けたルックアップテーブルを適用して偽色画素検出領域を設定する構成であることを特徴とする。
【0018】
さらに、本発明の画像処理装置の一実施態様において、前記偽色画素検出領域決定部は、前記参照画像の対応画素の輝度値が高いほど広い偽色画素検出領域を設定する処理を実行する構成であることを特徴とする。
【0019】
さらに、本発明の画像処理装置の一実施態様において、前記偽色画素検出領域決定部は、低感度センサを持つ撮像素子によって撮影した画像、または適正露出未満の低露出条件での撮影画像を参照画像として適用し、処理対象画像の白とび画素に対応する位置の参照画像の輝度値を取得する構成であることを特徴とする。
【0020】
さらに、本発明の第2の側面は、
画像処理方法であり、
画像データから白とび画素を検出する白とび検出ステップと、
前記白とび検出ステップにおいて検出した白とび画素の周囲に偽色画素検出領域を設定する偽色画素検出領域設定ステップと、
前記偽色画素検出領域設定ステップにおいて設定した領域内において、偽色に対応する色を有する画素を偽色画素として特定する偽色検出ステップと、
前記偽色検出ステップにおいて検出した偽色画素について、周囲画素値に基づく画素値補正処理を実行する画素値補正ステップと、
を有することを特徴とする画像処理方法にある。
【0021】
さらに、本発明の画像処理方法の一実施態様において、前記画素値補正ステップは、偽色画素について、周囲画素値に基づく穴埋め補間処理を実行する穴埋め補間ステップと、偽色画素について、色ぼかし処理を実行する色ぼかし処理ステップとを有することを特徴とする。
【0022】
さらに、本発明の画像処理方法の一実施態様において、前記画素値補正ステップは、偽色画素の周囲に存在する画素から偽色画素および白とび画素を除くその他の画素を選択し、選択画素に基づく穴埋め補間処理を実行するステップであることを特徴とする。
【0023】
さらに、本発明の画像処理方法の一実施態様において、前記偽色検出ステップは、前記偽色画素検出領域設定ステップにおいて設定した領域内において、あらかじめ設定された特定の色を有する画素を偽色画素として特定する処理を実行するステップであることを特徴とする。
【0024】
さらに、本発明の画像処理方法の一実施態様において、前記偽色は、パープルフリンジであり、前記偽色検出ステップは、前記偽色画素検出領域設定ステップにおいて設定した領域内の紫色の画素を偽色画素として特定する処理を実行するステップであることを特徴とする。
【0025】
さらに、本発明の画像処理方法の一実施態様において、偽色画素検出領域設定ステップは、前記白とび検出ステップにおいて検出した白とび画素の周囲に設定する偽色画素検出領域を、処理対象画像データの撮影時の絞り、焦点距離情報、光学中心から白とび画素(x,y)までの距離の少なくともいずれかのデータに基づいて決定する処理を実行するステップであることを特徴とする。
【0026】
さらに、本発明の画像処理方法の一実施態様において、前記白とび検出ステップは、予め定めた閾値以上の輝度を有する画素を白とび画素として選択する処理を実行するステップであることを特徴とする。
【0027】
さらに、本発明の画像処理方法の一実施態様において、前記画像処理方法は、さらに、入力画像データを輝度成分画像データと色成分画像データとに分離するデータ変換処理を実行する色変換ステップを有し、前記色変換部において生成された変換データに基づく画素値補正処理を実行するステップであることを特徴とする。
【0028】
さらに、本発明の画像処理方法の一実施態様において、前記偽色画素検出領域設定ステップは、処理対象画像と同一被写体の撮影画像であり、処理対象画像の白とび画素に対応する位置の画素が飽和輝度値を持たない参照画像を入力し、処理対象画像の白とび画素位置に対応する参照画像の対応画素の輝度値を取得する参照画像解析ステップと、前記参照画像解析ステップにおいて取得した前記参照画像の対応画素の輝度値に基づいて偽色画素検出領域を設定する偽色画素検出領域決定ステップとを含むことを特徴とする。
【0029】
さらに、本発明の画像処理方法の一実施態様において、前記偽色画素検出領域決定ステップは、参照画像の輝度値と、偽色発生可能画素範囲あるいは偽色画素検出領域を対応付けたルックアップテーブルを適用して偽色画素検出領域を設定するステップであることを特徴とする。
【0030】
さらに、本発明の画像処理方法の一実施態様において、前記偽色画素検出領域決定ステップは、前記参照画像の対応画素の輝度値が高いほど広い偽色画素検出領域を設定する処理を実行するステップであることを特徴とする。
【0031】
さらに、本発明の画像処理方法の一実施態様において、前記偽色画素検出領域決定ステップは、低感度センサを持つ撮像素子によって撮影した画像、または適正露出未満の低露出条件での撮影画像を参照画像として適用し、処理対象画像の白とび画素に対応する位置の参照画像の輝度値を取得することを特徴とする。
【0032】
さらに、本発明の第3の側面は、
画像処理をコンピュータ上において実行させるコンピュータ・プログラムであって、
画像データから白とび画素を検出する白とび検出ステップと、
前記白とび検出ステップにおいて検出した白とび画素の周囲に偽色画素検出領域を設定する偽色画素検出領域設定ステップと、
前記偽色画素検出領域設定ステップにおいて設定した領域内において、偽色に対応する色を有する画素を偽色画素として特定する偽色検出ステップと、
前記偽色検出ステップにおいて検出した偽色画素について、周囲画素値に基づく画素値補正処理を実行する画素値補正ステップと、
を有することを特徴とするコンピュータ・プログラムにある。
【0033】
さらに、本発明のコンピュータ・プログラムの一実施態様において、偽色画素検出領域設定ステップは、処理対象画像と同一被写体の撮影画像であり、処理対象画像の白とび画素に対応する位置の画素が飽和輝度値を持たない参照画像を入力し、処理対象画像の白とび画素位置に対応する参照画像の対応画素の輝度値を取得する参照画像解析ステップと、前記参照画像解析ステップにおいて取得した前記参照画像の対応画素の輝度値に基づいて偽色画素検出領域を設定する偽色画素検出領域決定ステップとを含むことを特徴とする。
【0034】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、CDやFD、MOなどの記憶媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【0035】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づく、より詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【発明の効果】
【0036】
本発明の構成によれば、画像データから白とび画素を検出し、検出した白とび画素の周囲に偽色画素検出領域を設定し、設定領域内において、パープルフリンジ等の偽色に対応する色を有する画素を検出し、検出画素を偽色画素として特定し、特定した偽色画素に対して周囲画素値に基づく補正処理を実行する構成としたので、白とび画素近傍に発生するパープルフリンジ等の偽色領域の効率的検出、部分的な画素値補正が可能となり、画像全体に対する影響を発生させることなく高品質な画像データの生成、出力が可能となる。
【0037】
本発明の構成によれば、カメラで撮影した画像に起こる色収差によるパープルフリンジ等の偽色に対する適正な補正が可能となり、高品質な画像データの生成、出力が実現される。従来のカメラでは、パープルフリンジが発生するような状況で、レンズ絞りなどの設定を工夫しないと不自然な画像が撮影される可能性があったが、本発明を適用することにより、撮影画像に含まれるパープルフリンジ等の偽色を効率的に抽出し補正することが可能であり高品質な画像を生成、出力することができる。従って、撮影時にパープルフリンジが起こらないようにレンズの絞りや焦点距離などに注意を払う必要がなく、より高い自由度で撮影を行なうことが可能となる。
【0038】
さらに、本発明の構成によれば、白とび画素に対応する被写体の実輝度を参照画像に基づいて推定し、被写体の実輝度に対応する偽色(パープルフリンジ)検出領域を設定して、設定領域内の偽色(パープルフリンジ)画素を検出して補正する構成であるので、設定される偽色(パープルフリンジ)検出領域が広すぎたり、狭すぎたりすることがなく、偽色(パープルフリンジ)の発生する可能性のある領域に一致する偽色(パープルフリンジ)検出領域の設定が可能となり、確実にかつ効率的に偽色(パープルフリンジ)画素を検出することができ、画像補正の精度が高まり、効率化が実現される。
【発明を実施するための最良の形態】
【0039】
以下、図面を参照しながら、本発明の画像処理装置、および画像処理方法、並びにコンピュータ・プログラムの詳細について説明する。
【0040】
[実施例1]
まず、画像処理装置の構成例について図1を参照して説明する。なお、図1に示す画像処理装置は、撮像部を備え、撮像部において撮影した画像データの補正処理を実行する装置例として示してあるが、本発明の画像処理装置は、たとえばハードディスクなどの記憶部に格納された画像データを入力して入力画像の補正を実行することも可能であり、補正処理対象の画像データは、撮像部を介して入力されるデータのみならず、記憶手段、あるいはネットワークを介して入力する画像データなどあらゆる入力画像データに対応可能である。図1は本発明の画像処理装置の一構成例を示すものである。
【0041】
図1に示す画像処理装置の詳細構成について説明する。図1に示すように、画像処理装置は、レンズ101、絞り102、固体撮像素子103、相関2重サンプリング回路104、A/Dコンバータ105、DSPブロック106、タイミングジェネレータ107、D/Aコンバータ108、ビデオエンコーダ109、ビデオモニタ110、コーデック(CODEC)111、メモリ112、CPU113、入力デバイス114、フラッシュ制御装置115、フラッシュ発光装置116から構成される。
【0042】
ここで、入力デバイス114はカメラ本体にある録画ボタンなどの操作ボタン類をさす。また、DSPブロック106は信号処理用プロセッサと画像用RAMを持つブロックで、信号処理用プロセッサが画像用RAMに格納された画像データに対してあらかじめプログラムされた画像処理をおこなうことができるようになっている。以下DSPブロックを単にDSPと呼ぶ。
【0043】
本実施例の全体的な動作を以下に説明する。
光学系を通過して固体撮像素子103に到達した入射光は、まず撮像面上の各受光素子に到達し、受光素子での光電変換によって電気信号に変換され、相関2重サンプリング回路104によってノイズ除去され、A/Dコンバータ105によってデジタ。信号に変換された後、デジタル信号処理部(DSP)106中の画像メモリに一時格納される。なお、必要があれば、撮影の際に、フラッシュ制御装置115を介して、フラッシュ発光装置116を発光させることができる。
【0044】
撮像中の状態においては、一定のフレームレートによる画像取り込みを維持するようにタイミングジェネレータ107が信号処理系を制御する。デジタル信号処理部(DSP)106へも一定のレートで画素のストリームが送られ、そこで適切な画像処理がおこなわれた後、画像データはD/Aコンバータ108もしくはコーデック(CODEC)111あるいはその両方に送られる。D/Aコンバータ108はデジタル信号処理部(DSP)106から送られる画像データをアナログ信号に変換し、それをビデオエンコーダ109がビデオ信号に変換し、そのビデオ信号をビデオモニタ110でモニタできるようになっていて、このビデオモニタ110は本実施例においてカメラのファインダの役割を担っている。また、コーデック(CODEC)111はデジタル信号処理部(DSP)106から送られる画像データに対する符号化をおこない、符号化された画像データはメモリ112に記録される。ここで、メモリ112は半導体、磁気記録媒体、光磁気記録媒体、光記録媒体などを用いた記録装置などであってよい。
【0045】
以上が本実施例の画像処理装置の一例としてのデジタルビデオカメラのシステム全体の説明であるが、本発明に係る画像処理、すなわち画像データの補正処理はデジタル信号処理部(DSP)106において実行される。以下、この画像処理の詳細について説明する。
【0046】
まず、偽色(パープルフリンジ)の発生の仕方の特徴について、述べる。偽色(パープルフリンジ)とは、色収差による色ずれが、白とび部分周辺で目立って現れる現象で、例えば紫色の偽色を生ずることを特徴とする。偽色が発生する白とびの周り範囲大きさは、光学系の種類、光学系の絞り、焦点距離ならびに、高輝度部分とその周囲の輝度差に連動しており、また、光学中心からの距離にも依存し、大きさが変わる。また、偽色が出る方向も、光学中心から高輝度画素の外側に向かう方向、高輝度画素から光学中心に向かう方向などに多く発生し、その傾向は、撮像する光学系により異なる。以上のような特徴を踏まえて、本発明はパープルフリンジを軽減する画像処理方法を提供する。なおここで、高輝度画素とは画像において飽和している画素とし、以降では、高輝度画素のことを白とび画素と呼ぶ。
【0047】
なお、前述したように、輝度レベルにおける飽和状態としての白とびが起こっているハイコントラストのエッジ部分に発生するレンズ収差による偽色の代表的な現象をパープルフリンジと呼ぶが、偽色の色は紫に限定されるものではなく、例えば緑がかった色となる場合などもある。以下の実施例では、紫色の偽色を生じた例として説明するが、本発明は、紫色に限らず、白とび近傍に発生する任意の色を有する偽色の補正処理に適用可能である。
【0048】
図2は、本実施例を表すフローチャートである。まず、処理全体の概略を説明し、各処理の詳細については後述する。ステップS101は、色空間変換処理であり、入力画像に対し、色空間の変換を施し輝度成分画像と色成分画像に分離する。次に、ステップS102は、白とび領域検出処理であり、補正対象の入力画像データ中から白とび部分を検出する。ステップS103は、偽色画素検出領域設定処理であり、白とびの周囲の偽色発生画素である紫画素の検索領域を設定する。さらに、ステップS104は、偽色画素検出処理であり、検索領域内にある紫色画素を検出する。ステップS105は、偽色画素補正処理であり、検出された紫色の画素の色成分を補正する。さらに、ステップS106は、色ぼかし処理(フィルタリング処理)であり、自然な結果を得るためのフィルタリング処理を施す、最後に、ステップS107が色空間逆変換処理であり、補正結果の輝度成分画像、色成分画像を変換し、RGBのカラー画像として、結果画像を出力する。
【0049】
入力画像は、例えば図1に示す撮像部を持つシステムにおいて撮像部で撮影された画像データであり、デジタルデータとしてデジタル信号処理部(DSP)106に入力されたデータである。なお、前述したように、入力画像データは、記憶媒体に格納された画像データや、ネットワーク経由で他の機器から入力するデータであってもよい。
【0050】
なお、本実施例では、処理対象となる入力画像をRGBinとする。RGBinは、各画素にカラー情報を持つ画像であり、カメラの固体撮像素子から出力されるデータに対し、デモザイク処理ならびにホワイトバランス処理などを施したものである。なお、処理対象となる入力画像をRGBinは、図3に示すように、入力画像RGBinのx方向の画素数(幅)をw、y方向の画素数(高さ)をhとする。以下、各ステップの詳細について説明する。
【0051】
まず、ステップS101の色空間変換処理は、入力画像RGBinを変換し、輝度成分画像Linと色成分画像Cinに分離する。つまりRGBカラーの入力画像を、輝度成分と色成分を別々に持つ色空間データに変換する。変換データの色空間としては、例えばYCbCrやCIE Lなどが適用可能である。
【0052】
次に、ステップS102の白とび領域検出処理において、変換された画像データに基づく白とび領域検出処理(白とびマスク算出)を実行する。すなわち画像データから白とび画素を検出し、2値画像である白とびマスクSを生成する。図4を参照して、ステップS102において実行する白とび画素検出処理の詳細について説明する。
【0053】
ステップS201、S202において、補正対象画像データの検査対象画素位置の初期設定を実行する。初期設定として検査対象画素位置をx=0、y=0として設定する。ステップS203において、輝度成分画像Linの各画素(x,y)について、輝度があらかじめ定められた閾値以上かどうか判別し、閾値以上ならばステップS204に進み、白とびマスクS(x,y)をtrueとし、閾値以下であれば、ステップS205に進み、白とびマスクS(x,y)をfalseとする。
【0054】
ステップS206では、画素位置:xの更新を実行し、ステップS207においてxが最大値(x=w)に達しているか否かを判定し、達していない場合は、ステップS203以下を繰り返し実行する。ステップS207においてxが最大値(x=w)に達している場合は、ステップS208に進み、画素位置:yの更新を実行し、ステップS209においてyが最大値(y=h)に達しているか否かを判定し、達していない場合は、ステップS202以下を繰り返し実行する。全ての画素(x=0〜w,y=0〜h)に対する処理が終了すると、白とびマスクの生成が終了する。
【0055】
この結果、各画素位置において、閾値より大きい輝度レベルを持つ画素領域と、閾値以下の輝度領域を持つ画素領域とを区分した白とびマスクが生成される。(暗)0〜255(明)の輝度レベルが設定されている場合、閾値は、例えば250程度に設定され、250以上の輝度レベルを持つ画素を白とび発生画素として抽出し、これらの画素のみを区別可能とした白とびマスクが生成される。
【0056】
上述の処理によって図2のステップS102が終了し、次に、ステップS103の偽色画素検出領域設定処理を実行する。この処理において、白とび部分周囲の偽色発生部検索領域設定(Dilate)処理を実行する。ここでは、白とび部分周囲の偽色発生部検索領域を区別するためのマスクP、すなわち、白とび部分周囲における紫画素検索領域を表すマスクPを生成する。なお、Pは2値のマスク画像である。
【0057】
図5を参照して、ステップS103の偽色発生部検索領域設定処理の詳細について説明する。まずステップS301において、偽色領域マスクPの全画素をfalseに初期化する。次に、ステップS302,S303において、画素位置の初期設定を実行する。初期設定として画素位置をx=0、y=0として設定する。
【0058】
画素位置設定の後、ステップS304において、設定画素位置における白とびマスクSの画素値を判別する。設定画素位置(x,y)において、白とびマスクS(x,y)=falseであれば、ステップS314へ進み、次の画素に対する処理に移る。もし、S(x,y)=trueであれば、ステップS305へ進む。画素位置(x,y)において、白とびマスクS(x,y)=falseであるとは、画素位置(x,y)の画素値が白とび画素ではないことを意味し、画素位置(x,y)において、白とびマスクS(x,y)=trueであるとは、画素位置(x,y)の画素値が白とび画素であることを意味する。
【0059】
画素位置(x,y)において、白とびマスクS(x,y)=trueである場合、ステップS305において、白とび画素(x,y)の周囲において偽色を発生する可能性がある範囲を算出する。前述の通り、パープルフリンジは、白とび部分の周囲に発生し、光学系の種類、絞り・焦点距離の設定、さらに高輝度画素と周囲の画素の輝度差によって発生する可能性のある範囲が変わる。また、画像上での光学中心からの距離によっても、発生する範囲が変化する。光学系の種類や設定は、撮影時に情報を保存しておくことにより、画像処理の際に用いることができる。また、白とび部分と光学中心部分の位置関係は、容易に算出することができる。
【0060】
本実施例では、例えば撮像システムの光学系の特性を踏まえ、画像領域に対応した偽色画素検出領域を設定した例えばルックアップテーブル(LUT)など、あらかじめ設定された偽色画素検出領域算定情報を適用する。例えば、ルックアップテーブル(LUT)は、画像上での光学中心から白とび画素(x,y)までの距離と、画像データの撮影時の絞り、焦点距離情報とを入力パラメータとして、偽色画素検出領域情報を出力可能な構成を持つ。
【0061】
画像データの撮影時の絞り、焦点距離情報は画像データの属性情報から取得し、画像上での光学中心から白とび画素(x,y)までの距離は、本フローにおいて検査対象として設定された画素位置情報が適用される。
【0062】
なお、画像データの撮影時の絞り、焦点距離情報等の属性情報が取得できない場合は、画像上での光学中心から白とび画素(x,y)までの距離のみに基づいて偽色画素検出領域を決定する構成としてもよく、また、光学中心から白とび画素(x,y)までの距離等の情報についても適用することなく、白とび画素(x,y)の周囲の一定領域を偽色画素検出領域として一律に設定する構成としてもよい。
【0063】
ステップS305では、白とび画素(x,y)の周囲の偽色画素検出領域の範囲を、(x,x,y,y)の4個のスカラー値として算出する。これは、図6に示すように、白とび画素(x,y)201の周囲においてx〜x,y〜yによって規定される矩形領域を、白とび画素(x,y)の周囲に存在する偽色画素検出領域202とするものである。なお、図6において点線の画素203は、注目白とび画素(x,y)201以外の白とび画素203である。
【0064】
次に、算出した偽色画素検出領域(x,x,y,y)について、i=x,j=yを起点として設定(S306,S307)し、ステップS308〜S312において、偽色画素検出領域(x,x,y,y)内の各画素について白とびマスクS(i,j)の値がtrueかfalseかの判別を行う。図6に示す偽色画素検出領域202内の構成画素について、順次、白とびマスクの値がtrueかfalseかの判別を行う。図6において、注目白とび画素(x,y)201と白とび画素203については、白とびマスクS(i,j)=trueとなる。
【0065】
ステップS308において、白とびマスクS(i,j)=trueと判定した場合は、ステップS310に進み、次の画素の処理を行う。白とびマスクS(i,j)=falseの場合は、ステップS309に進み、偽色領域マスクP(i,j)の値をtrueに設定する。その後、ステップS310に進み、次の画素に対する処理を行う。ステップS310〜S313は、iおよびjの値の更新処理および最大値i=x、j=yであるか否かの判定処理である。順次iおよびjの値の更新を行いながら、特定画素(x,y)の周囲に設定した偽色領域マスクP(i,j)の値を決定する。
【0066】
偽色領域マスクP(i,j)=trueは、偽色画素検出領域に属し、白とび画素ではない画素であり、偽色領域マスクP(i,j)=falseは、偽色画素検出領域に属さないか、または白とび画素である画素に対応する。
【0067】
ステップS313において、偽色画素検出領域(x,x,y,y)のすべての画素(i,j)に対して処理が完了したと判別されたら、ステップS314に進む。ステップS314〜S317は、xおよびyの値の更新処理および最大値x=w、y=hであるか否かの判定処理である。順次xおよびyの値の更新を行いながら、処理対象画像(x=0〜w,y=0〜h)の全画素について偽色領域マスクP(i,j)の値を決定し、偽色領域マスクP(i,j)を生成する。画像中のすべての画素(x,y)が処理されたと判別されると、図2のステップS103の偽色画素検出領域設定処理は終了する。
【0068】
次の処理は、図2のステップS104の偽色画素検出処理である。ステップS103では、白とび周囲の偽色、すなわちパープルフリンジが存在する可能性のある画像中の領域を偽色領域マスクPとして算出したが、次のステップS104においては、実際にパープルフリンジであると思われる画素を検出する処理を行う。すなわち、偽色領域マスクP=trueの領域の画素を対象として、実際にパープルフリンジであると思われる画素を検出する。
【0069】
ステップS104では、ステップS103で計算された偽色領域マスクPを上書きする形で偽色領域マスクPを更新し、最終的に偽色と判定される画素のみを特定可能な偽色領域マスクPを生成する。ステップS104の偽色画素検出処理の詳細について、図7を参照して説明する。
【0070】
ステップS401、S402において、画像データの画素位置の初期設定を実行する。初期設定として画素位置をx=0、y=0として設定する。ステップS403では、画素位置(x,y)における偽色領域マスクPの値を判別する。P(x,y)=falseであった場合は、ステップS406に進む。P(x,y)=trueであった場合は、ステップS404へ進む。
【0071】
前述したように、偽色領域マスクP(i,j)=trueは、偽色画素検出領域に
属し、白とび画素ではない画素であり、偽色領域マスクP(i,j)=false
は、偽色画素検出領域に属さないか、または白とび画素である画素に対応する。
【0072】
画素位置(x,y)が、偽色領域マスクP(i,j)=true、すなわち、偽色画素検出領域に属し、白とび画素ではない画素である場合は、ステップS404において、位置(x,y)における色成分画像Cinの色が、偽色対応色であるか否かを判定する。例えばパープルフリンジの紫色であるかどうかを判別する。
【0073】
色成分画像Cin(x,y)が偽色対応色、例えば紫色かどうかの判別方法は、変換した色空間によって異なる。例えば色空間としてCIE Lを用いた場合の、判別方法の一例を図8を参照して説明する。色成分は、a成分,b成分を用いて判別される。a成分の値が、増えれば赤(Red)、減れば緑色(Green)に近づき、b成分の値が増えれば黄色(Yellow)、減れば青色(Blue)に近づくような特徴を持っている。したがって、(a,b)が第4象限に存在する場合、紫色(Purple)に近い色を持つ。紫色かどうか判別するには、ベクトル(a,b)がa軸となす角度αなどを使って判別する。
【0074】
偽色として判定する紫色の対象となる角度の範囲などはパラメータとして適宜設定する。あるいは予め設定された値を適用する。なお、偽色(パープルフリンジ)部分画素の彩度は大きい傾向がある。したがって、前記の条件を満たしかつ、色成分Cinの彩度があらかじめ設定した閾値以上である場合だけを、偽色(パープルフリンジ)であると判定する設定としてもよい。
【0075】
色成分画像Cin(x,y)が偽色対応色、例えば紫色かどうかの判別方法は、変換した色空間によって異なる。次に、色空間としてYCbCrを用いた場合の処理について説明する。この場合、色成分は、Cb成分,Cr成分を用いて判別される。YCbCr空間では、Cb=128、Cr=128が無彩色を表わすので、Cb、Crでなされる色を(Cb―128、Cr−128)で表わす。たとえば、(Cb―128、Cr−128)=(a×cosθ,a×sinθ)とした場合のθで表わされる角度を、色相として用いる。色成分画像Cin(x,y)が偽色対応色かどうかの判定方法は、たとえば、このθの角度が、あらかじめ指定された範囲内に入っているかどうかにより判定することができる。
【0076】
in(x,y)が、予め指定された色相範囲、すなわちパープルフリンジ(PF)等の偽色に相当する色相範囲に入る色相であるか否かをYCbCrを用いた構成において判定する処理について、図9を参照して説明する。図9は、色空間におけるパープルフリンジ(PF)の色相範囲をあらわした図である。色空間の一例としてYCbCr空間を用いる場合、色情報に相当するCbCrを2次元にプロットしたのが図9である。横軸がCb、縦軸がCrの値を示し、原点250はCb=128,Cr=128に相当する色である。
【0077】
パープルフリンジ(PF)に相当する色相範囲を指定する方法として、2つの色相の間に入っているか否かを判定する方法を用いる。パープルフリンジ(PF)は紫色を有し、この特定の色相範囲を図9に示すCbCr2次元座標空間で設定する。図に示す色相ライン251と、色相ライン252とによって挟まれる領域が、パープルフリンジ(PF)に相当する色相範囲253を示す領域として設定される。
【0078】
in(x,y)が、図9に示す色相範囲253に含まれるか否かによって、Cin(x,y)が偽色対応色かどうかを判定することができる。
【0079】
偽色として判定する紫色の対象となる角度の範囲などはパラメータとして適宜設定する。あるいは予め設定された値を適用する。なお、偽色(パープルフリンジ)部分画素の彩度は大きい傾向がある。したがって、前記の条件を満たしかつ、色成分Cinの彩度があらかじめ設定した閾値以上である場合だけを、偽色(パープルフリンジ)であると判定する設定としてもよい。このようにして、Cin(x,y)が偽色(パープルフリンジ)画素と判定された場合はステップS406へ、偽色(パープルフリンジ)ではないと判定された場合はステップS405へ進む。
【0080】
ステップS405においては、偽色領域マスクP(x,y)をfalseに設定し、ステップS406に進む。すなわち、先のステップS103(図2)の処理においては、偽色の可能性があるとして偽色領域マスクP(x,y)=trueであったものを、偽色でないとの最終判断に基づいて、偽色領域マスクP(x,y)=falseに変更(更新)するものである。
【0081】
すなわち、図7において説明している処理では、先のステップS103(図2)の処理において偽色の可能性のある画素から、色判定によって最終的に偽色であると判定される画素のみを選別し、偽色領域マスクP(x,y)を更新する。
【0082】
ステップS406〜S409は、xおよびyの値の更新処理および最大値x=w、y=hであるか否かの判定処理である。順次xおよびyの値の更新を行いながら、処理対象画像(x=0〜w,y=0〜h)の全画素について偽色領域マスクP(i,j)の値を決定し、偽色領域マスクP(i,j)を生成する。画像中のすべての画素(x,y)が処理されたと判別されると、図2のステップS104の偽色画素検出処理は終了する。
【0083】
次に、図2に示すステップS105の偽色画素補正処理について説明する。ステップS104では、上述したように偽色(パープルフリンジ)であると判別された画素を識別する偽色領域マスクPが生成された。次のステップS105では、偽色(パープルフリンジ)であると判別された画素の色を、その周囲の画素の画素値に基づく穴埋め繰り返し処理によって補間する処理を実行する。
【0084】
図10(A),図10(B)は、図2に示すステップS105の偽色画素補正処理を説明するための模式図である。図10(A)に示されるように、ステップS104までの処理ですべての画素は、「白とび画素301」、「偽色(パープルフリンジ)画素302」、「白とびでもパープルフリンジでもないその他の画素303」のいずれかに分類される。
【0085】
穴埋め繰り返し処理の最初のステップでは、画像中の各画素をスキャンし、もし、偽色(パープルフリンジ)画素302(位置(x,y))が、白とびでもパープルフリンジでもないその他の画素303に隣接する場合、例えば周囲の8近傍画素にその他の画素303が存在する場合、隣接するその他の画素303の画素の色成分Cの平均値を新たな画素の色成分C(x,y)として設定する。
【0086】
このように、偽色(パープルフリンジ)画素302をその他の画素303によって画素値を設定する処理を、すべての画素に対して一回行うと、図10(B)のように、その他の画素303に隣接する偽色(パープルフリンジ)画素302の色成分が補間され、補間済み偽色(パープルフリンジ)画素304として設定される。
【0087】
さらに、次の穴埋め繰り返し処理では、その他の画素303または補間済み偽色(パープルフリンジ)画素304に隣接する偽色(パープルフリンジ)画素302の色成分を、その他の画素303と補間済み偽色(パープルフリンジ)画素304に基づいて同様に補間する。このような繰り返し処理を、固定の回数繰り返す。この処理によって、偽色(パープルフリンジ)画素302は、図10(B)の矢印320の方向に、順次補間済み偽色(パープルフリンジ)画素304として設定されることになる。このような繰り返し処理を、固定の回数繰り返した後でも、色成分が補間されない偽色(パープルフリンジ)画素302が存在する場合は、周りの画素からの色補間は不可能と判断し、それらの画素の色の彩度を一律に落とす処理を施す。
【0088】
このように、図2に示すステップS105の偽色画素補正処理は、ステップS104において、偽色(パープルフリンジ)と判定された画素の画素値を、周囲の白とび以外の画素に基づいて設定する処理、すなわち、穴埋め繰り返し処理である。この処理によって補間されない残存する偽色(パープルフリンジ)画素302については彩度低下処理を施す。
【0089】
ステップS105の偽色画素補正処理の詳細について、図11および図12の処理フローを参照して説明する。図11および図12の処理フローにおいて、図11に示すステップS501からS515までは、偽色(パープルフリンジ)画素の色成分の穴埋め処理であり、図12に示すステップS516からS523までの処理は、穴埋めできなかった画素の彩度を低下させる処理である。
【0090】
図11のフローから順に説明する。まず、ステップS501において、図2のステップS104の偽色画素検出処理において生成した偽色領域マスクPの内容を、同等の大きさの2値マスクP"にコピーする。例えば、
偽色領域マスクP=true→2値マスクP"=true(1)
偽色領域マスクP=false→2値マスクP"=false(0)
である。
【0091】
ステップS502においては、穴埋め処理の繰り返し回数を示す変数tの値を0にセットする。ステップS503においては、2値マスクP"の値を、また別の同等の大きさの2値マスクP'にコピーする。なお、これらのマスクP"、P'は、繰り返し処理により減ってゆく偽色(パープルフリンジ)画素302の位置を保存するために用いる一時的なマスク画像である。
【0092】
次に、ステップS504、S505において、処理対象画素位置座標を表す変数x,yの初期化を行い、x=0,y=0とする。次のステップS506では、2値マスクP'(x,y)の値を判別する。2値マスクP'(x,y)=falseである場合、すなわち、処理対象画素が偽色画素でない場合、ステップS510に進む。2値マスクP'(x,y)=trueである場合、すなわち、処理対象画素が偽色画素である場合、ステップS507へ進む。
【0093】
ステップS507においては、画素(x,y)に隣接する画素に、2値マスクP'=falseかつ、白とびマスクS=falseの画素があるかどうか判別する。すなわち、偽色画素でも白とび画素でもない画素があるかどうか判別する。このような条件を満足する画素が画素(x,y)に隣接する画素に存在しないと判別された場合は、ステップS510に進む。
【0094】
偽色画素でも白とび画素でもない画素が、画素(x,y)に隣接する画素として存在すると判別された場合は、ステップS508へ進む。ステップS508では、2値マスクP'=falseかつ、白とびマスクS=false、すなわち偽色画素でも白とび画素でもない画素であり、かつ画素(x,y)に隣接している1以上の画素の色成分Cの平均値を算出し、座標(x,y)の色成分C(x,y)に設定する。すなわち、画素(x,y)の画素値として設定する。この補間処理によっては、図10(b)の補間済み偽色(パープルフリンジ)画素304が設定される。
【0095】
この処理の後、ステップS509へ進む。ステップS509においては、2値マスクP"(x,y)の値をfalseとする。すなわち、偽色画素から、補間済み偽色画素へ変更された画素を2値マスクP"(x,y)において、偽色画素でない画素として識別可能な設定とする。
【0096】
ステップS510〜S513は、処理画素の座標更新および最大値判定処理であり、ステップS510においては、x座標の値を1増やす。次のステップS511において、x>w−1(wは入力画像の幅)であるかどうかの判別をする。x>w−1であると判定された場合はステップS512へ進み、x>w−1でないと判定された場合は、ステップS506へ進む。
【0097】
ステップS512では、y座標を1増やし、次のステップS513で、y座標の最大値であるh−1(hは入力画像の高さ)との比較を行う。y>h−1である場合は、ステップS514へ進み、y>h−1でないと判定した場合はステップS505へ進む。
【0098】
ステップS514では、繰り返し処理の回数を表すtを1増やす。ステップS515においては、繰り返し回数tが、あらかじめ定めた値tmax以上かどうかを判別する。また同時にマスク画像P"の内trueの値を持つ画素の個数が0かどうかを判別する。すなわち、穴埋め補間処理によって補間が終了していない偽色画素の個数が0になったか否かを判定する。以上の2つの条件のいずれかが真であると判別された場合は、ステップS516に進む。またいずれも偽と判断された場合は、ステップS503に戻り、再び穴埋め処理を行う。
【0099】
ステップS515において、繰り返し回数tが、あらかじめ定めた値tmax以上となったか、あるいは、穴埋め補間処理によって補間が終了していない偽色画素の個数が0になったか、いずれかが真と判定されると、図12のステップS516に進む。
【0100】
ステップS516、S517においては、処理対象画素の座標を表す変数x,yの初期化を行い、x=0,y=0とする。次のステップS518では、2値マスクP"の(x,y)における値がtrueかどうかを判別する。すなわち、処理対象画素が偽色画素であるかどうかを判別する。2値マスクP"(x,y)=trueである場合、すなわち偽色画素である場合は、ステップS519に進み、2値マスクP"(x,y)=falseである場合、すなわち偽色画素でない場合は、ステップS520に進む。
【0101】
処理対象画素が偽色画素である場合は、ステップS519において、画素(x,y)の色成分C(x,y)の彩度を低下させる彩度低下処理を施す。例えばL表色系を用いている場合は、a,bの各成分の値に対して、1.0以下0.0以上の定数を掛け合わせることにより、一律に彩度を減少させることが出来る。ステップS519の彩度低下処理を終了すると、ステップS520に進む。ステップS520においては、x座標の値を1増やす。次のステップS521において、x>w−1であるかどうかの判別をする。x>w−1であると判別されればステップS522へ、x>w−1でないと判別されればステップS518へ進み、x座標を更新した隣接画素について同様の処理を繰り返す。
【0102】
ステップS521において、x>w−1であると判定された場合は、x座標の最大値に達しており、ステップS522へ進み、y座標を1増やし、次のステップS523で、y座標の最大値であるh−1との比較を行う。y>h−1でない場合はステップS517へ進み、更新したy座標を持つ画素について同様の処理を繰り返す。ステップS523において、y>h−1であると判定すると、偽色画素補正処理を終了する。以上の処理によって図2に示すステップS105の偽色画素補正処理を終了する。
【0103】
ステップS105の偽色画素補正処理を終了すると、次に、ステップS106の色ぼかし処理(フィルタリング)を実行する。ステップS105では、穴埋め処理の繰り返しにより、偽色(パープルフリンジ)画素の色を補間し、穴埋めし切れなかった偽色(パープルフリンジ)画素については、彩度を低下させる処理を行った。しかし、ステップS105の処理を施した偽色(パープルフリンジ)部分には、色が比較的急に変化する部分が発生してしまう可能性がある。ステップS106の色ぼかし処理(フィルタリング)では、この急な色変化を緩和するために、ぼかしフィルタをかける処理を行う。
【0104】
ステップS106の色ぼかし処理(フィルタリング)の詳細について、図13の処理フローを参照して説明する。まず、ステップS601において、色ぼかし処理(フィルタリング)の繰り返し回数を示す変数tの値を0にセットする。次に、ステップS602では、先のステップS105の偽色画素補正処理で更新された色成分画像Cを、同等の大きさの色成分画像C'にコピーする。
【0105】
次に、ステップS603、S604において、処理対象画素の座標を表す変数x,yの初期化を行い、x=0,y=0とする。次のステップS605では、偽色領域マスクP(x,y)の値を判別する。偽色領域マスクP(x,y)=falseである場合、すなわち、偽色画素ではない場合は、ステップS607に進む。偽色領域マスクP(x,y)=true、すなわち偽色画素である場合は、ステップS606へ進む。
【0106】
なお、偽色領域マスクP(x,y)は、先のステップS104の偽色画素検出処理(図7の処理フローに対応)によって色(画素値)判定に基づいて偽色と判定された画素をtrueとして設定したマスクであり、先のステップS105の偽色画素補正処理によって補正された偽色画素領域についても、trueの値を維持しているマスクデータである。この色ぼかし処理(フィルタリング)処理に偽色領域マスクP(x,y)を適用するため、ステップS105の偽色画素補正処理においては、偽色領域マスクP(x,y)のコピーマスクP"を適用した。
【0107】
図13の色ぼかし処理(フィルタリング)の処理についての説明を続ける。ステップS605において、偽色領域マスクP(x,y)=true、すなわち偽色画素である場合は、ステップS606へ進み、ステップS606では、色成分にぼかしフィルタを適用する。これは、色成分画像C'における画素(x,y)の色成分を示す画素値C(x,y)の値を周囲の画素の色成分を示す画素値Cに基づいて更新する処理である。例えば、処理対象画素(x,y)と、その周囲の8画素を合わせた9画素の色成分C'の平均値を求め、これを処理対象画素(x,y)の更新画素値C(x,y)として設定する移動平均フィルタを施す。
【0108】
ステップS606のぼかしフィルタ適用処理を終了すると、ステップS607〜S610において処理対象画素の座標更新および最大値確認を行なう。ステップS607においては、x座標の値を1増やす。次のステップS608において、x>w−1であるかどうかの判別をする。x>w−1であると判定された場合はステップS608へ、x>w−1でないと判定された場合はステップS604へ戻り、x座標を更新した画素について同様の処理を実行し必要に応じたぼかし処理を実行する。
【0109】
ステップS608において、x>w−1であると判定された場合はステップS609に進み、y座標を1増やし、次のステップS610で、y座標の最大値であるh−1との比較を行う。y>h−1でないと判定された場合はステップS603へ進み、更新したy座標を持つ画素について同様の処理を実行し必要に応じたぼかし処理を実行する。
【0110】
ステップS610において、y>h−1であると判定されると、ステップS611へ進む。ステップS611では、色ぼかし処理(フィルタリング)の繰り返し回数tを1増やす処理をし、次のステップS612で、繰り返し回数tがあらかじめ定めた閾値t'max以上かどうかを判別する。t<t'maxである場合は、ステップS602へ戻り、t≧t'maxである場合は、色ぼかし処理(フィルタリング)を終了する。
【0111】
以上の処理によって、図2に示すステップS106の色ぼかし処理(フィルタリング)が終了する。ステップS106の色ぼかし処理(フィルタリング)が終了すると、次のステップS107で、オリジナルの画像の輝度成分画像Linと、上述した処理の結果である色成分画像Cを変換し、RGBのカラー画像として結果画像RGBoutを出力し、全体の処理が終了する。
【0112】
なお、上述の処理例では図7のステップS404において偽色を紫色として判別するように設定した例を説明したが、前述したように、偽色の色は紫に限定されるものではなく、例えば緑がかった色となる場合などもある。このような場合は、ステップS404において偽色を異なる色として設定し、設定した色を持つ画素を偽色として判別する偽色領域マスクP(x,y)を構成することで、任意の色に対応した処理が可能である。
【0113】
また、複数の異なる色、例えば紫と緑色などの複数の色について補正する場合は、図2に示す処理を、異なる色を対象として複数回、繰り返して実行するか、あるいは、偽色領域マスクP(x,y)を、複数の色、例えば紫および緑の画素値をtrueとして設定したマスクとして構成として上述の処理を実行することで、複数の色を持つ偽色に対する補正を行なうことが可能となる。
【0114】
図14に、上述した処理を実行する本発明の画像処理装置におけるデジタル信号処理部(DSP)(図1のDSP106に相当)の機能構成を示すブロック図を示す。図14のブロック図を参照して、図2に示すフローチャートと対比しながらデジタル信号処理部(DSP)106の実行する処理について説明する。
【0115】
デジタル信号処理部(DSP)106は、機能的には、図14に示すように、色変換部401、白とび検出部402、偽色画素検出領域設定部403、偽色(パープルフリンジ)検出部404、画素値補正部410、色逆変換部405を有する。画素値補正部410は、偽色(パープルフリンジ)穴埋め補間部411、偽色(パープルフリンジ)ぼかし処理部412から構成される。
【0116】
デジタル信号処理部(DSP)106は、入力画像フレームメモリ420から画像データ(RGBin)を入力し、色変換処理部401において、RGB入力画像の色空間を変換し、輝度成分と色成分に分離する。色変換処理部401において実行する処理は、図2に示すフローチャートのステップS101に相当する処理であり、入力画像RGBinを変換し、輝度成分画像Linと色成分画像Cinに分離する。つまりRGBカラーの入力画像を、輝度成分と色成分を別々に持つ色空間に変換する。色空間としてはYCbCrやCIE Lなどを適用することが出来る。
【0117】
次に、白とび検出部402は、色変換処理部401において変換されたデータに基づいて、白とびを起こしている画素部分の検出を実行する。この処理は、図2に示すフローチャートのステップS102に相当する処理であり、その詳細は、図4のフローチャートを参照して説明したように予め定めた輝度閾値以上の輝度を有する画素を白とび画素として検出し、白とび画素を識別する白とびマスクS(x,y)を生成する処理を実行する。
【0118】
偽色画素検出領域設定部403は、白とび検出部402において検出された白とび画素の周囲部分に偽色画素の検出領域を設定する処理を行う。この領域設定処理は、白とびマスクS(x,y)=trueである白とび画素(x,y)の周囲において偽色を発生する可能性がある範囲を算出する処理であり、あらかじめ設定された偽色画素検出領域算定情報を適用する。この処理は、図2に示すフローチャートのステップS103に相当する処理であり、図5に示す処理フローに従って実行される処理である。
【0119】
偽色画素検出領域設定部403は、例えば、画像上での光学中心から白とび画素(x,y)までの距離と、画像データの撮影時の絞り、焦点距離情報に対応付けられた偽色画素検出領域情報を持つルックアップテーブル(LUT)を適用して、各白とび画素(x,y)の周囲に偽色画素検出領域を設定する。なお、画像データの撮影時の絞り、焦点距離情報等が存在しない場合は、画像上での光学中心から白とび画素(x,y)までの距離のみに基づいて、偽色画素検出領域を決定する構成としてもよく、また、光学中心から白とび画素(x,y)までの距離等の情報についても適用することなく、白とび画素(x,y)の周囲の一定領域を偽色画素検出領域として一律に設定する構成としてもよい。
【0120】
偽色画素検出領域設定部403は、先に図6を参照して説明したように、白とび画素(x,y)201の周囲の偽色画素検出領域の範囲を、(x,x,y,y)の4個のスカラー値として算出し、さらに、この領域において白とび画素を除去した偽色領域マスクPを生成する。
【0121】
偽色(パープルフリンジ)検出部404は、偽色画素検出領域設定部403の設定した偽色領域マスクPを適用し、さらに、各画素の色判定処理によって偽色(パープルフリンジ)と判断される画素を検出する処理を実行する。すなわち、偽色領域マスクPを更新し、補正対象となる偽色画素のみを識別可能な偽色領域マスクPを生成する。この処理は、図2に示すフローチャートのステップS104に相当する処理であり、図7に示す処理フローに従って実行される処理である。前述したように、偽色として認定すべき色の設定は任意であり、特定の色値を持つ紫のみを偽色として設定する構成や、緑、紫など複数の色を偽色として設定する構成などが可能である。
【0122】
偽色(パープルフリンジ)穴埋め補間部411は、偽色(パープルフリンジ)検出部404において偽色と認定された画素についての補正処理であり、図2に示すフローチャートのステップS105に相当する処理であり、図11、図12に示す処理フローに従って実行される処理である。なお、この画素値補正処理には、偽色(パープルフリンジ)と認定された画素について、周囲にある偽色および白とび画素以外の画素値に基づいて実行する穴埋め補間処理(図10、図11参照)と、所定回数の穴埋め補間処理によって補正できなかった偽色(パープルフリンジ)画素の彩度低下処理(図12参照)とが含まれる。
【0123】
偽色(パープルフリンジ)ぼかし処理部412は、偽色(パープルフリンジ)穴埋め補間部411の処理によって補正されたデータについてぼかし処理を実行する。図2に示すフローチャートのステップS106に相当する処理であり、図13に示す処理フローに従って実行される処理である。
【0124】
偽色(パープルフリンジ)ぼかし処理部412は、偽色(パープルフリンジ)検出部404において偽色と認定された画素を抽出し、色成分にぼかしフィルタを適用し、例えば、処理対象画素(x,y)と、その周囲の8画素を合わせた9画素の色成分の平均値を求め、これを処理対象画素(x,y)の更新画素値として設定する移動平均フィルタ処理を施す。
【0125】
色逆変換部405は、オリジナルの画像の輝度成分画像Linと、上述した処理の結果である色成分画像Cを変換し、RGBのカラー画像として結果画像RGBoutを出力する。
【0126】
本発明を、適用することにより、カメラで撮影した画像に起こる色収差によるパープルフリンジ等の偽色に対する適正な補正が可能となり、高品質な画像データの生成、出力を実現することができる。従来のカメラでは、パープルフリンジが発生するような状況で、レンズ絞りなどの設定を工夫しないと不自然な画像が撮影される可能性があったが、本発明の画像処理を適用することにより、撮影画像を、より自然に見えるように補正をすることが可能である。従って、撮影時にパープルフリンジが起こらないようにレンズの絞りや焦点距離などに注意を払う必要がなく、より高い自由度で撮影を行なうことが可能となる。
【0127】
[実施例2]
次に、本発明の実施例2の構成について説明する。実施例1において説明したように、図2のフローにおけるステップS103の偽色画素検出領域設定処理では、図5のフローを参照して詳細を説明したように、図5のステップS304において画素位置(x,y)の画素値が白とび画素である場合、ステップS305において白とび画素の周囲に偽色画素検出領域(x,x,y,y)を設定し、この偽色画素検出領域(x,x,y,y)において、偽色画素を検出する処理(図2のステップS104=図7のフロー)を実行する。
【0128】
上述の実施例1の処理では、白とび画素の周囲の偽色画素検出領域(x,x,y,y)の設定を、撮像システムの光学系の特性を踏まえ画像領域に対応した偽色画素検出領域を設定した例えばルックアップテーブル(LUT)など、あらかじめ設定された偽色画素検出領域算定情報を適用した処理によって行なう構成であった。
【0129】
撮影画像に含まれる白とび画素は、前述したように、高輝度画素、すなわち画像において飽和している画素であり、例えば0〜255の輝度値の設定可能な画像データであれば、250を超える画素はすべて白とび画素として判定されることになり、その白とび画素の周囲には、ルックアップテーブルに基づいて偽色画素検出領域(x,x,y,y)が設定されることになる。しかし、撮影画像上に発生する白とび画素、すなわち高輝度の画素は、すべてが同じ明るさの被写体に基づいて発生する白とびではなく、ある一定輝度以上の明るさの被写体であれば白とび画素になってしまう。すなわち、被写体の明るさレベルがやや高いものから非常に高いものが一律に白とび画素として撮影画像には出現することになる。
【0130】
しかし、白とび画素の周囲に発生するパープルフリンジは、被写体の持つ明るさレベルの変移、すなわちエッジ部分の輝度差に応じてその発生領域が異なるという傾向がある。撮影画像上では同じ白とび画素であっても、その白とび画素と近傍画素との輝度レベル差に対応するエッジ部分の輝度差が大きい白とび画素は、パープルフリンジの発生領域は大きくなり、エッジ部分の輝度差が小さい白とび画素は、パープルフリンジの発生領域が小さくなる。従って、一般的には、被写体の持つ明るさレベル(実輝度)が高い白とび画素では、パープルフリンジの発生領域は小さくなり、被写体の明るさレベル(実輝度)が非常に高い白とび画素では発生領域は大きくなる傾向にある。
【0131】
従って、撮影画像データ上では同じ白とび画素であっても、実際の被写体の明るさのレベルに応じて偽色画素検出領域(x,x,y,y)を変更して設定することで、より確実で効率的な偽色画素の検出が実現されることになる。実施例2では、被写体の実際の明るさ(実輝度)を検出または推定し、この被写体実輝度に応じて偽色画素検出領域を設定する処理を行なう。
【0132】
前述したように、白とび画素と近傍画素との輝度レベル差に対応するエッジ部分の輝度差が大きい白とび画素は、パープルフリンジの発生領域は大きくなり、エッジ部分の輝度差が小さい白とび画素は、パープルフリンジの発生領域が小さくなる。従って、パープルフリンジの発生範囲を算出するためには、エッジ部分の輝度差を考慮する必要がある。そもそも、パープルフリンジが起こる原理は、光の波長により点像分布が異なることにより発生する。波長による点像分布の違いは、レンズの種類や焦点距離、絞りなどの設定や画像での位置により決まる。したがって、点像分布が光の波長により少しでも異なれば、理論的には輝度差があまりないエッジ部分でも偽色は発生するが、点像分布の違いが微小であるときは人に知覚できるほどの偽色は発生しない。しかし、波長による点像分布の違いが微小であっても、エッジの輝度差が非常に大きく高輝度部分が飽和してしまうような時には、微小な違いが拡大され、知覚できるような偽色が広範囲で発生する。したがって、パープルフリンジが発生する可能性のある範囲をより精密に算出するためには、レンズの種類、設定、画素位置のみならず、エッジ部分の輝度差を考慮する必要がある。
【0133】
本実施例は、このような問題を解決するものであり、高輝度画素の周囲に発生するパープルフリンジをより精密に検出し補正をする方法を提示する。なお、本実施例において、画像処理装置の構成は、実施例1と同様、図1に示す構成が適用可能である。また、全体処理シーケンスについても実施例1と同様、図2に示すフローチャートに従った処理として実行される。
【0134】
実施例2が実施例1と異なるのは、図2に示すフローのステップS103の偽色画素検出領域設定処理に対応する図5のフローのステップS305の処理である。この偽色画素検出領域(x,x,y,y)の設定処理が異なる。その他の処理、すなわち、実施例1における図2のフローのステップS103以外の処理については、実施例1と同様の処理となる。
【0135】
本実施例において、図5のフローのステップS305の偽色画素検出領域(x,x,y,y)設定処理は、被写体の明るさ(実輝度)に応じた最適な偽色画素検出領域を設定する処理として実行される。図15以下を参照して、本実施例における偽色画素検出領域の設定処理の詳細について説明する。
【0136】
図15を参照して偽色(パープルフリンジ)の発生する原理について説明する。図15(a)、(b)は、縦軸に被写体の明るさ(実輝度)、横軸に撮影画像データにおける画素位置を設定したグラフであり、(a)は、被写体の明るさ(実輝度)=500を含み、この部分が撮影画像上では飽和画素、すなわち白とび画素として現れる。図15(a)(b)の飽和閾値ライン510は、入射する光量に対する撮像素子の飽和閾値を表わしている。すなわち、飽和閾値ライン510以上の光量が入射しても、画像は飽和し、白飛び画素となることになる。
【0137】
図15(a)は、被写体の明るさ(実輝度)=500と明るさ(実輝度)=10の実輝度が急激に変化する隣接部を持つ被写体、すなわち実輝度500から50へ変化する被写体を撮影した場合を示し、図15(b)は、実輝度5000から50へ変化する被写体を撮影した場合を示している。図15(a)において、実輝度=500の部分は、飽和閾値ライン510以上であり、この部分が白とび画素となり、(b)においては、実輝度=5000の部分が飽和閾値ライン510以上であり、この部分が白とび画素となり、撮影画像上は、同じ白とび画素として表現される。
【0138】
図15(a)において、実線ライン(G)は撮像素子に入射する緑チャンネルの光の量を示す緑チャンネル光量ライン(G)511であり、点線ライン(B)は、撮像素子に入射する青チャンネルの光の量を示す青チャンネル光量ライン(B)512である。図15(b)においても、同様に、実線ライン(G)は撮像素子に入射する緑チャンネルの光の量を示す緑チャンネル光量ライン(G)521であり、点線ライン(B)は、撮像素子に入射する青チャンネルの光の量を示す青チャンネル光量ライン(B)522である。
【0139】
図15(a),(b)とも同じレンズを用いて撮影した状況を図示している。同じレンズを用いて撮影したので、緑チャンネル、青チャンネルのそれぞれの点像分布の形状は、いずれの場合も全く同等となる。しかし、図15(b)の被写体の実輝度と、図15(a)の被写体の実輝度とは異なり、図15(b)の被写体を撮影した場合の撮像素子に入射する光量は、図15(b)の被写体を撮影した場合の撮像素子に入射する光量よりはるかに大きくなる。
【0140】
入射光量が多い場合、撮像画像では緑と青のレベル差が顕著になる。撮像画像における緑と青のレベル差の大きい部分においてパープルフリンジが発生することになるので、図15(a)では、白とび画素の右のおよそ10画素部分がパープルフリンジの発生する可能性が高い部分となり、図15(b)では、白とび画素の右のおよそ20画素部分がパープルフリンジの発生する可能性が高い部分となる。なお、(a),(b)において高輝度部分にも緑と青のレベル差が顕著になる部分があるが、この部分は、撮影画像上では白とび画素として現れることになり、パープルフリンジ画素とはならない。
【0141】
このように、パープルフリンジは白とびを起こす高輝度部分周囲に発生することが多く、その発生範囲はエッジ部分の輝度差に依存する。図16を参照して、図15(a),(b)に対応する実輝度を持つ被写体の撮影画像上での輝度値およびパープルフリンジ発生領域を説明する。図16(a),(b)は、図15(a),(b)に対応する図であり、(a)は実輝度500から50へ変化する被写体、(b)は、実輝度5000から50へ変化する被写体に対応する。この2つの画像を同じレンズを適用して撮影した場合の画像データの輝度値分布は図16(c)に示す通りとなる。
【0142】
図16(c)は、縦軸が撮影画像データにおける輝度値(撮影画像輝度値)、横軸が画素位置を示している。画像データは、輝度値=255が飽和レベルの輝度値であり、実輝度=500、実輝度=5000いずれの場合も、撮影画像上では、輝度値≒255の飽和レベルの画素、すなわち白とび画素となる。白とび画素部分に隣接する部分にパープルフリンジが出現するが、このパープルフリンジ発生可能領域は、図16(a)に示す実輝度500を持つ被写体では、図16(c)に示す領域Aの10画素部分であり、図16(b)に示す実輝度5000を持つ被写体では、図16(c)に示す領域Bの20画素部分となる。
【0143】
このように、パープルフリンジは白とびを起こす高輝度部分周囲に発生し、発生範囲はエッジ部分の輝度差に依存する。エッジ部分の輝度差を算出するためには、白とびを起こしている部分の、飽和していない本来の輝度を求める必要がある。これを解決するための一つの方法として、低感度のセンサを持つ撮像素子を適用して撮影した画像を適用する方法がある。
【0144】
具体的には、同じ位置の画素に対して、感度の異なる複数のセンサが配置された撮像素子を用いる。例えば、通常の感度のセンサと、低感度のセンサの2種類のセンサを配し、撮影画像は、通常感度のセンサによって撮影された画像を適用し、通常感度のセンサによって撮影された画像中、白とび画素となった部分についての本来の被写体輝度(実輝度)を低感度のセンサによって撮影された画像によって求めるものである。低感度のセンサによって撮影された画像は、通常感度のセンサで白とびとなってしまう輝度の高い被写体でも、感度が低いため撮影画像上で白とびを起こすことなく、飽和値とならない輝度値を持つ画素として出力される。従って、例えば、図16(a)に示す実輝度500を持つ被写体と、図16(b)に示す実輝度5000を持つ被写体とでは、それぞれ異なる撮影画像輝度値を持つ画像データとして出力することができる。
【0145】
図17を参照して、低感度センサを適用した撮影画像によって、被写体の実輝度を推定する処理について説明する。図17(a),(b)は、図15(a),(b)、および図16(a),(b)に対応する図であり、(a)は実輝度500から50へ変化する被写体、(b)は、実輝度5000から50へ変化する被写体に対応する。この2つの画像を低感度センサを適用して撮影した場合の画像データの輝度値分布は、例えば、図17(p)、(q)に示す通りとなる。通常感度センサを適用して撮影した場合の画像データの輝度値分布は、いずれの場合も図17(r)に示す通りとなる。図17(r)は図16(c)と同様の図であり、実輝度=500,5000いずれの場合も撮影画像輝度値は、ほぼ255すなわち白とび画素として出力されることになる。
【0146】
しかし、低感度センサを適用して撮影した場合の画像データの輝度値分布は、図17(p)、(q)に示すように、通常感度の撮影画像において白とびとなった画像部分が、白とび画素とならず、飽和画素値未満の輝度値を持った画素として出力される。図に示す例では、図17(a)の実輝度500を持つ被写体の画像データである図17(p)に示すデータでは、実輝度500の画像部分が、撮影画像輝度値=5の画像データとして出力され、図17(b)の実輝度5000を持つ被写体の画像データである図17(q)に示すデータでは、実輝度5000の画像部分が、撮影画像輝度値=50の画像データとして出力される。このように、低感度センサを適用して撮影した場合、入射光量が多く通常センサでは白とびとなってしまう部分でも、白とびとならず、飽和輝度値未満のレベル値を持つ画素として出力され、やや明るい被写体と非常に明るい被写体とを異なる輝度値を持つ画像データとして出力することができる。本実施例では、このような通常の撮影処理とは異なる条件で撮影した画像データを参照画像として適用し、通常の撮影画像における白とび画素の部分の被写体の実輝度を算出、推定して、その推定結果に基づいて偽色(パープルフリンジ)発生可能領域を設定する。
【0147】
なお、上述した例では、被写体の実輝度を算出するための参照画像を得るため低感度のセンサを適用した例を説明したが、その他の例として、例えばシャッタースピードを早くして暗い露出での撮影を行って参照画像を取得する構成としてもよい。通常の撮影画像、すなわち適正露出で撮影した画像において白とびが起こった場合にも、暗い露出での撮像結果では、白とびとならず、飽和輝度値未満の値を持つ画素値が出力される。従ってシャッタースピードを上げて撮影した画像を参照画像として適用することも可能である。たとえば適正露出における露光時間の30分の1程度の露光時間で撮影した画像を参照画像として使うことにより、適正露出で飽和してしまった画素に対応する被写体の実輝度を推定することができる。
【0148】
上述のように低感度センサでの撮影画像や、高速シャッタースピードで撮影した低露出条件の撮影画像を参照画像とし、通常撮影画像データにおける白とび画素に対応する部分の参照画像における輝度値に基づいて被写体の実輝度を推定し、推定した実輝度に基づいて最適な偽色(パープルフリンジ)画素検出領域を設定する。
【0149】
図18に、被写体実輝度(白とび画素の真の輝度)と、偽色(パープルフリンジ)発生可能範囲(白とび画素からの距離)との対応関係の一例を示す。図18に示すグラフは、図17の例に対応しており、被写体実輝度が500である場合、偽色(パープルフリンジ)発生可能範囲(白とび画素からの距離)は、白とび画素から10画素、被写体実輝度が5000である場合、偽色(パープルフリンジ)発生可能範囲(白とび画素からの距離)は、白とび画素から20画素であることを示している。なお、この図に示す例は一例であり、被写体実輝度と偽色(パープルフリンジ)発生可能範囲との対応については、撮像システムの光学系の特性を踏まえ、あらかじめ測定したデータを適用する。
【0150】
本実施例における偽色画素検出領域設定処理の手順について、図19のフローを参照して説明する。図19のフローは、先の実施例1で説明した図5のフローの一部である。ず5におけるステップS304〜S305の処理、すなわち、注目画素が白とび画素であるか否かを判定し、白とび画素である場合には、その周囲に偽色画素検出領域(x,x,y,y)を設定する処理である。実施例2では、この部分の処理が実施例1と異なる処理として実行される。
【0151】
図19のフローに従って本実施例2の処理シーケンスについて説明する。ステップS304は、実施例1と同様の処理であり、設定画素位置における白とびマスクSの画素値を判別する。設定画素位置(x,y)において、白とびマスクS(x,y)=falseであれば、ステップS314(図5参照)へ進み、次の画素に対する処理に移る。もし、S(x,y)=trueであれば、ステップS305aへ進む。画素位置(x,y)において、白とびマスクS(x,y)=falseであるとは、画素位置(x,y)の画素値が白とび画素ではないことを意味し、画素位置(x,y)において、白とびマスクS(x,y)=trueであるとは、画素位置(x,y)の画素値が白とび画素であることを意味する。
【0152】
画素位置(x,y)において、白とびマスクS(x,y)=trueである場合、ステップS305aにおいて、白とび画素位置(x,y)に対応する参照画像の画素の画素値を取得する。参照画像とは、例えば上述した低感度センサによる撮影画像、あるいは低露出条件での撮影例えば高速のシャッタースピードで適正露出以下の露出で撮影した画像である。この参照画像に基づいて、処理対象画像である通常撮影画像において白とびと判定された画素(x,y)に対応する参照画像の画素の画素値を取得する。
【0153】
その後ステップS305bにおいて、参照画像の画素の画素値に基づいてルックアップテーブル(LUT)を用いて偽色画素検出領域(x,y,x,y)を算出する。本実施例において適用するルックアップテーブル(LUT)のデータ構成例を図20に示す。図20に示すルックアップテーブル(LUT)は、「参照画素の輝度」と、「被写体の実輝度」と、「偽色(PF:パープルフリンジ)発生可能画素範囲」を対応付けたテーブル構成である。このテーブルは、先に図15〜図17を参照して説明した例に対応するテーブルとして示してある。
【0154】
例えば、参照画像における輝度が[5]である場合、被写体実輝度は[500]であり、その際の「偽色(PF:パープルフリンジ)発生可能画素範囲」は白とび画素から10画素の範囲であることを示している。同様に、参照画像における輝度が[50]である場合、被写体実輝度は[5000]であり、その際の「偽色(PF:パープルフリンジ)発生可能画素範囲」は白とび画素から20画素の範囲であることを示している。
【0155】
図19のステップS305bでは、例えば図20に示すテーブルから参照画像における輝度に対応して設定された「偽色(PF:パープルフリンジ)発生可能画素範囲」を求め、その結果に基づいて偽色(PF:パープルフリンジ)発生可能画素範囲を含む領域として、偽色画素検出領域(x,x,y,y)を算出する。
【0156】
なお、図20に示すテーブルでは、被写体の実輝度のデータを含む構成としたが、このデータは必須ではなく、通常撮影画像である処理対象画像の白とび画素に対応する参照画素の輝度に基づいて偽色画素検出領域(x,y,x,y)を算出できる設定であればよく、「参照画像の輝度」と、「偽色(PF:パープルフリンジ)発生可能画素範囲」、あるいは偽色画素検出領域(x,y,x,y)を対応付けたルックアップテーブル(LUT)として構成すればよい。
【0157】
図21、図22を参照して、上述した処理を実行する本実施例の画像処理装置におけるデジタル信号処理部(DSP)(図1のDSP106に相当)の機能構成について説明する。
【0158】
図21は、先の実施例1において図14を参照して説明したDSPの構成に対応する図であり、図22は、図21における偽色画素検出領域設定部403の構成を示す図である。図21に示すように、本実施例におけるデジタル信号処理部(DSP)は、実施例1と同様、色変換部401、白とび検出部402、偽色画素検出領域設定部403、偽色(パープルフリンジ)検出部404、画素値補正部410、色逆変換部405を有する。画素値補正部410は、偽色(パープルフリンジ)穴埋め補間部411、偽色(パープルフリンジ)ぼかし処理部412から構成される。
【0159】
デジタル信号処理部(DSP)106は、入力画像フレームメモリ420から画像データ(RGBin)を入力し、色変換処理部401において、RGB入力画像の色空間を変換し、輝度成分と色成分に分離する。色変換処理部401において実行する処理は、図2に示すフローチャートのステップS101に相当する処理であり、入力画像RGBinを変換し、輝度成分画像Linと色成分画像Cinに分離する。つまりRGBカラーの入力画像を、輝度成分と色成分を別々に持つ色空間に変換する。色空間としてはYCbCrやCIE Lなどを適用することが出来る。
【0160】
次に、白とび検出部402は、色変換処理部401において変換されたデータに基づいて、白とびを起こしている画素部分の検出を実行する。この処理は、図2に示すフローチャートのステップS102に相当する処理であり、その詳細は、図4のフローチャートを参照して説明したように予め定めた輝度閾値以上の輝度を有する画素を白とび画素として検出し、白とび画素を識別する白とびマスクS(x,y)を生成する処理を実行する。
【0161】
偽色画素検出領域設定部403は、白とび検出部402において検出された白とび画素の周囲部分に偽色画素の検出領域を設定する処理を行う。この領域設定処理は、白とびマスクS(x,y)=trueである白とび画素(x,y)の周囲において偽色を発生する可能性がある範囲を算出する処理であり、上述したように、参照画像を適用した最適な偽色画素検出領域設定処理を実行する。
【0162】
偽色画素検出領域設定部403の機能構成について、図22を参照して説明する。偽色画素検出領域設定部403は、図22に示すように、参照画像解析部711、ルックアップテーブル格納部712、偽色画素検出領域決定処理部713を有する。参照画像解析部711は、白とび検出部402から処理対象画像の白とび画素位置を取得し、白とび画素位置に対応する参照画像の画素の輝度値を取得する。参照画像は、処理対象画像と同一の被写体の撮影画像であるが、低感度センサによる撮影画像あるいは高速シャッタースピード設定などによる適正露出未満の撮影画像である。
【0163】
偽色画素検出領域決定処理部713は、参照画像解析部711から処理対象画像の白とび画素位置に対応する参照画像の画素の輝度値を入力し、この入力値に基づいてルックアップテーブル格納部712に格納されたルックアップテーブル(LUT)を参照して偽色画素検出領域を算出する。ルックアップテーブル(LUT)、例えば先に図20を参照して説明したように、「参照画像の輝度」と、「偽色(PF:パープルフリンジ)発生可能画素範囲」、あるいは偽色画素検出領域(x,y,x,y)を対応付けたルックアップテーブル(LUT)である。
【0164】
偽色画素検出領域決定処理部713では、処理対象画像の白とび画素位置に対応する参照画像の画素の輝度値に基づいて偽色画素検出領域(x,y,x,y)を決定する。偽色画素検出領域決定処理部713は、白とび画素(x,y)の周囲の偽色画素検出領域の範囲を、(x,x,y,y)の4個のスカラー値として算出し、さらに、この領域において白とび画素を除去した偽色領域マスクPを生成(図5、図19の処理フロー参照)する。この処理により、実際の被写体の輝度(実輝度)を考慮した偽色画素検出領域の設定が可能となり、最適な領域設定が実現される。図21に戻り、本実施例の処理についての説明を続ける。
【0165】
偽色(パープルフリンジ)検出部404は、偽色画素検出領域設定部403の設定した偽色領域マスクPを適用し、さらに、各画素の色判定処理によって偽色(パープルフリンジ)と判断される画素を検出する処理を実行する。すなわち、偽色領域マスクPを更新し、補正対象となる偽色画素のみを識別可能な偽色領域マスクPを生成する。この処理は、図2に示すフローチャートのステップS104に相当する処理であり、図7に示す処理フローに従って実行される処理である。前述したように、偽色として認定すべき色の設定は任意であり、特定の色値を持つ紫のみを偽色として設定する構成や、緑、紫など複数の色を偽色として設定する構成などが可能である。
【0166】
偽色(パープルフリンジ)穴埋め補間部411は、偽色(パープルフリンジ)検出部404において偽色と認定された画素についての補正処理であり、図2に示すフローチャートのステップS105に相当する処理であり、図11、図12に示す処理フローに従って実行される処理である。なお、この画素値補正処理には、偽色(パープルフリンジ)と認定された画素について、周囲にある偽色および白とび画素以外の画素値に基づいて実行する穴埋め補間処理(図10、図11参照)と、所定回数の穴埋め補間処理によって補正できなかった偽色(パープルフリンジ)画素の彩度低下処理(図12参照)とが含まれる。
【0167】
偽色(パープルフリンジ)ぼかし処理部412は、偽色(パープルフリンジ)穴埋め補間部411の処理によって補正されたデータについてぼかし処理を実行する。図2に示すフローチャートのステップS106に相当する処理であり、図13に示す処理フローに従って実行される処理である。
【0168】
偽色(パープルフリンジ)ぼかし処理部412は、偽色(パープルフリンジ)検出部404において偽色と認定された画素を抽出し、色成分にぼかしフィルタを適用し、例えば、処理対象画素(x,y)と、その周囲の8画素を合わせた9画素の色成分の平均値を求め、これを処理対象画素(x,y)の更新画素値として設定する移動平均フィルタ処理を施す。
【0169】
色逆変換部405は、オリジナルの画像の輝度成分画像Linと、上述した処理の結果である色成分画像Cを変換し、RGBのカラー画像として結果画像RGBoutを出力する。
【0170】
本実施例を適用することにより、カメラで撮影した画像に起こる色収差によるパープルフリンジ等の偽色に対する適正な補正が可能となり、高品質な画像データの生成、出力を実現することができる。
【0171】
特に、実施例2では、白とび画素に対応する被写体の実輝度を参照画像に基づいて推定し、被写体の実輝度に対応する偽色(パープルフリンジ)検出領域を設定して、設定領域内の偽色(パープルフリンジ)画素を検出して補正する構成であるので、設定される偽色(パープルフリンジ)検出領域が広すぎたり、狭すぎたりすることがなく、偽色(パープルフリンジ)の発生する可能性のある領域に一致する偽色(パープルフリンジ)検出領域の設定が可能となり、確実にかつ効率的に偽色(パープルフリンジ)画素を検出することができ、画像補正の精度が高まり、効率化が実現される。
【0172】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
【0173】
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【0174】
例えば、プログラムは記録媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
【0175】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【0176】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【産業上の利用可能性】
【0177】
以上、説明したように、本発明の構成によれば、画像データから白とび画素を検出し、検出した白とび画素の周囲に偽色画素検出領域を設定し、設定領域内において、パープルフリンジ等の偽色に対応する色を有する画素を検出し、検出画素を偽色画素として特定し、特定した偽色画素に対して周囲画素値に基づく補正処理を実行する構成としたので、白とび画素近傍に発生するパープルフリンジ等の偽色領域の効率的検出、部分的な画素値補正が可能となり、画像全体に対する影響を発生させることなく高品質な画像データの生成、出力が可能となる。
【0178】
本発明の構成によれば、カメラで撮影した画像に起こる色収差によるパープルフリンジ等の偽色に対する適正な補正が可能となり、高品質な画像データの生成、出力が実現される。従来のカメラでは、パープルフリンジが発生するような状況で、レンズ絞りなどの設定を工夫しないと不自然な画像が撮影される可能性があったが、本発明を適用することにより、撮影画像に含まれるパープルフリンジ等の偽色を効率的に抽出し補正することが可能であり高品質な画像を生成、出力することができる。従って、撮影時にパープルフリンジが起こらないようにレンズの絞りや焦点距離などに注意を払う必要がなく、より高い自由度で撮影を行なうことが可能となる。
【0179】
さらに、本発明の構成によれば、白とび画素に対応する被写体の実輝度を参照画像に基づいて推定し、被写体の実輝度に対応する偽色(パープルフリンジ)検出領域を設定して、設定領域内の偽色(パープルフリンジ)画素を検出して補正する構成であるので、設定される偽色(パープルフリンジ)検出領域が広すぎたり、狭すぎたりすることがなく、偽色(パープルフリンジ)の発生する可能性のある領域に一致する偽色(パープルフリンジ)検出領域の設定が可能となり、確実にかつ効率的に偽色(パープルフリンジ)画素を検出することができ、画像補正の精度が高まり、効率化が実現される。
【図面の簡単な説明】
【0180】
【図1】本発明の画像処理装置の構成を示す図である。
【図2】本発明の画像処理方法の全体処理シーケンスを説明するフローチャートである。
【図3】本発明の画像処理装置において補正対象となる画像データの構成について説明する図である。
【図4】本発明の画像処理において実行する白とび領域検出処理の詳細シーケンスを説明するフロー図である。
【図5】本発明の画像処理において実行する偽色画素検出領域設定処理の詳細シーケンスを説明するフロー図である。
【図6】本発明の画像処理において実行する偽色画素検出領域設定処理の処理例について説明する図である。
【図7】本発明の画像処理において実行する偽色画素検出処理の詳細シーケンスを説明するフロー図である。
【図8】本発明の画像処理において実行する偽色画素検出処理の処理例(CIE Lを用いた場合)について説明する図である。
【図9】本発明の画像処理において実行する偽色画素検出処理の処理例(YCbCrを用いた場合)について説明する図である。
【図10】本発明の画像処理において実行する偽色画素補正処理の処理例について説明する図である。
【図11】本発明の画像処理において実行する偽色画素補正処理の詳細シーケンスを説明するフロー図である。
【図12】本発明の画像処理において実行する偽色画素補正処理の詳細シーケンスを説明するフロー図である。
【図13】本発明の画像処理において実行する色ぼかし処理の詳細シーケンスを説明するフロー図である。
【図14】本発明の画像処理装置において実施例1に係る偽色補正を実行するデジタル信号処理部の機能構成を説明するブロック図である。
【図15】被写体の実際の輝度およびエッジ構成と、偽色(パープルフリンジ)の発生態様の関係について説明する図である。
【図16】被写体の実際の輝度およびエッジ構成と、撮影画像の輝度および偽色(パープルフリンジ)の発生について説明する図である。
【図17】被写体の実際の輝度を推定するため、例えば低感度センサを用いて取得される参照画像の輝度情報について説明する図である。
【図18】被写体の実際の輝度と偽色(パープルフリンジ)発生可能範囲との対応について説明する図である。
【図19】実施例2における偽色検出領域の設定処理手順を説明するフロー図である。
【図20】実施例2における偽色検出領域の設定処理において適用するルックアップテーブル(LUT)の構成例を示す図である。
【図21】本発明の画像処理装置において実施例2に係る偽色補正を実行するデジタル信号処理部の機能構成を説明するブロック図である。
【図22】本発明の画像処理装置において実施例2に係る偽色補正を実行するデジタル信号処理部の偽色画素検出領域設定部の構成を説明するブロック図である。
【符号の説明】
【0181】
101 レンズ
102 絞り
103 固体撮像素子
104 相関2重サンプリング回路
105 A/Dコンバータ
106 DSPブロック
107 タイミングジェネレータ
108 D/Aコンバータ
109 ビデオエンコーダ
110 ビデオモニタ
111 コーデック(CODEC)
112 メモリ
113 CPU
114 入力デバイス
115 フラッシュ制御装置
116 フラッシュ発光装置
201 白とび画素
202 偽色画素検出領域
203 白とび画素
250 原点
251,252 色相ライン
253 色相範囲
301 白とび画素
302 偽色(パープルフリンジ)画素
303 その他の画素
304 補間済み偽色(パープルフリンジ)画素
401 色変換部
402 白とび検出部
403 偽色画素検出領域設定部
404 偽色(パープルフリンジ)検出部
405 色逆変換部
410 画素値補正部
411 偽色(パープルフリンジ)穴埋め補間部
412 偽色(パープルフリンジ)ぼかし処理部
420 入力画像フレームメモリ
510 飽和閾値ライン
511 緑チャンネル光量ライン(G)
512 青チャンネル光量ライン(B)
521 緑チャンネル光量ライン(G)
522 青チャンネル光量ライン(B)
711 参照画像解析部
712 ルックアップテーブル格納部
713 偽色画素検出領域決定部

【特許請求の範囲】
【請求項1】
画像処理装置であり、
画像データから白とび画素を検出する白とび検出部と、
前記白とび検出部の検出した白とび画素の周囲に偽色画素検出領域を設定する偽色画素検出領域設定部と、
前記偽色画素検出領域設定部の設定した領域内において、偽色に対応する色を有する画素を偽色画素として特定する偽色検出部と、
前記偽色検出部の検出した偽色画素について、周囲画素値に基づく画素値補正処理を実行する画素値補正部と、
を有することを特徴とする画像処理装置。
【請求項2】
前記画素値補正部は、
偽色画素について、周囲画素値に基づく穴埋め補間処理を実行する穴埋め補間部と、
偽色画素について、色ぼかし処理を実行する色ぼかし処理部とを有する構成であることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記画素値補正部は、
偽色画素の周囲に存在する画素から偽色画素および白とび画素を除くその他の画素を選択し、選択画素に基づく穴埋め補間処理を実行する構成であることを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記偽色検出部は、
前記偽色画素検出領域設定部の設定した領域内において、あらかじめ設定された特定の色を有する画素を偽色画素として特定する処理を実行する構成であることを特徴とする請求項1に記載の画像処理装置。
【請求項5】
前記偽色は、パープルフリンジであり、
前記偽色検出部は、前記偽色画素検出領域設定部の設定した領域内の紫色の画素を偽色画素として特定する処理を実行する構成であることを特徴とする請求項1に記載の画像処理装置。
【請求項6】
偽色画素検出領域設定部は、
前記白とび検出部の検出した白とび画素の周囲に設定する偽色画素検出領域を、処理対象画像データの撮影時の絞り、焦点距離情報、光学中心から白とび画素(x,y)までの距離の少なくともいずれかのデータに基づいて決定する処理を実行する構成であることを特徴とする請求項1に記載の画像処理装置。
【請求項7】
前記白とび検出部は、
予め定めた閾値以上の輝度を有する画素を白とび画素として選択する処理を実行する構成であることを特徴とする請求項1に記載の画像処理装置。
【請求項8】
前記画像処理装置は、さらに、
入力画像データを輝度成分画像データと色成分画像データとに分離するデータ変換処理を実行する色変換部を有し、
前記色変換部において生成された変換データに基づく画素値補正処理を実行する構成であることを特徴とする請求項1に記載の画像処理装置。
【請求項9】
前記偽色画素検出領域設定部は、
処理対象画像と同一被写体の撮影画像であり、処理対象画像の白とび画素に対応する位置の画素が飽和輝度値を持たない参照画像を入力し、処理対象画像の白とび画素位置に対応する参照画像の対応画素の輝度値を取得する参照画像解析部と、
前記参照画像解析部において取得した前記参照画像の対応画素の輝度値に基づいて偽色画素検出領域を設定する偽色画素検出領域決定部と、
を有する構成であることを特徴とする請求項1に記載の画像処理装置。
【請求項10】
前記偽色画素検出領域決定部は、
参照画像の輝度値と、偽色発生可能画素範囲あるいは偽色画素検出領域を対応付けたルックアップテーブルを適用して偽色画素検出領域を設定する構成であることを特徴とする請求項9に記載の画像処理装置。
【請求項11】
前記偽色画素検出領域決定部は、
前記参照画像の対応画素の輝度値が高いほど広い偽色画素検出領域を設定する処理を実行する構成であることを特徴とする請求項9に記載の画像処理装置。
【請求項12】
前記偽色画素検出領域決定部は、
低感度センサを持つ撮像素子によって撮影した画像、または適正露出未満の低露出条件での撮影画像を参照画像として適用し、処理対象画像の白とび画素に対応する位置の参照画像の輝度値を取得する構成であることを特徴とする請求項9に記載の画像処理装置。
【請求項13】
画像処理方法であり、
画像データから白とび画素を検出する白とび検出ステップと、
前記白とび検出ステップにおいて検出した白とび画素の周囲に偽色画素検出領域を設定する偽色画素検出領域設定ステップと、
前記偽色画素検出領域設定ステップにおいて設定した領域内において、偽色に対応する色を有する画素を偽色画素として特定する偽色検出ステップと、
前記偽色検出ステップにおいて検出した偽色画素について、周囲画素値に基づく画素値補正処理を実行する画素値補正ステップと、
を有することを特徴とする画像処理方法。
【請求項14】
前記画素値補正ステップは、
偽色画素について、周囲画素値に基づく穴埋め補間処理を実行する穴埋め補間ステップと、
偽色画素について、色ぼかし処理を実行する色ぼかし処理ステップとを有することを特徴とする請求項13に記載の画像処理方法。
【請求項15】
前記画素値補正ステップは、
偽色画素の周囲に存在する画素から偽色画素および白とび画素を除くその他の画素を選択し、選択画素に基づく穴埋め補間処理を実行するステップであることを特徴とする請求項14に記載の画像処理方法。
【請求項16】
前記偽色検出ステップは、
前記偽色画素検出領域設定ステップにおいて設定した領域内において、あらかじめ設定された特定の色を有する画素を偽色画素として特定する処理を実行するステップであることを特徴とする請求項13に記載の画像処理方法。
【請求項17】
前記偽色は、パープルフリンジであり、
前記偽色検出ステップは、前記偽色画素検出領域設定ステップにおいて設定した領域内の紫色の画素を偽色画素として特定する処理を実行するステップであることを特徴とする請求項13に記載の画像処理方法。
【請求項18】
偽色画素検出領域設定ステップは、
前記白とび検出ステップにおいて検出した白とび画素の周囲に設定する偽色画素検出領域を、処理対象画像データの撮影時の絞り、焦点距離情報、光学中心から白とび画素(x,y)までの距離の少なくともいずれかのデータに基づいて決定する処理を実行するステップであることを特徴とする請求項13に記載の画像処理方法。
【請求項19】
前記白とび検出ステップは、
予め定めた閾値以上の輝度を有する画素を白とび画素として選択する処理を実行するステップであることを特徴とする請求項13に記載の画像処理方法。
【請求項20】
前記画像処理方法は、さらに、
入力画像データを輝度成分画像データと色成分画像データとに分離するデータ変換処理を実行する色変換ステップを有し、
前記色変換部において生成された変換データに基づく画素値補正処理を実行することを特徴とする請求項13に記載の画像処理方法。
【請求項21】
前記偽色画素検出領域設定ステップは、
処理対象画像と同一被写体の撮影画像であり、処理対象画像の白とび画素に対応する位置の画素が飽和輝度値を持たない参照画像を入力し、処理対象画像の白とび画素位置に対応する参照画像の対応画素の輝度値を取得する参照画像解析ステップと、
前記参照画像解析ステップにおいて取得した前記参照画像の対応画素の輝度値に基づいて偽色画素検出領域を設定する偽色画素検出領域決定ステップと、
を含むことを特徴とする請求項13に記載の画像処理方法。
【請求項22】
前記偽色画素検出領域決定ステップは、
参照画像の輝度値と、偽色発生可能画素範囲あるいは偽色画素検出領域を対応付けたルックアップテーブルを適用して偽色画素検出領域を設定するステップであることを特徴とする請求項21に記載の画像処理方法。
【請求項23】
前記偽色画素検出領域決定ステップは、
前記参照画像の対応画素の輝度値が高いほど広い偽色画素検出領域を設定する処理を実行するステップであることを特徴とする請求項21に記載の画像処理方法。
【請求項24】
前記偽色画素検出領域決定ステップは、
低感度センサを持つ撮像素子によって撮影した画像、または適正露出未満の低露出条件での撮影画像を参照画像として適用し、処理対象画像の白とび画素に対応する位置の参照画像の輝度値を取得することを特徴とする請求項21に記載の画像処理方法。
【請求項25】
画像処理をコンピュータ上において実行させるコンピュータ・プログラムであって、
画像データから白とび画素を検出する白とび検出ステップと、
前記白とび検出ステップにおいて検出した白とび画素の周囲に偽色画素検出領域を設定する偽色画素検出領域設定ステップと、
前記偽色画素検出領域設定ステップにおいて設定した領域内において、偽色に対応する色を有する画素を偽色画素として特定する偽色検出ステップと、
前記偽色検出ステップにおいて検出した偽色画素について、周囲画素値に基づく画素値補正処理を実行する画素値補正ステップと、
を有することを特徴とするコンピュータ・プログラム。
【請求項26】
偽色画素検出領域設定ステップは、
処理対象画像と同一被写体の撮影画像であり、処理対象画像の白とび画素に対応する位置の画素が飽和輝度値を持たない参照画像を入力し、処理対象画像の白とび画素位置に対応する参照画像の対応画素の輝度値を取得する参照画像解析ステップと、
前記参照画像解析ステップにおいて取得した前記参照画像の対応画素の輝度値に基づいて偽色画素検出領域を設定する偽色画素検出領域決定ステップと、
を含むことを特徴とする請求項25に記載のコンピュータ・プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate


【公開番号】特開2006−14261(P2006−14261A)
【公開日】平成18年1月12日(2006.1.12)
【国際特許分類】
【出願番号】特願2004−303795(P2004−303795)
【出願日】平成16年10月19日(2004.10.19)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】