JP2005004510A - 画像処理プログラム - Google Patents

画像処理プログラム Download PDF

Info

Publication number
JP2005004510A
JP2005004510A JP2003167753A JP2003167753A JP2005004510A JP 2005004510 A JP2005004510 A JP 2005004510A JP 2003167753 A JP2003167753 A JP 2003167753A JP 2003167753 A JP2003167753 A JP 2003167753A JP 2005004510 A JP2005004510 A JP 2005004510A
Authority
JP
Japan
Prior art keywords
image
pixels
processing
retinex
clipping
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2003167753A
Other languages
English (en)
Inventor
Kazutomi Sakatani
一臣 坂谷
Tetsuya Ito
哲也 伊藤
Norimichi Tsumura
徳道 津村
Yoichi Miyake
洋一 三宅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Minolta Co Ltd
Original Assignee
Minolta Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Minolta Co Ltd filed Critical Minolta Co Ltd
Priority to JP2003167753A priority Critical patent/JP2005004510A/ja
Publication of JP2005004510A publication Critical patent/JP2005004510A/ja
Withdrawn legal-status Critical Current

Links

Images

Abstract

【課題】処理対象となる原画像の内容に依存することなく、良好なRetinex処理のコントラスト補正ができる画像処理プログラムを提供する。
【解決手段】Retinex画像処理におけるクリッピング処理では、原画像データ402(またはRetinex処理画像データ)を対象として、上限値401以上(または下限値以下)の値を有する画素の数の総画素数に対する比率を計算し、比率に基づいてRetinex処理画像のハイライト側(またはシャドー側)のクリッピング係数をRGB各チャンネル独立に算出する。これにより、画像の白飛びや黒つぶれを防止する。
【選択図】 図3

Description

