説明

輪郭抽出装置、輪郭抽出方法および輪郭抽出プログラム

【課題】画素データがなだらかに変化する箇所に存在する輪郭を抽出する。
【解決手段】入力画像から抽出された縦方向の画素データの配列について、隣接データとの差を算出し(S12)、後から前へ向かう順に0以上の差を累積加算し(S13)、前から後へ向かう順に0以上の差を累積加算し(S14)、2つの累積値の差を算出し(S15)、得られた評価値に対して閾値判定を行う(S16)。横方向の画素データの配列に対しても同じ処理を行い(S22〜S26)、2つの閾値判定結果に対して論理演算を行う(S31)。このように、配列内で前方および後方にある直近の極大値との差に基づく評価値を算出し、評価値に対して閾値判定を行うことにより輪郭抽出結果を求める。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理技術に関し、特に、画像から輪郭を抽出する輪郭抽出装置、輪郭抽出方法および輪郭抽出プログラムに関する。
【背景技術】
【0002】
画像処理の分野では、画像から輪郭を抽出する輪郭抽出処理がよく行われる。従来の輪郭抽出処理では、画像にエッジ検出フィルタを適用してエッジ画像を求め、エッジ画像に対して閾値判定を行うことにより、輪郭が抽出される。例えば、Sobelフィルタを用いた輪郭抽出処理では、図8(a)に示す縦方向のエッジ検出フィルタを適用した画像と、図8(b)に示す横方向のエッジ検出フィルタを適用した画像の平均がエッジ画像となり、得られたエッジ画像に対して閾値判定が行われる。
【0003】
輪郭抽出処理に関しては、従来から以下のような技術が知られている。特許文献1には、画像データについて1次微分値と2次微分値を求め、1次微分値の大小と2次微分値の正負に応じて画像データを補正するエッジ処理方法が開示されている。特許文献2には、頻度分布の大きいほうから2つの山を選定し、2つの山のピーク間で暗のピークから谷底に向かう下降部の中腹の点の濃度を2値化閾値として用いることが開示されている。
【特許文献1】特開2000−331174号公報
【特許文献2】特開昭64−82181号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
従来の輪郭抽出処理で用いられるエッジ検出フィルタは、画素データと周囲8個の隣接画素データとに対して演算を行う。このようなエッジ検出フィルタを用いた従来の輪郭抽出処理によれば、隣接画素間で画素データが大きく変化する箇所に存在する輪郭を抽出することができる。
【0005】
しかしながら、画像によっては、隣接画素間で画素データが大きく変化する箇所だけでなく、画素データがなだらかに変化する箇所にも輪郭が存在する場合がある。ところが、従来の輪郭抽出処理は、画素データと周囲8個の隣接画素データとに対して演算を行うエッジ検出フィルタを使用するので、画素データがなだらかに変化する箇所に存在する輪郭を抽出することができない。このように従来の輪郭抽出処理では、輪郭を正しく抽出できないことがある。
【0006】
それ故に、本発明は、画素データがなだらかに変化する箇所に存在する輪郭を抽出できる輪郭抽出装置、輪郭抽出方法および輪郭抽出プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
第1の発明は、画像から輪郭を抽出する輪郭抽出装置であって、
入力画像から所定方向の画素データの配列を順に抽出するデータ抽出部と、
前記配列に含まれる各データについて、配列内で前方および後方にある直近の極大値または極小値との差に基づく評価値を算出する評価値算出部と、
前記評価値に対して閾値判定を行うことにより輪郭抽出結果を求める輪郭判定部とを備える。
【0008】
第2の発明は、第1の発明において、
前記評価値算出部は、前記配列に含まれる各データについて前記評価値として、配列内で前方にある直近の極値が極大値であるときの当該極大値との差、および、配列内で後方にある直近の極値が極大値であるときの当該極大値との差の和を算出することを特徴とする。
【0009】
第3の発明は、第2の発明において、
前記評価値算出部は、前記配列に含まれる各データについて隣接データとの差を算出し、前記配列内で後から前へ向かう順に第1の値以上の隣接データとの差を累積加算することにより、前記配列に含まれる各データについて配列内で前方にある直近の極大値との差を算出し、前記配列内で前から後へ向かう順に第2の値以下の隣接データとの差を累積加算することにより、前記配列に含まれる各データについて配列内で後方にある直近の極大値との差を算出することを特徴とする。
【0010】
第4の発明は、第3の発明において、
前記第1の値と前記第2の値はゼロであることを特徴とする。
【0011】
第5の発明は、第3の発明において、
前記第1の値は負であり、前記第2の値は正であることを特徴とする。
【0012】
第6の発明は、第1の発明において、
前記評価値を算出する前に、前記入力画像に対して平滑化処理を行うフィルタ部をさらに備える。
【0013】
第7の発明は、第1の発明において、
前記データ抽出部は、前記入力画像から縦方向の画素データの配列を順に抽出すると共に、前記入力画像から横方向の画素データの配列を順に抽出し、
前記評価値算出部は、縦方向の画素データの配列について前記評価値を算出すると共に、横方向の画素データの配列について前記評価値を算出し、
前記輪郭判定部は、縦方向の画素データの配列についての評価値に対して閾値判定を行うと共に、横方向の画素データの配列についての評価値に対して閾値判定を行い、2つの閾値判定結果に対して論理演算を行うことにより、前記輪郭抽出結果を求めることを特徴とする。
【0014】
第8の発明は、第7の発明において、
前記輪郭判定部は、2つの閾値判定結果に対して論理和演算を行うことにより、前記輪郭抽出結果を求めることを特徴とする。
【0015】
第9の発明は、第1の発明において、
前記データ抽出部は、前記入力画像から縦方向と横方向のいずれか一方の画素データの配列を順に抽出し、
前記評価値算出部は、縦方向と横方向のいずれか一方の画素データの配列について前記評価値を算出し、
前記輪郭判定部は、縦方向と横方向のいずれか一方の画素データの配列についての評価値に対して閾値判定を行うことにより、前記輪郭抽出結果を求めることを特徴とする。
【0016】
第10の発明は、画像から輪郭を抽出する輪郭抽出方法であって、
入力画像から所定方向の画素データの配列を順に抽出するステップと、
前記配列に含まれる各データについて、配列内で前方および後方にある直近の極大値または極小値との差に基づく評価値を算出するステップと、
前記評価値に対して閾値判定を行うことにより輪郭抽出結果を求めるステップとを備える。
【0017】
第11の発明は、画像から輪郭を抽出するためのプログラムであって、コンピュータに、
入力画像から所定方向の画素データの配列を順に抽出するステップと、
前記配列に含まれる各データについて、配列内で前方および後方にある直近の極大値または極小値との差に基づく評価値を算出するステップと、
前記評価値に対して閾値判定を行うことにより輪郭抽出結果を求めるステップとを実行させる。
【0018】
第12の発明は、第11の発明において、
前記評価値を算出するステップは、前記配列に含まれる各データについて前記評価値として、配列内で前方にある直近の極値が極大値であるときの当該極大値との差、および、配列内で後方にある直近の極値が極大値であるときの当該極大値との差の和を算出することを特徴とする。
【0019】
第13の発明は、第12の発明において、
前記評価値を算出するステップは、前記配列に含まれる各データについて隣接データとの差を算出し、前記配列内で後から前へ向かう順に第1の値以上の隣接データとの差を累積加算することにより、前記配列に含まれる各データについて配列内で前方にある直近の極大値との差を算出し、前記配列内で前から後へ向かう順に第2の値以下の隣接データとの差を累積加算することにより、前記配列に含まれる各データについて配列内で後方にある直近の極大値との差を算出することを特徴とする。
【0020】
第14の発明は、第13の発明において、
前記第1の値と前記第2の値はゼロであることを特徴とする。
【0021】
第15の発明は、第13の発明において、
前記第1の値は負であり、前記第2の値は正であることを特徴とする。
【0022】
第16の発明は、第11の発明において、
前記コンピュータに、前記評価値を算出する前に、前記入力画像に対して平滑化処理を行うステップを実行させることを特徴とする。
【0023】
第17の発明は、第11の発明において、
前記配列を抽出するステップは、前記入力画像から縦方向の画素データの配列を順に抽出すると共に、前記入力画像から横方向の画素データの配列を順に抽出し、
前記評価値を算出するステップは、縦方向の画素データの配列について前記評価値を算出すると共に、横方向の画素データの配列について前記評価値を算出し、
前記輪郭抽出結果を求めるステップは、縦方向の画素データの配列についての評価値に対して閾値判定を行うと共に、横方向の画素データの配列についての評価値に対して閾値判定を行い、2つの閾値判定結果に対して論理演算を行うことにより、前記輪郭抽出結果を求めることを特徴とする。
【0024】
第18の発明は、第17の発明において、
前記輪郭抽出結果を求めるステップは、2つの閾値判定結果に対して論理和演算を行うことにより、前記輪郭抽出結果を求めることを特徴とする。
【0025】
第19の発明は、第11の発明において、
前記配列を抽出するステップは、前記入力画像から縦方向と横方向のいずれか一方の画素データの配列を順に抽出し、
前記評価値を算出するステップは、縦方向と横方向のいずれか一方の画素データの配列について前記評価値を算出し、
前記輪郭抽出結果を求めるステップは、縦方向と横方向のいずれか一方の画素データの配列についての評価値に対して閾値判定を行うことにより、前記輪郭抽出結果を求めることを特徴とする。
【発明の効果】
【0026】
上記第1、第10または第11の発明によれば、画素データの配列に含まれる各データについて、配列内で直近の極大値(または直近の極小値)との差に基づく評価値が算出され、算出された評価値に対して閾値判定が行われる。このため、画素データがなだらかに変化する箇所でも、当該箇所についての評価値が大きい場合には、その箇所には輪郭があると判定される。したがって、画素データがなだらかに変化する箇所に存在する輪郭を抽出することができる。
【0027】
上記第2または第12の発明によれば、画素データの配列に含まれる各データについて評価値として、配列内で前後にある直近の極大値との差の和(2つの差の和)が算出される。この評価値は、画素データの配列内で、周囲よりも小さいデータが存在する箇所(凹部)で大きくなる。したがって、このような性質を有する評価値を用いることにより、画素データがなだらかに変化する箇所に輪郭が存在する場合でも、当該箇所についての評価値が大きくなるので、輪郭を抽出することができる。
【0028】
上記第3または第13の発明によれば、配列内で後から前へ向かう順に第1の値以上の隣接データとの差を累積加算し、配列内で前から後へ向かう順に第2の値以下の隣接データとの差を累積加算することにより、配列に含まれる各データについて前後にある直近の極大値との差を容易に算出することができる。
【0029】
上記第4または第14の発明によれば、配列内で後から前へ向かう順にゼロ以上の隣接データとの差を累積加算し、配列内で前から後へ向かう順にゼロ以下の隣接データとの差を累積加算することにより、配列に含まれる各データについて前後にある直近の極大値との差を容易に算出することができる。
【0030】
上記第5または第15の発明によれば、配列内で後から前へ向かう順にある負の値以上の隣接データとの差を累積加算し、配列内で前から後へ向かう順にある正の値以下の隣接データとの差を累積加算することにより、画素データの微小な変化の影響を排除して、配列に含まれる各データについて前後にある直近の極大値との差を容易に算出することができる。
【0031】
上記第6または第16の発明によれば、画素データの微小な変化の影響を排除して、画素データがなだらかに変化する箇所に存在する輪郭を抽出することができる。
【0032】
上記第7または第17の発明によれば、評価値の算出と閾値判定は、縦方向の画素データの配列と横方向の画素データの配列について行われ、輪郭抽出結果は2つの閾値判定結果に基づき求められる。したがって、一方向の画素データの配列について評価値の算出と閾値判定を行うときよりも、より高い精度で輪郭を抽出することができる。
【0033】
上記第8または第18の発明によれば、輪郭抽出結果は2つの閾値判定結果の論理和となる。したがって、1つの閾値判定結果を用いるときよりも、より多くの輪郭を抽出することができる。
【0034】
上記第9または第19の発明によれば、評価値の算出と閾値判定は、縦方向の画素データの配列と横方向の画素データの配列のいずれか一方についてのみ行われる。したがって、画素データがなだらかに変化する箇所に存在する輪郭を簡単な処理で抽出することができる。
【発明を実施するための最良の形態】
【0035】
図1は、本発明の実施形態に係る輪郭抽出装置の構成を示すブロック図である。図1に示す輪郭抽出装置1は、データ抽出部10、評価値算出部20、および、輪郭判定部30を備えている。輪郭抽出装置1は、入力画像Xから輪郭を抽出し、輪郭抽出結果Yを出力する。入力画像Xは、2次元状に(縦方向と横方向に)並んだ複数の画素データを含んでいる。入力画像Xは、例えば、8ビットの画素データを縦方向に384個、横方向に512個並べたグレースケール画像である。
【0036】
輪郭抽出装置1は、コンピュータと輪郭抽出プログラムとを用いて実現することができる。図2は、輪郭抽出装置1を実現するためのコンピュータの構成を示すブロック図である。図2に示すコンピュータ40は、画像入力部41、CPU42、表示部43、および、記憶部44を備えている。記憶部44は、輪郭抽出プログラム50と、画像入力部41経由で入力された入力画像Xとを記憶する。CPU42は、輪郭抽出プログラム50を実行することにより、入力画像Xについて輪郭抽出結果Yを求める。輪郭抽出結果Yは、記憶部44に記憶され、例えば、入力画像Xと共に表示部43に表示される。
【0037】
図3は、輪郭抽出プログラム50のフローチャートである。CPU42は、輪郭抽出プログラムに従い、図3に示すように、縦方向処理(ステップS11〜S17)と横方向処理(ステップS21〜27)と論理演算処理(ステップS31)とを実行する。なお、縦方向処理と横方向処理の実行順序は、逆でもよい。図1と図3の対応づけを示すと、データ抽出部10はステップS11、S17、S21、S27に対応し、評価値算出部20はステップS12〜S15、S22〜S25に対応し、輪郭判定部30はステップS16、S26、S31に対応する。
【0038】
縦方向処理では、CPU42は、入力画像Xから任意に縦方向の画素データの配列(1列分の画素データ)を抽出する(ステップS11)。次に、CPU42は、ステップS11で抽出した画素データの配列に対して評価値の算出と閾値判定を行い(ステップS12〜S16)、閾値判定結果を求める。次に、CPU42は、入力画像Xに含まれる縦方向の画素データの配列をすべて処理したか否かを判断し(ステップS17)、否のときにはステップS11へ進む。これにより、入力画像Xに含まれるすべての縦方向の画素データの配列に対して、ステップS12〜S16が実行される。
【0039】
横方向処理では、CPU42は、入力画像Xから任意に横方向の画素データの配列(1行分の画素データ)を抽出する(ステップS21)。次に、CPU42は、ステップS21で抽出した画素データの配列に対して縦方向処理と同様に評価値の算出と閾値判定を行い(ステップS22〜S26)、閾値判定結果を求める。次に、CPU42は、入力画像Xに含まれる横方向の画素データの配列をすべて処理したか否かを判断し(ステップS27)、否のときにはステップS21へ進む。これにより、入力画像Xに含まれるすべての横方向の画素データの配列に対して、ステップS22〜S26が実行される。
【0040】
論理演算処理では、CPU42は、縦方向処理で求めた閾値判定結果と、横方向処理で求めた閾値判定結果に対して論理演算(例えば、論理和演算)を行う(ステップS31)。これにより、輪郭抽出結果Yが求められる。
【0041】
以下、ステップS12〜S16の詳細を説明する。ステップS11で抽出された縦方向の画素データの配列をX(i)(ただし、iは1以上n以下の整数、nは画素データの個数)とする。CPU42は、以下に示すように、縦方向の画素データの配列X(i)に対して、評価値算出処理(ステップS12〜S15)と閾値判定処理(ステップS16)とを実行する。なお、ステップS22〜S26では、横方向の画素データの配列に対して、ステップS12〜S16と同じ処理が行われる。
【0042】
評価値算出処理では、CPU42は、配列に含まれる各データについて、配列内で隣接するデータとの差を算出する(ステップS12)。具体的には、CPU42は、次式(1)に従い、差D(i)を算出する。
D(i)=X(i)−X(i−1) …(1)
【0043】
次に、CPU42は、配列内で後から前へ向かう順に0以上の差D(i)を累積加算する(ステップS13)。ただし、差D(i)が負のときには、CPU42は累積値を0に初期化する。ステップS13で算出される累積値(0以上の差の累積値)P(i)は、次式(2a)および(2b)で表される。
P(i)=P(i+1)+D(i) …(2a) (D(i)≧0のとき)
P(i)=0 …(2b) (D(i)<0のとき)
【0044】
次に、CPU42は、配列内で前から後へ向かう順に0以下の差D(i)を累積加算する(ステップS14)。ただし、差D(i)が正のときには、CPU42は累積値を0に初期化する。ステップS14で算出される累積値(0以下の差の累積値)Q(i)は、次式(3a)および(3b)で表される。
Q(i)=Q(i−1)+D(i) …(3a) (D(i)≦0のとき)
Q(i)=0 …(3b) (D(i)>0のとき)
【0045】
次に、CPU42は、ステップS13で算出した累積値とステップS14で算出した累積値の差を算出する(ステップS15)。具体的には、CPU42は、次式(4)に従い、2つの累積値の差R(i)を算出する。差R(i)は、縦方向の画素データの配列X(i)に含まれる各データについての評価値となる。
R(i)=P(i+1)−Q(i) …(4)
【0046】
次に、CPU42は、ステップS15で求めた評価値R(i)に対して閾値判定を行う(ステップS16)。CPU42は、評価値R(i)が所定の閾値TH以上のときには、輪郭が存在する可能性があると判断して、閾値判定結果を1とする。これに対して、閾値R(i)が閾値TH未満のときには、輪郭が存在する可能性がないと判断して、閾値判定結果を0とする。ステップS16で求められる閾値判定結果S(i)は、次式(5a)および(5b)で表される。
S(i)=1 …(5a) (R(i)≧THのとき)
S(i)=0 …(5b) (R(i)<THのとき)
なお、閾値THは固定値でもよく、あるいは、閾値THを入力画像Xの特性に応じて決定してもよい。
【0047】
図4は、ステップS12〜S16による処理結果を示す図である。図4(a)は、入力画像から抽出された縦方向の画素データの配列(1列分の画素データ)の例を示す図である。図4(a)に示すように、画素データX(i)は0以上255以下の値をとる。図4(a)に示す画素データX(i)ついて、ステップS13で0以上の差の累積値P(i)を求めると、図4(b)に示す結果が得られる。また、ステップS14で0以下の差の累積値Q(i)を求めると、図4(c)に示す結果が得られる。さらに、ステップS15で評価値R(i)を求めると、図4(d)に示す結果が得られる。ステップS16における閾値THを40に設定すると、図4(d)に示す範囲C1〜C5内において、評価値R(i)は閾値TH以上となり、閾値判定結果は1となる。
【0048】
以下、図5を参照して、画素データの配列内のどのような箇所で閾値判定結果が1となるかを説明する。ステップS13で算出される累積値P(i)は、差D(i)が負のときには累積値を0にしながら、配列内で後から前へ向かう順に0以上の差D(i)を累積加算して得られたものである。このため、累積値P(i)は、配列内で前方にある直近の極値が極大値のときには当該極大値との差に一致し、それ以外のときには0となる。また、ステップS14で算出される累積値Q(i)は、差D(i)が正のときには累積値を0にしながら、配列内で前から後へ向かう順に0以下の差D(i)を累積加算して得られたものである。このため、累積値Q(i)を(−1)倍した値は、配列内で後方にある直近の極値が極大値のときには当該極大値との差に一致し、それ以外のときには0となる。したがって、ステップS15で算出される評価値R(i)は、配列内で前方にある直近の極値が極大値であるときの当該極大値との差、および、配列内で後方にある直近の極値が極大値であるときの当該極大値との差の和(2つの差の和)に一致する。
【0049】
例えば、入力画像から、図5(a)に示すように変化する縦方向の画素データの配列が抽出された場合を考える。評価値R(i)は、直感的に言うと、すぐ前(図5では左側)にある山の山頂との標高差Hp(ただし、すぐ前に谷があるときはHp=0)に、すぐ後(図5では右側)にある山の山頂との標高差Hq(ただし、すぐ後に谷があるときはHq=0)を加算したものである。
【0050】
例えば、画素データX(i)が極小のときには(図5(b))、評価値R(i)は両側にある山の山頂との標高差の和(Hp+Hq)となる。画素データX(i)が減少途中にあるときには(図5(c))、評価値R(i)はすぐ前にある山の山頂との標高差Hpとなる。画素データX(i)が増加途中にあるときには(図5(d))、評価値R(i)はすぐ後にある山の山頂との標高差Hqとなる。画素データX(i)が極大のときには(図5(e))、評価値R(i)は0となる。
【0051】
したがって、評価値R(i)が閾値TH以上となり、閾値判定結果が1となるのは、(1)画素データが極小で、両側にある極大値との差の和が閾値TH以上となる箇所と、(2)画素データが極大でも極小でもなく、すぐ前またはすぐ後にある極大値との差が閾値TH以上となる箇所である。直感的に言うと、閾値判定結果が1となるのは、ある程度以上深い谷の底と、山頂よりもある程度以上低い山のふもとである。
【0052】
なお、入力画像Xを撮影する際の標本化誤差などによって、画素データは微小に(例えば、1%程度)変化することがある。そこで、0に近い負の値Emと、0に近い正の値Epを任意の方法で決定し、ステップS13で累積値P(i)を算出するときには、Em以上の差D(i)を累積加算し、ステップS14で累積値Q(i)を算出するときに、Ep以下の差D(i)を累積加算してもよい。このように差D(i)が0に近いときには、差D(i)を0と同様に扱うことにより、画素データの微小な変化の影響を排除することができる。
【0053】
あるいは、画素データの微小な変化の影響を排除するために、入力画像Xについて評価値Rを算出する前に、入力画像Xに対して平滑化処理を行ってもよい。例えば、図3に示すフローチャートにおいて、ステップS11とステップS12の間、および、ステップS21とステップS22の間に、抽出された縦方向(あるいは横方向)の画素データの配列に対して、隣接する3つあるいは5つの画素データの平均を求める処理を追加してもよい。これにより、画素データの微小な変化の影響を排除することができる。
【0054】
図6(a)は、Sobelフィルタを用いた従来の輪郭抽出装置による輪郭抽出結果を示す図である。図6(b)は、本実施形態に係る輪郭抽出装置1による輪郭抽出結果を示す図である。なお、入力画像は、8ビットのグレースケール画像である。2つの輪郭抽出結果を比較すると、図6(b)では、人物の左目の上にある額と頭髪の境界部分や、人物の左肩後方にあるディスプレイの表示面と枠の境界部分に存在する輪郭が抽出されている。このように本実施形態に係る輪郭抽出装置1によれば、従来の輪郭抽出装置では検出できない、画素データがなだらかに変化する箇所に存在する輪郭を抽出することができる。
【0055】
以上に示すように、本実施形態に係る輪郭抽出装置によれば、画素データの配列に含まれる各データについて、配列内で直近の極大値との差に基づく評価値が算出され、算出された評価値に対して閾値判定が行われる。このため、画素データがなだらかに変化する箇所でも、当該箇所についての評価値が大きい場合には、その箇所には輪郭があると判定される。したがって、画素データがなだらかに変化する箇所に存在する輪郭を抽出することができる。
【0056】
特に、画素データの配列に含まれる各データについて評価値として、配列内で前後にある直近の極大値との差の和(2つの差の和)を算出すれば、この評価値は画素データの配列内で周囲よりも小さいデータが存在する箇所(凹部)で大きくなる。したがって、このような性質を有する評価値を用いることにより、画素データがなだらかに変化する箇所に輪郭が存在する場合でも、当該箇所についての評価値が大きくなるので、輪郭を抽出することができる。
【0057】
また、配列内で後から前へ向かう順に第1の値(ゼロまたはある負の値)以上の隣接データとの差を累積加算し、配列内で前から後へ向かう順に第2の値(ゼロまたはある正の値)以下の隣接データとの差を累積加算すれば、配列に含まれる各データについて前後にある直近の極大値との差を容易に算出することができる。
【0058】
また、評価値の算出と閾値判定を縦方向の画素データの配列と横方向の画素データの配列について行い、輪郭抽出結果を2つの閾値判定結果に基づき求めれば、より高い精度で輪郭を抽出することができる。特に、2つの閾値判定結果の論理和を求めれば、より多くの輪郭を抽出することができる。
【0059】
なお、以上の説明では、CPU42は、縦方向処理と横方向処理と論理演算処理とを実行することとしたが、これに代えて、縦方向処理のみ、あるいは、横方向処理のみを実行してもよい。図7は、縦方向処理のみを行う場合の輪郭抽出プログラムのフローチャートである。図7に示すステップS11〜S17は、図3に示すステップS11〜S17と同じである。この場合、ステップS16で求めた閾値判定結果R(i)が、そのまま輪郭抽出結果Yとして出力される。このように、評価値の算出と閾値判定を縦方向の画素データの配列と横方向の画素データの配列のいずれか一方についてのみ行うことにより、画素データがなだらかに変化する箇所に存在する輪郭を簡単な処理で抽出することができる。
【0060】
また、以上の説明では、CPU42は、配列内で直近の極大値との差に基づく評価値を算出することとしたが、同様の方法で配列内で直近の極小値との差に基づき評価値を算出してもよい。
【図面の簡単な説明】
【0061】
【図1】本発明の実施形態に係る輪郭抽出装置の構成を示すブロック図である。
【図2】本発明の実施形態に係る輪郭抽出装置を実現するためのコンピュータの構成を示すブロック図である。
【図3】本発明の実施形態に係る輪郭抽出装置を実現するための輪郭抽出プログラムのフローチャートである。
【図4】図3に示すステップS12〜S16による処理結果を示す図である。
【図5】図3に示すステップS12〜S15で算出される評価値の意味を説明するための図である。
【図6】従来および本発明の実施形態に係る輪郭抽出装置による輪郭抽出結果を示す図である。
【図7】本発明の実施形態の変形例に係る輪郭抽出装置を実現するための輪郭抽出プログラムのフローチャートである。
【図8】従来の輪郭抽出処理で用いられるSobelフィルタを示す図である。
【符号の説明】
【0062】
1…輪郭抽出装置
10…データ抽出部
20…評価値算出部
30…輪郭判定部
40…コンピュータ
41…画像入力部
42…CPU
43…表示部
44…記憶部
50…輪郭抽出プログラム

