(57)【要約】【課題】拡大画像のエッジ位置の精度がよくなく、拡大画像のエッジにジャギーが目立っていた。【解決手段】拡大前画像をドットマトリクス状の画素で階調表現する画像データに基づいて、拡大前画像の画素よりも細かい単位で当該拡大前画像の各画素の位置に対応させたエッジの位置を表すエッジ位置情報を取得し、同エッジ位置情報に基づいて、拡大画像の画素単位で当該拡大画像の各画素の位置に対応させて拡大画像のエッジの領域を表すエッジ情報を生成する構成にした。拡大画像のエッジを精度よく細線で形成して鮮鋭化等の処理を容易に行うことが可能であるとともに、エッジのジャギーを少なくさせることが可能となる。【選択図】  図３
2004207923.tif 000002
【特許請求の範囲】
【請求項１】
拡大前画像をドットマトリクス状の画素で階調表現する画像データから同拡大前画像を拡大した拡大画像のエッジの領域を表すエッジ情報を生成するエッジ生成装置であって、
上記画像データに基づいて、上記拡大前画像の画素よりも細かい単位で当該拡大前画像の各画素の位置に対応させたエッジの位置を表すエッジ位置情報を取得する位置取得手段と、
上記エッジ位置情報に基づいて、上記拡大画像の画素単位で当該拡大画像の各画素の位置に対応させて上記拡大画像のエッジの領域を表すエッジ情報を生成するエッジ生成手段とを具備することを特徴とするエッジ生成装置。
【請求項２】
上記エッジ生成手段は、上記エッジ位置情報に基づいて上記拡大前画像のエッジの位置に対応する上記拡大画像のエッジの位置を表す拡大エッジ位置情報を同拡大画像の画素単位で取得する拡大位置取得手段と、同拡大エッジ位置情報に基づいて近隣する同拡大画像のエッジどうしを連結して上記拡大画像のエッジの領域を表すエッジ情報を生成する連結手段とを備えることを特徴とする請求項１に記載のエッジ生成装置。
【請求項３】
上記位置取得手段は、上記拡大前画像上で注目画素を順次移動させながら、同注目画素とその近隣に位置する画素との画像データの差分を演算し、演算結果に基づいて同注目画素の近隣に存在するエッジの位置が表された上記エッジ位置情報を取得することを特徴とする請求項２に記載のエッジ生成装置。
【請求項４】
上記位置取得手段は、上記拡大前画像上で注目画素とその周囲の画素の画像データに対してラプラシアンフィルタを用いた演算を行って同拡大前画像の各画素に対応して階調表現された中間データを生成し、当該中間データに対応するドットマトリクス状の画素上で注目画素を順次移動させながら、注目画素およびその近隣に位置する画素の位置および中間データに基づいて同中間データを略０にする位置が表された上記エッジ位置情報を取得することを特徴とする請求項３に記載のエッジ生成装置。
【請求項５】
上記位置取得手段は、上記中間データに対応するドットマトリクス状の画素上の注目画素とその近隣に位置する画素との中間データの符号が異なるとともに当該中間データの絶対値の少なくとも一つが所定の閾値以上またはより大のときに、同注目画素およびその近隣に位置する画素の位置および中間データに基づいて同中間データを略０にする位置が表された上記エッジ位置情報を取得することを特徴とする請求項４に記載のエッジ生成装置。
【請求項６】
上記位置取得手段は、上記中間データに対応するドットマトリクス状の画素上の注目画素とその近隣に位置する画素との中間データの符号が異なるとともに当該中間データの絶対値がいずれも所定の閾値以下またはより小であり、かつ、同注目画素とその周囲の画素との画像データの異なり度合が所定の閾値以上またはより大であるときに、同注目画素およびその近隣に位置する画素の位置および中間データに基づいて同中間データを略０にする位置が表された上記エッジ位置情報を取得することを特徴とする請求項４または請求項５のいずれかに記載のエッジ生成装置。
【請求項７】
上記連結手段は、上記拡大前画像上で注目画素を順次移動させながら、同注目画素およびその近隣に位置する画素の画像データを２値化して２値化データを生成し、当該２値化データと、エッジの向きに対応した所定の複数のマッチングパターンと、に基づいてエッジの向きを決定し、上記近隣する拡大画像のエッジどうしを同決定したエッジの向きとなるように連結して上記エッジ情報を生成することを特徴とする請求項２〜請求項６のいずれかに記載のエッジ生成装置。
【請求項８】
上記連結手段は、上記近隣する拡大画像のエッジどうしを連結して上記エッジ情報を生成する際、上記拡大画像上で横方向と縦方向とで距離の差が大きい方向の画素単位毎に同拡大画像のエッジの領域とする画素の位置を表す連結位置情報を取得し、当該連結位置情報を含めて上記エッジ情報を生成することを特徴とする請求項２〜請求項７のいずれかに記載のエッジ生成装置。
【請求項９】
上記拡大位置取得手段は、上記拡大前画像の画素に対応して上記拡大画像の画素を区分した画素区分毎に同拡大画像上で注目画素区分を順次移動させながら、注目画素区分に入る上記拡大画像のエッジが所定数以下となるように同注目画素区分のエッジの位置が表された上記拡大エッジ位置情報を取得することを特徴とする請求項２〜請求項８のいずれかに記載のエッジ生成装置。
【請求項１０】
上記位置取得手段は、上記拡大前画像上で注目画素を順次移動させながら、同注目画素とその近隣に位置する画素の画像データに対してガウスぼかしを行う演算を行い、当該ガウスぼかしが行われた画像データに基づいて上記エッジ位置情報を取得することを特徴とする請求項１〜請求項９のいずれかに記載のエッジ生成装置。
【請求項１１】
拡大前画像をドットマトリクス状の画素で階調表現する画像データから同拡大前画像を拡大した拡大画像のエッジの領域を表すエッジ情報を生成するエッジ生成方法であって、
上記画像データに基づいて、上記拡大前画像の画素よりも細かい単位で当該拡大前画像の各画素の位置に対応させたエッジの位置を表すエッジ位置情報を取得する位置取得工程と、
上記エッジ位置情報に基づいて、上記拡大画像の画素単位で当該拡大画像の各画素の位置に対応させて上記拡大画像のエッジの領域を表すエッジ情報を生成するエッジ生成工程とを具備することを特徴とするエッジ生成方法。
【請求項１２】
拡大前画像をドットマトリクス状の画素で階調表現する画像データから同拡大前画像を拡大した拡大画像のエッジの領域を表すエッジ情報を生成する機能をコンピュータに実現させるエッジ生成プログラムであって、
上記画像データに基づいて、上記拡大前画像の画素よりも細かい単位で当該拡大前画像の各画素の位置に対応させたエッジの位置を表すエッジ位置情報を取得する位置取得機能と、
上記エッジ位置情報に基づいて、上記拡大画像の画素単位で当該拡大画像の各画素の位置に対応させて上記拡大画像のエッジの領域を表すエッジ情報を生成するエッジ生成機能とを実現させることを特徴とするエッジ生成プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、拡大前画像を拡大した拡大画像のエッジの領域を表すエッジ情報を生成するエッジ生成装置、エッジ生成方法およびエッジ生成プログラムに関する。
【０００２】
【従来の技術】
従来、拡大前の画像（以下、拡大前画像とも記載）から拡大した拡大画像を生成する際、拡大前画像の画素単位でエッジの位置を検出し、当該エッジの位置を拡大画像の画素に対応させて拡大画像のエッジの領域を形成している。
また、拡大前画像の各画素の画像データと所定の複数のマッチングパターンとを比較する演算を行い、一致したマッチングパターンに応じた形状のエッジ領域を拡大画像に形成することも行われている（例えば、特許文献１参照）。
さらに、拡大前画像を表現する画像データに対して補間処理を行うことにより非エッジ部用の拡大画像を作成するとともに、同拡大前画像を表現する画像データに対して離散コサイン変換等の直交変換とその逆直交変換を行うことによりエッジ部用の拡大画像を作成し、両拡大画像に基づいて拡大画像のエッジ位置を検出し、拡大画像のエッジの領域を形成することも行われている（例えば、特許文献２参照）。
【０００３】
【特許文献１】
特開２００２−６３５７３号公報（段落００１１−００９４、第１−１８図）
【特許文献２】
特開２０００−９９７１３号公報（段落００１９−００５４、第１−２７図）
【０００４】
【発明が解決しようとする課題】
上述した従来の技術においては、次のような課題があった。
拡大前画像の画素単位でエッジの位置を検出する場合、拡大画像のエッジ位置の精度がよくなく、拡大画像のエッジにいわゆるジャギーと呼ばれるギザギザ状の模様が目立っていた。
特許文献１に開示された技術では、拡大画像にエッジの領域を局所的に形成するため、巨視的に見た場合にエッジのジャギーが目立っていた。
特許文献２に開示された技術では、拡大前画像全体の画像データに対して直交変換のような数学的手法を用いることにより、拡大画像のエッジのジャギーは比較的目立たなくすることはできるものの、エッジの鮮鋭化等の処理をするのが困難であった。また、拡大前画像を拡大した後に拡大画像のエッジ位置を検出するためエッジ位置の精度がよくなく、さらに、エッジ部用の拡大画像を別途格納するための記憶領域を多く確保することが必要であった。
【０００５】
本発明は、上記課題にかんがみてなされたもので、拡大画像のエッジを精度よく細線で形成して鮮鋭化等の処理を容易に行うことが可能であるとともに、エッジのジャギーを少なくさせることが可能なエッジ生成装置、エッジ生成方法およびエッジ生成プログラムの提供を目的とする。
【０００６】
【課題を解決するための手段および発明の効果】
上記目的を達成するため、請求項１にかかる発明では、位置取得手段は、拡大前画像をドットマトリクス状の画素で階調表現する画像データに基づいて、同拡大前画像の画素よりも細かい単位で当該拡大前画像の各画素の位置に対応させたエッジの位置を表すエッジ位置情報を取得する。すると、エッジ生成手段は、位置取得手段にて取得されたエッジ位置情報に基づいて、拡大前画像を拡大した拡大画像の画素単位で当該拡大画像の各画素の位置に対応させて拡大画像のエッジの領域を表すエッジ情報を生成する。
すなわち、拡大前画像を拡大した拡大画像の画素単位でエッジの領域が形成されるので、拡大画像のエッジを精度よく細線で形成して鮮鋭化等の処理を容易に行うことが可能であるとともに、エッジのジャギーを少なくさせることが可能となる。その際、エッジ位置を表す情報を取得するためにエッジ検出用の拡大画像を生成する必要がないので、少ない容量の記憶領域で拡大画像のエッジの領域を表す情報を生成することができる。
【０００７】
ここで、上記画像データは、例えば、ビットマップデータ、圧縮されたデータ、等、様々なデータ形式の情報が考えられる。また、同画像データは、例えば、輝度データ（Ｙ）と色差データ（Ｃｂ，Ｃｒ）とから構成されるＹＣｂＣｒデータ、レッドデータ（Ｒ）とグリーンデータ（Ｇ）とブルーデータ（Ｂ）とから構成されるＲＧＢデータ、シアンデータ（Ｃ）とマゼンタデータ（Ｍ）とイエローデータ（Ｙｅ）とグリーンデータ（Ｇ）とから構成されるＣＭＹｅＧデータ、ＣＩＥ規格とされたＬａｂ空間内のＬａｂデータ、等、様々な種類のデータが考えられる。
【０００８】
上記位置取得手段は、上記拡大前画像の明るさが表された上記画像データに基づいて上記エッジ位置情報を取得してもよい。すると、より確実にエッジの位置を表す情報を精度よく取得することができ、精度よく拡大画像のエッジの領域を表す情報を生成することができる。なお、明るさが表された画像データは、輝度データ、明度データ、ＲＧＢ各データの平均、等、様々な種類のデータが考えられる。
【０００９】
上記エッジ生成手段は、上記エッジ位置情報に基づいて上記拡大前画像のエッジの位置に対応する上記拡大画像のエッジの位置を表す拡大エッジ位置情報を同拡大画像の画素単位で取得する拡大位置取得手段と、同拡大エッジ位置情報に基づいて近隣する同拡大画像のエッジどうしを連結して上記拡大画像のエッジの領域を表すエッジ情報を生成する連結手段とを備える構成としてもよい。すると、拡大前画像のエッジに対応する拡大画像のエッジどうしが連結されるので、より確実に、拡大画像のエッジを精度よく細線で形成することが可能となる。
【００１０】
上記位置取得手段は、上記拡大前画像上で注目画素を順次移動させながら、同注目画素とその近隣に位置する画素との画像データの差分を演算し、演算結果に基づいて同注目画素の近隣に存在するエッジの位置が表された上記エッジ位置情報を取得する構成としてもよい。画像データの差分を演算するという簡易な構成で、エッジの位置を表す情報を取得することができる。
その際、エッジの強度を反映させてエッジ位置情報を取得してもよい。
【００１１】
上記位置取得手段は、上記拡大前画像上で注目画素とその周囲の画素の画像データに対してラプラシアンフィルタを用いた演算を行って同拡大前画像の各画素に対応して階調表現された中間データを生成し、当該中間データに対応するドットマトリクス状の画素上で注目画素を順次移動させながら、注目画素およびその近隣に位置する画素の位置および中間データに基づいて同中間データを略０にする位置が表された上記エッジ位置情報を取得する構成としてもよい。公知のラプラシアンフィルタを用いてエッジの位置を検出することにより、簡易な構成で精度よくエッジの位置を表す情報を取得することができ、精度よく拡大画像のエッジの領域を表す情報を生成することができる。
【００１２】
なお、周囲の画素は、注目画素に隣接していてもよいし、隣接していなくてもよい。
ラプラシアンフィルタは、８方向ラプラシアンフィルタ、４方向ラプラシアンフィルタ、等、を採用することができる。
むろん、ラプラシアンフィルタを用いる以外にも、一次空間微分フィルタ、非線形差分フィルタ、等、を用いてエッジの位置を検出してもよい。
【００１３】
上記位置取得手段は、上記中間データに対応するドットマトリクス状の画素上の注目画素とその近隣に位置する画素との中間データの符号が異なるときに、上記注目画素およびその近隣に位置する画素の位置および中間データに基づいて同中間データを略０にする位置が表された上記エッジ位置情報を取得してもよい。エッジが存在するのは主に中間データの符号が異なるときであるので、さらに精度よくエッジの位置を表す情報を取得することができ、精度よく拡大画像のエッジの領域を表す情報を生成することができる。
【００１４】
この場合、上記位置取得手段は、上記中間データの絶対値の少なくとも一つが所定の閾値以上またはより大のときに、上記注目画素およびその近隣に位置する画素の位置および中間データに基づいて同中間データを略０にする位置が表された上記エッジ位置情報を取得してもよい。エッジが存在するのは主に両画素間の画像データの値の差が大きいときであるので、さらに精度よくエッジの位置を表す情報を取得することができ、精度よく拡大画像のエッジの領域を表す情報を生成することができる。
【００１５】
また、上記位置取得手段は、上記中間データに対応するドットマトリクス状の画素上の注目画素とその近隣に位置する画素との中間データの符号が異なるとともに当該中間データの絶対値がいずれも所定の閾値以下またはより小であり、かつ、同注目画素とその周囲の画素との画像データの異なり度合が所定の閾値以上またはより大であるときに、同注目画素およびその近隣に位置する画素の位置および中間データに基づいて同中間データを略０にする位置が表された上記エッジ位置情報を取得する構成としてもよい。注目画素とその近隣に位置する画素との画像データの値の差が小さくても、注目画素およびその周囲に位置する画素内では画像データの値の差が大きいことがある。従って、さらに精度よくエッジの位置を表す情報を取得することができ、精度よく拡大画像のエッジの領域を表す情報を生成することができる。
【００１６】
上記連結手段は、上記拡大前画像上で注目画素を順次移動させながら、同注目画素およびその近隣に位置する画素の画像データを２値化して２値化データを生成し、当該２値化データと、エッジの向きに対応した所定の複数のマッチングパターンと、に基づいてエッジの向きを決定し、上記近隣する拡大画像のエッジどうしを同決定したエッジの向きとなるように連結して上記エッジ情報を生成する構成としてもよい。簡易な構成で確実に拡大画像のエッジどうしを連結することができ、高速な処理にて確実に拡大画像のエッジを精度よく細線で形成することが可能となる。
【００１７】
上記連結手段は、上記近隣する拡大画像のエッジどうしを連結して上記エッジ情報を生成する際、上記拡大画像上で横方向と縦方向とで距離の差が大きい方向の画素単位毎に同拡大画像のエッジの領域とする画素の位置を表す連結位置情報を取得し、当該連結位置情報を含めて上記エッジ情報を生成する構成としてもよい。近隣する拡大画像のエッジどうしの間で画素単位毎にエッジの領域とされるので、より確実に拡大画像のエッジを精度よく細線で形成することが可能となる。
【００１８】
上記拡大位置取得手段は、上記拡大前画像の画素に対応して上記拡大画像の画素を区分した画素区分毎に同拡大画像上で注目画素区分を順次移動させながら、注目画素区分に入る上記拡大画像のエッジが所定数以下となるように同注目画素区分のエッジの位置が表された上記拡大エッジ位置情報を取得する構成としてもよい。画素区分に入る拡大画像のエッジが所定数より多くならないので、拡大画像のエッジの領域を表す情報を生成する処理を高速化させることができる。なお、画素区分に入る拡大画像のエッジが２以下となるようにすると、拡大画像のエッジ位置について良好な精度を維持しながら高速にて拡大画像のエッジの領域を表す情報を生成することができる。
むろん、より確実に良好なエッジ位置の精度を得るために画素区分に入る拡大画像のエッジが３以下となるようにしてもよいし、より高速にてエッジ情報を生成するために画素区分に入る拡大画像のエッジが１以下となるようにしてもよい。
【００１９】
上記位置取得手段は、上記拡大前画像上で注目画素を順次移動させながら、同注目画素とその近隣に位置する画素の画像データに対してガウスぼかしを行う演算を行い、当該ガウスぼかしが行われた画像データに基づいて上記エッジ位置情報を取得する構成としてもよい。ガウスぼかしを行うことによりノイズが除去されるのでさらに精度が向上し、より滑らかとされたエッジの位置を表す情報を生成することができる。
なお、注目画素の近隣に位置する画素は、注目画素に隣接していてもよいし、隣接していなくてもよい。
【００２０】
上述したエッジ生成装置は、単独で実施される場合もあるし、ある機器に組み込まれた状態で他の方法とともに実施されることもあるなど、発明の思想としては各種の態様を含むものであって、適宜、変更可能である。
また、所定の手順に従って上述した手段に対応した処理を行う方法にも発明は存在する。従って、本発明はエッジ生成装置の制御方法としても適用可能であり、請求項１１にかかる発明においても、基本的には同様の作用となる。
さらに、生成したエッジ情報を反映した拡大画像の画像データ（拡大画像を表現する画像データ。以下、同様）に基づいて印刷を行う印刷装置に対して印刷制御を行う印刷制御装置としても適用可能であるし、同印刷制御装置と印刷装置を備える印刷システムとしても適用可能であり、基本的には同様の作用となる。
【００２１】
本発明を実施しようとする際に、上記装置にて所定のプログラムを実行させる場合もある。そこで、エッジ生成装置の制御プログラムとしても適用可能であり、請求項１２にかかる発明においても、基本的には同様の作用となる。さらに、同プログラムを記録した媒体が流通し、同記録媒体からプログラムを適宜コンピュータに読み込むことが考えられる。すなわち、そのプログラムを記録したコンピュータ読み取り可能な記録媒体としても適用可能であり、基本的には同様の作用となる。
むろん、請求項２〜請求項９に記載した構成を上記方法、印刷制御装置、印刷システム、プログラム、プログラムを記録した媒体に対応させることも可能である。
ここで、上記記録媒体は、磁気記録媒体や光磁気記録媒体の他、今後開発されるいかなる記録媒体であってもよい。一次複製品、二次複製品などの複製段階も問わない。一部がハードウェアで実現される場合や、一部を記録媒体上に記録しておいて必要に応じて適宜読み込む場合も本発明の思想に含まれる。
【００２２】
【発明の実施の形態】
以下、下記の順序に従って本発明の実施形態を説明する。
（１）印刷システムの構成：
（２）エッジ生成装置の構成の概略：
（３）エッジ生成装置が行う処理：
（３−１）ゼロクロス検出処理：
（３−２）ゼロクロス連結処理：
（４）変形例：
【００２３】
（１）印刷システムの構成：
図１は、本発明の一実施形態である印刷システム１００の概略構成を示している。本システム１００は、パーソナルコンピュータ（ＰＣ）１０、印刷装置であるカラー印刷可能なインクジェットプリンタ２０等から構成されている。なお、ＰＣ１０は、拡大画像のエッジの領域を表すエッジ情報を生成する意味で本発明にいうエッジ生成装置となる。また、生成したエッジ情報を反映した拡大画像の画像データを生成して対応する出力画像をプリンタ２０に印刷させる意味で印刷制御装置となる。
ＰＣ１０は演算処理の中枢をなすＣＰＵ１１を備えており、このＣＰＵ１１はシステムバス１０ａを介してＰＣ１０全体の制御を行う。同バス１０ａには、ＲＯＭ１２、ＲＡＭ１３、ＣＤ−ＲＯＭドライブ１５、フレキシブルディスク（ＦＤ）ドライブ１６、各種インターフェイス（Ｉ／Ｆ）１７ａ〜ｅ等が接続されている。また、ハードディスクドライブを介してハードディスク（ＨＤ）１４も接続されている。本実施形態のコンピュータにはデスクトップ型ＰＣを採用しているが、コンピュータとしては一般的な構成を有するものを採用可能である。
【００２４】
ＨＤ１４には、オペレーティングシステム（ＯＳ）や画像情報等を作成可能なアプリケーションプログラム（ＡＰＬ）等が格納されている。実行時には、ＣＰＵ１１がこれらのソフトウェアを適宜ＲＡＭ１３に転送し、ＲＡＭ１３を一時的なワークエリアとして適宜アクセスしながらプログラムを実行する。
周辺機器Ｉ／Ｆ（ＰＩＦ）１７ａには、デジタルカメラ３０や、図示しないカラースキャナ等が接続されるようになっている。同デジタルカメラ３０は、撮影画像をドットマトリクス状の画素で階調表現する画像データを生成してＰＣ１０に出力可能である。ＣＲＴＩ／Ｆ１７ｂには画像データに基づく画像を表示するディスプレイ１８ａが接続され、入力Ｉ／Ｆ１７ｃにはキーボード１８ｂやマウス１８ｃが操作用入力機器として接続されている。また、プリンタＩ／Ｆ１７ｅには、パラレルＩ／Ｆケーブルを介してプリンタ２０が接続されている。むろん、ＵＳＢケーブル等を介してプリンタ２０を接続する構成としてもよい。
【００２５】
プリンタ２０は、Ｃ（シアン）、Ｍ（マゼンタ）、Ｙｅ（イエロー）、Ｋ（ブラック）のインクを使用して、印刷用紙（印刷媒体）に対して画像データを構成する階調値に対応したインク量となるようにインクを吐出し、画像を印刷する。むろん、４色以外のインクを使用するプリンタを採用してもよい。また、インク通路内に泡を発生させてインクを吐出するバブル方式のプリンタや、レーザープリンタ等、種々の印刷装置を採用可能である。
図２に示すように、プリンタ２０では、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、通信Ｉ／Ｏ２４、コントロールＩＣ２５、ＡＳＩＣ２６、Ｉ／Ｆ２７、等がバス２０ａを介して接続されている。通信Ｉ／Ｏ２４はＰＣ１０のプリンタＩ／Ｆ１７ｅと接続されており、プリンタ２０は通信Ｉ／Ｏ２４を介してＰＣ１０から送信されるＣＭＹｅＫに変換されたデータやページ記述言語等からなる印刷ジョブを受信する。ＡＳＩＣ２６は、ＣＰＵ２１と所定の信号を送受信しつつヘッド駆動部２６ａに対してＣＭＹｅＫデータに基づく印加電圧データを出力する。同ヘッド駆動部２６ａは、同印加電圧データに基づいて印刷ヘッドに内蔵されたピエゾ素子への印加電圧パターンを生成し、印刷ヘッドにＣＭＹｅＫのインクを吐出させる。Ｉ／Ｆ２７に接続されたキャリッジ機構２７ａや紙送り機構２７ｂは、印刷ヘッドを主走査させたり、適宜改ページ動作を行いながらメディアを順次送り出して副走査を行ったりする。そして、ＣＰＵ２１が、ＲＡＭ２３をワークエリアとして利用しながらＲＯＭ２２に書き込まれたプログラムに従って各部を制御する。
【００２６】
ＰＣ１０では、以上のハードウェアを基礎としてバイオスが実行され、その上層にてＯＳとＡＰＬとが実行される。ＯＳには、プリンタＩ／Ｆ１７ｅを制御するプリンタドライバ等の各種のドライバ類が組み込まれ、ハードウェアの制御を実行する。プリンタドライバは、プリンタＩ／Ｆ１７ｅを介してプリンタ２０と双方向の通信を行うことが可能であり、ＡＰＬから画像データを受け取って印刷ジョブを作成し、プリンタ２０に送出する。本発明のエッジ生成プログラムは、ＡＰＬから構成されるが、プリンタドライバにより構成されてもよい。また、ＨＤ１４は同プログラムを記録した媒体であるが、同媒体は、例えば、ＣＤ−ＲＯＭ、ＦＤ１６ａ、光磁気ディスク、不揮発性メモリ、パンチカード、バーコード等の符号が印刷された印刷媒体、等であってもよい。むろん、通信Ｉ／Ｆ１７ｄからインターネット網を介して所定のサーバに格納された上記の制御プログラムをダウンロードして実行させることも可能である。
そして、上記ハードウェアと上記プログラムとが協働してエッジ生成装置を構築する。
【００２７】
（２）エッジ生成装置の構成の概略：
図３は、上記エッジ生成装置の構成の概略を模式的に示している。ＰＣをエッジ生成装置Ｕ０として機能させるエッジ生成プログラムは、以下に述べる各種手段に対応した複数のモジュールから構成されている。
本エッジ生成装置Ｕ０は、概略、拡大前画像Ｉ１の各画素Ｉ１ｕの位置に対応させたエッジの位置を表すゼロクロス位置Ｚ（エッジ位置情報Ｄ３）を取得する位置取得手段Ｕ１と、取得されたゼロクロス位置Ｚに基づいて拡大画像Ｉ２のエッジの領域を表すエッジ情報Ｄ５を生成するエッジ生成手段Ｕ２とから構成されている。画像拡大などを行う際、エッジ部分の処理によって、拡大後の画像の見栄えがまったく違うものになってしまうし、ジャギーが少ない、拡大エッジ画像を作成することは、画像拡大処理において非常に重要である。本装置は、両手段Ｕ１，Ｕ２により、ジャギーの少ない、きれいなエッジのラインを作成する。
【００２８】
拡大前画像の画像データＤ１は、拡大前画像をドットマトリクス状の多数の画素で階調表現するデータであり、拡大前画像の明るさが表されたデータである。本実施形態の階調データＤ８は、Ｙ（輝度）、Ｃｂ（ブルーの色差）、Ｃｒ（レッドの色差）からなるＹＣｂＣｒデータであるとして説明するが、Ｒ（レッド）、Ｇ（グリーン）、Ｂ（ブルー）からなるＲＧＢデータ等であってもよい。また、ＹＣｂＣｒ各成分は、２５６階調であるとして説明するが、１０２４階調、１００階調、等であってもよい。
位置取得手段Ｕ１は、同画像データＤ１の輝度値Ｙに基づいてゼロクロス位置Ｚを算出して取得する。その際、拡大前画像Ｉ１上で注目画素を順次移動させながら、同注目画素とその近隣に位置する画素の画像データに対して公知のガウスぼかしを行う演算を行う。次に、ガウスぼかしが行われた拡大前画像上で注目画素を順次移動させながら、同注目画素とその周囲の画素の画像データに対して公知のラプラシアンフィルタを用いた演算を行って拡大前画像の各画素Ｉ１ｕに対応して階調表現された中間データＤ２を生成する。ラプラシアンフィルタでのエッジ検出では、ゼロクロス位置Ｚをピクセル以下の単位で求めることができる。そして、中間データＤ２に対応するドットマトリクス状の画素上で注目画素を順次移動させながら、同注目画素とその近隣に位置する画素との位置と中間データとに基づいて同中間データを略０にする位置が表されたエッジ位置情報Ｄ３、すなわち、ゼロクロス位置Ｚを取得する。ゼロクロス位置Ｚは、拡大前画像の画素Ｉ１ｕをｘｙ平面上に置いたとき、拡大前画像の画素Ｉ１ｕよりも細かい単位で拡大前画像の各画素Ｉ１ｕの位置に対応させたエッジの位置を表す座標値とされている。
【００２９】
なお、輝度値Ｙを用いてゼロクロス位置Ｚを取得する以外にも、各ＲＧＢの階調値の平均値を用いてゼロクロス位置Ｚを取得してもよいし、以下の式により輝度値Ｙを算出して同輝度値Ｙを用いてゼロクロス位置Ｚを取得してもよい。
Ｙ＝０．３０ｒ＋０．５９ｇ＋０．１１ｂ    …(1)
ここで、ｒ，ｇ，ｂは、各ＲＧＢの階調値を表している。
【００３０】
エッジ生成手段Ｕ２は、ゼロクロス位置Ｚに基づいて拡大前画像Ｉ１のエッジの位置に対応する拡大画像Ｉ２のエッジの位置を表す拡大エッジ位置情報Ｄ４を取得する拡大位置取得手段Ｕ２１と、取得された拡大エッジ位置情報Ｄ４に基づいて近隣する拡大画像Ｉ２のエッジどうしを連結して拡大画像Ｉ２のエッジの領域を表すエッジ情報Ｄ５を生成する連結手段Ｕ２２とから構成されている。
拡大位置取得手段Ｕ２１は、拡大前画像の画素Ｉ１ｕに対応して拡大画像Ｉ２の画素Ｉ２ｕを区分した画素区分Ｉ２ｄ（図では３×３画素）毎に拡大画像Ｉ２上で注目画素区分を順次移動させながら、同注目画素区分のエッジの位置が表された拡大エッジ位置情報Ｄ４を取得する。すなわち、ゼロクロス位置Ｚが、拡大後のどのピクセルに相当するかを計算し、その位置を拡大後のゼロクロス位置（拡大エッジ位置情報Ｄ４）とする。拡大エッジ位置情報Ｄ４は、拡大画像の画素Ｉ２ｕをｘｙ平面上に置いたとき、拡大画像の画素Ｉ２ｕ単位で拡大画像の各画素Ｉ２ｕの位置に対応させたエッジの位置を表す座標値とされている。
【００３１】
連結手段Ｕ２２は、エッジ情報Ｄ５を生成する際、まず、拡大前画像Ｉ１上で注目画素を順次移動させながら、注目画素を中心とした３×３画素（注目画素およびその近隣に位置する画素）の画像データを２値化して２値化データＤ６を生成する。次に、２値化データＤ６と、所定の複数のマッチングパターンと、に基づいてエッジの向きを決定する。本実施形態のマッチングパターンは、エッジの向きに対応した３×３のパターンとされている。さらに、近隣する拡大画像Ｉ２のエッジどうしを同決定したエッジの向きとなるように連結する連結位置情報Ｄ７を取得する。連結位置情報Ｄ７は、拡大画像のエッジの領域とする画素の位置を表す情報である。マッチングパターンを用いることにより、連結の際にパターンマッチング結果を用いて適切な方向のみ連結することができ、拡大エッジ画像でのエッジを高精細の細線で取得することができる。そして、拡大エッジ位置情報Ｄ４と連結位置情報Ｄ７とを合わせて、エッジ情報Ｄ５を生成する。エッジ情報Ｄ５は、拡大画像の画素Ｉ２ｕをｘｙ平面上に置いたとき、拡大画像の画素Ｉ２ｕ単位で拡大画像の各画素Ｉ２ｕの位置に対応させたエッジの領域を表す座標値の集合とされている。
【００３２】
従来の技術では、拡大前画像の画素単位でエッジの位置を検出するため、拡大画像のエッジ位置の精度がよくなく、拡大画像のエッジにジャギーが目立っていた。本エッジ生成装置Ｕ０で生成されるエッジ情報は拡大画像の画素単位でエッジの領域が表されているので、拡大画像のエッジを精度よく細線で形成して鮮鋭化等の処理を容易に行うことが可能であるとともに、エッジのジャギーを少なくさせ、高い精度と計算量の少ない、拡大エッジ画像の作成が可能となる。
【００３３】
（３）エッジ生成装置が行う処理：
以下、エッジ生成装置が行う処理とともに、動作を詳細に説明していく。
図４は、本エッジ生成装置が行う処理をフローチャートにより示している。具体的には、ＰＣ１０のＣＰＵ１１が本処理を行う。
まず、位置取得手段と拡大位置取得手段により、ゼロクロス位置Ｚを取得するゼロクロス検出処理を行う（ステップＳ１０５。以下、「ステップ」の記載を省略）。次に、連結手段により、ゼロクロスを連結してエッジ情報を生成するゼロクロス連結処理を行い（Ｓ１１０）、本フローを終了する。その後は、生成したエッジ情報に基づいて拡大画像の画像データを生成すれば、ディスプレイにて画像データに対応する拡大画像を表示したり、プリンタ２０に対して画像データを出力することにより画像データに対応する拡大画像を印刷したりすることができる。
【００３４】
（３−１）ゼロクロス検出処理：
図５は、上記ゼロクロス検出処理をフローチャートにより示している。
まず、図３で模式的に示したように拡大前画像をドットマトリクス状の画素別の階調データで表現する画像データに対してガウスぼかしを行うガウスぼかし処理を行う（Ｓ２０５）。
【００３５】
図６は、上記ガウスぼかし処理をフローチャートにより示している。
まず、拡大前画像を多数の画素別のＹＣｂＣｒデータで表現する画像データを入力する（Ｓ３０５）。デジタルカメラ３０等から画像データを入力する場合、データ全体を一括して読み込む必要はなく、部分的に読み込むようにしてもよいし、他のＡＰＬから呼び出されるような場合にはデータの受け渡しに利用されるバッファ領域を表すポインタの受け渡しだけであってもよい。
次に、拡大前画像上で注目画素の位置を設定する（Ｓ３１０）。本実施形態では、注目画素の位置を設定する順序は、左上の画素から開始して順番に右上の画素までとし、その後一つずつ下の左端の画素から順番に右端の画素までとして、最後に右下の画素としている。以下、各種処理にて注目画素の位置を設定する場合も同様にしている。むろん、注目画素の位置を設定する順序は、適宜変更可能であり、拡大前画像の種類等に応じて異なる順序とすることも可能である。
【００３６】
さらに、図７に示すように、注目画素とその近隣に位置する３×３画素（所定領域）の輝度値Ｙ（画像データ）を取得する（Ｓ３１５）。図の例では、注目画素の輝度値ｄ５と、その周囲である近隣に位置する８画素の輝度値ｄ１〜ｄ４，ｄ６〜ｄ９を取得することになる。
なお、図８の上段に示すように、注目画素が拡大前画像の端部にある場合には、拡大前画像の端部の画素における輝度値が拡大前画像の外側にある（折り返されている）ものとして輝度値を取得する。
【００３７】
そして、図６のフロー中に示した公知のガウスぼかし演算用フィルタＦ１を用いてガウスぼかし演算を行う（Ｓ３２０）。ここで、図７に示すように、フィルタ演算を行うための演算用フィルタＦは、参照する３×３画素のそれぞれに対応した係数ｆ１〜ｆ９を有しており、各画素に対応する画像データｄ１〜ｄ９のそれぞれに同係数を乗じた総和を求めて注目画素のフィルタ演算後の階調データｄ’を算出するものである。実際には、以下の式のように、同総和に所定係数（ｋとする）を乗じてフィルタ演算後のデータｄ’とする。
2004207923.tif 000003
後述するラプラシアンフィルタのように係数ｆ１〜ｆ９の合計Σｆｉが０となるフィルタの場合にはｋ＝１とし、ガウスぼかし演算用フィルタＦ１のように係数ｆ１〜ｆ９の合計Σｆｉが０となるフィルタの場合にはｋ＝１／Σｆｉとする。
【００３８】
なお、ガウスぼかし演算用フィルタは、拡大前画像の種類等に応じて様々なフィルタを採用することができる。例えば、より滑らかでノイズの少ない画像に変換するために５×５画素のフィルタを用いてもよいし、演算処理を高速化させるために図７で示した演算用フィルタＦの各係数のうちｆ２，ｆ４，ｆ５，ｆ６，ｆ８のみを備えるフィルタを用いてもよい。
むろん、フィルタ演算の概念に入らないようなガウスぼかし演算を行ってもよい。
その後、拡大前画像の全画素について、ガウスぼかし演算を行ったか否かを判断する（Ｓ３２５）。ガウスぼかし演算を行っていない画素が残っている場合には、拡大前画像上で注目画素を順次移動させながら繰り返しＳ３１０〜Ｓ３２５により注目画素とその近隣に位置する画素の画像データに対してガウスぼかしを行う演算を行う。全画素についてガウスぼかし演算を行った場合には、本フローを終了する。
すると、図８の中段に示すように、拡大前画像の画像データＤ１からガウスぼかし処理後の画像データＤ１’が生成される。ガウスぼかし処理が行われた画像データＤ１’は、元の拡大前画像の各画素に対応したドットマトリクス状の画素で階調表現するデータである。
【００３９】
ガウスぼかし処理が終了すると、図５のＳ２１０に進み、ガウスぼかしが行われた画像データに基づいてゼロクロス位置Ｚが取得され、拡大画像のエッジの領域を表すエッジ情報が生成される。
なお、ガウスぼかし処理を行わなくてもエッジ情報を生成することは可能であるが、ガウスぼかし処理を行うことによりノイズが除去されるのでエッジ位置の精度が向上し、より滑らかとされたエッジの位置を表す情報を生成することができる。ここで、ガウスぼかし処理を行うのは拡大前画像のノイズを除去するため、上述したフィルタＦ１を用いた処理等、比較的強度の小さいガウスぼかし処理を行うことが望ましい。
【００４０】
図５のＳ２１０では、ガウスぼかし処理が行われた画像データに対してラプラシアンフィルタを用いたラプラシアンフィルタ演算処理を行う。
図９は、上記ラプラシアンフィルタ演算処理をフローチャートにより示している。
まず、ガウスぼかし処理が行われた画像データで階調表現される拡大前画像上で注目画素の位置を設定する（Ｓ４０５）。次に、図７で示したように、注目画素とその近隣に位置する３×３画素の輝度値ｄ１〜ｄ９を取得する（Ｓ４１０）。
なお、図８の中段に示すように、注目画素が拡大前画像の端部にある場合には、拡大前画像の端部の画素における輝度値が拡大前画像の外側にあるものとして輝度値を取得する。
そして、図９のフロー中に示した公知の８方向ラプラシアンフィルタＦ２を用いてラプラシアンフィルタ演算を行い、図３で模式的に示したようにドットマトリクス状の画素で階調表現された中間データＤ２を生成する（Ｓ４１５）。
【００４１】
ここで、注目画素に対応するフィルタＦ２の係数ｆ５の周囲にある係数ｆ１〜ｆ４，ｆ６〜ｆ９は全て１とされ、中心にある係数ｆ５は係数ｆ１〜ｆ４，ｆ６〜ｆ９の総和の符号を逆にした−８とされている。すなわち、フィルタＦ２を用いてフィルタ演算を行うことにより、以下の式のように、注目画素の周囲にある画素の輝度値と注目画素の輝度値との差分の総和を演算してラプラシアンフィルタ演算後の階調データｄ’とすることになる。
ｄ’＝Σ（ｄｉ−ｄ５）    …(3)
ただし、ｉ＝１〜４，６〜９である。
このように、ラプラシアンフィルタ演算を行うことにより、注目画素とその近隣に位置する画素との画像データの差分を演算し、演算結果に基づいて同注目画素の近隣に存在するエッジの位置が表されたゼロクロス位置Ｚを取得することができる。
【００４２】
なお、ラプラシアンフィルタは、拡大前画像の種類等に応じて様々なフィルタを採用することができる。
図１０の上段に示すように、上記フィルタＦ２とは符号が逆とされた８方向ラプラシアンフィルタを用いてもよいし、図の下段に示すように、演算処理を高速化させるために図７で示した演算用フィルタＦの各係数のうちｆ２，ｆ４，ｆ５，ｆ６，ｆ８のみを備える４方向ラプラシアンフィルタを用いてもよい。
むろん、ラプラシアンフィルタ演算を行う代わりに、縦横方向別に差分フィルタ等のフィルタを用いて演算を行ってもよいし、フィルタ演算の概念に入らないような差分演算を行ってもよい。
【００４３】
そして、ガウスぼかし処理が行われた拡大前画像の全画素について、ラプラシアンフィルタ演算を行ったか否かを判断する（Ｓ４２０）。ラプラシアンフィルタ演算を行っていない画素が残っている場合には、同拡大前画像上で注目画素を順次移動させながら繰り返しＳ４０５〜Ｓ４２０により注目画素とその周囲に位置する画素の画像データに対してラプラシアンフィルタを用いた演算を行って中間データを生成する。全画素についてラプラシアンフィルタ演算を行った場合には、本フローを終了する。
すると、図８の下段に示すように、ガウスぼかし処理後の画像データＤ１’から中間データＤ２が生成される。ラプラシアンフィルタ演算処理が行われて生成される中間データは、元の拡大前画像の各画素に対応したドットマトリクス状の画素で階調表現するデータである。
【００４４】
その後、図５のＳ２１５に進み、ラプラシアンフィルタ演算処理により生成された中間データに基づいてゼロクロス位置Ｚが取得され、拡大画像のエッジの領域を表すエッジ情報が生成される。
ラプラシアンフィルタ演算処理を行ってエッジの位置を検出することにより、簡易な構成で精度よくエッジの位置を表す情報を取得することができ、精度よく拡大画像のエッジの領域を表す情報を生成することができる。
【００４５】
ラプラシアンフィルタ演算処理を行うと、ゼロクロス位置Ｚを記憶するバッファ領域をＲＡＭ内に確保する（Ｓ２１５）。次に、生成した中間データに対応するドットマトリクス状の画素上で注目画素の位置を設定する（図５のＳ２２０）。そして、注目画素の中間データと注目画素の右隣（近隣）に位置する画素（右隣画素）の中間データの符号が異なるか否かを判断する（Ｓ２２５）。ここで、注目画素の設定順序は左から右方向であるので、右隣画素は注目画素とされておらず、現在の注目画素との間でゼロクロスが存在するか否かを判定する意義がある。符号が異ならない場合、注目画素と右隣画素との間にゼロクロスはほとんど存在しないため、Ｓ２４５のゼロクロス位置算出処理を行わずにＳ２５０に進む。
【００４６】
Ｓ２２５で符号が異なると判断した場合、ゼロクロス位置を算出すべきか否かを判断するため、現在位置である注目画素の中間データの絶対値と右隣画素の中間データの絶対値の少なくとも一方が所定のしきい値Ｌ１以上であるか否かを判断する（Ｓ２３０）。むろん、しきい値Ｌ１より大であるか否かを判断するようにしてもよい。拡大前画像の輝度値が２５６階調であるとき、中間データの階調値も２５６階調となり、しきい値Ｌ１を例えば２５６階調の略中間値である１２８等とすればよい。両絶対値の少なくとも一方がしきい値Ｌ１以上である場合、ゼロクロス位置を算出すべきと判断したことになり、Ｓ２４５に進んでゼロクロス位置算出処理を行う。エッジが存在するのは主に両画素間の輝度値の差が大きく、中間データの符号が異なるときであるので、精度よくエッジの位置を表す情報を取得することができ、その結果、精度よく拡大画像のエッジの領域を表す情報を生成することが可能となる。
【００４７】
注目画素の中間データの絶対値と右隣画素の中間データの絶対値がいずれも所定の閾値より小（または以下）である場合、さらにゼロクロス位置を算出すべきか否かを判断するため、ガウスぼかし処理が行われた拡大前画像上で注目画素を中心とする３×３画素（注目画素とその周囲の画素）の輝度値の最大値と最小値の差（画像データの異なり度合）を求める（Ｓ２３５）。なお、ガウスぼかし処理が行われる前の拡大前画像上で注目画素を中心とする３×３画素の輝度値の最大値と最小値の差を求めてもよい。そして、求めた差が所定の閾値Ｌ２以上であるか否かを判断する（Ｓ２４０）。むろん、しきい値Ｌ２より大であるか否かを判断するようにしてもよい。ガウスぼかし処理後の拡大前画像の輝度値が２５６階調であるとき、しきい値Ｌ２を例えば５０等とすればよい。輝度値の最大値と最小値の差がしきい値Ｌ２以上である場合、ゼロクロス位置を算出すべきと判断したことになり、Ｓ２４５に進んでゼロクロス位置算出処理を行う。注目画素と右隣画素の輝度値の差が小さいためにラプラシアンフィルタ演算処理を行った結果Ｓ２３０ではゼロクロスを検出することができなくても、注目画素を中心とした３×３画素の輝度値の差が大きいことがあるので、ゼロクロスの検出精度を向上させることができる。すなわち、精度よくエッジの位置を表す情報を取得することができ、その結果、精度よく拡大画像のエッジの領域を表す情報を生成することが可能となる。
一方、輝度値の最大値と最小値の差がしきい値Ｌ２より小（または以下）である場合、ゼロクロス位置を算出する必要がないと判断したことになり、Ｓ２４５のゼロクロス位置算出処理を行わずにＳ２５０に進む。
なお、注目画素とその周囲の画素の画像データの異なり度合は、上記最大値と最小値との差等の最大値と最小値との組み合わせに基づく値の他、２番目に大きい値と２番目に小さい値との組み合わせに基づく値、これらに中間値も組み合わせた値、等、様々なものを採用可能である。
【００４８】
図８で示した例において、中間データＤ２に対応する画素上での注目画素がｘ＝２，ｙ＝１であるとき、注目画素の中間データは−１７０、右隣画素の中間データが４であるので、Ｓ２２５で条件成立となる。また、注目画素の中間データの絶対値が１２８以上であるので、Ｓ２３０でも条件成立となり、注目画素と右隣画素の中間データが急変しているためエッジが存在すると判断してゼロクロス位置算出処理を行うことになる。
また、中間データＤ２に対応する画素上での注目画素がｘ＝１，ｙ＝２であるとき、注目画素の中間データは−１２５、右隣画素の中間データが５３であるので、Ｓ２２５で条件成立となる。しかし、注目画素と右隣画素の中間データの絶対値はいずれも１２８より小さいので、Ｓ２３０では条件不成立となる。ここで、ガウスぼかし処理後の拡大前画像上で注目画素を中心とした３×３画素の輝度値は２１４（最大値），２０６，１８１，２０６，１７１，１１１，１６１，１０８，５６（最小値）であるので、最大値と最小値の差は２１４−５６＝１５８と５０以上になってＳ２４０で条件成立となり、注目画素を中心とした３×３画素の領域で輝度値が急変しているためエッジが存在すると判断してゼロクロス位置算出処理を行うことになる。
【００４９】
図１１は、上記Ｓ２４５で行われるゼロクロス位置算出処理をフローチャートにより示している。
まず、拡大前画像から拡大画像への拡大率Ｍを取得する（Ｓ５０５）。例えば、ディスプレイに解像度選択欄を有する印刷インターフェイス画面を表示し、解像度選択欄への操作入力から画像の拡大率を表すパラメータを取得してＲＡＭに格納すればよい。ここで、拡大率がＭであるとき、横方向（ｘ方向）の画素数をＭ倍にするとともに、縦方向（ｙ方向）の画素数もＭ倍にすることを意味するものとする。むろん、拡大率としてＭｘ，Ｍｙを取得し、横方向の画素数をＭｘ倍にし、縦方向の画素数をＭｙ倍にするようにしてよい。
【００５０】
次に、拡大率Ｍを反映させた画素の位置をＸ１、その画素の中間データをＹ１として、注目画素と隣接画素（Ｓ２４５で本処理が行われる場合には右隣画素）のＸ１，Ｙ１の関係式Ｙ１＝Ａ１・Ｘ１＋Ｂ１のＡ１，Ｂ１を算出する（Ｓ５１０）。すなわち、注目画素と隣接画素の２点のラプラシアンフィルタ適用結果から、その２点を通る直線の式を求めることになる。ここで、画素の位置Ｘ１は、注目画素と右隣画素の２点について直線の式を求める場合には拡大画像上での横方向のｘ座標であり、注目画素と下隣画素の２点について直線の式を求める場合には拡大画像上での縦方向のｙ座標である。注目画素の中間データをＬＰ０、隣接画素の中間データをＬＰ１、拡大前画像上での注目画素の位置をｘ０とすると、Ａ１，Ｂ１は以下の式により算出することができる。
Ａ１＝（ＬＰ１−ＬＰ０）／Ｍ                …(4)
Ｂ１＝ＬＰ０−Ａ１×（ｘ０×Ｍ＋Ｍ／２）    …(5)
【００５１】
Ａ１，Ｂ１を算出すると、以下の式により、拡大率Ｍを反映させたゼロクロス位置Ｚ１を算出する（Ｓ５１５）。
Ｚ１＝−Ｂ１／Ａ１    …(6)
ここで、Ｚ１は小数点以下の情報を有する値とされ、拡大前画像の画素よりも細かい単位とされている。そして、拡大前画像の画素の位置に拡大率Ｍを乗じた値であるので、ゼロクロス位置Ｚ１は拡大前画像の各画素の位置に対応させたエッジの位置を表すエッジ位置情報とされている。
以上の処理により、注目画素およびその近隣に位置する画素の位置および中間データに基づいて、中間データを略０にする位置が表されたエッジ位置情報を取得することができる。
【００５２】
ゼロクロス位置Ｚ１を算出すると、同ゼロクロス位置Ｚ１に基づいて拡大前画像のエッジの位置に対応する拡大画像のエッジの位置Ｚ１’（拡大エッジ位置情報の一種）を取得する（Ｓ５２０）。拡大画像のエッジの位置Ｚ１’は、以下の式により算出することができる。
Ｚ１’＝ＩＮＴ（Ｚ１）    …(7)
ここで、ＩＮＴは小数点以下を切り捨てる関数である。すなわち、Ｚ１’は拡大画像の画素単位で拡大画像のエッジの位置を表す数値情報とされている。
【００５３】
図１２は、拡大率Ｍが３であるときに拡大エッジ位置情報を取得する様子を模式的に示している。
拡大前画像のｘ＝１，ｙ＝２に中間データＬＰ０＝−１２５の注目画素５１があり、注目画素の右隣であるｘ＝２，ｙ＝２に中間データＬＰ１＝５３の隣接画素５２があるとする。ここで、拡大前画像の画素に対応して拡大画像の画素を区分したブロック（画素区分）５４，５５中でゼロクロス５６がどこに存在するかを上記式(4)〜(6)を用いて求める。言い換えると、拡大前画像に対応した中間データで表されるドットマトリクス状の画素上でゼロクロス５３がどこに存在するかを求めることになる。なお、拡大前画像の注目画素５１、隣接画素５２に対応してそれぞれ注目ブロック５４、隣接ブロック５５があるものとする。
図の中段下寄りに示したＸ１−Ｙ１グラフのように、Ｘ１（画素のｘ座標またはｙ座標）−Ｙ１（中間データ）平面上での注目画素と隣接画素とを結ぶ直線がＸ１軸と交差する点（Ｙ１＝０となる点）がゼロクロスである。上記例では、ｘ０＝１であるから、Ａ１＝｛５３−（−１２５）｝／３＝５９．３、Ｂ１＝−１２５−５９．３×（１×３＋３／２）＝−３９２．０となり、ゼロクロス位置はＺ１＝−（−３９２．０）／５９．３＝６．６となる。
最後に、上記式(7)を用いると、Ｚ１’＝ＩＮＴ（６．６）＝６となる。従って、拡大エッジ位置情報５７は、隣接ブロック５５内の左側にあるｘ＝６，ｙ＝７の画素の位置を表す情報となる。
【００５４】
なお、拡大前画像のｘ＝１，ｙ＝２の中間データＬＰ０が２であり、ｘ＝２，ｙ＝２の中間データＬＰ１が−２１５であるとすると、Ａ１＝（−２１５−２）／３＝−７２．３、Ｂ１＝２−（−７２．３）×（３×３＋３／２）＝７６１．５、Ｚ１＝−７６１．５／（−７２．３）＝１０．５となり、Ｚ１’＝ＩＮＴ（１０．５）＝１０となる。すなわち、拡大エッジ位置情報５７は、注目ブロック５４内の中央にあるｘ＝４，ｙ＝７の画素の位置を表す情報となる。
このように、拡大エッジ位置情報は拡大画像のブロックよりも細かい画素単位で画素の位置を表す情報とされる。拡大前画像の画素単位でエッジの位置を検出していた従来であれば、拡大画像のブロック全体をエッジの位置としたり、同ブロック内の所定位置のみをエッジの位置としていたため、拡大画像のエッジ位置の精度がよくなく、拡大画像のエッジにジャギーが目立っていた。本発明により、拡大画像のエッジ位置の精度が向上し、拡大画像のエッジのジャギーは目立たなくなる。
【００５５】
拡大画像のエッジの位置を取得すると、拡大画像のブロック内のエッジが所定数以下であるか否かを判断する（Ｓ５２５）。ブロック内にはエッジが最大４個入る可能性があるが、試験を行ったところ、所定数を２とすると、良好な精度を維持しながら高速にて拡大画像のエッジの領域を表す情報を生成することができた。ブロック内のエッジが所定数以下である場合には、拡大画像のエッジの位置Ｚ１’に対応する拡大画像上のエッジの座標値（拡大エッジ位置情報の一種）をバッファに記憶し（Ｓ５３０）、本フローを終了する。なお、同じ座標値がバッファに格納されている場合には、エッジの座標値をバッファに記憶する処理を省略することにより、拡大画像のエッジの領域を表す情報を生成する処理を高速化させている。このようにして、拡大エッジ位置情報を取得することができる。一方、ブロック内のエッジが所定数より多い場合には、Ｓ５３０の処理を行わずに本フローを終了する。なお、拡大前画像上で注目画素を順次移動させているので、拡大画像上で注目ブロックを順次移動させながら注目ブロックに入る拡大画像のエッジが所定数以下となるように注目のエッジの位置が表された拡大エッジ位置情報を取得していることになる。
【００５６】
以上の処理にて、同じブロック内で３番目以降に検出されたゼロクロスを無視することにより、ブロックに入る拡大画像のエッジが所定数以下に抑えられるので、拡大画像のエッジの領域を表す情報を生成する処理を高速化させることができる。むろん、１ブロックに対して４つのゼロクロスの座標値を格納する記憶バッファを用意しておけば、検出した全てのゼロクロスを使用して非常に高精度に拡大画像のエッジの領域を表す情報を生成することが可能となる。
【００５７】
ところで、図１３に示すように、拡大率Ｍを反映させない拡大前画像上での画素の位置と中間データとの関係式を用いてゼロクロス位置（図１２のゼロクロス５３の位置）を算出し、拡大エッジ位置情報を取得するようにしてもよい。
まず、拡大前画像上での画素の位置をＸ０、その画素の中間データをＹ０として、注目画素と隣接画素のＸ０，Ｙ０の関係式Ｙ０＝Ａ０・Ｘ０＋Ｂ０のＡ０，Ｂ０を算出する（Ｓ５５５）。注目画素の中間データをＬＰ０、隣接画素の中間データをＬＰ１、拡大前画像上での注目画素の位置をｘ０とすると、Ａ０，Ｂ０は以下の式により算出することができる。
Ａ０＝ＬＰ１−ＬＰ０                    …(8)
Ｂ０＝ＬＰ０−Ａ１×（ｘ０＋１／２）    …(9)
Ａ０，Ｂ０を算出すると、以下の式により、ゼロクロス位置Ｚ０を算出する（Ｓ５６０）。
Ｚ０＝−Ｂ０／Ａ０    …(10)
ここで、Ｚ０は小数点以下の情報を有する値とされ、拡大前画像の画素よりも細かい単位とされている。そして、ゼロクロス位置Ｚ０は拡大前画像の各画素の位置に対応させたエッジの位置を表すエッジ位置情報とされている。
【００５８】
ゼロクロス位置Ｚ０を算出すると、拡大率Ｍを取得し（Ｓ５６５）、以下の式により、拡大前画像のエッジの位置に対応する拡大画像のエッジの位置Ｚ０’を算出して取得する（Ｓ５７０）。
Ｚ０’＝ＩＮＴ（Ｚ０×Ｍ）    …(11)
すなわち、Ｚ０’は拡大画像の画素単位で拡大画像のエッジの位置を表す数値情報とされている。
拡大画像のエッジの位置を取得すると、拡大画像のブロック内のエッジが所定数以下であるか否かを判断する（Ｓ５７５）。ブロック内のエッジが所定数以下である場合には、拡大画像のエッジの位置Ｚ０’に対応する拡大画像上のエッジの座標値をバッファに記憶し（Ｓ５８０）、本フローを終了する。このようにしても、拡大エッジ位置情報を取得することができる。一方、ブロック内のエッジが所定数より多い場合には、Ｓ５８０の処理を行わずに本フローを終了する。
【００５９】
注目画素と右隣画素との間でゼロクロス位置算出処理を行うと、図５のＳ２５０に進み、注目画素と下隣画素との間で同様の処理を行う。
すなわち、注目画素の中間データと注目画素の下隣（近隣）に位置する画素（下隣画素）の中間データの符号が異なるか否かを判断する（Ｓ２５０）。ここで、注目画素の設定順序は左から右方向を上から下へ向かって繰り返しているので、下隣画素は注目画素とされておらず、現在の注目画素との間でゼロクロスが存在するか否かを判定する意義がある。符号が異ならない場合、Ｓ２７０のゼロクロス位置算出処理を行わずにＳ２７５に進む。
Ｓ２５０で符号が異なると判断した場合、現在位置である注目画素の中間データの絶対値と下隣画素の中間データの絶対値の少なくとも一方が所定のしきい値Ｌ３（例えば１２８）以上（またはより大）であるか否かを判断する（Ｓ２５５）。本実施形態ではＬ１＝Ｌ３としているが、Ｌ１とＬ３とは異なる値であってもよい。両絶対値の少なくとも一方がしきい値Ｌ３以上である場合、Ｓ２７０に進んでゼロクロス位置算出処理を行う。
【００６０】
注目画素の中間データの絶対値と下隣画素の中間データの絶対値がいずれも所定の閾値より小（または以下）である場合、ガウスぼかし処理が行われた拡大前画像上で注目画素を中心とする３×３画素の輝度値の最大値と最小値の差を求め（Ｓ２６０）、求めた差が所定の閾値Ｌ４（例えば５０）以上であるか否かを判断する（Ｓ２６５）。Ｌ２とＬ４とは異なる値であってもよい。輝度値の最大値と最小値の差がしきい値Ｌ４以上（またはより大）である場合、Ｓ２７０に進んでゼロクロス位置算出処理を行う。一方、輝度値の最大値と最小値の差がしきい値Ｌ４より小（または以下）である場合、ゼロクロス位置を算出する必要がないと判断したことになり、Ｓ２７０のゼロクロス位置算出処理を行わずにＳ２７５に進む。
【００６１】
Ｓ２７０でゼロクロス位置算出処理を行うと、ガウスぼかし処理が行われた拡大前画像の全画素についてＳ２２０〜Ｓ２７０の処理を行ったか否かを判断する（Ｓ２７５）。同処理を行っていない画素が残っている場合には、同拡大前画像上で注目画素を順次移動させながら繰り返しＳ２２０〜Ｓ２７５によりゼロクロス位置Ｚを算出して拡大エッジ位置情報を取得する処理を行う。全画素について同処理を行った場合には、本フローを終了する。このようにして、ラスタスキャンでのエッジ検出が可能となり、拡大前画像の画素よりも細かい単位で高精度にてエッジの位置を求めることができる。
すなわち、Ｓ２０５〜Ｓ２４０，Ｓ２５０〜Ｓ２６５，Ｓ２７５，図１１のＳ５０５〜Ｓ５１５の処理を行うＰＣ１０は、位置取得手段を構成し、図１１のＳ５２０〜Ｓ５３０の処理を行うＰＣ１０は、拡大位置取得手段を構成する。
【００６２】
（３−２）ゼロクロス連結処理：
ゼロクロス検出処理を終了すると、図４のＳ１１０に進み、ゼロクロス連結処理を行う。
図１４は、上記ゼロクロス連結処理をフローチャートにより示している。
まず、ガウスぼかし処理後の拡大前画像上で注目画素の位置を設定する（Ｓ６０５）。次に、拡大画像の画素を区分した３×３画素のブロック毎に、注目画素の位置に対応する注目ブロックの位置を設定する（Ｓ６１０）。
【００６３】
さらに、図１５に示すように、注目画素を中心とした３×３画素（拡大画像の３×３ブロックに相当）の輝度値（画像データＤ１’）を２値化して拡大前画像の各画素に対応した２値化データＤ６を生成する（Ｓ６１５）。注目画素が拡大前画像の端部にある場合には、拡大前画像の端部の画素における輝度値が拡大前画像の外側にあるものとして２値化データを生成する。本実施形態では、３×３画素の輝度値の最大値と最小値の平均値をしきい値Ｌ５として、各画素の輝度値がしきい値Ｌ５以上（またはより大）である場合に２値化データを１とし、しきい値Ｌ５より小（または以下）である場合に２値化データを−１としている。
その後、拡大画像の注目ブロック内に同拡大画像の画素単位とされたゼロクロス、すなわち、エッジが存在するか否かを判断する（Ｓ６２０）。注目ブロック内にエッジが存在しない（対応する拡大画像上のエッジの座標値がバッファに格納されていない）場合、拡大画像上でエッジを連結する処理を行う必要がないので、Ｓ６５５に進む。
【００６４】
注目ブロック内にエッジが存在する場合、同注目ブロック内に複数のエッジが存在するか否かを判断する（Ｓ６２５）。複数のエッジが存在する場合には後述するエッジ生成処理を行って（Ｓ６３０）Ｓ６３５に進み、エッジが一つしか存在しない場合には即座にＳ６３５に進む。
Ｓ６３５では、注目ブロックの右隣のブロック、左下の隣接ブロック、下隣のブロック、右下の隣接ブロックのいずれかにゼロクロスが存在するか否かを判断する。注目ブロックの設定順序は左から右方向を上から下へ向かって繰り返しているので、これらの隣接ブロックは注目ブロックとされておらず、ゼロクロスが存在するか否かを判定する意義がある。本実施形態では、注目ブロックが拡大画像の端部にあり、隣接ブロックが拡大画像外となる場合には、その隣接ブロックについてはゼロクロスが存在しないものとしてエッジを連結する処理を行わない。むろん、拡大画像の端部のブロックにおけるエッジが拡大前画像の外側にある（折り返されている）ものとしてエッジを連結する処理を行ってもよい。
これらの隣接ブロックにゼロクロスが存在しない場合には、拡大画像上でエッジを連結する処理を行う必要がないので、Ｓ６５５に進む。
上記隣接ブロックにゼロクロスが存在する場合、２値化データと、所定の複数のマッチングパターンと、に基づいてエッジの向きを決定し、エッジの向きを表す情報を取得する（Ｓ６４０）。
【００６５】
図１６は、検出用の３×３フィルタマトリクスであるマッチングパターンの一例を模式的に示している。図において、エッジの向き９０度、３０度、４５度に対応して、それぞれ９０度用のマッチングパターンが１２種類、３０度用のマッチングパターンが１６種類、４５度用のマッチングパターンが８種類示されている。これらの他、６０度用、１３５度用、１８０度用、等のマッチングパターンもそれぞれ複数種類用意されている。むろん、マッチングパターンは、図に示したものに限定されない。
２値化データとマッチングパターンとがマッチ（一致）するかどうかは、図７を用いて説明すると、３×３の各画素の２値化データ（ｄ１〜ｄ９とする）と、マッチングパターンの各要素値（ｆ１〜ｆ９とする）との積の総和Ｓ１＝Σｆｉ・ｄｉを算出し、この総和Ｓ１がマッチングパターンの各要素値の絶対値の総和Ｓ２＝Σ｜ｆｉ｜と等しくなるか否かにより判断する。Ｓ１＝Ｓ２となれば拡大前画像のエッジの傾きがマッチングパターンとマッチしたことになり、マッチしたマッチングパターンに対応するエッジの向きを表す情報を取得する。
【００６６】
図１５の例では、２値化データＤ６と図１６の「90-1」の９０度用マッチングパターンとの総和Ｓ１を算出すると、−２となる。「90-1」のマッチングパターンにおける各要素の絶対値の総和Ｓ２は６であるので、２値化データＤ６は「90-1」のマッチングパターンとマッチしない（一致しない）ことになる。一方、２値化データＤ６と図１６の「30-12」の３０度用マッチングパターンとの総和Ｓ１を算出すると、５となる。「30-12」のマッチングパターンにおける各要素の絶対値の総和Ｓ２は５であるので、２値化データＤ６は「30-12」のマッチングパターンとマッチ（一致）することになる。この場合、エッジの向きは３０度と決定される。
このように、マッチングパターンを用いるという簡易な構成で確実に拡大画像のエッジどうしを連結することができ、確実に拡大画像のエッジを精度よく細線で形成する処理を高速にて行うことが可能となる。
【００６７】
むろん、マッチングパターンを用いる以外にも、二つの画素値の差（輝度値差、ＲＧＢ値差、各色値の差、等）が小さくなる方向をエッジの向きに決定してもよいし、近隣する画素のエッジの方向を反映させてエッジの向きを決定してもよいし、近隣する画素のエッジの強度を反映させてエッジの方向を決定してもよい。また、処理は複雑になるものの、ベクトルの概念を導入してエッジの方向を決定してもよい。さらに、それらの組み合わせによりエッジの向きを決定してもよい。
【００６８】
エッジの向きを決定すると、注目ブロック内のエッジと隣接ブロック内のエッジとを結ぶ直線の傾きが、マッチングパターンを用いて決定されたエッジの向きと一致するか否かを判断する（Ｓ６４５）。具体的には、各マッチングパターンに対してパターンの角度を含むエッジの向きの許容範囲を設けておき、両ゼロクロスを結ぶ直線の向きが同許容範囲内に入るか否かにより判断する。ここで、拡大画像上におけるｘｙ座標平面での注目ブロック内のエッジの位置を（ｘ１，ｙ１）、隣接ブロック内のエッジの位置を（ｘ２，ｙ２）、両エッジの位置を通る直線の傾きをＧとするとき、Ｇは以下の式により算出することができる。
Ｇ＝（ｙ２−ｙ１）／（ｘ２−ｘ１）    …(12)
そして、マッチングパターン別に直線の傾きＧの許容範囲の下限値Ｇ１と上限値Ｇ２とを設けておき、Ｇ１≦Ｇ≦Ｇ２が成立するときに対応するマッチングパターンのエッジの向きと一致していると判断すればよい。
エッジの向きが一致するマッチングパターンが存在する場合にはＳ６５０に進んで後述するエッジ生成処理を行い、エッジの向きが一致するマッチングパターンが存在しない場合にはＳ６５５に進む。なお、ある隣接ブロック内に複数のエッジが存在する場合には、それぞれのエッジと注目ブロック内のエッジとを連結するように、繰り返しエッジ生成処理を行う。
【００６９】
図１７は、上記Ｓ６３０，Ｓ６５０で行われるエッジ生成処理をフローチャートにより示している。
まず、拡大画像上でエッジとされた二画素間の横方向（ｘ方向）の距離差が縦方向（ｙ方向）の距離差以上（またはより大）であるか否かを判断する（Ｓ７０５）。条件成立の場合にはＳ７１０に進み、条件不成立の場合にはＳ７３０に進む。なお、エッジとされた二画素を通る直線の傾きＧが求められているので、この傾きＧの絶対値が１以下（またはより小）である場合にＳ７１０に進み、同傾きＧの絶対値が１より大（または以上）である場合にＳ７３０に進むようにしてもよい。
横方向の距離差が縦方向の距離差以上である場合、まず、拡大画像上で横方向の画素の位置を設定する（Ｓ７１０）。次に、設定した横方向の位置で、拡大画像のエッジの領域とする縦方向の画素の位置を取得する（Ｓ７１５）。さらに、取得した画素の位置（具体的には、座標値）をエッジの領域とする画素の位置を表す連結位置情報としてバッファに格納する（Ｓ７２０）。そして、次の横方向の画素の位置が存在するか否かを判断する（Ｓ７２５）。連結位置情報を取得していない横方向の画素の位置が存在する場合には、横方向の画素の位置を画素単位で順次移動させながら繰り返しＳ７１０〜Ｓ７２５の処理を行う。横方向の画素の全位置について連結位置情報を取得した場合には、Ｓ７５０に進む。
【００７０】
図１８の左側は、横方向の距離差が縦方向の距離差以上である場合に連結位置情報を取得する様子を示している。ここで、エッジ画素６１ａ，ｂは、拡大画像の画素単位でエッジとされた画素である。そして、横方向の画素の位置を画素単位で順次移動させながら、例えば連結画素６１ｃ，６１ｄ，６１ｅの順に当該画素の座標値を連結位置情報として取得する。縦方向の画素の位置を画素単位で順次移動させると、縦方向の位置が同じ連結画素６１ｃ，ｄのいずれかが抜けてしまうため良好なエッジの線を得ることができない。本発明では、図の左側のように横方向の距離差が縦方向の距離差以上であるときに連結画素の抜けを生じさせないため、良好なエッジを細線で得ることが可能となっている。
【００７１】
横方向の距離差が縦方向の距離差より小さい場合、今度は、拡大画像上で縦方向の画素の位置を設定する（Ｓ７３０）。次に、設定した縦方向の位置で、拡大画像のエッジの領域とする横方向の画素の位置を取得する（Ｓ７３５）。さらに、取得した画素の座標値を連結位置情報としてバッファに格納する（Ｓ７４０）。そして、次の縦方向の画素の位置が存在するか否かを判断する（Ｓ７４５）。縦方向の画素の位置が存在する場合には縦方向の画素の位置を画素単位で順次移動させながら繰り返しＳ７３０〜Ｓ７４５の処理を行い、縦方向の画素の全位置について連結位置情報を取得した場合にはＳ７５０に進む。
【００７２】
図１８の右側は、縦方向の距離差が縦方向の距離差以上である場合にエッジ画素６２ａ，ｂ間で連結位置情報を取得する様子を示している。この場合、縦方向の画素の位置を画素単位で順次移動させながら、例えば連結画素６２ｃ，６２ｄ，６２ｅの順に当該画素の座標値を連結位置情報として取得する。横方向の距離差が縦方向の距離差より小さいときでも連結画素の抜けを生じさせないため、良好なエッジを細線で得ることが可能となっている。
以上の処理により、近隣する拡大画像のエッジどうしを連結してエッジ情報を生成する際、拡大画像上で横方向と縦方向とで距離の差が大きい方向の画素単位毎に同拡大画像のエッジの領域とする画素の位置を表す情報を取得する。
【００７３】
Ｓ７５０では、上記処理により取得した連結位置情報を含めて、拡大画像のエッジの領域を表すエッジ情報を生成し、本フローを終了する。
図１９に示すように、拡大画像Ｉ２のハッチングを付した位置がエッジ画素の位置であり、○印を付した位置が連結の結果新たにエッジの領域となった連結画素の位置であるとする。図１１で示したゼロクロス位置算出処理により、拡大前画像の位置に対応させて拡大画像の画素単位とされたエッジ画素の位置を表す拡大エッジ位置情報Ｄ４が取得されている。この拡大エッジ位置情報Ｄ４と、エッジどうしを連結する連結位置情報Ｄ７とが合わされて、画像拡大後のエッジの領域を表すエッジ情報Ｄ５が生成される。
このようにして、拡大エッジ位置情報に基づいて近隣する拡大画像のエッジどうしを連結して拡大画像のエッジの領域を表す情報を生成することができる。そして、簡易な構成で確実に拡大画像のエッジどうしを連結することができ、また、近隣する拡大画像のエッジどうしの間で画素単位毎にエッジの領域とされるので、確実に拡大画像のエッジを精度よく細線で形成することが可能となる。
【００７４】
図１４のＳ６５０のエッジ生成処理を終了すると、拡大画像の全ブロックについてエッジ情報を生成するＳ６０５〜Ｓ６５０の処理を行ったか否かを判断する（Ｓ６５５）。同処理を行っていないブロックが残っている場合には、拡大前画像上で注目画素を順次移動させるとともに拡大画像上で注目ブロックを順次移動させながら繰り返しＳ６０５〜Ｓ６５５によりエッジ情報を生成する処理を行う。全ブロックについて同処理を行った場合には、本フローを終了する。
【００７５】
以上の処理により、拡大画像の画素単位でエッジの領域が形成されるので、拡大画像のエッジを精度よく細線で形成して鮮鋭化等の処理を容易に行うことが可能であるとともに、エッジのジャギーを少なくさせることが可能となる。従って、生成されるエッジ情報を用いて拡大画像を生成すると、ジャギーの少ない滑らかな拡大エッジ画像を得ることができ、拡大後でもジャギーの少ない拡大画像を得ることが可能となる。むろん、画像の拡大率を上げても、滑らかなエッジを細線にて得ることができる。その際、エッジ位置を表す情報を取得するためにエッジ検出用の拡大画像を生成する必要がないので、拡大前画像全体の画像データに対して直交変換のような数学的手法を用いる場合のようにエッジ検出用の拡大画像を別途格納するための記憶領域を多く確保する必要はなく、少ない容量の記憶領域で拡大画像のエッジの領域を表す情報を生成することができる。
また、エッジが存在するブロックのみパターンマッチング処理を行うため、パターンを増やしたりしても、エッジ情報を生成する処理の速度低下が少なくて済む。
【００７６】
なお、拡大後の拡大画像に対応する滑らかなエッジを得ることができるので、２次元デジタル画像の拡大処理にこの方法を適用すれば、ジャギーの少ない拡大画像を得ることができる。
また、エッジ位置が明確に分かるので、エッジ鮮鋭化処理にも役立つ。
【００７７】
（４）変形例：
本発明のエッジ生成装置は、様々な構成が可能である。
例えば、プリンタは、コンピュータと一体化されたものであってもよい。上述したフローについては、コンピュータ本体内で実行する以外にも、一部または全部をプリンタあるいは専用の画像出力装置で実行するようにしてもよい。
画像データを構成する多数の画素は、縦横に整然と並んだドットマトリクス状とされる以外にも、様々な構成が考えられる。例えば、正六角形を密に並べたような蜂の巣状に整然と並んだドットマトリクス状の画素から画像データを構成してもよい。
以上説明したように、本発明によると、種々の態様により、拡大画像のエッジを精度よく細線で形成して鮮鋭化等の処理を容易に行うことが可能であるとともに、エッジのジャギーを少なくさせることが可能なエッジ生成装置およびエッジ生成プログラムを提供することができる。また、エッジ生成方法としても適用可能である。
【図面の簡単な説明】
【図１】印刷システムのハードウェア構成の概略を示すブロック図。
【図２】プリンタのハードウェア構成の概略を示すブロック図。
【図３】エッジ生成装置の構成の概略を模式的に示す図。
【図４】エッジ生成装置が行う処理を示すフローチャート。
【図５】ゼロクロス検出処理を示すフローチャート。
【図６】ガウスぼかし処理を示すフローチャート。
【図７】演算用フィルタを用いて演算を行う様子を説明する図。
【図８】拡大前画像の画像データから中間データを生成する様子を模式的に示す図。
【図９】ラプラシアンフィルタ演算処理を示すフローチャート。
【図１０】ラプラシアンフィルタを示す図。
【図１１】ゼロクロス位置算出処理を示すフローチャート。
【図１２】拡大エッジ位置情報を取得する様子を模式的に示す図。
【図１３】変形例にかかるゼロクロス位置算出処理を示すフローチャート。
【図１４】ゼロクロス連結処理を示すフローチャート。
【図１５】２値化データを生成してエッジの向きを決定する様子を模式的に示す図。
【図１６】マッチングパターンの一例を模式的に示す図。
【図１７】エッジ生成処理を示すフローチャート。
【図１８】連結位置情報を取得する様子を模式的に示す図。
【図１９】拡大エッジ位置情報と連結位置情報とを合わせてエッジ情報を生成する様子を模式的に示す図。
【符号の説明】
１０…パーソナルコンピュータ（ＰＣ）、１１…ＣＰＵ、１２…ＲＯＭ、１３…ＲＡＭ、１４…ハードディスク（ＨＤ）、１５…ＣＤ−ＲＯＭドライブ、１６…フレキシブルディスク（ＦＤ）ドライブ、１７ａ〜ｅ…インターフェイス（Ｉ／Ｆ）、１８ａ…ディスプレイ、１８ｂ…キーボード、１８ｃ…マウス、２０…インクジェットプリンタ、３０…デジタルカメラ、５１…注目画素、５２…隣接画素、５３，５６…ゼロクロス、５４…注目ブロック、５５…隣接ブロック、５７…拡大エッジ位置情報、６１ａ，ｂ，６２ａ，ｂ…エッジ画素、６１ｃ〜ｅ，６２ｃ〜ｅ…連結画素、１００…印刷システム、Ｄ１…画像データ、Ｄ２…中間データ、Ｄ３…エッジ位置情報、Ｄ４…拡大エッジ位置情報、Ｄ５…エッジ情報、Ｄ６…２値化データ、Ｄ７…連結位置情報、Ｄ８…階調データ、Ｉ１…拡大前画像、Ｉ１ｕ…画素、Ｉ２…拡大画像、Ｉ２ｄ…画素区分、Ｉ２ｕ…画素、Ｕ０…エッジ生成装置、Ｕ１…位置取得手段、Ｕ２…エッジ生成手段、Ｕ２１…拡大位置取得手段、Ｕ２２…連結手段
【図１】
2004207923.tif 000004
【図２】
2004207923.tif 000005
【図３】
2004207923.tif 000006
【図４】
2004207923.tif 000007
【図５】
2004207923.tif 000008
【図６】
2004207923.tif 000009
【図７】
2004207923.tif 000010
【図８】
2004207923.tif 000011
【図９】
2004207923.tif 000012
【図１０】
2004207923.tif 000013
【図１１】
2004207923.tif 000014
【図１２】
2004207923.tif 000015
【図１３】
2004207923.tif 000016
【図１４】
2004207923.tif 000017
【図１５】
2004207923.tif 000018
【図１６】
2004207923.tif 000019
【図１７】
2004207923.tif 000020
【図１８】
2004207923.tif 000021
【図１９】
2004207923.tif 000022