(57)【要約】【課題】画像中の画素毎に各段階の処理結果を格納する場合に比べて少ない内部バッファで、Ｃａｎｎｙ法によるエッジ検出の処理効率を向上する。【解決手段】画像中の注目画素における画素値である注目画素値の勾配の強度及び注目画素値の勾配の方向を算出し、注目画素値の勾配が算出される毎に、注目画素値の非最大抑制処理のうち、注目画素に隣接する画素のうち画素値の勾配が既に算出された第１画素の画素値の勾配の強度を注目画素値の勾配の強度との比較の対象として参照する第１処理と、第１画素のそれぞれに対する非最大抑制処理のうち、注目画素値の勾配の強度を第１画素の画素値の勾配の強度との比較の対象として参照する第２処理とを実行し、第１画素を含む非最大抑制処理が完了した画素に囲まれた第２画素の画素値の勾配の強度及び第２画素を囲む複数の画素の画素値の勾配の強度のそれぞれと、第１閾値及び第１閾値よりも大きい第２閾値との比較に基づいて、第２画素がエッジであるか否かを判定する。【選択図】      図１
2016018490.tif 000002
【特許請求の範囲】
【請求項１】
画像における画素の並び順に従って順次に特定される注目画素の画素値と前記注目画素の周囲の複数の画素の画素値とに基づいて、前記注目画素における画素値である注目画素値の勾配の強度及び前記注目画素値の勾配の方向を算出し、
前記注目画素値の勾配が算出される毎に、
前記注目画素値の勾配の強度が前記注目画素値の勾配の方向に隣接する画素の少なくとも一方の画素値の勾配の強度よりも小さい場合に前記注目画素値の勾配の強度を第１閾値よりも小さい値に置き換える処理である非最大抑制処理のうち、前記注目画素に隣接する画素のうち画素値の勾配が既に算出された第１画素の画素値の勾配の強度を前記注目画素値の勾配の強度との比較の対象として参照する第１処理と、
前記第１画素のそれぞれに対する前記非最大抑制処理のうち、前記注目画素値の勾配の強度を前記第１画素の画素値の勾配の強度との比較の対象として参照する第２処理とを実行し、
前記第１画素を含む前記非最大抑制処理が完了した画素に囲まれた第２画素の画素値の勾配の強度及び前記第２画素を囲む複数の画素の画素値の勾配の強度のそれぞれと、前記第１閾値及び前記第１閾値よりも大きい第２閾値との比較に基づいて、前記第２画素がエッジであるか否かを判定する第３処理を実行する
ことを特徴とするエッジ検出方法。
【請求項２】
請求項１に記載のエッジ検出方法において、
前記第２画素に対する前記第３処理は、
前記第２処理により前記第１画素に対する前記非最大抑制処理が完了するごとに、前記第１画素の画素値の勾配の強度を、前記勾配の強度と前記第１閾値及び前記第２閾値との大小関係を示す判定情報に置き換え、
前記第２画素の画素値の勾配の強度と前記第１閾値及び前記第２閾値との大小関係を示す判定情報と、前記第２画素を囲む画素のそれぞれの画素値の勾配の強度と前記第１閾値及び前記第２閾値との大小関係を示す判定情報とに基づいて、前記第２画素がエッジであるか否かを判定することで実行される、
ことを特徴とするエッジ検出方法。
【請求項３】
画像における画素の並び順に従って順次に特定される注目画素の画素値と前記注目画素の周囲の複数の画素の画素値とに基づいて、前記注目画素における画素値である注目画素値の勾配の強度及び前記注目画素値の勾配の方向を算出する算出部と、
前記算出部で算出した前記注目画素値の勾配を用いて、前記注目画素値の勾配の強度が前記注目画素値の前記勾配の方向に隣接する画素の少なくとも一方の画素値の勾配の強度よりも小さい場合に前記注目画素値の勾配の強度を第１閾値よりも小さい値に置き換える処理である非最大抑制処理のうち、前記注目画素に隣接する画素のうち画素値の勾配が既に算出された第１画素の画素値の勾配の強度を前記注目画素値の勾配の強度との比較の対象として参照する第１処理を行う第１抑制部と、
前記算出部で算出した前記注目画素値の勾配を用いて、前記第１画素のそれぞれに対する前記非最大抑制処理のうち、前記注目画素値の勾配の強度を前記第１画素の画素値の勾配の強度との比較の対象として参照する第２処理を行う第２抑制部と、
前記第１画素を含む前記非最大抑制処理が完了した画素に囲まれた第２画素の画素値の勾配の強度及び前記第２画素を囲む各画素の画素値の勾配の強度のそれぞれと、前記第１閾値及び前記第１閾値よりも大きい第２閾値との比較に基づいて、前記第２画素がエッジであるか否かを判定する第３処理を実行する判定部と
を備えたことを特徴とするエッジ検出装置。
【請求項４】
請求項３に記載のエッジ検出装置において、
前記判定部は、
前記第２抑制部による前記第２処理が完了した第１画素の画素値の勾配の強度を、前記勾配の強度と前記第１閾値及び前記第２閾値との大小関係を示す判定情報に置き換える置換部と、
前記第２画素の画素値の勾配の強度と前記第１閾値及び前記第２閾値との大小関係を示す判定情報と、前記第２画素を囲む画素の画素値の勾配の強度と前記第１閾値及び前記第２閾値との大小関係を示す判定情報とに基づいて、前記第２画素がエッジであるか否かを決定する決定部とを有する
ことを特徴とするエッジ検出装置。
【請求項５】
画像における画素の並び順に従って順次に特定される注目画素の画素値と前記注目画素の周囲の複数の画素の画素値とに基づいて、前記注目画素における画素値である注目画素値の勾配の強度及び前記注目画素値の勾配の方向を算出し、
前記注目画素値の勾配が算出される毎に、
前記注目画素値の勾配の強度が前記注目画素値の勾配の方向に隣接する画素の少なくとも一方の画素値の勾配の強度よりも小さい場合に前記注目画素値の勾配の強度を第１閾値よりも小さい値に置き換える処理である非最大抑制処理のうち、前記注目画素に隣接する画素のうち画素値の勾配が既に算出された第１画素の画素値の勾配の強度を前記注目画素値の勾配の強度との比較の対象として参照する第１処理と、
前記第１画素のそれぞれに対する前記非最大抑制処理のうち、前記注目画素値の勾配の強度を前記第１画素の画素値の勾配の強度との比較の対象として参照する第２処理とを実行し、
前記第１画素を含む前記非最大抑制処理が完了した画素に囲まれた第２画素の画素値の勾配の強度及び前記第２画素を囲む複数の画素の画素値の勾配の強度のそれぞれと、前記第１閾値及び前記第１閾値よりも大きい第２閾値との比較に基づいて、前記第２画素がエッジであるか否かを判定する第３処理を実行する、
処理をコンピュータに実行させることを特徴とするエッジ検出プログラム。  
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エッジ検出方法、エッジ検出装置及びエッジ検出プログラムに関する。
【背景技術】
【０００２】
Ｃａｎｎｙ法によるエッジ検出技術は、画像から高い精度でエッジを検出することができる（例えば、特許文献１、特許文献２、特許文献３及び特許文献４参照）。
【０００３】
Ｃａｎｎｙ法によるエッジ検出技術では、３段階の処理により、画像からエッジを検出する。第１段階の処理は、Ｓｏｂｅｌフィルタなどを用いて各画素における輝度値等の勾配を求める処理である。第２段階の処理は、画像の中の注目する画素である注目画素において求められた勾配の強度と、勾配の方向に注目画素に隣接する２つの画素の勾配の強度との比較に基づいて、注目画素がエッジである可能性があるか否かを判定する処理である。第２段階の処理は、注目画素の勾配の強度が隣接する画素の何れかの勾配の強度以下である場合に、注目画素の勾配の強度を、例えば、値「０」に置き換えることで、エッジとして検出されることを抑制することから、非最大抑制処理と呼ばれる場合がある。第３段階の処理は、注目画素の勾配の強度及び注目画素に隣接する画素の勾配の強度のそれぞれと第１閾値及び第１閾値よりも大きい第２閾値のそれぞれとの比較に基づいて、注目画素がエッジであるか否かを判定する処理である。第３段階の処理は、２つの閾値を用いることから、ヒステリシス閾値処理と呼ばれる場合がある。ヒステリシス閾値処理では、まず、注目画素の勾配の強度が第２閾値よりも大きい場合に、注目画素をエッジとして検出する。また、ヒステリシス閾値処理では、例えば、注目画素の勾配の強度が第１閾値よりも大きく、第２閾値以下であり、かつ、注目画素に隣接する画素の中に第２閾値よりも大きい勾配の強度を持つ画素がある場合に、注目画素をエッジとして検出する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−０５８１９９号公報
【特許文献２】特開２０１１−２３８２２８号公報
【特許文献３】特開２０１２−０７３９５３号公報
【特許文献４】特開２００７−１４０６８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
Ｃａｎｎｙ法によるエッジ検出処理の各段階の処理は、前の段階の処理結果を用いるため、並列化が困難である。また、画像に含まれる全ての画素について各段階の処理で得られる結果を示す情報量は大きい。このため、Ｃａｎｎｙ法によるエッジ検出処理の各段階を実行する処理ユニットの内部に、画像中の全ての画素について各段階の処理で得られた結果を示す情報を格納可能な容量を持つバッファメモリを設けることは困難である。一方、Ｃａｎｎｙ法の各段階の処理の結果を保持させるために、エッジ検出処理用の処理ユニットの外部にフレームメモリなどの記憶装置を設けると、バッファメモリを用いる場合に比べてエッジ検出処理にかかる時間が長くなってしまう。なぜなら、フレームメモリとして用いられるＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）等へのアクセスには、バッファメモリへのアクセスに比べて長い時間がかかるため、各段階の処理結果の書き出し及び参照にかかる時間が増大するからである。
【０００６】
本件開示のエッジ検出方法、エッジ検出装置及びエッジ検出プログラムは、画像中の画素毎に各段階の処理結果を格納する場合に比べて少ない内部バッファを用いて、Ｃａｎｎｙ法によるエッジ検出の処理効率の向上を実現する技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
一つの観点によれば、エッジ検出方法は、画像における画素の並び順に従って順次に特定される注目画素の画素値と注目画素の周囲の複数の画素の画素値とに基づいて、注目画素における画素値である注目画素値の勾配の強度及び注目画素値の勾配の方向を算出し、注目画素値の勾配が算出される毎に、注目画素値の勾配の強度が注目画素値の勾配の方向に隣接する画素の少なくとも一方の画素値の勾配の強度よりも小さい場合に注目画素値の勾配の強度を第１閾値よりも小さい値に置き換える処理である非最大抑制処理のうち、注目画素に隣接する画素のうち画素値の勾配が既に算出された第１画素の画素値の勾配の強度を注目画素値の勾配の強度との比較の対象として参照する第１処理と、第１画素のそれぞれに対する非最大抑制処理のうち、注目画素値の勾配の強度を第１画素の画素値の勾配の強度との比較の対象として参照する第２処理とを実行し、第１画素を含む非最大抑制処理が完了した画素に囲まれた第２画素の画素値の勾配の強度及び第２画素を囲む複数の画素の画素値の勾配の強度のそれぞれと、第１閾値及び第１閾値よりも大きい第２閾値との比較に基づいて、第２画素がエッジであるか否かを判定する第３処理を実行する。
【０００８】
別の観点によれば、エッジ検出装置は、画像における画素の並び順に従って順次に特定される注目画素の画素値と注目画素の周囲の複数の画素の画素値とに基づいて、注目画素における画素値である注目画素値の勾配の強度及び注目画素値の勾配の方向を算出する算出部と、算出部で算出した注目画素値の勾配を用いて、注目画素値の勾配の強度が注目画素値の勾配の方向に隣接する画素の少なくとも一方の画素値の勾配の強度よりも小さい場合に注目画素値の勾配の強度を第１閾値よりも小さい値に置き換える処理である非最大抑制処理のうち、注目画素に隣接する画素のうち画素値の勾配が既に算出された第１画素の画素値の勾配の強度を注目画素値の勾配の強度との比較の対象として参照する第１処理を行う第１抑制部と、算出部で算出した注目画素値の勾配を用いて、第１画素のそれぞれに対する非最大抑制処理のうち、注目画素値の勾配の強度を第１画素の画素値の勾配の強度との比較の対象として参照する第２処理を行う第２抑制部と、第１画素を含む非最大抑制処理が完了した画素に囲まれた第２画素の画素値の勾配の強度及び第２画素を囲む各画素の画素値の勾配の強度のそれぞれと、第１閾値及び第１閾値よりも大きい第２閾値との比較に基づいて、第２画素がエッジであるか否かを判定する第３処理を実行する判定部とを有する。
【０００９】
また、別の観点によれば、エッジ検出プログラムは、画像における画素の並び順に従って順次に特定される注目画素の画素値と注目画素の周囲の複数の画素の画素値とに基づいて、注目画素における画素値である注目画素値の勾配の強度及び注目画素値の勾配の方向を算出し、注目画素値の勾配が算出される毎に、注目画素値の勾配の強度が注目画素値の勾配の方向に隣接する画素の少なくとも一方の画素値の勾配の強度よりも小さい場合に注目画素値の勾配の強度を第１閾値よりも小さい値に置き換える処理である非最大抑制処理のうち、注目画素に隣接する画素のうち画素値の勾配が既に算出された第１画素の画素値の勾配の強度を注目画素値の勾配の強度との比較の対象として参照する第１処理と、第１画素のそれぞれに対する非最大抑制処理のうち、注目画素値の勾配の強度を第１画素の画素値の勾配の強度との比較の対象として参照する第２処理とを実行し、第１画素を含む非最大抑制処理が完了した画素に囲まれた第２画素の画素値の勾配の強度及び第２画素を囲む複数の画素の画素値の勾配の強度のそれぞれと、第１閾値及び第１閾値よりも大きい第２閾値との比較に基づいて、第２画素がエッジであるか否かを判定する第３処理を実行する、処理をコンピュータに実行させる。
【発明の効果】
【００１０】
本件開示のエッジ検出方法、エッジ検出装置及びエッジ検出プログラムは、画像中の画素毎に各段階の処理結果を格納する場合に比べて少ない内部バッファを用いて、Ｃａｎｎｙ法によるエッジ検出の処理効率の向上を実現することができる。
【図面の簡単な説明】
【００１１】
【図１】エッジ検出装置の一実施形態を示す図である。
【図２】図１に示した第１抑制部で行われる非最大抑制処理の例を示す図である。
【図３】図１に示した第２抑制部で行われる非最大抑制処理の例を示す図である。
【図４】図１に示した判定部で行われるヒステリシス閾値処理の例を示す図である。
【図５】図１に示したバッファメモリの記憶領域に対応付けられる画像の範囲の例を示す図である。
【図６】非最大抑制処理を一括して実行する場合にバッファメモリに保持される情報に対応する画像の範囲の例を示す図である。
【図７】図１に示したエッジ検出装置の動作を示す図である。
【図８】エッジ検出装置の別実施形態を示す図である。
【図９】図８に示した判定部の動作を示す図である。
【図１０】図８に示した判定部の動作の別例を示す図である。
【図１１】図８に示したエッジ検出装置を含むデジタルカメラのハードウェア構成例を示す図である。
【図１２】図１１に示したデジタルカメラの動作を示す図である。
【図１３】図１１に示したエッジ検出装置の動作を示す図である。
【発明を実施するための形態】
【００１２】
以下、図面に基づいて、実施形態を説明する。
【００１３】
図１は、エッジ検出装置の一実施形態を示す。図１に示したエッジ検出装置１０は、ＳＤＲＡＭなどを用いて設けられたフレームメモリＭＭと、画像処理装置ＰＲとに接続されている。
【００１４】
フレームメモリＭＭには、例えば、デジタルカメラ等で撮影された画像を示す画像データが格納されている。フレームメモリＭＭは、撮影された画像に含まれる各画素に対応して、例えば、ＹＵＶ形式で各画素の輝度Ｙ及び色度Ｕ，Ｖを示す画像データを格納する。以下の説明では、フレームメモリＭＭに例えば幅Ｗ画素×高さＨ画素で示されるサイズを持つ画像データが格納され、フレームメモリＭＭから、画像の横幅方向に並んだＷ画素を含む１ライン毎に画像データの輝度値Ｙをエッジ検出装置１０に渡す場合を説明する。ここで、Ｗ及びＨのそれぞれは、３より大きい正の整数である。画像の横幅方向に並んだ画素の集まりである１ラインに含まれる画素数Ｗは、例えば２０００から８０００程度であり、また、画像に含まれるライン数Ｈは、例えば、１５００から５０００程度である。なお、フレームメモリＭＭに格納される画像データの形式は、ＹＵＶ形式に限らず、例えば、ＲＧＢ形式等の他の形式でもよい。また、フレームメモリＭＭからエッジ検出部１０に渡される情報は、各ラインの画像データの輝度値Ｙに限られない。例えば、フレームメモリＭＭにＲＧＢ形式の画像データが格納されている場合に、エッジ検出装置１０は、フレームメモリＭＭから各画素の画像データのＧ成分を受けてもよい。
【００１５】
エッジ検出装置１０は、Ｃａｎｎｙ法によるエッジ検出を行う処理ユニットの一例であり、バッファメモリＢＭと、算出部１１と、第１抑制部１２と、第２抑制部１３と、判定部１４とを含んでいる。エッジ検出装置１０は、フレームメモリＭＭから渡される画像データＩｍｇに対して図２から図４を用いて説明する処理を行うことで、Ｃａｎｎｙ法によるエッジ検出を行う。エッジ検出装置１０は、Ｃａｎｎｙ法によるエッジ検出により、画像に含まれる各画素がエッジであるか否かを示すエッジ情報Ｅｒを生成し、生成したエッジ情報Ｅｒを画像処理装置ＰＲに渡す。なお、エッジ検出装置１０は、生成したエッジ情報ＥｒをフレームメモリＭＭに渡してもよい。この場合に、フレームメモリＭＭに渡されたエッジ情報Ｅｒは、画像データが格納された記憶領域とは別にフレームメモリＭＭ内部に設けられた記憶領域に格納される。
【００１６】
画像処理装置ＰＲは、例えば、エッジ検出装置１０からエッジ情報Ｅｒを受け、受けたエッジ情報Ｅｒに基づいて、画像に含まれる物体を認識する処理等を実行する。なお、エッジ検出装置１０からフレームメモリＭＭにエッジ情報Ｅｒが渡される場合に、画像処理装置ＰＲは、フレームメモリＭＭからエッジ情報を受けてもよい。
【００１７】
算出部１１、第１抑制部１２、第２抑制部１３及び判定部１４のそれぞれは、バッファメモリＢＭに接続されている。
【００１８】
バッファメモリＢＭは、例えば、フレームメモリＭＭ内の画像中の複数のラインのそれぞれに含まれる各画素に対応付けられる記憶領域を含んでおり、フレームメモリＭＭから渡される各ラインの画像データＩｍｇは順次にバッファメモリＢＭに保持される。また、バッファメモリＢＭは、算出部１１、第１抑制部１２、第２抑制部１３及び判定部１４のそれぞれによる処理で得られる情報の保持に用いられる。なお、バッファメモリＢＭ内の記憶領域とフレームメモリＭＭ内の画像に含まれる各画素との対応関係は、図５を用いて後述される。
【００１９】
算出部１１は、画像における画素の並び順に従って順次に特定される注目画素Ｐａと、注目画素Ｐａの周囲の複数の画素に対応してバッファメモリＢＭに格納された情報に基づいて、注目画素Ｐａにおける輝度値Ｙの勾配の強度及び方向を算出する。例えば、算出部１１は、画像の上側の端からｊ（ｊは３以上の整数）番目のラインに含まれる各画素を画像の左端から順次に注目画素Ｐａとし、注目画素Ｐａにおける輝度値Ｙの勾配の強度及び方向を次に述べるようにして算出する。
【００２０】
ｊ+１番目のラインに含まれる各画素の画像データＩｍｇがバッファメモリＢＭに保持され、注目画素Ｐａを含む領域Ｒａ内の各画素の輝度値Ｙが揃った段階で、算出部１１は、領域Ｒａ内の各画素の輝度値をバッファメモリＢＭから受ける。なお、図１の例は、注目画素Ｐａと注目画素Ｐａの周囲の８画素を含む領域Ｒａを破線の矩形で示し、領域Ｒａ内の３×３画素に対応してバッファメモリＢＭに保持された輝度値が算出部１１に渡される場合を示す。
【００２１】
算出部１１は、バッファメモリＢＭから受けた３×３画素の輝度値に対して、例えば、Ｓｏｂｅｌフィルタを示す３行３列の行列を乗算することで、注目画素Ｐａにおける輝度値の勾配を示すベクトルＳ（Ｓｈ，Ｓｖ）を求める。ここで、ベクトルＳの成分Ｓｈは、画像に含まれる各ラインにおける画素の並び方向である水平方向の輝度値Ｙの勾配の成分を示し、成分Ｓｖは、画像において水平方向と垂直な方向の輝度値Ｙの勾配の成分を示す。
【００２２】
また、算出部１１は、Ｓｏｂｅｌフィルタを用いて求めた勾配の成分Ｓｈ，Ｓｖと次に述べる式（１）、（２）とを用いて、注目画素Ｐａにおける勾配の強度Ｓａと勾配の方向Ｓｄを求める。なお、式（２）において、勾配の方向の一例として示した方向ｄ０は水平方向を示し、方向ｄ１は水平方向から反時計回りに４５度傾いた方向を示す。また、式（２）において、勾配の方向の別例として示した方向ｄ２は水平方向に対して垂直な方向を示し、方向ｄ３は水平方向から時計回りに４５度傾いた方向を示す。
【００２３】
【数１】
2016018490.tif 000003
【００２４】
なお、算出部１１において、注目画素Ｐａにおける勾配を求めるために用いるフィルタは、３行３列の行列で示されるカーネルサイズ３のＳｏｂｅｌフィルタに限らず、３より大きいカーネルサイズのＳｏｂｅｌフィルタでもよい。また、算出部１１は、微分作用を持つフィルタであれば、ラプラシアンフィルタなど、他の種類のフィルタを用いて勾配の算出を行ってもよい。
【００２５】
算出部１１によって求められた注目画素Ｐａにおける勾配の強度Ｓａ及び勾配の方向Ｓｄは、第１抑制部１２及び第２抑制部１３に渡されるとともに、バッファメモリＢＭに注目画素Ｐａに対応して保持される。
【００２６】
算出部１１により注目画素Ｐａの輝度値Ｙの勾配が算出される毎に、第１抑制部１２は、図２を用いて説明するようにして、注目画素Ｐａを対象とする非最大抑制処理の一部を実行する。以下の説明では、輝度値Ｙの勾配を、単に、勾配と称する場合がある。
【００２７】
ここで、注目画素Ｐａを含むｊ番目のラインよりも前にバッファメモリＢＭに渡されたｊ−１番目のラインに含まれる各画素及び注目画素Ｐａの左隣の画素の勾配の算出は、算出部１１により注目画素Ｐａの勾配が算出される前に行われている。したがって、算出部１１により注目画素Ｐａの勾配の強度及び勾配の方向が算出された段階で、ｊ−１番目のラインに含まれる各画素と注目画素Ｐａの左隣の画素の勾配の強度及び勾配の方向は既にバッファメモリＢＭに保持されている。
【００２８】
第１抑制部１２は、注目画素Ｐａを対象とする非最大抑制処理のうち、注目画素Ｐａよりも前に勾配が算出された画素の中で注目画素Ｐａに隣接する第１画素のそれぞれに対応してバッファメモリＢＭに保持された勾配の強度を参照する処理を実行する。なお、図１に一点鎖線で囲んで示した領域Ｒｍに含まれる画素Ｐ１−１，Ｐ１−２，Ｐ１−３，Ｐ１−４のそれぞれは、注目画素Ｐａよりも前に算出部１１によって勾配が算出された画素の中で注目画素Ｐａに隣接する第１画素の例である。
【００２９】
例えば、第１抑制部１２は、注目画素Ｐａを対象とする非最大抑制処理の一部として、注目画素Ｐａの勾配の強度と、注目画素Ｐａの勾配の方向に注目画素Ｐａに隣接する第１画素の勾配の強度とを比較する処理を行う。そして、第１抑制部１２は、注目画素Ｐａの勾配の強度が隣接する第１画素の勾配の強度よりも大きいか否かを示す情報を、注目画素Ｐａに対応付けてバッファメモリＢＭに保持させる。
【００３０】
また、算出部１１により注目画素Ｐａの勾配が算出される毎に、第２抑制部１３は、図３で説明するようにして、注目画素Ｐａよりも前に勾配が算出された画素の中で注目画素Ｐａに隣接する第１画素のそれぞれを対象とする非最大抑制処理の一部を実行する。例えば、第２抑制部１３は、図１に示した第１画素Ｐ１−１〜Ｐ１−４のそれぞれの勾配の方向に注目画素Ｐａが隣接する場合に、第１画素Ｐ１−１〜Ｐ１−４のそれぞれにおける勾配強度が注目画素Ｐａの勾配強度よりも大きいか否かを判定する。そして、第２抑制部１３は、注目画素Ｐａを示す向きの勾配方向を持つ第１画素について得た判定結果と、当該第１画素に対応して第１抑制部１２によって得られた判定結果とから、当該第１画素の勾配強度が隣接する画素の勾配強度よりも大きいか否かを判定する。また、第２抑制部１３は、勾配強度が勾配方向に隣接する２つの画素の少なくとも一方以下であると判定した第１画素に対応してバッファメモリＢＭに保持された勾配強度を、例えば、値０に置き換える。これにより、第２抑制部１３は、勾配方向に隣接する画素の中で、勾配強度が最大でないとされた第１画素がエッジとして検出されることを抑制する。一方、第２抑制部１３は、勾配強度が勾配方向に隣接する２つの画素よりも大きいと判定した第１画素に対応してバッファメモリＢＭに保持された勾配強度をそのまま維持させる。なお、第２抑制部１３において、勾配強度が最大でないとされた第１画素の勾配強度の置き換えに用いる値は、値０に限らず、図４で説明するヒステリシス閾値処理に用いられる２つの閾値のうち小さい値を持つ第１閾値よりも小さい値であればよい。
【００３１】
即ち、注目画素Ｐａを対象とする非最大抑制処理のうち、注目画素Ｐａよりも後に算出される勾配を参照して行われる処理は、第１抑制部１２により注目画素Ｐａを対象とする非最大抑制処理の一部が実行された後に、第２抑制部１３により実行される。つまり、図１に示したエッジ検出装置１０において、注目画素Ｐａを対象とする非最大抑制処理は、第１抑制部１２によって実行される処理と、第２抑制部１３によって実行される処理とに分割して実行される。
【００３２】
ところで、注目画素Ｐａにおける勾配が算出部１１によって算出された段階までに第２抑制部１３によって実行される処理により、第１画素Ｐ１−１を対象とする非最大抑制処理は、第１画素Ｐ１−１における勾配の方向にかかわらず完了することになる。なお、図１に示した第１画素Ｐ１−１は、注目画素Ｐａの左上に隣接する第１画素であり、注目画素Ｐａに隣接する第１画素の中で、第２抑制部１３によって行われた注目画素Ｐａの勾配の強度を参照する処理により非最大抑制処理が完了した第１画素の例である。
【００３３】
そして、第２抑制部１３は、注目画素Ｐａの勾配の強度を参照する処理により、領域Ｒｍに含まれる第１画素Ｐ１−１を対象とする非最大抑制処理が完了したことを示す情報を判定部１４に渡す。
【００３４】
判定部１４は、図４で説明するようにして、第１画素Ｐ１−１と第１画素Ｐ１−１よりも前に非最大抑制処理が完了した画素とで囲まれた画素である第２画素Ｐ２がエッジであるか否かを判定する処理であるヒステリシス閾値処理を実行する。
【００３５】
ここで、第１画素Ｐ１−１を含むｊ−１番目のラインよりも前にバッファメモリＢＭに渡されたラインに含まれる各画素及び第１画素Ｐ１−１の左隣の画素を対象とする非最大抑制処理は、第１画素Ｐ１−１の処理が完了した段階で、既に完了している。したがって、第１画素Ｐ１−１を対象とする非最大抑制処理が完了した段階で、判定部１４は、バッファメモリＢＭを参照することで、図１に点線で囲んで示した領域Ｒｈに含まれる各画素に対応する非最大抑制処理の後の勾配強度を示す情報を参照可能である。
【００３６】
例えば、判定部１４は、領域Ｒｈの中央に位置する第２画素Ｐ２及び第２画素Ｐ２を囲む複数の画素のそれぞれを対象とする非最大抑制処理後の勾配強度と、第１閾値及び第１閾値よりも大きい第２閾値との比較に基づいて、第２画素Ｐ２がエッジであるか否かを判定する。また、判定部１４は、第２画素Ｐ２がエッジであるか否かを示すエッジ情報を、バッファメモリＢＭに第２画素Ｐ２に対応して保持させる。
【００３７】
第２画素Ｐ２に対応するエッジ情報がバッファメモリＢＭに保持された後に、図１に示した領域Ｒｈにおいて、第２画素Ｐ２の左上に位置する画素Ｐｅに対応するエッジ情報ＥｒがバッファメモリＢＭから出力される。そして、バッファメモリＢＭから出力されたエッジ情報Ｅｒは、画像処理装置ＰＲに渡され、画像処理装置ＰＲによる物体認識処理などに用いられる。
【００３８】
その後、算出部１１は、注目画素Ｐａを順次にずらしながら、注目画素Ｐａにおける勾配の算出を行う。そして、算出部１１により、新たな注目画素Ｐａにおける勾配が算出される毎に、第１抑制部１２及び第２抑制部１３による非最大抑制処理と、判定部１４によるヒステリシス閾値処理とが実行される。
【００３９】
以上に説明したように、算出部１１は、バッファメモリＢＭに保持された画像データに基づいてＣａｎｎｙ法によるエッジ検出処理の第１段階の処理を実行し、第１段階の処理の結果である注目画素Ｐａの勾配の強度及び方向をバッファメモリＢＭに保持する。また、第１抑制部１２及び第２抑制部１３は、バッファメモリＢＭに保持された勾配強度のうち勾配方向に隣接する画素の勾配強度以下である勾配強度を抑制することで、Ｃａｎｎｙ法によるエッジ検出処理の第２段階の処理を実行する。そして、判定部１４は、バッファメモリＢＭに保持された非最大抑制処理後の勾配を示す情報に基づいて、Ｃａｎｎｙ法によるエッジ検出処理の第３段階の処理であるヒステリシス閾値処理を実行する。即ち、図１に示したエッジ検出装置１０は、フレームメモリＭＭから各ラインの画像データを受けた後、フレームメモリＭＭに対するアクセスを行うことなく、Ｃａｎｎｙ法によるエッジ検出処理を実行し、各画素に対応するエッジ情報Ｅｒを出力することができる。つまり、図１に示したエッジ検出装置１０は、フレームメモリＭＭを介して各段階の処理の結果を授受する場合に比べて、フレームメモリＭＭに対するアクセスを削減することができるので、Ｃａｎｎｙ法によるエッジ検出処理を高速に実行することができる。即ち、Ｃａｎｎｙ法によるエッジ検出処理の効率を、従来に比べて向上することができる。
【００４０】
また、図１に示したエッジ検出装置１０は、非最大抑制処理を第１抑制部１２と第２抑制部１３とで分割して実行することにより、バッファメモリＢＭとして用いられる記憶領域の容量を抑制することができる。
【００４１】
非最大抑制処理を第１抑制部１２と第２抑制部１３とで分割して実行することで、バッファメモリＢＭの記憶容量を削減可能となる理由を説明するのに先立って、第１抑制部１２、第２抑制部１３及び判定部１４のそれぞれの処理について説明する。
【００４２】
図２は、図１に示した第１抑制部１２で行われる非最大抑制処理の例を示す。図２（Ａ），（Ｂ），（Ｃ），（Ｄ）のそれぞれは、図１に示した注目画素Ｐａについて算出部１１により算出された勾配方向毎に、第１抑制部１２により、注目画素Ｐａにおける勾配強度と比較される第１画素の位置を示す。
【００４３】
なお、図２（Ａ）から（Ｄ）のそれぞれにおいて一点鎖線で囲んで示した領域Ｒｍは、図１に示した領域Ｒｍに相当する要素である。また、図２（Ａ）から（Ｄ）のそれぞれに示した領域Ｒｍに含まれる４つの画素のそれぞれは、図１に示した第１画素Ｐ１−１〜Ｐ１−４に相当し、注目画素Ｐａよりも前に算出部１１によって勾配が算出された画素の中で注目画素Ｐａに隣接する画素である。また、図２において、注目画素Ｐａ及び注目画素Ｐａを囲む８つの画素のそれぞれにおける勾配強度を、符号Ｓと各画素の画像における位置を示す座標との組み合わせで示す。即ち、符号Ｓ（ｉ，ｊ）は、画像の上端からｊ番目のラインの左からｉ番目の画素である注目画素Ｐａの勾配強度を示す。ここで、ｉは、１ラインに含まれる画素数Ｗ以下の正の整数であり、ｊは、画像に含まれるライン数Ｈ以下の正の整数である。また、符号Ｓ（ｉ−１，ｊ−１）は、注目画素Ｐａの左上に隣接する第１画素Ｐ１−１の勾配強度を示し、符号Ｓ（ｉ，ｊ−１）は、注目画素Ｐａの上に隣接する第１画素Ｐ１−２の勾配強度を示す。同様に、符号Ｓ（ｉ＋１，ｊ−１）は、注目画素Ｐａの右上に隣接する第１画素Ｐ１−３の勾配強度を示し、符号Ｓ（ｉ―１，ｊ）は、注目画素Ｐａの左に隣接する第１画素Ｐ１−４の勾配強度を示す。また、符号Ｓ（ｉ＋１，ｊ）は、注目画素Ｐａの右に隣接する画素の勾配強度を示し、符号Ｓ（ｉ―１，ｊ＋１）は、注目画素Ｐａの左下に隣接する画素の勾配強度を示す。そして、符号Ｓ（ｉ，ｊ＋１）は、注目画素Ｐａの下に隣接する画素の勾配強度を示し、符号Ｓ（ｉ＋１，ｊ＋１）は、注目画素Ｐａの右下に隣接する画素の勾配強度を示す。
【００４４】
図２（Ａ）は、注目画素Ｐａの勾配方向が水平方向から時計回りに４５度傾いた方向ｄ３である場合に、第１抑制部１２は、注目画素Ｐａの勾配強度Ｓ（ｉ，ｊ）と注目画素Ｐａの左上の第１画素Ｐ１−１の勾配強度Ｓ（ｉ−１，ｊ−１）とを比較することを示す。この場合に、第１抑制部１２は、注目画素Ｐａを対象とする非最大抑制処理の一部の結果として、勾配強度Ｓ（ｉ，ｊ）が勾配強度Ｓ（ｉ−１，ｊ−１）よりも大きいか否かを示す情報ｍ１（ｉ，ｊ）を生成する。そして、第１抑制部１２は、生成した情報ｍ１（ｉ，ｊ）を、図１に示したバッファメモリＢＭに注目画素Ｐａに対応して保持させる。
【００４５】
図２（Ｂ）は、注目画素Ｐａの勾配方向が水平方向に垂直な方向ｄ２である場合に、第１抑制部１２は、注目画素Ｐａの勾配強度Ｓ（ｉ，ｊ）と注目画素Ｐａの上に隣接する第１画素Ｐ１−２の勾配強度（ｉ，ｊ−１）とを比較することを示す。この場合に、第１抑制部１２は、注目画素Ｐａを対象とする非最大抑制処理の一部の結果として、勾配強度Ｓ（ｉ，ｊ）が勾配強度Ｓ（ｉ，ｊ−１）よりも大きいか否かを示す情報ｍ２（ｉ，ｊ）を生成する。そして、第１抑制部１２は、生成した情報ｍ２（ｉ，ｊ）を、図１に示したバッファメモリＢＭに注目画素Ｐａに対応して保持させる。
【００４６】
図２（Ｃ）は、注目画素Ｐａの勾配方向が水平方向から反時計回りに４５度傾いた方向ｄ１である場合に、第１抑制部１２は、注目画素Ｐａの勾配強度Ｓ（ｉ，ｊ）と注目画素Ｐａの右上の第１画素Ｐ１−３の勾配強度Ｓ（ｉ＋１，ｊ−１）を比較することを示す。この場合に、第１抑制部１２は、注目画素Ｐａを対象とする非最大抑制処理の一部の結果として、勾配強度Ｓ（ｉ，ｊ）が勾配強度Ｓ（ｉ＋１，ｊ−１）よりも大きいか否かを示す情報ｍ３（ｉ，ｊ）を生成する。そして、第１抑制部１２は、生成した情報ｍ３（ｉ，ｊ）を、図１に示したバッファメモリＢＭに注目画素Ｐａに対応して保持させる。
【００４７】
図２（Ｄ）は、注目画素Ｐａの勾配方向が水平方向ｄ０である場合に、第１抑制部１２は、注目画素Ｐａの勾配強度Ｓ（ｉ，ｊ）と注目画素Ｐａの左に隣接する第１画素Ｐ１−４の勾配強度Ｓ（ｉ―１，ｊ）とを比較することを示す。この場合に、第１抑制部１２は、注目画素Ｐａを対象とする非最大抑制処理の一部の結果として、勾配強度Ｓ（ｉ，ｊ）が勾配強度Ｓ（ｉ―１，ｊ）よりも大きいか否かを示す情報ｍ４（ｉ，ｊ）を生成する。そして、第１抑制部１２は、生成した情報ｍ４（ｉ，ｊ）を、図１に示したバッファメモリＢＭに注目画素Ｐａに対応して保持させる。
【００４８】
第１抑制部１２によって生成される情報ｍ１（ｉ，ｊ），ｍ２（ｉ，ｊ），ｍ３（ｉ，ｊ），ｍ４（ｉ，ｊ）のそれぞれは、式（３）から式（６）で示される。
ｍ１（ｉ，ｊ）＝０  （Ｓ（ｉ，ｊ）≦Ｓ（ｉ−１，ｊ−１））
＝１  （Ｓ（ｉ，ｊ）＞Ｓ（ｉ−１，ｊ−１））    ・・・（３）
ｍ２（ｉ，ｊ）＝０  （Ｓ（ｉ，ｊ）≦Ｓ（ｉ，ｊ−１））
＝１  （Ｓ（ｉ，ｊ）＞Ｓ（ｉ，ｊ−１））        ・・・（４）
ｍ３（ｉ，ｊ）＝０  （Ｓ（ｉ，ｊ）≦Ｓ（ｉ＋１，ｊ−１））
＝１  （Ｓ（ｉ，ｊ）＞Ｓ（ｉ＋１，ｊ−１））    ・・・（５）
ｍ４（ｉ，ｊ）＝０  （Ｓ（ｉ，ｊ）≦Ｓ（ｉ−１，ｊ））
＝１  （Ｓ（ｉ，ｊ）＞Ｓ（ｉ−１，ｊ））        ・・・（６）
同様に、注目画素Ｐａの勾配強度Ｓ（ｉ，ｊ）が、注目画素Ｐａの右に隣接する画素の勾配強度Ｓ（ｉ＋１，ｊ）よりも大きいか否かを示す情報ｍ５（ｉ，ｊ）は、式（７）で示される。また、注目画素Ｐａの勾配強度Ｓ（ｉ，ｊ）が、注目画素Ｐａの左下に隣接する画素の勾配強度Ｓ（ｉ−１，ｊ＋１）よりも大きいか否かを示す情報ｍ６（ｉ，ｊ）は、式（８）で示される。同様に、注目画素Ｐａの勾配強度Ｓ（ｉ，ｊ）が、注目画素Ｐａの下に隣接する画素の勾配強度Ｓ（ｉ，ｊ＋１）よりも大きいか否かを示す情報ｍ７（ｉ，ｊ）は、式（９）で示される。また、注目画素Ｐａの勾配強度Ｓ（ｉ，ｊ）が、注目画素Ｐａの右下に隣接する画素の勾配強度Ｓ（ｉ＋１，ｊ＋１）よりも大きいか否かを示す情報ｍ８（ｉ，ｊ）は、式（１０）で示される。
ｍ５（ｉ，ｊ）＝０  （Ｓ（ｉ，ｊ）≦Ｓ（ｉ＋１，ｊ））
＝１  （Ｓ（ｉ，ｊ）＞Ｓ（ｉ＋１，ｊ））        ・・・（７）
ｍ６（ｉ，ｊ）＝０  （Ｓ（ｉ，ｊ）≦Ｓ（ｉ−１，ｊ＋１））
＝１  （Ｓ（ｉ，ｊ）＞Ｓ（ｉ−１，ｊ＋１））    ・・・（８）
ｍ７（ｉ，ｊ）＝０  （Ｓ（ｉ，ｊ）≦Ｓ（ｉ，ｊ＋１））
＝１  （Ｓ（ｉ，ｊ）＞Ｓ（ｉ，ｊ＋１））        ・・・（９）
ｍ８（ｉ，ｊ）＝０  （Ｓ（ｉ，ｊ）≦Ｓ（ｉ＋１，ｊ＋１））
＝１  （Ｓ（ｉ，ｊ）＞Ｓ（ｉ＋１，ｊ＋１））    ・・・（１０）
そして、図２（Ａ）〜（Ｄ）に示した注目画素Ｐａの勾配強度Ｓ（ｉ，ｊ）が勾配方向に隣接する画素の勾配強度よりも大きいか否かを示す情報Ｍｒ（ｉ，ｊ）は、勾配方向毎に情報ｍ１（ｉ，ｊ）〜ｍ８（ｉ，ｊ）を用いて式（１１）〜式（１４）で示される。式（１１）〜式（１４）中の符号＊は、乗算を示す。例えば、図２（Ａ）に示した勾配方向が方向ｄ３である注目画素Ｐａの勾配強度Ｓ（ｉ，ｊ）が勾配方向に隣接する画素の勾配強度よりも大きいか否かを示す情報Ｍｒ（ｉ，ｊ）は、情報ｍ１（ｉ，ｊ），ｍ８（ｉ，ｊ）を用いて式（１１）で示される。同様に、図２（Ｂ）に示した勾配方向が方向ｄ２である注目画素Ｐａの勾配強度Ｓ（ｉ，ｊ）が勾配方向に隣接する画素の勾配強度よりも大きいか否かを示す情報Ｍｒ（ｉ，ｊ）は、情報ｍ２（ｉ，ｊ），ｍ７（ｉ，ｊ）を用いて式（１２）で示される。また、図２（Ｃ）に示した勾配方向が方向ｄ１である注目画素Ｐａの勾配強度Ｓ（ｉ，ｊ）が勾配方向に隣接する画素の勾配強度よりも大きいか否かを示す情報Ｍｒ（ｉ，ｊ）は、情報ｍ３（ｉ，ｊ），ｍ６（ｉ，ｊ）を用いて式（１３）で示される。そして、図２（Ｄ）に示した勾配方向が方向ｄ０である注目画素Ｐａの勾配強度Ｓ（ｉ，ｊ）が勾配方向に隣接する画素の勾配強度よりも大きいか否かを示す情報Ｍｒ（ｉ，ｊ）は、情報ｍ４（ｉ，ｊ），ｍ５（ｉ，ｊ）を用いて式（１４）で示される。
Ｍｒ（ｉ，ｊ）＝ｍ１（ｉ，ｊ）＊ｍ８（ｉ，ｊ）  ・・・（１１）
Ｍｒ（ｉ，ｊ）＝ｍ２（ｉ，ｊ）＊ｍ７（ｉ，ｊ）  ・・・（１２）
Ｍｒ（ｉ，ｊ）＝ｍ３（ｉ，ｊ）＊ｍ６（ｉ，ｊ）  ・・・（１３）
Ｍｒ（ｉ，ｊ）＝ｍ４（ｉ，ｊ）＊ｍ５（ｉ，ｊ）  ・・・（１４）
式（１１）〜式（１４）で示した情報Ｍｒ（ｉ，ｊ）は、画像において座標（ｉ，ｊ）で示される注目画素Ｐａの勾配強度Ｓ（ｉ，ｊ）が勾配方向に隣接する画素の勾配強度の双方よりも大きい場合に値１を示す。一方、注目画素Ｐａの勾配強度Ｓ（ｉ，ｊ）が勾配方向に隣接する画素の勾配強度の少なくとも一方以下である場合に、式（１１）〜式（１４）で示した情報Ｍｒ（ｉ，ｊ）は値０を示す。つまり、情報Ｍｒ（ｉ，ｊ）は、注目画素Ｐａの勾配強度Ｓ（ｉ，ｊ）が勾配方向に隣接する画素の勾配強度の中で最大でない場合に勾配強度Ｓ（ｉ，ｊ）を値０に抑制するために用いられる係数を示す。そして、図１に示した第１抑制部１２は、情報Ｍｒ（ｉ，ｊ）の算出に用いられる要素の一つとして、注目画素Ｐａの勾配方向に応じて式（３）〜式（６）で示した情報ｍ１（ｉ，ｊ）〜ｍ４（ｉ，ｊ）のいずれかを求める。即ち、第１抑制部１２によって行われる処理は、注目画素Ｐａを対象とする非最大抑制処理に用いる係数Ｍｒ（ｉ，ｊ）を求めるための処理の一部である。
【００４９】
注目画素Ｐａを対象とする非最大抑制処理に用いる係数Ｍｒ（ｉ，ｊ）を求めるための処理の他の一部は、図３を参照しつつ説明される。
【００５０】
図３は、図１に示した第２抑制部１３により行われる非最大抑制処理の例を示す。なお、図３に示す要素のうち、図１及び図２に示した要素と同等のものは、同一の符号で示すとともに要素の説明を省略する場合がある。
【００５１】
図３（Ａ），（Ｂ），（Ｃ），（Ｄ）のそれぞれは、図１に示した注目画素Ｐａの勾配強度Ｓ（ｉ，ｊ）を参照して行われる第２抑制部１３の処理により、非最大抑制処理に用いる係数が確定する第１画素の位置を示す。
【００５２】
例えば、図３（Ａ）は、注目画素Ｐａの左に隣接する第１画素Ｐ１−４の勾配方向が水平方向である場合に、第１画素Ｐ１−４を対象とする非最大抑制処理に用いる係数が注目画素Ｐａの勾配強度Ｓ（ｉ，ｊ）を参照する処理で確定することを示す。この場合に、第２抑制部１３は、式（７）の座標（ｉ，ｊ）を座標（ｉ−１，ｊ）に置き換えた式（７）’により、第１画素Ｐ１−４の勾配強度Ｓ（ｉ−１，ｊ）が注目画素Ｐａの勾配強度Ｓ（ｉ，ｊ）より大きいか否かを示す情報ｍ５（ｉ−１，ｊ）を求める。そして、第２抑制部１３は、式（１４）の座標（ｉ，ｊ）を座標（ｉ−１，ｊ）に置き換えた式（１４）’により、第１画素Ｐ１−４を対象とする非最大抑制処理に用いる係数を示す情報Ｍｒ（ｉ−１，ｊ）を求める。なお、式（１４）’に示す情報ｍ４（ｉ−１，ｊ）は、第１画素Ｐ１−４の勾配が算出部１１で算出された際に第１抑制部１２により求められ、図１に示したバッファメモリＢＭに第１画素Ｐ１−４に対応して保持されている。
ｍ５（ｉ−１，ｊ）＝０  （Ｓ（ｉ−１，ｊ）≦Ｓ（ｉ，ｊ））
＝１  （Ｓ（ｉ−１，ｊ）＞Ｓ（ｉ，ｊ））      ・・・（７）’
Ｍｒ（ｉ−１，ｊ）＝ｍ４（ｉ−１，ｊ）＊ｍ５（ｉ−１，ｊ）  ・・・（１４）’
同様に、図３（Ｂ）は、注目画素Ｐａの右上に隣接する第１画素Ｐ１−３の勾配方向が水平方向から反時計回りに４５度傾いた方向である場合に、第１画素Ｐ１−３を対象とする非最大抑制処理の係数が勾配強度Ｓ（ｉ，ｊ）を参照する処理で確定することを示す。この場合に、第２抑制部１３は、式（８）の座標（ｉ，ｊ）を座標（ｉ＋１，ｊ−１）に置き換えた式（８）’を用いる。つまり、第２抑制部１３は、式（８）’により、第１画素Ｐ１−３の勾配強度Ｓ（ｉ＋１，ｊ−１）が注目画素Ｐａの勾配強度Ｓ（ｉ，ｊ）より大きいか否かを示す情報ｍ６（ｉ＋１，ｊ−１）を求める。そして、第２抑制部１３は、式（１３）の座標（ｉ，ｊ）を座標（ｉ＋１，ｊ−１）に置き換えた式（１３）’により、第１画素Ｐ１−３を対象とする非最大抑制処理に用いる係数を示す情報Ｍｒ（ｉ＋１，ｊ−１）を求める。なお、式（１３）’に示す情報ｍ３（ｉ＋１，ｊ−１）は、第１画素Ｐ１−３の勾配が算出部１１で算出された際に第１抑制部１２により求められ、図１に示したバッファメモリＢＭに第１画素Ｐ１−３に対応して保持されている。
ｍ６（ｉ＋１，ｊ−１）＝０  （Ｓ（ｉ＋１，ｊ−１）≦Ｓ（ｉ，ｊ））
＝１  （Ｓ（ｉ＋１，ｊ−１）＞Ｓ（ｉ，ｊ））・・・（８）’
Ｍｒ(ｉ＋１，ｊ−１)＝ｍ３(ｉ＋１，ｊ−１)＊ｍ６(ｉ＋１，ｊ−１)・・・（１３）’
また、図３（Ｃ）は、注目画素Ｐａの上に隣接する第１画素Ｐ１−２の勾配方向が水平方向に対して垂直な方向である場合に、第１画素Ｐ１−２を対象とする非最大抑制処理の係数が注目画素Ｐａの勾配強度Ｓ（ｉ，ｊ）を参照する処理で確定することを示す。この場合に、第２抑制部１３は、式（９）の座標（ｉ，ｊ）を座標（ｉ，ｊ−１）に置き換えた式（９）’により、第１画素Ｐ１−２の勾配強度Ｓ（ｉ，ｊ−１）が注目画素Ｐａの勾配強度Ｓ（ｉ，ｊ）より大きいか否かを示す情報ｍ７（ｉ，ｊ−１）を求める。そして、第２抑制部１３は、式（１２）の座標（ｉ，ｊ）を座標（ｉ，ｊ−１）に置き換えた式（１２）’により、第１画素Ｐ１−２を対象とする非最大抑制処理に用いる係数を示す情報Ｍｒ（ｉ，ｊ−１）を求める。なお、式（１２）’に示す情報ｍ２（ｉ，ｊ−１）は、第１画素Ｐ１−２の勾配が算出部１１で算出された際に第１抑制部１２により求められ、図１に示したバッファメモリＢＭに第１画素Ｐ１−２に対応して保持されている。
ｍ７（ｉ，ｊ−１）＝０  （Ｓ（ｉ，ｊ−１）≦Ｓ（ｉ，ｊ））
＝１  （Ｓ（ｉ，ｊ−１）＞Ｓ（ｉ，ｊ））  ・・・（９）’
Ｍｒ（ｉ，ｊ−１）＝ｍ２（ｉ，ｊ−１）＊ｍ７（ｉ，ｊ−１）  ・・・（１２）’
そして、図３（Ｄ）は、注目画素Ｐａの左上に隣接する第１画素Ｐ１−１の勾配方向が水平方向から時計回りに４５度傾いた方向である場合に、第１画素Ｐ１−１を対象とする非最大抑制処理の係数が勾配強度Ｓ（ｉ，ｊ）を参照する処理で確定することを示す。この場合に、第２抑制部１３は、式（１０）の座標（ｉ，ｊ）を座標（ｉ−１，ｊ−１）に置き換えた式（１０）’を用いる。つまり、第２抑制部１３は、式（１０）’により、第１画素Ｐ１−３の勾配強度Ｓ（ｉ−１，ｊ−１）が注目画素Ｐａの勾配強度Ｓ（ｉ，ｊ）より大きいか否かを示す情報ｍ８（ｉ−１，ｊ−１）を求める。そして、第２抑制部１３は、式（１３）の座標（ｉ，ｊ）を座標（ｉ＋１，ｊ−１）に置き換えた式（１１）’により、第１画素Ｐ１−１を対象とする非最大抑制処理に用いる係数を示す情報Ｍｒ（ｉ−１，ｊ−１）を求める。なお、式（１１）’に示す情報ｍ１（ｉ―１，ｊ−１）は、第１画素Ｐ１−１の勾配が算出部１１で算出された際に第１抑制部１２により求められ、図１に示したバッファメモリＢＭに第１画素Ｐ１−１に対応して保持されている。
ｍ８（ｉ−１，ｊ−１）＝０（Ｓ（ｉ−１，ｊ−１）≦Ｓ（ｉ，ｊ））
＝１（Ｓ（ｉ−１，ｊ−１）＞Ｓ（ｉ，ｊ））・・・（１０）’
Ｍｒ(ｉ−１，ｊ−１)＝ｍ１(ｉ−１，ｊ−１)＊ｍ６(ｉ−１，ｊ−１)・・・（１１）’
図３を用いて説明したように、図１に示した第２抑制部１３は、注目画素Ｐａよりも前に勾配が算出された第１画素Ｐ１−１〜Ｐ１−４を対象とする非最大抑制処理のうち、注目画素Ｐａの勾配強度Ｓ（ｉ，ｊ）を参照する処理を実行する。そして、注目画素Ｐａを対象とする非最大抑制処理のうち、注目画素Ｐａよりも後に算出される勾配強度を参照して行われる処理は、参照される勾配強度のそれぞれが算出された際に、第２抑制部１３によって実行されることになる。
【００５３】
例えば、図２（Ｄ）に示した注目画素Ｐａを対象とする非最大抑制処理に用いる係数を示す情報Ｍｒ（ｉ，ｊ）は、注目画素Ｐａの右に隣接する画素の勾配強度Ｓ（ｉ＋１，ｊ）が算出された際に、第２抑制部１３により求められる。同様に、図２（Ｃ）に示した注目画素Ｐａを対象とする非最大抑制処理に用いる係数を示す情報Ｍｒ（ｉ，ｊ）は、注目画素Ｐａの左下に隣接する画素の勾配強度Ｓ（ｉ−１，ｊ＋１）が算出された際に、第２抑制部１３により求められる。また、図２（Ｂ）に示した注目画素Ｐａを対象とする非最大抑制処理に用いる係数を示す情報Ｍｒ（ｉ，ｊ）は、注目画素Ｐａの下に隣接する画素の勾配強度Ｓ（ｉ，ｊ＋１）が算出された際に、第２抑制部１３により求められる。そして、図２（Ａ）に示した注目画素Ｐａを対象とする非最大抑制処理に用いる係数を示す情報Ｍｒ（ｉ，ｊ）は、注目画素Ｐａの右下に隣接する画素の勾配強度Ｓ（ｉ＋１，ｊ＋１）が算出された際に、第２抑制部１３により求められる。
【００５４】
図２、図３で説明したように、注目画素Ｐａを対象とする非最大抑制処理を第１抑制部１２と第２抑制部１３とで分割することで、分割しない場合に比べて、算出部１１で算出された勾配強度と勾配方向との双方を保持しておく画素の範囲を縮小することができる。なぜなら、各画素の非最大抑制処理を一括して実行する場合は、注目画素Ｐａの非最大抑制処理結果を確定させた後も、注目画素Ｐａの勾配方向が、注目画素Ｐａ以降に勾配が算出される画素の非最大抑制処理で参照されるためである。これに対して、非最大抑制処理を第１抑制部１２と第２抑制部１３とで分割した場合は、注目画素Ｐａの非最大抑制処理結果が確定するまでに、注目画素Ｐａ以降に勾配が算出される画素の非最大抑制処理のうち、注目画素Ｐａの勾配方向を参照する処理は完了する。したがって、非最大抑制処理を分割して実行する場合は、注目画素Ｐａの非最大抑制処理結果が確定した段階で、注目画素Ｐａに対応してバッファメモリＢＭに保持される情報から、注目画素Ｐａの勾配方向を示す情報を削除することができる。なお、図１に示したエッジ検出装置１０に含まれるバッファメモリＢＭにおいて、画像中の各画素に対応して保持される情報の内容については、図５及び図６を用いて後述する。
【００５５】
図４は、図１に示した判定部１４で行われるヒステリシス閾値処理の例を示す。図４（Ａ），（Ｂ），（Ｃ），（Ｄ）のそれぞれは、図１において点線で囲んで示した領域Ｒｈに含まれる画素の勾配強度を第１閾値及び第２閾値により３つの階級に分類した場合に、各階級に属する勾配強度を持つ画素の領域Ｒｈにおける分布の例を示す。また、図４（Ｅ），（Ｆ）のそれぞれは、図４（Ｃ），（Ｄ）のそれぞれに示したように各階級の勾配強度を持つ画素が分布する場合に、判定部１４で得られるヒステリシス閾値処理結果の例を示す。
【００５６】
なお、図４において、領域Ｒｈに含まれる矩形Ｐ２及び矩形Ｐ３−１，Ｐ３−２，Ｐ３−３，Ｐ３−４，Ｐ３−５，Ｐ３−６，Ｐ３−７，Ｐ３−８のそれぞれは、図１に示した第２画素Ｐ２及び第２画素Ｐ２に隣接する８画素のそれぞれを示す。また、図４において、白色で示した矩形は、第２閾値よりも大きい勾配強度の範囲を示す第２階級に属する勾配強度を持つ画素を示し、斜線の網掛けで示した矩形は、第１閾値以下の勾配強度の範囲を示す第０階級に属する勾配強度を持つ画素を示す。そして、別の種類の網掛けで示した矩形は、第１閾値よりも大きく、かつ、第２閾値以下の勾配強度の範囲を示す第１階級に属する勾配強度を持つ画素を示す。
【００５７】
以下では、第２画素Ｐ２及び第２画素Ｐ２に隣接する８画素のそれぞれの勾配強度が次にあげる４つの条件のどれを満たすかにより、第２画素Ｐ２がエッジであるか否かを判定する手法が説明される。ここで、４つの条件の一つである第１の条件は、第２画素Ｐ２をエッジとして検出する条件の一つであり、第２画素Ｐ２の勾配強度が第２階級に属することである。また、第２の条件は第２画素Ｐ２をエッジとして検出する条件の他の一つであり、第２画素Ｐ２の勾配強度が第１階級に属し、かつ、周囲の８画素の中に、第２階級に属する画素又は既にエッジと判定された画素が少なくとも一つ含まれていることである。なお、第２の条件として、第２画素Ｐ２の勾配強度が第１階級に属し、かつ、周囲の８画素の中に、第２階級に属する画素が少なくとも一つ含まれていることを用いる場合もある。一方、第３の条件は、第２画素Ｐ２がエッジであることを否定する条件の一つであり、第２画素Ｐ２の勾配強度が第０階級に属することである。そして、第４の条件は、第２画素Ｐ２がエッジであることを否定する条件の他の一つであり、第２画素Ｐ２の勾配強度が第１階級に属し、かつ、周囲の８画素の中に、第２階級に属する画素及び既にエッジであると判定された画素が一つも含まれていないことである。なお、第０階級、第１階級及び第２階級のそれぞれに属する勾配強度の範囲は、上で述べた例に限らず、第１閾値及び第２閾値を境界とする範囲であればよい。例えば、判定部１４は、第１閾値以上第２閾値未満の勾配強度を第１階級に属するとするとともに、第２閾値以上の勾配強度を第２階級に属するとし、第０階級を第１閾値未満の勾配強度の範囲としてもよい。
【００５８】
図４（Ａ）は、ヒステリシス閾値処理の対象となる第２画素Ｐ２が第２階級に属する勾配強度を持つ場合を示す。この場合に、図１に示した判定部１４は、第２画素Ｐ２の勾配強度が第１の条件を満たすことから、第２画素Ｐ２の周囲の８画素、即ち、画素Ｐ３−１〜Ｐ３−８のそれぞれ勾配強度にかかわらず、第２画素Ｐ２はエッジを示すと判定する。そして、判定部１４は、例えば、第２画素Ｐ２が第１の条件に基づいてエッジとして検出されたことを示す２ビットのエッジ情報を生成し、生成したエッジ情報をバッファメモリＢＭに第２画素Ｐ２に対応して保持させる。
【００５９】
また、図４（Ｂ）は、ヒステリシス閾値処理の対象となる第２画素Ｐ２が第０階級に属する勾配強度を持つ場合を示す。この場合に、図１に示した判定部１４は、第２画素Ｐ２の勾配強度が第３の条件を満たすことから、第２画素Ｐ２の周囲の８画素、即ち、画素Ｐ３−１〜Ｐ３−８のそれぞれ勾配強度にかかわらず、第２画素Ｐ２はエッジでないと判定する。そして、判定部１４は、第２画素Ｐ２が第３の条件に基づいてエッジでないと判定されたことを示す２ビットのエッジ情報を生成し、生成したエッジ情報をバッファメモリＢＭに第２画素Ｐ２に対応して保持させる。
【００６０】
一方、図４（Ｃ），（Ｄ）のそれぞれは、ヒステリシス閾値処理の対象となる第２画素Ｐ２の勾配強度が第１階級に属する場合を示す。この場合に、図１に示した判定部１４は、第２画素Ｐ２の周囲の８画素Ｐ３−１〜Ｐ３−８の勾配強度に基づいて、第２画素がエッジであるか否かを判定する。
【００６１】
図４（Ｃ）は、第２画素Ｐ２の周囲の画素の少なくとも一つの勾配強度が第２閾値よりも大きいか、既にエッジであると判定されている場合を示す。例えば、図４（Ｃ）の例は、第２画素よりも前にヒステリシス閾値処理の対象となった画素Ｐ３−２，Ｐ３−３のそれぞれが既にエッジであると判定されており、画素Ｐ３−７の勾配強度が第２閾値よりも大きい場合を示す。また、図４（Ｃ）の例では、画素Ｐ３−６の勾配強度が第１閾値と第２閾値との間であり、画素Ｐ３−１，Ｐ３−４，Ｐ３−５，Ｐ３−８の勾配強度が第１閾値以下である。この場合に、判定部１４は、例えば、第２画素Ｐ２が第２の条件に基づいてエッジとして検出されたことを示す２ビットのエッジ情報を生成し、生成したエッジ情報をバッファメモリＢＭに第２画素Ｐ２に対応して保持させる。
【００６２】
図４（Ｄ）は、第２画素Ｐ２の周囲の画素の中に勾配強度が第２閾値よりも大きい画素及び既にエッジであると判定された画素が含まれない場合を示す。例えば、図４（Ｄ）の例は、第２画素よりも前にヒステリシス閾値処理の対象となった画素Ｐ３−１〜Ｐ３−４のそれぞれが既にエッジでないと判定されており、画素Ｐ３−５〜Ｐ３−８のそれぞれの勾配強度が第１階級に属する場合を示す。この場合に、判定部１４は、第２画素Ｐ２が第４の条件に基づいてエッジでないと判定されたことを示す２ビットのエッジ情報を生成し、生成したエッジ情報をバッファメモリＢＭに第２画素Ｐ２に対応して保持させる。
【００６３】
図４（Ｅ）は、図４（Ｃ）に示した第２画素Ｐ２のヒステリシス閾値処理により、第２画素Ｐ２がエッジであると判定された場合に、判定部１４による以降の処理において、第２画素Ｐ２が第２閾値より大きい勾配強度を持つ画素として扱われることを示す。例えば、判定部１４は、図４（Ｅ）に示した画素Ｐ３−６を対象とするヒステリシス閾値処理において、第２画素Ｐ２について算出された勾配強度にかかわらず、第２画素Ｐ２は第２閾値より大きい勾配強度を持つ画素として扱われる。
【００６４】
図４（Ｆ）は、図４（Ｄ）に示した第２画素Ｐ２を対象とするヒステリシス閾値処理で第２画素Ｐ２がエッジでないと判定された場合に、判定部１４による以降の処理において、第２画素Ｐ２が第１閾値以下の勾配強度を持つ画素として扱われることを示す。例えば、判定部１４は、図４（Ｆ）に示した画素Ｐ３−６を対象とするヒステリシス閾値処理において、第２画素Ｐ２について算出部１１によって算出された勾配強度にかかわらず、第２画素Ｐ２を第１閾値以下の勾配強度を持つ画素とする。
【００６５】
なお、判定部１４において行われるヒステリシス閾値処理は、図４に示したような３画素×３画素の領域におけるエッジの連続性に注目する処理に限られない。判定部１４は、例えば、５画素×５画素の領域など、図４に示した３画素×３画素の領域よりも広い範囲におけるエッジの連続性を考慮したヒステリシス閾値処理を行ってもよい。また、判定部１４は、第１階級に属する勾配強度を持つ第２画素Ｐ２に隣接する８画素の中に第２閾値よりも大きい勾配強度が求められた画素がある場合に、第２画素Ｐ２をエッジであると判定してもよい。この場合に、判定部１４は、画像に含まれる各画素をヒステリシス閾値処理の対象とする順序が異なる場合でも、各画素がエッジであるか否かについて同じ判定結果を得る。
【００６６】
ところで、図４（Ａ）〜（Ｄ）のそれぞれにおいて、判定部１４によるヒステリシス閾値処理の対象となる第２画素Ｐ２の右下に示した画素Ｐ３−８は、図１に示した領域Ｒｍに含まれる第１画素Ｐ１−１に相当する。また、図４（Ａ）〜（Ｄ）のそれぞれにおいて、第２画素Ｐ２の左上に示した画素Ｐ３−１は、以降に判定部１４によって行われるヒステリシス閾値処理において勾配強度が参照されなくなる画素であり、図１に示した画素Ｐｅに相当する。
【００６７】
即ち、図１に示したエッジ検出装置１０は、図５において、異なる種類の線で囲んで示す領域ＬＢＡ，ＬＢＢ，ＬＢＣ，ＬＢＤに含まれる各画素に対応する記憶領域を有するバッファメモリＢＭを用いて実現することができる。
【００６８】
図５は、図１に示したバッファメモリＢＭの記憶領域に対応付けられる画像の範囲の例を示す。図５において、太い実線で示した矩形ＩＭＧは、図１に示したフレームメモリＭＭに保持された画像を示し、画像ＩＭＧを区切って示した矩形のそれぞれは、画像ＩＭＧに含まれる画素を示す。
【００６９】
以下の説明では、画像ＩＭＧ中の各画素の位置は、画像ＩＭＧの左上の画素を原点とし、画像ＩＭＧに含まれる各ラインにおける画素の並び方向を示すｘ軸と各ラインの並び方向を示すｙ軸とを有する座標系における座標（ｘ，ｙ）で示される。なお、図５の例において、座標値ｘは画素数Ｗより小さく且つ０以上の値を持つ整数であり、座標値ｙはライン数Ｈより小さく且つ０以上の値を持つ整数である。
【００７０】
図５において、二点鎖線で囲んで示した領域ＬＢＡは、座標（ｉ，ｊ）で示される画素が勾配の算出の対象となる注目画素Ｐａである場合に、輝度値がバッファメモリＢＭに保持される画像ＩＭＧ中の範囲を示す。図５に示した領域ＬＢＡは、画像ＩＭＧの第ｊラインの第ｉ＋１画素から第Ｗ−１画素までと、第ｊ+１ラインの第０画素から第ｉ＋１画素までの各画素を含む領域である。領域ＬＢＡに含まれる各画素の輝度値を示すデータは、例えば、バッファメモリＢＭ内に用意された、１ラインと１画素分の容量を有するリングバッファに保持させることが望ましい。なお、画像ＩＭＧに含まれる各画素の輝度値を示す画像データがｎビットのデータである場合に、バッファメモリＢＭ内に領域ＬＢＡに対応して用意されるリングバッファの容量ＣＡは、例えば、式（１５）で示される。
ＣＡ＝ｎ×（Ｗ＋１）    ・・・（１５）
図５において、破線で示した領域ＬＢＢは、座標（ｉ，ｊ）で示される画素が注目画素Ｐａである場合に、輝度値と勾配強度と勾配方向と図２，３で説明した係数ＭｒがバッファメモリＢＭに保持される画像ＩＭＧ中の範囲を示す。図５に示した領域ＬＢＢは、画像ＩＭＧの第ｊラインの第０画素から第ｉ画素までと、第ｊ−１ラインの第ｉ−１画素から第Ｗ−１画素までの各画素を含む領域である。領域ＬＢＢに含まれる各画素の輝度値と勾配強度と勾配方向と係数Ｍｒとを示すデータは、例えば、バッファメモリＢＭに用意された、１ラインと２画素分の容量を有するリングバッファに保持させることが望ましい。バッファメモリＢＭ内に領域ＬＢＢに対応して用意されるリングバッファの容量ＣＢは、例えば、式（１６）で示される。なお、式（１６）において、数値ｎは画像ＩＭＧに含まれる各画素の輝度値を示す画像データのビット数を示し、数値ｎ’は各画素について算出される勾配強度を示すデータのビット数を示す。また、式（１６）の例は、各画素について算出された勾配方向が２ビットのデータで示され、また、係数Ｍｒが１ビットのデータで示される場合を示している。
ＣＢ＝（ｎ＋ｎ’＋２＋１）×（Ｗ＋２）      ・・・（１６）
図５において、一点鎖線で示した領域ＬＢＣは、座標（ｉ，ｊ）で示される画素が注目画素Ｐａである場合に、図２，３で説明した係数Ｍｒが乗じられた勾配強度がバッファメモリＢＭに保持される画像ＩＭＧ中の範囲を示す。図５に示した領域ＬＢＣは、画像ＩＭＧの第ｊ−２ラインの第ｉ−１画素から第Ｗ−１画素までと、第ｊ−１ラインの第０画素から第ｉ−１画素までの各画素を含む領域である。領域ＬＢＣに含まれる各画素に対応する係数Ｍｒが乗じられた勾配強度、即ち、非最大抑制処理後の勾配強度を示すデータは、例えば、バッファメモリＢＭに用意された、１ラインと１画素分の容量を有するリングバッファに保持させることが望ましい。バッファメモリＢＭ内に領域ＬＢＣに対応して用意されるリングバッファの容量ＣＣは、例えば、式（１７）で示される。なお、式（１７）において、数値ｎ’は各画素について算出される勾配強度を示すデータのビット数を示す。
ＣＣ＝ｎ’×（Ｗ＋１）      ・・・（１７）
図５において、点線で示した領域ＬＢＤは、座標（ｉ，ｊ）で示される画素が注目画素Ｐａである場合に、図１に示した判定部１４によるヒステリシス閾値処理の結果を示すエッジ情報がバッファメモリＢＭに保持される画像ＩＭＧ中の範囲を示す。図５に示した領域ＬＢＤは、画像ＩＭＧの第ｊ−３ラインの第ｉ−３画素から第Ｗ−１画素までと、第ｊ−２ラインの第０画素から第ｉ−２画素までの各画素を含む領域である。領域ＬＢＤに含まれる各画素に対応するエッジ情報を示すデータは、例えば、バッファメモリＢＭに用意された、１ラインと２画素分の容量を有するリングバッファに保持させることが望ましい。バッファメモリＢＭ内に領域ＬＢＤに対応して用意されるリングバッファの容量ＣＤは、例えば、式（１８）で示される。なお、式（１８）の例は、判定部１４により、ヒステリシス閾値処理の結果として２ビットのエッジ情報が生成される場合を示す。
ＣＤ＝２×（Ｗ＋２）      ・・・（１８）
したがって、バッファメモリＢＭとして用いられる記憶容量は、式（１５）〜式（１８）のそれぞれで示した容量ＣＡ，ＣＢ，ＣＣ，ＣＤの総和程度となる。ここで、図５から分かるように、バッファメモリＢＭに保持される情報は、画像ＩＭＧのうち、領域ＬＢＡ〜ＬＢＤの何れかに含まれる４ラインと５画素の範囲に含まれる各画素に対応する情報である。即ち、バッファメモリＢＭに保持される情報量は、画像ＩＭＧに含まれる全ての画素に対応する輝度値及びＣａｎｎｙ法によるエッジ検出処理の各段階の処理で得られた結果を示す情報の総量に比べて小さい。つまり、図１に示したエッジ検出装置１０は、画像ＩＭＧ内の全画素に対応する輝度値及びＣａｎｎｙ法によるエッジ検出処理の各段階の処理結果を示す情報を内部に保持する場合に比べて、少ない容量のバッファメモリＢＭを用いて実現可能である。換言すれば、図１に示したエッジ検出装置１０は、Ｃａｎｎｙ法によるエッジ検出を行う処理ユニットの外部のフレームメモリ等に対するアクセスを削減するために内部に設けたバッファメモリの容量を低減することができる。
【００７１】
次に、図６を用いて、図１に示した第１抑制部１２及び第２抑制部１３により、非最大抑制処理を分担して実行することにより、非最大抑制処理を一括して実行する場合に比べて、バッファメモリＢＭに保持される情報量を削減可能とする根拠を説明する。
【００７２】
図６は、非最大抑制処理を一括して実行する場合にバッファメモリＢＭに保持される情報に対応する画像ＩＭＧの範囲の例を示す。なお、図６に示す要素のうち、図５に示した要素と同等のものは、同一の符号で示すとともに要素の説明を省略する場合がある。例えば、図６に示した領域ＬＢＡは、図５に示した領域ＬＢＡに相当する。また、図６に示した領域ＬＢＢ１は、図５に示した領域ＬＢＢに相当する要素であり、図６に示した領域ＬＢＤは、図５に示した領域ＬＢＤとほぼ同等の要素である。
【００７３】
以下では、座標（ｉ，ｊ）の画素を注目画素Ｐａとして勾配が算出された段階で、座標（ｉ−１，ｊ−１）の画素を対象とする非最大抑制処理を一括して実行する場合が説明される。
【００７４】
座標（ｉ−１，ｊ−１）の画素の非最大抑制処理は、座標（ｉ−１，ｊ−１）の画素の周囲に位置する８つの画素の勾配強度及び勾配方向を参照して行われる。したがって、座標（ｉ−１，ｊ−１）の画素の上及び左に隣接する画素を含む領域ＬＢＢ２に対応付けられたバッファメモリＢＭの記憶領域には、領域ＬＢＢ２内の各画素に対応して勾配強度及び勾配方向を示す情報が保持される。図６の例では、領域ＬＢＢ２は、画像ＩＭＧの第ｊ−２ラインの第ｉ−２画素から第Ｗ−１画素までと、第ｊ−１ラインの第０画素から第ｉ−２画素までの各画素を含む領域である。このため、バッファメモリＢＭ内に領域ＬＢＢ２に対応して用意されるリングバッファの容量ＣＢ２は、例えば、式（１９）で示される容量となり、式（１７）で示される領域ＬＢＣに対応するリングバッファの容量ＣＣよりも大きくなる。なお、式（１９）の例は、領域ＬＢＢ２内の各画素の勾配強度がｎ’ビットのデータで表され、領域ＬＢＢ２内の各画素の勾配方向が２ビットのデータで表される場合を示す。
ＣＢ２＝（ｎ’＋２）×（Ｗ＋１）      ・・・（１９）
以上に説明したように、図６に示した領域ＬＢＢ２に対応して用意されるリングバッファの容量ＣＢ２と図５に示した領域ＬＢＣに対応するリングバッファの容量ＣＣとの差は、約２Ｗビットとなる。ここで、１ラインの画素数Ｗが２０００〜８０００であるので、非最大抑制処理を分割して実行することで、非最大抑制処理を一括して実行する場合に比べて、バッファメモリＢＭの容量を数キロビットから十数キロビット程度削減可能である。
【００７５】
なお、エッジ検出装置１０に含まれるバッファメモリＢＭの各リングバッファに保持される情報は、図５で説明した情報に限られず、バッファメモリＢＭの容量は更に削減が可能である。バッファメモリＢＭの容量を更に削減するための手法は、図８及び図９を用いて後述される。
【００７６】
図７は、図１に示したエッジ検出装置１０の動作を示す。図７に示したステップＳ３０１〜ステップＳ３０５の処理は、図１に示したエッジ検出装置１０の動作を示すとともに、エッジ検出方法およびエッジ検出プログラムの例を示す。例えば、図７に示す処理は、エッジ検出装置１０に搭載されたプロセッサがエッジ検出プログラムを実行することで実現される。なお、図７に示す処理は、エッジ検出装置１０に搭載されるハードウェアによって実行されてもよい。
【００７７】
エッジ検出装置１０は、例えば、図１に示したフレームメモリＭＭに保持された画像ＩＭＧの中の１ラインに含まれる各画素の輝度値を示す画像データＩｍｇをバッファメモリＢＭに読み込むごとに、ステップＳ３０１〜ステップＳ３０５の処理を実行する。
【００７８】
ステップＳ３０１において、算出部１１は、図１で説明したように、画像ＩＭＧの各画素を順次に注目画素Ｐａとし、バッファメモリＢＭに注目画素Ｐａ及び周囲の画素に対応して保持された輝度値に基づいて、注目画素Ｐａにおける勾配を算出する。例えば、算出部１１は、新たな画像データＩｍｇの前にバッファメモリＢＭに読み込まれた画像データで輝度値が示される画像ＩＭＧ中の１ラインに含まれる各画素を順次に注目画素Ｐａとし、式（１）、（２）により注目画素Ｐａの勾配強度及び勾配方向を算出する。つまり、ステップＳ３０１では、算出部１１により、図５に示した画像ＩＭＧの第ｊ＋１番ラインがバッファメモリＢＭに読み込まれた場合に、第ｊラインに含まれる各画素における勾配強度及び勾配方向の算出が行われる。
【００７９】
ステップＳ３０２において、第１抑制部１２は、図２及び式（３）〜式（６）で説明したように、注目画素Ｐａを対象とする非最大抑制処理のうち、図１に示した第１画素Ｐ１−１〜Ｐ１−４の勾配強度を参照する処理を実行する。
【００８０】
ステップＳ３０３において、第２抑制部１３は、図３及び式（７）〜式（１４）で説明したように、図１に示した第１画素Ｐ１−１〜Ｐ１−４のそれぞれを対象とする非最大抑制処理のうち、注目画素Ｐａの勾配強度を参照する処理を実行する。
【００８１】
ステップＳ３０４において、判定部１４は、図４で説明したように、図１に示した第２画素Ｐ２を対象とするヒステリシス閾値処理により、第２画素Ｐ２がエッジであるか否かを判定する。また、判定部１４は、第２画素Ｐ２がエッジであるか否かを示すエッジ情報を第２画素Ｐ２に対応してバッファメモリＢＭに保持させる。
【００８２】
なお、第２画素Ｐ２を対象とするヒステリシス閾値処理が完了した後に、図１に示した第２画素Ｐ２の左上の画素Ｐｅに対応付けてバッファメモリＢＭに保持されたエッジ情報が判定部１４によって参照されることはない。そこで、エッジ検出装置１０のプロセッサは、画素Ｐｅに対応してバッファメモリＢＭに保持されたエッジ情報ＥｒをフレームメモリＭＭに渡し、画素Ｐｅに対応付けられたバッファメモリＢＭの記憶領域を解放する。例えば、図５において座標（ｉ−２，ｊ−２）で示した第２画素Ｐ２を対象とするヒステリシス閾値処理の完了に応じて、領域ＬＢＤに対応付けられたリングバッファに含まれる座標（ｉ−３，ｊ−３）で示した画素Ｐｅの記憶領域が解放される。同様にして、図５に示した領域ＬＢＣ，ＬＢＢ，ＬＢＡに対応するリングバッファは、エッジ検出装置１０のプロセッサによって更新される。
【００８３】
ステップＳ３０５において、エッジ検出装置１０に搭載されたプロセッサは、第ｊラインに含まれる各画素を注目画素Ｐａとする処理が終了したか否かを判定する。
【００８４】
第ｊラインに含まれる画素の中でまだ注目画素Ｐａとされていない画素がある場合に（ステップＳ３０５の否定判定（ＮＯ））、処理はステップＳ３０１に移行し、算出部１１により、新たな注目画素Ｐａにおける勾配強度及び勾配方向が算出される。
【００８５】
一方、第ｊラインに含まれる各画素を注目画素Ｐａとする処理が終了した場合に（ステップＳ３０５の肯定判定（ＹＥＳ））、画像ＩＭＧ中の第ｊラインを対象とするエッジ検出装置１０の処理は終了する。
【００８６】
そして、エッジ検出装置１０に搭載されたプロセッサは、フレームメモリＭＭから、画像ＩＭＧの中の新たな１ラインに含まれる各画素の輝度値を示す画像データＩｍｇをバッファメモリＢＭに読み込む。その後、エッジ検出装置１０に搭載されたプロセッサは、読み込んだ画像データＩｍｇを用いてステップＳ３０１〜ステップＳ３０５の処理を実行する。
【００８７】
ステップＳ３０１〜ステップＳ３０５で説明した処理を画像ＩＭＧに含まれる各ラインの画像データＩｍｇを読み込むごとに実行することで、エッジ検出装置１０は、画像ＩＭＧに含まれるエッジをＣａｎｎｙ法により検出することができる。
【００８８】
以上に説明したように、エッジ検出装置１０は、数ライン程度の容量を持つバッファメモリＢＭに、Ｃａｎｎｙ法によるエッジ検出処理の各段階の処理結果を保持させることで、Ｃａｎｎｙ法によるエッジ検出を実現する。つまり、エッジ検出装置１０は、Ｃａｎｎｙ法によるエッジ検出処理の各段階の処理結果をフレームメモリＭＭに書き出すことはない。したがって、以上に説明したエッジ検出装置１０は、途中の処理結果の格納にフレームメモリを用いる場合に比べて、外部のフレームメモリＭＭに対するアクセス回数を抑制することができる。
【００８９】
また、図５、図６で説明したように、図１に示したエッジ検出装置１０は、非最大抑制処理を第１抑制部１２と第２抑制部１３とで分割して実行することで、一括して実行する場合に比べて、バッファメモリＢＭとして用意する容量を少なくすることができる。
【００９０】
即ち、図１に示したエッジ検出装置１０は、外部に設けられたフレームメモリＭＭ等に対するアクセスを削減しつつ、内部のバッファメモリＢＭの容量を低減することができる。
【００９１】
次に、図５、図８及び図９を参照して、エッジ検出装置１０によるエッジ検出処理に用いられるバッファメモリＢＭの容量を削減する技術が説明される。
【００９２】
図８は、エッジ検出装置の別実施形態を示す。なお、図８に示す構成要素のうち、図１に示した構成要素と同等のものは、同一の符号で示すとともに構成要素の説明を省略する場合がある。
【００９３】
図８に示したエッジ検出装置１０ａは、図１に示したエッジ検出装置１０と同様に、フレームメモリＭＭ及び画像処理装置ＰＲに接続される。エッジ検出装置１０ａは、算出部１１と、第１抑制部１２と、第２抑制部１３と、判定部１４ａと、バッファメモリＢＭａとを含んでいる。ここで、算出部１１、第１抑制部１２及び第２抑制部１３は、図１に同じ符号で示した構成要素と同等であるので説明を省略する。
【００９４】
図８に示したバッファメモリＢＭａは、図１に示したバッファメモリＢＭに相当する構成要素であり、４つのリングバッファＲＢＡ，ＲＢＢ，ＲＢＣ，ＲＢＤを含んでいる。リングバッファＲＢＡは、図５に示した画像ＩＭＧの領域ＬＢＡに対応付けられた記憶領域であり、フレームメモリＭＭから渡される画像データＩｍｇを保持する。リングバッファＲＢＢは、図５に示した画像ＩＭＧの領域ＬＢＢに対応付けられた記憶領域であり、領域ＬＢＢに含まれる各画素に対応して、各画素の輝度値とともに、算出部１１で算出された勾配強度及び勾配方向を保持する。また、リングバッファＲＢＣ及びリングバッファＲＢＤのそれぞれは、図５に示した画像ＩＭＧの領域ＬＢＣ及び領域ＬＢＤのそれぞれに対応付けられた記憶領域であり、判定部１４ａによるヒステリシス閾値処理で用いられる情報を保持する。なお、リングバッファＲＢＣ，ＲＢＤに保持される情報については、判定部１４ａの構成及び動作の説明とともに後述される。
【００９５】
図８に示した判定部１４ａは、置換部１４１と、決定部１４２とを含む。置換部１４１は、第２抑制部１３と、リングバッファＲＢＢ，ＲＢＣと、決定部１４２とに接続されている。また、決定部１４２は、リングバッファＲＢＣ及びリングバッファＲＢＤに接続されている。
【００９６】
置換部１４１は、第２抑制部１３により、図５に示した領域ＬＢＢ内の座標（ｉ，ｊ）で示した注目画素Ｐａの勾配強度を参照する処理が完了した場合に、次に述べる置換処理を実行する。
【００９７】
まず、置換部１４１は、図１に示した注目画素Ｐａの左及び上に隣接する第１画素Ｐ１−１〜Ｐ１−４のうち、図５に座標（ｉ−１，ｊ−１）で示した第１画素Ｐ１−１の勾配強度をリングバッファＲＢＢから取得する。
【００９８】
次いで、置換部１４１は、リングバッファＲＢＢから受けた勾配強度を第１閾値及び第２閾値と比較し、座標（ｉ−１，ｊ−１）で示した第１画素Ｐ１−１の勾配強度と第１閾値及び第２閾値との大小関係を示す判定情報を生成する。置換部１４１は、例えば、第１画素Ｐ１−１の勾配強度が、図４で説明した第０階級、第１階級及び第２階級のどれに含まれるかを第１ビットと第２ビットの値の組み合わせで示す２ビットの情報を判定情報として生成する。置換部１４１は、例えば、式（２０）を用いて、第１画素Ｐ１−１の勾配強度Ｓが属する階級を示す判定情報Ｄを生成することが望ましい。なお、式（２０）において、数値Ｔｈ１は第１閾値を示し、数値Ｔｈ２は第１閾値よりも大きい値を持つ第２閾値を示す。また、式（２０）は、２ビットの判定情報の下位のビットである第１ビットにより勾配強度が第２閾値Ｔｈ２よりも大きいか否かを示し、上位のビットである第２ビットにより勾配強度が第１閾値Ｔｈ１と第２閾値Ｔｈ２との間に含まれるか否かを示す例である。
【００９９】
【数２】
2016018490.tif 000004
【０１００】
例えば、置換部１４１は、第１画素Ｐ１−１の勾配強度Ｓが第１閾値Ｔｈ１以下である場合に、勾配強度Ｓが第０階級に属することを示す判定情報Ｄとして、式（２０）で示される２ビットの情報「００」を生成する。同様に、置換部１４１は、勾配強度Ｓが第１閾値Ｔｈ１より大きく第２閾値Ｔｈ２以下である場合に、勾配強度Ｓが第１階級に属することを示す判定情報Ｄとして、式（２０）で示される２ビットの情報「１０」を生成する。また、置換部１４１は、第１画素Ｐ１−１の勾配強度Ｓが第２閾値Ｔｈ２より大きい場合に、勾配強度Ｓが第２階級に属することを示す判定情報Ｄとして、式（２０）で示される２ビットの情報「０１」を生成する。なお、置換部１４１で生成される判定情報は、式（２０）で示される２ビットの情報に限らず、第１画素Ｐ１−１の勾配強度Ｓが、図４で説明した３つの階級のどれに属するかを異なるビットパターンで示す情報であればよい。
【０１０１】
そして、置換部１４１は、座標（ｉ−１，ｊ−１）で示した第１画素Ｐ１−１の勾配強度の代わりに、第１画素Ｐ１−１の勾配強度と第１閾値及び第２閾値との大小関係を示す判定情報をリングバッファＲＢＣに保持させる。これにより、置換部１４１は、座標（ｉ−１，ｊ−１）で示した第１画素Ｐ１−１に対応してリングバッファＲＢＢに保持された勾配強度を、リングバッファＲＢＣに保持させる２ビットの判定情報に置き換える。
【０１０２】
ここで、図５に座標（ｉ−１，ｊ−１）で示した第１画素Ｐ１−１は、第１画素Ｐ１−１〜Ｐ１−４のうち、注目画素Ｐａよりも後に勾配が算出される画素を注目画素として第１抑制部１２で行われる非最大抑制処理で参照されない第１画素の一例である。また、図５に座標（ｉ−１，ｊ−１）で示した第１画素Ｐ１−１は、第１画素Ｐ１−１〜Ｐ１−４のうち、第２抑制部１３の処理において、注目画素Ｐａよりも後に算出部１１によって算出される勾配強度を参照しない第１画素の一例でもある。即ち、置換部１４１は、注目画素Ｐａの勾配強度を参照する処理の完了に応じて、注目画素Ｐａに対応する第１画素のうち、注目画素Ｐａよりも後に勾配が算出される画素を対象とする非最大抑制処理で参照されない第１画素の勾配強度を判定情報に置き換える。
【０１０３】
図８に示した決定部１４２は、置換部１４１により、図５において座標（ｉ−１，ｊ−１）で示した画素の勾配強度が判定情報で置換された後に、次に述べるようにして、座標（ｉ−２，ｊ−２）で示す画素がエッジか否かを決定する。ここで、図５において座標（ｉ−２，ｊ−２）で示す画素は、注目画素Ｐａの勾配強度を参照する処理で非最大抑制処理が完了した第１画素と当該第１画素よりも前に非最大抑制処理が完了した画素とで囲まれた第２画素に相当する。即ち、図５において座標（ｉ−２，ｊ−２）で示す画素は、図１に示した第２画素Ｐ２に相当する。また、座標（ｉ−１，ｊ−１）の画素を対象とする置換処理が完了した段階で、図１に示した領域Ｒｈに含まれる他の画素を対象とする置換処理も既に完了している。したがって、座標（ｉ−１，ｊ−１）の画素を対象とする置換処理が完了した段階では、リングバッファＲＢＣ，ＲＢＤには、図１に示した領域Ｒｈに含まれる各画素における勾配強度と第１閾値及び第２閾値との間の大小関係を示す判定情報が保持されている。
【０１０４】
まず、決定部１４２は、リングバッファＲＢＣ及びリングバッファＲＢＤから、図１に示した第２画素Ｐ２を中心とする領域Ｒｈに含まれる各画素に対応して保持された判定情報を取得する。例えば、決定部１４２は、リングバッファＲＢＣから、図５において座標（ｉ−１，ｊ−２）、座標（ｉ−３，ｊ−１），座標（ｉ−２，ｊ−１）及び座標（ｉ−１，ｊ−１）のそれぞれで示した画素に対応して保持された判定情報を読み出す。また、決定部１４２は、リングバッファＲＢＤから、図５にて座標（ｉ−３，ｊ−３）、座標（ｉ−２，ｊ−３），座標（ｉ−１，ｊ−３），座標（ｉ−３，ｊ−２）及び座標（ｉ−２，ｊ−２）のそれぞれで示した画素に対応して保持された判定情報を読み出す。
【０１０５】
そして、決定部１４２は、リングバッファＲＢＣ及びリングバッファＲＢＤから読み出した判定情報に基づいて、図４で説明したヒステリシス閾値処理を実行することで、図５において座標（ｉ−１，ｊ−２）で示される第２画素Ｐ２がエッジか否かを決定する。
【０１０６】
以下では、置換部１４１により、式（２０）を用いて判定情報Ｄが生成される場合に、決定部１４２により第２画素Ｐ２がエッジであるか否かを判定する処理が説明される。
【０１０７】
決定部１４２は、まず、第２画素Ｐ２に対応する判定情報Ｄを参照し、第２画素Ｐ２の判定情報Ｄが２ビットの情報「０１」である場合に、図４（Ａ）に示した場合と同等であると判断し、第２画素Ｐ２をエッジとする。この場合に、決定部１４２は、第２画素Ｐ２に対応してリングバッファＲＢＤに保持された判定情報Ｄを、第２画素Ｐ２がエッジであることを示すエッジ情報Ｅｒとしてそのまま維持する。
【０１０８】
また、決定部１４２は、第２画素Ｐ２の判定情報Ｄが２ビットの情報「００」の場合に、図４（Ｂ）に示した場合と同等であると判断し、第２画素Ｐ２はエッジでないとする。この場合に、決定部１４２は、第２画素Ｐ２に対応してリングバッファＲＢＤに保持された判定情報Ｄを、第２画素Ｐ２がエッジでないことを示すエッジ情報Ｅｒとしてそのまま維持する。
【０１０９】
一方、第２画素Ｐ２に対応する判定情報Ｄが２ビットの情報「１０」である場合に、決定部１４２は、第２画素Ｐ２に隣接する画素のそれぞれに対応する判定情報Ｄを参照する。
【０１１０】
そして、第２画素Ｐ２に隣接する画素のそれぞれに対応する判定情報Ｄの中に、第１ビットが値「１」を示す判定情報が含まれる場合に、決定部１４２は、図４（Ｃ）に示した場合と同等であると判断し、第２画素Ｐ２をエッジとする。この場合に、決定部１４２は、第２画素Ｐ２に対応してリングバッファＲＢＤに保持された判定情報Ｄに含まれる第１ビットに値「１」を設定し、判定情報Ｄを第２画素Ｐ２がエッジであることを示すエッジ情報Ｅｒに変換する。
【０１１１】
一方、第２画素Ｐ２に隣接する画素のそれぞれに対応する判定情報Ｄの中に、第１ビットが値「１」を示す判定情報が含まれない場合に、決定部１４２は、図４（Ｄ）に示した場合と同等であると判断し、第２画素Ｐ２はエッジでないとする。この場合に、決定部１４２は、第２画素Ｐ２に対応してリングバッファＲＢＤに保持された判定情報Ｄを、第２画素Ｐ２がエッジでないことを示すエッジ情報Ｅｒとしてそのまま維持する。
【０１１２】
以上に説明したようにして決定部１４２で生成されるエッジ情報Ｅｒは、エッジ情報Ｅｒに対応する画素がエッジであるか否かを示す情報とともに、対応する画素における勾配強度が図４で説明した３つの階級のどれに含まれるかを示す情報を含んでいる。したがって、決定部１４２は、リングバッファＲＢＤから読み出したエッジ情報Ｅｒを判定情報Ｄとして用いることで、図４で説明したヒステリシス閾値処理と同等の処理を実行することができる。
【０１１３】
そして、リングバッファＲＢＤに保持されたエッジ情報Ｅｒは、例えば、１ライン分の処理が終了するごとに、画像処理装置ＰＲに渡される。なお、リングバッファＲＢＤは、エッジ情報ＥｒをフレームメモリＭＭに渡してもよい。この場合に、フレームメモリＭＭに渡されたエッジ情報Ｅｒは、画像データが格納された記憶領域とは別にフレームメモリＭＭ内部に設けられた記憶領域に格納される。そして、画像処理装置ＰＲは、フレームメモリＭＭに格納されたエッジ情報Ｅｒを読み出すことで、エッジ検出装置１０ａで生成されたエッジ情報Ｅｒを受けてもよい。
【０１１４】
ここで、図８に示したリングバッファＲＢＣは図５に示した領域ＬＢＣに含まれる各画素に対応する２ビットの判定情報を保持する。したがって、図８に示したリングバッファＲＢＣの容量は、式（２１）で示される容量ＣＣ’となり、領域ＬＢＣに含まれる各画素に対応して各画素における勾配強度を示すｎ’ビットの情報を保持する場合に比べて小さくなる。なお、式２１において、数値Ｗは、１ラインに含まれる画素数を示す。
ＣＣ’＝２×（Ｗ＋１）      ・・・（２１）
例えば、１ラインの画素数Ｗが２０００程度である場合に、図８に示したリングバッファＲＢＣの容量ＣＣ’は、約４キロビット（約２５０バイト）である。これに対して、図１に示したバッファメモリＢＭにおいて領域ＬＢＣに含まれる各画素に対応する勾配強度を保持するために割り当てられる容量ＣＣは、各画素の勾配強度が１６ビットのデータで表される場合に、約３２キロビット（約４キロバイト）となる。
【０１１５】
即ち、図８に示した置換部１４１及び決定部１４２を有する判定部１４ａを含むエッジ検出装置１０ａは、図１に示したエッジ検出装置１０に含まれるバッファメモリＢＭよりも少ない容量のバッファメモリＢＭａを用いて実現可能である。
【０１１６】
図９は、図８に示した判定部１４ａの動作を示す。図９に示したステップＳ３１１〜ステップＳ３２０の処理は、図８に示した判定部１４ａの動作を示すとともに、図７においてステップＳ３０４で示したヒステリシス閾値処理の例を示す。例えば、図９に示す処理は、エッジ検出装置１０ａに搭載されたプロセッサがプログラムを実行することで実現される。なお、図９に示す処理は、エッジ検出装置１０ａに搭載されるハードウェアによって実行されてもよい。
【０１１７】
ステップＳ３１１において、図８に示した置換部１４１は、図５において座標（ｉ，ｊ）で示した注目画素Ｐａの左上に隣接する第１画素に対応してリングバッファＲＢＢに保持された勾配強度を、例えば、式（２０）を用いて算出される判定情報に置換する。
【０１１８】
ステップＳ３１１の処理の後、図８に示した決定部１４２は、ステップＳ３１２〜ステップＳ３２０の処理により、図５において座標（ｉ，ｊ）で示した注目画素Ｐａから左及び上にそれぞれ２画素ずれた画素である第２画素Ｐ２がエッジか否かを決定する。即ち、決定部１４２は、図５において座標（ｉ−２，ｊ−２）で示した第２画素Ｐ２を対象とするヒステリシス閾値処理として、ステップＳ３１２〜ステップＳ３２０の処理を実行する。
【０１１９】
ステップＳ３１２において、決定部１４２は、まず、図８に示したリングバッファＲＢＣに第２画素Ｐ２に対応して保持された判定情報Ｄを参照する。
【０１２０】
ステップＳ３１３において、決定部１４２は、ステップＳ３１２の処理で参照した判定情報Ｄに含まれる第２ビットが値「１」を示すか否かを判定する。
【０１２１】
判定情報Ｄに含まれる第２ビットが値「０」である場合、即ち、判定情報Ｄにより、第２画素Ｐ２の勾配強度が図４で説明した第１閾値Ｔｈ１と第２閾値Ｔｈ２との間の第１階級に属さないことが示された場合に、ステップＳ３１３の否定判定（ＮＯ）となる。この場合に、処理は、ステップＳ３１４に移行する。
【０１２２】
ステップＳ３１４において、決定部１４２は、ステップＳ３１２の処理で参照した判定情報Ｄに含まれる第１ビットが値「１」を示すか否かを判定する。
【０１２３】
判定情報Ｄに含まれる第１ビットが値「１」である場合、即ち、判定情報Ｄにより、第２画素Ｐ２の勾配強度が図４で説明した第２閾値Ｔｈ２より大きい第２階級に属することが示された場合に、ステップＳ３１４の肯定判定（ＹＥＳ）となる。この場合に、処理は、ステップＳ３１５に移行する。
【０１２４】
ステップＳ３１５において、決定部１４２は、第２画素Ｐ２をエッジとして検出し、第２画素Ｐ２を対象とするヒステリシス閾値処理を終了する。なお、この場合に、第２画素Ｐ２に対応してリングバッファＲＢＣに保持された判定情報Ｄは、そのまま、第２画素Ｐ２に対応するエッジ情報Ｅｒとして維持される。
【０１２５】
一方、ステップＳ３１２の処理で参照した判定情報Ｄに含まれる第２ビットが値「０」であり、かつ、第１ビットが値「０」場合に（ステップＳ３１４の否定判定（ＮＯ））、処理は、ステップＳ３１６に移行する。ここで、判定情報Ｄに含まれる第１ビット及び第２ビットがともに値「０」場合は、判定情報Ｄにより、第２画素Ｐ２の勾配強度が図４で説明した第１閾値Ｔｈ１より小さい第０階級に属することが示された場合に相当する。
【０１２６】
ステップＳ３１６において、決定部１４２は、第２画素Ｐ２をエッジではないとし、第２画素Ｐ２を対象とするヒステリシス閾値処理を終了する。なお、この場合に、第２画素Ｐ２に対応してリングバッファＲＢＣに保持された判定情報Ｄは、そのまま、第２画素Ｐ２に対応するエッジ情報Ｅｒとして維持される。
【０１２７】
ところで、ステップＳ３１２の処理で参照した判定情報Ｄに含まれる第２ビットが値「１」を示す場合、即ち、判定情報Ｄにより、第２画素Ｐ２の勾配強度が図４で説明した第１階級に属する場合は、ステップＳ３１３の肯定判定となる。この場合に、処理は、ステップＳ３１７に移行する。
【０１２８】
ステップＳ３１７において、決定部１４２は、図８に示したリングバッファＲＢＣ，ＲＢＤに第２画素Ｐ２の周囲の８画素に対応して保持された判定情報Ｄを参照する。例えば、決定部１４２は、図５において座標（ｉ−１，ｊ−２）、座標（ｉ−３，ｊ−１），座標（ｉ−２，ｊ−１）及び座標（ｉ−１，ｊ−１）のそれぞれで示した画素に対応してリングバッファＲＢＣに保持された判定情報を参照する。また、決定部１４２は、図５において座標（ｉ−３，ｊ−３）、座標（ｉ−２，ｊ−３），座標（ｉ−１，ｊ−３），座標（ｉ−３，ｊ−２）及び座標（ｉ−２，ｊ−２）のそれぞれで示した画素に対応してリングバッファＲＢＤに保持された判定情報を参照する。
【０１２９】
ステップＳ３１８において、決定部１４２は、ステップＳ３１７の処理で参照した判定情報の中に、第１ビットが値「１」を示す判定情報が含まれているか否かを判定する。
【０１３０】
ステップＳ３１７の処理で参照した判定情報の中に、第１ビットが値「１」を示す判定情報が含まれていない場合に（ステップＳ３１８の否定判定（ＮＯ））、処理はステップＳ３１６に移行する。
【０１３１】
一方、ステップＳ３１７の処理で参照した判定情報の中に、第１ビットが値「１」を示す判定情報が含まれている場合に（ステップＳ３１８の肯定判定（ＹＥＳ））、処理は、ステップＳ３１９に移行する。
【０１３２】
ステップＳ３１９において、決定部１４２は、第２画素Ｐ２に対応してリングバッファＲＢＣに保持された判定情報Ｄの第１ビットに値「１」を設定することで、判定情報Ｄを第２画素Ｐ２がエッジであることを示すエッジ情報Ｅｒに変換する。
【０１３３】
その後、ステップＳ３２０において、決定部１４２は、第２画素Ｐ２をエッジとして検出し、第２画素Ｐ２を対象とするヒステリシス閾値処理を終了する。
【０１３４】
図８及び図９で説明したように、ステップＳ３１２以降の処理に先立って、置換部１４１によりステップＳ３１１の処理を行うことにより、ステップＳ３１２以降のヒステリシス閾値処理は、２ビットで表される判定情報を参照することで実行可能となる。これにより、第２画素Ｐ２を対象とするヒステリシス閾値処理を、第２画素Ｐ２及び第２画素Ｐ２の周囲の画素に対応する勾配強度を第１閾値Ｔｈ１及び第２閾値Ｔｈ２と比較する場合に比べて簡易な処理によって実現することができる。即ち、図９に示したヒステリシス閾値処理は、第２画素Ｐ２及び第２画素Ｐ２の周囲の画素に対応する勾配強度を第１閾値Ｔｈ１及び第２閾値Ｔｈ２と比較する場合に比べて高速に実行可能である。
【０１３５】
つまり、図８に示したエッジ検出装置１０ａは、図５に示した領域ＬＢＣに含まれる各画素に対応する勾配強度を保持する場合に比べて、バッファメモリＢＭａの容量を少なくでき、また、ヒステリシス閾値処理を高速に実行することができる。これらの特徴は、エッジ検出装置１０ａを、Ｃａｎｎｙ法によるエッジ検出を行う処理ユニットとしてデジタルカメラなどに搭載する場合に有用である。
【０１３６】
なお、図８に示した判定部１４ａは、ヒステリシス閾値処理として、図９に示した処理の代わりに、図１０に示す処理を実行してもよい。
【０１３７】
図１０は、図８に示した判定部１４ａの動作の別例を示す。なお、図１０に示すステップのうち、図９に示したステップと同等のものは、同一の符号で示すとともにステップの説明を省略する場合がある。図１０に示した処理は、図８に示した判定部１４ａの動作の別例を示すとともに、図７においてステップＳ３０４で示したヒステリシス閾値処理の別例を示す。図１０に示す処理は、エッジ検出装置１０ａに搭載されたプロセッサがプログラムを実行することで実現されてもよいし、エッジ検出装置１０ａに搭載されるハードウェアによって実行されてもよい。
【０１３８】
図１０の例では、図８に示した決定部１４２は、ステップＳ３１７の処理の後に、図９に示したステップＳ３１８に代えて、ステップＳ３１８’の処理を実行する。
【０１３９】
ステップＳ３１８’において、決定部１４２は、ステップＳ３１７の処理で参照した判定情報の中に、第２ビットが値「０」であり、かつ、第１ビットが値「１」を示す判定情報が含まれているか否かを判定する。
【０１４０】
ステップＳ３１７で参照した判定情報に、第２ビットが値「０」かつ第１ビットが値「１」の判定情報が含まれる場合（ステップＳ３１８’の肯定判定（ＹＥＳ））、決定部１４２は、ステップＳ３１９及びステップＳ３２０の処理を実行する。
【０１４１】
一方、ステップＳ３１７で参照した判定情報に、第２ビットが値「０」かつ第１ビットが値「１」の判定情報が含まれない場合（ステップＳ３１８’の否定判定（ＮＯ））、決定部１４２は、ステップＳ３１６の処理を実行する。
【０１４２】
ここで、ステップＳ３１７で参照した判定情報に、第２ビットが値「０」かつ第１ビットが値「１」の判定情報が含まれる場合は、即ち、第２画素Ｐ２の周囲に第２階級に属する勾配強度を持つ画素がある場合である。つまり、決定部１４２により、ステップＳ３１８’の処理を実行する場合は、第２画素Ｐ２の周囲に第２階級に属する勾配強度を持つ画素があるか否かに基づいて、第２画素Ｐ２がエッジであるか否かが判定される。
【０１４３】
また、図１及び図８に示した算出部１１において、注目画素Ｐａにおける輝度値の勾配を算出する際に参照する画像の範囲、即ち、勾配の算出に用いるＳｏｂｅｌフィルタのカーネルは、図１において領域Ｒａとして示した３画素×３画素の領域に限られない。例えば、算出部１１は、例えば、５画素×５画素等、３画素×３画素よりも大きいサイズのカーネルを持つＳｏｂｅｌフィルタを用いて、注目画素Ｐａにおける輝度値の勾配強度及び勾配方向の算出を行ってもよい。
【０１４４】
ここで、算出部１１で用いられるＳｏｂｅｌフィルタのカーネルが３画素×３画素よりも大きい場合にも、非最大抑制処理において参照される範囲は、非最大抑制処理の対象となる画素を中心とする３画素×３画素の領域となる。このため、例えば、５画素×５画素のＳｏｂｅｌフィルタにより勾配を算出する算出部を有するエッジ検出装置においても、非最大抑制処理を第１抑制部１２及び第２抑制部１３により分割して実行することによる効果が損なわれることはない。
【０１４５】
図１に示したエッジ検出装置１０および図８に示したエッジ検出装置１０ａは、例えば、デジタルカメラなどに搭載されるプロセッサなどのハードウェアを用いて実現することができる。
【０１４６】
図１１は、図８に示したエッジ検出装置１０ａを含むデジタルカメラのハードウェア構成例を示す。なお、図１１に示した構成要素のうち、図８に示した構成要素と同等のものは同一の符号で示され、構成要素の説明は省略される場合がある。
【０１４７】
図１１に示したデジタルカメラＣＡＭは、プロセッサ２１と、メモリ２２と、撮像部２３と、信号処理部２４と、操作パネル２５と、液晶表示部２６と、メモリカードインタフェース２７と、画像処理ユニットＧＰＵとを含んでいる。図１１に示したプロセッサ２１と、メモリ２２と、撮像部２３と、信号処理部２４と、操作パネル２５と、液晶表示部２６と、メモリカードインタフェース２７と、画像処理ユニットＧＰＵとは、バスを介して互いに接続されている。また、メモリカードインタフェース２７には、ＳＤ（Secure Digital）メモリカードなどの着脱可能なメモリカードＭＣが装着されている。
【０１４８】
また、図１１に示した画像処理ユニットＧＰＵは、プロセッサＣＰ、メモリＭＥＭ及びバッファメモリＢＭａを有するエッジ検出装置１０ａと、顔認識エンジンＰＲｆとを含んでいる。
【０１４９】
撮像部２３は、レンズなどの光学系及び撮像素子を含み、被写体の画像を撮影する。撮像部２３による撮影で得られた画像信号は、信号処理部２４に渡される。信号処理部２４は、撮像部２３から受けた画像信号に基づいて、撮像部２３内の撮像素子に含まれる各画素に対応する輝度成分及び色成分を示す画像データを生成するための補間処理を含む信号処理を行う。信号処理部２４は、撮像部２３から受けた画像信号に基づいて、例えば、各画素の輝度成分及び色成分をＹＵＶ形式で示す画像データを生成し、生成した画像データをメモリ２２に渡す。
【０１５０】
メモリ２２は、デジタルカメラＣＡＭの動作を制御するための制御プログラムを保持するとともに、信号処理部２４から渡される画像データを保持する。プロセッサ２１は、メモリ２２に保持された制御プログラムを実行することで、撮像部２３、信号処理部２４、操作パネル２５及び液晶表示部２６の動作を制御する。なお、メモリ２２において、信号処理部２４から渡された画像データが保持される領域は、図８に示したフレームメモリＭＭに相当する。
【０１５１】
操作パネル２５は、デジタルカメラＣＡＭの利用者からの指示を受けるための入力装置であり、例えば、撮像部２３による画像の撮影を実行させる指示を入力するためのレリーズボタンなどを含んでいる。また、液晶表示部２６は、メモリ２２に保持された画像データなどを表示する表示装置である。
【０１５２】
また、画像処理ユニットＧＰＵに含まれる顔認識エンジンＰＲｆは、図８に示した画像処理装置ＰＲに相当する構成要素の一例であり、エッジ検出装置１０ａによる処理で検出されたエッジに基づいて、画像データで示される画像に含まれる人物の顔の認識を行う。
【０１５３】
図１１に示したエッジ検出装置１０ａに含まれるメモリＭＥＭは、例えば、ＥＰＲＯＭ（Erasable Programmable Read Only Memory）などであり、図７及び図９に示した処理をプロセッサＣＰが実行するためのエッジ検出プログラムを格納している。なお、メモリＭＥＭは、図７及び図１０に示した処理をプロセッサＣＰが実行するためのエッジ検出プログラムを格納してもよい。
【０１５４】
そして、図１１に示したエッジ検出装置１０ａに含まれるプロセッサＣＰは、メモリＭＥＭに格納されたエッジ検出プログラムを実行することにより、図８に示した算出部１１、第１抑制部１２、第２抑制部１３及び判定部１４ａの機能を果たす。
【０１５５】
つまり、図８に示したエッジ検出装置１０ａは、例えば、図１１に示したデジタルカメラＣＡＭに搭載された画像処理ユニットＧＰＵに含まれるプロセッサＣＰと、メモリＭＥＭと、バッファメモリＢＭａとの協働によって実現することができる。
【０１５６】
ここで、図８及び図９で説明したように、エッジ検出装置１０ａに設けられるバッファメモリＢＭａの容量は、例えば、画像に含まれるすべての画素に対応する輝度値及びＣａｎｎｙ法によるエッジ検出処理の各段階の処理結果を保持する場合に比べて小さい。したがって、顔認識エンジンＰＲｆによる顔認識処理に用いるエッジ情報の生成のために、画像処理ユニットＧＰＵにエッジ検出装置１０ａを搭載したことによるハードウェア量の増大は軽微である。
【０１５７】
図１２は、図１１に示したデジタルカメラＣＡＭの動作を示す。図１２に示したステップＳ３２１〜ステップＳ３２５の各処理は、デジタルカメラＣＡＭの動作を制御するための制御プログラムに含まれる処理の一例である。また、ステップＳ３２１〜ステップＳ３２５の各処理は、例えば、図１１に示した操作パネル２５に設けられたレリーズボタンの操作により、デジタルカメラＣＡＭの利用者から画像の撮影が指示される毎にプロセッサ２１によって実行される。
【０１５８】
ステップＳ３２１において、プロセッサ２１は、撮像部２３に対して被写体の撮影を指示し、撮像部２３による撮影で得られた画像信号に基づいて信号処理部２４で生成される画像データを取得する。信号処理部２４によって生成された画像データは、図１１に示したメモリ２２に保持される。メモリ２２に保持された画像データは、画像処理ユニットＧＰＵに含まれるエッジ検出装置１０ａからアクセス可能である。
【０１５９】
ステップＳ３２２において、プロセッサ２１は、エッジ検出装置１０ａに対して、メモリ２２に保持された画像データで示される画像からＣａｎｎｙ法によりエッジを検出する処理の実行を指示する。
【０１６０】
プロセッサ２１からの指示に応じて、エッジ検出装置１０ａに含まれるプロセッサＣＰは、例えば、メモリＭＥＭに保持されたエッジ検出プログラムを実行することで、図７及び図９に示したエッジ検出処理を実行する。なお、図１１に示したエッジ検出装置１０ａの動作は、図１３を用いて後述される。
【０１６１】
ステップＳ３２３において、プロセッサ２１は、顔認識エンジンＰＲｆに対して、エッジ検出装置１０ａによって検出されたエッジに基づく顔認識処理の実行を指示する。そして、プロセッサ２１からの指示に応じて、顔認識エンジンＰＲｆは、例えば、メモリ２２に保持されたエッジ情報に基づいて、画像に含まれる人物の顔を認識する処理を行う。顔認識エンジンＰＲｆによる認識処理で得られた情報は、例えば、メモリ２２を介してプロセッサ２１に渡される。
【０１６２】
ステップＳ３２４において、プロセッサ２１は、例えば、ステップＳ３２３の処理で得られた顔認識結果を含むタグ情報を生成し、生成したタグ情報をメモリ２２に保持された画像データに付加する。
【０１６３】
ステップＳ３２５において、プロセッサ２１は、ステップＳ３２４の処理でタグ情報が付加された画像データをメモリカードインタフェース２７に渡し、メモリカードインタフェース２７を介して画像データをメモリカードＭＣに記録する。そして、ステップＳ３２５の処理の終了後に、プロセッサ２１は、画像の撮影処理を終了する。
【０１６４】
図１１及び図１２で説明したように、エッジ検出装置１０ａを搭載したデジタルカメラＣＡＭは、利用者によるレリーズボタンの操作に応じて画像が撮影される毎に、Ｃａｎｎｙ法によるエッジ検出処理を実行する。これにより、顔認識エンジンＰＲｆは、Ｃａｎｎｙ法を用いない場合に比べて高い精度で検出されたエッジに基づいて、画像に含まれる人物の顔を認識することができる。
【０１６５】
図１３は、図１１に示したエッジ検出装置１０ａの動作を示す。なお、図１３に示すステップのうち、図７に示したステップと同等のものは、同一の符号で示すとともにステップの説明を省略する場合がある。また、図１３に示したステップＳ３０１〜ステップＳ３０５及びステップＳ３３１〜ステップＳ３３９の処理は、図１１に示したメモリＭＥＭに格納されたプログラムに従ってプロセッサＣＰにより実行される処理の例である。
【０１６６】
ステップＳ３３１において、プロセッサＣＰは、メモリ２２に保持された画像に対する処理に先立って、画像の上の端を対象とする境界処理を実行する。例えば、プロセッサＣＰは、鏡面処理を用いて、図５に示した画像ＩＭＧの第０ラインから第２ラインまでの領域に含まれる各画素に対応するエッジ情報及び非最大抑制処理結果を生成する。また、プロセッサＣＰは、鏡面処理を用いて生成した情報を、図５に示した領域ＬＢＤ，ＬＢＣ，ＬＢＢに含まれる各画素に対応する情報としてバッファメモリＢＭａに保持させる。また、プロセッサＣＰは、第３ラインに含まれる各画素の輝度値を示す画像データをメモリ２２から読み出し、読み出した画像データを、図５に示した領域ＬＢＡに対応する画像データの一部としてバッファメモリＢＭａに保持させる。また、プロセッサＣＰは、ステップＳ３０１において勾配を算出する対象となる注目画素のｙ方向の位置を示す座標値ｊに初期値「３」を設定する。
【０１６７】
ステップＳ３３２において、プロセッサＣＰは、第ｊ＋１ラインに含まれる各画素の輝度値を示す画像データを、図５に示した領域ＬＢＡに対応する画像データの一部としてメモリ２２からバッファメモリＢＭａに読み込む。
【０１６８】
ステップＳ３３３において、プロセッサＣＰは、図５に示した画像ＩＭＧにおいて座標（０、ｊ）で示される画素についての境界処理として、例えば、鏡面処理を用いて座標（０、ｊ）の画素における勾配強度及び勾配方向を算出する処理を実行する。また、プロセッサＣＰは、算出した勾配強度及び勾配方向を、座標（０、ｊ）の画素に対応してバッファメモリＢＭａに保持させる。
【０１６９】
その後、プロセッサＣＰは、第ｊラインの第１画素から第Ｗ−２画素までの各画素を順次に注目画素として、ステップＳ３０１〜ステップＳ３０５の処理を繰り返し実行する。即ち、プロセッサＣＰは、第ｊラインにおいて注目画素を示すｘ方向の座標値ｉを初期値「１」から値「Ｗ−２」まで変化させながら、ステップＳ３０１からステップＳ３０５の処理を実行する。
【０１７０】
つまり、ステップＳ３０１において、プロセッサＣＰは、図５に示した画像ＩＭＧにおいて座標（ｉ，ｊ）で示される画素を注目画素とし、注目画素における勾配強度及び勾配方向を求める。そして、プロセッサＣＰは、求めた勾配強度及び勾配方向を、図５に示した領域ＬＢＢに含まれる注目画素に対応して、バッファメモリＢＭａに保持させる。
【０１７１】
次に、ステップＳ３０２において、プロセッサＣＰは、図２で説明したようにして、注目画素を対象とする非最大抑制処理のうち、注目画素に隣接する画素であって、注目画素よりも前に勾配が算出された画素である第１画素の勾配を参照する処理を実行する。
【０１７２】
その後、ステップＳ３０３において、プロセッサＣＰは、図３で説明したようにして、第１画素のそれぞれを対象とする非最大抑制処理のうち、注目画素の勾配を参照する処理を実行する。
【０１７３】
ステップＳ３０４において、プロセッサＣＰは、図５に示した画像ＩＭＧにおいて座標（ｉ−２，ｊ−２）で示される第２画素を対象として、図４で説明したヒステリシス閾値処理を実行することにより、第２画素がエッジであるか否かを判定する。
【０１７４】
その後、ステップＳ３０５において、プロセッサＣＰは、例えば、ｘ方向の座標値ｉに基づいて、１ラインの処理が終了したか否かを判定する。
【０１７５】
例えば、ｘ方向の座標値ｉに値「１」を加算した値が、１ラインに含まれる画素数Ｗから値「１」を減じた値よりも小さい場合に、プロセッサＣＰは、ステップＳ３０５の否定判定（ＮＯ）ルートに従って、ステップＳ３３４の処理を実行する。
【０１７６】
ステップＳ３３４において、プロセッサＳＰは、例えば、ｘ方向の座標値ｉに値「１」を加算することで、座標値ｉを更新する。その後、処理は、ステップＳ３０１に移行し、更新された座標値ｉで示される新たな画素を注目画素として、ステップＳ３０１からステップＳ３０５の処理が実行される。
【０１７７】
一方、ｘ方向の座標値ｉに値「１」を加算した値が、１ラインに含まれる画素数Ｗから値「１」を減じた値に等しい場合に、プロセッサＣＰは、ステップＳ３０５の肯定判定（ＹＥＳ）ルートに従って、ステップＳ３３５に進む。
【０１７８】
ステップＳ３３５において、プロセッサＣＰは、ステップＳ３３３と同様にして、図５に示した画像ＩＭＧにおいて座標（Ｗ−１，ｊ）で示される第ｊラインの最後の画素についての境界処理を実行する。
【０１７９】
ステップＳ３３６において、プロセッサＣＰは、図５に示した画像ＩＭＧの第ｊ−３ラインに含まれる各画素に対応してバッファメモリＢＭａに保持されたエッジ情報を、メモリ２２に書き出す処理を実行する。ここで、図８及び図９で説明したように、ステップＳ３０４のヒステリシス閾値処理により生成される２ビットのエッジ情報の第１ビットにより、画像ＩＭＧの第ｊ−３ラインに含まれる各画素がエッジであるか否かが示される。したがって、プロセッサＣＰは、第ｊ−３ラインに含まれる各画素に対応してバッファメモリＢＭａに保持されたエッジ情報の第１ビットをそれぞれを、第ｊ−３ラインに含まれる各画素がエッジであるか否かを示すエッジ画像としてメモリ２２に転送してもよい。
【０１８０】
次に、ステップＳ３３７において、プロセッサＣＰは、ｙ方向の座標値ｊに基づいて、画像ＩＭＧに含まれるラインのうち、ステップＳ３０１からステップＳ３０５の処理の適用が可能な全てのラインの処理が終了したか否かを判定する。例えば、プロセッサＣＰは、ｙ方向の座標値ｊに値「１」を加算した値が、図５に示した画像ＩＭＧに含まれるライン数Ｈから１を減じた値「Ｈ−１」に到達したか否かにより、ステップＳ３０５の判定処理を行ってもよい。
【０１８１】
例えば、ｙ方向の座標値ｊに値「１」を加算した値が、値「Ｈ−１」未満である場合に、プロセッサＣＰは、ステップＳ３３７の否定判定（ＮＯ）ルートに従って、ステップＳ３３８の処理を実行する。
【０１８２】
ステップＳ３３８において、プロセッサＳＰは、例えば、ｙ方向の座標値ｊに値「１」を加算することで、座標値ｊを更新する。その後、処理は、ステップＳ３３２に移行し、更新された座標値ｊを用いて座標値ｊ＋１で示される新たなラインの画像データがバッファメモリＢＭａに読み込まれる。そして、更新された座標値で示される第ｊラインに含まれる各画素を注目画素として、ステップＳ３３３及びステップＳ３０１からステップＳ３０５の処理が実行される。
【０１８３】
一方、ｙ方向の座標値ｊに値「１」を加算した値が、画像ＩＭＧに含まれるライン数Ｈから１を減じた値「Ｈ−１」に等しい場合に、プロセッサＣＰは、ステップＳ３３７の肯定判定（ＹＥＳ）ルートに従って、ステップＳ３３９に進む。
【０１８４】
ステップＳ３３９において、プロセッサＣＰは、ステップＳ３３１と同様にして、図５に示した画像ＩＭＧの下の端を対象とする境界処理を実行し、その後、プロセッサＣＰは、エッジ検出処理を終了する。
【０１８５】
以上に説明したように、図１３に示した各処理をプロセッサＣＰが実行することにより、図１１に示したエッジ検出装置１０ａは、メモリ２２に保持された画像データで示される画像に含まれるエッジを検出することができる。
【０１８６】
以上に説明したエッジ検出装置１０，１０ａは、図１１に示したデジタルカメラＣＡＭに搭載される場合に限らず、画像を撮影する機能を有する装置であれば、どのような装置にも搭載することが可能である。例えば、エッジ検出装置１０，１０ａは、スキャナ装置で読み取った画像からエッジを検出することも可能であるし、ビデオカメラで撮影された動画像に含まれる画像のそれぞれからリアルタイムでエッジを検出することも可能である。
【０１８７】
例えば、車両の後方に向けて配置されたビデオカメラによって撮影された映像に含まれる画像のそれぞれを受けた場合に、エッジ検出装置１０，１０ａは、ビデオカメラの視野に含まれる人物などの輪郭を示すエッジを高い精度で検出することが可能である。即ち、エッジ検出装置１０，１０ａを搭載することにより、ビデオカメラの映像に基づいて車両の後方にある物体や人物をリアルタイムで、かつ、高精度に認識するシステムを実現することが可能となる。
【０１８８】
また、エッジ検出装置１０，１０ａは、Ｘ線撮像装置や超音波撮像装置などによって撮影された画像からのエッジ検出にも適用可能であるので、例えば、医療分野や非破壊検査分野における画像診断などでの利用を図ることも可能である。
【０１８９】
以上の詳細な説明により、実施形態の特徴点及び利点は明らかになるであろう。これは、特許請求の範囲が、その精神および権利範囲を逸脱しない範囲で、前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更を容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【０１９０】
以上の説明に関して、更に、以下の各項を開示する。
(付記１)  画像における画素の並び順に従って順次に特定される注目画素の画素値と前記注目画素の周囲の複数の画素の画素値とに基づいて、前記注目画素における画素値である注目画素値の勾配の強度及び前記注目画素値の勾配の方向を算出し、
前記注目画素値の勾配が算出される毎に、
前記注目画素値の勾配の強度が前記注目画素値の勾配の方向に隣接する画素の少なくとも一方の画素値の勾配の強度よりも小さい場合に前記注目画素値の勾配の強度を第１閾値よりも小さい値に置き換える処理である非最大抑制処理のうち、前記注目画素に隣接する画素のうち画素値の勾配が既に算出された第１画素の画素値の勾配の強度を前記注目画素値の勾配の強度との比較の対象として参照する第１処理と、
前記第１画素のそれぞれに対する前記非最大抑制処理のうち、前記注目画素値の勾配の強度を前記第１画素の画素値の勾配の強度との比較の対象として参照する第２処理とを実行し、
前記第１画素を含む前記非最大抑制処理が完了した画素に囲まれた第２画素の画素値の勾配の強度及び前記第２画素を囲む複数の画素の画素値の勾配の強度のそれぞれと、前記第１閾値及び前記第１閾値よりも大きい第２閾値との比較に基づいて、前記第２画素がエッジであるか否かを判定する第３処理を実行する
ことを特徴とするエッジ検出方法。
(付記２)  付記１に記載のエッジ検出方法において、
前記第２画素に対する前記第３処理は、
前記第２処理により前記第１画素に対する前記非最大抑制処理が完了するごとに、前記第１画素の画素値の勾配の強度を、前記勾配の強度と前記第１閾値及び前記第２閾値との大小関係を示す判定情報に置き換え、
前記第２画素の画素値の勾配の強度と前記第１閾値及び前記第２閾値との大小関係を示す判定情報と、前記第２画素を囲む画素のそれぞれの画素値の勾配の強度と前記第１閾値及び前記第２閾値との大小関係を示す判定情報とに基づいて、前記第２画素がエッジであるか否かを判定することで実行される、
ことを特徴とするエッジ検出方法。
(付記３)  画像における画素の並び順に従って順次に特定される注目画素の画素値と前記注目画素の周囲の複数の画素の画素値とに基づいて、前記注目画素における画素値である注目画素値の勾配の強度及び前記注目画素値の勾配の方向を算出する算出部と、
前記算出部で算出した前記注目画素値の勾配を用いて、前記注目画素値の勾配の強度が前記注目画素値の前記勾配の方向に隣接する画素の少なくとも一方の画素値の勾配の強度よりも小さい場合に前記注目画素値の勾配の強度を第１閾値よりも小さい値に置き換える処理である非最大抑制処理のうち、前記注目画素に隣接する画素のうち画素値の勾配が既に算出された第１画素の画素値の勾配の強度を前記注目画素値の勾配の強度との比較の対象として参照する第１処理を行う第１抑制部と、
前記算出部で算出した前記注目画素値の勾配を用いて、前記第１画素のそれぞれに対する前記非最大抑制処理のうち、前記注目画素値の勾配の強度を前記第１画素の画素値の勾配の強度との比較の対象として参照する第２処理を行う第２抑制部と、
前記第１画素を含む前記非最大抑制処理が完了した画素に囲まれた第２画素の画素値の勾配の強度及び前記第２画素を囲む各画素の画素値の勾配の強度のそれぞれと、前記第１閾値及び前記第１閾値よりも大きい第２閾値との比較に基づいて、前記第２画素がエッジであるか否かを判定する第３処理を実行する判定部と
を備えたことを特徴とするエッジ検出装置。
【０１９１】
(付記４)  付記３に記載のエッジ検出装置において、
前記判定部は、
前記第２抑制部による前記第２処理が完了した第１画素の画素値の勾配の強度を、前記勾配の強度と前記第１閾値及び前記第２閾値との大小関係を示す判定情報に置き換える置換部と、
前記第２画素の画素値の勾配の強度と前記第１閾値及び前記第２閾値との大小関係を示す判定情報と、前記第２画素を囲む画素の画素値の勾配の強度と前記第１閾値及び前記第２閾値との大小関係を示す判定情報とに基づいて、前記第２画素がエッジであるか否かを決定する決定部とを有する
ことを特徴とするエッジ検出装置。
（付記５）付記４に記載のエッジ検出装置において、
前記置換部は、
前記第１画素の画素値の勾配の強度が前記第２閾値よりも大きい場合に、値「１」を示す第１ビット及び値「０」を示す第２ビットを含む判定情報で前記勾配の強度を置き換え、
前記第１画素の画素値の勾配の強度が前記第１閾値よりも大きく、かつ前記第２閾値以下である場合に、値「０」を示す第１ビット及び値「１」を示す第２ビットを含む判定情報で前記勾配の強度を置き換え、
前記第１画素の画素値の勾配の強度が前記第１閾値以下である場合に、値「０」を示す第１ビット及び値「０」を示す第２ビットを含む判定情報で前記勾配の強度を置き換え、
前記決定部は、
前記置換部により前記第２画素について得られた判定情報の第２ビットが値「１」であり、前記第２画素を囲む複数の画素に対応する判定情報の少なくとも一つに含まれる第１ビットに値「１」が設定されている場合に、前記第２画素をエッジであると判定し、
前記第２画素がエッジであると判定した場合に、前記第２画素に対応する判定情報の第１ビットに値「１」を設定する
ことを特徴とするエッジ検出装置。
（付記６）画像における画素の並び順に従って順次に特定される注目画素の画素値と前記注目画素の周囲の複数の画素の画素値とに基づいて、前記注目画素における画素値である注目画素値の勾配の強度及び前記注目画素値の勾配の方向を算出し、
前記注目画素値の勾配が算出される毎に、
前記注目画素値の勾配の強度が前記注目画素値の勾配の方向に隣接する画素の少なくとも一方の画素値の勾配の強度よりも小さい場合に前記注目画素値の勾配の強度を第１閾値よりも小さい値に置き換える処理である非最大抑制処理のうち、前記注目画素に隣接する画素のうち画素値の勾配が既に算出された第１画素の画素値の勾配の強度を前記注目画素値の勾配の強度との比較の対象として参照する第１処理と、
前記第１画素のそれぞれに対する前記非最大抑制処理のうち、前記注目画素値の勾配の強度を前記第１画素の画素値の勾配の強度との比較の対象として参照する第２処理とを実行し、
前記第１画素を含む前記非最大抑制処理が完了した画素に囲まれた第２画素の画素値の勾配の強度及び前記第２画素を囲む複数の画素の画素値の勾配の強度のそれぞれと、前記第１閾値及び前記第１閾値よりも大きい第２閾値との比較に基づいて、前記第２画素がエッジであるか否かを判定する第３処理を実行する、
処理をコンピュータに実行させることを特徴とするエッジ検出プログラム。
【符号の説明】
【０１９２】
１０，１０ａ…エッジ検出装置；１１…算出部；１２…第１抑制部；１３…第２抑制部；１４，１４ａ…判定部；１４１…置換部；１４２…決定部；２１、ＣＰ…プロセッサ；２２、ＭＥＭ…メモリ；２３…撮像部；２４…信号処理部；２５…操作パネル；２６…液晶表示部；２７…メモリカードインタフェース；ＭＣ…メモリカード；ＣＡＭ…デジタルカメラ；ＧＰＵ…画像処理ユニット；ＰＲｆ…顔認識エンジン；ＢＭ，ＢＭａ…バッファメモリ；ＭＭ…フレームメモリ；ＰＲ…画像処理装置
【図１】
2016018490.tif 000005
【図２】
2016018490.tif 000006
【図３】
2016018490.tif 000007
【図４】
2016018490.tif 000008
【図５】
2016018490.tif 000009
【図６】
2016018490.tif 000010
【図７】
2016018490.tif 000011
【図８】
2016018490.tif 000012
【図９】
2016018490.tif 000013
【図１０】
2016018490.tif 000014
【図１１】
2016018490.tif 000015
【図１２】
2016018490.tif 000016
【図１３】
2016018490.tif 000017