【特許請求の範囲】
【請求項1】
画像から輪郭を抽出する輪郭抽出装置であって、
入力画像から所定方向の画素データの配列を順に抽出するデータ抽出部と、
前記配列に含まれる各データについて、配列内で前方および後方にある直近の極大値または極小値との差に基づく評価値を算出する評価値算出部と、
前記評価値に対して閾値判定を行うことにより輪郭抽出結果を求める輪郭判定部とを備えた、輪郭抽出装置。
【請求項2】
前記評価値算出部は、前記配列に含まれる各データについて前記評価値として、配列内で前方にある直近の極値が極大値であるときの当該極大値との差、および、配列内で後方にある直近の極値が極大値であるときの当該極大値との差の和を算出することを特徴とする、請求項1に記載の輪郭抽出装置。
【請求項3】
前記評価値算出部は、前記配列に含まれる各データについて隣接データとの差を算出し、前記配列内で後から前へ向かう順に第1の値以上の隣接データとの差を累積加算することにより、前記配列に含まれる各データについて配列内で前方にある直近の極大値との差を算出し、前記配列内で前から後へ向かう順に第2の値以下の隣接データとの差を累積加算することにより、前記配列に含まれる各データについて配列内で後方にある直近の極大値との差を算出することを特徴とする、請求項2に記載の輪郭抽出装置。
【請求項4】
前記第1の値と前記第2の値はゼロであることを特徴とする、請求項3に記載の輪郭抽出装置。
【請求項5】
前記第1の値は負であり、前記第2の値は正であることを特徴とする、請求項3に記載の輪郭抽出装置。
【請求項6】
前記評価値を算出する前に、前記入力画像に対して平滑化処理を行うフィルタ部をさらに備えた、請求項1に記載の輪郭抽出装置。
【請求項7】
前記データ抽出部は、前記入力画像から縦方向の画素データの配列を順に抽出すると共に、前記入力画像から横方向の画素データの配列を順に抽出し、
前記評価値算出部は、縦方向の画素データの配列について前記評価値を算出すると共に、横方向の画素データの配列について前記評価値を算出し、
前記輪郭判定部は、縦方向の画素データの配列についての評価値に対して閾値判定を行うと共に、横方向の画素データの配列についての評価値に対して閾値判定を行い、2つの閾値判定結果に対して論理演算を行うことにより、前記輪郭抽出結果を求めることを特徴とする、請求項1に記載の輪郭抽出装置。
【請求項8】
前記輪郭判定部は、2つの閾値判定結果に対して論理和演算を行うことにより、前記輪郭抽出結果を求めることを特徴とする、請求項7に記載の輪郭抽出装置。
【請求項9】
前記データ抽出部は、前記入力画像から縦方向と横方向のいずれか一方の画素データの配列を順に抽出し、
前記評価値算出部は、縦方向と横方向のいずれか一方の画素データの配列について前記評価値を算出し、
前記輪郭判定部は、縦方向と横方向のいずれか一方の画素データの配列についての評価値に対して閾値判定を行うことにより、前記輪郭抽出結果を求めることを特徴とする、請求項1に記載の輪郭抽出装置。
【請求項10】
画像から輪郭を抽出する輪郭抽出方法であって、
入力画像から所定方向の画素データの配列を順に抽出するステップと、
前記配列に含まれる各データについて、配列内で前方および後方にある直近の極大値または極小値との差に基づく評価値を算出するステップと、
前記評価値に対して閾値判定を行うことにより輪郭抽出結果を求めるステップとを備えた、輪郭抽出方法。
【請求項11】
画像から輪郭を抽出するためのプログラムであって、コンピュータに、
入力画像から所定方向の画素データの配列を順に抽出するステップと、
前記配列に含まれる各データについて、配列内で前方および後方にある直近の極大値または極小値との差に基づく評価値を算出するステップと、
前記評価値に対して閾値判定を行うことにより輪郭抽出結果を求めるステップとを実行させるためのプログラム。
【請求項12】
前記評価値を算出するステップは、前記配列に含まれる各データについて前記評価値として、配列内で前方にある直近の極値が極大値であるときの当該極大値との差、および、配列内で後方にある直近の極値が極大値であるときの当該極大値との差の和を算出することを特徴とする、請求項11に記載のプログラム。
【請求項13】
前記評価値を算出するステップは、前記配列に含まれる各データについて隣接データとの差を算出し、前記配列内で後から前へ向かう順に第1の値以上の隣接データとの差を累積加算することにより、前記配列に含まれる各データについて配列内で前方にある直近の極大値との差を算出し、前記配列内で前から後へ向かう順に第2の値以下の隣接データとの差を累積加算することにより、前記配列に含まれる各データについて配列内で後方にある直近の極大値との差を算出することを特徴とする、請求項12に記載のプログラム。
【請求項14】
前記第1の値と前記第2の値はゼロであることを特徴とする、請求項13に記載のプログラム。
【請求項15】
前記第1の値は負であり、前記第2の値は正であることを特徴とする、請求項13に記載のプログラム。
【請求項16】
前記コンピュータに、前記評価値を算出する前に、前記入力画像に対して平滑化処理を行うステップを実行させることを特徴とする、請求項11に記載のプログラム。
【請求項17】
前記配列を抽出するステップは、前記入力画像から縦方向の画素データの配列を順に抽出すると共に、前記入力画像から横方向の画素データの配列を順に抽出し、
前記評価値を算出するステップは、縦方向の画素データの配列について前記評価値を算出すると共に、横方向の画素データの配列について前記評価値を算出し、
前記輪郭抽出結果を求めるステップは、縦方向の画素データの配列についての評価値に対して閾値判定を行うと共に、横方向の画素データの配列についての評価値に対して閾値判定を行い、2つの閾値判定結果に対して論理演算を行うことにより、前記輪郭抽出結果を求めることを特徴とする、請求項11に記載のプログラム。
【請求項18】
前記輪郭抽出結果を求めるステップは、2つの閾値判定結果に対して論理和演算を行うことにより、前記輪郭抽出結果を求めることを特徴とする、請求項17に記載のプログラム。
【請求項19】
前記配列を抽出するステップは、前記入力画像から縦方向と横方向のいずれか一方の画素データの配列を順に抽出し、
前記評価値を算出するステップは、縦方向と横方向のいずれか一方の画素データの配列について前記評価値を算出し、
前記輪郭抽出結果を求めるステップは、縦方向と横方向のいずれか一方の画素データの配列についての評価値に対して閾値判定を行うことにより、前記輪郭抽出結果を求めることを特徴とする、請求項11に記載のプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2008−65726(P2008−65726A)
【公開日】平成20年3月21日(2008.3.21)
【国際特許分類】
【出願番号】特願2006−245051(P2006−245051)
【出願日】平成18年9月11日(2006.9.11)
【出願人】(000207551)大日本スクリーン製造株式会社 (2,640)
【Fターム(参考)】