(57)【要約】【課題】エッジをより高精度に検出することができる技術を提供する。【解決手段】本発明のエッジ検出装置は、入力画像に基づいて、階調値が極大値となる画素である極大画素の間の距離と、階調値が極小値となる画素である極小画素の間の距離との少なくとも一方を判断する判断手段と、前記判断手段によって判断された距離に基づく検出感度で、前記入力画像からエッジを検出する検出手段と、を有する。【選択図】図２
2017174311.tif 000002
【特許請求の範囲】
【請求項１】
入力画像に基づいて、階調値が極大値となる画素である極大画素の間の距離と、階調値が極小値となる画素である極小画素の間の距離との少なくとも一方を判断する第１判断手段と、
前記第１判断手段によって判断された距離に基づく検出感度で、前記入力画像からエッジを検出する検出手段と、
を有することを特徴とするエッジ検出装置。
【請求項２】
前記検出手段は、エッジの検出対象の位置である対象位置からの複数の距離にそれぞれ対応する複数のエッジのいずれかを、前記対象位置におけるエッジとして検出し、
前記対象位置からの距離が、前記第１判断手段によって判断された距離に基づく第１距離以下の第１範囲に対応するエッジの検出感度は、前記対象位置からの距離が前記第１距離よりも長い第２範囲に対応するエッジの検出感度よりも高い
ことを特徴とする請求項１に記載のエッジ検出装置。
【請求項３】
前記第１距離は、前記第１判断手段によって判断された距離である
ことを特徴とする請求項２に記載のエッジ検出装置。
【請求項４】
前記第２範囲は、
前記対象位置からの距離が前記第１距離よりも長く且つ第２距離よりも短い第３範囲と、
前記対象位置からの距離が前記第２距離以上の第４範囲と、
を含み、
前記検出手段は、
前記第１範囲に対応するエッジの検出感度として、第１検出感度を使用し、
前記第３範囲に対応するエッジの検出感度として、前記対象位置からの距離の増加に伴い前記第１検出感度から第２検出感度へ低下する検出感度を使用し、
前記第４範囲に対応するエッジの検出感度として、前記第２検出感度を使用する
ことを特徴とする請求項２または３に記載のエッジ検出装置。
【請求項５】
前記入力画像の複雑さを判断する第２判断手段と、
前記複雑さに応じて前記第２距離を設定する第１設定手段と、
をさらに有する
ことを特徴とする請求項４に記載のエッジ検出装置。
【請求項６】
前記第１設定手段は、前記複雑さが高いほど短い距離を、前記第２距離として設定することを特徴とする請求項５に記載のエッジ検出装置。
【請求項７】
前記複雑さは、前記極大画素の数と前記極小画素の数との少なくとも一方に基づく数の、前記入力画像の画素の数に対する割合である
ことを特徴とする請求項５または６に記載のエッジ検出装置。
【請求項８】
前記複雑さは、前記極大画素の数と前記極小画素の数との合計の、前記入力画像の画素の数に対する割合である
ことを特徴とする請求項５〜７のいずれか１項に記載のエッジ検出装置。
【請求項９】
前記第２判断手段は、前記対象位置を基準とした判断エリアにおける入力画像の複雑さを判断する
ことを特徴とする請求項５〜８のいずれか１項に記載のエッジ検出装置。
【請求項１０】
前記極大画素と前記極小画素のそれぞれは、エッジの検出対象の位置である対象位置を基準とした判断エリアにおける画素である
ことを特徴とする請求項１〜９のいずれか１項に記載のエッジ検出装置。
【請求項１１】
前記検出手段は、前記対象位置を基準とした検出エリアにおける入力画像を用いて、前記対象位置におけるエッジを検出し、
前記エッジ検出装置は、
前記検出エリアのサイズを設定する第２設定手段と、
前記検出エリアのサイズに応じて前記判断エリアのサイズを設定する第３設定手段と、
をさらに有する
ことを特徴とする請求項９または１０に記載のエッジ検出装置。
【請求項１２】
前記第３設定手段は、前記検出エリアのサイズが大きいほど大きいサイズを、前記判断エリアのサイズとして設定する
ことを特徴とする請求項１１に記載のエッジ検出装置。
【請求項１３】
前記検出手段は、
前記入力画像を用いたブロックマッチングを行い、
前記第１判断手段によって判断された距離に基づく検出感度に対応する補正パラメータを用いて、前記ブロックマッチングの結果を補正し、
前記ブロックマッチングの補正後の結果に基づいて、前記入力画像からエッジを検出する
ことを特徴とする請求項１〜１２のいずれか１項に記載のエッジ検出装置。
【請求項１４】
前記ブロックマッチングでは、
２つの参照ブロックの組み合わせが複数設定され、
複数の組み合わせのそれぞれについて、その組み合わせに対応する一方の参照ブロックにおける入力画像と、その組み合わせに対応する他方の参照ブロックにおける入力画像との類似度または非類似度が比較値として判断され、
前記補正パラメータは、前記比較値に加算するオフセット値である
ことを特徴とする請求項１３に記載のエッジ検出装置。
【請求項１５】
前記ブロックマッチングでは、２つの参照ブロックの所定方向における位置関係が互いに異なる複数の組み合わせが設定される
ことを特徴とする請求項１４に記載のエッジ検出装置。
【請求項１６】
前記極大画素は、所定方向での階調値の変化において階調値が極大値となる画素であり、
前記極小画素は、前記所定方向での階調値の変化において階調値が極小値となる画素である
ことを特徴とする請求項１〜１５のいずれか１項に記載のエッジ検出装置。
【請求項１７】
前記所定方向は、水平方向または垂直方向である
ことを特徴とする請求項１５または１６に記載のエッジ検出装置。
【請求項１８】
前記第１判断手段によって判断された距離に基づいて、前記検出感度を設定する第４設定手段、をさらに有する
ことを特徴とする請求項１〜１７のいずれか１項に記載のエッジ検出装置。
【請求項１９】
前記極大画素の間の距離は、隣り合う２つの極大画素の間の距離であり、
前記極小画素の間の距離は、隣り合う２つの極小画素の間の距離である
ことを特徴とする請求項１〜１８のいずれか１項に記載のエッジ検出装置。
【請求項２０】
前記第１判断手段は、前記極大画素の間の距離と前記極小画素の間の距離とを判断し、
前記検出感度は、前記極大画素の間の距離と前記極小画素の間の距離とを代表する代表距離に応じた検出感度である
ことを特徴とする請求項１〜１９のいずれか１項に記載のエッジ検出装置。
【請求項２１】
前記代表距離は、前記極大画素の間の距離と前記極小画素の間の距離とのうちの小さい方である
ことを特徴とする請求項２０に記載のエッジ検出装置。
【請求項２２】
入力画像に基づいて、階調値が極大値となる画素である極大画素の間の距離と、階調値が極小値となる画素である極小画素の間の距離との少なくとも一方を判断するステップと、
判断された距離に基づく検出感度で、前記入力画像からエッジを検出するステップと、を有することを特徴とするエッジ検出方法。
【請求項２３】
請求項２２に記載のエッジ検出方法の各ステップをコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エッジ検出装置およびエッジ検出方法に関する。
【背景技術】
【０００２】
近年、従来よりも解像度の高い高解像度画像を表示する画像表示装置の普及が進んでいる。高解像度画像のうち水平方向の画素数が約４０００個の画像（例えば、水平方向４０９６画素×垂直方向２１６０画素の画像）は、一般的に「４ｋ画像」と呼ばれている。また、画像表示装置に入力される入力画像データの解像度が画像表示装置の画面解像度と異なる場合、入力画像データの解像度を画像表示装置の画面解像度と同じ解像度に変換する必要がある。
【０００３】
画像データの解像度を変換する画像処理には、スケーラ処理等がある。スケーラ処理は、入力画像データの画像サイズを変更（拡大または縮小）することで入力画像データの解像度を変換する画像処理である。この画像処理を一般的な手法（例えばバイキュービック法）を用いて行うと、斜めエッジ（斜め方向のエッジ）の画像領域にジャギーが発生し、画質が著しく劣化する。
【０００４】
ジャギーの発生を抑制する技術は、例えば、特許文献１に開示されている。特許文献１に開示の技術では、画像から斜めエッジが検出され、斜めエッジの画像領域に対して、斜めエッジの傾斜角度（斜めエッジの方向）に応じた画素を用いて補間画素が生成される。また、特許文献１に開示の技術では、注目位置に近い位置と注目位置から離れた位置とのそれぞれについてエッジの存在を示す相関値が得られた場合に、注目位置に近い位置に対応する相関値を用いて注目位置におけるエッジが検出される。
【０００５】
しかしながら、注目位置に近い位置に対応する相関値を優先して使用すると、エッジの誤検出が生じる。例えば、自然画に含まれる水平線に近い浅い角度の斜め線は局所的に見ると水平線である。そのため、上記斜め線（自然画に含まれる水平線に近い浅い角度の斜め線）の画像領域においては、浅い角度の方向と水平方向とが、エッジの方向の候補として検出される。浅い角度の方向は注目位置から離れた位置に対応し、水平方向は注目位置に近い位置に対応するため、水平方向がエッジの方向として選択される。即ち、上記斜め線が水平線として誤検出される。その結果、上記斜め線の画像領域において、ジャギーの発生を抑制することができない。
【０００６】
また、注目位置に近い位置に対応する相関値を優先しない方法でも、エッジの誤検出が生じる。例えば、画像空間内に同じ絵柄が周期的に並べられた周期パターンを含む画像領域においては、エッジの方向の候補として複数の方向が検出されることがある。そして、注目位置に近い位置に対応する方向を選択すべきであるにも拘らず、注目位置から遠い位置に対応する方向が誤って選択されることがある（エッジの誤検出）。その結果、周期パターンを含む画像領域において、誤った方向に応じた画素を用いて誤った補間画素が生成され、画質が著しく劣化する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−３３６４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、エッジをより高精度に検出することができる技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の第１の態様は、
入力画像に基づいて、階調値が極大値となる画素である極大画素の間の距離と、階調値が極小値となる画素である極小画素の間の距離との少なくとも一方を判断する判断手段と、
前記判断手段によって判断された距離に基づく検出感度で、前記入力画像からエッジを検出する検出手段と、
を有することを特徴とするエッジ検出装置である。
【００１０】
本発明の第２の態様は、
入力画像に基づいて、階調値が極大値となる画素である極大画素の間の距離と、階調値が極小値となる画素である極小画素の間の距離との少なくとも一方を判断するステップと、
判断された距離に基づく検出感度で、前記入力画像からエッジを検出するステップと、を有することを特徴とするエッジ検出方法である。
【００１１】
本発明の第３の態様は、上述したエッジ検出方法の各ステップをコンピュータに実行させることを特徴とするプログラムである。
【発明の効果】
【００１２】
本発明によれば、エッジをより高精度に検出することができる。
【図面の簡単な説明】
【００１３】
【図１】実施例１に係る画像処理装置の構成の一例を示すブロック図
【図２】実施例１に係るエッジ検出部の構成の一例を示すブロック図
【図３】実施例１に係るブロックマッチングの一例を示す図
【図４】実施例１に係る極値点距離判断部の構成の一例を示すブロック図
【図５】実施例１に係る極値点距離判断部の処理の具体例を示す図
【図６】実施例１に係る極値点距離判断部の処理の具体例を示す図
【図７】実施例１に係るオフセットテーブルの一例を示す図
【図８】実施例１に係る補正後のＳＡＤ値の分布の一例を示す図
【図９】実施例１により解決される課題の一例を示す図
【図１０】実施例１に係る効果の一例を示す図
【図１１】実施例１に係る効果の一例を示す図
【図１２】実施例１に係るスケーラ処理の一例を示す図
【図１３】実施例２に係るエッジ検出部の構成の一例を示すブロック図
【図１４】実施例２に係る極値点距離判断部の構成の一例を示すブロック図
【図１５】実施例２に係る高周波周期パターンの一例を示す図
【図１６】実施例２に係る複雑さと閾値の対応関係の一例を示す図
【図１７】実施例２に係るオフセットテーブルの一例を示す図
【発明を実施するための形態】
【００１４】
＜実施例１＞
以下、本発明の実施例１について説明する。以下では、画像データの画像サイズを変更（拡大または縮小）することで画像データの解像度を変換するスケーラ処理を実行可能な画像処理装置に、本実施例に係るエッジ検出装置が設けられている例を説明する。なお、画像処理装置で実行される画像処理は、スケーラ処理に限られない。例えば、画像処理と
して、ぼかし処理、エッジ強調処理、輝度変換処理、色変換処理、等が行われてもよい。また、エッジ検出装置は、画像処理装置とは別体の装置であってもよい。
【００１５】
図１は、本実施例に係る画像処理装置の構成の一例を示すブロック図である。図１に示すように、本実施例に係る画像処理装置は、エッジ検出部１０１とスケーラ部１０２を有する。
【００１６】
エッジ検出部１０１は、入力画像（入力画像データ）ＩＤからエッジを検出する。エッジの検出方法は特に限定されないが、本実施例では、エッジ検出部１０１は、注目位置（エッジの検出対象の位置である対象位置）からの複数の距離にそれぞれ対応する複数のエッジのいずれかを、注目位置におけるエッジとして検出する。具体的には、エッジ検出部１０１は、入力画像ＩＤを用いたブロックマッチングを行う。そして、エッジ検出部１０１は、ブロックマッチングの結果に基づいて、注目位置からの複数の距離にそれぞれ対応する複数のエッジのいずれかを、注目位置におけるエッジとして検出する。エッジ検出部１０１は、エッジの検出結果として角度情報ＡＮＧＬＥを、スケーラ部１０２へ出力する。
【００１７】
角度情報ＡＮＧＬＥは、入力画像ＩＤ内に設定された注目位置におけるエッジの有無、注目位置に存在するエッジの方向、等を表す。入力画像ＩＤ内には、１つまたは複数の注目位置が設定される。本実施例では、エッジ検出部１０１は、角度情報ＡＮＧＬＥとして−１６〜＋１６の値を出力する。具体的には、エッジ検出部１０１は、斜め方向のエッジが存在する位置における角度情報ＡＮＧＬＥとして、垂直方向に対するエッジの傾斜角度を表す値を出力する。そして、エッジ検出部１０１は、エッジが存在しない位置における角度情報ＡＮＧＬＥ、及び、水平方向のエッジが存在する位置における角度情報ＡＮＧＬＥとしても、０（ゼロ）を出力する。なお、エッジの有無の表現方法、エッジの方向の表現方法、等は上記方法に限られない。例えば、エッジの方向は、水平方向に対するエッジの傾斜角度で表現されてもよい。
【００１８】
スケーラ部１０２は、角度情報ＡＮＧＬＥに基づいて入力画像ＩＤの解像度を変換するスケーラ処理を行うことにより、画像（画像データ）ＯＤを生成する。画像ＯＤは、解像度が変換された後の入力画像ＩＤである。そして、スケーラ部１０２は、生成した画像ＯＤを出力する。画像ＯＤは、不図示の記憶部に記録されたり、不図示の表示部で表示されたりする。
【００１９】
次に、エッジ検出部１０１について詳しく説明する。図２は、エッジ検出部１０１の構成の一例を示すブロック図である。図２に示すように、エッジ検出部１０１は、輝度変換部２０１、ブロックバッファ部２０２、ブロックマッチング部２０３、極値点距離判断部２０４、オフセット値決定部２０５、ＳＡＤオフセット部２０６、及び、マッチング角度決定部２０７を有する。
【００２０】
輝度変換部２０１は、入力画像ＩＤの各画素値を輝度値ＹＤＡＴＡに変換し、各輝度値ＹＤＡＴＡをブロックバッファ部２０２と極値点距離判断部２０４に順次出力する。入力画像ＩＤの画素値がＹＣｂＣｒ値（Ｙ値、Ｃｂ値、及び、Ｃｒ値の組み合わせ）である場合には、輝度変換部２０１は、入力画像ＩＤのＹ値を輝度値ＹＤＡＴＡとして使用する。入力画像ＩＤの画素値がＲＧＢ値（Ｒ値、Ｇ値、及び、Ｂ値の組み合わせ）である場合には、輝度変換部２０１は、入力画像ＩＤのＲＧＢ値を輝度値ＹＤＡＴＡに変換する。例えば、以下の式１を用いて輝度値ＹＤＡＴＡが算出される。
ＹＤＡＴＡ＝０．２×Ｒ値＋０．７×Ｇ値＋０．１×Ｂ値  ・・・（式１）
【００２１】
ブロックバッファ部２０２は、輝度変換部２０１から出力された輝度値ＹＤＡＴＡを記憶し、記憶している輝度値ＹＤＡＴＡをブロックマッチング部２０３へ出力する。本実施例では、ブロックバッファ部２０２は、ラインメモリを有しており、ラインメモリに輝度値ＹＤＡＴＡを蓄積する。そして、ブロックバッファ部２０２は、水平方向Ｘ画素×垂直方向Ｙライン分の輝度値ＹＤＡＴＡをラインメモリから読み出し、読み出した輝度値ＹＤＡＴＡをブロックデータＢＬＫＤＡＴＡとしてブロックマッチング部２０３へ出力する。本実施例では、Ｘ＝２０であり、且つ、Ｙ＝４である場合の例を説明する。
【００２２】
本実施例では、ブロックデータＢＬＫＤＡＴＡに対応する画像領域が、検出エリアとして使用される。検出エリアは、注目位置におけるエッジの検出において入力画像ＩＤが参照される画像領域である。本実施例では、検出エリアは、注目位置を基準とした画像領域である。具体的には、検出エリアは、注目位置を中心とする画像領域である。
【００２３】
なお、ブロックデータＢＬＫＤＡＴＡに対応する画像領域は、検出エリアと異なっていてもよい。注目位置、検出エリア、及び、ブロックデータＢＬＫＤＡＴＡに対応する画像領域の位置関係は特に限定されない。ブロックデータＢＬＫＤＡＴＡに対応する画像領域のサイズと、検出エリアのサイズとも特に限定されない。ブロックデータＢＬＫＤＡＴＡに対応する画像領域の形状と、検出エリアの形状とも特に限定されない。
【００２４】
ブロックマッチング部２０３は、検出エリアにおける入力画像ＩＤを用いたブロックマッチングを行う。本実施例では、入力画像ＩＤの輝度値ＹＤＡＴＡを用いたブロックマッチングが行われる。なお、ブロックマッチングでは、輝度値ＹＤＡＴＡとは異なる他の階調値（Ｒ値、Ｇ値、Ｂ値、Ｃｂ値、Ｃｒ値、等）が使用されてもよいし、複数種類の階調値が使用されてもよい。
【００２５】
本実施例では、図３に示すように、ブロックマッチング部２０３は、注目位置Ｐ０に対して、２つの参照ブロックＡ，Ｂを設定し、参照ブロックＡにおける入力画像ＩＤ（輝度値ＹＤＡＴＡ）と、参照ブロックＢにおける入力画像ＩＤとを比較する。それにより、参照ブロックＡにおける入力画像ＩＤと、参照ブロックＢにおける入力画像ＩＤとの類似度または非類似度が、比較値として判断される。
【００２６】
具体的には、ブロックマッチング部２０３は、参照ブロックＡにおける複数の画素のそれぞれについて、その画素の輝度値ＹＤＡＴＡと、参照ブロックＢの画素の輝度値ＹＤＡＴＡとの差分の絶対値（差分絶対値）を算出する。参照ブロックＡの画素ＰＡについての差分絶対値を得る際には、参照ブロックＢの複数の画素のうち、参照ブロックＢとの位置関係が、参照ブロックＡと画素ＰＡの位置関係と等しい画素ＰＢが使用される。そして、ブロックマッチング部２０３は、得られた複数の差分絶対値の総和であるＳＡＤ値（差分絶対値和）を、上記比較値として算出する。ＳＡＤ値は、参照ブロックＡにおける入力画像ＩＤと、参照ブロックＢにおける入力画像ＩＤとの非類似度（類似度の逆数）に相当する。ＳＡＤ値の逆数のような類似度が、比較値として算出されてもよい。
【００２７】
参照ブロックＡの中心位置は、注目位置Ｐ０に対して、所定方向に垂直な２方向のうちの一方の側に位置し、参照ブロックＢの中心位置は、注目位置Ｐ０に対して、所定方向に垂直な２方向のうちの他方の側に位置する。そして、参照ブロックペア（参照ブロックＡと参照ブロックＢの組み合わせ）の所定方向の中心位置は、注目位置Ｐ０の所定方向の位置と一致する。本実施例では、所定方向として水平方向が使用される。そのため、参照ブロックＡの中心位置は、注目位置Ｐ０に対して上側に位置し、参照ブロックＢの中心位置は、注目位置Ｐ０に対して下側に位置する。そして、参照ブロックペアの水平方向の中心位置は、注目位置Ｐ０の水平位置（水平方向の位置）と一致する。参照ブロックＡ，Ｂの
位置関係は、エッジ（エッジの方向）に対応する。
【００２８】
ブロックマッチング部２０３は、参照ブロックペアを複数設定し、複数の参照ブロックペアにそれぞれ対応する複数のＳＡＤ値を算出する。本実施例では、ブロックマッチング部２０３は、検出エリア内において参照ブロックＡ，Ｂの水平位置を変えることにより、参照ブロックの水平方向（所定方向）における位置関係が互いに異なる複数の参照ブロックペアを設定する。具体的には、ブロックマッチング部２０３は、ブロック距離ｎが−１６、−１４、−１２、−１０、−８、−６、−４、−２、０、＋２、＋４、＋６、＋８、＋１０、＋１２、＋１４、及び、＋１６である１７個の参照ブロックペアを設定する。そして、ブロックマッチング部２０３は、１７個の参照ブロックペアにそれぞれ対応する１７個のＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ）を算出し、対象位置に対して算出した複数（１７個）のＳＡＤ値をＳＡＤオフセット部２０６へ出力する。
【００２９】
ブロック距離ｎの絶対値は、参照ブロックＡの中心位置と、参照ブロックＢの中心位置との間の水平方向（所定方向）の距離である。上述したように、参照ブロックペアの所定方向の中心位置は、注目位置Ｐ０の水平位置と一致する。そのため、｜ｎ｜（ブロック距離ｎの絶対値）の１／２は、注目位置Ｐ０と参照ブロックＡの中心位置との間の水平方向の距離であり、注目位置Ｐ０と参照ブロックＢの中心位置との間の水平方向の距離である。また、上述したように、参照ブロックＡ，Ｂの位置関係は、エッジに対応する。従って、上記距離（注目位置Ｐ０から参照ブロックＡ（または参照ブロックＢ）の中心位置までの距離、ブロック距離ｎ、等）はエッジに対応する。
【００３０】
本実施例では、参照ブロックＡの中心位置が注目位置Ｐ０よりも右側に位置する場合に、ブロック距離ｎとして正の値が使用される。そして、参照ブロックＡの中心位置が注目位置Ｐ０よりも左側に位置する場合に、ブロック距離ｎとして負の値が使用される。図３は、ブロック距離ｎ＝−４の場合の例を示す。ブロック距離ｎの絶対値の増加に伴い、対応するエッジの垂直方向に対する傾斜角度は増加する。
【００３１】
図３では、参照ブロックＡ，Ｂのそれぞれは、水平方向４画素×垂直方向３画素の画像領域である。そして、参照ブロックＡと参照ブロックＢとは、垂直方向に１画素分だけずれている。なお、参照ブロックＡ，Ｂのサイズ、垂直方向（所定方向に垂直な方向）における参照ブロックＡと参照ブロックＢの位置関係、参照ブロックＡ，Ｂの形状、等は特に限定されない。
【００３２】
極値点距離判断部２０４は、入力画像ＩＤに基づいて、極大点距離と極小点距離との少なくとも一方を判断する（極値点距離判断処理）。そして、極値点距離判断部２０４は、極大点距離と極小点距離との少なくとも一方の判断結果である極値点距離ＩＮＶＡＬを、オフセット値決定部２０５へ出力する。極大点距離は、階調値が極大値となる画素である極大画素の間の距離であり、極小点距離は、階調値が極小値となる画素である極小画素の間の距離である。具体的には、極大点距離は、隣り合う２つの極大画素の間の距離であり、極小点距離は、隣り合う２つの極小画素の間の距離である。極大画素は「画素間での階調値の変化が増加から減少に転じる画素」とも言うことができ、極小画素は「画素間での階調値の変化が減少から増加に転じる画素」とも言うことができる。本実施例では、極値点距離判断部２０４は、判断エリアにおける入力画像ＩＤに基づいて、極大点距離と極小点距離の少なくとも一方を判断する。そのような処理によれば、極大画素と極小画素のそれぞれとして、判断エリアにおける画素を使用することができる。その結果、極大点距離として、判断エリアにおける極大画素点の間の距離を得ることができ、極小点距離として、判断エリアにおける極小画素の間の距離を得ることができる。
【００３３】
判断エリアは、極値点距離判断処理において入力画像ＩＤが参照される画像領域である
。本実施例では、判断エリアは、注目位置Ｐ０を基準とした画像領域である。例えば、判断エリアは、注目位置Ｐ０の周辺の画像領域である。具体的には、判断エリアは、注目位置Ｐ０の１つ上に存在するラインの画像領域であり、水平方向（所定方向）の中心位置が注目位置Ｐ０と一致する画像領域である。
【００３４】
なお、注目位置Ｐ０と判断エリアの位置関係、判断エリアのサイズ、判断エリアの形状、等は特に限定されない。複数の注目位置の間で判断エリアが共通していてもよい。入力画像ＩＤの全画像領域が、判断エリアとして使用されてもよい。画像処理装置は、検出エリアのサイズを設定する機能部と、判断エリアのサイズを設定する機能部とをさらに有していてもよい。その場合には、検出エリアのサイズに応じて判断エリアのサイズが設定されることが好ましい。例えば、検出エリアのサイズが大きいほど大きいサイズが、判断エリアのサイズとして設定されることが好ましい。ユーザによって指定された任意のサイズが検出エリアのサイズとして設定されてもよい。入力画像ＩＤの種類（写真、イラスト、等）、画像ＯＤを表示する表示部の使用環境（画像ＯＤの視聴環境など）、等に応じて検出エリアのサイズが自動で設定されてもよい。ユーザによって指定された任意のサイズが判断エリアのサイズとして設定されてもよいし、入力画像ＩＤの種類、表示部の使用環境、等に応じて判断エリアのサイズが自動で設定されてもよい。
【００３５】
本実施例では、極大画素は、輝度値ＹＤＡＴＡが極大値となる画素であり、極小画素は、輝度値ＹＤＡＴＡが極小値となる画素である。また、本実施例では、極大画素は、水平方向（所定方向）での階調値の変化において階調値が極大値となる画素であり、極小画素は、水平方向（所定方向）での階調値の変化において階調値が極小値となる画素である。
【００３６】
なお、極大画素と極小画素は上記画素に限られない。例えば、極大画素と極小画素は、輝度値ＹＤＡＴＡとは異なる他の階調値（Ｒ値、Ｇ値、Ｂ値、Ｃｂ値、Ｃｒ値、等）を考慮した画素であってもよい。具体的には、極大画素は、Ｇ値が極大値となる画素であってもよく、極小画素は、Ｇ値が極小値となる画素であってもよい。極大画素は、面内方向（２次元方向）での階調値の変化において階調値が極大値となる画素であってもよく、極小画素は、面内方向での階調値の変化において階調値が極小値となる画素であってもよい。
【００３７】
ここで、極値点距離判断部２０４について詳しく説明する。図４は、極値点距離判断部２０４の構成の一例を示すブロック図である。図４に示すように、極値点距離判断部２０４は、階調変化判断部３０１、極値点検出部３０２、及び、極値点距離算出３０３を有する。
【００３８】
階調変化判断部３０１は、判断エリアにおける複数の画素のうち、水平方向において互いに隣接する画素（隣接画素）の間の輝度値ＹＤＡＴＡの差に基づいて、隣接画素の間における階調値の変化を判断する。そして、階調変化判断部３０１は、階調変化（階調値の変化）の判断結果を示す階調変化値ＹＧｕ（ｊ）を、極値点検出部３０２へ出力する。階調変化値ＹＧｕ（ｊ）は、画素ｕ（ｊ）の輝度値ｙｕ（ｊ）と、画素ｕ（ｊ）に対して左側に隣接する画素ｕ（ｊ−１）の輝度値ｙｕ（ｊ−１）との差に基づく値である。画素ｕ（ｊ）は、判断エリア内の画素であり、注目位置Ｐ０の１つ上に存在するラインＵ上の画素である。本実施例では、注目位置Ｐ０に対して左側に存在する複数の画素ｕ（ｊ）のうち、注目位置Ｐ０に最も近い画素ｕ（ｊ）の値ｊとして０（ゼロ）が使用される。そして、左へ向かうにつれ値ｊが１ずつ減少し、右へ向かうにつれ値ｊが１ずつ増加する。本実施例では、１２個の値ｊ＝−５〜＋６にそれぞれ対応する１２個の画素ｕ（ｊ）からなる画像領域が、判断エリアとして使用される。そして、１２個の画素ｕ（ｊ）にそれぞれ対応する１２個の階調変化値ＹＧｕ（ｊ）が得られる。
【００３９】
まず、階調変化判断部３０１は、以下の式２を用いて、画素ｕ（ｊ）の輝度値ｙｕ（ｊ
）と、画素ｕ（ｊ）に対して左側に隣接する画素ｕ（ｊ−１）の輝度値ｙｕ（ｊ−１）との差ｙｇｕｌ（ｊ）を算出する。
ｙｇｕｌ（ｊ）＝ｙｕ（ｊ）−ｙｕ（ｊ−１）  ・・・（式２）
【００４０】
次に、階調変化判断部３０１は、差ｙｇｕｌ（ｊ）に基づいて、画素ｕ（ｊ−１）から画素ｕ（ｊ）へかけての階調値の変化を判断する。具体的には、階調変化判断部３０１は、差ｙｇｕｌ（ｊ）に基づいて、階調値の変化が「ＵＰ」であるか「ＤＯＷＮ」であるかを判断する。「ＵＰ」は、画素ｕ（ｊ−１）から画素ｕ（ｊ）へかけて輝度値ＹＤＡＴＡ（階調値）が増加していることを意味する。「ＤＯＷＮ」は、画素ｕ（ｊ−１）から画素ｕ（ｊ）へかけて輝度値ＹＤＡＴＡが減少していることを意味する。
【００４１】
本実施例では、差ｙｇｕｌ（ｊ）が正の値である場合に、階調変化判断部３０１は、階調値の変化が「ＵＰ」であると判断し、階調変化値ＹＧｕ（ｊ）＝０を設定する。差ｙｇｕｌ（ｊ）が負の値である場合に、階調変化判断部３０１は、階調値の変化が「ＤＯＷＮ」であると判断し、階調変化値ＹＧｕ（ｊ）＝１を設定する。差ｙｇｕｌ（ｊ）が０（ゼロ）である場合に、階調変化判断部３０１は、画素ｕ（ｊ−１）に対する判断結果と同じ判断結果を、画素ｕ（ｊ）に対する判断結果として採用し、階調変化値ＹＧｕ（ｊ）として階調変化値ＹＧｕ（ｊ−１）と同じ値を設定する。
【００４２】
階調変化判断部３０１は、上述した１２個の画素ｕ（ｊ）のそれぞれについて、上述した処理を行う。なお、階調変化判断部３０１の処理は上記処理に限られない。例えば、差ｙｇｕｌ（ｊ）が階調変化値ＹＧｕ（ｊ）として使用されてもよい。差ｙｇｕｌ（ｊ）が増加閾値よりも大きい場合に、階調値の変化が「ＵＰ」であると判断され、差ｙｇｕｌ（ｊ）が減少閾値よりも小さい場合に、階調値の変化が「ＵＰ」であると判断されてもよい。そして、それら以外の場合に、画素ｕ（ｊ−１）に対する判断結果と同じ判断結果が、画素ｕ（ｊ）に対する判断結果として採用されてもよい。増加閾値としては０（ゼロ）以上の値を使用することができる。減少閾値としては０（ゼロ）以下の値を使用することができる。増加閾値＝減少閾値＝０（ゼロ）であってもよい。
【００４３】
図５，６を用いて、階調変化判断部３０１の処理の具体例を説明する。図５は、周期パターンを含まない画像領域内に注目位置Ｐ０が設定された場合の例を示す。図６は、周期パターンを含む画像領域内に注目位置Ｐ０が設定された場合の例を示す。周期パターンは、画像空間内に同じ絵柄が周期的に並べられたパターンである。周期パターンは、「画像空間内において画素値が周期的に変化するパターン」とも言うことができる。
【００４４】
輝度値ｙｕ（ｊ）（輝度値ＹＤＡＴＡ）のビット数は特に限定されないが、図５，６は、輝度値ｙｕ（ｊ）が８ビットの値（０〜２５５）である場合の例を示す。そして、図５，６では、輝度値ｙｕ（ｊ）の増加に伴い色が白色から黒色へ変化するように、輝度値ｙｕ（ｊ）が色で表現されている。図５，６には、輝度値ｙｕ（ｊ）を表現する色と、輝度値ｙｕ（ｊ）の具体的な値との対応関係も示されている。図５，６において、右上がり矢印が対応付けられた画素ｕ（ｊ）は、階調値の変化が「ＵＰ」であると判断された画素であり、右下がり矢印が対応付けられた画素ｕ（ｊ）は、階調値の変化が「ＤＯＷＮ」であると判断された画素である。
【００４５】
図５を用いて、判断結果「ＤＯＷＮ」が得られる例を説明する。図５の画素ｕ（−２）に関する処理ついて説明する。画素ｕ（−２）の輝度値ｙｕ（−２）は１７０であり、画素ｕ（−３）の輝度値ｙｕ（−３）は２１２である。そのため、差ｙｇｕｌ（−２）＝１７０−２１２＝−４２が算出され、階調変化値ＹＧｕ（−２）＝１（ＤＯＷＮ）が設定さ
れる。図５の画素ｕ（−１）に関する処理ついて説明する。画素ｕ（−１）の輝度値ｙｕ（−１）は、輝度値ｙｕ（−２）と同じ１７０である。そのため、差ｙｇｕｌ（−１）＝１７０−１７０＝０が算出され、階調変化値ＹＧｕ（−１）＝階調変化値ＹＧｕ（−２）＝１（ＤＯＷＮ）が設定される。図６を用いて、判断結果「ＵＰ」が得られる例を説明する。図６の画素ｕ（＋１）に関する処理ついて説明する。画素ｕ（＋１）の輝度値ｙｕ（＋１）は４２であり、画素ｕ（０）の輝度値ｙｕ（０）は０である。そのため、差ｙｇｕｌ（＋１）＝４２−０＝４２が算出され、階調変化値ＹＧｕ（＋１）＝０（ＵＰ）が設定される。
【００４６】
極値点検出部３０２は、階調変化判断部３０１によって得られた階調変化値ＹＧｕ（ｊ）に基づいて、判断エリアにおける複数の画素から極大画素と極小画素を検出する。そして、極値点検出部３０２は、極大画素と極小画素の検出結果を示す極値判断値Ｍｕ（ｊ）を、極値点距離算出３０３へ出力する。本実施例では、以下の条件１が満たされる場合に、極値点検出部３０２は、画素ｕ（ｊ）が極大画素であると判断し、極値判断値Ｍｕ（ｊ）＝１を設定する。以下の条件２が満たされる場合に、極値点検出部３０２は、画素ｕ（ｊ）が極小画素であると判断し、極値判断値Ｍｕ（ｊ）＝２を設定する。そして、以下の条件１，２が満たされない場合に、極値点検出部３０２は、画素ｕ（ｊ）が極大画素でも極小画素でもないと判断し、極値判断値Ｍｕ（ｊ）＝０を設定する。
条件１：階調変化値ＹＧｕ（ｊ）＝１（ＤＯＷＮ）、且つ、階調変化値ＹＧｕ（ｊ−１）＝０（ＵＰ）
条件２：階調変化値ＹＧｕ（ｊ）＝０（ＵＰ）、且つ、階調変化値ＹＧｕ（ｊ−１）＝１（ＤＯＷＮ）
【００４７】
図６を用いて、極値点検出部３０２の処理の具体例を説明する。図６の画素ｕ（−３）に関する処理ついて説明する。画素ｕ（−３）の階調変化値ＹＧｕ（−３）は１（ＤＯＷＮ）であり、画素ｕ（−４）の階調変化値ＹＧｕ（−４）は０（ＵＰ）である。即ち、画素ｕ（−３）については条件１が満たされる。そのため、画素ｕ（−３）が極大画素であると判断され、極値判断値Ｍｕ（−３）＝１が設定される。図６の画素ｕ（＋１）に関する処理ついて説明する。画素ｕ（＋１）の階調変化値ＹＧｕ（＋１）は０（ＵＰ）であり、画素ｕ（０）の階調変化値ＹＧｕ（０）は１（ＤＯＷＮ）である。即ち、画素ｕ（＋１）については条件２が満たされる。そのため、画素ｕ（＋１）が極大画素であると判断され、極値判断値Ｍｕ（＋１）＝２が設定される。図６の画素ｕ（−１）に関する処理ついて説明する。画素ｕ（−１）の階調変化値ＹＧｕ（−１）は１（ＤＯＷＮ）であり、画素ｕ（−２）の階調変化値ＹＧｕ（−２）も１（ＤＯＷＮ）である。即ち、画素ｕ（−１）については条件１も条件２も満たされていない。そのため、画素ｕ（−１）が極大画素でも極小画素でもないと判断され、極値判断値Ｍｕ（−１）＝０が設定される。なお、図５の例では、全ての画素ｕ（ｊ）について階調変化値ＹＧｕ（ｊ）＝１（ＤＯＷＮ）であるため、極大画素も極小画素も検出されない。
【００４８】
なお、極大画素と極小画素の検出方法は上記方法に限られない。例えば、画像空間内における階調値の変化を検出する他の方法を用いて、極大画素と極小画素が検出されてもよい。
【００４９】
極値点距離算出３０３は、極値点検出部３０２によって得られた極値判断値Ｍｕ（ｊ）に基づいて、極大点距離と極小点距離との少なくとも一方を算出する。そして、極値点距離算出３０３は、極大点距離と極小点距離の算出結果に基づいて極値点距離ＩＮＶＡＬを決定し、極値点距離ＩＮＶＡＬをオフセット値決定部２０５へ出力する。
【００５０】
本実施例では、水平方向（所定方向）での輝度値ＹＤＡＴＡの変化に基づいて極大画素と極小画素検出される。そのため、極値点距離算出３０３は、水平方向（所定方向）において隣り合う２つの極大画素の間の距離を、極大点距離として算出し、水平方向（所定方向）において隣り合う２つの極小画素の間の距離を、極小点距離として算出する。具体的には、極値点距離算出３０３は、水平方向（所定方向）において注目位置Ｐ０を挟み、且つ、水平方向（所定方向）において隣り合う２つの極大画素の間の距離を、極大点距離として算出する。そして、極値点距離算出３０３は、水平方向（所定方向）において注目位置Ｐ０を挟み、且つ、水平方向（所定方向）において隣り合う２つの極小画素の間の距離を、極小点距離として算出する。
【００５１】
極大点距離と極小点距離の一方のみが算出された場合には、極値点距離算出３０３は、算出された距離を極値点距離ＩＮＶＡＬとして決定する。極大点距離と極小点距離の両方が算出された場合には、極値点距離算出３０３は、極大点距離と極小点距離を代表する代表距離を極値点距離ＩＮＶＡＬとして決定する。本実施例では、代表距離として、極大点距離と極小点距離のうちの小さい方が使用される。極大点距離も極小点距離も算出されなかった場合には、極値点距離算出３０３は、所定の値を極値点距離ＩＮＶＡＬとして決定する。所定の値は、エッジの検出感度が部分的に変更されない値であればよい。本実施例では、所定の値として、ブロック距離ｎの最大値（＋１６）を２倍することで得られる値（３２）が使用される。
【００５２】
図５，６を用いて、極値点距離算出３０３の処理の具体例を説明する。図５の例では、極大画素も極小画素も検出されないため、極値点距離ＩＮＶＡＬ＝３２が得られる。図６の例では、隣り合う画素ｕ（−３）と画素ｕ（＋５）が極大画素である。そして、水平方向において、画素ｕ（−３）と画素ｕ（＋５）は注目位置Ｐ０を挟む。そのため、極大点距離＝８が得られる。図６の例では、極小画素は画素ｕ（＋１）のみであるため、極小点距離は得られない。そのため、図６の例では、極値点距離ＩＮＶＡＬ＝極大点距離＝８が得られる。
【００５３】
なお、極値点距離ＩＮＶＡＬの判断方法は上記方法に限られない。例えば、極大点距離が極値点距離ＩＮＶＡＬとして常に使用されてもよいし、極小点距離が極値点距離ＩＮＶＡＬとして常に使用されてもよい。極大点距離が極値点距離ＩＮＶＡＬとして常に使用される場合には、極小画素は検出されなくてもよい。極小点距離が極値点距離ＩＮＶＡＬとして常に使用される場合には、極大画素は検出されなくてもよい。代表距離は、極大点距離と極小点距離のうちの大きい方、極大点距離と極小点距離の平均距離、極大点距離と極小点距離の中間距離、等であってもよい。
【００５４】
隣り合う２つの極大画素の複数の組み合わせのそれぞれについて、対応する２つの極大画素の間の距離が算出されてもよい。そして、算出された複数の距離を代表する距離（最小距離、最大距離、平均距離、最頻距離、中間距離、等）が、極大点距離として使用されてもよい。平均距離、最頻距離、中間距離、等が使用されれば、極大点距離や極小点距離に対するノイズの影響を低減することができる。同様に、隣り合う２つの極小画素の複数の組み合わせのそれぞれについて、対応する２つの極小画素の間の距離が算出されてもよい。そして、算出された複数の距離を代表する距離が、極小点距離として使用されてもよい。極大点距離と極小点距離の両方が得られた場合には、極大点距離と極小点距離の両方を示す情報が極値点距離ＩＮＶＡＬの代わりに出力されてもよい。
【００５５】
エッジ検出部１０１の説明に戻る。オフセット値決定部２０５は、極値点距離判断部２０４によって判断された距離（極大点距離と極小点距離の少なくとも一方）に基づいて、エッジの検出感度を設定する。本実施例では、オフセット値決定部２０５は、極値点距離算出３０３によって得られた極値点距離ＩＮＶＡＬに応じて、エッジの検出感度を設定す
る。本実施例では、オフセット値決定部２０５は、検出感度として、ブロックマッチング部２０３によって得られたＳＡＤ値（ブロックマッチングの結果）を補正する補正パラメータであるオフセット値ＯＦＳＴ（ｎ）を設定（決定）する。具体的には、オフセット値決定部２０５は、ブロックマッチング部２０３によって得られた１７個のＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ）をそれぞれ補正する１７個のオフセット値ＯＦＳＴ（ｎ）を決定する。そして、オフセット値決定部２０５は、決定したオフセット値ＯＦＳＴ（ｎ）をＳＡＤオフセット部２０６へ出力する。なお、検出感度として、上記補正パラメータとは異なる値が決定されてもよい。例えば、「高」、「中」、「低」などが検出感度として決定されてもよい。
【００５６】
本実施例では、画像処理装置が不図示の記憶部を有しており、当該記憶部に、極値点距離ＩＮＶＡＬの取り得る複数の距離にそれぞれ対応する複数のオフセットテーブルＯＦＳ＿ＴＢＬが予め記録されている。オフセットテーブルＯＦＳ＿ＴＢＬは、ブロック距離ｎとオフセット値ＯＦＳＴ（ｎ）の対応関係を示すテーブルである。なお、オフセットテーブルＯＦＳ＿ＴＢＬの代わりに、ブロック距離ｎとオフセット値ＯＦＳＴ（ｎ）の対応関係を示す関数などが使用されてもよい。
【００５７】
オフセット値決定部２０５は、極値点距離算出３０３によって得られた極値点距離ＩＮＶＡＬに対応するオフセットテーブルＯＦＳ＿ＴＢＬを、上述した記憶部から読み出す（オフセットテーブルＯＦＳ＿ＴＢＬの選択）。そして、オフセット値決定部２０５は、読み出したオフセットテーブルＯＦＳ＿ＴＢＬに従って、オフセット値ＯＦＳＴ（ｎ）を決定する。
【００５８】
詳細は後述するが、本実施例では、オフセット値ＯＦＳＴ（ｎ）が大きいほど大きい低減度合いで、ブロック距離ｎに対応するエッジの検出感度が低減される。即ち、オフセット値ＯＦＳＴ（ｎ）が大きいほど、ブロック距離ｎに対応するエッジの検出感度は低い。そのため、オフセット値ＯＦＳＴを設定する処理は、「検出感度を設定する処理」と言うことができる。
【００５９】
ブロック距離ｎとエッジの検出感度との対応関係は特に限定されないが、本実施例では、以下の条件３が満たされるように、オフセット値ＯＦＳＴ（ｎ）が設定（決定）される。条件３において、「第１距離」は「極値点距離判断部２０４によって判断された距離に基づく距離」である。本実施例では、「第１距離」は極値点距離ＩＮＶＡＬである。なお、「第１距離」は極値点距離ＩＮＶＡＬと異なっていてもよい。第１範囲は、「｜ｎ｜が極値点距離ＩＮＶＡＬの１／２以下のブロック距離ｎの範囲」とも言うこともできる。
条件３：注目位置Ｐ０からの距離（｜ｎ｜の１／２）が第１距離以下の第１範囲に対応するエッジの検出感度は、注目位置Ｐ０からの距離が第１距離よりも長い第２範囲に対応するエッジの検出感度よりも高い。
【００６０】
具体的には、第２範囲は、注目位置Ｐ０からの距離が第１距離よりも長く且つ第２距離よりも短い第３範囲と、注目位置Ｐ０からの距離が第２距離以上の第４範囲と、を含む。そして、以下の条件４〜６が満たされるように、オフセット値ＯＦＳＴ（ｎ）が設定（決定）される。
条件４：第１範囲に対応するエッジの検出感度として、第１検出感度が使用される。
条件５：第３範囲に対応するエッジの検出感度として、注目位置Ｐ０からの距離の増加に伴い第１検出感度から第２検出感度へ低下する検出感度が使用される。
条件６：第４範囲に対応するエッジの検出感度として、第２検出感度が使用される。
【００６１】
条件４〜６を満たすオフセット値ＯＦＳＴ（ｎ）の算出式は、例えば、以下の式３である。式３において、「ＡＴＨ」は第２範囲を第３範囲と第４範囲に分ける閾値である。「｜ｎ｜≦ＩＮＶＡＬ／２」は第１範囲に対応し、「ＯＦＳＴ（ｎ）＝０」は第１検出感度に対応する。「｜ｎ｜≧ＡＴＨ」は第４範囲に対応し、「ＯＦＳＴ（ｎ）＝ＯＦＳＴ＿ＭＡＸ」は第２検出感度に対応する。「ＩＮＶＡＬ／２＜｜ｎ｜＜ＡＴＨ」は第３範囲に対応し、「ＯＦＳＴ（ｎ）＝ｍ」は｜ｎ｜の増加に伴い第１検出感度から第２検出感度へ低下する検出感度に対応する。
｜ｎ｜＜ＩＮＶＡＬ／２の場合：ＯＦＳＴ（ｎ）＝０
ＩＮＶＡＬ／２＜｜ｎ｜＜ＡＴＨの場合：ＯＦＳＴ（ｎ）＝ｍ
｜ｎ｜≧ＡＴＨの場合：ＯＦＳＴ＿ＭＡＸ
・・・（式３）
【００６２】
図７は、極値点距離ＩＮＶＡＬ＝８に対応するオフセットテーブルＯＦＳ＿ＴＢＬの一例を示す図である。図７の例では、閾値ＡＴＨが８（＝ＩＮＶＡＬ）である。極値点距離ＩＮＶＡＬが８であるため、−４≦ｎ≦＋４の範囲が第１範囲であり、−４≦ｎ≦＋４の範囲においてオフセット値ＯＦＳＴ（ｎ）＝０が設定されている。閾値ＡＴＨが８であるため、ｎ≧＋８の範囲とｎ≦−８の範囲とが第４範囲であり、ｎ≧＋８の範囲とｎ≦−８の範囲とにおいてオフセット値ＯＦＳＴ（ｎ）＝ＯＦＳＴ＿ＭＡＸ＝５０が設定されている。そして、＋４＜ｎ＜＋８の範囲が第３範囲であり、＋４＜ｎ＜＋８の範囲において、ブロック距離ｎの増加に伴い０から５０へ線形に増加するオフセット値ＯＦＳＴ（ｎ）が設定されている。−８＜ｎ＜−４の範囲も第３範囲であり、−８＜ｎ＜−４の範囲において、ブロック距離ｎの増加に伴い５０から０へ線形に低下するオフセット値ＯＦＳＴ（ｎ）が設定されている。
【００６３】
なお、閾値ＡＴＨ、第１検出感度に対応するオフセット値ＯＦＳＴ（ｎ）、及び、第２検出感度に対応するオフセット値ＯＦＳＴ（ｎ）は、上記値に限られない。オフセット値決定部２０５の処理は上記処理に限られない。例えば、ブロック距離ｎとオフセット値ＯＦＳＴ（ｎ）の対応関係を示す複数の情報（テーブルや関数）の代わりに、式３のような関数が予め定められていてもよい。その場合には、ユーザによって指定された任意の値が閾値ＡＴＨとして設定されてもよいし、入力画像ＩＤの種類、表示部の使用環境、等に応じて閾値ＡＴＨが自動で設定されてもよい。同様に、ユーザによって指定された任意の値がオフセット値ＯＦＳＴ＿ＭＡＸとして設定されてもよいし、入力画像ＩＤの種類、表示部の使用環境、等に応じてオフセット値ＯＦＳＴ＿ＭＡＸが自動で設定されてもよい。第３範囲において、オフセット値ＯＦＳＴ（ｎ）は、｜ｎ｜の増加に伴い非線形に増加してもよい。条件３が満たされ、且つ、条件４が満たされないように、オフセット値ＯＦＳＴ（ｎ）が決定されてもよい。
【００６４】
ＳＡＤオフセット部２０６は、オフセット値決定部２０５によって得られたオフセット値ＯＦＳＴ（ｎ）を用いて、ブロックマッチング部２０３によって得られたＳＡＤ値（ブロックマッチングの結果）を補正する。本実施例では、ＳＡＤオフセット部２０６は、ブロックマッチング部２０３により算出された１７個のＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ）を、オフセット値決定部２０５により決定された１７個のオフセット値ＯＦＳＴ（ｎ）を用いて補正する。具体的には、以下の式４に示すように、ＳＡＤオフセット部２０６は、ＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ）にオフセット値ＯＦＳＴ（ｎ）を加算することにより、補正後のＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ＿ＯＦＳＴ（ｎ）を算出する。そして、ＳＡＤオフセット部２０６は、ＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ＿ＯＦＳＴ（ｎ）をマッチング角度決
定部２０７へ出力する。
ＳＡＤ＿ＡＲＲＡＹ＿ＯＦＳＴ（ｎ）＝ＳＡＤ＿ＡＲＲＡＹ（ｎ）
＋ＯＦＳＴ（ｎ）
・・・（式４）
【００６５】
なお、本実施例では、ＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ）を補正する補正パラメータとして、ＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ）に加算するオフセット値ＯＦＳＴ（ｎ）が決定される例を説明したが、これに限らない。例えば、ＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ）に乗算するゲイン値が、ＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ）を補正する補正パラメータとして決定されてもよい。
【００６６】
マッチング角度決定部２０７は、ＳＡＤオフセット部２０６から出力された１７個のＳＡＤ＿ＡＲＲＡＹ＿ＯＦＳＴ（ｎ）（ブロックマッチングの補正後の結果）に基づいて、入力画像ＩＤからエッジを検出する。本実施例では、マッチング角度決定部２０７は、ＳＡＤオフセット部２０６から出力された１７個のＳＡＤ＿ＡＲＲＡＹ＿ＯＦＳＴ（ｎ）の最小値ＳＡＤｍｉｎに応じて、角度情報ＡＮＧＬＥを決定する。そして、マッチング角度決定部２０７は、決定した角度情報ＡＮＧＬＥをスケーラ部１０２に出力する。具体的には、マッチング角度決定部２０７は、最小値ＳＡＤｍｉｎであるＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ＿ＯＦＳＴ（ｎ）のｎを、角度情報ＡＮＧＬＥとして決定する。例えば、ＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ＿ＯＦＳＴ（ｎ）の分布が図８に示す分布であった場合には、角度情報ＡＮＧＬＥ＝−４が得られる。
【００６７】
このように、本実施例では、極値点距離判断部２０４によって判断された距離（極大点距離と極小点距離の少なくとも一方）に基づいて補正された後のＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ＿ＯＦＳＴ（ｎ）を用いて、入力画像ＩＤからエッジが検出される。そのため、ＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ＿ＯＦＳＴ（ｎ）に基づいて角度情報ＡＮＧＬＥを決定する処理は、「極値点距離判断部２０４によって判断された距離に基づく検出感度で入力画像ＩＤからエッジを検出する処理」と言うことができる。ＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ＿ＯＦＳＴ（ｎ）に基づいて角度情報ＡＮＧＬＥを決定する処理は、「オフセット値決定部２０５によって設定（決定）された検出感度で入力画像ＩＤからエッジを検出する処理」ということもできる。
【００６８】
なお、極値点距離判断部２０４によって判断された距離に基づく検出感度でエッジが検出されれば、エッジの検出方法は特に限定されない。例えば、検出感度を設定する処理、ＳＡＤ値を補正する処理、等が省略されてもよい。具体的には、画像処理装置が、オフセット値決定部２０５、ＳＡＤオフセット部２０６、等を有していなくてもよい。そして、ＳＡＤオフセット部２０６が、極値点距離ＩＮＶＡＬと補正前のＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ）とに基づいてエッジを検出してもよい。
【００６９】
次に、本実施例により得られる効果の具体例について説明する。ここで、複数のＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（補正前のＳＡＤ値）の最小値が上記最小値ＳＡＤｍｉｎとして使用される場合を考える。周期パターンを含む画像領域内に注目位置Ｐ０が設定された場合には、最小値ＳＡＤｍｉｎとして複数のＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ）が検出されることがある。最小値ＳＡＤｍｉｎとして複数のＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ）が検出された場合には、最小値ＳＡＤｍｉｎである複数のＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ）のどれが正確なエッジに対応するのかを判断することができない。そのため、エッジが誤検出されることがある。
【００７０】
閾値以下の複数のＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ）のうち、注目位置Ｐ０に近い位置（｜ｎ｜が小さいブロック距離ｎ）に対応するＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ）を優先して選択する方法もある。しかしながら、非常に浅い斜め線の画像領域内に注目位置Ｐ０が設定された場合には、当該斜め線に対応するＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ）だけでなく、他のＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ）が小さい値となることがある。例えば、水平方向のエッジ（｜ｎ｜＝０）に対応するＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（０）が小さい値となることがある。そのため、注目位置Ｐ０に近い位置を優先する上記方法では、非常に浅い斜め線に対応するエッジではなく、水平方向のエッジが誤検出されることがある。
【００７１】
そこで、本実施例では、極大点距離と極小点距離との少なくとも一方を用いて、正確なエッジに対応するＳＡＤ値のみが最小値ＳＡＤｍｉｎとなるように、検出感度を調整する。
【００７２】
図９（Ａ）は、画像空間内に右上斜め線が周期的に並べられた周期パターンの一例を示す図である。図９（Ｂ）は、図９（Ａ）の周期パターンの一部を示す図である。図９（Ｃ）は、図９（Ｂ）の周期パターンの階調分布（輝度値ＹＤＡＴＡの分布）の一例を示す図である。図９（Ｂ），９（Ｃ）のバツ印は注目位置Ｐ０を示す。図９（Ｂ）には、注目位置Ｐ０に対して上側に隣接する２ラインと、注目位置Ｐ０に対して下側に隣接する２ラインとが示されている。図９（Ｃ）には、注目位置Ｐ０の上側における階調分布と、注目位置Ｐ０の下側における階調分布とが示されている。ここでは、極値点距離ＩＮＶＡＬ＝１８が得られたとする。
【００７３】
図９（Ｃ）の四角は、ＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ）が最小となる参照ブロックペアを示す。図９（Ｃ）から、ＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ）が最小となる参照ブロックペアが２つ存在することがわかる。２つの参照ブロックペアの一方は、｜ｎ｜が極値点距離ＩＮＶＡＬの１／２以下のブロック距離ｎに対応し、図９（Ｂ）の黒矢印方向のエッジに対応する。２つの参照ブロックペアの他方は、｜ｎ｜が極値点距離ＩＮＶＡＬの１／２よりも大きいブロック距離ｎに対応し、図９（Ｂ）の白矢印方向のエッジに対応する。黒矢印方向は、右上斜め線の方向に対応する正確な方向であるが、白矢印方向は、右上斜め線の方向に対応しない正確な方向である。そのため、複数のＳＡＤ値ＳＡＤ＿ＡＲＲＡＹの最小値が上記最小値ＳＡＤｍｉｎとして使用される上記方法では、白矢印方向のエッジが誤検出される。
【００７４】
そこで、本実施例では、｜ｎ｜が極値点距離ＩＮＶＡＬの１／２よりも大きいブロック距離ｎに対応するエッジの検出感度を低減する。それにより、白矢印方向のエッジをより確実に検出することができる。
【００７５】
図１０（Ａ）は、図９（Ｂ）の画像（周期パターン）から得られたＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ）の分布を示す図である。図１０（Ａ）では、ブロック距離ｎ＝−１２に対応するＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（−１２）と、ブロック距離ｎ＝＋４に対応するＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（＋４）とが最小となっている。ＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（−１２）（ブロック距離ｎ＝−１２）は図９（Ｂ）の白矢印方向のエッジに対応し、ＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（＋４）（ブロック距離ｎ＝＋４）は図９（Ｂ）の黒矢印方向のエッジに対応する。
【００７６】
図１０（Ｂ）は、極値点距離ＩＮＶＡＬ＝１８から得られたオフセット値ＯＦＳＴ（ｎ）の分布を示す図である。図１０（Ｂ）では、ブロック距離ｎ＝−１２に対応するオフセット値ＯＦＳＴ（−１２）は、ブロック距離ｎ＝＋４に対応するオフセット値ＯＦＳＴ（＋４）よりも大きい。そのため、ブロック距離ｎ＝−１２に対応するエッジの検出感度が、ブロック距離ｎ＝＋４に対応するエッジの検出感度よりも低い検出感度に低減される。
【００７７】
図１０（Ｃ）は、図１０（Ｂ）のオフセット値ＯＦＳＴ（ｎ）を用いて図１０（Ａ）のＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ）を補正して得られたＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ＿ＯＦＳＴ（ｎ）の分布を示す図である。図１０（Ｃ）では、ブロック距離ｎ＝＋４に対応するＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ＿ＯＦＳＴ（＋４）のみが最小となっている。そのため、複数のＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ＿ＯＦＳＴ（ｎ）の最小値を上記最小値ＳＡＤｍｉｎとして使用することで、図９（Ｂ）の白矢印方向のエッジが誤検出されることを抑制することができ、図９（Ｂ）の黒矢印方向のエッジを検出することができる。
【００７８】
図１１（Ａ）は、非常に浅い斜め線の画像の一例を示す図である。図１１（Ｂ）は、図１１（Ａ）の画像から得られたＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ）の分布を示す図である。図１１（Ｂ）では、ブロック距離ｎ＝−１２に対応するＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（−１２）のみが最小となっている。ブロック距離ｎ＝−１２は、非常に浅い斜め線（正確なエッジ）に対応する。しかしながら、ブロック距離ｎ＝０に対応するＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（０）も非常に小さい。ブロック距離ｎ＝０は、水平方向のエッジに対応する。そのため、注目位置Ｐ０に近い位置を優先する上記方法では、非常に浅い斜め線に対応するエッジではなく、水平方向のエッジが誤検出される。
【００７９】
非常に浅い斜め線の画像では、極大画素や極小画素は検出されず、極値点距離ＩＮＶＡＬとして大きい値が設定される。そのため、図１１（Ｃ）に示すように、全てのブロック距離ｎについてオフセット値ＯＦＳＴ（ｎ）＝０が設定され、エッジの検出感度が均一となる。その結果、ＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ＿ＯＦＳＴ（ｎ）の分布として、図１１（Ａ）の分布と同じ分布が得られる。そして、本実施例では、複数のＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ＿ＯＦＳＴ（ｎ）の最小値ＳＡＤｍｉｎに対応するエッジが検出されるため、水平のエッジが誤検出されることを抑制することができ、非常に浅い斜め線に対応するエッジを検出することができる。
【００８０】
このように、本実施例によれば、極大点距離と極小点距離との少なくとも一方を用いて検出感度を調整することにより、様々な場合において、エッジの誤検出を抑制することができ、エッジを高精度に検出することができる。
【００８１】
次に、スケーラ部１０２について詳しく説明する。図１２は、スケーラ部１０２で行われるスケーラ処理の一例を示す図である。スケーラ処理では、入力画像ＩＤに画素が存在しない位置に対して、補間画素（ＳＣ補間画素）が生成される。図１２において、「Ｐ０」は注目位置を示し、「Ｐ１」はＳＣ補間位置（ＳＣ補間画素の生成位置）を示す。注目位置Ｐ０は特に限定されないが、本実施例では、図１２に示すように、入力画像ＩＤの２行２列の４画素の中心位置が注目位置として使用される。注目位置Ｐ０は、ＳＣ補間位置Ｐ１に最も近い注目位置である。ＳＣ補間位置Ｐ１は、スケーラ処理の拡大率や縮小率に依存する。図１２において、「ｉｘ＿ｉ」は、入力画像ＩＤの画素の水平位置を示すための整数値であり、「ｉｙ＿ｉ」は、入力画像ＩＤの画素の垂直位置（垂直方向の位置）を示すための整数値である。また、「ｉｘ＿ｓ」は、ＳＣ補間位置Ｐ１の水平位置を示すための小数値であり、「ｉｙ＿ｓ」は、ＳＣ補間位置Ｐ１の垂直位置を示すための小数値である。ＳＣ補間位置Ｐ１の座標（水平位置，垂直位置）は、（ｉｘ＿ｉ＋ｉｘ＿ｓ，ｉｙ＿ｉ＋ｉｙ＿ｓ）で表すことができる。
【００８２】
本実施例では、スケーラ処理において、角度情報ＡＮＧＬＥに基づいて、入力画像ＩＤの４つ画素Ｕ１，Ｕ２，Ｄ１，Ｄ２が選択される。そして、選択された４つの画素Ｕ１，Ｕ２，Ｄ１，Ｄ２の画素値を用いて、ＳＣ補間位置Ｐ１の画素値ＤＯＵＴが算出される。その後、算出された画素値ＤＯＵＴが、画像ＯＤの画素値として出力される。
【００８３】
画素Ｕ１，Ｕ２は、ＳＣ補間位置Ｐ１の１つ上のライン上の画素であり、画素Ｄ１，Ｄ２は、ＳＣ補間位置Ｐ１の１つ下のライン上の画素である。本実施例では、角度情報ＡＮＧＬＥに基づいて画素Ｕ１，Ｄ１が選択される。画素Ｕ１，Ｄ１は、角度情報ＡＮＧＬＥが示すエッジの方向において注目位置Ｐ０に隣接する画素である。そして、画素Ｕ１，Ｄ１の水平位置をＳＣ補間位置Ｐ１の側に１画素分だけシフトさせることにより、画素Ｕ２，Ｄ２が選択される。画素Ｕ１，Ｕ２，Ｄ１，Ｄ２の水平位置Ｕ１（ｘ），Ｕ２（ｘ），Ｄ１（ｘ），Ｄ２（ｘ）は、以下の式５を用いて算出できる。式５において、「ＩＮＴ（Ｘ）」は、Ｘの整数部分を得る関数である。
Ｕ１（ｘ）＝ＩＮＴ（ｉｘ＿ｉ＋ｉｘ＿ｓ＋ＡＮＧＬＥ×ｉｙ＿ｓ）
Ｕ２（ｘ）＝Ｕ１（ｘ）＋１
Ｄ１（ｘ）＝Ｕ１（ｘ）−ＡＮＧＬＥ
Ｄ２（ｘ）＝Ｄ１（ｘ）＋１
・・・（式５）
【００８４】
図１２の「ｋ」は、ＳＣ補間位置Ｐ１の画素値を算出する際に用いるパラメータであり、画素Ｕ１，Ｕ２，Ｄ１，Ｄ２の画素値の重みを決定するためのパラメータである。図１２に示すように、パラメータｋは、第１位置と画素Ｕ１との間の距離である。第１位置は、ＳＣ補間位置Ｐ１の１つ上のライン上の位置であり、角度情報ＡＮＧＬＥが示すエッジの方向においてＳＣ補間位置Ｐ１に隣接する位置である。パラメータｋは、第２位置と画素Ｄ２との間の距離でもある。第２位置は、ＳＣ補間位置Ｐ１の１つ下のライン上の位置であり、角度情報ＡＮＧＬＥが示すエッジの方向においてＳＣ補間位置Ｐ１に隣接する位置である。パラメータｋは、以下の式６を用いて算出される。
ｋ＝（ｉｘ＿ｓ＋ＡＮＧＬＥ×ｉｙ＿ｓ）
−ＩＮＴ（ｉｘ＿ｓ＋ＡＮＧＬＥ×ｉｙ＿ｓ）
・・・（式６）
【００８５】
そして、画素Ｕ１，Ｕ２，Ｄ１，Ｄ２の画素値をパラメータｋに基づく重み（ＳＣ補間位置Ｐ１からの距離に基づく重み）で重み付け合成することにより、ＳＣ補間位置Ｐ１の画素値ＤＯＵＴが算出される。具体的には、以下の式７を用いて画素値ＤＯＵＴが算出される。式７において、「ＰＤ（Ｕ１（ｘ），ｉｙ＿ｉ）」は画素Ｕ１の画素値、「ＰＤ（Ｕ２（ｘ），ｉｙ＿ｉ）」は画素Ｕ２の画素値、「ＰＤ（Ｄ１（ｘ），ｉｙ＿ｉ＋１）」は画素Ｄ１の画素値、「ＰＤ（Ｄ２（ｘ），ｉｙ＿ｉ＋１）」は画素Ｄ２の画素値である。
ＤＯＵＴ＝（ＰＤ（Ｕ１（ｘ），ｉｙ＿ｉ）×（１−ｋ）
＋ＰＤ（Ｕ２（ｘ），ｉｙ＿ｉ）×ｋ）×（１−ｉｙ＿ｓ）
＋（ＰＤ（Ｄ１（ｘ），ｉｙ＿ｉ＋１）×ｋ
＋ＰＤ（Ｄ２（ｘ）、ｉｙ＿ｉ＋１）×（１−ｋ））×ｉｙ＿ｓ
・・・（式７）
【００８６】
式７によれば、画素値ＰＤ（Ｕ１（ｘ），ｉｙ＿ｉ）の重みとして「１−ｋ」（第１位置と画素Ｕ２の間の距離）が使用され、画素値ＰＤ（Ｕ２（ｘ），ｉｙ＿ｉ）の重みとして「ｋ」（第１位置と画素Ｕ１の間の距離）が使用される。それらの重みを用いて、画素値ＰＤ（Ｕ１（ｘ），ｉｙ＿ｉ）と画素値ＰＤ（Ｕ２（ｘ），ｉｙ＿ｉ）が重み付け合成され、第１合成値が算出される。
【００８７】
また、画素値ＰＤ（Ｄ１（ｘ），ｉｙ＿ｉ＋１）の重みとして「ｋ」（第２位置と画素Ｄ２の間の距離）が使用され、画素値ＰＤ（Ｄ２（ｘ），ｉｙ＿ｉ＋１）の重みとして「１−ｋ」（第２位置と画素Ｄ１の間の距離）が使用される。それらの重みを用いて、画素値ＰＤ（Ｄ１（ｘ），ｉｙ＿ｉ＋１）と画素値ＰＤ（Ｄ２（ｘ），ｉｙ＿ｉ＋１）が重み付け合成され、第２合成値が算出される。
【００８８】
そして、第１合成値の重みとして「１−ｉｙ＿ｓ」（画素Ｄ１，Ｄ２のラインとＳＣ補間位置Ｐ１との間の垂直距離（垂直方向の距離））が使用される。また、第２合成値の重みとして「ｉｙ＿ｓ」（画素Ｕ１，Ｕ２のラインとＳＣ補間位置Ｐ１との間の垂直距離）が使用される。それらの重みを用いて、第１合成値と第２合成値が重み付け合成され、画素値ＤＯＵＴが算出される。
【００８９】
以上述べたように、本実施例によれば、極大点距離と極小点距離との少なくとも一方が判断され、極大点距離と極小点距離との少なくとも一方に基づく検出感度で、入力画像からエッジが検出される。それにより、エッジをより高精度に検出することができる。例えば、自然画に含まれる水平線に近い浅い角度の斜め線、周期パターンに含まれる斜め線、等を高精度に検出することができる。その結果、エッジの検出結果に基づく種々の処理をより高精度に行うことができる。例えば、スケーラ処理によるジャギーの発生をより高精度に抑制することができる。
【００９０】
なお、ブロックマッチング部２０３と極値点距離判断部２０４で使用される所定方向は水平方向に限られない。例えば、斜め方向が所定方向として使用されてもよいし、垂直方向が所定方法として使用されてもよい。検出エリアとしては、所定方向に長い画像領域が使用されることが好ましい。例えば、所定方向が水平方向である場合には、図３に示すように、水平方向に長い検出エリアが使用されることが好ましい。また、所定方向として複数の方向（例えば、水平方向と垂直方向）が考慮されてもよい。そして、複数の方向にそれぞれ対応する複数の処理が行われ、複数の処理の結果に基づいてエッジが検出されてもよい。
【００９１】
＜実施例２＞
以下、本発明の実施例２について説明する。実施例１では、ブロック距離ｎとオフセット値ＯＦＳＴ（ｎ）の対応関係が極値点距離ＩＮＶＡＬにのみ依存する例を説明した。本実施例では、ブロック距離ｎとオフセット値ＯＦＳＴ（ｎ）の対応関係が、入力画像ＩＤの他の特徴（極値点距離ＩＮＶＡＬとは異なる特徴）にも依存する例を説明する。なお、以下では、実施例１と異なる構成や処理について詳しく説明し、実施例１と同様の構成や処理についての説明を省略する。図１３は、本実施例に係るエッジ検出部の構成の一例を示すブロック図である。図１３に示すように、本実施例に係るエッジ検出部は、実施例１に係る極値点距離判断部２０４の代わりに極値点距離判断部４０１を有し、実施例１に係るオフセット値決定部２０５の代わりにオフセット値決定部４０２を有する。
【００９２】
極値点距離判断部４０１は、実施例１に係る極値点距離判断部２０４と同様の処理を行う。さらに、極値点距離判断部４０１は、入力画像ＩＤの複雑さを判断し、複雑さの判断結果をオフセット値決定部４０２へ出力する。本実施例では、判断エリアにおける入力画像ＩＤの複雑さが判断される。なお、複雑さの判断対象の画像領域が判断エリアに限られない。検出エリアにおける入力画像ＩＤの複雑さが判断されてもよいし、入力画像ＩＤ全体の複雑さが判断されてもよい。
【００９３】
図１４は、極値点距離判断部４０１の構成の一例を示すブロック図である。図１４に示すように、極値点距離判断部４０１は、実施例１に係る極値点距離算出３０３の代わりに
、極値点距離算出４０３を有する。極値点距離算出４０３は、実施例１に係る極値点距離算出３０３と同様の処理を行う。さらに、極値点距離算出４０３は、入力画像ＩＤの複雑さを判断し、複雑さの判断結果をオフセット値決定部４０２へ出力する。
【００９４】
本実施例では、極値点距離算出４０３は、極大画素の数と極小画素の数との少なくとも一方に基づく数の、入力画像ＩＤの画素の数に対する割合を、入力画像ＩＤの複雑さとして判断する。具体的には、極値点距離算出４０３は、極大画素の数と極小画素の数との合計の、入力画像ＩＤの画素の数に対する割合を、入力画像ＩＤの複雑さとして判断する。上述したように、本実施例では、極値点距離算出４０３は、判断エリアにおける入力画像の複雑さを判断する。そのため、本実施例では、判断エリアにおける極大画素の数と、判断エリアにおける極小画素の数との合計の、判断エリアにおける入力画像ＩＤの画素の数に対する割合が、判断エリアにおける入力画像ＩＤの複雑さとして判断される。具体的には、極値点距離算出４０３は、以下の式８を用いて、複雑さ（割合）ＩＮＦ＿ＲＡＴＥを算出する。式８において、「ＩＮＦ＿ＮＵＭ」は、判断エリアにおける極大画素の数と、判断エリアにおける極小画素の数との合計である。「ＢＬＫ＿ＮＵＭ」は、判断エリアにおける総画素数である。
ＩＮＦ＿ＲＡＴＥ＝ＩＮＦ＿ＮＵＭ／ＢＬＫ＿ＮＵＭ  ・・・（式８）
【００９５】
図５の例では、判断エリアの総画素数ＢＬＫ＿ＮＵＭ＝１２であり、極大画素の数＝極小画素の数＝０であるため、複雑さＩＮＦ＿ＲＡＴＥ＝０／１２＝０が算出される。図６の例では、極大画素の数＝２であり、極小画素の数＝１であるため、複雑さＩＮＦ＿ＲＡＴＥ＝３／１２＝０．２５が算出される。
【００９６】
上記方法によれば、極大画素や極小画素が多いほど大きい値が、複雑さＩＮＦ＿ＲＡＴＥとして算出される。例えば、周期パターン（特に、絵柄の繰り返し周期が短い（絵柄の繰り返し周波数が高い）高周波周期パターン）、複数の斜め線が交わる画像、等の場合において、極大画素や極小画素が多く、高い複雑さＩＮＦ＿ＲＡＴＥが算出される。図１５は、高周波周期パターンの一例を示す。
【００９７】
なお、複雑さの判断方法は上記方法に限られない。例えば、入力画像ＩＤの画素の数に対する極大画素の数の割合、入力画像ＩＤの画素の数に対する極小画素の数の割合、極大画素の数と極小画素の数の平均の、入力画像ＩＤの画素の数に対する割合、等が、入力画像ＩＤの複雑さとして判断されてもよい。また、入力画像ＩＤの画素値の分散度合いが、入力画像ＩＤの複雑さとして判断されてもよい。
【００９８】
オフセット値決定部４０２は、実施例１に係るオフセット値決定部２０５と同様の処理を行う。但し、本実施例では、オフセット値決定部４０２は、極値点距離算出４０３によって得られた複雑さＩＮＦ＿ＲＡＴＥに応じて、第２距離（第３範囲）を設定する。具体的には、オフセット値決定部４０２は、複雑さＩＮＦ＿ＲＡＴＥに応じて閾値ＡＴＨを決定（設定）し、決定した閾値ＡＴＨを用いてオフセットテーブルＯＦＳ＿ＴＢＬを生成する。そして、オフセット値決定部４０２は、生成したオフセットテーブルＯＦＳ＿ＴＢＬに従って、オフセット値ＯＦＳＴ（ｎ）を決定する。
【００９９】
図１６は、複雑さＩＮＦ＿ＲＡＴＥと閾値ＡＴＨとの対応関係の一例を示す。図１６の例では、複雑さＩＮＦ＿ＲＡＴＥが０．５以下の場合に、極値点距離ＩＮＶＡＬと同じ値が閾値ＡＴＨとして設定される。複雑さＩＮＦ＿ＲＡＴＥが０．５よりも大きく且つ０．７５以下の場合に、極値点距離ＩＮＶＡＬの３／４の値が閾値ＡＴＨとして設定される。そして、複雑さＩＮＦ＿ＲＡＴＥが０．７５よりも大きい場合に、複雑さＩＮＦ＿ＲＡＴ
Ｅの１／２の値が閾値ＡＴＨとして設定される。このように、本実施例では、複雑さＩＮＦ＿ＲＡＴＥが高いほど小さい値が、閾値ＡＴＨとして設定される。そのため、本実施例では、複雑さＩＮＦ＿ＲＡＴＥが高いほど短い距離が、第２距離として設定され、複雑さＩＮＦ＿ＲＡＴＥが高いほど狭い範囲が、第３範囲として設定される。従って、本実施例では、第３範囲におけるオフセット値ＯＦＳＴ（ｎ）の変化（ブロック距離ｎの変化に対するオフセット値ＯＦＳＴ（ｎ）の変化）は、複雑さＩＮＦ＿ＲＡＴＥが高いほど急峻となる。
【０１００】
図１７は、極値点距離ＩＮＶＡＬ＝８と複雑さＩＮＦ＿ＲＡＴＥ＝０．７とに対応するオフセットテーブルＯＦＳ＿ＴＢＬの一例を示す図である。図１７の例では、極値点距離ＩＮＶＡＬ＝８と複雑さＩＮＦ＿ＲＡＴＥ＝０．７とにより、閾値ＡＴＨ＝ＩＮＶＡＬ×３／４＝６が設定されており、−６＜ｎ＜−４の範囲と、＋４＜ｎ＜＋６の範囲とが第３範囲として設定されている。そして、図１７では、図７に比べ、第３範囲が狭く、且つ、第３範囲におけるオフセット値ＯＦＳＴ（ｎ）の変化が急峻であることがわかる。
【０１０１】
高周波周期パターンなどの画像領域では、最小となるＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ）が複数存在し、最小となるＳＡＤ値ＳＡＤ＿ＡＲＲＡＹ（ｎ）の間隔が狭い。本実施例では、高周波周期パターンなどの画像領域では、閾値ＡＴＨとして小さい値が使用されるため、注目位置Ｐ０からの距離の増加に伴いエッジの検出感度がすぐに低減される。その結果、高周波周期パターンなどの画像領域において、エッジの誤検出を抑制することができ、高精度にエッジを検出することができる。そして、他の画像領域（非常に浅い斜め線の画像領域など）では、閾値ＡＴＨとして大きい値が使用される。そのため、上記他の画像領域においても、エッジの誤検出を抑制することができ、高精度にエッジを検出することができる。
【０１０２】
なお、オフセット値決定部４０２の処理は上記処理に限られない。例えば、複雑さＩＮＦ＿ＲＡＴＥと極値点距離ＩＮＶＡＬの複数の組み合わせにそれぞれ対応する複数のオフセットテーブルが予め用意されていてもよい。そして、極値点距離算出４０３によって得られた複雑さＩＮＦ＿ＲＡＴＥと極値点距離ＩＮＶＡＬの組み合わせに対応するお布施っておテーブルが、複数のオフセットテーブルから選択されて使用されてもよい。
【０１０３】
以上述べたように、本実施例によれば、入力画像の複雑さに応じて、第２距離（第３範囲；閾値ＡＴＨ）が設定される。それにより、エッジの検出感度をより適切に調整することができ、エッジをより高精度に検出することができる。なお、本実施例では、入力画像の複雑さの変化によって閾値ＡＴＨが３段階で変化する例を示したが、これに限られない。例えば、閾値ＡＴＨの取り得る値の数は３つより多くても少なくてもよい。入力画像の複雑さの変化によって閾値ＡＴＨが連続的に変化してもよい。また、極値点距離ＩＮＶＡＬを用いて閾値ＡＴＨが算出される例を示したが、これに限られない。例えば、入力画像の複雑さを考慮し、且つ、極値点距離ＩＮＶＡＬを考慮せずに閾値ＡＴＨが設定されてもよい。
【０１０４】
＜その他の実施例＞
本発明は、上述の実施例の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１０５】
１０１：エッジ検出部  ２０３：ブロックマッチング部
２０４，３０１：極値点距離判断部  ２０５：オフセット値決定部
２０６：オフセット部  ２０７：マッチング角度決定部
【図１】
2017174311.tif 000003
【図２】
2017174311.tif 000004
【図３】
2017174311.tif 000005
【図４】
2017174311.tif 000006
【図５】
2017174311.tif 000007
【図６】
2017174311.tif 000008
【図７】
2017174311.tif 000009
【図８】
2017174311.tif 000010
【図９】
2017174311.tif 000011
【図１０】
2017174311.tif 000012
【図１１】
2017174311.tif 000013
【図１２】
2017174311.tif 000014
【図１３】
2017174311.tif 000015
【図１４】
2017174311.tif 000016
【図１５】
2017174311.tif 000017
【図１６】
2017174311.tif 000018
【図１７】
2017174311.tif 000019