【0001】
【発明の属する技術分野】
この発明は、画像処理プログラムに関し、特にデジタルカメラやフィルムスキャナなどの出力画像の処理においてRetinex処理を行なう画像処理プログラムに関する。
【0002】
【従来の技術】
従来の画像処理の分野では、生体における網膜や皮質と同等の役割をモデル化した画像処理技術として、Center/Surround Retinex処理が提案されている(例えば、下記特許文献1参照)。
【0003】
Retinex処理とは、デジタルデータである画像情報を補正する方法である。Retinex処理には各種の変形例が考えられるが、ここでは、視覚をモデル化して注目画素に対して周辺情報を加味する画像の補正方法を総括してRetinex処理と呼んでいる。Retinex処理では画像中の明暗部に応じて、局所局所でゲイン調整が変わるため、ダイナミックレンジを圧縮する効果がある。
【0004】
Center/Surround Retinexアルゴリズムに関して、Single Scale Retinex(SSR)、およびMulti Scale Retinex(MSR)が知られている。以下にそれぞれのアルゴリズムについて説明する。
【0005】
Single Scale Retinex(SSR)は、次の式(1)によって表される。式(1)の処理をR,G,Bの各チャンネルに対して実行し、統合することでカラー出力画像が得られる。
【0006】
Figure 2005004510
ここで、「*」はコンボリューション積分を表す。また、T(x,y)はSSR処理後の画素値を表し、I(x,y)は原画像の画素値を表す。F(x,y)は、注目画素の周囲の画素を考慮してぼけ画像を作成するためのフィルタに用いられる関数である。F(x,y)として例えばガウス関数を用いると、F(x,y)は、次の式(2)および(3)を満たすこととなる。
【0007】
F(x,y)=K・exp{−(x+y)/c} …(2)
ΣΣF(x,y)=1 …(3)
ここで、cはガウス関数における周辺の広がりを決める定数であり、カーネル値と呼ばれる。式(3)を満たすように定数Kは定められる。一般的には、cの値が小さい程、画像処理においてエッジを強調する効果が高くなり、cの値が大きい程、ダイナミックレンジ圧縮の効果が高くなることが知られている。
【0008】
また、SSR処理後の出力画像のコントラストを向上させることを目的に、クリッピング処理が行われる。通常、ヒストグラム分布にして、上下3%前後の画素値はクリッピングしてから、線形変換によって出力ビット数(例えば8ビット)に応じたデジタル値に割り振られる。
【0009】
図17は、ぼけ画像作成のためにガウス関数を用いたSSRの具体的な処理を説明するための図である。
【0010】
図を参照して、i=R,G,Bからなるオリジナル画像(処理対象画像)D2に対して処理が行われる。なお、オリジナル画像においてRGBを合成した画像を図中P2で示している。
【0011】
D2の各画素値は、I(x,y)として示される。ぼけ画像D4を作成するためにI(x,y)*G(x,y)の演算が行われる。ここにG(x,y)はガウス関数である。
【0012】
オリジナル画像の各画素値を、ぼけ画像の各画素値で除算する処理が行われ、そのlogを求めることで、Retinex処理後の画像D5が得られる。D5の各画素値をここではR(x,y)とする。R,G,BからなるD5を合成することで、Retinex処理後の画像P1が得られる。
【0013】
一方、Multi Scale Retinex(MSR)では、式(2)における定数cとして、異なる幾つかの値が用いられる。これにより、周辺の広がりが異なるガウス関数によるSSR処理が行われる。それぞれの結果を足し合わせて平均化することにより、エッジ強調、およびダイナミックレンジ圧縮を同時に達成している。
【0014】
図18は、ガウス関数を用いたMSR処理を説明するための図である。
図を参照して、周辺の広がりが狭いガウス関数(サイズの小さいフィルタ)により作成されたぼけ画像D4−1、周辺の広がりが中位のガウス関数(サイズの中位のフィルタ)により作成されたぼけ画像D4−2、および周辺の広がりが広いガウス関数(サイズの大きいフィルタ)により作成されたぼけ画像D4−3がオリジナル画像D2に基づいて作成される。
【0015】
そして、オリジナル画像D2を各ぼけ画像で除算し、それぞれの対数をとることで、画像D5−1〜D5−3が得られる。フィルタサイズが小さい関数で処理を行った画像の方がエッジ強調効果が高く、逆にフィルタサイズが大きい関数で処理を行った画像の方がダイナミックレンジ圧縮の効果が高い。画像D5−1〜D5−3を足し合わせて平均化することにより、エッジ強調、およびダイナミックレンジ圧縮を同時に達成することができる。
【0016】
MSRは、次の式(4)によって表される。式(4)の処理をi=R,G,Bの各チャンネルに対して実行し、各スケールから得られる出力に各々重みを掛けて合成することでカラー出力画像を得ることができる。
【0017】
Figure 2005004510
ここで、「*」はコンボリューション積分を表す。また、T(x,y)はMSR処理後の画素値を表し、I(x,y)は原画像の画素値を表す。
【0018】
(x,y)は、注目画素の周囲の画素を考慮してぼけ画像を作成するためのフィルタに用いられる関数である。F(x,y)としてガウス関数を用いると、F(x,y)は式(5)で表され、式(6)を満たすように定数Kは定められる。
【0019】
ここで、cはガウス関数における周辺の広がりを決める定数であり、カーネル値と呼ばれる。このcの値に応じてダイナミックレンジ圧縮の効果が異なることが知られている。スケール数S=1の場合がSSRに相当し、通常のMSRでは、S=3程度が普通である。wは各スケールに対する重み係数であり、式(7)を満足するものである。例えば、S=3の場合にw=1/3として各スケールの出力が平均化される。
【0020】
また、Retinex処理後の出力画像T(x,y)に対して、コントラストを向上させることを目的に、クリッピング処理が行われる。通常、ヒストグラム分布にして、上下3%前後の画素値をクリッピングし、線形変換によって出力ビット数(例えば8ビット)に応じたデジタル値に割り振る。
【0021】
この3%などのクリッピングを行なう量を示す係数は、「クリッピング係数」と呼ばれている。
【0022】
ネガフィルムなどからフィルムスキャナによってデジタル化された画像データや、デジタルスチルカメラなどで撮影されたデジタル画像データに対して以上のようなSSR、およびMSR処理を適用する研究が盛んに行われている。
【0023】
また、以下の特許文献2は、画像の異なる領域間の小さなコントラスト差を維持しながら、画像の異なる領域間の大きなコントラスト差を縮小する技術を開示している。
【0024】
また、以下の非特許文献1は、Retinex処理を線形演算で構成することを開示している。
【0025】
【特許文献1】
米国特許第5,991,456号明細書
【0026】
【特許文献2】
特開2001−245154号公報
【0027】
【非特許文献1】
小林正明、小寺宏嘩、「Retinexモデルによる画像の見えの改善」、カラーフォーラムJAPAN2001(第47回光学四学会連合講演会、2001年11月13日〜15日開催)予稿集
【0028】
【発明が解決しようとする課題】
ところが、上述したRetinex画像処理における従来のクリッピング処理では、RGB各チャンネルに対して一律の値のクリッピング係数が適用されるため、原画像の内容によっては、白飛びや黒つぶれを引き起こす場合があるという問題があった。
【0029】
本発明の目的は、処理対象となる原画像の内容に依存することなく、良好なRetinex処理のクリッピング処理ができる画像処理プログラムを提供することを目的としている。
【0030】
【課題を解決するための手段】
上記目的を達成するため、この発明のある局面に従うと、Retinex処理をコンピュータに実行させる画像処理プログラムは、上限値以上の画素値を有する画素の存在比率と、下限値以下の画素値を有する画素の存在比率との少なくとも一方を計算する第1ステップと、計算された存在比率に基づいて、Retinex処理を施した画像のハイライト側、およびシャドー側の少なくとも一方のクリッピング処理を、RGB各チャンネル独立して実行する第2ステップとをコンピュータに実行させる。
【0031】
この発明に従うと、上限値以上の画素値を有する画素の存在比率と、下限値以下の画素値を有する画素の存在比率との少なくとも一方に基づいて、Retinex処理を施した画像のハイライト側、およびシャドー側の少なくとも一方のクリッピング処理を、RGB各チャンネル独立して実行することができるため、処理対象となる原画像の内容に依存することなく、良好なRetinex処理のクリッピング処理ができる画像処理プログラムを提供することが可能となる。
【0032】
好ましくは、原画像を対象データとして、上限値以上の画素値を有する画素の数を総画素数で除算することで得られる比率が、ハイライト側のクリッピング係数となるように、第1ステップの存在比率を決定するための上限値は設定される。
【0033】
このように発明を構成することで、ハイライト側のクリッピング係数を良好に設定することが可能となる。
【0034】
好ましくは、Retinex処理画像を対象データとして、下限値以下の画素値を有する画素の数を総画素数で除算することで得られる比率が、シャドー側のクリッピング係数となるように、第1ステップの存在比率を決定するための下限値は設定される。
【0035】
このように発明を構成することで、シャドー側のクリッピング係数を良好に設定することが可能となる。
【0036】
好ましくは画像処理プログラムは、第1ステップで、上限値以上の画素値を有する画素の存在比率と、下限値以下の画素値を有する画素の存在比率とを計算し、それぞれをハイライト側、シャドー側の各クリッピング係数におけるオフセット量として予め与える。
【0037】
このように発明を構成することで、ハイライト側、シャドー側の各クリッピング係数を容易に設定することが可能となる。
【0038】
【発明の実施の形態】
本発明の実施の形態に開示される画像処理方法、画像処理プログラムおよび画像処理装置などでは、Retinex処理の後処理として行なうクリッピング係数をRGB各チャンネルで独立に変更することとしている。
【0039】
より詳しくは、本実施の形態における画像処理プログラムなどでは、RGB各々のチャンネルで、上限値以上の画素値を有する画素の存在比率を計算し、下限値以下の画素値を有する画素の存在比率を計算し、各々の存在比率に基づいてRetinex処理画像のハイライト側とシャドー側のクリッピング処理をRGB各チャンネル独立して実行することとしている。
【0040】
本発明の構成によると、処理対象となる原画像、もしくはRetinex処理画像において、総画素数に対するしきい値以上、もしくはしきい値以下の画素値を有する画素の数の比率に応じて、RGB各チャンネルに対するクリッピング係数を独立して生成してオフセット量とするため、新たな白飛びや黒つぶれを起こさずに良好なRetinex画像処理のコントラスト補正ができる画像処理プログラムなどを提供することができる。
【0041】
以下に本発明の実施の形態について、図面を参照しながら順に説明する。
[第1の実施の形態]
図1は、第1の実施の形態におけるRetinex処理を行なう撮像装置の構成を示すブロック図である。図中、画像データの流れを矢印で示している。
【0042】
図を参照して撮影装置は、撮像デバイスとしてのCCDイメージセンサ101と、A/Dコンバータ102と、Retinex処理部103と、クリッピング処理部107と、γ補正部104と、表示・保存部105とを備えている。
【0043】
CCDイメージセンサ101は、光電変換によって入射光から電気信号であるアナログ信号R,G,Bを生成する。A/Dコンバータ102はアナログ信号R,G,Bを、例えば8bitの離散的なデジタル信号R,G,Bに変換する。Retinex処理部103は、A/Dコンバータ102でA/D変換のみ施されたデジタル画像信号に対して、SSRやMSRなどのRetinex処理を各RGBのチャンネルに対して独立に行なう。
【0044】
クリッピング処理部107は、R,G,B各チャンネル独立して、クリッピング係数を算出し、算出されたクリッピング係数に基づき、R,G,B各チャンネル独立してクリッピング処理を行なう。
【0045】
γ補正部104は、Retinex出力に対して、後工程である表示・保存工程で求められる所定のγ補正を行なう。
【0046】
最後に、表示・保存部105では、γ補正部104で所定のγ処理が施された画像データをモニタなどに表示、またはハードディスクなどに保存する。
【0047】
図1に示した構成をデジタルスチルカメラ内部などでハード的に実行することも可能であるが、一旦保存された画像データに対して、パソコンなどにインストールされたアプリケーションを用いて、ソフト的に上述したRetinex処理、クリッピング処理、およびγ補正処理などの画像処理を実行することも可能である。
【0048】
なお、上記(1)、(4)式で示されるRetinex処理にはコンボリューション積分が含まれているため、その処理速度はF(x,y)で示されるガウス関数などのフィルタのサイズや画像サイズそのものに大きく依存する。一般に、Retinex処理に用いられるフィルタのサイズは非常に大きく、比較的解像度の低い画像(例えば640×480画素のVGA)でも、カーネル値c=100程度のサイズのフィルタが用いられることが多い。このような場合、最近の高速な処理を行なうパーソナルコンピュータでもその処理を完了するまでに数時間かかってしまうことがあり、実用的ではない。
【0049】
コンボリューション積分を高速に実行する方法として、周波数領域で計算を実行する手法であるフーリエ変換が知られている。デジタル画像のような離散的な信号に対しては、FFT(Fast Fourier Transforms)やDFT(Discrete Fast Fourier Transforms)といった高速処理手法が適用できる。上記(1)式のコンボリューション積分は、画像サイズが2のべき乗の場合、式(8)で表現することができる。
【0050】
Figure 2005004510
ここで、FFT−1は逆FFTを、「・」は周波数領域での掛け算を表す。この場合、その処理速度はF(x,y)で表されるガウス関数のフィルタサイズには関係なく、画像サイズそのものに依存することになる。なお、画像サイズが2のべき乗でない場合、DFTを代用に用いることができる。
【0051】
図2は、Retinex処理の後処理として行われるクリッピング処理を説明するための図である。
【0052】
従来の技術においては、Retinex処理の後処理として行なうクリッピング処理において、クリップする比率が多過ぎることで、例えば新たな白飛びを引き起こしてしまうなどの問題があった。このため、処理対象となる原画像の内容によってはクリッピング係数を調整する必要があり、また、その比率の決め方が不明確であるという問題があった。
【0053】
つまり、上述したように、クリッピング処理を一律の定数として上下各3%ずつクリップすることも考えられるが、これにより画像内容によっては、新たな白飛びや黒つぶれといった不具合を引き起こしてしまう場合もあった。
【0054】
図2においては、一般的なクリッピング処理を説明するためのRetinex処理画像のヒストグラムが示されている。
【0055】
横軸の画素値は、Retinex処理画像において実数で表現された画素値から生成されるスケールである。横軸の画素値は、ヒストグラム表示するために実数スケールから所定の間隔毎にサンプリングされている。
【0056】
縦軸の頻度は、所定の間隔でサンプリングされた画素の個数を集計したものであり、画素の出現数に相当する。例えば、ある画像のRetinex処理画像におけるヒストグラムが図中の曲線のような出現頻度であったとする。
【0057】
ここで、従来技術のように、クリッピング処理を一律の定数として上下各3%ずつクリップする(クリッピング係数=3%)場合を仮定する。クリップL以下の画素値を有する画素の“A”の領域、つまり、クリップL以下の画素値を有する画素の数の総和、および、クリップH以上の画素値を有する画素の“B”の領域、つまり、クリップH以上の画素値を有する画素の数の総和は各々、図中曲線の総領域(すなわち総画素数)の3%に相当するように、クリップLとクリップHとは決定される。
【0058】
“A”の領域に存在する画素は、すべてクリップLの画素値にクリップされ、所定のデジタル値(例えば0)に割り振られる。“B”の領域に存在する画素は、すべてクリップHの画素値にクリップされ、所定のデジタル値(例えば255)に割り振られる。こうして、すべての画素をクリップLからクリップHの間に存在させて、例えば8ビットで表現されるモニタなどに表示するために、クリップLからクリップHまでの間が256階調に線形に割り付けられる。
【0059】
本実施の形態では、このクリッピング係数(%)をRGBの各チャンネルで独立に変更する。
【0060】
図3は、図1のクリッピング処理部107のハイライト側クリッピング係数の算出部を示すブロック図である。
【0061】
RGBの各チャンネルにおいて、原画像データ402に対して所定の上限値401を定め、その上限値以上の画素値を有する画素の数を算出部403により算出する。また、算出部404で原画像データの402の総画素数を求める。演算器406は、上限値以上の画素値を有する画素の数を、総画素数で除算する。これにより算出された割合は、ハイライト側クリッピング係数405とされる。
【0062】
ここで、原画像データ402を対象とする理由は、通常、Retinex処理画像の画素値でハイライト側の取り得る最大値は画像内容に応じて変化するからである。そのため、Retinex処理画像を対象に参照する上限値を設定することが難しい。一方、原画像であれば、通常の8ビット(カラー:24ビット)画像であれば、とりうる最大値は255と限定することができる。例えば、上限値を“255”と設定する場合、各チャンネルのハイライト側の飽和画素の比率がハイライト側クリッピング係数405として適用される。従って、各チャンネルにおいておおよそ元々飽和しているレベルの画素をクリップすることができ、新たな白飛びなどを起こすことなくクリッピングが実行される。また、各チャンネルにおいて上限値401を異ならせるようにすることも可能である。
【0063】
図4は、図1のクリッピング処理部107のシャドー側クリッピング係数の算出部を示すブロック図である。
【0064】
RGBの各チャンネルにおいて、そのRetinex処理画像データ502に対して所定の下限値501を定め、その下限値以下の画素値を有する画素の数を算出部503により算出する。また、算出部504でRetinex処理画像データ502の総画素数を求める。演算器506は、下限値以下の画素値を有する画素の数を、総画素数で除算する。これにより算出された割合は、シャドー側クリッピング係数505とされる。
【0065】
ここで、Retinex処理画像データ502を対象とする理由は、ハイライト側とは異なり、Retinex処理画像データ502のシャドー側最小値を元に、実数のためより高精度にクリッピング係数505を算出することができるからである。特に、Center/Surround Retinexアルゴリズムにおいて、対数変換を行なう前の線形Retinex出力が負の値になることはない。そのため、線形Retinex処理画像を対象として下限値を設定することが可能であり、線形Retinex処理画像のとりうる最小値は0と限定することができる。
【0066】
例えば、下限値501を“0.01”と設定することで、シャドー側クリッピング係数505が算出される。従って、下限値501を調整することで、新たな黒つぶれなどを起こすことなくクリッピングが実行される。同じく、各チャンネルにおいて下限値501を異ならせるようにすることも可能である。
【0067】
もちろん、ハイライト側同様、原画像を対象とすることも可能である。Retinex処理画像データ502の代わりに原画像データを用い、例えば、下限値501を“0”と設定する場合、各チャンネルのシャドー側の飽和画素の比率がシャドー側クリッピング係数505として適用される。従って、各チャンネルにおいて元々飽和しているレベルをクリップすることができ、新たな黒つぶれなどを起こすことなくクリッピングが実行される。
【0068】
また、図3により算出されたハイライト側クリッピング係数、および、図4により算出されたシャドー側クリッピング係数を各々オフセット値(初期値)として予め与えておき、さらにクリップ率の加算値を各々に加算することとしてもよい。
【0069】
図5では、図3で求めたRGBそれぞれにおけるハイライト側クリッピング係数を初期値601〜603とし、それらに対して、演算器608〜610によりさらに一律の加算値604を各々に加算し、ハイライト側クリッピング係数605〜607を算出する構成を示すブロック図である。
【0070】
加算値604は、ユーザーが好ましいコントラストになるようにGUIなどを介して調整できる構成としてもよい。こうすることで、例えば、原画像のうち“255”の画素値を有する画素の占める比率をハイライト側クリッピング係数初期値として設定すれば、各チャンネルに対して予め異なるオフセット値が与えられることとなるため、ダイナミックなコントラスト調整が可能となる。
【0071】
図6では、シャドー側クリッピング係数701〜703に対して、さらに一律の加算値704を各々に加算し、シャドー側クリッピング係数705〜707を算出する構成を示すブロック図である。
【0072】
加算値704は、同様にユーザーが好ましいコントラストになるようにGUIなどを介して調整できる構成としてもよい。こうすることで、例えば、原画像のうち“0”の画素値を有する画素の占める比率をシャドー側クリッピング係数初期値として設定すれば、各チャンネルに対して予め異なるオフセット値が与えられることとなるため、同じくダイナミックなコントラスト調整が可能となる。
【0073】
図7は、ハイライト側クリッピング係数初期値801〜803に対して、さらに各チャンネルで演算器810〜812により、加算値804〜806を各々に加算し、ハイライト側クリッピング係数807〜809を算出する構成を示すブロック図である。
【0074】
特に、ハイライト側のクリッピング係数は出力画像の色再現に大きく影響する。具体的には、例えば、Rチャンネルの加算値804を大きく設定することで、出力画像は次第に赤が強い色調に変化する。同様に、Gチャンネルの加算値805を大きく設定することで、出力画像は次第に緑が強い色調に変化する。Bチャンネルの加算値806を大きく設定することで、出力画像は次第に青が強い色調に変化する。ここでも、ユーザーが好ましいコントラストや色調になるようにGUIなどを介して各々を調整できる構成としてもよい。
【0075】
また、図示しないが、各シャドー側クリッピング係数初期値に対して、さらに各チャンネルで加算値を独立して加算し、シャドー側クリッピング係数を算出する構成を採用してもよい。
【0076】
図8は、RAWデータに対してRetinex処理とクリッピング処理とを適用する場合を説明するためのRAWデータの分版(左からR,G,B)を示す図である。
【0077】
ここでRAWデータとは、CCDイメージセンサや、CMOSイメージセンサなどの撮像デバイスの電気信号に対してA/D変換を行った直後のデータを示す。なお、「A/D変換を行なった直後」とは、少なくともγ補正が施される前の段階を示し、好ましくは色補正や、MTF補正が施されていない段階である。撮像デバイスの画素間における感度ばらつきなどのハードウェア調整のための補正や、gamutなどの色相変換を行っていてもRAWデータとみなしてよい。更には、例えば撮像デバイスとしてカラーフィルタを有したエリア型センサである場合、A/D変換後に各色の画像データについて画素補間の処理が施されるが、このような補間処理後の画像データもRAWデータとみなしてよい。
【0078】
RAWデータは、ゲイン調整がされていない。従って例えば、図8における窓越しの背景部において、RとBには存在する内容で、Gには存在しない内容があり、単純に重ねると窓越しの背景部において、カラーバランスの崩れた内容が現れることになる。そのため、RAWデータを現像する際、一般的には例えば、G面の感度に合わせてR面とB面のゲイン調整をし、各々オーバーフローした部分を最大値(例えば“255”)にクリップする処理が行われる。
【0079】
本実施の形態においても、このゲイン値から各チャンネルに対するクリッピング係数を計算することが可能である。具体的には、例えば、ゲイン“1.5”というチャンネルがあれば、そのチャンネルの画素値を全て1.5倍し、オーバーフローした画素の数の全画素数に対する比率を、そのチャンネルのハイライト側クリッピング係数と設定することで、本発明を実施することができる。
【0080】
図9〜12は、本実施の形態における効果を説明するための図である。
図9および10は、黒つぶれを説明するための図であり、図11および図12は、白飛びを説明するための図である。
【0081】
図9は、従来技術のように各チャンネル3%づつシャドー側をクリッピング処理した例であり、図10は本実施の形態のように各チャンネル独立してシャドー側をクリッピング処理した例である。
【0082】
図11は、従来技術のように各チャンネル3%づつハイライト側をクリッピング処理した例であり、図12は本実施の形態のように各チャンネル独立してハイライト側をクリッピング処理した例である。
【0083】
特に、図9および10においては、画像中の暗い部分、図11および12においては画像中の明るい部分を参照すると、本発明の実施により黒つぶれ(図9)や白飛び(図11)が解消されることがわかる。
【0084】
以上説明したように本実施の形態によると、処理対象となる原画像、もしくはRetinex処理画像において、総画素数に対する上限値以上、もしくは下限値以下の画素値を有する画素の数の比率に応じて、RGB各チャンネルに対するクリッピング係数を独立して生成して初期値とすることで、新たな白飛びや黒つぶれを起こさずに良好なRetinex画像処理のコントラスト補正ができる画像処理プログラムを提供することができる。
【0085】
[第2の実施の形態]
図13は、本発明の第2の実施の形態におけるデジタルカメラの構成を示すブロック図である。
【0086】
図を参照して、デジタルカメラは、レンズLと、レンズを駆動するレンズ制御部209と、CCDイメージセンサ201と、CCDイメージセンサの出力をA/D変換するA/Dコンバータ203と、画像処理のためのASIC(application specific integrated circuit)205と、バッファメモリ207と、CPU211と、RAM213と、ROM(ファームウェアメモリ)215と、画像表示部221と、カードインタフェース217と、メモリカード219とを備えている。
【0087】
ASIC205内のモジュールとして、Retinex処理回路251、色補間回路253、γ補正回路255、色空間変換回路257、および画像圧縮回路259が設けられている。
【0088】
ASIC205内では、A/Dコンバータ203からの入力に対して、図の左のモジュールから順に処理が行なわれる。ASIC205内のモジュールはバッファメモリ207を共有しており、CPU211は、どのモジュールがメモリにアクセスするかのタイミングコントロールを行なう。
【0089】
本実施の形態においても、デジタルカメラのRetinex処理回路251において、第1の実施の形態と同様のRetinex処理およびクリッピング処理を適用する。
【0090】
なお、図13の回路構成は、デジタルビデオカメラ、スキャナ、フィルムスキャナなどに対しても応用することができる。
【0091】
[第3の実施の形態]
図14は、本発明の第3の実施の形態における、プログラムを実行するコンピュータの構成を示すブロック図である。
【0092】
図を参照して、コンピュータは、装置全体の制御を行なうCPU301と、表示部303と、ネットワークに接続したり外部と通信を行なうためのLAN(ローカルエリアネットワーク)カード305(またはモデムカード)と、キーボードやマウスなどにより構成される入力部307と、フレキシブルディスクドライブ309と、CD−ROMドライブ311と、ハードディスクドライブ313と、ROM315と、RAM317とを備えている。
【0093】
以後のフローチャートに示される、CPU(コンピュータ)301を駆動させるためのプログラムは、フレキシブルディスク(F1)やCD−ROM(C1)やハードディスクドライブ313などの記録媒体に記録することができる。このプログラムは、CPU301により読出され、記録媒体からRAMその他の記録媒体に送られ、記録される。プログラムはRAMなどをワークエリアとして実行される。なお、プログラムはROM、RAM、メモリカードなどの記録媒体に記録してユーザに提供するようにしてもよい。また、インターネットを介して外部のサイトなどよりそのようなプログラムをワークステーションやコンピュータにダウンロードして実行させるようにしてもよい。
【0094】
図15は、図14のコンピュータが実行するRetinex処理を示すフローチャートである。
【0095】
図を参照して、CCDイメージセンサなどにより得られたアナログデータD1は、ステップS101でA/D変換器により変換され、原画像データD2とされる。これがステップS103で、コンピュータ内においてフーリエ変換される。
【0096】
一方ステップS105では、ガウス周辺関数D3がフーリエ変換される。ステップS107で、ステップS103およびS105で得られたデータの周波数領域での掛け算が行なわれる。その後、ステップS109で逆フーリエ変換が行なわれることでぼけ画像D4が得られる。
【0097】
ステップS111で、D2をD4で割り、ステップS113でそれをlog処理することで、Retinex出力D5が得られる。
【0098】
その後、Retinex出力に対し、γ補正(ステップS115)、その他画像処理(ステップS117)、クリッピング処理(ステップS119)、および8bit割り付け処理(ステップS121)が行なわれる。その後、画像が表示される(ステップS123)。
【0099】
図16は、図15のステップS119で行なわれるクリッピング処理の詳細を示すフローチャートである。
【0100】
図を参照して、ステップS201で、第1の実施の形態と同様にR,G,Bごとにハイライト側のクリッピング係数が算出される。ステップS204で、R,G,Bごとにシャドー側のクリッピング係数が算出される。
【0101】
ステップS205で、ハイライト側クリッピング係数への加算値の加算処理が行なわれる。ステップS207で、シャドー側クリッピング係数への加算値の加算処理が行なわれる。
【0102】
ステップS209で、R,G,Bそれぞれにおけるクリッピング処理が独立して行なわれる。
【0103】
なお、インターネットなどの通信回線を通じて送信されてきた画像データに対して上述の画像処理を行ってもよいし、その結果を通信回線を通じて他の装置へ送信するようにしてもよい。
【0104】
(発明の他の構成例)
なお、上述した具体的実施形態には以下の構成を有する発明が含まれている。
【0105】
(1) Retinex処理をコンピュータに実行させる画像処理プログラムを記録したコンピュータ読取可能な記録媒体において、
上限値以上の画素値を有する画素の存在比率と、下限値以下の画素値を有する画素の存在比率との少なくとも一方を計算する第1ステップと、
前記計算された存在比率に基づいて、Retinex処理を施した画像のハイライト側、およびシャドー側の少なくとも一方のクリッピング処理を、RGB各チャンネル独立して実行する第2ステップとをコンピュータに実行させる、画像処理プログラムを記録したコンピュータ読取可能な記録媒体。
【0106】
(2) Retinex処理を実行する方法において、
上限値以上の画素値を有する画素の存在比率と、下限値以下の画素値を有する画素の存在比率との少なくとも一方を計算する第1ステップと、
前記計算された存在比率に基づいて、Retinex処理を施した画像のハイライト側、およびシャドー側の少なくとも一方のクリッピング処理を、RGB各チャンネル独立して実行する第2ステップとを備える、Retinex処理を実行する方法。
【0107】
(3) 原画像を対象データとして、前記上限値以上の画素値を有する画素の数を総画素数で除算することで得られる比率が、ハイライト側のクリッピング係数となるように、前記第1ステップの存在比率を決定するための上限値は設定される、(1)または(2)に記載の画像処理プログラムを記録したコンピュータ読取可能な記録媒体または方法。
【0108】
(4) Retinex処理画像を対象データとして、前記下限値以下の画素値を有する画素の数を総画素数で除算することで得られる比率が、シャドー側のクリッピング係数となるように、前記第1ステップの存在比率を決定するための下限値は設定される、(1)または(2)に記載の画像処理プログラムを記録したコンピュータ読取可能な記録媒体または方法。
【0109】
(5) 前記第1ステップで、上限値以上の画素値を有する画素の存在比率と、下限値以下の画素値を有する画素の存在比率とを計算し、それぞれをハイライト側、シャドー側の各クリッピング係数におけるオフセット量として予め与える(1)に記載の画像処理プログラムを記録したコンピュータ読取可能な記録媒体または方法。
【0110】
(6) Retinex処理を実行する画像処理装置において、
上限値以上の画素値を有する画素の存在比率と、下限値以下の画素値を有する画素の存在比率との少なくとも一方を計算する第1手段と、
前記計算された存在比率に基づいて、Retinex処理を施した画像のハイライト側、およびシャドー側の少なくとも一方のクリッピング処理を、RGB各チャンネル独立して実行する第2手段とを備える、画像処理装置。
【0111】
(7) 原画像を対象データとして、前記上限値以上の画素値を有する画素の数を総画素数で除算することで得られる比率が、ハイライト側のクリッピング係数となるように、前記第1手段の存在比率を決定するための上限値は設定される、(6)に記載の画像処理装置。
【0112】
(8) Retinex処理画像を対象データとして、前記下限値以下の画素値を有する画素の数を総画素数で除算することで得られる比率が、シャドー側のクリッピング係数となるように、前記第1手段の存在比率を決定するための下限値は設定される、(6)に記載の画像処理装置。
【0113】
(9) 前記第1手段で、上限値以上の画素値を有する画素の存在比率と、下限値以下の画素値を有する画素の存在比率とを計算し、それぞれをハイライト側、シャドー側の各クリッピング係数におけるオフセット量として予め与える、(6)に記載の画像処理装置。
【0114】
(この構成によると、上限値以上の画素値を有する画素の存在比率と、下限値以下の画素値を有する画素の存在比率との少なくとも一方に基づいて、Retinex処理を施した画像のハイライト側、およびシャドー側の少なくとも一方のクリッピング処理を、RGB各チャンネル独立して実行することができるため、処理対象となる原画像の内容に依存することなく、良好なRetinex処理のクリッピング処理ができる画像処理プログラムを記録したコンピュータ読取可能な記録媒体、方法、または装置を提供することができる。)
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【0115】
【発明の効果】
本発明によると、上限値以上の画素値を有する画素の存在比率と、下限値以下の画素値を有する画素の存在比率との少なくとも一方に基づいて、Retinex処理を施した画像のハイライト側、およびシャドー側の少なくとも一方のクリッピング処理を、RGB各チャンネル独立して実行することができるため、処理対象となる原画像の内容に依存することなく、良好なRetinex処理のクリッピング処理ができる画像処理プログラムを提供することができる。
【図面の簡単な説明】
【図1】第1の実施の形態におけるRetinex処理を行なう撮像装置の構成を示すブロック図である。
【図2】Retinex処理画像におけるコントラスト補正として行なうクリッピング処理の概念図である。
【図3】図1のクリッピング処理部107のハイライト側クリッピング係数の算出部を示すブロック図である。
【図4】図1のクリッピング処理部107のシャドー側クリッピング係数の算出部を示すブロック図である。
【図5】生成したハイライト側クリッピング係数を初期値として、さらに各チャンネル一律の加算値を加算して新たにハイライト側クリッピング係数を生成する処理を示すブロック図である。
【図6】生成したシャドー側クリッピング係数を初期値として、さらに各チャンネル一律の加算値を加算して新たにシャドー側クリッピング係数を生成する処理を示すブロック図である。
【図7】生成したハイライト側クリッピング係数を初期値として、さらに各チャンネル独立に加算値を加算して新たにハイライト側クリッピング係数を生成する処理を示すブロック図である。
【図8】本発明の一実施例を説明するためのRAWデータ分版を示す図である。
【図9】従来技術の問題点を説明するための処理結果を示す図である。
【図10】本発明の効果を説明するための処理結果を示す図である。
【図11】従来技術の問題点を説明するための処理結果を示す図である。
【図12】本発明の効果を説明するための処理結果を示す図である。
【図13】本発明の第2の実施の形態におけるデジタルカメラの構成を示すブロック図である。
【図14】本発明の第3の実施の形態における、プログラムを実行するコンピュータの構成を示すブロック図である。
【図15】図7のコンピュータが実行するRetinex処理を示すフローチャートである。
【図16】図8のステップS119で行なわれる処理の詳細を示すフローチャートである。
【図17】ぼけ画像作成のためにガウス関数を用いたSSRの具体的な処理を説明するための図である。
【図18】ガウス関数を用いたMSR処理を説明するための図である。
【符号の説明】
101 CCDイメージセンサ、102 A/Dコンバータ、103 Retinex処理部、104 γ補正部、105 表示・保存部、L レンズ、201 CCDイメージセンサ、203 A/Dコンバータ、205 ASIC(application specific integrated circuit)、207 バッファメモリ、209レンズ制御部、211 CPU、213 RAM、215 ROM(ファームウェアメモリ)、217 カードインタフェース、219 メモリカード、221 画像表示部、251 Retinex処理回路、253 色補間回路、255 γ補正回路、257 色空間変換回路、259 画像圧縮回路、301 CPU、303 表示部、305 LANカード、307 入力部、309 フレキシブルディスクドライブ、311 CD−ROMドライブ、313 ハードディスクドライブ、315 ROM、317 RAM、401 上限値、402 原画像データ、403 上限値以上の画素値を有する画素数算出部、404 総画素数算出部、405 ハイライト側クリッピング係数、501 下限値、502 Retinex処理画像データ、503 下限値以下の画素値を有する画素数算出部、504 総画素数算出部、505 シャドー側クリッピング係数、601,801 ハイライト側クリッピング係数(R)初期値、602,802 ハイライト側クリッピング係数(G)初期値、603,803 ハイライト側クリッピング係数(B)初期値、604 加算値、605,807 ハイライト側クリッピング係数(R)、606,808 ハイライト側クリッピング係数(G)、607,809 ハイライト側クリッピング係数(B)、701 シャドー側クリッピング係数(R)初期値、702 シャドー側クリッピング係数(G)初期値、703 シャドー側クリッピング係数(B)初期値、704 加算値、705 シャドー側クリッピング係数(R)、706 シャドー側クリッピング係数(G)、707 シャドー側クリッピング係数(B)、804 加算値R、805 加算値G、806 加算値B、F1 フレキシブルディスク、C1 CD−ROM、D1 アナログ画像、D2 オリジナルデジタル画像、D4 ぼけ画像、D5 Retinex出力画像、L シャドー側クリップ、H ハイライト側クリップ。

