(57)【要約】【課題】拡大縮小された画像の画質を高めることができるエッジ検出装置。【解決手段】平滑処理部は、複数の隣接する２×２画素ブロック内のエッジの夫々が、互いに首尾連接して成す波状線に対して、該波状線上において互いに連接する２つのエッジの接点と、該接点が間に位置する前記画像上の２つの隣接する画素を結ぶ直線と該連接する２つのエッジの外端点を結ぶ直線との交点との間に位置する点を該連接する２つのエッジに対応する新接点とする処理を前記波状線上の各連接する２つのエッジに対して行うと共に、該波状線の両末端の２つのエッジの夫々の外端点と、各々の前記新接点とを順次接続してなる新しい波状線を前記領域内のエッジとする。【選択図】図１２
2008171455.tif 000002
【特許請求の範囲】
【請求項１】
画像上の隣接する２つの画素間にエッジが存在するか否かを判定し、
該判定に基づいて、前記画像上の２×２画素ブロック内のエッジの有無、およびエッジが有るエッジ含有画素ブロック内のエッジの位置とエッジの延びる方向からなるエッジパターンを示すエッジ情報を取得し、
隣接する２つ以上の前記エッジ含有ブロックからなる領域内において、各々の前記エッジ含有ブロックの前記エッジパターンにより示される夫々のエッジが、互いに首尾連接して成す波状線に対して、該波状線上において互いに連接する２つのエッジの接点と、該接点が間に位置する前記画像上の２つの隣接する画素を結ぶ直線と該連接する２つのエッジの外端点を結ぶ直線との交点との間に位置する点を該連接する２つのエッジに対応する新接点とする処理を前記波状線上の各連接する２つのエッジに対して行うと共に、該波状線の両末端の２つのエッジの夫々の外端点と、各々の前記新接点とを順次接続してなる新しい波状線を前記領域内のエッジとすることを特徴とするエッジ検出方法。
【請求項２】
画像上の隣接する２つの画素間にエッジが存在するか否かを判定する判定手段と、
該判定に基づいて、前記画像上の２×２画素ブロック内のエッジの有無、およびエッジが有るエッジ含有画素ブロック内のエッジの位置とエッジの延びる方向からなるエッジパターンを示すエッジ情報を取得するエッジ情報取得手段と、
隣接する２つ以上の前記エッジ含有ブロックからなる領域内において、各々の前記エッジ含有ブロックの前記エッジパターンにより示される夫々のエッジが、互いに首尾連接して成す波状線に対して、該波状線上において互いに連接する２つのエッジの接点と、該接点が間に位置する前記画像上の２つの隣接する画素を結ぶ直線と該連接する２つのエッジの外端点を結ぶ直線との交点との間に位置する点を該連接する２つのエッジに対応する新接点とする処理を前記波状線上の各連接する２つのエッジに対して行うと共に、
該波状線の両末端の２つのエッジの夫々の外端点と、各々の前記新接点とを順次接続してなる新しい波状線を前記領域内のエッジとするエッジ平滑化手段とを有してなるものであることを特徴とするエッジ検出装置。
【請求項３】
画像上の隣接する２つの画素間にエッジが存在するか否かを判定する処理と、
該判定に基づいて、前記画像上の２×２画素ブロック内のエッジの有無、およびエッジが有るエッジ含有画素ブロック内のエッジの位置とエッジの延びる方向からなるエッジパターンを示すエッジ情報を取得する処理と、
隣接する２つ以上の前記エッジ含有ブロックからなる領域内において、各々の前記エッジ含有ブロックの前記エッジパターンにより示される夫々のエッジが、互いに首尾連接して成す波状線に対して、該波状線上において互いに連接する２つのエッジの接点と、該接点が間に位置する前記画像上の２つの隣接する画素を結ぶ直線と該連接する２つのエッジの外端点を結ぶ直線との交点との間に位置する点を該連接する２つのエッジに対応する新接点とする処理を前記波状線上の各連接する２つのエッジに対して行うと共に、該波状線の両末端の２つのエッジの夫々の外端点と、各々の前記新接点とを順次接続してなる新しい波状線を前記領域内のエッジとする処理とをコンピュータに実行させることを特徴とプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば画像を拡大縮小するに際し、前記画像上の画素間のエッジを検出するエッジ検出方法および装置並びにそのためのプログラムに関するものである。
【背景技術】
【０００２】
従来より、ネガフィルムやカラーリバーサルフィルムなどの写真フィルムに記録された写真画像をスキャナなどの読取装置で光電的に読み取って得たデジタル画像や、デジタルスチルカメラ（ＤＳＣ）やカメラ付き携帯電話などのデジタル撮像装置により被写体を撮像することにより得られた画像データを、それを再生するモニタなどの再生装置のサイズに適合するように拡大縮小することが行われている。例えば、カメラ付き携帯電話により被写体を撮像して得て得られた画像データを電子メールとして送信する際に、送信先の携帯電話に備えられた液晶モニタのサイズに応じて画像データを拡大縮小するサービスが提供されている。
【０００３】
このような画像データの拡大縮小は、画像データにより表される画像を構成する画素の間に拡大縮小率に応じて新たな画素（以下補間画素という）を補間することにより行われる。このような補間方法としては、線形補間法、最近傍法、ガウシアンフィルタ、バイリニア法およびバイキュービック法などの種々の方法が知られている。これらの方法は、補間画素の近傍の画素を参照画素とし、参照画素の画素値による補間演算を行って補間画素の画素値を算出する。
【０００４】
しかしながら、単一の方法のみを用いて画像データを拡大縮小した場合、画像に含まれるエッジ部分にボケやシャギーが発生するという問題がある。このため、画像に含まれるエッジ成分を検出し、エッジ部分と非エッジ部分とで異なる処理による補間演算を行う方法が提案されている（特許文献１参照）。
【０００５】
特許文献１に記載された方法などにおいて画像からエッジを検出するためには、ソーベルフィルタやラプラシアンフィルタが一般的に用いられる。このようなソーベルフィルタやラプラシアンフィルタは、最短３タップの奇数タップ数を有し、フィルタリングにより注目画素がエッジであるか否かを判定することによりエッジを検出することができる。
【０００６】
ところで、画像を拡大縮小する場合には、画素間に補間画素を補間するため、画像に含まれる画素ではなく、画素の間に位置するエッジを検出する必要がある。上述した奇数タップ数のフィルタを用いてエッジを検出する場合、画像中の注目画素そのものがエッジであるか否かを判定することができるのみであり、画素間にエッジが存在するか否かを判定することができない。
【０００７】
そこで、画像上の隣接する２つの画素間にエッジがあるか否かを判定し、この判定に基づいて画像上の２×２画素の領域（以下画素ブロックという）内にエッジが存在するか否かを判別すると共に、エッジがあると判別された画素ブロックに対してさらにそのエッジの位置およびエッジの延びる方向（以下略してエッジの方向という）を示すエッジパターンを取得することによって画像上の画素間のエッジを検出する方法が考えられる。
【０００８】
隣接する画素間にエッジがあるか否かを判定する最も簡単な方法としては、隣接する２つの画素に対して例えば図５に示す差分フィルタによるフィルタリング処理を施してこの２つの画素の画素値の差分を得、この差分の絶対値が所定の閾値以上である場合に、この隣接する２つの画素間にエッジが存在すると判定する手法が考えられる。以下本発明の説明において、このような判定方法を第１の判定方法という。
【０００９】
また、隣接する２つの画素の画素値のみではなく、直列に隣接する４つの画素の画素値に基づいてこの４つの画素の中央に位置する２つの画素間にエッジが存在するか否かを判定する手法を用いることもできる。具体的には、例えば図１５に示す直列に隣接する４つの画素Ｇ１、Ｇ２、Ｇ３、Ｇ４の中央に位置する２つの画素Ｇ２、Ｇ３の間にエッジが存在するか否かを判定するのに当たって、まず、画素Ｇ１〜Ｇ４について、互いに隣接する２つの画素からなる画素３つの画素ペア（Ｇ１，Ｇ２）、（Ｇ２、Ｇ３）、（Ｇ３，Ｇ４）に対して差分フィルタによるフィルタリング処理を施して各ペアの画素の差分を１次差分ｄ１、ｄ２、ｄ３として算出する。続いて、３つの１次差分ｄ１、ｄ２、ｄ３における隣接する２つの１次差分ペア（ｄ１，ｄ２）、（ｄ２，ｄ３）に対して、同様に差分フィルタによるフィルタリング処理を施して、各１次差分ペアの差分を２次差分ｄ４、ｄ５として算出する。画像中に直列に隣接する４つの画素に対して算出した１次差分と２次差分の正負は全１８種類の組合せがあり、図１６と図１７、図１８は、この１８種類の組合せと、この４つの画素のプロファイル形状との関係を示している。そのうち、隣接する２つの画素Ｇ２、Ｇ３の間にエッジが存在することを示す組合せは、図１６に示すエッジ１およびエッジ２の２通りである。エッジ１は、（ｄ１，ｄ２，ｄ３，ｄ４，ｄ５）＝（＋，＋，＋，＋，−）となる右上がりエッジおよび（ｄ１，ｄ２，ｄ３，ｄ４，ｄ５）＝（−，−，−，−，＋）となる左上がりエッジの２種類があり、エッジ２は、（ｄ１，ｄ２，ｄ３，ｄ４，ｄ５）＝（＋，＋，＋，＋，＋）となる下に凸の右上がりエッジ、（ｄ１，ｄ２，ｄ３，ｄ４，ｄ５）＝（＋，＋，＋，−，−）となる上に凸の右上がりエッジ、（ｄ１，ｄ２，ｄ３，ｄ４，ｄ５）＝（−，−，−，＋，＋）となる下に凸の左上がりエッジ、（ｄ１，ｄ２，ｄ３，ｄ４，ｄ５）＝（−，−，−，−，−）となる上に凸の左上がりエッジの４種類がある。直列に隣接する４つの画素に対して１次差分ｄ１、ｄ２、ｄ３および２次差分ｄ４、ｄ５を求め、これらの差分の正負の関係が、図１６に示すエッジ１またはエッジ２の関係となる場合に、隣接する２つの画素Ｇ２、Ｇ３の間にエッジが存在すると判定すると共に、これらの差分の正負の関係が、図１７および図１８に示すような山、谷、その他の関係となる場合に、隣接する２つの画素Ｇ２、Ｇ３の間にエッジが存在しないと判定する。なお、以下本発明の説明において、このような判定方法を第２の判定方法という。
【００１０】
さらに、前述した第１と第２の判定方法の併合となる判定方法を用いて、より精度良く隣接する２つの画素間にエッジが存在するか否かの検出を行うこともできる。具体的には、第２の方法のように、直列に隣接する４つの画素Ｇ１〜Ｇ４に対して１次差分ｄ１、ｄ２、ｄ３および２次差分ｄ４、ｄ５を求め、これらの差分の正負の関係が、図１６に示すエッジ１またはエッジ２の関係となる場合に、隣接する２つの画素Ｇ２、Ｇ３の間にエッジが存在すると共に、これらの差分の正負の関係が、図１７に示すような山、谷、その他の関係となる場合に、隣接する２つの画素Ｇ２、Ｇ３の間にエッジが存在しないとするようにして第１の判定を行う。第１の判定において、隣接する２つの画素Ｇ２、Ｇ３の間にエッジが存在すると判定された場合において、画素Ｇ２、Ｇ３の画素値の差分の絶対値が所定の閾値以上であるか否かをさらに判定し（第２の判定）、第２の判定が肯定された場合においてのみ、画素Ｇ２、Ｇ３の間に真のエッジが存在すると判定する。このように第２の判定を行うのは、第１の判定においてエッジが存在すると判定されても、例えば図１９に示すように、画素Ｇ２、Ｇ３の画素値の差が非常にわずかでノイズと見なせるような場合に、そこはエッジであると誤判定してしまうことを防止するためである。図１９は、なお、以下本発明の説明において、このような判定方法を第３の判定方法という。
【００１１】
さらに、第１の判定方法の改良方法として、２つの隣接する画素間の差分の絶対値が所定の閾値（第１の閾値）以上である場合に、この２つの画素間にエッジが存在すると判定すると共に、２つの隣接する画素間の差分の絶対値がこの第１の閾値より小さいものの、第１の閾値よりも小さい閾値（第２の閾値）以上であり、かつこの２つの隣接する画素を中央とする直列に隣接する４つ以上の複数画素に含まれる互い隣接する２つの画素からなる各画素ペアの差分の絶対値のうちの最大値である場合に中央に隣接する２つの画素間にエッジが存在すると判定するようにすることもできる。こうすることによって、急なエッジのみならず、比較的に緩やかなエッジの判定もできる。なお、以下本発明の説明において、このような判定方法を第４の判定方法という。
【００１２】
これらの例に挙げたように、画像を構成する画素の隣接する画素間にエッジが存在するか否かを判定する方法が様々考えられる。隣接する画素間にエッジが存在するか否かの判定結果に基づいて、各２×２画素ブロック内のエッジの有無、エッジがある場合にはエッジパターンを判別することによって、画像上の画素間のエッジを検出することができる。ここで、エッジの検出とは、エッジの有無のみならず、エッジの方向や位置などのエッジパターンも判明することを意味する。
【００１３】
そして、画像を拡大縮小するために画像を構成する画素間に補間画素を補間する際に、補間画素の近傍の画素間にエッジが存在するか否か、どの方向のエッジかなどによって、異なる参照画素を選出したり、異なる補間演算方法で補間画素の画素値を求めるようにしたりなどするようにすれば、拡大縮小処理した画像の画質の低下を防ぐことができる。例えば、補間画素の近傍の画素間にエッジが検出されていない場合に、補間画素の近傍に位置する画素（例えば補間画素を囲む４×４の１６画素）全部を参照画素とし、参照画素の画素値に対して補間演算を行うことによって補間画素の画素値を求める一方、補間画素の近傍の画素間にエッジが検出されていれば、この補間画素がエッジのいずれ側に存在することを判定すると共に、補間画素の近傍の画素のうち、エッジに対して、補間画素と同じ側に位置する画素のみを参照画素として補間画素の画素値を求めるようにして、拡大縮小された画像の画質低下を防ぐ方法が考えられる。勿論、参照画素のみならず、補間画素の近傍の画素間にエッジが検出されたか否かとで異なる補間演算の方法を用いるようにしてもよい。
【特許文献１】特開２００２−３１９０２０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
ところで、上述したように、隣接する画素間にエッジが存在するか否かを判定し、この判定に基づいて２×２画素ブロック内のエッジの有無、エッジパターンを判明するエッジ検出方法は、画素ブロックを構成する４つの画素しか参照していないので、ノイズをエッジとして検出してしまう可能性がある。
【００１５】
また、上述したエッジ検出方法はブロック別にエッジの検出を行っているので、画像中のエッジは、複数の隣接する画素ブロック内のエッジが首尾連接してなる波状線で検出される。そのため、画像中の元々滑らかなエッジも、ジグザグな形状で検出されてしまう。
【００１６】
一方、前述したように、画像を拡大縮小する際に、拡大縮小された画像の画質を高めるためには、画像中のエッジの位置や方向に応じた補間演算を行う必要がある。ノイズもエッジとして検出された場合、それに応じた補間演算を行うと、拡大縮小された画像にもノイズが残り、画質が良くないという問題がある。
【００１７】
また、元々滑らかなエッジが、ジグザグな形状で検出されると、それに応じた補間演算を行って得た画像の中に、このエッジと対応する部分におけるエッジの形状もジグザグとなり、画質が劣化してしまうという問題がある。
【００１８】
本発明は、上記事情に鑑みてなされたものであり、拡大縮小された画像の画質を高めることを可能とするエッジ検出方法および装置並びにそのためのプログラムを提供することを目的とするものである。
【課題を解決するための手段】
【００１９】
本発明のエッジ検出方法は、画像上の隣接する２つの画素間にエッジが存在するか否かを判定し、
該判定に基づいて、前記画像上の２×２画素ブロック内のエッジの有無、およびエッジが有るエッジ含有画素ブロック内のエッジの位置と方向からなるエッジパターンを示すエッジ情報を取得し、
隣接する２つ以上の前記エッジ含有ブロックからなる領域内において、各々の前記エッジ含有ブロックの前記エッジパターンにより示される夫々のエッジが、互いに首尾連接して成す波状線に対して、該波状線上において互いに連接する２つのエッジの接点と、該接点が間に位置する前記画像上の２つの隣接する画素を結ぶ直線と該連接する２つのエッジの外端点を結ぶ直線との交点との間に位置する点を該連接する２つのエッジに対応する新接点とする処理を前記波状線上の各連接する２つのエッジに対して行うと共に、該波状線の両末端の２つのエッジの夫々の外端点と、各々の前記新接点とを順次接続してなる新しい波状線を前記領域内のエッジとすることを特徴とするものである。
【００２０】
ここで、「連接する２つのエッジの外端点」とは、この２つのエッジの夫々の、この２つのエッジの接点以外の端点を意味する。
【００２１】
ここで、互いに連接する２つのエッジの接点を点Ａとし、点Ａを挟む２つの隣接する画素を結ぶ直線と、この２つのエッジの外端点を結ぶ直線との交点を点Ｂとし、この２つのエッジに対応する新接点を点Ｃとするようにして説明する。また、点Ａと点Ｂ間の距離をＬとし、点Ａと点Ｃ間の距離をｌとすると、本発明におけるｌとＬの関係は、ｌ＝Ｌ／Ｍ（Ｍ：１以上の整数）となる。本発明において、Ｍが１より大きいことが好ましいが、１であってもよく、すなわち、点Ｂを新接点（点Ｃ）とするようにしてもよい。
【００２２】
本発明のエッジ検出装置は、画像上の隣接する２つの画素間にエッジが存在するか否かを判定する判定手段と、
該判定に基づいて、前記画像上の２×２画素ブロック内のエッジの有無、およびエッジが有るエッジ含有画素ブロック内のエッジの位置と方向からなるエッジパターンを示すエッジ情報を取得するエッジ情報取得手段と、
隣接する２つ以上の前記エッジ含有ブロックからなる領域内において、各々の前記エッジ含有ブロックの前記エッジパターンにより示される夫々のエッジが、互いに首尾連接して成す波状線に対して、該波状線上において互いに連接する２つのエッジの接点と、該接点が間に位置する前記画像上の２つの隣接する画素を結ぶ直線と該連接する２つのエッジの外端点を結ぶ直線との交点との間に位置する点を該連接する２つのエッジに対応する新接点とする処理を前記波状線上の各連接する２つのエッジに対して行うと共に、
該波状線の両末端の２つのエッジの夫々の外端点と、各々の前記新接点とを順次接続してなる新しい波状線を前記領域内のエッジとするエッジ平滑化手段とを有してなるものであることを特徴とするものである。
【００２３】
なお、本発明のエッジ検出方法を、コンピュータに実行させるためのプログラムとして提供してもよい。
【発明の効果】
【００２４】
本発明のエッジ検出方法および装置によれば、複数の隣接するエッジ含有ブロック内のエッジが互いに首尾連接して成す波状線、すなわちこの複数の隣接するエッジ含有ブロックより構成される領域内のエッジを示す線を平滑化することができると共に、検出されたエッジの元の形状を反映することができる。後にエッジ検出の結果基づいて拡大縮小処理を行って得た画像のシャープネスを保つことができると共に、ジグザグなエッジ形状に起因する画質の劣化を防ぐことができる。
【００２５】
なお、本発明のプログラムは、本発明のエッジ検出方法をコンピュータに実行させることができる。
【発明を実施するための最良の形態】
【００２６】
以下、図面を参照して、本発明の実施形態について説明する。
【００２７】
図１は、本発明の第１の実施形態による画像拡大縮小装置の構成を示すブロック図である。図示のように、本実施形態による画像拡大縮小装置は、画像データＳ０および画像データＳ０の拡大縮小率Ｋの入力を受け付ける入力部１と、エッジ検出部１０と、補間画素の画素値を算出する補間演算部３０と、入力部１、エッジ検出部１０および補間演算部３０の動作を制御する制御部５０とを備える。
【００２８】
ここで、画像データＳ０により表される画像は、図２に示すように２次元状に画素が並んで構成されてなるものであり、以下の説明においては、図２に示すようにｘ方向およびｙ方向を定めるものとする。なお、以下の説明において、画像データと、画像データにより表される画像とについて特に区別せず、参照符号も同じもの（ここではＳ０）を付与する。
【００２９】
図３に示すように、エッジ検出部１０は、フィルタリング部１２と、判定部１４と、エッジパターン分類部１６、エッジ調整部１８とを備えてなる。フィルタリング部１２は、まず画像Ｓ０上に補間画素Ｐの近傍に位置する４×４の１６画素（図６に示す１６画素Ｐ（ｉ，ｊ）（ｉ，ｊ＝−１〜２）。以下補間画素Ｐの１６画素という）に対して、互いに隣接する２つの画素からなる各画素ペアに対して図５に示す差分フィルタによるフィルタリング処理を施して夫々の画素ペアの差分（以下隣接画素ペアの差分をｄという）を算出する。なお、ここで互いに隣接する２つの画素とは、Ｐ（−１，０）とＰ（０，０）の２つの画素、またはＰ（−１，−１）とＰ（−１，０）の２つの画素のような、画素配列方向のｘ方向またはｙ方向において隣接する２つの画素に限らず、Ｐ（−１，−１）とＰ（０，０）の２つの画素や、Ｐ（０，１）とＰ（１，０）のような、２×２画素の対角線方向において隣接する２つの画素も含むものである。
【００３０】
判定部１４は、各画素ペアの差分ｄの絶対値が所定の閾値Ｔｈ以上であるか否かの判定を行い、この判定が肯定されると、該差分が対応する画素ペアの２つの画素の間にエッジが存在すると判定し、判定結果をエッジパターン分類部１６に出力する。
【００３１】
エッジパターン分類部１６は、判定部１４から出力されてきた判定結果に基づいて、各２×２の４つの画素内のエッジパターンを分類する。ここで、まず、画素Ｐ（０，０）、Ｐ（１，０）、Ｐ（１，１）、Ｐ（０，１）の４つの画素について説明する。図７に示すように、エッジパターン分類部１６は、エッジが存在する画素間の中点を結ぶ直線に応じてエッジパターンを分類する。図８から図１０は、エッジが存在する位置に応じたエッジパターンを示す図である。図８から図１０に示すように、エッジが存在する位置に応じてエッジパターンはパターン０〜パターン８の９種類のパターンに分類される。
【００３２】
なお、間ｅ１，ｅ２，ｅ３，ｅ４にエッジが存在する場合、および間ｅ１，ｅ２，ｅ３，ｅ４，ｅ５，ｅ６にエッジが存在する場合は、エッジパターンはパターン７であるのかパターン８であるのかが分からない。このため、エッジパターン分類部１６は、間ｅ１，ｅ２，ｅ３，ｅ４にエッジが存在する場合、および間ｅ１，ｅ２，ｅ３，ｅ４，ｅ５，ｅ６にエッジが存在する場合には、さらに画素Ｐ（０，０）と画素Ｐ（１，１）の画素値の差分の絶対値（｜ｄ１１｜とする）および画素（０，１）と画素（１，０）の画素値の差分の絶対値（｜ｄ１２｜とする）を算出し、｜ｄ１１｜＜｜ｄ１２｜の場合にはエッジパターンをパターン７に分類し、｜ｄ１１｜≧｜ｄ１２｜の場合にはエッジパターンをパターン８に分類する。
【００３３】
そしてエッジパターン分類部１６は、このようなエッジパターン分類処理を各２×２の４つの画素に対して行い、分類の結果をエッジ調整部１８に出力する。図１１は、エッジパターン分類部１６による分類の結果の一例を示すものであり、この例では、補間画素Ｐに隣接する４つの画素（図中黒丸）内のエッジパターンがパターン４、４つの画素Ｐ（−１，−１）、Ｐ（０，−１）、Ｐ（０，０）、Ｐ（−１，０）内のエッジパターンがパターン４、４つの画素Ｐ（０，−１）、Ｐ（１，−１）、Ｐ（１，０）、Ｐ（０，０）内のエッジパターンがパターン２、４つの画素Ｐ（１，−１）、Ｐ（２，−１）、Ｐ（２，０）、Ｐ（１，０）内のエッジパターンがパターン６、４つの画素Ｐ（−１，０）、Ｐ（０，０）、Ｐ（０，１）、Ｐ（−１，１）内のエッジパターンがパターン２、４つの画素Ｐ（１，０）、Ｐ（２，０）、Ｐ（２，１）、Ｐ（１，１）内のエッジパターンがパターン０、４つの画素Ｐ（−１，１）、Ｐ（０，１）、Ｐ（０，２）、Ｐ（−１，２）内のエッジパターンがパターン１、４つの画素Ｐ（０，１）、Ｐ（１，１）、Ｐ（１，２）、Ｐ（０，２）内のエッジパターンがパターン６、および４つの画素Ｐ（１，１）、Ｐ（２，１）、Ｐ（２，２）、Ｐ（１，２）内のエッジパターンがパターン３である。図１１中の波状線Ａ１−Ａ２−Ａ３−Ａ４−Ａ５−Ａ６−Ａ７−Ａ８および線Ａ９−Ａ１０は、これらのエッジパターンを示すものである。
【００３４】
エッジ調整部１８は、エッジパターン分類部１６からの分類結果に基づいて、補間画素Ｐの１６画素領域内のエッジを調整する。図４に示すように、エッジ調整部１８は、修正部２２と、平滑処理部２４とを有してなる。ここで、図１１に示す分類結果を例にして修正部２２と平滑処理部の詳細について説明する。
【００３５】
修正部２２は、まず、エッジパターン分類部１６の分類結果に基づいて、パターン０以外のエッジパターンを有する各２×２の画素（以下画素ブロックという）内のエッジと連接するエッジがあるか否かを確認する。図１１の例では、画素Ｐ（−１，−１）、Ｐ（０，−１）、Ｐ（０，０）、Ｐ（−１，０）から構成される画素ブロックを除いて、エッジパターンが０以外の各画素ブロック内のエッジが互いに首尾連接しており、画素Ｐ（−１，−１）、Ｐ（０，−１）、Ｐ（０，０）、Ｐ（−１，０）から構成される画素ブロック（以下画素ブロック０という）内のエッジＡ９−Ａ１０が連接するエッジがない。修正部２２は、図１１に示していない、画素ブロック０と隣接する画素ブロック内に、エッジＡ９−Ａ１０と連接するエッジがあるか否かを確認するために、画素Ｐ（−１，−１）と画素Ｐ（０，−１）を結ぶ線を介して画素ブロック０と隣接する画素ブロック、画素Ｐ（−１，−１）と画素Ｐ（−１，０）を結ぶ線を介して画素ブロック０と隣接する画素ブロック、画素Ｐ（−１，０）を隣接点として画素ブロック０と隣接する画素ブロック（すなわち、画素Ｐ（−１，０）と画素Ｐ（−１，１）を結ぶ線を介して、Ｐ（−１，０）、Ｐ（０，０）、Ｐ（０，１）と画素Ｐ（−１，１）により構成される画素ブロック、および画素Ｐ（−１，−１）を隣接点として画素ブロック０と隣接する画素ブロック、画素Ｐ（０，１）を隣接点として画素ブロック０と隣接する画素ブロックの計５つの画素ブロック内のエッジパターンを夫々取得する。具体的には、これらの画素ブロックに対して、隣接する２つの画素の画素値の差分の取得、差分に基づいたエッジが存在するか否かの判定、この判定に基づいた画素ブロック内のエッジパターンの分類を夫々フィルタリング部１２、判定部１４、エッジパターン分類部１６に夫々行わせる。そして、修正部２２は、これらの画素ブロック内に、エッジＡ９−Ａ１０と連接するエッジが有るか否かを確認し、確認が否定されると、エッジＡ９−Ａ１０がエッジではないと判別し直すと共に、確認が肯定されると、Ａ９−Ａ１０がエッジであると判別する。なお、ここでは、画素ブロック０と隣接するこれらの画素ブロック内においても、画素ブロック０内のエッジＡ９−Ａ１０と連接するエッジがないとし、修正部２２は、エッジＡ９−Ａ１０がエッジではないと判別し直したとする。図１２は、エッジ検出部１０によるエッジ検出の結果を示すものであり、図から分かるように、エッジ調整部１８における修正部２２の処理により、エッジ検出部１０の検出結果には、エッジＡ９−Ａ１０がなく、画素ブロック０はエッジの画素ブロックとされている。
【００３６】
平滑処理部２４は、図１１に示す波状線Ａ１−Ａ２−Ａ３−Ａ４−Ａ５−Ａ６−Ａ７−Ａ８に対して平滑処理を行うものである。具体的には、まず、この波状線上の互いに連接する２つのエッジの接点と、この接点が間に位置する２つの隣接する画素を結ぶ直線とこの連接する２つのエッジの外端点を結ぶ直線との交点との中央に位置する点をこの連接する２つのエッジに対応する新接点として決定する。図１２に示すように、例えば、連接する２つのエッジＡ１−Ａ２とＡ２−Ａ３に対して、この２つのエッジの外端点Ａ１、Ａ３を結ぶ直線Ａ１−Ａ３と、この２つのエッジの接点Ａ２が間に位置する２つの隣接する画素Ｐ（−１，−１）、Ｐ（１，０）を結ぶ直線との交点をＢ１として求めると、接点Ａ２と交点Ｂ１との中心点Ｃ１がエッジＡ１−Ａ２とエッジＡ２−Ａ３の新接点として決定される。平滑処理部２４は、波状線Ａ１−Ａ２−Ａ３−Ａ４−Ａ５−Ａ６−Ａ７−Ａ８上の各連接する２つのエッジに対してこのように新接点を決定する。図１２の例では、エッジＡ１−Ａ２とエッジＡ２−Ａ３に対して新接点Ｃ１、エッジＡ２−Ａ３とエッジＡ３−Ａ４に対して新接点Ｃ２（接点Ａ３と同じ点）、エッジＡ３−Ａ４とエッジＡ４−Ａ５に対して新接点Ｃ３（接点Ａ４と同じ点）、エッジＡ４−Ａ５とエッジＡ５−Ａ６に対して新接点Ｃ５、エッジＡ５−Ａ６とエッジＡ６−Ａ７に対して新接点Ｃ６が夫々決定される。
【００３７】
次に平滑処理部２４は、波状線Ａ１−Ａ２−Ａ３−Ａ４−Ａ５−Ａ６−Ａ７−Ａ８の両末端の２つのエッジＡ１−Ａ２とＡ７−Ａ８の夫々の外端点Ａ１、Ａ８と、前述において決定された新接点とを順次接続して新しい波状線Ａ１−Ｃ１−Ｃ２−Ｃ３−Ｃ４−Ｃ５−Ｃ６−Ａ８を得る。図１２から分かるように、実線により示される新しい波状線Ａ１−Ｃ１−Ｃ２−Ｃ３−Ｃ４−Ｃ５−Ｃ６−Ａ８は点線により示される波状線Ａ１−Ａ２−Ａ３−Ａ４−Ａ５−Ａ６−Ａ７−Ａ８の形を残しつつ、波状線Ａ１−Ａ２−Ａ３−Ａ４−Ａ５−Ａ６−Ａ７−Ａ８より滑らかな形状を成している。なお、新しい波状線Ａ１−Ｃ１−Ｃ２−Ｃ３−Ｃ４−Ｃ５−Ｃ６−Ａ８により、補間画素Ｐの１６画素の領域は領域Ｑ１と領域Ｑ２に分割されている。図中において、領域Ｑ２を斜線で示している。
【００３８】
エッジ調整部１８は、図１２に示すような、修正部２２および平滑処理部２４により処理が施されたエッジパターンをエッジ検出部１０のエッジ検出の結果として補間演算部３０に出力し、補間演算部３０は、エッジ検出の結果に基づいて補間画素のＰの画素値を算出するものである。図１３は、補間演算部３０の構成を示すブロック図である。図示のように、補間演算部３０は、補間画素Ｐがエッジのいずれ側に存在するかを判定する判定部３２と、補間画素Ｐの１６画素のうち、エッジに対して補間画素Ｐと同じ側に位置する画素を参照画素として選出する参照画素選出部３４と、参照画素の画素値による補間演算を行って補間画素Ｐの画素値を算出する演算部３６とを備える。ここで、補間演算部３０の詳細について説明する。
【００３９】
補間演算部３０は、補間画素Ｐと隣接する２×２画素内のエッジパターンがパターン０であり、すなわちこの領域内にエッジが存在しない場合、バイキュービック法を用いて補間画素Ｐの画素値を算出する。
【００４０】
ここで、バイキュービック法は３次補間の１手法であり、補間画素Ｐの１６画素を用いて補間画素Ｐの画素値を求める方法である。以下、図５を参照してバイキュービック法について説明する。
【００４１】
図６に示すように点Ｐを補間画素Ｐの位置とした場合、補間画素Ｐと隣接する図中黒丸の画素は第１次近傍、白丸で示される画素は第２次近傍と称される。第１次近傍および第２次近傍の夫々について、下記の式（１）に示すようにｘ方向およびｙ方向に夫々に独立に距離ｄｘ、ｄｙ（式（１）においては単にｄと示す）に対して重みＷｘ、Ｗｙを求め、最終的にその画素に対する重みＷ＝ＷｘＷｙを得る。
【数１】
2008171455.tif 000003
【００４２】
例えば、図６における画素Ｐ（−１，−１）の画素（第２次近傍）に対して、重みＷｘ、Ｗｙ、Ｗを求めると、
【数２】
2008171455.tif 000004
【００４３】
となる。
【００４４】
そして、Ｗ（ｉ，ｊ）を画素Ｐ（ｉ，ｊ）の重み、ｆ（ｉ，ｊ）を画素Ｐ（ｉ，ｊ）の画素値とすると、補間画素Ｐの画素値ｆ’（Ｐ）は、
【数３】
2008171455.tif 000005
【００４５】
により算出することができる。
【００４６】
一方、補間画素Ｐの隣接する２つの画素内にエッジがある場合、補間演算部３０は、補間画素Ｐの隣接する４画素内にエッジが無い場合と異なる補間演算を行う。以下、補間画素Ｐの隣接する４画素内にエッジが無い場合の補間演算を第１の補間演算（ここでは、バイキュービック補間演算）といい、補間画素Ｐの隣接する４つの画素内にエッジがある場合の補間演算を第２の補間演算という。
【００４７】
ここで、図１２の例を参照して補間演算部の第２の補間演算について具体的に説明する。
【００４８】
図１２に示すように、補間画素Ｐを囲む１６画素内の領域はエッジにより２つの領域Ｑ１，Ｑ２に分割される。領域Ｑ２は斜線により示される。補間演算部３０は、まず、判定部３２により、１６画素内のエッジパターンに基づいて、補間画素Ｐがエッジを挟んでいずれの側に存在するかを判定する。例えば、図１２に示すように補間画素Ｐが領域Ｑ１側に存在すると判定される。次に、補間演算部３０の参照画素選出部３４は、補間画素Ｐの１６画素のうち、エッジに対して補間画素Ｐと同じ側に存在する画素を参照画素として選出する。図１２の例において、領域Ｑ１側の画素Ｐ（−１，−１），Ｐ（０，−１）、Ｐ（１，−１），Ｐ（２，−１）、Ｐ（−１，０），Ｐ（０，０）、Ｐ（−１，１）、Ｐ（−１，２），Ｐ（０，２）、Ｐ（１，２）の計１０個の画素が補間演算に使用される参照画素として選出される。次に演算部３６は、参照画素選出部３４により選出された参照画素のうち、補間画素Ｐに近い位置の画素ほど重みを大きくするように各参照画素の重みＷを設定する。図１２の例において、画素Ｐ（０，０）の重みＷが最も大きくなるように、各参照画素の重みＷが設定される。ここで、各参照画素Ｐ（−１，−１），Ｐ（０，−１）、Ｐ（１，−１），Ｐ（２，−１）、Ｐ（−１，０），Ｐ（０，０）、Ｐ（−１，１）、Ｐ（−１，２），Ｐ（０，２）、Ｐ（１，２）の画素値をＰｔ１〜Ｐｔ１０とし、夫々に対して重みＷｉが設定される。
【００４９】
そして、演算部３６は、設定した重みＷを用いて、下記の式（６）に示す演算を施すことにより、補間画素Ｐの画素値（ここではＰｔとする）を算出する。
【数４】
2008171455.tif 000006
【００５０】
図１４は、本実施形態の画像拡大縮小装置において行われる処理を示すフローチャートである。なお、本実施形態においては、補間画素Ｐは、画像Ｓ０の画素の間に存在するものとする。まず、入力部１は拡大縮小する画像データＳ０および画像データＳ０の拡大縮小率Ｋの入力を受け付ける（Ｓ１）。そして、フィルタリング部１２は、拡大縮小率Ｋに応じた最初の補間画素Ｐ（例えば拡大縮小された画像データＳ１により表される画像上の左上に位置する画素）の近傍に位置する４×４の１６画素（補間画素Ｐの１６画素）について、隣接する２つの画素からなる画素ペアに対して差分フィルタによるフィルタリング処理を施して夫々の画素ペアの差分を算出する（Ｓ１０）。
【００５１】
次いで、判定部１４は、各画素ペアの差分の絶対値が所定の閾値Ｔｈ以上でるか否かに基づいて、各画素ペアの２つの画素の間にエッジが存在するか否かの判定を行う。具体的には、画素ペアの差分の絶対値が閾値Ｔｈ以上であれば、この画素ペアの２つの画素の間にエッジが存在すると判定する一方、画素ペアの差分の絶対値が閾値Ｔｈより小さければ、この画素ペアの２つの画素の間にエッジが存在しないと判定する。
【００５２】
エッジパターン分類部１６は、判定部１４からの判定結果に基づいて、各２×２画素ブロック内におけるエッジのパターンを分類し（Ｓ２０）、エッジ調整部１８は隣接するエッジの無いエッジをエッジではないと判別し直すと共に、隣接する画素ブロック内のエッジが首尾連接してなる波状線に対して平滑処理を行って得た結果をエッジ検出部１０の検出結果として補間演算部３０に出力する（Ｓ４０、Ｓ５０）。補間演算部３０は、エッジパターン分類部１６の分類結果に基づいて、補間画素Ｐの隣接する２×２画素ブロック内にエッジが存在しない場合（Ｓ６０：Ｎｏ）、補間画素Ｐの１６画素の画素値に対して、第１の補間演算、すなわちバイキュービック補間法による補間演算を行って補間画素Ｐの画素値を求める（Ｓ６８）。一方、補間画素Ｐの隣接する２×２画素ブロック内にエッジがある場合には（Ｓ６０：Ｙｅｓ）、第２の補間演算を行って補間画素Ｐの画素値を求める（Ｓ７０）。
【００５３】
制御部５０は、画像Ｓ０に対して全ての補間画素Ｐについて画素値を算出したか否かを判定し（Ｓ７５）、ステップＳ７５が否定されると、画素値を算出する補間画素Ｐを次の補間画素Ｐに設定し（Ｓ８０）、ステップＳ１０からの処理に戻る。一方、ステップＳ８０が肯定されると、制御部５０は、補間画素Ｐからなる拡大縮小された画像データＳ１を出力し（Ｓ９０）、処理を終了する。
【００５４】
以上、本発明の望ましい実施形態について説明したが、本発明のエッジ検出方法および装置並びにそのためのプログラムは、上述した実施形態に限られることがなく、本発明の主旨を逸脱しない限り、上述した各実施形態の構成を増減、変化を加えたりすることができる。
【００５５】
例えば、画素間にエッジが存在するか否かを検出する方法は、上述した実施形態に用いられた方法に限られるものではなく、従来技術の説明において例挙した方法などを用いてもよい。
【００５６】
また、補間演算の方法も、上述した実施形態に用いられたバイキュービック補間演算、補間画素との距離に応じた重付加算に限られるものではなく、ガウシアンフィルタなどの他の補間演算方法を用いてもよい。
【００５７】
さらに、上述した実施形態において、エッジに対して補間画素Ｐと同じ側に位置する画素のみを参照画素として選出するようにしているが、エッジを挟んで補間画素Ｐと異なる側に位置する画素も参照画素に加えてもよい。この場合、エッジを挟んで補間画素Ｐと異なる側に位置する参照画素に対して、エッジに対して補間画素Ｐと同じ側に位置する参照画素より小さい重みを付けるようにして補間演算を行えばよい。
【図面の簡単な説明】
【００５８】
【図１】本発明の実施形態による画像拡大縮小装置の構成を示すブロック図
【図２】画像データにより表される画像の画素配列を示す図
【図３】図１に示す画像拡大縮小装置のエッジ検出部１０の構成を示すブロック図
【図４】図３に示すエッジ検出部１０におけるエッジ調整部１８の構成を示すブロック図
【図５】差分フィルタの例を示す図
【図６】補間演算を説明するための図
【図７】エッジパターン分類部１６の動作を説明するための図
【図８】エッジが存在する位置に応じたエッジパターンを示す図（その１）
【図９】エッジが存在する位置に応じたエッジパターンを示す図（その２）
【図１０】エッジが存在する位置に応じたエッジパターンを示す図（その３）
【図１１】エッジパターン分類部１６による分類の結果の一例を示す図
【図１２】エッジ調整部１８の処理結果の例を示す図
【図１３】図１に示す画像拡大縮小装置の補間演算部３０の構成を示すブロック図
【図１４】図１に示す画像拡大縮小装置に行われる処理を示すフローチャート
【図１５】隣接画素間にエッジが存在するか否かを検出する方法の１例を説明するための図
【図１６】１次差分ｄ１，ｄ２，ｄ３および２次差分ｄ４，ｄ５の正負と、直列に隣接する４つの画素のプロファイル形状との関係を示す表（その１）
【図１７】１次差分ｄ１，ｄ２，ｄ３および２次差分ｄ４，ｄ５の正負と、直列に隣接する４つの画素のプロファイル形状との関係を示す表（その２）
【図１８】１次差分ｄ１，ｄ２，ｄ３および２次差分ｄ４，ｄ５の正負と、直列に隣接する４つの画素のプロファイル形状との関係を示す表（その３）
【図１９】隣接画素間にエッジが存在するか否かを検出する方法の１例を説明するための図
【符号の説明】
【００５９】
１     入力部
１０   エッジ検出部
１２   フィルタリング部
１４   判定部
１６   エッジパターン分類部
１８   エッジ調整部
２２   修正部
２４   平滑処理部
３０   補間演算部
３２   判定部
３４   参照画像選出部
３６   演算部
５０   制御部
Ｋ     拡大縮小率
Ｓ０   画像データ
Ｓ１   拡大縮小された画像データ
【図１】
2008171455.tif 000007
【図２】
2008171455.tif 000008
【図３】
2008171455.tif 000009
【図４】
2008171455.tif 000010
【図５】
2008171455.tif 000011
【図６】
2008171455.tif 000012
【図７】
2008171455.tif 000013
【図８】
2008171455.tif 000014
【図９】
2008171455.tif 000015
【図１０】
2008171455.tif 000016
【図１１】
2008171455.tif 000017
【図１２】
2008171455.tif 000018
【図１３】
2008171455.tif 000019
【図１４】
2008171455.tif 000020
【図１５】
2008171455.tif 000021
【図１６】
2008171455.tif 000022
【図１７】
2008171455.tif 000023
【図１８】
2008171455.tif 000024
【図１９】
2008171455.tif 000025