(58)【調査した分野】(Int.Cl.,DB名)
前記ヒストグラムにおいて一の前記バレーを挟む2つの前記ピークを結んだ仮想線分と当該バレーを通り度数軸に平行な仮想線分との交点に相当する度数の値と、当該バレーに相当する度数の値との差を、当該バレーの深さの指標値とする請求項1に記載の閾値決定方法。
前記画素が取り得る全ての画素値のうち、数値が等差数列をなす一部の画素値に対応する度数分布に基づき、前記ピークおよび前記バレーを特定する請求項1または2に記載の閾値決定方法。
前記ヒストグラムにおいて前記バレーが存在しないとき、前記画像中で最も高輝度である画素の画素値を前記閾値とする請求項1ないし4のいずれかに記載の閾値決定方法。
前記染色領域に区分された前記画素の画素値を第1の値に設定する一方、前記非染色領域に区分された前記画素の画素値を前記第1の値と異なる第2の値に設定することで、前記原画像を2値表現した2値化画像を作成する工程を備える請求項6に記載の画像処理方法。
【発明を実施するための形態】
【0015】
図1はこの発明にかかる画像処理装置の一実施形態の概略構成を示すブロック図である。この画像処理装置100は、本発明にかかる画像処理方法を実行するための機能を有するものであり、そのための具体的構成として、撮像部1と、画像処理部2と、UI(ユーザーインターフェース)部3とを備えている。
【0016】
撮像部1は、ウェルプレート、シャーレ、ディッシュ等の試料容器に担持された培地内で培養された細胞を撮像する機能を有するものであり、イメージセンサ11と、イメージセンサ11から出力される電気信号をデジタル信号に変換するA/Dコンバータ12とを備えている。上記した試料容器を保持するための機構が撮像部1に設けられてもよい。
【0017】
イメージセンサ11としては、例えばCCDセンサまたはCMOSセンサなどの受光デバイスが用いられる。イメージセンサ11は、微小な受光素子が受光平面上で二次元配置されたエリアイメージセンサ、受光素子が一列に配列されたリニアイメージセンサのいずれであってもよい。リニアイメージセンサが用いられる場合、二次元画像を得るために該イメージセンサを撮像対象物に対し相対的に走査移動させる走査移動機構が別途設けられる。また、イメージセンサ11は、例えば顕微鏡光学系のような適宜の撮像光学系との組み合わせで使用されてもよい。イメージセンサ11が受光量に応じて出力する電気信号はA/Dコンバータ12によりデジタル信号に変換され、撮像部1はこうして生成されたデジタル画像データを、画像処理部2に対し出力する。
【0018】
画像処理部2は、予め用意された制御プログラムを実行して所定の画像処理を実現するCPU(中央処理装置)21と、CPU21が実行すべき制御プログラムや撮像部1から送信される画像データ、画像処理の過程で生成される中間データなどを記憶保存するストレージ22と、画像処理部2と外部装置との間のデータ交換を司るインターフェース(I/F)23とを備えている。
【0019】
また、UI部3は、処理開始指示や条件設定などのユーザーからの操作入力を受け付ける例えばマウス、キーボード、タッチパネル、操作ボタンなどの入力デバイス31と、処理の進行状況や結果などを表示するディスプレイ32とを備えている。なお、画像処理部2およびUI部3の各構成は一般的なパーソナルコンピュータが備えるものと同等であってよく、汎用のパーソナルコンピュータの構成および機能を画像処理部2およびUI部3として用いることが可能である。
【0020】
上記のように構成された画像処理装置100は、試料容器内で培養される細胞の生育状態を観察する目的に好適なものである。このような観察目的の実験においては、試料容器内で細胞が二次元培養されてなる試料が適宜の染料によって染色される。試料容器内を撮像した画像では、細胞が占める領域が染色されて染色領域をなす一方、細胞が存在しない領域は染料の色が現れない非染色領域となる。以下では、画像処理装置100が実行可能な画像処理のうち、撮像した画像から染色領域と非染色領域とを自動的に識別し、その結果から画像を2値化する一連の処理について説明する。
【0021】
図2は画像処理の一例を示すフローチャートである。この画像処理は、画像処理部2のCPU21がストレージ22に予め保存されている制御プログラムを実行して装置各部を制御することにより実現される。最初に、予め用意された試料、すなわち試料容器内で細胞が培養されたものが撮像部1により撮像され、これにより試料の原画像が取得される(ステップS101)。
【0022】
図3は原画像とそれから得られる二次データとを例示する図である。
図3(a)は原画像の一例を示す図である。この原画像では、略円形の試料容器内底面に、細胞が存在せず培地が露出して比較的高輝度、すなわち白に近い淡い画像濃度の領域(非染色領域)と、染色された細胞が分布し非染色領域よりも高い画像濃度(低輝度)の染色領域とが混在している。続いて、これら2種類の領域を以下のようにして区分する。
【0023】
まず、得られた原画像を構成する画素のうち、試料容器内部に対応する各画素の画素値の度数分布を求め、それに対応するヒストグラムを作成する(ステップS102)。
図3(b)はヒストグラムの一例を示す図である。ここでは原画像をモノクロ画像とし、各画素の画素値は当該画素の輝度を多階調で表したものとする。各画素が8ビットデータで表される場合、画素値は0から255までの256段階で表され、数値が小さいほど当該画素が低輝度、つまり暗く黒色に近いことを表し、数値が大きいほど当該画素が高輝度、つまり明るく白色に近いことを表す。
【0024】
染色領域と非染色領域とを含む原画像のヒストグラムでは、
図3(b)に示すように、染色領域に対応する低輝度側のピーク(山)と、非染色領域に対応する高輝度側のピークとが現れ、これらのピーク間のバレー(谷)に相当する位置に、染色領域と非染色領域とを分ける画素値の閾値が存在すると期待される。すなわち、当該閾値よりも低輝度側の画素値を有する画素は染色領域に属し、閾値よりも高輝度側の画素値を有する画素は非染色領域に属する蓋然性が高いと言える。そこで、この画像処理では、原画像から得られた度数分布に基づき、染色領域と非染色領域とを区分するための画素値の閾値を決定する。
【0025】
しかしながら、染色された細胞の色合いには個体差やばらつきがあるため、ヒストグラムに2つのピークが明瞭に現れるとは限らず、
図3(b)に示すように、主要なピークの他にも細かい凹凸が多数現れることがある。そこで、このような細かい変動を除去するためにヒストグラムのスムージングを行う(ステップS103)。
【0026】
スムージングの方法としては、例えば移動平均処理、メディアンフィルタ処理などが考えられる。ここでは度数軸での数値の操作を回避するために、画素値を一定周期でサンプリング抽出することで画素値の間引きを行い、これにより細かい凹凸のないヒストグラムを得る。この間引きは、画素値のスケールにおいてその解像度を粗くすることと等価である。本願発明者の知見では、画素値が8ビット256段階で表される場合、画素値を(1/8)程度に間引くことで、有意な情報を失うことなく無意味な凹凸を消滅させることができることがわかっている。しかしながら、目的に応じて間引きの度合いを変更してもよい。またスムージング方法についてもこれに限定されない。
【0027】
図3(b)に黒丸印で示すように、画素値を8ずつスキップしながら当該画素値に対応する度数の数値を抽出することで、(1/8)に間引かれた度数分布が得られる。より一般化して言うと、間引きの比率(この例では8)を公差とする等差数列上の数値に該当する画素値をそれぞれ一の新たな階級とし、当該画素値に対応する度数を新たな度数とする新たな度数分布を求めることにより、スムージング後の度数分布およびそれに対応するヒストグラムを得ることができる。
【0028】
図3(b)に示す例では、等差数列の初項を0、公差を8とする等差数列{0,8,16,32,…}の各項に該当する画素値により度数をサンプリング抽出することでスムージング(間引き)を実現しているが、初項を1ないし7のいずれかの値としてもよい。また、公差についても上記したように8に限定されず適宜変更可能である。このようにしてスムージングを行うことで、有意でない凹凸が除去された新たな度数分布が求められる。続いて、当該度数分布に対応するヒストグラムに現れるピークおよびバレーの位置と、それらの高さとが検出される(ステップS104)。
【0029】
図4はピークおよびバレー検出処理を示すフローチャートである。最初に、処理に用いられる変数等の初期化が行われる(ステップS201)。この処理では、スムージング後のヒストグラムにおける各階級の度数を格納する配列変数H[i]、当該ヒストグラムの変化状態を表す配列変数A[i]、ピーク位置を記録するための配列変数P[i]、バレー位置を記録するための配列変数V[i]、ピークの出現個数をカウントするスカラー変数Cp、バレーの出現個数をカウントするスカラー変数Cv、および、ヒストグラムの変化傾向を表すスカラー変数Tが用いられる。
【0030】
なお、各配列変数のパラメータiは、スムージング後の度数分布およびヒストグラムにおける各階級を表すものであり、元のヒストグラムからサンプリング抽出された画素値と1対1に対応する。すなわち、サンプリング抽出する際の等差数列の初項,第2項,第3項,…に相当する画素値が、階級数0,1,2,…にそれぞれ対応する。前述した初項0、公差8の等差数列に基づく間引きの場合、画素値0,8,16,…がそれぞれ階級数0,1,2,…に対応する。間引きを行わない場合には、画素値がそのまま階級数となる。以下では、スムージング後の階級数を符号Nにより表す。256段階の元データを(1/8)に間引くケースでは、N=32である。
【0031】
初期状態では、配列変数H[i]にはスムージング後の度数分布における階級数i(i=0,1,…,N)のそれぞれに対応する度数の値が格納される。他の配列変数A[i]、P[i]、V[i]にはヌルデータが設定される。またスカラー変数Cp、Cvにはそれぞれ初期値「0」が設定される。またヒストグラムが階級とともに上昇する局面であるか下降する局面であるかの傾向を示すスカラー変数Tには、初期値「up」が設定される。
【0032】
続いて、スムージング後の度数分布を表す配列変数H[i]に基づき、ヒストグラムの変化状態を示す配列変数A[i]を記録する(ステップS202)。具体的には、互いに隣接する値H[i]と値H[i−1]との比較に基づく場合分けにより、次の条件式、
H[i]>H[i−1]のとき、「上昇」
H[i]=H[i−1]のとき、「不変」
H[i]<H[i−1]のとき、「下降」
により値A[i]を設定する。上記定義から明らかなように、値A[i]が「上昇」であるとき、当該階級では1つ下の階級よりも度数が増加している。また、値A[i]が「不変」であるとき、当該階級では1つ下の階級と度数が同じである。また、値A[i]が「下降」であるとき、当該階級では1つ下の階級よりも度数が減少している。このように、配列変数A[i]は、ヒストグラムの各所における度数の増減の状態を表している。
【0033】
そして、ステップS204ないしS208の処理を各階級iについてループ実行することにより各階級の度数が評価され、ヒストグラムにおけるピークおよびバレーの位置とその高さとが特定される。具体的には、評価する階級数iを初期値1に設定し(ステップS203)、階級数が最後の値Nとなるまで(ステップS209)階級数iを1つずつインクリメントしながら(ステップS210)、ステップS204ないしS209のループ処理を実行する。
【0034】
個々のループ処理の内容について説明する。ステップS204では、現在着目する階級数iに対応する値A[i]が「不変」であるか否かを判定する。値A[i]が「不変」であれば(ステップS104においてYES)、ステップS205ないしS208の処理はスキップする。値A[i]が「上昇」または「下降」であれば(ステップS104においてNO)、続いてステップS205が実行される。
【0035】
ステップS205では、現在着目する階級数iに対応する値A[i]とスカラー変数Tとを評価する。具体的には、スカラー変数Tの値が「up」であり、かつ、値A[i]が「下降」である場合には、続いてステップS206を実行するが、それ以外の場合にはステップS206をスキップする。
【0036】
ステップS206では、以下のように変数の書き換えを行う。すなわち、現在着目している階級iよりも1つ小さい階級(i−1)に対応する変数P[i−1]に、当該位置にピークがあることを示す情報を記録する。ピーク位置をどのような態様で記録するかは任意であり、例えばこのような配列変数を用いず、単にメモリやレジスタにピーク位置を記憶させておくだけでもよい。また、ピークの個数を示す変数Cpの値に1が加算され、さらに変数Tが「down」に変更される。
【0037】
続くステップS207では、現在着目する階級数iに対応する値A[i]とスカラー変数Tとを評価する。ここでは、スカラー変数Tの値が「down」であり、かつ、値A[i]が「上昇」である場合には、続いてステップS208を実行する。それ以外の場合にはステップS208をスキップする。
【0038】
ステップS208では、以下のように変数の書き換えを行う。すなわち、現在着目している階級iよりも1つ小さい階級(i−1)に対応する変数V[i−1]に、当該位置にバレーがあることを示す情報を記録する。ピーク位置の記録と同様、情報の態様は任意である。また、バレーの個数を示す変数Cvの値に1が加算され、さらに変数Tが「up」に変更される。
【0039】
上記のようなループ処理によりピークおよびバレーが検出されるプロセスを、実例を挙げて説明する。以下の説明の便宜のために、上記したループ中の条件分岐により取り得る処理経路に番号を付しておく。
図4の右上の表に示したように、ステップS204における判断結果が「YES」であるときの処理経路、すなわちステップS205ないしS208がスキップされてステップS204から直接ステップS209にジャンプする経路を「経路1」と称する。同様に、ステップS204、S205、S207における判断結果がそれぞれ「NO」、「NO」、「YES」であるときの処理経路を「経路2」と称する。また、ステップS204、S205、S207における判断結果がそれぞれ「NO」、「YES」、「NO」であるときの処理経路を「経路3」と称する。また、ステップS204、S205、S207における判断結果がいずれも「NO」であるときの処理経路を「経路4」と称する。
【0040】
なお、表中に番号(5)を付して示すように、ステップS205、S207において判断結果が共に「YES」となるケースは、変数A[i]の定義からみてあり得ない。すなわち、ステップS204ないしS208の全てが順番に実行されるような処理経路に沿って処理が進行することはないので、この処理経路を考える必要はない。
【0041】
図5はヒストグラムの例を示す図である。また、
図6はピークおよびバレー検出処理における変数の状態遷移を示す図である。以下では、
図5(a)に示すヒストグラムを例としてピークおよびバレー検出処理の進行について説明するが、このヒストグラムは説明のための仮想的なものであり、
図3(b)に示すヒストグラムとは直接関係しない。また、
図5(a)のヒストグラムは階級の一部、具体的には0ないしN階級のうちの0ないし10階級のみを示している。
【0042】
スムージング後のヒストグラムが
図5(a)に示すものであったとする。各階級i(i=0,1,2,…,N)に対応する度数の値H[i]を、符号Hi(i=0,1,2,…,N)により表す。すなわち、例えばH[0]=H0、H[1]=H1、…である。
図6の表中で左端に「H[i]」と記した行には、ステップS201において初期化された、階級数iに対応する度数の値H[i]が記入されている。各値の間に挿入された記号(=)、(<)、(>)は、隣接する階級間での度数の大小関係を示しており、
図5(a)のヒストグラムと対応している。すなわち、H0=H1、H1<H2、H2>H3、…である。
【0043】
ステップS202では、配列変数H[i]に基づき、ヒストグラムの変化状態を示す配列変数A[i]が求められる。すなわち、値H[i−1]に対する値H[i]の変化に基づき、値A[i]が「上昇」、「不変」、「下降」のいずれかに設定される。
図5(a)に示す例では、H[0]=H[1]であるので、
図6に示すようにA[1]の値は「不変」となる。また、H[1]<H[2]であるので、A[2]の値は「上昇」となる。さらに、H[2]>H[3]であるので、A[3]の値は「下降」となる。以降の各値も同様にして求められ、ループ処理に供される。変数Tの初期値は前述の通り「up」である。
【0044】
第1回のループ処理(i=1)では、A[i]=A[1]の値が「不変」であるため処理経路1に沿った処理が実行され、各変数の値に変化はない。第2回のループ処理(i=2)では、A[2]の値が「上昇」、Tの値が「up」であるため処理経路4に沿った処理が実行される。この場合も各変数の値に変化はない。
【0045】
第3回のループ処理(i=3)では、A[3]の値が「下降」、Tの値が「up」であるため、ステップS205における判断が「YES」となり、処理経路3に沿った処理が実行される。したがって、P[i−1]、すなわちP[2]にピーク有の情報が記録される。
図6では、黒丸印によりピーク位置を表している。また、ピーク個数をカウントする変数Cpが0から1に変更され、変数Tは「up」から「down」に変更される。
【0046】
第4回のループ処理(i=4)では、A[4]の値が「上昇」、Tの値が「down」であるため、ステップS207における判断が「YES」となり、処理経路2に沿った処理が実行される。したがって、V[3]にバレー有の情報が記録される。
図6では、白丸印によりバレー位置を表している。また、バレー個数をカウントする変数Cvが0から1に変更され、変数Tは「down」から「up」に変更される。
【0047】
第5回のループ処理(i=5)では、A[5]の値が「不変」であるため処理経路1に沿った処理が実行され、各変数の値は変化しない。第6回のループ処理(i=6)では、A[6]の値が「上昇」、Tの値が「up」であるため処理経路4に沿った処理が実行される。この場合も各変数の値に変化はない。
【0048】
第7回のループ処理(i=7)では、A[7]の値が「下降」、Tの値が「up」であるため、第3回と同様、処理経路3に沿った処理が実行される。これにより、P[6]にピークが記録され、ピーク個数をカウントする変数Cpの値が1増加し、Tの値が「down」に変更される。第8回のループ処理(i=8)では、A[8]の値が「下降」、Tの値が「down」であるため、第6回と同様、処理経路4に沿った処理が実行され、各変数の値は変化しない。
【0049】
第9回のループ処理(i=9)では、A[9]の値が「上昇」、Tの値が「down」であるため、処理経路2に沿った処理が実行される。したがって、V[8]にバレー有の情報が記録される。また、バレー個数をカウントする変数Cvが1から2に増加し、変数Tが「down」から「up」に変更される。第10回のループ処理(i=10)では、A[10]の値が「下降」、Tの値が「up」であるため、処理経路3に沿った処理が実行される。これにより、P(9)にピークが記録され、ピーク個数をカウントする変数Cpの値が1増加し、Tの値が「down」に変更される。
【0050】
このように、
図4のフローチャートに示される処理が実行されることで、ヒストグラム中のピーク位置およびバレー位置が特定され記録される。
図6を参照すると、i=2、6および9にピークが記録される一方、i=3、8にバレーが記録されている。この結果は、
図5(a)に示されるヒストグラムのピーク位置およびバレー位置と一致していることがわかる。
【0051】
図2に戻って、本実施形態の画像処理の説明を続ける。上記のようにしてヒストグラムにおけるピークおよびバレーが特定されると、バレーの評価およびそれに基づく閾値の決定が行われる。検出されたバレーの個数、すなわち変数Cvの値によって処理内容が異なる。
【0052】
検出されたバレーの個数が2以上であるとき(ステップS105においてYES)、各バレーのうちその深さが最大であるものの位置に対応する画素値を閾値とする(ステップS106、S107)。バレーの評価は次のようにして行われる。
【0053】
図5(b)はバレーの評価方法を説明する図である。
図5(a)に示すヒストグラムについてピークおよびバレーの検出を行うと、
図5(b)に示すように、i=2の位置に値H2を有するピークP2が、i=6の位置に値H6を有するピークP6が、i=9の位置に値H9を有するピークP9が、それぞれ検出される。また、i=3の位置に値H3を有するバレーV3が、i=8の位置に値H8を有するバレーV8が、それぞれ検出される。
【0054】
染色領域と非染色領域とを区分する画素値の閾値は、ヒストグラムにおいて染色領域に対応するピークと非染色領域に対応するピークとの間にあると考えられる。したがって、2つのピークの間に存在する深いバレーの位置に対応する画素値を閾値とすることが有効である。この観点から、各バレーはヒストグラムにおいて当該バレーを挟む位置にある2つのピークから見た深さにより評価される。
【0055】
具体的には、
図5(b)に示すように、バレーV3の深さは、当該バレーV3を挟む2つのピークP2、P6を結ぶ線分(破線)とバレーV3を通り縦軸(度数軸)に平行な(方程式i=3で表される直線に相当する)線分との交点Q3から、バレーV3までの距離D3により定義される。一方、バレーV8の深さは、当該バレーV8を挟む2つのピークP6、P9を結ぶ線分とバレーV8を通り縦軸に平行な線分との交点Q8からバレーV8までの距離D8により定義される。
【0056】
数式を用いてバレーの深さを表すと次のようになる。例えばバレーV3の深さについては次のように表すことができる。点Q3に相当する度数の値をh3とすると、
図5(b)におけるピークP2とピークP6との関係から明らかなように、
h3=H2+(H6−H2)・(3−2)/(6−2)
と表すことができる。ここで、数値3、2、6はそれぞれ、ピークP3、P2、P6の位置に対応する階級iの値である。したがって、バレーV3の深さD3については次式、
D3=h3−H3=H2+(H6−H2)・(3−2)/(6−2)−H3
により表すことができる。このように、各バレーの深さについては、当該バレーの位置および度数の値、当該バレーを挟む2つのピークそれぞれの位置および度数の値から算出することが可能である。
【0057】
各バレーのうち、上記のようにして求められた深さが最大であるものが、2つのピークを分ける最も主要なバレーであると考えられる。当該バレー位置に相当する階級に対応する画素値が、染色領域と非染色領域とを分ける閾値として設定される(ステップS107)。バレーが複数検出された場合には、このようにして閾値が決定される。
【0058】
一方、検出されたバレーが1つであった場合(ステップS105においてNOかつステップS121においてYES)、つまり1つのバレーを挟む2つのピークのみが検出された場合には、当然にこれら2つのピークが染色領域および非染色領域に対応し、その間のバレーが染色領域と非染色領域とを分けるものであると言える。したがって、当該バレー位置に相当する階級に対応する画素値が、この場合の閾値として設定される(ステップS122)。
【0059】
また、バレーの個数が0、つまりバレーが検出されなかった場合には(ステップS121においてNO)、1つのピークのみが存在することが示唆されており、このことは試料容器内全体が染色領域または非染色領域で占められている蓋然性が高いことを意味する。全体が非染色領域であるということは細胞が生育していない状態であり、このような試料が観察対象とされることはあまりない。より現実的には、試料容器内全体に細胞が広がり、画像全体が染色領域となっていると考えられる。そこで、この場合には、ヒストグラムに現れる単一ピークの高輝度側の裾位置に対応する画素値を閾値に設定する(ステップS123)。
【0060】
このようにして閾値が決定されると、閾値に基づいて染色領域と非染色領域とが区分される(ステップS108)。具体的には、閾値よりも低輝度の画素値を有する暗い画素は染色領域に属すると見なされ、閾値よりも高輝度の画素値を有する明るい画素は非染色領域に属すると見なされる。閾値と等しい画素値を有する画素を染色領域、非染色領域のいずれに区分するかは任意である。こうして、原画像内の各画素が染色領域、非染色領域のいずれかに区分される。
【0061】
続いて、原画像のコンフルエンシーが算出される(ステップS109)。コンフルエンシーは、原画像(厳密にはそのうち試料容器内に対応する領域)のうち染色領域が占める比率(面積比)を表す指標値である。細胞が存在せず原画像の全体が非染色領域である場合、コンフルエンシーは0、逆に原画像の全体が染色領域である場合のコンフルエンシーは1である。コンフルエンシーの値により、試料容器内における細胞の生育状態を定量的に表すことができる。閾値が適宜に設定されることで、撮像された原画像から自動的に算出されるコンフルエンシーの値により細胞の生育状態を定量的に表すことが可能になる。
【0062】
また、閾値に基づき区分された染色領域と非染色領域とに互いに異なる画素値を付与することにより、2値化された画像が作成される(ステップS110)。作成された2値化画像は、ディスプレイ32に表示されユーザーに提示される(ステップS111)。または、インターフェース23を介して外部装置に出力される。
【0063】
図7は原画像およびこれを2値化した2値化画像の例を示す図である。具体的には、
図7(a)は原画像の一例であり、
図7(b)はそのヒストグラムを示す。また、
図7(c)は2値化された画像を示す図である。
図7(a)に示すように、この試料では、細胞が分布し染色された染色領域と、細胞が存在しない非染色領域とが複雑に入り混じっており、染色領域においても濃淡のばらつきが大きい。このため、
図7(b)に示すように、ヒストグラムにも複数の大きな凹凸が現れる。
【0064】
このようなヒストグラムを持つ原画像に対し、上記した画像処理を実行して得られた2値化画像が、
図7(c)に示す画像である。
図7(c)では、染色領域に区分された画素が黒く、非染色領域に区分された画素が白く塗り分けられている。すなわち、染色領域に区分された画素に比較的低輝度の第1の画素値が割り当てられる一方、非染色領域に区分された画素には第1の画素値に対し比較的高輝度の第2の画素値が割り当てられる。
図7(a)に示す原画像と比較すると、原画像の濃淡から視認により把握される染色領域と非染色領域との境界と、画像処理により自動作成された2値化画像におけるこれらの領域の境界とがよく一致していると言える。
図7(b)において符号Thは、本実施形態の画像処理によって設定された閾値を示している。2つのピークから見た深さが最大であるバレーの位置に閾値が設定されていることがわかる。
【0065】
図8は原画像およびこれに対応するヒストグラムの他の例を示す図である。具体的には、
図8(a)はヒストグラムが単一ピークを持つ画像の例であり、
図8(b)はヒストグラムが単一バレーを持つ画像の例である。
図8(a)に示す原画像では、試料容器内全体に染色領域が広がっており、その濃度のばらつきも小さい。このような試料は、容器内全体に細胞が分布したものと考えられる。ヒストグラム上に破線で示すように、ピークの高輝度側裾位置に閾値を設定することで、原画像全体が染色領域に区分されることになる。
【0066】
また、
図8(b)に示す原画像では、例えば
図7(a)に示す画像と比較すると、明るい非染色領域と暗い染色領域との違いが比較的明瞭に現れている。このような原画像に対応するヒストグラムでは、染色領域に相当する低輝度側のピークと非染色領域に相当する高輝度側のピークとがはっきりと表れる。したがって、ヒストグラム上に破線で示すように、2つのピークに挟まれたバレーの位置に閾値を設定することで、染色領域と非染色領域とを的確に区別することができる。
【0067】
以上のように、この実施形態においては、原画像を構成する各画素の画素値のヒストグラムにおけるピークおよびバレーを検出し、検出されたバレーのうち、当該バレーを挟む2つのピークから評価したバレーの深さが最大であるものの位置に、染色領域と非染色領域とを区分するための画素値の閾値を設定する。このようにすることで、ユーザーの視認による区分結果と違和感のない区分結果を、画像処理により自動的に得ることができる。
【0068】
バレーの評価に際しては、当該バレーを挟む2つのピークを結ぶ線分と、当該バレーを通り縦軸(度数軸)に平行な線分との交点に相当する度数の値と、当該バレーにおける度数の値との差をもって当該バレーの深さとする。こうすることで、複数のバレーの中から2つのピークの間の最も顕著なバレーを特定することができる。
【0069】
多階調表現される画素値のヒストグラムにおいては、試料の濃度ばらつきに起因する細かな凹凸が生じ、それらの全てをピークおよびバレーとして取り扱うことは却って判定精度を低下させる。スムージングを行うことで、そのような小さな凹凸を予め除去しておくことが望ましい。上記実施形態では、スムージングの一態様として、画素値全体のうちサンプリング抽出された一部の画素値とそれに対応する度数の値とを用いて再構成されたヒストグラムにおいてピークおよびバレーを検出し閾値を決定する。具体的には、抽出される画素値の数列が全体として等差数列となるように、画素値の周期的な間引きを行う。画素値の間引きを適切に行うことで、小さな凹凸に影響されずに閾値を決定することができる。
【0070】
なお、検出されたバレーが1つである場合には、当該バレーを挟む2つのピークがそれぞれ染色領域と非染色領域とに対応していると考えられる。そこで、この場合には単一のバレー位置に閾値を設定することで、染色領域と非染色領域とを的確に区分することが可能である。
【0071】
また、バレーが検出されない、つまりヒストグラムにおいて単一のピークのみが存在する場合には、原画像全体が染色領域となっている蓋然性が高いとの観点から、当該ピークの高輝度側の裾位置に閾値を設定する。こうすることで、ピークに含まれる画素が全て染色領域に区分されることとなり、実態と一致する結果が得られる。
【0072】
また、上記のようにして決定された閾値に基づいて原画像を染色領域と非染色領域とに区分することにより、ユーザーの目視に頼らず、画像処理によって自動的に染色領域と非染色領域とを識別することが可能である。
【0073】
また、染色領域に相当する画素と非染色領域に相当する画素とで互いに異なる画素値を付与した2値化画像を作成することにより、染色領域および非染色領域の分布状態を容易に視認可能な画像をユーザーに提供することができる。
【0074】
以上説明したように、この実施形態の画像処理装置100では、撮像部1、画像処理部2およびUI部3が、それぞれ本発明の「画像取得手段」、「画像処理手段」および「出力手段」として機能している。また、撮像部1は本発明の「撮像部」としても機能しており、ディスプレイ32が本発明の「表示部」として機能している。
【0075】
なお、本発明は上記した実施形態に限定されるものではなく、その趣旨を逸脱しない限りにおいて上述したもの以外に種々の変更を行うことが可能である。例えば、上記実施形態の画像処理装置100は、本発明の「画像取得手段」としての撮像部1を備えるものであるが、本発明は、自身は試料を撮像する機能を有しない画像処理装置にも適用可能である。すなわち、本発明にかかる画像処理装置は、外部の撮像装置で撮像された原画像の画像データを受け取って当該原画像に対し上記した処理を実行する態様であってもよい。
【0076】
この場合、外部装置から画像データを受け取るインターフェースが本発明の「画像取得手段」の「受信部」として機能することになる。上記実施形態においては、画像処理部2のインターフェース23が当該機能を担うことにより、撮像部1による撮像された原画像と同様、外部で撮像された原画像についても処理を行うことが可能となる。
【0077】
なお、撮像機能を含まない本発明の実施態様は、前述したように、汎用のパーソナルコンピュータやワークステーション等のハードウェアと、本発明にかかる処理アルゴリズムを当該ハードウェアに実現させるためのソフトウェアとの組み合わせによって実現することも可能である。すなわち、汎用ハードウェアに本発明の技術思想に基づく制御プログラムを実装することにより、本発明を実施することが可能である。
【0078】
また、上記実施形態の画像処理装置100は、画像処理の結果として得られる2値化画像を表示するディスプレイ32を有している。しかしながら、画像処理の結果については2値化して出力するのみでなく、例えば、原画像に対し、染色領域に区分された領域と非染色領域に区分された領域とで異なる視覚情報を付与する画像処理を施すことによって出力するようにしてもよい。また、画像処理後の画像を表示する機能については外部の表示装置に担わせ、当該表示装置に対して画像処理結果を出力するようにしてもよい。また、外部の演算装置に対して結果を出力するようにしてもよい。上記実施形態においては、画像処理部2のインターフェース23が外部へのデータ出力を担う本発明の「出力手段」として機能することで、そのような目的を達成することが可能である。
【0079】
また、上記実施形態では、明るい画素ほど値が大きくなるような画素の輝度に相当する画素値に基づいて処理を行っている。これに代えて、例えば、画像濃度の高い、つまり暗い画素ほど値が大きくなるように定義された画素値を用いても、同様に処理を行うことが可能である。
【0080】
また、本明細書では発明の原理の理解を容易にするためにヒストグラムを例示して説明したが、実際の処理においては、度数分布が求まればその結果から直接的にヒストグラム上のピークおよびバレーを検出することが可能である。したがって、本発明においてヒストグラムを作成すること自体は必須の要件ではない。