(57)【特許請求の範囲】
【請求項１】
ドットマトリクス状の各画素について階調表現した画像データを入力する画像入力機能と、
上記画像データに平滑化処理を行なう平滑化処理機能と、
平滑化処理した画像データをサンプリングするサンプリング処理機能と、
サンプリングした画像データの明度、色相または彩度に応じた回転角度で非円形のブラシ図形を回転させ、同画像データで前記回転後のブラシ図形のブラシ描画を行う描画機能とをコンピュータに実現させることを特徴とする画像フィルタプログラム。
【請求項２】
上記請求項１に記載の画像フィルタプログラムにおいて、
上記平滑化処理機能では、平滑度合いに関する演算のパラメータを入力可能であり、同入力されたパラメータに基づいて平滑化処理を行うことを特徴とする画像フィルタプログラム。
【請求項３】
上記請求項１または請求項２に記載の画像フィルタプログラムにおいて、
上記サンプリング処理機能では、サンプリングレートを入力可能であり、同入力されたサンプリングレートでサンプリングを実行することを特徴とする画像フィルタプログラム。
【請求項４】
上記請求項１〜請求項３のいずれか一項に記載の画像フィルタプログラムにおいて、
上記描画機能では、上記ブラシ描画における非円形の形状を選択可能であり、選択された非円形の形状で描画を行うことを特徴とする画像フィルタプログラム。
【請求項５】
上記請求項１〜請求項４のいずれか一項に記載の画像フィルタプログラムにおいて、
上記描画機能では、上記ブラシ描画における非円形の形状の大きさを選択可能であり、選択された大きさで描画を行うことを特徴とする画像フィルタプログラム。
【請求項６】
上記請求項１〜請求項５のいずれか一項に記載の画像フィルタプログラムにおいて、
上記描画機能では、上記ブラシ図形の大きさを上記サンプリングした画像データの画素値に応じて変更可能としたことを特徴とする画像フィルタプログラム。
【請求項７】
上記請求項１〜請求項６のいずれか一項に記載の画像フィルタプログラムにおいて、
上記描画機能では、上記サンプリングした画像データの明度、色相または彩度に応じて上記ブラシ図形を段階的に回転させるときの回転角度の範囲の分割数を選択可能であり、選択された分割数に対応する回転角度の単位で上記ブラシ図形を段階的に回転させて同画像データで前記回転後のブラシ図形のブラシ描画を行うことを特徴とする画像フィルタプログラム。
【請求項８】
ドットマトリクス状の各画素について階調表現した画像データを入力する画像入力手段と、
上記画像データに平滑化処理を行なう平滑化処理手段と、
平滑化処理した画像データをサンプリングするサンプリング処理手段と、
サンプリングした画像データの明度、色相または彩度に応じた回転角度で非円形のブラシ図形を回転させ、同画像データで前記回転後のブラシ図形のブラシ描画を行う描画手段とを具備することを特徴とする画像フィルタ。
【請求項９】
ドットマトリクス状の各画素について階調表現した画像データを入力する画像入力工程と、
上記画像データに平滑化処理を行なう平滑化処理工程と、
平滑化処理した画像データをサンプリングするサンプリング処理工程と、
サンプリングした画像データの明度、色相または彩度に応じた回転角度で非円形のブラシ図形を回転させ、同画像データで前記回転後のブラシ図形のブラシ描画を行う描画工程とを実行することを特徴とする画像処理方法。
【請求項１０】
コンピュータに実行させる画像フィルタプログラムを記録した媒体であって、
ドットマトリクス状の各画素について階調表現した画像データを入力する画像入力機能と、
上記画像データに平滑化処理を行なう平滑化処理機能と、
平滑化処理した画像データをサンプリングするサンプリング処理機能と、
サンプリングした画像データの明度、色相または彩度に応じた回転角度で非円形のブラシ図形を回転させ、同画像データで前記回転後のブラシ図形のブラシ描画を行う描画機能とを実現させることを特徴とする画像フィルタプログラムを記録した媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像フィルタプログラム、画像フィルタ、画像処理方法および画像フィルタプログラムを記録した媒体に関する。
【０００２】
【従来の技術】
従来より、コンピュータ上で画像データに各種のフィルタを掛ける処理が行われている。例えば、画像をより美しく見せたり修正したりする意味で特定の色を強調するものもあるし、実際の画像とは全く異なるものの面白みのある特殊な効果を与えるためにエンボスを掛けるようなものもある。
【０００３】
このようなフィルタは、ドットマトリクス状の各画素について階調表現した画像データを入力し、各画素ごとの画像データに基づいて所定の演算を行なっている。
【０００４】
【発明が解決しようとする課題】
上述した従来の画像フィルタにおいて、特に後者の特殊な効果を与えるものについては、常に新しい効果が望まれており、新たな効果を与えるフィルタの開発が日夜行われている。
本発明は、上記課題にかんがみてなされたもので、新たな面白みのある効果を与えることが可能な画像フィルタプログラム、画像フィルタ、画像処理方法および画像フィルタプログラムを記録した媒体の提供を目的とする。
【０００５】
【課題を解決するための手段】
上記目的を達成するため、請求項１にかかる発明は、ドットマトリクス状の各画素について階調表現した画像データを入力する画像入力機能と、上記画像データに平滑化処理を行なう平滑化処理機能と、平滑化処理した画像データをサンプリングするサンプリング処理機能と、サンプリングした画像データの明度、色相または彩度に応じた回転角度で非円形のブラシ図形を回転させ、同画像データで前記回転後のブラシ図形のブラシ描画を行う描画機能とをコンピュータに実現させる構成としてある。
【０００６】
上記のように構成した請求項１にかかる発明においては、画像入力機能でドットマトリクス状の各画素について階調表現した画像データを入力し、平滑化処理機能で上記画像データに平滑化処理を行なう。平滑化処理を行うことにより、画素間で画像データの大きな変化はなくなり、近隣画素間では全般的に緩やかに変化することになる。
次に、平滑化処理した画像データをサンプリング処理機能でサンプリングするが、上述したように画像データ近隣画素間で緩やかに変化しており、サンプリングされた画素についても近隣のもの同士では大きな変化はない。従って、サンプリングした画像データに基づいて描画機能が回転角度パラメータとしたときにも、近隣のもの同士で大きな回転角度の変化はなく、近隣の画素については緩やかに角度が変化する。そして、サンプリングした画像データの明度、色相または彩度に応じた回転角度で非円形のブラシ図形を回転させ、同画像データで前記回転後のブラシ図形のブラシ描画を行うと、近隣の画素同士で大きく変化することなく流れるように表現された画像が描画される。また、明度、色相または彩度に応じた回転角度で非円形のブラシ図形が回転するので、流れが表現されやすくなる。
【０００７】
ここで、画像入力機能は画像データを入力するが、これは単に以下の処理で画像データを扱えるようにするものであればよい。例えば、外部からの画像データの入力に限らず、アプリケーションがＲＡＭのワークエリアに保持している画像データの開始アドレスや終了アドレスを取得することにより、同画像データにアクセスできるようにするというものでも構わない。また、単一のコンピュータ内に保持されている画像データではなく、ネットワーク上に存在する他のコンピュータ内に保持されている画像データにアクセスして以下の画像処理を実現できるようにするというものでも構わない。
【０００８】
平滑化処理機能は、一般的には注目画素の画像データに近隣画素の画像データを加えることによって実現されるが、特にその手法が限定されるものではない。また、各手法に応じて平滑度合いや範囲も変更可能である。そのようにした好適な一例として、請求項２にかかる発明は、上記請求項１に記載の画像フィルタプログラムにおいて、上記平滑化処理機能では、平滑度合いに関する演算のパラメータを入力可能であり、同入力されたパラメータに基づいて平滑化処理を行う構成としてある。
【０００９】
上記のように構成した請求項２にかかる発明においては、平滑度合いに関する演算のパラメータを入力可能であり、上記平滑化処理機能では同入力されたパラメータに基づいて平滑化処理を行う。平滑化によって近隣画素間で画像データに大きな変化が無くなるが、平滑化の度合いが大きければより変化は緩やかになる。例えば、ブラシ画像が比較的大きなものであって平滑化度合いが小さいと、近隣画素間でも画像データは大きく変化し、それによって回転角度パラメータも大きく変わるので近隣画素間でブラシ画像に緩やかな流れを表現させにくくなる。従って、ブラシ画像が大きければ平滑化の度合いも大きくするなど、適宜、選択する意味がある。
【００１０】
ブラシ画像は、通常、ある一定の画像データによって所定の形状を塗りつぶしたものである。形状が小さな円形であったり、四角であったり、楕円であったりする。このようなブラシ画像はサンプリングされた画素を基準として描画され、密にサンプリングされればブラシ画像は密に重なり合うし、粗くサンプリングされればブラシ画像も粗く重なり合う。また、この場合は下地も残る。
これを有効に利用できるようにする一例として、請求項３にかかる発明は、上記請求項１または請求項２に記載の画像フィルタプログラムにおいて、上記サンプリング処理機能では、サンプリングレートを入力可能であり、同入力されたサンプリングレートでサンプリングを実行する構成としてある。
【００１１】
上記のように構成した請求項３にかかる発明においては、サンプリングレートを入力可能であり、上記サンプリング処理機能は同入力されたサンプリングレートでサンプリングを実行する。
入力されるサンプリングレートを粗くすれば下地が残りやすくなって個々のブラシ画像の形状が確認でき易くなるし、密にすればほぼ下地も残らなくなるなど、様々な表現が実現される。
回転角度パラメータはサンプリングした画像データに基づいて決定するが、画像データが単一のパラメータからなるものでないときには各種の利用方法が可能である。その一例として、上記請求項１〜請求項３のいずれか一項に記載の画像フィルタプログラムにおいて、上記描画機能では、サンプリングした画像データの明度、色相または彩度に応じた回転角度で非円形のブラシ図形を回転させ、同画像データで前記回転後のブラシ図形のブラシ描画を行う構成としてもよい。
【００１２】
上記のように構成した発明においては、サンプリングした画像データの明度に応じた回転角度パラメータを設定し、同設定した回転角度のブラシ画像を描画する。
画像データの利用方法として色相や彩度や明度といったものを利用可能であるが、明度は他のパラメータと比べて比較的演算も容易である。
上記のように構成した発明によれば、明度に応じた回転角度パラメータを設定し、演算が容易で、かつ他のパラメータと比較して大きな変化が少ないので、流れを表現しやすくなる。
描画される単位となるブラシ画像によっても画像表現は大きく変わるため、請求項４にかかる発明は、上記請求項１〜請求項３のいずれか一項に記載の画像フィルタプログラムにおいて、上記描画機能では、上記ブラシ描画における非円形の形状を選択可能であり、選択された非円形の形状で描画を行う構成としてある。
【００１３】
上記のように構成した請求項４にかかる発明においては、好みに応じてブラシ描画における非円形の形状を選択する。例えば、木の葉型のような単純な形態を選んでも良いし、より複雑な形、足形や、数字、文字、記号といったものも可能である。ただし、いずれにしても縦長形体の方が回転角度による流れが分かりやすくなる。
また、形状のみならず、その大きさによっても画像表現は大きく変わるため、請求項５にかかる発明は、上記請求項１〜請求項４のいずれか一項に記載の画像フィルタプログラムにおいて、上記描画機能では、上記ブラシ描画における非円形の形状の大きさを選択可能であり、選択された大きさで描画を行う構成としてある。
【００１４】
上記のように構成した請求項５にかかる発明においては、好みに応じてブラシ描画における非円形の形状の大きさを選択する。例えば、同じ木の葉型のブラシ図形であっても小さなサイズのものから大きなものまで選択でき、選択された大きさで描画を行う。さらに、サイズの大きさはサンプリングレートとの関連させて変更しても良い。例えば、サンプリングレートを粗くした場合にブラシ画像のサイズを大きくし、サンプリングレートを密にした場合にブラシ画像のサイズを小さくすれば、下地の残り具合を同程度にするということも可能となる。
【００１５】
また、ブラシ形状の大きさを一つの画像で一律とする必要もなく、適宜変化させることも可能であり、請求項６にかかる発明は、上記請求項１〜請求項５のいずれか一項に記載の画像フィルタプログラムにおいて、上記描画機能では、上記ブラシ図形の大きさを上記サンプリングした画像データの画素値に応じて変更可能とした構成としてある。
上記のように構成した請求項６にかかる発明においては、一つ一つのブラシ図形の大きさが各画素の画素値に依存しているため、各画素ごとに変化する。従って、明るさによって回転角度が変化するような場合には、その明るさによってブラシ図形自体を変化させることも可能であり、より面白みを増す表現となる。
【００１６】
さらに、回転角度のパラメータの分解能の荒さというのも選択できるようにしても良く、請求項７にかかる発明は、上記請求項１〜請求項６のいずれか一項に記載の画像フィルタプログラムにおいて、上記描画機能では、上記サンプリングした画像データの明度、色相または彩度に応じて上記ブラシ図形を段階的に回転させるときの回転角度の範囲の分割数を選択可能であり、選択された分割数に対応する回転角度の単位で上記ブラシ図形を段階的に回転させて同画像データで前記回転後のブラシ図形のブラシ描画を行う構成としてある。
上記のように構成した請求項７にかかる発明においては、上記サンプリングした画像データの明度、色相または彩度に応じて上記ブラシ図形を段階的に回転させるときの回転角度の範囲の分割数を選択することができ、例えば、ブラシ画像が点対称で１８０度の回転で元図形と一致するとした場合、１８０度の範囲を回転角度パラメータで表すことになる。回転角度パラメータの範囲が０〜２５５であるときに、パラメータの「１」の値毎に１８０／２５５に回転させるようにしても良いし、１８０度の範囲を８等分したり１６等分したりする程度で回転させるようにしても良い。
【００１７】
また、このようなプログラムは現実に実行される前の段階で各種の記録媒体に記録された過程においても本発明を実施しているのと同視できる。
このため、請求項１０にかかる発明は、コンピュータに実行させる画像フィルタプログラムを記録した媒体であって、ドットマトリクス状の各画素について階調表現した画像データを入力する画像入力機能と、上記画像データに平滑化処理を行なう平滑化処理機能と、平滑化処理した画像データをサンプリングするサンプリング処理機能と、サンプリングした画像データの明度、色相または彩度に応じた回転角度で非円形のブラシ図形を回転させ、同画像データで前記回転後のブラシ図形のブラシ描画を行う描画機能とを実現させる構成としてある。
【００１８】
むろん、このような記録媒体は、磁気記録媒体であってもよいし光磁気記録媒体であってもよいし、今後開発されるいかなる記録媒体においても全く同様に考えることができる。また、一次複製品、二次複製品などの複製段階については全く問う余地無く同等である。その他、供給方法として通信回線を利用して行なう場合でも本発明が利用されていることにはかわりない。
さらに、一部がソフトウェアであって、一部がハードウェアで実現されている場合においても発明の思想において全く異なるものではなく、一部を記録媒体上に記憶しておいて必要に応じて適宜読み込まれるような形態のものとしてあってもよい。むろん、このプログラム自体に発明の思想が反映されていることはいうまでもない。
【００１９】
このように、入力した画像データを平滑化してその画像データを回転角度パラメータとしてブラシ画像を描画する手法は実体のあるコンピュータにおいて実現され、その意味で本発明をそのようなコンピュータを含んだ実体のある装置としても適用可能であることは容易に理解できる。このため、請求項８にかかる発明は、ドットマトリクス状の各画素について階調表現した画像データを入力する画像入力手段と、上記画像データに平滑化処理を行なう平滑化処理手段と、平滑化処理した画像データをサンプリングするサンプリング処理手段と、サンプリングした画像データの明度、色相または彩度に応じた回転角度で非円形のブラシ図形を回転させ、同画像データで前記回転後のブラシ図形のブラシ描画を行う描画手段とを具備する構成としてある。
【００２０】
すなわち、コンピュータで制御される実体のある装置としても有効であることに相違はない。むろん、このような画像フィルタは単独で実施される場合もあるし、ある機器に組み込まれた状態で他の方法とともに実施されることもあるなど、発明の思想としてはこれに限らず、各種の態様を含むものであって、適宜、変更可能である。
また、このような画像フィルタプログラムはかかる制御に従って処理を進めていく上で、その根底にはその手順に発明が存在するということは当然であり、方法としても適用可能であることは容易に理解できる。このため、請求項９にかかる発明は、ドットマトリクス状の各画素について階調表現した画像データを入力する画像入力工程と、上記画像データに平滑化処理を行なう平滑化処理工程と、平滑化処理した画像データをサンプリングするサンプリング処理工程と、サンプリングした画像データの明度、色相または彩度に応じた回転角度で非円形のブラシ図形を回転させ、同画像データで前記回転後のブラシ図形のブラシ描画を行う描画工程とを実行する構成としてある。
【００２１】
すなわち、必ずしも実体のある装置や媒体などに限らず、その方法としても有効であることに相違はない。
【００２２】
【発明の効果】
以上説明したように本発明は、サンプリングして描画される非円形のブラシ画像の回転角度が平滑化された画像データに起因しているので、同ブラシ画像は全体として流れるような様相を示し、これまでにない表現を実現することが可能になり、明度、色相または彩度に応じた回転角度で非円形のブラシ図形を回転させるので、流れを表現しやすくさせることが可能な画像フィルタプログラムを提供することができる。
【００２３】
また、請求項２にかかる発明によれば、平滑度合いを選択できるので、表現の多様さが増す。
さらに、請求項３にかかる発明によれば、サンプリングレートを選択できるので、表現の多様さが増す。
さらに、請求項４にかかる発明によれば、ブラシ画像の形状を選択できるので、表現の多様さが増す。
【００２４】
さらに、請求項５にかかる発明によれば、ブラシ画像の大きさを選択できるので、表現の多様さが増す。
さらに、請求項６にかかる発明によれば、各画素の画素値が変化するのに応じてブラシ画像の大きさも変化し、表現の多様さが増す。
さらに、請求項７にかかる発明によれば、上記サンプリングした画像データの明度、色相または彩度に応じて上記ブラシ図形を段階的に回転させるときの回転角度の範囲の分割数を選択することができるので、表現の多様さが増す。
さらに、請求項８にかかる発明によれば、同様の効果を奏する画像フィルタを提供でき、請求項９にかかる発明によれば、画像処理方法を提供でき、請求項１０にかかる発明によれば、画像フィルタプログラムを記録した媒体を提供できる。
【００２５】
【発明の実施の形態】
以下、図面にもとづいて本発明の実施形態を説明する。
図１は、本発明の一実施形態にかかる画像フィルタプログラムが実施されるコンピュータシステムをブロック図により示している。
本コンピュータシステム１０は、画像入力デバイスとして、スキャナ１１ａとデジタルスチルカメラ１１ｂとビデオカメラ１１ｃとを備えており、コンピュータ本体１２に接続されている。それぞれの入力デバイスは画像をドットマトリクス状の画素で表現した画像データを生成してコンピュータ本体１２に出力可能となっており、ここで同画像データはＲＧＢの三原色においてそれぞれ２５６階調表示することにより、約１６７０万色を表現可能となっている。
【００２６】
コンピュータ本体１２には、外部補助記憶装置としてのフロッピー（登録商標）ディスクドライブ１３ａとハードディスク１３ｂとＣＤ−ＲＯＭドライブ１３ｃとが接続されており、ハードディスク１３ｂにはシステム関連の主要プログラムが記録されており、フロッピーディスク１３ａ１やＣＤ−ＲＯＭ１３ｃ１などから適宜必要なプログラムなどを読み込み可能となっている。
また、コンピュータ本体１２を外部のネットワークなどに接続するための通信デバイスとしてモデム１４ａが接続されており、外部のネットワークに同公衆通信回線を介して接続し、ソフトウェアやデータをダウンロードして導入可能となっている。この例ではモデム１４ａにて電話回線を介して外部にアクセスするようにしているが、ＬＡＮアダプタを介してネットワークに対してアクセスする構成とすることも可能である。この他、コンピュータ本体１２の操作用にキーボード１５ａやマウス１５ｂも接続されている。
【００２７】
さらに、画像出力デバイスとして、ディスプレイ１７ａとカラープリンタ１７ｂとを備えている。ディスプレイ１７ａについては水平方向に８００画素と垂直方向に６００画素の表示エリアを備えており、各画素毎に上述した１６７０万色の表示が可能となっている。むろん、この解像度は一例に過ぎず、６４０×４８０画素であったり、１０２４×７６８画素であるなど、適宜、変更可能である。
【００２８】
また、カラープリンタ１７ｂはインクジェットプリンタであり、ＣＭＹＫの四色の色インクを用いて記録媒体たる印刷用紙上にドットを付して画像を印刷可能となっている。画像密度は３６０×３６０ＤＰＩや７２０×７２０ＤＰＩといった高密度印刷が可能となっているが、階調表現については色インクを付すか否かといった２階調表現となっている。
一方、このような画像入力デバイスを使用して画像を入力しつつ、画像出力デバイスに表示あるいは出力するため、コンピュータ本体１２内では所定のプログラムが実行されることになる。そのうち、基本プログラムとして稼働しているのはオペレーティングシステム（ＯＳ）１２ａであり、このオペレーティングシステム１２ａにはディスプレイ１７ａでの表示を行わせるディスプレイドライバ（ＤＳＰ  ＤＲＶ）１２ｂとカラープリンタ１７ｂに印刷出力を行わせるプリンタドライバ（ＰＲＴ  ＤＲＶ）１２ｃが組み込まれている。これらのドライバ１２ｂ，１２ｃの類はディスプレイ１７ａやカラープリンタ１７ｂの機種に依存しており、それぞれの機種に応じてオペレーティングシステム１２ａに対して追加変更可能である。また、機種に依存して標準処理以上の付加機能を実現することもできるようになっている。すなわち、オペレーティングシステム１２ａという標準システム上で共通化した処理体系を維持しつつ、許容される範囲内での各種の追加的処理を実現できる。
【００２９】
なお、かかるディスプレイドライバ１２ｂやプリンタドライバ１２ｃは、ハードディスク１３ｂに記憶されており、起動時にコンピュータ本体１２にて読み込まれて稼働する。また、導入時にはＣＤ−ＲＯＭ１３ｃ１であるとかフロッピーディスク１３ａ１などの媒体に記録されてインストールされる。従って、これらの媒体はプログラムを記録した媒体を構成する。
むろん、このようなプログラムを実行する前提として、コンピュータ本体１２内にはＣＰＵ１２ｅとＲＡＭ１２ｆとＲＯＭ１２ｇとＩ／Ｏ１２ｈなどが備えられており、演算処理を実行するＣＰＵ１２ｅがＲＡＭ１２ｆを一時的なワークエリアや設定記憶領域として使用したりプログラム領域として使用しながら、ＲＯＭ１２ｇに書き込まれた基本プログラムを適宜実行し、Ｉ／Ｏ１２ｈを介して接続されている外部機器及び内部機器などを制御している。
【００３０】
ここで、基本プログラムとしてのオペレーティングシステム１２ａ上でアプリケーション１２ｄが実行される。アプリケーション１２ｄの処理内容は様々であり、操作デバイスとしてのキーボード１５ａやマウス１５ｂの操作を監視し、操作された場合には各種の外部機器を適切に制御して対応する演算処理などを実行し、さらには、処理結果をディスプレイ１７ａに表示したり、カラープリンタ１７ｂに出力したりすることになる。
【００３１】
かかるコンピュータシステム１０では、画像入力デバイスであるスキャナ１１ａなどで画像データを取得し、アプリケーション１２ｄによって画像フィルタを適用する画像処理を実行した後、画像出力デバイスとしてのディスプレイ１７ａやカラープリンタ１７ｂに表示出力することが可能である。
図２は本発明の画像フィルタの概略構成を示しており、図３は当該画像フィルタをコンピュータプログラムで実現したアプリケーションのフローチャートを示している。
【００３２】
本発明の画像フィルタでは、画像データを入力して（工程１）平滑化処理（工程２）し、当該平滑化された画像データを所定のサンプリングレートでサンプリング（工程３）し、サンプリングした画像データの明度を算出（工程４）して回転角度パラメータを導出（工程５）し、同導出された回転角度をパラメータとして先にサンプリングした画像データのブラシ画像を描画する（工程６）。
これをコンピュータプログラムで実現するために、まず、ステップＳ１００にて平滑化処理を実行する。図４〜図６はこの平滑化処理に利用する三種類のアンシャープマスクを示している。なお、平滑化処理は端的には画像をぼかす処理であり、具体的には対象画素を特定して各種のマスクを適用して実現する。
【００３３】
図４〜図６のアンシャープマスクは、中央の数値を対象画素におけるＹ（ｘ，ｙ）の重み付けとし、その周辺画素に対して同マスクの升目における数値に対応した重み付けをして積算するのに利用される。例えば、３×３画素のアンシャープマスクを使用する場合、
【数１】
0003968555.tif 000002
なる演算式に基づいて積算する。同式において、「１３６」とは重み付け係数の合計値であり、サイズの異なるアンシャープマスクにおいては、それぞれ升目の合計値となる。すなわち、図５に示す５×５画素であれば「４００」となるし、図６に示す７×７画素であれば「９００」となる。また、Ｍｉｊはアンシャープマスクの升目に記載されている重み付け係数であり、Ｒ（ｘ，ｙ），Ｇ（ｘ，ｙ），Ｂ（ｘ，ｙ）は各画素の画像データである。さらに、ｉｊについてはアンシャープマスクに対して横列と縦列の座標値で示している。
【００３４】
なお、これらのアンシャープマスクは図４〜図６からも明らかなように、中央部にて最も重み付けが大きく、周縁に向かうにつれて徐々に重み付け係数が小さくなっている。従って、周縁側の重み付け係数が升目の合計値に与える影響はわずかであるといえる。一方、（１）〜（３）式等で示されるマトリクス演算は、処理対象画素の周囲の画素に対して、採用するアンシャープマスクの升目数だけ乗算演算と加算演算が必要になることから演算量が多大となることも観念される。そこで、本実施形態においては、予め周縁側の重み付け係数を省いて構成した３×３、５×５、７×７画素のアンシャープマスクを使用することにより演算量を削減して処理速度を高めるようにしている。例えば、３×３画素の場合は４×４画素の場合に１６回の乗算を要したのに対して９回となる。また、演算の低減化のためには全ての重み付けを「１」としたマスクを選択するようにしても良い。
【００３５】
ステップＳ１００では予め定めた大きさのアンシャープマスクを使用するが、図２に示すように平滑化の過程では平滑化度合いを好みに応じて変化させるために平滑化度合いパラメータ設定（工程７）を実行してもよい。図７は平滑化度合いを設定するためにディスプレイ１７ａ上に表示する設定画面４０を示している。左側にアンシャープマスクを大きさで選択する欄４１があり、右側には公知のガウスぼかしを選択する欄４２を設けてある。アンシャープマスクの欄４１では、上から「３×３」４１ａ、「５×５」４１ｂ、「７×７」４１ｃ、「２０×２０」４１ｄ、「５０×５０」４１ｅの表示があり、いずれか一つを選択する。なお、「２０×２０」４１ｄ、「５０×５０」４１ｅを選択したときには図４〜図６に示したのと同様に中心部の重み付けを大きくして周縁に向かうほど重み付けが小さくなるように配置したアンシャープマスクが使用される。
【００３６】
一方、ガウスぼかしの欄４２では、ぼかしの程度で弱４２ａ、中４２ｂ、強４２ｃを選択できる。アンシャープマスクの欄４１とガウスぼかしの欄４２とは二者択一であり、それぞれの欄でも選択肢は一つとなっている。
選択はキーボード１５ａやマウス１５ｂを使って行い、オペレーティングシステム１２ａを介してアプリケーション１２ｄが同操作を入力して平滑化の度合いを適宜変更する。この平滑化の度合いは全体としての雰囲気に大きな影響を与えるが、詳細については後述する。
【００３７】
ステップＳ１１０の平滑化処理は画像入力デバイスを介して入力された画像データファイルあるいはハードディスク１３ｂなどに記憶されている画像データファイルを対象とし、平滑化処理を行った結果をハードディスク１３ｂあるいはＲＡＭ１２ｆのワークエリアに書き出す。
ステップＳ１１２〜ステップＳ１２２はループ処理であり、概略的には、ステップＳ１１２にてサンプリングを行い、ステップＳ１１４〜ステップＳ１２０の処理でブラシ描画を行ない、ステップＳ１２２にて所定のサンプリングレートを満足したと判断するまで以上の処理を繰り返す。
【００３８】
次に、これらの内容について詳述すると、ステップＳ１１２ではランダムに画素を抽出する。抽出する元になるのはワークエリアに保存されている画像データであり、上述したように平滑化処理を経たものである。今、ランダムに抽出した座標が（ｘ，ｙ）とすると、当該座標の画像データ（Ｒ０，Ｇ０，Ｂ０）を変数Ｄ（ｘ，ｙ）として保存する。
ステップＳ１１４では後にサンプリングレートを算出するために抽出画素数の変数Ｎに１を加算する。サンプリングレートはステップＳ１２２にて（抽出画素数／全画素数）を演算して求められ、これが所定のしきい値を越えていればサンプリングレートを達成したことになるのでループ処理を終了する。所定のしきい値は固定値であっても良いが、図２に示すようにサンプリングレート設定（工程８）の処理を実施しても良い。図８はサンプリングレート設定を行なうためにディスプレイ１７ａ上に表示する設定画面４３を示している。
【００３９】
同設定画面４３では左側に複数のサンプリングレートが表示され、上から「１／２５」４４ａ、「１／１００」４４ｂ、「１／４００」４４ｃ、「１／９００」４４ｄの各レートから択一的に選択できる。また、右側には選んだサンプリングレートに応じて全体画像とサンプリングレートに応じて分割される画素のイメージを表示する表示欄４５である。同図にはサンプリングレートとして１／２５を選択した場合のイメージ表示を示しており、元画像データに基づいてサムネール画像を表示しつつ５×５分割したメッシュ表示を行っている。そして、１／１００であれば１０×１０分割したメッシュ表示を行い、１／４００であれば２０×２０分割したメッシュ表示を行い、１／９００であれば３０×３０分割したメッシュ表示を行う。むろん、サンプリングレートとして１／１００を選択したとしても各メッシュの中から必ず１画素を選択するというものではないが、分割の程度を感覚的に知るには十分である。
【００４０】
ここでも選択はキーボード１５ａやマウス１５ｂを使って行い、オペレーティングシステム１２ａを介してアプリケーション１２ｄが同操作を入力してサンプリングレートのしきい値を設定する。
次のステップＳ１１６ではサンプリングした画素の明度Ｙを求める。明度は（Ｒ，Ｇ，Ｂ）で表される画像データから線形演算で求められるものではないが、概略的には次の演算式で算出でき、本実施形態においてもこの演算式を用いて明度を変数Ｄ（ｘ，ｙ）に保存された画像データ（Ｒ０，Ｇ０，Ｂ０）から算出する。
【００４１】
Ｙ＝０．３×Ｒ０＋０．５９×Ｇ０＋０．１１×Ｂ０    …（４）
このようにして求めた明度はステップＳ１１８にて回転角度のパラメータθを求める演算に使用する。ここで回転角度のパラメータはアナログ的に増減するものでも良いが、ステップ的に増減させるようにしても良い。例えば、アナログ的に増減させるのであれば、明度が０〜２５５の値を取るときにブラシ画像を０〜１８０度の範囲で回転させるとすると、明度Ｙに比例してパラメータθを０〜１８０度の範囲で滑らかに変化させることが可能である。一方、ステップ的に増減させるのであれば、０〜１８０度の範囲を１６分割し、概ね１６階調ごとに（１８０／１６）度ずつパラメータθが増加していくことになる。これを演算式で示すと、次式のようになる。なお、ｉｎｔ（ｐ）は実数ｐにおける整数部分を示し、ｄｖは分割数であってこの場合は１６となる。
【００４２】
θ＝ｉｎｔ（ｉｎｔ（（Ｙ／２５５）×ｄｖ）×（１８０／ｄｖ）
ステップＳ１１８では予め１６分割する回転精度として固定しているが、図２に示すように回転精度設定（工程９）の処理を実施しても良い。図９は回転精度設定を行なうためにディスプレイ１７ａ上に表示する設定画面４６を示している。同設定画面４６において、左側にはブラシ画像を所定角度だけ回転させたときに元画像と一致する回転角度を基準角度４７として示している。例えば、正八角形であれば４５度回転させると元の画像と一致するし、正六角形であれば６０度回転させると元の画像と一致する。これは上述したパラメータθの変位範囲であり、この基準角度を右の欄の回転精度４８で分割してステップ的に増減させることになる。ただし、回転精度４８の欄で一番上のリニアを選択したときにはアナログ的に増減させることができる。
【００４３】
基準角度４７についてはデフォルトで１８０度というように設定しておき、回転精度の欄から択一的に選択させるようにしても良い。これらの選択もキーボード１５ａやマウス１５ｂを使って行い、オペレーティングシステム１２ａを介してアプリケーション１２ｄが同操作を入力して基準角度４７と回転精度４８を設定する。
ステップＳ１１６とステップＳ１１８では回転角度のパラメータを求める基準として明度を利用しているが、必ずしも明度に限るものではない。例えば、色相であるとか彩度といったパラメータを基準として回転角度を求めるようにしても良い。ただし、明度の演算は容易であるし、明度自体が視覚的にも直感的であるので利用しやすい。
【００４４】
回転角度のパラメータθが導出されたらステップＳ１２０にて抽出座標（ｘ，ｙ）を基準位置としてブラシ図形を描画する。このブラシ図形は抽出した画像データである（Ｒ０，Ｇ０，Ｂ０）で描画し、基準位置は概ね当該ブラシ図形の中心位置が妥当であるが、特に限られるものではない。
ブラシ図形は、デフォルトでは細めの木の葉型など好適であるが、図２に示すようにブラシ図形設定（工程１０）を実行して好みに応じたブラシ図形を選択できるようにしても良い。図１０はブラシ図形を選択して設定するためにディスプレイ１７ａ上に表示する設定画面４９を示している。同設定画面４９には予め用意された９つのブラシ図形４９ａ〜４９ｉのサンプルとともに、ユーザが用意した外部図形ファイルをオリジナルブラシ図形４９ｊが表示され、いずれか一つを選択できるようになっている。
【００４５】
ブラシ図形４９ａはデフォルトの木の葉図形であり、１８０度回転したときに元の画像と一致する対称形状となっている。ブラシ図形４９ｂは細めの楕円形であり、ブラシ図形４９ｃは太めの楕円形である。ブラシ図形４９ｂは細めの楕円形であり、ブラシ図形４９ｃは太めの楕円形である。このように細いか太いかによっても画像の雰囲気が変わるため選択の余地がある。同様に、ブラシ図形４９ｂは細めの楕円形であり、ブラシ図形４９ｃは太めの楕円形である。
【００４６】
ブラシ図形４９ｆは正三角形であり、この場合は１２０度回転したときに元の画像と一致する対称形状である。ブラシ図形４９ｇは足形であり、ブラシ図形４９ｈは米粒形であり、これらの場合は非対称形状であって３６０度回転したときに元の画像と一致する。ブラシ図形４９ｉは外形は円形であるものの、他の形状と異なって模様を含んでいる。すなわち、目と口の模様があることによって非円形といえる例である。
【００４７】
オリジナルブラシ図形４９ｊはパス入力欄４９ｋで指定されたビットマップファイルを読み込んで表示しており、必要に応じて適宜拡大縮小して表示するようにしても良い。
一方、ブラシ図形の描画の要素として図形そのものだけでなく、大きさを選択できるようにしても良い。図１１は大きさを選択するためにディスプレイ１７ａ上に表示する設定画面５０を示している。同設定画面５０には上段左側にブラシ図形の絶対的な大きさを指定する欄５１があり、上段右側には相対的な大きさを指定する欄５２があり、下段には画素値に依存させる指定の欄５３がある。絶対的な大きさとはブラシ図形の大きさをドット単位で示すものであり、選択された一つの枠５１ａ〜５１ｃの中に収まる大きさとする。例えば、５×５ドット５１ａの場合であれば、細めの楕円のブラシ図形４９ｂでも細めの楕円のブラシ図形４９ｃでも縦方向の長さを５ドットの長さに調整する。
【００４８】
また、相対的な大きさは元画像の縦方向の大きさを基準としてブラシ図形の大きさを指定するものであり、例えば、元画像が６４０×４８０ドットであると縦方向の大きさは４８０ドットであり、１／１００の相対値５２ｃを選択したとすれば計算値は４．８ドットであるから、四捨五入して５×５ドットの枠内に収まる大きさとする。
画素値に依存する指定の欄５３には、選択肢として、明るさ５３ａ、彩度５３ｂ、色相５３ｃの指定がある。明るさを選択した場合、ステップＳ１１６にて算出した明度Ｙに基づいて、例えば、５ドット〜２０ドットの範囲でリニアに変化させる。具体的な演算式は、求めるブラシの大きさをＥドットとすると、
Ｅ＝５＋ｉｎｔ（１５×（Ｙ／２５６））
とする。むろん、５ドット〜２０ドットという範囲は一例に過ぎないし、上段の絶対値や相対値による指定を踏襲した上で画素値に依存させる構成とすることもできる。例えば、絶対値として選択された大きさに対して±４０％の範囲で大小させるということも可能である。絶対値として２０ドット×２０ドットを選択している場合は、
Ｅ＝１２＋ｉｎｔ（１６×（Ｙ／２５６））
とする。これにより、明度Ｙが０〜２５５の範囲で変化するときに１２〜２８ドットと変化することになる。
【００４９】
一方、彩度や色相の場合は、画素値である画像データ（Ｒ０，Ｇ０，Ｂ０）からは一律に計算できない。このため、同画像データを利用して三次元のルックアップテーブルを参照する。このとき、各要素色毎に２５６階調あるとするとルックアップテーブルの大きさは非常に大きくなってしまうし、高い精度が必要となるものでもないため、階調を減らしてルックアップテーブルを参照する。例えば、読み出す段階で各要素色毎に１６階調とすると、ルックアップテーブルの大きさは１６×１６×１６＝４０９６となる。色相と彩度にそれぞれ１バイトずつ与えても全体の大きさは９１９２バイトで済む。２５６階調から１６階調への低減かも単に上位４ビットのみを参照するだけであるから、演算の負荷も小さい。
【００５０】
以上のようにしてサンプリングした座標を基準位置として所定の大きさのブラシ画像を一定角度θだけ回転させて描画し、これをステップＳ１２２にて所定のサンプリングレートが達成されたと判断されるまで繰り返す。
次に、上記構成からなる本実施形態の動作を簡単な図形を参照して説明する。
図１２はフィルタを通す前の画像である。本来、写真などに使用して好適であるが、ここでは理解の便宜のために部分的な色変化の少ないペイント画像を想定して説明する。この画像は５つの部分で描画され、それらの色は手前の山がＡ、奥の山がＢ、雲がＣ、空がＤ、太陽がＥである。ステップＳ１１０ではこの画像をスキャナ１１で読み込んだり、あるいはアプリケーション１２ｄで描画するなどした元画像データを入力して平滑化する。平滑化すると、それぞれの部分の境界部分がグラデーションの領域となり、概ね図１３に示すようになる。すなわち、各境界から所定距離だけ離れた部分では元の部分の色が残るが、境界において二つあるいは三つの部分の色が徐々に変化する領域が形成される。山の色Ａと空の色Ｄとの境界でグラデーション領域ＡＤが形成され、山の色Ｂと空の色Ｄとの境界でグラデーション領域ＢＤが形成され、雲の色Ｃと空の色Ｄとの境界でグラデーション領域ＣＤが形成され、太陽の色Ｅと空の色Ｄとの境界でグラデーション領域ＥＤが形成され、山の色Ａと山の色Ｂと空の色Ｄとの境界でグラデーション領域ＡＢＤが形成される。このように平滑化処理された画像データは一旦ワークエリアに保存される。
【００５１】
次にステップＳ１１２にて同ワークエリアから逐次サンプリングして画像を抽出する。上述したグラデーション領域以外では色が単調であり、それぞれの明度は一定である。従って、抽出された画素の明度を算出して回転角度のパラメータθを計算すると一定となり、単色の色ＡＢＣＤＥの領域でそれぞれ対応する一定の角度に並ぶブラシ図形が描画される。
しかしながら、各グラデーション領域では境界と直交する方向で徐々に明度が変化していくことになり、明度に応じてパラメータθがリニアあるいはステップ的に徐々に変化する。例えば、Ａの色ではパラメータθが６０度であるとし、Ｂの色では１２０度であるとすると、Ａの色に近いところではブラシ図形は６０度回転しているが、Ｂの色の領域に近づくにつれて徐々に回転して最終的には１２０度まで回転することになる。
同様にして他の領域でもこのようなブラシ図形が描画される。図１４はこのようにして描画された画像を示しており、理解しやすいように実線を書き加えて領域毎に分割して表示している。ただし、本来グラデーション領域では徐々に角度が変化していくのであるが、図面の描画の困難性から、当該境域を挟む二色における中間色に対応した一定の角度で示している。
【００５２】
このグラデーション領域で回転角度が徐々に変化していく過程を図１５に示している。同図にて左端のブラシ図形２１ａの回転角度パラメータθが０度であり、右端のブラシ図形２１ｇの回転角度パラメータθが９０度である。この間が上述したグラデーション領域となった場合、回転角度パラメータθは０度〜９０度の範囲で徐々に変化し、ブラシ図形２１ｂ〜２１ｆで示すように徐々に傾いていく。むろん、実際にはこれがより密に描画される。
【００５３】
以上のようなブラシ図形の傾きの変化は視覚的にはある流れのように見え、視覚的な効果度合いは極めて大きい。ここで、先にそれぞれ示した設定の具体的意味合いについて説明をする。平滑化の度合いは単一的には流れの変化具合に影響を与える。例えば、平滑度合いが大きいと先のグラデーション領域の幅が広くなるので、この領域で回転角度がゆったりと変化していく。しかし、平滑度合いが小さいとグラデーション領域の幅が狭くなり、狭い範囲で回転角度は一定角度まで変化しなければならず、流れの変化が急になる。
【００５４】
一方、サンプリングレートは描画されるブラシ図形の割合に相当するから、レートが低いとまばらに描画される。ただし、サンプリングレートとブラシ図形の大きさは相互に影響し合う。例えば、レート自体はまばらでもブラシ図形が大きいとほぼ画像には下地が残ることなくほぼ全面に描画されることもあり得る。これに対してレート自体が密でもブラシ図形が小さいと画像には下地である白い部分が残ることもある。なお、白地は流れを示したり、雰囲気を弱めるなどの効果があり、ある程度は残るような設定が好ましい。
【００５５】
また、ブラシ図形は木の葉形のように細長く両端が鋭角に細まる場合に流れが強く感じられる。さらに細長くても一端は丸まっていて他端が鋭利であると３６０度の方向性を示すこともできる。
以上は、本発明の適用例として一つの単体のアプリケーション１２ｄの場合を示しているが、このような画像フィルタは、他のペイント形のアプリケーション１２ｄの一部として組み込んで利用することもできる。この場合は、アプリケーション１２ｄ内に組み込むだけでなく、例えばプラグインの形で提供するようにしても良い。
【００５６】
このように、元画像データを入力して平滑化処理（工程１，２）したら、所定のサンプリングレートでサンプリングし（工程３）、サンプリングした画素の明度を用いて回転角度のパラメータθを算出し（工程４，５）、同画素の画像データを使って同パラメータθだけ傾かせたブラシ画像を描画する（工程６）ようにしたため、画像全体に流れのような雰囲気を生じさせ、印象派のような感覚を生じさせる画像フィルタを提供することができる。
【図面の簡単な説明】
【図１】  本発明の一実施形態にかかる画像フィルタプログラムが実施されるコンピュータシステムのブロック図である。
【図２】  本発明の画像フィルタの概略構成を示すブロック図である。
【図３】  本発明の画像フィルタをコンピュータプログラムで実現したアプリケーションのフローチャートである。
【図４】  平滑化処理に利用するアンシャープマスクを示す図である。
【図５】  平滑化処理に利用するアンシャープマスクを示す図である。
【図６】  平滑化処理に利用するアンシャープマスクを示す図である。
【図７】  平滑化度合いを設定するための設定画面を示す図である。
【図８】  サンプリングレートを設定するための設定画面を示す図である。
【図９】  回転精度いを設定するための設定画面を示す図である。
【図１０】  ブラシ図形を設定するための設定画面を示す図である。
【図１１】  ブラシ図形の大きさを設定するための設定画面を示す図である。
【図１２】  元画像を示す図である。
【図１３】  元画像に平滑化処理を実施した画像を示す図である。
【図１４】  平滑化処理を実施した画像にブラシ図形の描画をした画像を示す図である。
【図１５】  回転角度パラメータが徐々に変化していく過程でのブラシ図形の様子を示す図である。
【符号の説明】
１０…コンピュータシステム
１１ａ…スキャナ
１１ｂ…デジタルスチルカメラ
１１ｃ…ビデオカメラ
１２…コンピュータ本体
１２ａ…オペレーティングシステム（ＯＳ）
１２ｂ…ディスプレイドライバ（ＤＳＰＤＲＶ）
１２ｃ…プリンタドライバ（ＰＲＴＤＲＶ）
１２ｄ…アプリケーション
１３ａ…フロッピーディスクドライブ
１３ａ１…フロッピーディスク
１３ｂ…ハードディスク
１３ｃ…ＣＤ−ＲＯＭドライブ
１４ａ…モデム
１５ａ…キーボード
１５ｂ…マウス
１７ａ…ディスプレイ
１７ｂ…カラープリンタ
【図１】
0003968555.tif 000003
【図２】
0003968555.tif 000004
【図３】
0003968555.tif 000005
【図４】
0003968555.tif 000006
【図５】
0003968555.tif 000007
【図６】
0003968555.tif 000008
【図７】
0003968555.tif 000009
【図８】
0003968555.tif 000010
【図９】
0003968555.tif 000011
【図１０】
0003968555.tif 000012
【図１１】
0003968555.tif 000013
【図１２】
0003968555.tif 000014
【図１３】
0003968555.tif 000015
【図１４】
0003968555.tif 000016
【図１５】
0003968555.tif 000017