以下、本発明の例示的な実施形態について説明する。まず、図1を参照して、本実施形態の眼底画像処理装置であるパーソナルコンピュータ(以下、「PC」という。)1の概略構成について説明する。
本実施形態では、眼底画像を撮影する眼底撮影装置10と、眼底画像を処理するPC1とが別のデバイスである。PC1は、眼底撮影装置10によって撮影された眼底画像を、ネットワークおよび外部メモリ等の少なくともいずれかを介して取得し、取得した眼底画像を処理する。しかし、眼底画像処理装置として動作することができるのは、PC1に限定されない。例えば、眼底撮影装置10が撮影した眼底画像を、眼底撮影装置10自身が処理してもよい。この場合、眼底撮影装置10が眼底画像処理装置として動作する。
図1に示すように、PC1は、PC1の制御を司るCPU(プロセッサ)2を備える。CPU2には、ROM3、RAM4、HDD5、通信I/F6、表示制御部7、操作処理部8、および外部メモリI/F9が、バスを介して接続されている。
ROM3には、CPU2が実行するBIOS等のプログラムが記憶されている。RAM4は各種情報を一時的に記憶する。HDD(ハードディスクドライブ)5は、電源の供給が遮断されても記憶内容を保持できる非一過性の記憶媒体である。非一過性の記憶媒体として、フラッシュROM等の他の記憶媒体を用いてもよい。HDD5には、眼底画像を処理するための眼底画像処理プログラムが記憶されている。具体的には、本実施形態では、後述する動静脈比算出処理を実行する動静脈比算出プログラム、乳頭検出処理を実行する乳頭検出プログラム、血管検出処理を実行する血管検出プログラム等がHDD5に記憶されている。
表示制御部7は、モニタ13の表示を制御する。操作処理部8は、PC1に対するユーザの各種操作入力を受け付けるための操作部14(例えば、キーボード、マウス等)に接続し、操作入力を検知する。なお、本実施形態では、外付けのモニタ13および操作部14が用いられる。しかし、モニタ13および操作部14の少なくとも一部がPC1に組み込まれていてもよい。
通信I/F6は、PC1を眼底撮影装置10等の外部機器に接続する。本実施形態のPC1は、眼底撮影装置10によって撮影された眼底画像のデータを、通信I/F6を介して取得することができる。外部メモリI/F9は、外部メモリ15をPC1に接続する。外部メモリ15には、例えばUSBメモリ、CD−ROM等の種々の記憶媒体を使用することができる。本実施形態のPC1は、眼底撮影装置10によって撮影された眼底画像のデータを、外部メモリ15を介して取得することもできる。例えば、ユーザは、外部メモリ15を眼底撮影装置10に装着し、眼底撮影装置10によって撮影された眼底画像のデータを外部メモリ15に記憶させる。次いで、ユーザは、外部メモリ15をPC1に装着し、外部メモリ15に記憶された眼底画像のデータをPC1に読み込ませる。その結果、眼底画像のデータがPC1によって取得される。
眼底画像撮影装置10には、眼底画像を撮影することが可能な種々のデバイスを用いることができる。一例として、本実施形態では、瞳孔を通じて眼底を照明・撮影する周知の眼底カメラが、眼底画像撮影装置10として用いられる。しかし、立体眼底カメラ、眼科用走査型レーザ検眼鏡(SLO)、光断層干渉計(OCT)、細隙灯顕微鏡等を、眼底画像撮影装置10として用いてもよい。なお、立体眼底カメラは、1つの眼底を、視差が異なる複数の方向から撮影する。SLOは、眼底で照明光を走査し、眼底で反射された照明光の反射光を受光することで眼底画像を取得する。また、OCTの主な機能は、眼底で走査させた反射照明光と参照光の干渉信号を取得し、取得した干渉信号から眼底の断層画像を得ることである。しかし、OCTによって取得された干渉信号を処理することで、眼底の二次元画像を取得することも可能である。
図2から図16を参照して、本実施形態の眼底画像処理について説明する。図2に示すように、本実施形態の眼底画像処理には、乳頭検出処理(S5)、血管検出処理(S6)、および動静脈径比算出処理(S7)が含まれる。乳頭検出処理(S5)は、眼底画像に含まれる乳頭を検出する処理である。血管検出処理(S6)は、眼底画像に含まれる血管を検出処理である。動静脈径比算出処理(S7)は、眼底画像に含まれる動脈の径と静脈の径の比を算出する処理である。
以下説明する処理は、単なる例示的な処理である。従って、以下説明する処理に対し、処理の追加、変更、省略等を行っても良いことは言うまでも無い。例えば、本実施形態の動静脈径比算出処理(S7)では、乳頭検出処理(S5)による乳頭の検出結果と、血管検出処理(S6)による血管の検出結果とに基づいて、眼底の血管における動静脈径比が算出される。しかし、PC1のCPU2は、S5〜S7の全てを実行する必要は無い。より具体的には、CPU2は、乳頭検出処理および血管検出処理の少なくともいずれかを実行しない場合でも、眼底画像に含まれる乳頭および血管を検出できれば、検出結果を用いて動静脈比算出処理を実行することができる。この場合、CPU2は、ユーザに操作部14を操作させることで、眼底画像における乳頭および血管の位置をユーザに指定させて、指定された位置を乳頭および血管の位置として特定してもよい。また、CPU2は、他のアルゴリズムを用いて乳頭および血管の位置を検出し、検出した位置を乳頭および血管の位置として特定してもよい。
前述したように、PC1のHDD5には、眼底画像処理を制御するための眼底画像処理プログラムが記憶されている。本実施形態のCPU2は、眼底画像の処理の実行指示を操作部14または外部機器から入力すると、眼底画像処理プログラムに従って、図2に示す眼底画像処理を実行する。
図2に示すように、眼底画像処理が開始されると、被検眼の眼底画像のデータが取得され、RAM4に眼底画像が展開される(S1)。前述したように、本実施形態では、眼底画像のデータは、通信I/F6または外部メモリI/F9を介して眼底撮影装置10から取得されればよい。また、眼底画像のデータは、眼底画像処理が実行される前に、予めHDD5に記憶されていてもよい。この場合、S1の処理では、HDD5から眼底画像のデータが取得されればよい。
なお、本実施形態では、RGB形式の256階調で表現された眼底画像のデータが用いられる。従って、例えば血管検出処理(S6)では、赤色(R)の光に比べて血管に吸収され易い緑色(G)および青色(B)の値の少なくとも一方を用いることで、R値を用いる場合に比べて血管の検出精度が向上する。しかし、PC1は、血管とその他の部位とを識別可能な画像を用いれば、動静脈径比の算出等を実行できる。
以後の処理を容易にするために、取得された眼底画像に対する前処理が行われる(S2)。一例として、本実施形態の前処理では、公知のメディアンフィルタによってノイズが除去される。画像領域の内側と外側を識別するために、マスク処理が施される。また、画素値のヒストグラムを処理することで、画素値が最適化される。なお、眼底画像に対する前処理の具体的な内容が適宜変更できることは言うまでも無い。前処理を省略してもよい。
S1で取得された眼底画像のデータから、G値画像のデータが取得される(S3)。G値画像とは、緑色を示すG値のみで表現される眼底画像である。本実施形態のS1では、RGB形式の眼底画像が既に取得されている。従って、CPU2は、RGB形式の眼底画像のデータからG値のみを取得することで、G値画像のデータを取得すればよい。次いで、G値輝度差画像取得処理(S4)、乳頭検出処理(S5)、血管検出処理(S6)、および動静脈径比算出処理(S7)が順に実行されて、眼底画像処理は終了する。以下、S4〜S7の処理について詳細に説明する。
図3を参照して、G値輝度差画像取得処理(S4)について説明する。G値輝度差画像とは、注目画素近傍の内部領域と、内部領域の周囲にある外部領域との輝度差によって表現される画像である。まず、G値画像を構成する複数の画素の1つが注目画素とされる(S11)。注目画素から所定範囲内にある領域(以下、「内部領域」という。)のGの最大値が取得される(S12)。本実施形態では、注目画素から0度(X軸の正の方向)、45度、90度(Y軸の正の方向)、135度、180度(X軸の負の方向)、225度、270度(Y軸の負の方向)、315度の方向に所定距離(本実施形態では1画素分の距離)内にある画素の領域が、内部領域とされる。従って、本実施形態では、内部領域の形状は矩形状となる。
内部領域の周囲に位置する領域(以下、「外部領域」という。)のGの最大値が取得される(S13)。本実施形態では、注目画素から0度、45度、90度、135度、180度、225度、270度、315度の方向に位置する画素のうち、注目画素からの距離が所定範囲内(本実施形態では、3画素分〜10画素分の距離の範囲内)にある画素の領域が、外部領域とされる。従って、本実施形態では、外部領域の形状は放射状(ラジアル状)となる。なお、内部領域および外部領域の形状および範囲は適宜変更できる。
CPU2は、外部領域におけるGの最大値から、内部領域におけるGの最大値を引くことで、輝度差値が算出される(S14)。前述したように、緑色(G)および青色(B)は、赤色(R)に比べて血管に吸収され易い。その結果、G値画像およびB値画像では、血管内の画素の画素値(G値またはB値)は、血管外の画素の画素値よりも低くなる。従って、内部領域が血管内にあれば、内部領域における画素値の最大値は、血管外の領域を含む外部領域の画素値の最大値よりも低くなる。また、内部領域および外部領域が共に血管外の領域を含む場合、内部領域における画素値の最大値と、外部領域における画素値の最大値との差は、内部領域が血管内にある場合に比べて小さくなる。
CPU2は、以上の特質を活用することで、血管が明確に現れるG値輝度差画像を取得する。詳細には、S14で算出した輝度差値が閾値以上であるか否かが判断される(S16)。閾値は、予め定められた固定値でもよいし、ユーザによって設定された値でもよい。輝度差値が閾値以上であれば、CPU2は、S14で算出した輝度差値を注目画素に対応付けて記憶させることで、輝度差値を注目画素に紐付ける(S17)。輝度差値が閾値未満であれば(S16:NO)、処理はそのままS18の判断に移行する。
次いで、G値画像を構成する全画素に対する処理が終了したか否かが判断される(S18)。未だ注目画素とされていない未処理の画素が存在する場合(S18:NO)、未処理の画素の1つが注目画素とされて(S19)、処理はS12へ戻る。全画素に対する処理が終了すると(S18:YES)、S17で記憶された輝度差値で画像が描画されることで、G値輝度差画像が取得される(S20)。処理は眼底画像処理(図2参照)へ戻り、乳頭検出処理(S5)へ移行する。取得されたG値輝度差画像では、血管内の画素と血管外の画素の間で輝度の差が明確に現れる。従って、CPU2は、後述する血管検出処理(図8参照)等でG値輝度差画像を用いることで、より正確に血管を検出することができる。しかし、前述したように、G値画像、B値画像、G値輝度差画像を取得せずに処理を行うことも可能である。また、CPU2は、G値輝度差画像取得処理と同様の手順で、B値輝度差画像を取得してもよい。
図4から図7を参照して、乳頭検出処理について説明する。一般的に、乳頭領域の輝度は、眼底における他の領域の輝度よりも高くなる。従って、乳頭検出処理では、眼底画像の輝度によって乳頭が検出される。しかし、眼底では、乳頭の領域の輝度のみが相対的に高くなるとは限らない。例えば、病変等による白斑が眼底に存在する場合、眼底画像にノイズが存在する場合、および、光学系によるフレアが眼底画像に含まれる場合等には、乳頭と白斑等とを区別できることが望ましい。本実施形態の乳頭検出処理は、乳頭と白斑等とを区別することで、乳頭の検出精度を向上させることができる。
まず、S1(図2参照)で取得された眼底画像から、高輝度の領域が抽出される(S21)。図5に、高輝度領域21が抽出された眼底画像20の一例を示す。本実施形態では、CPU2は、高輝度領域21として抽出される画素数が、眼底画像20の全画素数に対して所定の割合となるように、高輝度領域21を抽出するための閾値を決定する。眼底画像20全体を構成する全画素のうち、乳頭を構成する画素が占める割合は、対象とする眼に関わらず、ある程度の範囲に収まる。従って、本実施形態では、高輝度領域21を抽出するための閾値は、眼底画像20全体に対する乳頭の割合に基づいて決定される。なお、閾値は、予め定められた固定値でもよいし、ユーザによって変更できる値でもよい。RGBの各色に対して別々に閾値を設定してもよい。RGB形式以外の形式の眼底画像(例えばG値画像)から高輝度領域を抽出してもよい。S21では、輝度が閾値以上である画素が連続(隣接)することで形成される1または複数の領域が、高輝度領域21として抽出される。前述したように、乳頭領域の輝度は他の領域よりも高い。よって、乳頭は、S21で抽出された高輝度領域21に含まれている可能性が高い。
次いで、抽出された1または複数の高輝度領域21から、面積が小さい(狭い)高輝度領域21が除外される(S22)。詳細には、本実施形態では、画素数が閾値以下である高輝度領域21が、乳頭の検出対象から除外される。一般的に、乳頭の領域は一定以上の面積を有する。従って、面積が小さい高輝度領域21を検出対象から除外することで、検出精度が向上し、且つCPU2の処理負担も低下する。なお、閾値は、一般的な乳頭の面積を基準として適宜定めればよい。ユーザが閾値を変更できてもよい。
次いで、各高輝度領域21の仮の重心位置が設定される(S23)。詳細には、本実施形態では、図5に示すように、抽出された1または複数の高輝度領域21の各々を取り囲む矩形の基準枠22が設定される。設定された基準枠22における対角線の交点が、高輝度領域21の仮の重心位置24(図6参照)に設定される。なお、仮の重心位置を設定する方法は変更してもよい。例えば、各高輝度領域21を構成する複数の画素における座標の平均を算出し、算出した座標の位置を仮の重心位置に設定してもよい。高輝度領域21内の任意の位置を仮の重心位置に設定してもよい。
次いで、仮の重心位置を中心とした環状の探索パターンが設定される(S24)。探索パターンとは、各高輝度領域21から延びる血管の数を検出するためのパターンである。乳頭には複数の血管が出入りする。従って、本実施形態のCPU2は、高輝度領域21から延びる血管が閾値以上であるか否かによって、高輝度領域21が乳頭を含むか否かを判別する。S24で設定される探索パターンは、血管の検出のために用いられる。本実施形態のS24では、高輝度領域21の全体を取り囲む円環状の探索パターン25が、S23で設定された仮の重心位置24を中心として設定される。探索パターンの形状は、閉じられた円環状である必要は無く、矩形環状、開環状等であってもよい。また、探索パターンは、必ずしも各高輝度領域21の全体を取り囲む必要は無い。
次いで、探索パターン25上の輝度値が探索されることで、探索パターン25上を横断する血管の数が検出される(S25)。本実施形態では、G値輝度差画像取得処理(図3参照)で取得されたG値輝度差画像に、S24で設定された探索パターン25が当てはめられることで、探索パターン25上の血管数が検出される。G値輝度差画像では、血管の輝度と血管外の輝度の差がより明確に現れるため、より精度よく血管数が検出される。しかし、例えば、RGB形式で表現された眼底画像、G値画像等を用いて、探索パターン25上の輝度の差から血管数が検出されてもよい。
1または複数の高輝度領域21から、探索パターン25上の血管数が閾値(例えば4本)以上である高輝度領域21が、乳頭を含む領域として抽出される(S26)。その結果、接続する血管の数が閾値未満である高輝度領域21が、乳頭の候補から除外され、乳頭の検出精度が向上する。
次いで、S26で抽出された高輝度領域21の輪郭部分が抽出される。抽出された輪郭部分から、高輝度領域21の真の重心が決定される(S27)。詳細には、図7に示すように、CPU2は、S23で設定された仮の重心位置24から外側へ向けてスキャンを行う。本実施形態のスキャンは、所定距離離間している2つの測定点P1およびP2を、互いの距離を保った状態でスキャンラインに沿って外側に移動させながら行われる。この場合、内側の測定点P1上の輝度と、外側の測定点P2上の輝度との差が閾値以上となる範囲が特定される。CPU2は、仮の重心位置24を中心として放射状に上記のスキャンを行い、2つの測定点P1,P2における輝度の差が閾値以上となった環状の範囲を、乳頭の輪郭部分が存在する範囲26として抽出する。CPU2は、抽出した範囲26の画素座標の平均を算出し、算出した位置を真の重心位置27として決定する。なお、高輝度領域21の輪郭部分を抽出するための具体的な方法は変更できる。例えば、隣接する2つの領域(例えば、隣接する2つの画素)の輝度の差が閾値よりも高い一定の領域を、輪郭部分が存在する範囲26として検出してもよい。
次いで、CPU2は、S27で抽出された輪郭部分と真の重心位置27を用いて、輪郭部分が円形の高輝度領域21を乳頭の領域として検出する(S28)。詳細には、本実施形態では、真の重心位置27を中心とする円28が設定されると共に、設定された円28の半径Rが変動される。CPU2は、設定した円28のうち、輪郭部分の範囲26と重複する部分が占める割合(以下、「重複割合」という。)を、半径Rを変動しつつ算出する。CPU2は、重複割合が閾値以上となった半径Rのうち、重複割合が最も高くなった半径Rを、乳頭の半径に決定する。また、重複割合が最も高くなった場合の円28の内側を、乳頭として検出する。一方で、重複割合が閾値以上となる円28が存在しなければ、略円形という乳頭の特質を満たす領域が検出されていない。この場合、S21〜S28の処理が繰り返されるか、もしくは処理が終了する。なお、本実施形態では真円形の乳頭が検出されるが、CPU2は真円形の乳頭を検出しなくてもよい。例えば、輪郭部分の範囲26のうち、内側の端部と外側の端部の中間点を結ぶことで形成される点の集合を、乳頭の輪郭として検出してもよい。
次いで、検出された乳頭の輝度分布がチェックされて(S29)、処理は終了する。詳細には、CPU2は、真の重心位置27を中心とし、且つ半径が互いに異なる同心円状のスキャンラインの組を、2組設定する。一方の組のスキャンラインをA組(A1,A2)、他方の組のスキャンラインをB組(B1,B2)とした場合、半径がA1<B1<A2<B2となるように2組のスキャンラインが設定される。さらに、2組のスキャンラインは、B1とA2の間に乳頭の輪郭が位置するように設定される。CPU2は、A1の輝度がA2の輝度よりも高く、且つ、B1の輝度がB2の輝度よりも高い場合に、正確に乳頭が検出されたと判断し、処理を終了する。これにより、略円形でない高輝度領域21が乳頭として検出される可能性を、さらに低下させることができる。なお、S29の処理を省略することも可能である。乳頭検出処理が終了すると、血管検出処理(S6、図2参照)が行われる。
図8から図11を参照して、血管検出処理について説明する。眼底画像を処理して血管を検出する場合、検出中の血管と、検出済みの他の血管とが重複する箇所が生じ得る。本実施形態の血管検出処理によると、CPU2は、同一血管の分岐、異なる血管同士の根元の重なり、および、異なる血管同士の交差のいずれが重複箇所で生じているかを、容易に検出することができる。
まず、シードポイントが検出される(S31)。シードポイントとは、血管の中心座標、角度、および径(本実施形態では二次元方向の幅)を検出する際の基点である。本実施形態では、CPU2は、図9に示すように、径が異なる複数の円形の探索ライン31をG値画像30上で同心円状に設定する。設定した探索ライン31上のG値を探索し、G値の値が閾値以下となる画素が所定数以上連続している箇所を検出する。検出された箇所がシートポイント32となる。なお、シードポイント32の検出方法は変更してもよい。例えば、格子状の探索ラインを設定してシードポイントを検出してもよい。G値画像以外の眼底画像(例えば、RGB形式の眼底画像、G値輝度差画像等)を用いてシードポイントを検出してもよい。
次いで、検出された複数のシードポイント32の1つが注目シードポイントとされる(S32)。注目シードポイントから乳頭33(図9参照)に近づく方向(乳頭33を向く方向)が、血管の方向(角度)を調査するための基準となる方向(以下、「調査方向」という。)とされる(S33)。注目シードポイントが調査ポイントに設定される(S34)。
次いで、調査ポイントを基点として、血管の進行方向が輝度値(本実施形態ではGの階調値)によって調査される(S36)。詳細には、図10に示すように、G値画像上で、調査ポイント35Aから放射状の調査ライン36Aが複数設定される。本実施形態では、乳頭を向く調査方向を中心として、左方および右方にそれぞれ90度の放射状の範囲内に、所定の距離(本実施形態では40画素分の距離)の調査ライン36Aが複数設定される。設定された複数の調査ライン36Aの各々に重なる複数の画素について、G値の平均値が算出される。G値画像では、調査ライン36Aの通過位置が血管40の中心に近い程、調査ライン36A上のG値の平均値は低くなる。従って、算出されたG値の平均値が最も低い調査ライン36A(図10では太いラインで示す)が、進行方向規定ラインとされる。進行方向規定ラインの角度が、調査ポイント35Aを基点とする血管40の進行方向として検出される。なお、血管40の進行方向の調査方法は変更することも可能である。例えば、CPU2は、G値画像の変わりに、図3の処理で取得されたG値輝度差画像によって進行方向を調査してもよい。この場合、調査ライン36Aの通過位置が血管40の中心に近い程、調査ライン36A上の輝度差値(画素値)の平均は高くなる。輝度差画像を用いることで、血管40の進行方向の検出精度は向上する。
次いで、検出された進行方向規定ライン上に、既に検出されている他の血管が存在するか否か(つまり、複数の血管が重複するか否か)が判断される(S37)。進行方向規定ライン上に重複箇所が存在しない場合には(S37:NO)、次の調査ポイントが設定される(S40)。図10に示すように、本実施形態では、検出された進行方向規定ラインの先端が、次の調査ポイント35Bに設定される。
次いで、設定された次の調査ポイント35Bが適正位置にあるか否かが判断される(S41)。本実施形態では、乳頭33の内部、および、眼底画像の画像領域外が、適正でない位置とされる。また、S36の処理において、G値の平均値が閾値以下となる調査ライン36Aが存在しなかった場合にも、血管40の先端部まで調査が完了したと判断され、次の調査ポイント35Bが適正位置にない場合と同様の処理が行われる。
次の調査ポイント35Bが適正位置にある場合(S41:YES)、今回の調査ポイント35Aにおける血管40の径が検出される(S42)。本実施形態では、図10に示すように、進行方向に垂直な方向における血管40の幅が、血管40の径として検出される。より詳細には、本実施形態では、今回の調査ポイント35Aから次の調査ポイント35Bまでの間の複数箇所で血管40の幅が検出される。検出された複数の幅のばらつきが所定範囲内(本実施形態では±2ピクセルの範囲内)に収まっていれば、調査ポイント35Aにおいて検出された幅が、そのまま調査ポイント35Aにおける血管径として採用される。複数の幅のばらつきが所定範囲内に収まらなければ、検出された複数の幅の平均値が、調査ポイント35Aにおける血管径として採用される。本実施形態では、血管の内外の差が表れやすいG値輝度差画像によって血管径が検出されるため、血管径の検出精度が向上する。なお、血管径の具体的な検出方法も変更できる。例えば、複数箇所で血管40の幅を検出することなく、今回の調査ポイント35Aから次の調査ポイント35Bまでのいずれかの箇所の幅(例えば、今回の調査ポイント35Aにおける幅、または、2つの調査ポイント35A,35Bの中間地点における幅等)のみを、血管径として検出してもよい。また、CPU2は、G値輝度差画像以外の画像によって血管径を検出してもよい。
血管径が検出されると、血管中心座標、角度、および血管径が血管データとして登録(本実施形態ではHDD5に記憶)される(S43)。血管中心座標とは、調査ポイント35Aの座標である。角度とは、S36で調査された血管の進行方向の角度である。血管径は、S42で検出された値である。次いで、処理はS36へ戻り、次の調査ポイント35Bを基点として調査ライン36Bが設定され、血管の進行方向の調査が再度行われる(図10参照)。
検出された進行方向規定ライン上に重複箇所が存在する場合には(S37:YES)、分岐交差判定処理が行われて(S38)、処理はS36へ戻る。分岐交差判定処理では、同一血管の分岐、異なる血管同士の根元の重なり、および、異なる血管同士の交差のいずれが重複箇所で生じているかが検出される。
図11に示すように、分岐交差判定処理が開始されると、まず、前述したS42,S43の処理(図8参照)と同様に、血管径が検出され(S51)、血管中心座標、角度、および血管径が登録される(S52)。重複箇所が、乳頭33の中心から距離D1(本実施形態では、乳頭の半径の1.2倍)の範囲内にあるか否かが判断される(S54)。眼底における血管の多くは、乳頭およびその近傍から放射状に延びる。従って、重複箇所が乳頭中心から距離D1の範囲内にある場合には(S54:YES)、調査中の血管が他の血管とは異なる新規血管として登録されて(S62)、処理はS65へ移行する。つまり、S62では、重複している調査中の血管と検出済みの血管とが根元部分で重なっている旨が、HDD5に記憶される。
重複箇所が乳頭中心から距離D1の範囲内になければ(S54:NO)、重複箇所が乳頭中心から距離D2(>D1)の範囲内にあるか否かが判断される。本実施形態では、D2は乳頭の半径の1.4倍である。なお、距離D1および距離D2の値は変更してもよい。
距離D2の範囲よりも外側では、新たな血管が生じている(つまり、血管の根元部分が存在する)可能性は低い。従って、重複箇所が乳頭中心から距離D2の範囲内になければ(S55:NO)、同一血管の分岐、および異なる血管同士の交差のいずれが重複箇所で生じているかが判断される(S63)。詳細には、本実施形態では、重複箇所における2つの血管の角度差が閾値以上であるか否かが判断される(S63)。同一血管が分岐している場合には、2つの分岐血管の角度差は、ほぼ一定の範囲内に収まる。従って、角度差が閾値(本実施形態では40度)未満であれば(S63:NO)、同一血管の分岐が重複箇所で生じている旨が登録されて、処理はS65へ移行する。つまり、角度差が閾値未満の場合、2つの血管の重複箇所は、同一の血管が分岐している分岐部とされる。また、角度差が閾値以上であれば(S63:YES)、異なる血管が交差している旨が登録されて(S64)、処理はS65へ移行する。つまり、角度差が閾値以上である場合、2つの血管の重複箇所は、異なる血管が交差する交差部とされる。
距離D1の外側、且つ距離D2の内側の範囲では、新たな血管が生じている場合もあり、且つ、分岐および交差が生じている場合もある。従って、本実施形態では、重複箇所が距離D1の範囲内に無く、且つ距離D2の範囲内にある場合には(S55:YES)、血管の輝度、グレイ値、および角度差によって、新たな血管が生じているか否かが判断される(S56〜S60)。つまり、重複している2つの血管の差が大きく、且つ角度差が小さい場合には、新たな血管が生じていると判断される。
詳細には、まず、重複する各々の血管のG値およびグレイ値と、2つの血管の角度差とが取得される(S56)。一例として、S56で取得されるG値には、各々の血管の重複部分におけるG値の標準偏差が挙げられる。また、S56で取得されるグレイ値の一例には、各々の血管の重複部分におけるグレイ値の平均値が挙げられる。なお、S56では、重複している2つの血管を比較するための値が取得されればよいため、異なる値が取得されてもよい。次いで、取得されたG値(本実施形態では標準偏差)の差が閾値以上であるか否かが判断される(S58)。差が閾値未満であれば(S58:NO)、処理はS63の判断へ移行する。G値の差が閾値以上であれば(S58:YES)、グレイ値の差が閾値以上であるか否かが判断される(S59)。閾値未満であれば(S59:NO)、処理はS63の判断へ移行する。グレイ値の差が閾値以上であれば(S59:YES)、2つの血管の角度差が閾値以下であるか否かが判断される(S60)。角度差が閾値よりも大きければ(S60:NO)、処理はS63の判断へ移行する。角度差が閾値以下であれば(S60:YES)、調査中の血管が新規血管として登録されて(S62)、処理はS65へ移行する。
次いで、2つの血管の重複箇所を越えた位置に次の調査ポイントが設定されて(S65)、処理は血管検出処理へ戻る。なお、重複箇所で同一血管の分岐が生じている場合、重複箇所を越えた位置には血管は存在しない。この場合、血管検出処理(図8参照)では、分岐交差判定処理(S38)の終了後に処理をS36に戻さずに、S45の判断に移行させてもよい。
図8の説明に戻る。次の調査ポイントが適正位置に無い場合には(S41:NO)、2方向(つまり、乳頭に近づく方向、および乳頭から離間する方向)への調査が完了したか否かが判断される(S45)。1つの方向の調査のみが完了している場合(S45:NO)、調査方向が、乳頭から離間する方向に反転されて(S46)、処理はS36へ戻る。その結果、シードポイント32を基点として、血管の根元から先端までの全てが検出される。2方向への調査が完了している場合(S45:YES)、全てのシードポイント32に対する処理が終了したか否かが判断される(S47)。終了していなければ(S47:NO)、未だ処理されていないシードポイント32に注目シードポイントが変更されて(S48)、処理はS33へ戻る。
全てのシードポイント32に対する処理が終了すると(S47:YES)、血管を樹状構築する処理が行われる(S49)。詳細には、まず、乳頭中心から所定距離(本実施形態では乳頭半径の1.6倍の距離)内にある血管が、基点血管として登録される。乳頭中心から所定距離内に無い血管が、浮動血管として登録される。次いで、浮動血管の両端部(先端および後端)から所定距離(本実施形態では50画素分の距離)且つ所定角度(本実施形態では先端方向または後端方向を中心とした60度)の範囲内に、基点血管が存在するか否かが判断される。先端からの調査範囲、および後端からの調査範囲の少なくともいずれかに基点血管が存在すれば、調査対象の浮動血管が、調査範囲内の基点血管の一部として登録される。以上の処理で、分断された状態で検出された複数の部位が繋げられる。その後、血管検出処理は終了し、動静脈径比算出処理(S7、図2参照)が行われる。
図12から図16を参照して、動静脈径比算出処理について説明する。本実施形態の動静脈径比算出処理では、乳頭の高さよりも上方の領域(以下、「上方領域」という。)と、乳頭の高さよりも下方の領域(以下、「下方領域」という。)の各々で動静脈径比が算出される。その結果、従来に比べて動静脈径比の算出精度が向上する。
図12に示すように、動静脈径比算出処理が開始されると、血管検出処理(図8参照)で検出(特定)された複数の血管の方向が、乳頭を基準に統一される(S71)。本実施形態では、血管データが示す血管の両端部の座標が取得される。両端部のうち、乳頭に近い方の端部と、乳頭から遠い方の端部とが、取得された座標によって特定される。乳頭に近い方の端部が根元、乳頭から遠い方の端部が先端とされて、各血管データにおける血管の方向が統一される。
次いで、特定されている血管の各々が、少なくとも血管の分岐部および交差部を端点として、複数のセグメントに分割される(S72)。図13に示す例では、3本の血管40A,40B,40Cが示されている。血管40Aには分岐部50が存在する。また、血管40Cは、血管40Aと交差して交差部60を形成すると共に、血管40Bと交差して交差部61を形成する。本実施形態では、血管検出処理で実行される分岐交差判定処理(図11参照)において、血管データに加えて分岐部50および交差部60が検出されている。CPU2は、血管40A,40B,40Cの各々を、分岐部50および交差部60を端点として分割し、セグメント化する。その結果、図13に示す例では、血管40Aは、分岐部50および交差部60を端点として、4つのセグメントA1,A2,A3,A4に分割される。血管40Bは、交差部61を端点として、2つのセグメントB1,B2に分割される。血管40Cは、2つの交差部60,61を端点として、3つのセグメントC1,C2,C3に分割される。なお、図13に示す例では、分岐部と交差部のみを端点として血管40A〜Cが分割された。しかし、CPU2は、分岐部および交差部以外にも端点を設けてもよい。例えば、各セグメントの長さがなるべく均一となるように、分岐部および交差部が存在しない血管上の箇所に端点を設けて、血管を分割してもよい。この場合、動静脈径比の算出精度はさらに向上する。また、血管をセグメント化した方が算出精度は向上するが、血管をセグメント化せずに動静脈径比を算出することも可能である。
次いで、セグメント選定処理が行われる(S73)。セグメント選定処理では、S72で分割された複数のセグメントから、動静脈径比を算出する対象として適切なセグメントが選定される。算出対象として不適切である可能性が高いセグメントを除外することで、CPU2の処理負担が低下し、算出精度も向上する。
図14に示すように、セグメント選定処理では、血管の進行方向における長さが閾値未満のセグメントが、動静脈径比を算出する対象のセグメントから除外される(S81)。長さが短すぎるセグメントには、ノイズ等の誤差の影響が反映されやすい。本実施形態のCPU2は、閾値以上の長さを有するセグメントを動静脈径比の算出対象とすることで、ノイズ等の影響を低下させることができる。
次いで、進行方向に対して交差(本実施形態では直交)する方向の幅(径)が閾値未満のセグメントが、算出対象のセグメントから除外される(S82)。幅が短すぎるセグメントは、血管の末端に位置する可能性が高い。本実施形態のCPU2は、閾値以上の幅を有するセグメントを動静脈径比の算出対象とすることで、血管の末端から動静脈径比が算出される可能性を低下させて、算出精度が低下することを抑制できる。
次いで、乳頭からの距離が一定範囲外のセグメントが、算出対象のセグメントから除外される(S83)。乳頭からの距離が近すぎる領域では、複数の血管の根元部分が重なって錯綜している場合等があり、動脈と静脈が並走し難い。一方で、乳頭からの距離が遠すぎる領域では、屈曲・分岐等を経て細くなったセグメントが多いため、動脈と静脈の径を比較する対象としては不向きである。本実施形態では、乳頭からの距離がP1以下の領域(例えば、乳頭中心からの距離が、乳頭半径の1.5倍以下の領域)にあるセグメントと、乳頭からの距離がP2(>P1)以上の領域にあるセグメントとが、算出対象のセグメントから除外される。なお、領域を決定するための閾値P1およびP2は適宜設定できる。また、乳頭からの距離が近すぎる領域、および遠すぎる領域の双方を、セグメントを除外する領域とすることが望ましいが、一方の領域のセグメントのみを除外することも可能である。また、S81〜S83で用いられる閾値は適宜設定すればよく、ユーザが閾値を変更できてもよい。
図12の説明に戻る。セグメント選定処理(S73)が終了すると、上下判定処理が行われる(S74)。上下判定処理では、各セグメントについて、乳頭の高さ(本実施形態では乳頭の中心の高さ)よりも上方の上方領域に位置するセグメントであるか、もしくは乳頭の高さよりも下方の下方領域に位置するセグメントであるかが判定される。また、各セグメントについて、動脈のセグメント、静脈のセグメント、および動静脈が不明なセグメント(以下、「不明セグメント」という。)のいずれであるかが判定される。
図15に示すように、上下判定処理が開始されると、セグメント選定処理(図14参照)で選定された複数のセグメントの1つが対象セグメントとして選定される(S91)。対象セグメントの中心の高さを示す情報が取得される(S92)。一例として、本実施形態では、対象セグメントの先端のY座標と後端のY座標の平均値が、対象セグメントの中心の高さを示す情報として取得される。
次いで、対象セグメントが位置する領域が、乳頭よりも高い(つまり上方の)上方領域であるか否かが判断される(S94)。本実施形態では、対象セグメントの中心の高さを示すY座標と、乳頭の中心のY座標とが比較されることで、対象セグメントの領域が上方領域であるか否かが判断される。
対象セグメントの位置が乳頭よりも高い場合、つまり、対象セグメントが上方領域に位置する場合には(S94:YES)、対象セグメントが動脈であるか否かが判断される(S95)。一般的に、眼底においては、動脈は静脈に比べて明るく、且つ細い(つまり、静脈は動脈に比べて暗く、且つ太い)という性質を有する。CPU2は、セグメントを構成する画素の輝度、およびセグメントの径(幅)の少なくともいずれかを用いて、セグメント、または、複数のセグメントによって構成される血管が動脈および静脈のいずれであるかを判断する。なお、動静脈の判断は、前述した血管検出処理(図8参照)で行われてもよい。対象セグメントが動脈であれば(S95:YES)、対象セグメントが上方領域の動脈セグメントとして登録されて(S96)、処理はS107の判断へ移行する。動脈でなければ(S95:NO)、対象セグメントが静脈であるか否かが判断される(S97)。静脈であれば(S97:YES)、対象セグメントが上方領域の静脈セグメントとして登録されて(S98)、処理はS107の判断へ移行する。対象セグメントに対する動静脈の判断が不可能な場合には(S97:NO)、対象セグメントが上方領域の不明セグメントとして登録されて(S99)、処理はS107の判断へ移行する。
対象セグメントの位置が乳頭よりも低い場合、つまり、対象セグメントが下方領域に位置する場合にも(S94:NO)、上方領域に位置する場合と同様に、動静脈の判定が行われる。対象セグメントが動脈であれば(S101:YES)、下方領域の動脈セグメントとして対象セグメントが登録される(S102)。対象セグメントが動脈でなく(S101:NO)、静脈であれば(S103:YES)、下方領域の静脈セグメントとして対象セグメントが登録される(S104)。対象セグメントが動脈でも静脈でもなければ(S103:NO)、下方領域の不明セグメントとして対象セグメントが登録されて(S105)、処理はS107の判断へ移行する。
次いで、全てのセグメントに対する処理が終了したか否かが判断される(S107)。未だ対象セグメントとされていないセグメントが存在する場合には(S107:NO)、処理はS91へ戻り、他のセグメントに対する判定処理が実行される(S91〜S105)。全てのセグメントが対象セグメントとされると(S107:YES)、処理は動静脈径比算出処理(図12参照)へ戻る。次いで、血管ペア作成処理が行われる(S75)。血管ペア作成処理では、動静脈径比の算出対象となる動脈セグメントと静脈セグメントのペア(以下、「血管ペア」という。)が作成される。
図16に示すように、血管ペア作成処理が開始されると、まず、上方領域における1または複数の動脈セグメントの各々と、上方領域における1または複数の静脈セグメントの各々とのペアの全てが、血管ペアとして作成される(S111)。さらに、下方領域における1または複数の動脈セグメントの各々と、下方領域における1または複数の静脈セグメントの各々とのペアの全てが、血管ペアとして作成される(S112)。つまり、上方領域と下方領域の各々において、血管ペアが別々に作成される。なお、本実施形態では、同一領域内で選定された動脈セグメントと静脈セグメントの全てのペアが作成されるため、1つのセグメントが、複数のペアを構成するセグメントとなり得る。従って、動静脈径比の算出対象となる血管ペアだけを作成する場合に比べて、算出対象として適した血管ペアが作成されない可能性は低下する。
次いで、作成された複数の血管ペアの中から、血管ペアを構成する動脈セグメントと静脈セグメントの角度の差が閾値以上となる血管ペアが、算出対象から除外される(S113)。動静脈径比の算出精度を向上させるためには、極力平行に近い角度で並走している動脈と静脈から径の比を算出することが望ましい。本実施形態のCPU2は、血管検出処理(図8参照)で血管を特定する際に、血管の中心座標、角度、および径の情報を取得している。CPU2は、血管ペアを構成する2つのセグメントの角度差を算出し、算出した角度差が閾値以上の血管ペアを、算出対象から除外する。なお、本実施形態のCPU2は、セグメントが湾曲していることを考慮し、1つのセグメントに対応する複数の角度情報の平均値を算出して、動脈セグメントの角度と静脈セグメントの角度の差を取得する。従って、角度差の算出精度が向上する。しかし、CPU2は、1つのセグメントに対応する複数の角度情報の少なくとも1つを用いれば、S113の処理を実行できる。角度差の閾値が適宜設定できることは言うまでも無い。ユーザが閾値を変更できてもよい。
次いで、作成された血管ペアの全てについて動静脈径比が算出され、算出された動静脈径比が許容範囲外となる血管ペアが除外される(S114)。正確に算出された動静脈径比は、高血圧症等による影響を考慮しても、ある程度の範囲内に収まる。CPU2は、動静脈径比が許容範囲外となる血管ペアを算出の対象外とするため、不適切な血管ペアから動静脈径比を算出する可能性を低下させることができる。一例として、本実施形態では、動脈の径を静脈の径で割って動静脈径比を算出する場合、動静脈径比が1.0以上となる血管ペアが、不適切な血管ペアとして除外される。また、CPU2は、動静脈径比の許容範囲をユーザに設定させて、設定された許容範囲に基づいてS114の処理を実行してもよい。
次いで、血管ペアを構成する動脈セグメントと静脈セグメントの間の距離が閾値以上の血管ペアが、算出対象から除外される(S115)。動脈と静脈の距離が遠い場合、これらの2本の血管が並走している可能性は低いため、動静脈径比の算出対象とするのは不適切である。本実施形態のCPU2は、セグメント間の距離が閾値以上の血管ペアを除外することで、動静脈径比の算出精度を向上させることができる。参照する閾値は、適宜設定すればよい。なお、本実施形態では、セグメントの方向は、乳頭の位置を基準にソートされているため、CPU2はセグメントの先端側と後端側を識別できる。従って、CPU2は、2つのセグメントにおける先端の座標間の距離と、後端(根元側)の座標間の距離の平均値を、2つのセグメント間の距離として算出する。しかし、異なる方法で2つのセグメント間の距離を算出してもよい。例えば、各々のセグメントの中心を特定し、中心間の距離をセグメント間の距離として算出してもよい。2つのセグメント間の最短距離を算出してもよい。
次いで、上方領域で作成された1または複数の血管ペア(以下、「上方領域ペア」という。)の各々と、下方領域で作成された1または複数の血管ペア(以下、「下方領域ペア」という。)の各々との全ての組み合わせが作成される(S116)。作成された複数の組み合わせのうち、上方領域ペアにおける動静脈径比(上方径比)と、下方領域ペアにおける動静脈径比(下方径比)との差が閾値以上となる組み合わせが除外される(S117)。上方へ向けて並走する動脈および静脈の径の比と、下方へ向けて並走する動脈および静脈の径の比には、差が生じ難いという特質がある。従って、上方領域ペアにおける動静脈径比と、下方領域ペアにおける動静脈径比との差が閾値以上であるか否かによって、算出の精度を確認することができる。CPU2は、差が閾値以上となる組み合わせを除外することで、算出精度を向上させる。血管ペア作成処理は終了し、処理は動静脈径比算出処理へ戻る。
図12の説明に戻る。血管ペア作成処理(S75)が終了すると、S117(図16参照)で除外されなかった上方領域ペアと下方領域ペアの組み合わせの中から、優先順位が高い順にN個の組み合わせが抽出される(S76)。本実施形態では、セグメント間の距離がより短い血管ペアを優先して動静脈径比が算出される。その結果、互いに近接している(つまり、並走している可能性が高い)セグメント同士の径に基づいて、より正確な動静脈径比が算出される。
本実施形態のS76では、上方領域ペアにおけるセグメント間の距離と、下方領域ペアにおけるセグメント間の距離の合計が最も短い1個の組み合わせが抽出される。しかし、優先順位が高い順に複数の組み合わせが抽出されてもよい。なお、本実施形態のS116では、上方領域ペアの各々と下方領域ペアの各々の全ての組み合わせが作成される。従って、1つの血管ペアが複数の組み合わせの構成要素となり得る。CPU2は、S76で複数の組み合わせを抽出する場合、同一の血管ペアを構成要素に含む複数の組み合わせを抽出してもよいし、同一の血管ペアの重複を禁止してもよい。
また、上方領域ペアと下方領域ペアの組み合わせを作成する前述の処理(S116,S117、図16参照)は、実行しない場合もあり得る。この場合、S76では、組み合わせをN個抽出するのではなく、セグメント間の距離が短い順に、N個の上方領域ペアと、N個の下方領域ペアを別々に抽出してもよい。
また、血管ペアまたは血管ペアの組み合わせを抽出するための優先順位は、変更してもよい。例えば、セグメント間の距離と共に、セグメント間の角度差がより小さい血管ペアを優先して抽出してもよい。乳頭からの距離がより短い血管ペアを優先して抽出してもよい。なお、複数のパラメータを用いて血管ペアまたは組み合わせを抽出する場合、CPU2は、各パラメータの重み付けを行ってもよい。
次いで、抽出した血管ペア(本実施形態では血管ペアの組み合わせ)について、抽出した上方領域ペアを構成する動脈の径と静脈の径の比(以下、「上方径比」という。)と、下方領域ペアを構成する動脈の径と静脈の径の比(以下、「下方径比」という。)とがそれぞれ算出される(S77)。一例として、本実施形態では、1つのセグメントに複数の径の情報が対応付けられている場合には、対応する複数の径の平均値によって動静脈径比が算出される。しかし、対応する径の情報の一部(例えば、セグメントの中心における径の情報等)によって動静脈径比が算出されてもよい。また、S76の処理において上方領域ペアが複数抽出されている場合には、抽出されている複数の上方領域ペアの各々に対して径の比を算出し、算出結果の平均値を上方径比とすればよい。複数の下方領域ペアが抽出されている場合も同様である。
次いで、算出された上方径比と下方径比の平均値が、被検眼の動静脈径比の代表値として算出される。算出された動静脈径比が、HDD5、モニタ13、外部機器等の少なくともいずれかに出力されて(S78)、処理は終了する。なお、本実施形態のS78では、上方径比と下方径比の平均値に加えて、上方径比と下方径比も出力される。従って、検者は、上方径比と下方径比を別々に考慮して有用な診断を行うことも可能である。
以上説明したように、本実施形態のPC1は、乳頭の高さよりも上方の領域に位置する血管同士の径の比と、乳頭の高さよりも下方の領域に位置する血管同士の径の比とを算出する。眼底の血管には、乳頭から上方と下方の各々に動脈と静脈が並走しやすいという特性がある。従って、上方領域の血管と下方領域の血管を1つの組として動静脈径比が算出されると、並走していない動脈と静脈から動静脈径比が算出される可能性が高くなり、有用な結果が得られない場合がある。本実施形態による典型的な効果は、上方領域および下方領域の各々で並走している動脈と静脈から、従来に比べて精度良く動静脈径比が算出されることである。また、他の効果として、検者は、上方領域の動静脈径比と下方領域の動静脈径比とが共に考慮された算出結果を得ることができ、有効な診断を行うことができる。
本実施形態のPC1は、少なくとも血管の分岐部および交差部を端点として、特定した血管をデータ上で複数のセグメントに分割する。PC1は、分割した複数のセグメントの中から2つのセグメントのペア(血管ペア)を作成し、作成した血管ペアにおけるセグメントの径の比を算出する。この場合、PC1は、分岐部および交差部の影響を受けることなく動静脈径比を算出することができる。
本実施形態のPC1は、複数組の血管ペアが決定された場合に、セグメント間の距離がより短い血管ペアの動静脈径比を優先して算出する。この場合、PC1は、互いの距離が近い(つまり、並走している可能性が高い)血管同士の径に基づいて、より正確に動静脈径比を算出することができる。
上方へ向けて並走する動脈および静脈の径の比と、下方へ向けて並走する動脈および静脈の径の比には、差が生じ難いという特質がある。従って、上方径比と下方径比の差が大きい場合には、算出に不具合がある可能性がある。本実施形態のPC1は、上方径比と下方径比の差が閾値以上となる血管ペアの組み合わせを、動静脈径比の算出対象から除外する。これにより、算出精度をさらに向上させることができる。
長さが短すぎるセグメントには、ノイズ等の誤差の影響が反映されやすい。本実施形態のPC1は、長さが閾値以上であるセグメントから血管ペアを作成することで、ノイズ等の影響を低下させることができる。
幅が短すぎる(つまり、径が細すぎる)セグメントは、血管の末端に位置する可能性が高い。一般的に、眼底の血管は末端に近づくほど細くなるため、血管の末端では診断に有効な動静脈径比は得られ難い。本実施形態のPC1は、幅が閾値以上であるセグメントから血管ペアを作成することで、血管の末端から動静脈径比が算出されて精度が低下することを抑制できる。
眼底の血管は、乳頭から遠ざかるように延びる場合が多い。従って、乳頭から離れすぎているセグメントは、血管の末端に位置する可能性が高い。本実施形態のPC1は、乳頭からの距離が閾値以下であるセグメントから血管ペアを作成することで、血管の末端から動静脈径比が算出されて精度が低下することを抑制できる。
極力平行に近い角度で並走している動脈と静脈から動静脈径比を算出することで、算出精度は向上する。本実施形態のPC1は、2つのセグメントの角度差が閾値以下である血管ペアから動静脈径比を算出することで、算出精度をさらに向上させることができる。
正確に算出された動静脈径比は、高血圧症等による影響を考慮しても、ある程度の範囲内に収まる。本実施形態のPC1は、上方径比または下方径比の算出結果が許容範囲内に収まる血管ペアを、算出の対象とする。従って、不適切な血管ペアから動静脈径比が算出される可能性を低下させることができる。
また、本実施形態のPC1は、動静脈径比を算出するための構成に加えて、乳頭を検出するための構成、および血管を検出するための構成も備える。例えば、本実施形態のPC1は、被検眼の眼底画像を処理することで、前記眼底画像から乳頭を検出する眼底画像処理装置でもある。PC1は、輝度値が第一閾値以上である画素が集合して形成される1または複数の高輝度領域を前記眼底画像から抽出する領域抽出手段と、前記領域抽出手段によって抽出された前記高輝度領域について、領域の内外を横断する血管の数を前記眼底画像から検出する血管数検出手段と、前記血管数検出手段によって検出された血管の数が第二閾値以上である高輝度領域を、乳頭の領域として検出する乳頭検出手段とを備える。乳頭には複数の血管が出入りする。従って、PC1は、領域の内外を横断する血管の数が閾値以上であるか否かによって、白斑およびフレア等と乳頭とを識別し、精度よく乳頭を検出することができる。
本実施形態のPC1は、前記高輝度領域が抽出された位置に設定された環状の探索パターン上で輝度値を探索し、前記探索パターンを横断する血管の数を検出することで、前記高輝度領域の内外を横断する血管の数を検出する。この場合、PC1は、血管を正確に検出しない場合でも、環状の探索パターン上で輝度値を探索するだけで、高輝度領域の内外を横断する血管の数を検出することができる。
本実施形態のPC1は、RGB形式で表現された前記眼底画像のG値およびB値の少なくとも何れかを用いて血管の数を検出する。緑色および青色は、赤色に比べて血管に吸収され易い。従って、眼底画像のG値およびB値には、R値に比べて血管の有無の影響が出やすい。よって、PC1は、G値およびR値の少なくともいずれかを用いることで、血管の数の検出精度を向上させることができる。
本実施形態のPC1は、前記領域抽出手段によって抽出された前記高輝度領域が略円形であるか否かを判定し、略円形でないと判定された高輝度領域を乳頭の領域の候補から除外する除外手段をさらに備える。一般的に、乳頭は略円形である。PC1は、略円形でない高輝度領域を乳頭の領域から除外することで、乳頭の検出精度をさらに高めることができる。
本実施形態のPC1は、前記高輝度領域の輪郭部分に円形のスキャンラインを設定し、設定したスキャンライン上に位置する画素のうち、輝度値が閾値以上である画素の割合を判定することで、前記高輝度領域が略円形であるか否かを判定する。従って、PC1は、高輝度領域が略円形であるか否かを精度よく判定することができる。
また、本実施形態のPC1は、被検眼の眼底画像を処理することで、前記眼底画像から血管を検出する眼底画像処理装置でもある。PC1は、前記眼底画像における輝度値に基づいて前記眼底上の血管の位置および進行方向を検出する位置・方向検出手段と、前記位置・方向検出手段によって位置および進行方向が検出された複数の血管の重複位置を検出する重複位置検出手段と、同一の血管の分岐、異なる血管同士の根元の重なり、および、異なる血管同士の交差のいずれが前記重複位置で生じているかを判定する判定手段とを備える。従って、本実施形態のPC1は、より正確に血管を検出することができる。
本発明は上記実施形態に限定されることはなく、様々な変形が可能であることは勿論である。例えば、上記実施形態のPC1は、図2に示すように、乳頭検出処理(S5)、血管検出処理(S6)、および動静脈径比算出処理(S7)等の種々の処理を実行できる。しかし、PC1は、上記実施形態で説明した処理の一部のみを実行してもよい。
例えば、PC1は、G値輝度差画像取得処理(S4)、乳頭検出処理(S5)、および血管検出処理(S6)を実行せずに、動静脈径比検出処理(S7)を実行することも可能である。この場合、PC1は、他のアルゴリズムを用いて乳頭および血管を検出することで、乳頭および血管を特定してもよい。また、PC1は、他のデバイスが眼底画像を処理することで作成した乳頭および血管のデータを、ネットワーク等を介して取得することで、乳頭および血管を特定してもよい。つまり、PC1は、乳頭および血管を何らかの手段で特定できれば、動静脈径比算出処理を実行することができる。
また、PC1は、乳頭検出処理(S5)のみを実行してもよい。例えば、PC1は、乳頭検出処理で検出した乳頭の位置を基準として、視差が異なる複数の眼底画像を処理することで、2Dまたは3Dのステレオ画像を作成してもよい。また、PC1は、上記実施形態で説明した血管検出処理(S6)を、動静脈径比の算出以外の目的で実行してもよい。
上記実施形態では、不要な可能性が高いセグメント、血管ペア等を除外する処理が含まれる(例えば、図14のS81〜S83、図16のS113〜S115,S117等)。しかし、PC1は、これらの処理の全てを実行せずに、一部の処理を実行してもよい。また、一旦作成したセグメントおよび血管ペアの一部を除外する代わりに、セグメントおよび血管ペアを作成する時点で、不要になる可能性が高いセグメントおよび血管ペアが作成されないように処理を行ってもよい。以上のように、具体的な処理方法は適宜変更できる。
上記実施形態では、G値画像によって血管が検出される。しかし、PC1は、G値画像以外の眼底画像を用いて血管を検出することも可能である。例えば、FAG(Fluorescein fundus angiography)蛍光撮影による眼底画像等を利用することで、血管の検出精度を向上させることができる。