Claims (4)

  1. Retinex処理をコンピュータに実行させる画像処理プログラムにおいて、
    上限値以上の画素値を有する画素の存在比率と、下限値以下の画素値を有する画素の存在比率との少なくとも一方を計算する第1ステップと、
    前記計算された存在比率に基づいて、Retinex処理を施した画像のハイライト側、およびシャドー側の少なくとも一方のクリッピング処理を、RGB各チャンネル独立して実行する第2ステップとをコンピュータに実行させる、画像処理プログラム。
  2. 原画像を対象データとして、前記上限値以上の画素値を有する画素の数を総画素数で除算することで得られる比率が、ハイライト側のクリッピング係数となるように、前記第1ステップの存在比率を決定するための上限値は設定される、請求項1に記載の画像処理プログラム。
  3. Retinex処理画像を対象データとして、前記下限値以下の画素値を有する画素の数を総画素数で除算することで得られる比率が、シャドー側のクリッピング係数となるように、前記第1ステップの存在比率を決定するための下限値は設定される、請求項1に記載の画像処理プログラム。
  4. 前記第1ステップで、上限値以上の画素値を有する画素の存在比率と、下限値以下の画素値を有する画素の存在比率とを計算し、それぞれをハイライト側、シャドー側の各クリッピング係数におけるオフセット量として予め与える、請求項1に記載の画像処理プログラム。
JP2003167753A 2003-06-12 2003-06-12 画像処理プログラム Withdrawn JP2005004510A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003167753A JP2005004510A (ja) 2003-06-12 2003-06-12 画像処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003167753A JP2005004510A (ja) 2003-06-12 2003-06-12 画像処理プログラム

Publications (1)

Publication Number Publication Date
JP2005004510A true JP2005004510A (ja) 2005-01-06

Family

ID=34093477

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003167753A Withdrawn JP2005004510A (ja) 2003-06-12 2003-06-12 画像処理プログラム

Country Status (1)

Country Link
JP (1) JP2005004510A (ja)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007020071A (ja) * 2005-07-11 2007-01-25 Casio Comput Co Ltd 撮像装置、撮像方法及びプログラム
KR100782845B1 (ko) 2005-09-29 2007-12-06 삼성전자주식회사 비로그 도메인 조도 수정을 이용한 디지털 영상 개선방법과 시스템
JP2008011286A (ja) * 2006-06-30 2008-01-17 Brother Ind Ltd 画像処理プログラムおよび画像処理装置
JP2008048264A (ja) * 2006-08-18 2008-02-28 Brother Ind Ltd 画像処理プログラムおよび画像処理装置
JP2008059015A (ja) * 2006-08-29 2008-03-13 Brother Ind Ltd 画像処理プログラムおよび画像処理装置
JP2008060627A (ja) * 2006-08-29 2008-03-13 Brother Ind Ltd 画像処理プログラムおよび画像処理装置
JP2009246593A (ja) * 2008-03-31 2009-10-22 Fujitsu Microelectronics Ltd 画像処理装置
US7920752B2 (en) 2006-08-17 2011-04-05 Brother Kogyo Kabushiki Kaisha Image processing device that quickly performs retinex process
US8040409B2 (en) 2006-10-31 2011-10-18 Brother Kogyo Kabushiki Kaisha Image processing device capable of performing retinex process at high speed
KR101281783B1 (ko) 2012-01-17 2013-07-04 한국과학기술원 단일 영상으로부터 그림자를 검출하는 방법 및 장치
CN104717473A (zh) * 2013-12-13 2015-06-17 厦门美图移动科技有限公司 一种自动调整对比度的拍摄方法
CN104715465A (zh) * 2013-12-13 2015-06-17 厦门美图移动科技有限公司 一种自动调整对比度的图像增强方法
CN104756152A (zh) * 2012-10-26 2015-07-01 Sk电信有限公司 用于加速图像校正的图像校正装置及其方法
KR101621614B1 (ko) * 2014-06-30 2016-05-17 성균관대학교산학협력단 디지털 이미지 향상 방법 및 장치와, 이를 이용한 영상 처리 장치

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4544064B2 (ja) * 2005-07-11 2010-09-15 カシオ計算機株式会社 撮像装置、撮像方法及びプログラム
JP2007020071A (ja) * 2005-07-11 2007-01-25 Casio Comput Co Ltd 撮像装置、撮像方法及びプログラム
KR100782845B1 (ko) 2005-09-29 2007-12-06 삼성전자주식회사 비로그 도메인 조도 수정을 이용한 디지털 영상 개선방법과 시스템
JP2008011286A (ja) * 2006-06-30 2008-01-17 Brother Ind Ltd 画像処理プログラムおよび画像処理装置
US8180172B2 (en) 2006-06-30 2012-05-15 Brother Kogyo Kabushiki Kaisha Image processing method
US7920752B2 (en) 2006-08-17 2011-04-05 Brother Kogyo Kabushiki Kaisha Image processing device that quickly performs retinex process
US7912308B2 (en) 2006-08-18 2011-03-22 Brother Kogyo Kabushiki Kaisha Image processing device that quickly performs retinex process
JP2008048264A (ja) * 2006-08-18 2008-02-28 Brother Ind Ltd 画像処理プログラムおよび画像処理装置
JP2008060627A (ja) * 2006-08-29 2008-03-13 Brother Ind Ltd 画像処理プログラムおよび画像処理装置
JP2008059015A (ja) * 2006-08-29 2008-03-13 Brother Ind Ltd 画像処理プログラムおよび画像処理装置
JP4710761B2 (ja) * 2006-08-29 2011-06-29 ブラザー工業株式会社 画像処理プログラムおよび画像処理装置
US8040409B2 (en) 2006-10-31 2011-10-18 Brother Kogyo Kabushiki Kaisha Image processing device capable of performing retinex process at high speed
JP2009246593A (ja) * 2008-03-31 2009-10-22 Fujitsu Microelectronics Ltd 画像処理装置
KR101281783B1 (ko) 2012-01-17 2013-07-04 한국과학기술원 단일 영상으로부터 그림자를 검출하는 방법 및 장치
CN104756152A (zh) * 2012-10-26 2015-07-01 Sk电信有限公司 用于加速图像校正的图像校正装置及其方法
CN104756152B (zh) * 2012-10-26 2017-08-25 Sk电信有限公司 用于加速图像校正的图像校正装置及其方法
CN104717473A (zh) * 2013-12-13 2015-06-17 厦门美图移动科技有限公司 一种自动调整对比度的拍摄方法
CN104715465A (zh) * 2013-12-13 2015-06-17 厦门美图移动科技有限公司 一种自动调整对比度的图像增强方法
KR101621614B1 (ko) * 2014-06-30 2016-05-17 성균관대학교산학협력단 디지털 이미지 향상 방법 및 장치와, 이를 이용한 영상 처리 장치

Similar Documents

Publication Publication Date Title
KR100990904B1 (ko) 다수 영상의 생성 및 합성을 통한 영상 보정 장치 및 그 방법
US8368779B2 (en) Image processing apparatus for performing gradation correction on subject image
JP4894595B2 (ja) 画像処理装置および方法、並びに、プログラム
JP3731577B2 (ja) 画像処理プログラム
JP4214457B2 (ja) 画像処理装置および方法、記録媒体、並びにプログラム
US20040091164A1 (en) Image processing program product and device for executing retinex processing
JP5669513B2 (ja) 画像処理装置、画像処理プログラム、及び、画像処理方法
JP6116272B2 (ja) 画像処理装置及び画像処理方法、プログラム、記憶媒体
US6813041B1 (en) Method and apparatus for performing local color correction
JP6097588B2 (ja) 画像処理装置及び画像処理方法
JP2005051407A (ja) 画像処理方法および装置
JP2005004510A (ja) 画像処理プログラム
JP4639037B2 (ja) 画像処理方法および装置
JP4021261B2 (ja) 画像処理装置
JP4479527B2 (ja) 画像処理方法、画像処理装置、画像処理プログラム、および電子カメラ
JP4096613B2 (ja) 画像処理方法及び画像処理装置
JP4345366B2 (ja) 画像処理プログラムおよび画像処理装置
JP2002281327A (ja) 画像処理のための装置、方法及びプログラム
JP4151225B2 (ja) 画像処理のための装置、方法及びプログラム
JP4752912B2 (ja) 画像の質感を補正する画像処理装置、画像処理プログラム、画像処理方法、および電子カメラ
JP6160426B2 (ja) 画像処理装置及びプログラム
JP4125191B2 (ja) 画像処理装置および方法
JP5624896B2 (ja) 画像処理装置、画像処理プログラム、及び、画像処理方法
JP2004164121A (ja) 画像処理プログラム
JP4632100B2 (ja) 画像処理装置、画像処理方法、記録媒体、およびプログラム

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20050613

A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060905