JP5605214B2 - 画像処理装置及び画像処理方法 - Google Patents

画像処理装置及び画像処理方法 Download PDF

Info

Publication number
JP5605214B2
JP5605214B2 JP2010287152A JP2010287152A JP5605214B2 JP 5605214 B2 JP5605214 B2 JP 5605214B2 JP 2010287152 A JP2010287152 A JP 2010287152A JP 2010287152 A JP2010287152 A JP 2010287152A JP 5605214 B2 JP5605214 B2 JP 5605214B2
Authority
JP
Japan
Prior art keywords
match
data
edge
edge determination
template
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010287152A
Other languages
English (en)
Other versions
JP2012134908A (ja
Inventor
宏司 鷲尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Konica Minolta Inc
Original Assignee
Konica Minolta Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Konica Minolta Inc filed Critical Konica Minolta Inc
Priority to JP2010287152A priority Critical patent/JP5605214B2/ja
Priority to US13/333,453 priority patent/US8565548B2/en
Publication of JP2012134908A publication Critical patent/JP2012134908A/ja
Application granted granted Critical
Publication of JP5605214B2 publication Critical patent/JP5605214B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)

Description

本発明は、画像処理装置及び画像処理方法に関する。
従来、モニタやプリンタ等によって表示/印刷された文字やマークなど、点及び線の集合により形成される画像(線画)において、異なる色が隣接する境界に階段状のギザギザ(ジャギー)が生じ、画質を低下させることがあった。ジャギーは線画を構成する画素の細かさが十分でないときに起こりやすいので、擬似的に解像度を向上させる技術が考案されてきた。このような技術は、アンチエイリアスあるいはスムージングと呼ばれている。
このような技術において、例えば、画像の解像度を縦横それぞれ3倍に拡大し、注目画素を含む3×3画素の観察窓内においてドットのON/OFFの位置的な関係における条件判断を用いてジャギーを判定し、あらかじめ用意された複数の特定の条件に合致した際には、3×3画素に分割された注目画素の画素値を、合致した条件に応じて変更するようにしたものがある(例えば、特許文献1)。
また、観察窓内におけるドットのON/OFFをテンプレートと呼ばれる特定のパターンに合致するか否かを判定することでジャギーを判定し、解像度はそのままで、中間調を出力することにより、擬似的に解像度を上げるものもある(例えば、特許文献2)。しかしながら、この技術は、入力画素がON/OFFの2値的な情報からなっていることが原則となっており、中間調が含まれる多値画像を適用することはデータ処理が複雑となるため、困難なものであった。
これに対し、入力される多値画像をスムージング処理するために、これまでの2値パターンによるジャギー検出ではなく、多値データにて構成されるジャギー検出を行うようにしたものがある(例えば、特許文献3)。この技術によれば、中間調の値を持った文字や線画に対してもスムージング処理を行うことが可能である。しかしながら、このような方法では、適切にジャギー検出を行うためには、検出パターンの数が階調数分必要となるため、回路規模及び処理コストが膨大になるといった問題が生じている。
これに対し、写真等の中間調背景の上に印字されたカラー中間調文字あるいは中間調線画にスムージング処理を施すものがある(例えば、特許文献4)。これは、多値データを2値化した後、パターンマッチングによりジャギーを検出する一方、属性信号が示す文字及び線画を含む領域のみに対してスムージングを実施し、ジャギーの近傍画素から背景となる画素濃度を求め、文字及び背景の濃度に基づいて出力画素値を求めるものである。
2値化には、閾値を用いて2値化するもののほか、エッジ検出オペレータを用いて画像のエッジを検出し、そのエッジの強度をある閾値で2値化するものが記載されている。このエッジを検出する手段としては、Sobel、ラプラシアン等、既存の微分オペレータが用いられている。そして、閾値を超えるエッジ強度を持つ画素をエッジ画素と判断し、エッジ画素の画素値を255に、非エッジ画素の画素値を0に変換して2値化する。そして、2値化されたエッジ情報に対して、テンプレートデータによるパターンマッチングを行う。
米国特許第4437122号公報 米国特許第4847641号公報 特開平6−139350号公報 特開2000−156784号公報
しかしながら、従来、一般的に用いられるエッジオペレータは注目画素と隣接画素との差分、あるいは、隣接画素同士の差分を全方向に対して行い、この処理を所定サイズの画素ブロック内における各画素について行うため、上記特許文献4に記載の技術では、エッジ情報を求めるための演算量が多く、処理負荷が大きいという問題が生じる。
本発明の課題は、処理負荷を軽減してアンチエイリアスを行うことができる画像処理装置及び画像処理方法を提供することである。
以上の課題を解決するため、請求項1に記載の発明は、入力された画像データのアンチエイリアスを行う画像処理装置であって、
前記画像データの各画素を中心とする所定サイズの観察窓を、画素ごとに設定する観察窓設定部と、
アンチエイリアスの対象とする異なる複数のエッジの有無のパターンをそれぞれ示す複数のテンプレートに基づいて、前記観察窓内の各画素のうち、エッジの有無を判定する2つの画素の組合せを複数特定し、特定した組合せごとに、2つの画素の入力画素値の差分により2つの画素間のエッジの有無を判定するエッジ判定部と、
前記エッジ判定部により判定されたエッジの有無のパターンを、前記複数のテンプレートのそれぞれが示すエッジの有無のパターンと照合し、各パターンが一致する1つのテンプレートを選択するテンプレートマッチング部と、
前記テンプレートマッチング部により選択された1つのテンプレートに基づいて、前記観察窓の中心画素の複数の隣接画素のなかから1つの隣接画素と重み付け量を特定し、前記中心画素と特定した隣接画素の各入力画素値を、特定した重み付け量により重み付け加算し、前記中心画素の出力画素値を得る画素値算出部と、
を備えことを特徴とする。
請求項2に記載の発明は、請求項1に記載の画像処理装置において、
前記テンプレートマッチング部は、各テンプレートがエッジの有無を示すすべての画素間のうち一部の画素間のエッジの有無のパターンが、前記エッジ判定部により判定されたエッジの有無のパターンと一致するか否かを判定することにより、前記1つのテンプレートを選択することを特徴とする。
請求項3に記載の発明は、請求項1又は2に記載の画像処理装置において、
前記エッジ判定部によって得られた判定結果を記憶する記憶部を備え、
前記テンプレートマッチング部は、前記エッジの有無のパターンの照合を、前記記憶部に記憶された、観察窓内の中心画素の位置が1画素前の観察窓のエッジの有無の判定結果を流用して行うことを特徴とする。
請求項4に記載の発明は、請求項1〜3のいずれか一項に記載の画像処理装置において、
前記テンプレートマッチング部は、前記エッジ判定部により判定されたエッジの有無のパターンと一致する複数のテンプレートがある場合、当該一致する複数のテンプレートのうち、照合するエッジの有無の数が最も多い1つのテンプレートを選択することを特徴とする。
請求項に記載の発明は、入力された画像データのアンチエイリアスを行う画像処理方法であって、
前記画像データの各画素を中心とする所定サイズの観察窓を、画素ごとに設定する観察窓設定ステップと、
アンチエイリアスの対象とする異なる複数のエッジの有無のパターンをそれぞれ示す複数のテンプレートに基づいて、前記観察窓内の各画素のうち、エッジの有無を判定する2つの画素の組合せを複数特定し、特定した組合せごとに、2つの画素の入力画素値の差分により2つの画素間のエッジの有無を判定するエッジ判定ステップと、
前記エッジ判定ステップにおいて判定されたエッジの有無のパターンを、前記複数のテンプレートのそれぞれが示すエッジの有無のパターンと照合し、各パターンが一致する1つのテンプレートを選択するテンプレートマッチングステップと、
前記テンプレートマッチングステップにおいて選択された1つのテンプレートに基づいて、前記観察窓の中心画素の複数の隣接画素のなかから1つの隣接画素と重み付け量を特定し、前記中心画素と特定した隣接画素の各入力画素値を、特定した重み付け量により重み付け加算し、前記中心画素の出力画素値を得る画素値算出ステップと、
を含むことを特徴とする。
請求項に記載の発明は、請求項に記載の画像処理方法において、
前記テンプレートマッチングステップにおいて、各テンプレートがエッジの有無を示すすべての画素間のうち一部の画素間のエッジの有無のパターンが、前記エッジ判定ステップにおいて判定されたエッジの有無のパターンと一致するか否かを判定することにより、前記1つのテンプレートを選択することを特徴とする。
請求項に記載の発明は、請求項又はに記載の画像処理方法において、
前記エッジ判定ステップにおいて得られた判定結果を記憶部に記憶する記憶ステップをさらに含み、
前記テンプレートマッチングステップにおいて、前記エッジの有無のパターンの照合を、前記記憶部に記憶された、観察窓内の中心画素の位置が1画素前の観察窓のエッジの有無の判定結果を流用して行うことを特徴とする。
請求項8に記載の発明は、請求項5〜7のいずれか一項に記載の画像処理方法において、
前記テンプレートマッチングステップにおいて、前記エッジ判定ステップにおいて判定されたエッジの有無のパターンと一致する複数のテンプレートがある場合、当該一致する複数のテンプレートのうち、照合するエッジの有無の数が最も多い1つのテンプレートを選択することを特徴とする。
本発明によれば、処理負荷を軽減してアンチエイリアスを行うことができる。
本実施の形態に係るMFPの機能的構成を示す図である。 画像処理部の機能的構成を示す図である。 観察窓について説明する図である。 エッジ判定の対象について説明する図である。 テンプレートについて概念的に説明する図である。 アンチエイリアス処理について説明するフローチャートである。 エッジ判定処理について説明するフローチャートである。 出力値変換処理の概要について説明する図である。 処理Aについて説明するフローチャートである。 処理Bについて説明するフローチャートである。 処理Cについて説明するフローチャートである。 処理Dについて説明するフローチャートである。 処理Eについて説明するフローチャートである。 処理Fについて説明するフローチャートである。 処理Gについて説明するフローチャートである。 処理Hについて説明するフローチャートである。 処理Iについて説明するフローチャートである。 処理Jについて説明するフローチャートである。 処理Kについて説明するフローチャートである。 処理Lについて説明するフローチャートである。 テンプレートデータを最終的に選択するための処理について説明するフローチャートである。 テンプレートデータを最終的に選択するための処理について説明するフローチャートである。 出力画素値を算出する処理について説明するフローチャートである。 本実施の形態におけるアンチエイリアス処理の結果を説明する図である。 本実施の形態におけるアンチエイリアス処理の結果を説明する図である。 出力値変換処理の他の例の概要について説明する図である。 処理Mについて説明するフローチャートである。 処理Oについて説明するフローチャートである。 処理Pについて説明するフローチャートである。 処理Qについて説明するフローチャートである。 処理Rについて説明するフローチャートである。 処理Sについて説明するフローチャートである。 テンプレートデータを最終的に選択するための処理の他の例について説明するフローチャートである。
以下、本発明の実施の形態に係るMFP(Multi Function Peripheral)について、図面を参照して説明する。ただし、発明の範囲は図示例に限定されない。ここで、MFPは、複写機能、印刷機能等の複数の機能を備えた複合型の画像形成装置である。なお、以下の説明において、同一の機能及び構成を有するものについては、同一の符号を付し、その説明を省略する。
MFP100は、図1に示すように、外部PC(Personal Computer)200と接続されており、当該外部PC200から送信されたPDL(Page Description Language)形式のデータから画像データを生成して画像処理した後、印刷を行うことができる。
MFP100は、図1に示すように、例えば、コントローラ20、画像処理部10、制御部11、読取部12、操作部13、表示部14、記憶部15、画像メモリ16、印刷装置17を備えて構成されている。
コントローラ20は、ラスタライズ処理により画素毎の画像データを生成する。
例えば、外部PC200において作成されたドキュメントのデータは、プリンタドライバソフトによってPDL形式に変換され、コントローラ20に送信される。コントローラ20は、ラスタライズ処理によって、送信されたPDLデータに含まれるPDLコマンドを解析し、描画すべき画像単位毎に画素を割り当て、この割り当てた画素毎に画素値を設定した画像のデータを生成する。なお、描画すべき画像単位をオブジェクトということがある。画像はC(シアン)、M(マゼンタ)、Y(イエロー)、K(黒)の色毎に生成される。
なお、本実施形態では、コントローラ20がMFP100に内蔵される構成としたが、コントローラ20がMFP100の外部に設けられる構成であってもよい。
制御部11は、CPU(Central Processing Unit)11a、RAM(Random Access Memory)11b等を備えて構成されている。制御部11は、記憶部15に記憶されている各種処理プログラムとの協働により、所定の演算を行ったり、画像処理部10における画像処理を制御するなど、各種処理を実行してMFP100の各部を集中制御する。
読取部12は、光学系やCCD(Charge Coupled Device)を有するスキャナを備え、原稿を光走査して画像信号(アナログ信号)を生成する。生成された画像信号は、図示しない処理部において各種補正処理が施された後、デジタル変換されて画像処理部10に出力される。
操作部13は、オペレータの操作指示を入力するためのものであり、各種キーや表示部14と一体に構成されるタッチパネル等を備えて構成されている。操作部13は、操作に応じた操作信号を生成して制御部11に出力する。
表示部14は、制御部11の制御に従ってディスプレイ上に操作画面等を表示する。
記憶部15は、各種処理プログラムの他、処理に必要なパラメータや設定データ等を記憶している。記憶部15としては、ハードディスク等の不揮発性メモリを用いることができる。
画像メモリ16は画像のデータを記憶するためのメモリである。画像メモリ16としては、DRAM(Dynamic RAM)、ハードディスク等を用いることができる。
印刷装置17は、画像処理部10から入力される印刷用の画像に基づいて印刷を行う。印刷用の画像とは、コントローラ20によって生成された画像に対して、画像処理部10による画像処理を施すことにより生成されたものである。
印刷装置17は、電子写真方式による印刷を行い、例えば給紙部、露光部、現像部、定着部等を含んで構成されている。印刷時には、画像のデータに基づいて露光部が感光ドラム上にレーザ光を照射して静電潜像を形成する。静電潜像は現像部により現像され、感光ドラム上にトナー像が形成される。トナー像の形成はC、M、Y、Kの各色の画像について行われ、各色のトナー像は中間転写ベルト上に重ねて転写されてカラー像となる。カラー像は転写ローラ等によって給紙部から給紙された用紙上に転写され、定着部により定着処理が施される。
画像処理部10は、コントローラ20から入力される画像データや、読取部12から入力される画像データに画像処理を施す。画像処理は、例えば、拡大縮小処理、解像度変換処理、階調補正処理及びスクリーン処理等である。また、画像処理部10は、読取部12から入力された画像データについてRGBをYMCKの色に変換する色変換処理を行う。画像処理部10は、上述したような画像処理を実施して印刷用の画像データを生成する。本実施の形態では、画像処理部10は、入力された画像データにおける所定の画素とこれに隣接する画素とで階調の平滑化を行うアンチエイリアス処理を行う。
図2は、画像処理部10のうち、アンチエイリアス処理を行う際に主に機能する構成部分を示している。画像処理部10は、図2に示すように、例えば、画像データ入力部101、観察窓設定部102、エッジ判定部103、テンプレートマッチング部104及び画素値算出部105を備えている。本実施の形態では、図2に示す構成において、1画素×8bitからなる1200dpiの入力画像データを処理対象としてアンチエイリアス処理を行う。図2に示される構成において実行されるアンチエイリアス処理は、CMYKの各色について行われものとする。なお、アンチエイリアス処理を、CMYKの各色について行わず、一部の色のみについて実施するようにしてもよい。
画像データ入力部101は、コントローラ20及び読取部12から出力される画像データを入力し、所定のバッファにこれを保持する。このとき、画像データ入力部101は、上述した各種画像処理を行った後、画像データ入力部101に入力するようにしてもよい。
観察窓設定部102は、画像データ入力部101に入力された画像データのうち、あらかじめ設定された観察窓Wの範囲に含まれる画像データを設定する。
この観察窓Wは、例えば、図3に示すように、縦×横:7×7画素のマトリクス状に構成されている。この観察窓Wは、中央(図中、「25」の位置)に注目画素P1が設定され、注目画素P1の周辺(図中、「25」を除く「01」〜「49」の各位置)に周辺画素P2が設定されている。そして、周辺画素P2のうちの注目画素P1の上下左右の位置にそれぞれ隣接する画素は、隣接画素P31〜P34として設定されている。なお、観察窓は、本実施の形態に示される形態に限らず、形状やサイズ等適宜設定することができる。
観察窓設定部102は、後述するアンチエイリアスの対象とする画素が注目画素P1となるようにして、上述のように構成された観察窓Wの範囲に含まれる画像データを設定する。なお、観察窓設定部102は、例えば、入力された画像データの全画素について注目画素P1が順次設定されるように、画像の左上隅部から右下隅部に向けて観察窓Wの範囲を、設定を行う毎に順次移行させる。
そして、観察窓設定部102は、観察窓Wによって設定された範囲の画像データについて、1×7画素毎に所定のラインメモリに保持する。観察窓設定部102は、このようにして保持された画像データをライン毎にエッジ判定部103に出力する。
エッジ判定部103は、観察窓設定部102から出力された画像データを入力し、エッジ判定処理を行う。具体的には、エッジ判定部103は、入力した7×7画素の画像データのうち、所定の隣接する2つの画素を抽出し、これらの画素値の差分を求め、この差分が予め設定された閾値以上であるか否かを判定し、これをフラグ化することによってエッジ判定を行う。ここで設定される閾値は、画像の階調等の条件に応じて適宜変更することができる。また、画素値の差分を求める際、中間調に対応できるようにするため、画素値については2値化などの量子化を行わず、0〜255の値をそのまま適用する。また、エッジ判定を行う対象となる画素の組み合わせは、例えば、図4に示すように、各線にて結ばれた2つの画素の組合せの全てである。すなわち、「03」と「10」、「04」と「11」、「05」と「12」、「10」と「17」、「10」と「18」、「11」と「17」、「11」と「18」、「11」と「19」、「12」と「18」、「12」と「19」、「15」と「16」、「16」と「17」、「16」と「24」、「17」と「18」、「17」と「23」、「17」と「24」、「18」と「19」、「18」と「24」、「18」と「25」、「18」と「26」、「19」と「20」、「19」と「26」、「19」と「27」、「20」と「21」、「20」と「26」、「22」と「23」、「23」と「24」、「23」と「31」、「24」と「25」、「24」と「30」、「24」と「31」、「24」と「32」、「25」と「26」、「25」と「32」、「26」と「27」、「26」と「32」、「26」と「33」、「26」と「34」、「27」と「28」、「27」と「33」、「29」と「30」、「30」と「31」、「31」と「32」、「31」と「38」、「31」と「39」、「32」と「33」、「32」と「38」、「32」と「39」、「32」と「40」、「33」と「34」、「33」と「39」、「33」と「40」、「34」と「35」、「38」と「45」、「39」と「46」及び「40」と「47」の合計56の画素の組合せがエッジ判定の対象となる。なお、図4中、パターンにて示された画素は、エッジ判定の対象となる画素を示している。
エッジ判定部103は、このようにして得られた各組合せのエッジ判定の結果をテンプレートマッチング部104に出力する。
テンプレートマッチング部104は、テンプレート判定部104aとテンプレート選択部104bとを含んでおり、エッジ判定部103から出力されたエッジ判定の結果に基づいて、対応するテンプレートの選択を行い、その選択結果を画素値算出部105に出力する。具体的には、テンプレート判定部104aは、入力したエッジ判定結果に基づいて、複数種類のテンプレートの絞り込みを行う。具体的なテンプレートの絞り込みの手法については後述する。そして、テンプレート選択部104bは、テンプレート判定部104aによるテンプレートの絞り込みを行った結果、最終的に合致するテンプレートを特定し、そのテンプレートを示すテンプレートデータを画素値算出部105に出力する。本実施の形態では、図5に示されるように、16種類のテンプレートから何れかが選択される。図5中、各テンプレートの上方に示される数値は、テンプレートデータを示している。各テンプレートは、第1の領域〜第3の領域の3つの領域によって表されている。第1の領域をパターンaにて表し、第2の領域をパターンbにて表し、第3の領域をパターンcにて表す。第1の領域では、エッジ判定の結果、何れの画素間においてもエッジが生じていないことが表される。第2の領域では、エッジ判定の結果、何れの画素間においてもエッジが生じていないことが表される。そして、第1の領域と第2の領域との間では、エッジ判定の結果、エッジが生じていることが表される。また、第3の領域は、エッジ判定の対象とならない画素を示している。なお、テンプレートについては、図5に示されたものに限定されず、効果的にエッジを検出できる態様のものであれば、適宜設計変更することが可能であり、例えば、観察窓のサイズ等に応じてテンプレートを設定するようにしてもよい。
画素値算出部105は、テンプレートマッチング部104から入力したテンプレートデータに基づき、注目画素P1に対してアンチエイリアス処理を行う。具体的には、画素値算出部105は、観察窓設定部102から出力された画像データから注目画素P1及び隣接画素P31〜P34の各データを取得する。そして、画素値算出部105は、入力したテンプレートデータに基づき、隣接画素P31〜P34からアンチエイリアス処理を行う際の参照とする画素を特定する。また、画素値算出部105は、入力したテンプレートデータに基づき、注目画素P1及び参照する画素にそれぞれ対応する重み付け量を特定する。そして、画素値算出部105は、注目画素P1及び参照する画素との重み付け平均を算出し、その算出結果を、注目画素P1の出力画素値として出力する。
次に、以上のようにして構成された画像処理部10において実行されるアンチエイリアス処理について図6を参照しながら説明する。このアンチエイリアス処理は、制御部11が記憶部15に記憶されたアンチエイリアスプログラムを実行し、画像処理部10を制御することにより実現される。アンチエイリアス処理は、画像データ入力部101に画像データが入力されたときに実行される。
制御部11は、上述のようにして、観察窓の設定を行う(ステップS101)。そして、制御部11は、上述のようにして、エッジ判定処理を行う(ステップS102)。ここで、エッジ判定処理について、図7を参照しながら説明する。
先ず、制御部11は、エッジ判定の対象とする画素の組合せを抽出する(ステップS201)。抽出する画素の組合せは、上述した56の画素の組合せから所定の順序にて抽出される。そして、制御部11は、RAM11bに設定された所定のエッジ判定フラグ記憶領域を参照し、抽出した画素の組合せに対応するシフト済みのエッジ判定フラグ(VAB)があるか否かを判定する(ステップS202)。すなわち、制御部11は、アンチエイリアス処理のステップS105において後述するようにしてシフトされたエッジ判定フラグがあるか否かを判定する。制御部11は、シフト済みのエッジ判定フラグ(VAB)があると判定しないときは(ステップS202)、エッジ判定の対象となった画素の各画素値(in[A],in[B])を特定する(ステップS203)。
制御部11は、抽出した画素の組合せの画素値の差分が閾値ethよりも小さいか否かを判定する(ステップS204)。制御部11は、画素値の差分が閾値ethよりも小さいと判定したときは(ステップS204:Y)、当該画素間にエッジは生じていないと判断してエッジ判定フラグ(VAB)を0にセットする(ステップS205)。一方、制御部11は、画素値の差分が閾値ethよりも小さいと判定しないときは(ステップS204:N)、当該画素間にエッジが生じていると判断してエッジ判定フラグ(VAB)を1にセットする(ステップS206)。例えば、エッジ判定の対象である画素の組合せが「03」と「10」であるとき、画素値(in[A],in[B])は、(in[03],in[10])によって表され、エッジ判定フラグ(VAB)は、(V0310)によって表される。そして、例えば、閾値eth=128としたとき、画素値(in[03],in[10])の差分が128未満である場合は、エッジ判定フラグ(V0310)には0がセットされ、128以上である場合は、エッジ判定フラグ(V0310)には1がセットされる。このようにしてセットされたエッジ判定フラグ(VAB)は、上述したエッジ判定フラグ記憶領域に保持される。
一方、制御部11は、ステップS202において、シフト済みのエッジ判定フラグがあると判定したときは(ステップS202:Y)、ステップS203〜ステップS206の処理を実行することなく、ステップS207の処理に移行する。
制御部11は、全ての判定対象についてエッジ判定が行われたか否かを判定する(ステップS207)。制御部11は、全ての判定対象についてエッジ判定が行われたと判定したときは(ステップS207:Y)、この処理を終了する。一方、制御部11は、全ての判定対象についてエッジ判定が行われたと判定しないときは(ステップS205:N)、ステップS201の処理に移行する。
次に、制御部11は、図6に示すように、エッジ判定処理を実行した後、出力値変換処理を実行する(ステップS103)。ここで、出力値変換処理について、図8〜図23を参照しながら説明する。
制御部11は、図8に示すように、C1〜C6に対してエッジ判定フラグをそれぞれ入力し、C11,C12,C21,C22,C31,C32,C41,C42,C51,52,C61,C62からそれぞれエッジ判定フラグにマッチするテンプレートデータを得るための処理(処理A〜処理L)を順次実行する。そして、制御部11は、C11,C12,C21,C22,C31,C32,C41,C42,C51,52,C61,C62から得られたテンプレートデータの示す値のうちの最大値をC1000に入力する。そして、制御部11は、C1000に入力されたテンプレートデータに基づき、上述したようにして、注目画素P1の出力画素値(Outpix[Center])を算出し、出力する。
ここで、処理Aについて、図9を参照しながら詳述する。
先ず、制御部11は、エッジ判定フラグ(V1824)が0で、かつ、エッジ判定フラグ(V2632)が0で、かつ、エッジ判定フラグ(V1826)が1であるか否かを判定する(ステップS301)。制御部11は、ステップS301における条件に合致すると判定したときは(ステップS301:Y)、エッジ判定フラグ(V1819)が0で、かつ、エッジ判定フラグ(V3132)が0であるか否かを判定する(ステップS302)。制御部11は、ステップS302における条件に合致すると判定したときは(ステップS302:Y)、RAM11bの所定の記憶領域におけるマッチデータ(Match[C11])にテンプレートデータ(21)をセットする(ステップS303)。テンプレートデータ(21)に対応するテンプレートは、図5(A)に示されるようになる。そして、制御部11は、エッジ判定フラグ(V2324)が0で、かつ、エッジ判定フラグ(V3031)が0で、かつ、エッジ判定フラグ(V1920)が0で、かつ、エッジ判定フラグ(V2627)が0であるか否かを判定する(ステップS304)。制御部11は、ステップS304における条件に合致すると判定したときは(ステップS304:Y)、マッチデータ(Match[C11])にセットされているデータをテンプレートデータ(213)に変更し(ステップS305)、この処理を終了する。テンプレートデータ(213)に対応するテンプレートは、図5(C)に示されるようになる。一方、制御部11は、ステップS304における条件に合致すると判定しないときは(ステップS304:N)、ステップS305の処理を実行することなく、この処理を終了する。
また、制御部11は、ステップS301における条件に合致すると判定しないとき(ステップS301:N)、又は、ステップS302における条件に合致すると判定しないとき(ステップS302:N)は、何れのテンプレートにも合致しなかったことを示すテンプレートデータ(0)をマッチデータ(Match[C11])にセットし(ステップS306)、この処理を終了する。
次に、処理Bについて、図10を参照しながら詳述する。
先ず、制御部11は、エッジ判定フラグ(V1824)が0で、かつ、エッジ判定フラグ(V2632)が0で、かつ、エッジ判定フラグ(V1826)が1であるか否かを判定する(ステップS401)。制御部11は、ステップS401における条件に合致すると判定したときは(ステップS401:Y)、エッジ判定フラグ(V1926)が0で、かつ、エッジ判定フラグ(V2431)が0であるか否かを判定する(ステップS402)。制御部11は、ステップS402における条件に合致すると判定したときは(ステップS402:Y)、RAM11bの所定の記憶領域におけるマッチデータ(Match[C12])にテンプレートデータ(22)をセットする(ステップS403)。テンプレートデータ(22)に対応するテンプレートは、図5(I)に示されるようになる。そして、制御部11は、エッジ判定フラグ(V1118)が0で、かつ、エッジ判定フラグ(V1219)が0で、かつ、エッジ判定フラグ(V3138)が0で、かつ、エッジ判定フラグ(V3239)が0であるか否かを判定する(ステップS404)。制御部11は、ステップS404における条件に合致すると判定したときは(ステップS404:Y)、マッチデータ(Match[C12])にセットされているデータをテンプレートデータ(223)に変更し(ステップS405)、この処理を終了する。テンプレートデータ(223)に対応するテンプレートは、図5(K)に示されるようになる。一方、制御部11は、ステップS404における条件に合致すると判定しないときは(ステップS404:N)、ステップS405の処理を実行することなく、この処理を終了する。
また、制御部11は、ステップS401における条件に合致すると判定しないとき(ステップS401:N)、又は、ステップS402における条件に合致すると判定しないとき(ステップS402:N)は、何れのテンプレートにも合致しなかったことを示すテンプレートデータ(0)をマッチデータ(Match[C12])にセットし(ステップS406)、この処理を終了する。
次に、処理Cについて、図11を参照しながら詳述する。
先ず、制御部11は、エッジ判定フラグ(V1826)が0で、かつ、エッジ判定フラグ(V2432)が0で、かつ、エッジ判定フラグ(V1824)が1であるか否かを判定する(ステップS501)。制御部11は、ステップS501における条件に合致すると判定したときは(ステップS501:Y)、エッジ判定フラグ(V1718)が0で、かつ、エッジ判定フラグ(V3233)が0であるか否かを判定する(ステップS502)。制御部11は、ステップS502における条件に合致すると判定したときは(ステップS502:Y)、RAM11bの所定の記憶領域におけるマッチデータ(Match[C21])に、テンプレートデータ(23)をセットする(ステップS503)。テンプレートデータ(23)に対応するテンプレートは、図5(B)に示されるようになる。そして、制御部11は、エッジ判定フラグ(V1617)が0で、かつ、エッジ判定フラグ(V2324)が0で、かつ、エッジ判定フラグ(V2627)が0で、かつ、エッジ判定フラグ(V3334)が0であるか否かを判定する(ステップS504)。制御部11は、ステップS504における条件に合致すると判定したときは(ステップS504:Y)、マッチデータ(Match[C21])にセットされているデータをテンプレートデータ(233)に変更し(ステップS505)、この処理を終了する。テンプレートデータ(233)に対応するテンプレートは、図5(D)に示されるようになる。一方、制御部11は、ステップS504における条件に合致すると判定しないときは(ステップS504:N)、ステップS505の処理を実行することなく、この処理を終了する。
また、制御部11は、ステップS501における条件に合致すると判定しないとき(ステップS501:N)、又は、ステップS502における条件に合致すると判定しないとき(ステップS502:N)は、何れのテンプレートにも合致しなかったことを示すテンプレートデータ(0)をマッチデータ(Match[C21])にセットし(ステップS506)、この処理を終了する。
次に、処理Dについて、図12を参照しながら詳述する。
先ず、制御部11は、エッジ判定フラグ(V1826)が0で、かつ、エッジ判定フラグ(V2432)が0で、かつ、エッジ判定フラグ(V1824)が1であるか否かを判定する(ステップS601)。制御部11は、ステップS601における条件に合致すると判定したときは(ステップS601:Y)、エッジ判定フラグ(V1724)が0で、かつ、エッジ判定フラグ(V2633)が0であるか否かを判定する(ステップS602)。制御部11は、ステップS602における条件に合致すると判定したときは(ステップS602:Y)、RAM11bの所定の記憶領域におけるマッチデータ(Match[C22])にテンプレートデータ(24)をセットする(ステップS603)。テンプレートデータ(24)に対応するテンプレートは、図5(J)に示されるようになる。そして、制御部11は、エッジ判定フラグ(V1017)が0で、かつ、エッジ判定フラグ(V1118)が0で、かつ、エッジ判定フラグ(V3239)が0で、かつ、エッジ判定フラグ(V3340)が0であるか否かを判定する(ステップS604)。制御部11は、ステップS604における条件に合致すると判定したときは(ステップS604:Y)、マッチデータ(Match[C22])にセットされているデータをテンプレートデータ(243)に変更し(ステップS605)、この処理を終了する。テンプレートデータ(243)に対応するテンプレートは、図5(L)に示されるようになる。一方、制御部11は、ステップS604における条件に合致すると判定しないときは(ステップS604:N)、ステップS605の処理を実行することなく、この処理を終了する。
また、制御部11は、ステップS601における条件に合致すると判定しないとき(ステップS601:N)、又は、ステップS602における条件に合致すると判定しないとき(ステップS602:N)は、何れのテンプレートにも合致しなかったことを示すテンプレートデータ(0)をマッチデータ(Match[C22])にセットし(ステップS606)、この処理を終了する。
次に、処理Eについて、図13を参照しながら詳述する。
先ず、制御部11は、エッジ判定フラグ(V2425)が0で、かつ、エッジ判定フラグ(V2526)が0で、かつ、エッジ判定フラグ(V3132)が0で、かつ、エッジ判定フラグ(V3233)が0で、かつ、エッジ判定フラグ(V2532)が1であるか否かを判定する(ステップS701)。制御部11は、ステップS701における条件に合致すると判定したときは(ステップS701:Y)、エッジ判定フラグ(V1516)が0で、かつ、エッジ判定フラグ(V1624)が0で、かつ、エッジ判定フラグ(V2223)が0で、かつ、エッジ判定フラグ(V2331)が0で、かつ、エッジ判定フラグ(V2627)が0で、かつ、エッジ判定フラグ(V3334)が0であるか否かを判定する(ステップS702)。制御部11は、ステップS702における条件に合致すると判定したときは(ステップS702:Y)、RAM11bの所定の記憶領域におけるマッチデータ(Match[C31])にテンプレートデータ(251)をセットし(ステップS703)、この処理を終了する。テンプレートデータ(251)に対応するテンプレートは、図5(E)に示されるようになる。
また、制御部11は、ステップS701における条件に合致すると判定しないとき(ステップS701:N)、又は、ステップS702における条件に合致すると判定しないときは(ステップS702:N)、何れのテンプレートにも合致しなかったことを示すテンプレートデータ(0)をマッチデータ(Match[C31])にセットし(ステップS704)、この処理を終了する。
次に、処理Fについて、図14を参照しながら詳述する。
先ず、制御部11は、エッジ判定フラグ(V2425)が0で、かつ、エッジ判定フラグ(V2526)が0で、かつ、エッジ判定フラグ(V3132)が0で、かつ、エッジ判定フラグ(V3233)が0で、かつ、エッジ判定フラグ(V2532)が1であるか否かを判定する(ステップS801)。制御部11は、ステップS801における条件に合致すると判定したときは(ステップS801:Y)、エッジ判定フラグ(V2021)が0で、かつ、エッジ判定フラグ(V2728)が0で、かつ、エッジ判定フラグ(V2026)が0で、かつ、エッジ判定フラグ(V2733)が0で、かつ、エッジ判定フラグ(V2324)が0で、かつ、エッジ判定フラグ(V3031)が0であるか否かを判定する(ステップS802)。制御部11は、ステップS802における条件に合致すると判定したときは(ステップS802:Y)、RAM11bの所定の記憶領域におけるマッチデータ(Match[C32])にテンプレートデータ(252)をセットし(ステップS803)、この処理を終了する。テンプレートデータ(252)に対応するテンプレートは、図5(F)に示されるようになる。
また、制御部11は、ステップS801における条件に合致すると判定しないとき(ステップS801:N)、又は、ステップS802における条件に合致すると判定しないときは(ステップS802:N)、何れのテンプレートにも合致しなかったことを示すテンプレートデータ(0)をマッチデータ(Match[C32])にセットし(ステップS804)、この処理を終了する。
次に、処理Gについて、図15を参照しながら詳述する。
先ず、制御部11は、エッジ判定フラグ(V1718)が0で、かつ、エッジ判定フラグ(V1819)が0で、かつ、エッジ判定フラグ(V2425)が0で、かつ、エッジ判定フラグ(V2526)が0で、かつ、エッジ判定フラグ(V1825)が1であるか否かを判定する(ステップS901)。制御部11は、ステップS901における条件に合致すると判定したときは(ステップS901:Y)、エッジ判定フラグ(V2223)が0で、かつ、エッジ判定フラグ(V2930)が0で、かつ、エッジ判定フラグ(V1723)が0で、かつ、エッジ判定フラグ(V2430)が0で、かつ、エッジ判定フラグ(V1920)が0で、かつ、エッジ判定フラグ(V2627)が0であるか否かを判定する(ステップS902)。制御部11は、ステップS902における条件に合致すると判定したときは(ステップS902:Y)、RAM11bの所定の記憶領域におけるマッチデータ(Match[C41])にテンプレートデータ(253)をセットし(ステップS603)、この処理を終了する。テンプレートデータ(253)に対応するテンプレートは、図5(G)に示されるようになる。
また、制御部11は、ステップS901における条件に合致すると判定しないとき(ステップS901:N)、又は、ステップS902における条件に合致すると判定しないときは(ステップS902:N)、何れのテンプレートにも合致しなかったことを示すテンプレートデータ(0)をマッチデータ(Match[C41])にセットし(ステップS904)、この処理を終了する。
次に、処理Hについて、図16を参照しながら詳述する。
先ず、制御部11は、エッジ判定フラグ(V1718)が0で、かつ、エッジ判定フラグ(V1819)が0で、かつ、エッジ判定フラグ(V2425)が0で、かつ、エッジ判定フラグ(V2526)が0で、かつ、エッジ判定フラグ(V1825)が1であるか否かを判定する(ステップS1001)。制御部11は、ステップS1001における条件に合致すると判定したときは(ステップS1001:Y)、エッジ判定フラグ(V2728)が0で、かつ、エッジ判定フラグ(V3435)が0で、かつ、エッジ判定フラグ(V1927)が0で、かつ、エッジ判定フラグ(V2634)が0で、かつ、エッジ判定フラグ(V1617)が0で、かつ、エッジ判定フラグ(V2324)が0であるか否かを判定する(ステップS1002)。制御部11は、ステップS1002における条件に合致すると判定したときは(ステップS1002:Y)、RAM11bの所定の記憶領域におけるマッチデータ(Match[C42])にテンプレートデータ(254)をセットし(ステップS1003)、この処理を終了する。テンプレートデータ(254)に対応するテンプレートは、図5(H)に示されるようになる。
また、制御部11は、ステップS1001における条件に合致すると判定しないとき(ステップS1001:N)、又は、ステップS1002における条件に合致すると判定しないときは(ステップS1002:N)、何れのテンプレートにも合致しなかったことを示すテンプレートデータ(0)をマッチデータ(Match[C42])にセットし(ステップS1004)、この処理を終了する。
次に、処理Iについて、図17を参照しながら詳述する。
先ず、制御部11は、エッジ判定フラグ(V1825)が0で、かつ、エッジ判定フラグ(V2532)が0で、かつ、エッジ判定フラグ(V1926)が0で、かつ、エッジ判定フラグ(V2633)が0で、かつ、エッジ判定フラグ(V2526)が1であるか否かを判定する(ステップS1101)。制御部11は、ステップS1101における条件に合致すると判定したときは(ステップS1101:Y)、エッジ判定フラグ(V0310)が0で、かつ、エッジ判定フラグ(V0411)が0で、かつ、エッジ判定フラグ(V1018)が0で、かつ、エッジ判定フラグ(V1119)が0で、かつ、エッジ判定フラグ(V3239)が0で、かつ、エッジ判定フラグ(V3340)が0であるか否かを判定する(ステップS1102)。制御部11は、ステップS1102における条件に合致すると判定したときは(ステップS1102:Y)、RAM11bの所定の記憶領域におけるマッチデータ(Match[C51])にテンプレートデータ(261)をセットし(ステップS1103)、この処理を終了する。テンプレートデータ(261)に対応するテンプレートは、図5(M)に示されるようになる。
また、制御部11は、ステップS1101における条件に合致すると判定しないとき(ステップS1101:N)、又は、ステップS1102における条件に合致すると判定しないときは(ステップS1102:N)、何れのテンプレートにも合致しなかったことを示すテンプレートデータ(0)をマッチデータ(Match[C51])にセットし(ステップS1104)、この処理を終了する。
次に、処理Jについて、図18を参照しながら詳述する。
先ず、制御部11は、エッジ判定フラグ(V1825)が0で、かつ、エッジ判定フラグ(V2532)が0で、かつ、エッジ判定フラグ(V1926)が0で、かつ、エッジ判定フラグ(V2633)が0で、かつ、エッジ判定フラグ(V2526)が1であるか否かを判定する(ステップS1201)。制御部11は、ステップS1201における条件に合致すると判定したときは(ステップS1201:Y)、エッジ判定フラグ(V3845)が0で、かつ、エッジ判定フラグ(V3946)が0で、かつ、エッジ判定フラグ(V3238)が0で、かつ、エッジ判定フラグ(V3339)が0で、かつ、エッジ判定フラグ(V1118)が0で、かつ、エッジ判定フラグ(V1219)が0であるか否かを判定する(ステップS1202)。制御部11は、ステップS1202における条件に合致すると判定したときは(ステップS1202:Y)、RAM11bの所定の記憶領域におけるマッチデータ(Match[C52])にテンプレートデータ(262)をセットし(ステップS1203)、この処理を終了する。テンプレートデータ(262)に対応するテンプレートは、図5(N)に示されるようになる。
また、制御部11は、ステップS1201における条件に合致すると判定しないとき(ステップS1201:N)、又は、ステップS1202における条件に合致すると判定しないときは(ステップS1202:N)、何れのテンプレートにも合致しなかったことを示すテンプレートデータ(0)をマッチデータ(Match[C52])にセットし(ステップS1204)、この処理を終了する。
次に、処理Kについて、図19を参照しながら詳述する。
先ず、制御部11は、エッジ判定フラグ(V1724)が0で、かつ、エッジ判定フラグ(V2431)が0で、かつ、エッジ判定フラグ(V1825)が0で、かつ、エッジ判定フラグ(V2532)が0で、かつ、エッジ判定フラグ(V2425)が1であるか否かを判定する(ステップS1301)。制御部11は、ステップS1301における条件に合致すると判定したときは(ステップS1301:Y)、エッジ判定フラグ(V0411)が0で、かつ、エッジ判定フラグ(V0512)が0で、かつ、エッジ判定フラグ(V1117)が0で、かつ、エッジ判定フラグ(V1218)が0で、かつ、エッジ判定フラグ(V3138)が0で、かつ、エッジ判定フラグ(V3239)が0であるか否かを判定する(ステップS1302)。制御部11は、ステップS1302における条件に合致すると判定したときは(ステップS1302:Y)、RAM11bの所定の記憶領域におけるマッチデータ(Match[C61])にテンプレートデータ(263)をセットし(ステップS1303)、この処理を終了する。テンプレートデータ(263)に対応するテンプレートは、図5(O)に示されるようになる。
また、制御部11は、ステップS1301における条件に合致すると判定しないとき(ステップS1301:N)、又は、ステップS1302における条件に合致すると判定しないときは(ステップS1302:N)、何れのテンプレートにも合致しなかったことを示すテンプレートデータ(0)をマッチデータ(Match[C61])にセットし(ステップS1304)、この処理を終了する。
次に、処理Lについて、図20を参照しながら詳述する。
先ず、制御部11は、エッジ判定フラグ(V1724)が0で、かつ、エッジ判定フラグ(V2431)が0で、かつ、エッジ判定フラグ(V1825)が0で、かつ、エッジ判定フラグ(V2532)が0で、かつ、エッジ判定フラグ(V2425)が1であるか否かを判定する(ステップS1401)。制御部11は、ステップS1401における条件に合致すると判定したときは(ステップS1401:Y)、エッジ判定フラグ(V3946)が0で、かつ、エッジ判定フラグ(V4047)が0で、かつ、エッジ判定フラグ(V3139)が0で、かつ、エッジ判定フラグ(V3240)が0で、かつ、エッジ判定フラグ(V1017)が0で、かつ、エッジ判定フラグ(V1118)が0であるか否かを判定する(ステップS1402)。制御部11は、ステップS1402における条件に合致すると判定したときは(ステップS1402:Y)、RAM11bの所定の記憶領域におけるマッチデータ(Match[C62])にテンプレートデータ(264)をセットし(ステップS1403)、この処理を終了する。テンプレートデータ(264)に対応するテンプレートは、図5(P)に示されるようになる。
また、制御部11は、ステップS1401における条件に合致すると判定しないとき(ステップS1401:N)、又は、ステップS1402における条件に合致すると判定しないときは(ステップS1402:N)、何れのテンプレートにも合致しなかったことを示すテンプレートデータ(0)をマッチデータ(Match[C62])にセットし(ステップS1404)、この処理を終了する。
次に、上述した処理A〜処理Lを実行して得られたC11,C12,C21,C22,C31,C32,C41,C42,C51,52,C61,C62の各テンプレートデータの示す値のうちの最大値を得るための処理について、図21及び図22を参照しながら詳述する。
先ず、制御部11は、マッチデータ(Match[C62])を参照し、マッチデータ(Match[C62])に0以外のデータがセットされているか否かを判定する(ステップS1501)。すなわち、制御部11は、テンプレートデータ(264)がマッチデータ(Match[C62])にセットされているか否かを判定する。制御部11は、マッチデータ(Match[C62])に0以外のデータがセットされている判定したときは(ステップS1501:Y)、マッチデータ(Match[C62])にセットされているテンプレートデータをRAM11bの所定の記憶領域におけるマッチデータ(Match[C1000])にセットし(ステップS1502)、この処理を終了する。
一方、制御部11は、マッチデータ(Match[C62])に0以外のデータがセットされていると判定しないときは(ステップS1501:N)、マッチデータ(Match[C61])を参照し、マッチデータ(Match[C61])に0以外のデータがセットされているか否かを判定する(ステップS1503)。すなわち、制御部11は、テンプレートデータ(263)がマッチデータ(Match[C61])にセットされているか否かを判定する。制御部11は、マッチデータ(Match[C61])に0以外のデータがセットされている判定したときは(ステップS1503:Y)、マッチデータ(Match[C61])にセットされているテンプレートデータをRAM11bの所定の記憶領域におけるマッチデータ(Match[C1000])にセットし(ステップS1504)、この処理を終了する。
一方、制御部11は、マッチデータ(Match[C61])に0以外のデータがセットされていると判定しないときは(ステップS1503:N)、マッチデータ(Match[C52])を参照し、マッチデータ(Match[C52])に0以外のデータがセットされているか否かを判定する(ステップS1505)。すなわち、制御部11は、テンプレートデータ(262)がマッチデータ(Match[C52])にセットされているか否かを判定する。制御部11は、マッチデータ(Match[C52])に0以外のデータがセットされていると判定したときは(ステップS1505:Y)、マッチデータ(Match[C52])にセットされているテンプレートデータをマッチデータ(Match[C1000])にセットし(ステップS1506)、この処理を終了する。
一方、制御部11は、マッチデータ(Match[C52])に0以外のデータがセットされていると判定しないときは(ステップS1505:N)、マッチデータ(Match[C51])を参照し、マッチデータ(Match[C51])に0以外のデータがセットされているか否かを判定する(ステップS1507)。すなわち、制御部11は、テンプレートデータ(261)がマッチデータ(Match[C51])にセットされているか否かを判定する。制御部11は、マッチデータ(Match[C51])に0以外のデータがセットされていると判定したときは(ステップS1507:Y)、マッチデータ(Match[C51])にセットされているテンプレートデータをマッチデータ(Match[C1000])にセットし(ステップS1508)、この処理を終了する。
一方、制御部11は、マッチデータ(Match[C51])に0以外のデータがセットされていると判定しないときは(ステップS1507:N)、マッチデータ(Match[C42])を参照し、マッチデータ(Match[C42])に0以外のデータがセットされているか否かを判定する(ステップS1509)。すなわち、制御部11は、テンプレートデータ(254)がマッチデータ(Match[C42])にセットされているか否かを判定する。制御部11は、マッチデータ(Match[C42])に0以外のデータがセットされていると判定したときは(ステップS1509:Y)、マッチデータ(Match[C42])にセットされているテンプレートデータをマッチデータ(Match[C1000])にセットし(ステップS1510)、この処理を終了する。
一方、制御部11は、マッチデータ(Match[C42])に0以外のデータがセットされていると判定しないときは(ステップS1509:N)、マッチデータ(Match[C41])を参照し、マッチデータ(Match[C41])に0以外のデータがセットされているか否かを判定する(ステップS1511)。すなわち、制御部11は、テンプレートデータ(253)がマッチデータ(Match[C41])にセットされているか否かを判定する。制御部11は、マッチデータ(Match[C41])に0以外のデータがセットされていると判定したときは(ステップS1511:Y)、マッチデータ(Match[C41])にセットされているテンプレートデータをマッチデータ(Match[C1000])にセットし(ステップS1512)、この処理を終了する。
一方、制御部11は、マッチデータ(Match[C41])に0以外のデータがセットされていると判定しないときは(ステップS1511:N)、マッチデータ(Match[C32])を参照し、マッチデータ(Match[C32])に0以外のデータがセットされているか否かを判定する(ステップS1513)。すなわち、制御部11は、テンプレートデータ(252)がマッチデータ(Match[C32])にセットされているか否かを判定する。制御部11は、マッチデータ(Match[C32])に0以外のデータがセットされていると判定したときは(ステップS1513:Y)、マッチデータ(Match[C32])にセットされているテンプレートデータをマッチデータ(Match[C1000])にセットし(ステップS1514)、この処理を終了する。
一方、制御部11は、マッチデータ(Match[C32])に0以外のデータがセットされていると判定しないときは(ステップS1513:N)、図22に示すように、マッチデータ(Match[C31])を参照し、マッチデータ(Match[C31])に0以外のデータがセットされているか否かを判定する(ステップS1515)。すなわち、制御部11は、テンプレートデータ(251)がマッチデータ(Match[C31])にセットされているか否かを判定する。制御部11は、マッチデータ(Match[C31])に0以外のデータがセットされていると判定したときは(ステップS1515:Y)、マッチデータ(Match[C31])にセットされているテンプレートデータをマッチデータ(Match[C1000])にセットし(ステップS1516)、この処理を終了する。
一方、制御部11は、マッチデータ(Match[C31])に0以外のデータがセットされていると判定しないときは(ステップS1515:N)、マッチデータ(Match[C22])を参照し、マッチデータ(Match[C22])に0以外のデータがセットされているか否かを判定する(ステップS1517)。すなわち、制御部11は、テンプレートデータ(24)及びテンプレートデータ(243)の何れかがマッチデータ(Match[C22])にセットされているか否かを判定する。制御部11は、マッチデータ(Match[C22])に0以外のデータがセットされていると判定したときは(ステップS1517:Y)、マッチデータ(Match[C22])にセットされているテンプレートデータをマッチデータ(Match[C1000])にセットし(ステップS1518)、この処理を終了する。
一方、制御部11は、マッチデータ(Match[C22])に0以外のデータがセットされていると判定しないときは(ステップS1517:N)、マッチデータ(Match[C21])を参照し、マッチデータ(Match[C21])に0以外のデータがセットされているか否かを判定する(ステップS1519)。すなわち、制御部11は、テンプレートデータ(23)及びテンプレートデータ(233)の何れかがマッチデータ(Match[C21])にセットされているか否かを判定する。制御部11は、マッチデータ(Match[C21])に0以外のデータがセットされていると判定したときは(ステップS1519:Y)、マッチデータ(Match[C21])にセットされているテンプレートデータをマッチデータ(Match[C1000])にセットし(ステップS1520)、この処理を終了する。
一方、制御部11は、マッチデータ(Match[C21])に0以外のデータがセットされていると判定しないときは(ステップS1519:N)、マッチデータ(Match[C12])を参照し、マッチデータ(Match[C12])に0以外のデータがセットされているか否かを判定する(ステップS1521)。すなわち、制御部11は、テンプレートデータ(22)及びテンプレートデータ(223)の何れかがマッチデータ(Match[C12])にセットされているか否かを判定する。制御部11は、マッチデータ(Match[C12])に0以外のデータがセットされていると判定したときは(ステップS1521:Y)、マッチデータ(Match[C12])にセットされているテンプレートデータをマッチデータ(Match[C1000])にセットし(ステップS1522)、この処理を終了する。
一方、制御部11は、マッチデータ(Match[C12])に0以外のデータがセットされていると判定しないときは(ステップS1521:N)、マッチデータ(Match[C11])を参照し、マッチデータ(Match[C11])に0以外のデータがセットされているか否かを判定する(ステップS1523)。すなわち、制御部11は、テンプレートデータ(21)及びテンプレートデータ(213)の何れかがマッチデータ(Match[C11])にセットされているか否かを判定する。制御部11は、マッチデータ(Match[C11])に0以外のデータがセットされていると判定したときは(ステップS1523:Y)、マッチデータ(Match[C11])にセットされているテンプレートデータをマッチデータ(Match[C1000])にセットし(ステップS1524)、この処理を終了する。
一方、制御部11は、マッチデータ(Match[C11])に0以外のデータがセットされていると判定しないときは(ステップS1523:N)、何れのテンプレートにも合致しなかったことを示すテンプレートデータ(0)をマッチデータ(Match[C1000])にセットし(ステップS1525)、この処理を終了する。
以上の処理を実行することにより、最終的に1つのテンプレートデータが特定されるようになる。本実施の形態では、複数のテンプレートにマッチする場合を想定し、各テンプレートに対応するテンプレートデータに優先順位を設けている。すなわち、以上の処理を実行することにより、テンプレートデータの示す数値が大きいものから優先して選択されるように各テンプレートデータが設定されている。各テンプレートデータは、参照する画素数が多いほど、優先順位が高まるように設定されている。このようにテンプレートデータを設定することにより、効率よくテンプレートデータの選択を行うことができるようになる。なお、本実施の形態では、テンプレートデータの示す数値が大きいものからマッチするものを参照するようにしたが、テンプレートデータの示す数値が小さいものから参照するようにしてもよい。
また、本実施の形態では、上述したように、何れのテンプレートデータの選択を行う場合であっても、参照するエッジ判定フラグの数が、当該エッジ判定フラグを得るために参照された画素数よりも少なくしてテンプレートデータの選択を行うことができるので、データ量を抑制してテンプレートデータの選択が行うことが可能となる。
次に、注目画素P1の出力画素値(Outpix[Center])を算出する処理について、図23を参照しながら詳述する。
先ず、制御部11は、マッチデータ(Match[C1000])を参照し、マッチデータ(Match[C1000])にセットされたテンプレートデータがテンプレートデータ(21)〜テンプレートデータ(24)の何れかであるか否かを判定する(ステップS1601)。制御部11は、マッチデータ(Match[C1000])にセットされたテンプレートデータがテンプレートデータ(21)〜テンプレートデータ(24)の何れかであると判定したときは(ステップS1601:Y)、「18」の位置における画素(隣接画素P31)の画素値(in[18])、「25」の位置における画素(注目画素P1)の画素値(in[25])及び「32」の位置における画素(隣接画素P32)の画素値(in[32])の和を求め、これを1/3して得た値を注目画素P1の出力画素値(Outpix[Center])とし(ステップS1602)、この処理を終了する。
一方、制御部11は、マッチデータ(Match[C1000])にセットされたテンプレートデータがテンプレートデータ(21)〜テンプレートデータ(24)の何れかであると判定しないときは(ステップS1601:N)、マッチデータ(Match[C1000])にセットされたテンプレートデータがテンプレートデータ(213)又はテンプレートデータ(233)であるか否かを判定する(ステップS1603)。制御部11は、マッチデータ(Match[C1000])にセットされたテンプレートデータがテンプレートデータ(213)又はテンプレートデータ(233)であると判定したときは(ステップS1603:Y)、「18」の位置における画素(隣接画素P31)の画素値(in[18])を2倍した値、「25」の位置における画素(注目画素P1)の画素値(in[25])及び「32」の位置における画素(隣接画素P32)の画素値(in[32])を2倍した値の和を求め、これを1/5して得た値を注目画素P1の出力画素値(Outpix[Center])とし(ステップS1604)、この処理を終了する。
一方、制御部11は、マッチデータ(Match[C1000])にセットされたテンプレートデータがテンプレートデータ(213)又はテンプレートデータ(233)であると判定しないときは(ステップS1603:N)、マッチデータ(Match[C1000])にセットされたテンプレートデータがテンプレートデータ(223)又はテンプレートデータ(243)であるか否かを判定する(ステップS1605)。制御部11は、マッチデータ(Match[C1000])にセットされたテンプレートデータがテンプレートデータ(223)又はテンプレートデータ(243)であると判定したときは(ステップS1605:Y)、「24」の位置における画素(隣接画素P33)の画素値(in[24])を2倍した値、「25」の位置における画素(注目画素P1)の画素値(in[25])及び「26」の位置における画素(隣接画素P34)の画素値(in[26])を2倍した値の和を求め、これを1/5して得た値を注目画素P1の出力画素値(Outpix[Center])とし(ステップS1606)、この処理を終了する。
一方、制御部11は、マッチデータ(Match[C1000])にセットされたテンプレートデータがテンプレートデータ(223)又はテンプレートデータ(243)であると判定しないときは(ステップS1605:N)、マッチデータ(Match[C1000])にセットされたテンプレートデータがテンプレートデータ(251)又はテンプレートデータ(252)であるか否かを判定する(ステップS1607)。制御部11は、マッチデータ(Match[C1000])にセットされたテンプレートデータがテンプレートデータ(251)又はテンプレートデータ(252)であると判定したときは(ステップS1607:Y)、「25」の位置における画素(注目画素P1)の画素値(in[25])を4倍した値及び「32」の位置(隣接画素P32)における画素の画素値(in[32])の和を求め、これを1/5して得た値を注目画素P1の出力画素値(Outpix[Center])とし(ステップS1608)、この処理を終了する。
一方、制御部11は、マッチデータ(Match[C1000])にセットされたテンプレートデータがテンプレートデータ(251)又はテンプレートデータ(252)であると判定しないときは(ステップS1607:N)、マッチデータ(Match[C1000])にセットされたテンプレートデータがテンプレートデータ(253)又はテンプレートデータ(254)であるか否かを判定する(ステップS1609)。制御部11は、マッチデータ(Match[C1000])にセットされたテンプレートデータがテンプレートデータ(253)又はテンプレートデータ(254)であると判定したときは(ステップS1609:Y)、「25」の位置における画素(注目画素P1)の画素値(in[25])を4倍した値及び「18」の位置における画素(隣接画素P31)の画素値(in[18])の和を求め、これを1/5して得た値を注目画素P1の出力画素値(Outpix[Center])とし(ステップS1610)、この処理を終了する。
一方、制御部11は、マッチデータ(Match[C1000])にセットされたテンプレートデータがテンプレートデータ(253)又はテンプレートデータ(254)であると判定しないときは(ステップS1609:N)、マッチデータ(Match[C1000])にセットされたテンプレートデータがテンプレートデータ(261)又はテンプレートデータ(262)であるか否かを判定する(ステップS1611)。制御部11は、マッチデータ(Match[C1000])にセットされたテンプレートデータがテンプレートデータ(261)又はテンプレートデータ(262)であると判定したときは(ステップS1611:Y)、「25」の位置における画素(注目画素P1)の画素値(in[25])を4倍した値及び「26」の位置における画素(隣接画素P34)の画素値(in[26])の和を求め、これを1/5して得た値を注目画素P1の出力画素値(Outpix[Center])とし(ステップS1612)、この処理を終了する。
一方、制御部11は、マッチデータ(Match[C1000])にセットされたテンプレートデータがテンプレートデータ(261)又はテンプレートデータ(262)であると判定しないときは(ステップS1611:N)、マッチデータ(Match[C1000])にセットされたテンプレートデータがテンプレートデータ(263)又はテンプレートデータ(264)であるか否かを判定する(ステップS1613)。制御部11は、マッチデータ(Match[C1000])にセットされたテンプレートデータがテンプレートデータ(263)又はテンプレートデータ(264)であると判定したときは(ステップS1613:Y)、「25」の位置における画素(注目画素P1)の画素値(in[25])を4倍した値及び「24」の位置における画素(隣接画素P33)の画素値(in[24])の和を求め、これを1/5して得た値を注目画素P1の出力画素値(Outpix[Center])とし(ステップS1614)、この処理を終了する。
一方、制御部11は、マッチデータ(Match[C1000])にセットされたテンプレートデータがテンプレートデータ(263)又はテンプレートデータ(264)であると判定しないときは(ステップS1613:N)、「25」の位置における画素(注目画素P1)の画素値(in[25])をそのまま注目画素P1の出力画素値(Outpix[Center])とし(ステップS1615)、この処理を終了する。
本実施の形態では、以上の処理を実行することにより、選択されたテンプレートデータに応じた算出方法にて、注目画素P1の出力画素値を算出することができる。本実施の形態では、従来の方法のように2値的な入力値を想定したアンチエイリアスとは異なった方法により、注目画素の画素値と周辺画素の画素値とを特定の割合にて混合し、出力画素値を得るようにしたので、解像度変換に近い処理結果が得られるようになる。
制御部11は、以上のようにして出力値変換処理を実行した後、図6に示すように、入力した画像データにおける全ての画素についてステップS102及びステップS103による処理が行われたか否かを判定する(ステップS104)。制御部11は、全ての画素についての処理が完了したと判定したときは(ステップS104:Y)、この処理を終了する。一方、制御部11は、全ての画素についての処理が完了したと判定しないときは(ステップS104:N)、エッジ判定フラグ記憶領域に保持されたエッジ判定フラグ(VAB)における各フラグ値が左方向にシフトされるようにエッジ判定フラグのシフトを行い(ステップS105)、ステップS101の処理に移行する。すなわち、制御部11は、エッジ判定フラグ(V0411)のフラグ値をエッジ判定フラグ(V0310)のフラグ値にシフトし、エッジ判定フラグ(V0512)のフラグ値をエッジ判定フラグ(V0411)のフラグ値にシフトする。また、制御部11は、エッジ判定フラグ(V1118)のフラグ値をエッジ判定フラグ(V1017)のフラグ値にシフトし、エッジ判定フラグ(V1219)のフラグ値をエッジ判定フラグ(V1118)のフラグ値にシフトする。また、制御部11は、エッジ判定フラグ(V1119)のフラグ値をエッジ判定フラグ(V1018)のフラグ値にシフトし、エッジ判定フラグ(V1218)のフラグ値をエッジ判定フラグ(V1117)のフラグ値にシフトする。また、制御部11は、エッジ判定フラグ(V1617)のフラグ値をエッジ判定フラグ(V1516)のフラグ値にシフトし、エッジ判定フラグ(V1718)のフラグ値をエッジ判定フラグ(V1617)のフラグ値にシフトし、エッジ判定フラグ(V1819)のフラグ値をエッジ判定フラグ(V1718)のフラグ値にシフトし、エッジ判定フラグ(V1920)のフラグ値をエッジ判定フラグ(V1819)のフラグ値にシフトし、エッジ判定フラグ(V2021)のフラグ値をエッジ判定フラグ(V1920)のフラグ値にシフトする。また、制御部11は、エッジ判定フラグ(V1826)のフラグ値をエッジ判定フラグ(V1624)のフラグ値にシフトし、エッジ判定フラグ(V1927)のフラグ値をエッジ判定フラグ(V1826)のフラグ値にシフトする。また、制御部11は、エッジ判定フラグ(V1824)のフラグ値をエッジ判定フラグ(V1723)のフラグ値にシフトし、エッジ判定フラグ(V2026)のフラグ値をエッジ判定フラグ(V1824)のフラグ値にシフトする。また、制御部11は、エッジ判定フラグ(V1825)のフラグ値をエッジ判定フラグ(V1724)のフラグ値にシフトし、エッジ判定フラグ(V1926)のフラグ値をエッジ判定フラグ(V1825)のフラグ値にシフトする。また、制御部11は、エッジ判定フラグ(V2324)のフラグ値をエッジ判定フラグ(V2223)のフラグ値にシフトし、エッジ判定フラグ(V2425)のフラグ値をエッジ判定フラグ(V2324)のフラグ値にシフトし、エッジ判定フラグ(V2526)のフラグ値をエッジ判定フラグ(V2425)のフラグ値にシフトし、エッジ判定フラグ(V2627)のフラグ値をエッジ判定フラグ(V2526)のフラグ値にシフトし、エッジ判定フラグ(V2728)のフラグ値をエッジ判定フラグ(V2627)のフラグ値にシフトする。また、制御部11は、エッジ判定フラグ(V2432)のフラグ値をエッジ判定フラグ(V2331)のフラグ値にシフトし、エッジ判定フラグ(V2634)のフラグ値をエッジ判定フラグ(V2432)のフラグ値にシフトする。また、制御部11は、エッジ判定フラグ(V2632)のフラグ値をエッジ判定フラグ(V2430)のフラグ値にシフトし、エッジ判定フラグ(V2733)のフラグ値をエッジ判定フラグ(V2632)のフラグ値にシフトする。また、制御部11は、エッジ判定フラグ(V2532)のフラグ値をエッジ判定フラグ(V2431)のフラグ値にシフトし、エッジ判定フラグ(V2633)のフラグ値をエッジ判定フラグ(V2532)のフラグ値にシフトする。また、制御部11は、エッジ判定フラグ(V3031)のフラグ値をエッジ判定フラグ(V2930)のフラグ値にシフトし、エッジ判定フラグ(V3132)のフラグ値をエッジ判定フラグ(V3031)のフラグ値にシフトし、エッジ判定フラグ(V3233)のフラグ値をエッジ判定フラグ(V3132)のフラグ値にシフトし、エッジ判定フラグ(V3334)のフラグ値をエッジ判定フラグ(V3233)のフラグ値にシフトし、エッジ判定フラグ(V3435)のフラグ値をエッジ判定フラグ(V3334)のフラグ値にシフトする。また、制御部11は、エッジ判定フラグ(V3239)のフラグ値をエッジ判定フラグ(V3138)のフラグ値にシフトし、エッジ判定フラグ(V3340)のフラグ値をエッジ判定フラグ(V3239)のフラグ値にシフトする。また、制御部11は、エッジ判定フラグ(V3240)のフラグ値をエッジ判定フラグ(V3139)のフラグ値にシフトし、エッジ判定フラグ(V3339)のフラグ値をエッジ判定フラグ(V3238)のフラグ値にシフトする。また、制御部11は、エッジ判定フラグ(V3946)のフラグ値をエッジ判定フラグ(V3845)のフラグ値にシフトし、エッジ判定フラグ(V4047)のフラグ値をエッジ判定フラグ(V3946)のフラグ値にシフトする。
本実施の形態では、このように、エッジ判定フラグのシフトさせることにより、次回設定される観察窓W内の画像データに対するエッジ判定処理においてエッジ判定フラグを流用することができる。これにより、1つの画素の組合せに対するエッジ判定結果について最大6回使用することが使用することができるので、上述した56の画素の組合せの全てについてエッジ判定を行う必要がなく、1回のエッジ判定処理において、実質的に最小17回のエッジ判定によってテンプレートを特定することが可能となり、処理効率の向上が図れるようになる。
次に、以上のように構成された画像処理部10によって実現されたアンチエイリアス処理の結果について、図24及び図25を参照しながら説明する。
図24は、本実施の形態によるアンチエイリアス処理が実施された文字の一部の拡大図である。また、図25は、本実施の形態によるアンチエイリアス処理が実施された文字であって、図24とは別の態様である文字の一部の拡大図である。
図24(A)は、アンチエイリアス処理が実施される前の画像であり、図24(B)は、アンチエイリアス処理が実施された後の画像である。図中、パターンaにて示された画素は、アンチエイリアス処理が実施される前において背景画像を構成していた画素であり、当該画素と当該画素に隣接する文字を構成する画素とでスムージングされていることを示している。また、図中、パターンbにて示された画素は、アンチエイリアス処理が実施される前において文字を構成していた画素であり、当該画素と当該画素に隣接する背景画像を構成する画素とでスムージングされていることを示している。
図24(B)に示されるように、本実施の形態では、文字と背景画像との境界における所定の画素をテンプレート的なエッジ判定を行うことにより特定し、上述したようにしてアンチエイリアス処理を実施することによってジャギーを効果的に解消することができるようになる。
図25(A)は、アンチエイリアス処理が実施される前の画像であり、図25(B)は、アンチエイリアス処理が実施された後の画像を示している。図25(A)及び図25(B)に示す例では、背景画像が白色であって、文字が黒色のベタ文字によって表されている。このような画像に対して、本実施の形態では、図25(B)に示すように、従来と同様のスムージング効果を得ることができる。
図25(C)は、図25(A)に示される画像と同様であるが、背景画像及び文字が中間調にて表されたものである。また、図25(E)も、図25(A)に示される画像と同様であるが、図25(C)よりも背景画像と文字との階調差が小さく表されている。
本実施の形態では、図25(D)及び図25(F)に示すように、画像の内容に応じてエッジ判定を行うための閾値を適宜設定することにより、中間調画像に対してもアンチエイリアス処理を実施することが可能である。
このように、本実施の形態では、隣接する2画素の画素値の差分に基づいてエッジの有無を検出し、エッジ検出の結果に基づいてテンプレートを選択するパターンマッチングを行う。そして、パターンマッチングの結果に基づき、注目画素及びこの注目画素の上下左右に隣接する隣接画素から最大5画素の元の画素値の重み付け平均を行うことにより、注目画素のアンチエイリアス処理後の画素値を求める。そのため、本実施の形態では、文字や背景画像を構成する画素の画素値が中間調を含むさまざまな値であってもアンチエイリアス処理を行うことが可能である。
また、本実施の形態におけるエッジ検出処理によれば、従来のエッジ検出方法に比べ、少ない演算量及びデータ量によりパターンマッチングを行うことができるようになるので、全体的な演算コストを削減することができる。また、本実施の形態によれば、エッジ検出の結果を複数回のアンチエイリアス処理に亘って保持し、流用させることによって、1度のアンチエイリアス処理における平均演算量をさらに削減することが可能となる。また、本実施の形態におけるエッジ検出処理をハードウエア構成にて実現する場合には、より簡素な構成により実現することが可能となる。
例えば、従来のパターンマッチングの技術では、図5(E)に示されるテンプレートを特定するためには、第1の領域及び第2の領域における合計12画素に対してラプラシアンやSobelオペレータによるエッジ検出を行う必要がある。ラプラシアンによるエッジ検出は注目画素及びその周辺の9画素間の加減算を行うため、9×12=108回の加減算を実行する必要がある。また、Sobelオペレータによるエッジ検出は、注目画素の周辺6画素間の加減算をX軸方向及びY軸方向についてそれぞれ実行し、さらに、これらの算出結果からユークリッド距離を求める必要があるため、少なくとも、6×2×12=144回の加減算を実行し、さらに、ユークリッド距離の計算のために2回の乗算と1回の加算及び1回の平方根計算を実行する必要がある。
一方、本実施の形態では、11回の画素間の減算のみでテンプレートを特定することが可能である。
以上説明したように、本発明の実施の形態によれば、観察窓設定部102は、注目画素P1を含む所定サイズ(7×7画素)の観察窓Wを設定する。そして、エッジ判定部103は、観察窓設定部102によって設定された観察窓W内における、所定の隣接する2つの画素の組合せを複数抽出する。そして、エッジ判定部103は、抽出された2つの画素の入力画素値の差分を組合せ毎にそれぞれ判定する。そして、テンプレートマッチング部104は、エッジ判定部103による判定結果の組合せに基づいてテンプレートデータを得る。そして、画素値算出部105は、テンプレートマッチング部104によって得られたテンプレートデータに基づいて、注目画素P1の入力画素値と注目画素P1に隣接する所定の隣接画素P31〜P34の入力画素値とを重み付け加算して注目画素P1の出力画素値を得る。その結果、エッジ検出のための演算量及びデータ量を低減させることができるので、処理負荷を軽減して高いスムージング効果が得られるアンチエイリアスを実施することが可能となる。また、中間調の画像に対しても処理負荷を軽減してアンチエイリアスを実施することが可能となる。
また、本発明の実施の形態によれば、テンプレートマッチング部104は、テンプレートデータを得るために参照するエッジ判定部103によって得られたエッジ判定フラグの数を、当該エッジ判定フラグを得るために参照された画素数よりも少なくしてテンプレートデータを得る。その結果、データ量を抑制してテンプレートデータの選択が行うことが可能となる。
また、本発明の実施の形態によれば、RAM11bは、エッジ判定部103によって得られたエッジ判定フラグを記憶する。観察窓設定部102は、注目画素P1が予め定められた位置となるように観察窓Wを設定するとともに、注目画素P1となる画素が所定の順序で選択されるように、出力画素値が得られる毎に観察窓Wの設定位置を変更する。そして、テンプレートマッチング部104は、RAM11bに記憶されたエッジ判定フラグの少なくとも一部を参照してテンプレートデータを得る。その結果、エッジ判定を行う処理量を軽減することができ、処理効率の向上が図れるようになる
なお、本発明の実施の形態における記述は、本発明に係るMFPの一例であり、これに限定されるものではない。MFPを構成する各機能部の細部構成及び細部動作に関しても適宜変更可能である。また、MFP以外にも画像処理を行うコンピュータ装置であれば本発明を適用することが可能である。
また、本発明の実施の形態では、図8を参照して上述したように、C1〜C6に対してエッジ判定フラグをそれぞれ入力し、C11,C12,C21,C22,C31,C32,C41,C42,C51,52,C61,C62からそれぞれエッジ判定フラグにマッチするテンプレートデータを得るための処理をそれぞれ行って、その中から最大値を示すテンプレートデータを選択するようにしたが、以下のようにしてルーチンを減少させ、処理の最適化を図ることも可能である。
すなわち、制御部11は、図26に示すように、C1〜C6に対してエッジ判定フラグをそれぞれ入力し、C11〜C61からそれぞれエッジ判定フラグにマッチするテンプレートデータを得るための処理(処理M〜処理R)を順次実行する。そして、制御部11は、C11〜C61から得られたテンプレートデータの示す値のうちの最大値をC1000に入力する。そして、制御部11は、C1000に入力されたテンプレートデータに基づき、注目画素P1の出力画素値(Outpix[Center])を算出し、出力する。
ここで、処理Mについて、図27を参照しながら詳述する。処理Mは、上述した処理A及び処理Bを組み合わせて最適化した処理である。
先ず、制御部11は、エッジ判定フラグ(V1824)が0で、かつ、エッジ判定フラグ(V2632)が0で、かつ、エッジ判定フラグ(V1826)が1であるか否かを判定する(ステップS1701)。制御部11は、ステップS1701における条件に合致すると判定したときは(ステップS1701:Y)、エッジ判定フラグ(V1819)が0で、かつ、エッジ判定フラグ(V3132)が0であるか否かを判定する(ステップS1702)。制御部11は、ステップS1702における条件に合致すると判定したときは(ステップS1702:Y)、マッチデータ(Match[C11])にテンプレートデータ(21)をセットする(ステップS1703)。そして、制御部11は、エッジ判定フラグ(V2324)が0で、かつ、エッジ判定フラグ(V3031)が0で、かつ、エッジ判定フラグ(V1920)が0で、かつ、エッジ判定フラグ(V2627)が0であるか否かを判定する(ステップS1704)。制御部11は、ステップS304における条件に合致すると判定したときは(ステップS1704:Y)、マッチデータ(Match[C11])にセットされているデータをテンプレートデータ(213)に変更し(ステップS1705)、この処理を終了する。一方、制御部11は、ステップS1704における条件に合致すると判定しないときは(ステップS1704:N)、ステップS1705の処理を実行することなく、この処理を終了する。
また、制御部11は、ステップS1702において、ステップS1702における条件に合致すると判定しないときは(ステップS1702:N)、エッジ判定フラグ(V1926)が0で、かつ、エッジ判定フラグ(V2431)が0であるか否かを判定する(ステップS1706)。制御部11は、ステップS1706における条件に合致すると判定したときは(ステップS1706:Y)、マッチデータ(Match[C11])にテンプレートデータ(22)をセットする(ステップS1707)。そして、制御部11は、エッジ判定フラグ(V1118)が0で、かつ、エッジ判定フラグ(V1219)が0で、かつ、エッジ判定フラグ(V3138)が0で、かつ、エッジ判定フラグ(V3239)が0であるか否かを判定する(ステップS1708)。制御部11は、ステップS1708における条件に合致すると判定したときは(ステップS1708:Y)、マッチデータ(Match[C11])にセットされているデータをテンプレートデータ(223)に変更し(ステップS1709)、この処理を終了する。一方、制御部11は、ステップS1708における条件に合致すると判定しないときは(ステップS1708:N)、ステップS1709の処理を実行することなく、この処理を終了する。
また、制御部11は、ステップS1701における条件に合致すると判定しないとき(ステップS1701:N)、又は、ステップS1706における条件に合致すると判定しないとき(ステップS1706:N)は、何れのテンプレートにも合致しなかったことを示すテンプレートデータ(0)をマッチデータ(Match[C11])にセットし(ステップS1710)、この処理を終了する。
次に、処理Nについて、図28を参照しながら詳述する。処理Nは、上述した処理C及び処理Dを組み合わせて最適化した処理である。
先ず、制御部11は、エッジ判定フラグ(V1826)が0で、かつ、エッジ判定フラグ(V2432)が0で、かつ、エッジ判定フラグ(V1824)が1であるか否かを判定する(ステップS1801)。制御部11は、ステップS1801における条件に合致すると判定したときは(ステップS1801:Y)、エッジ判定フラグ(V1718)が0で、かつ、エッジ判定フラグ(V3233)が0であるか否かを判定する(ステップS1802)。制御部11は、ステップS1802における条件に合致すると判定したときは(ステップS1802:Y)、マッチデータ(Match[C21])に、テンプレートデータ(23)をセットする(ステップS1803)。そして、制御部11は、エッジ判定フラグ(V1617)が0で、かつ、エッジ判定フラグ(V2324)が0で、かつ、エッジ判定フラグ(V2627)が0で、かつ、エッジ判定フラグ(V3334)が0であるか否かを判定する(ステップS1804)。制御部11は、ステップS1804における条件に合致すると判定したときは(ステップS1804:Y)、マッチデータ(Match[C21])にセットされているデータをテンプレートデータ(233)に変更し(ステップS1805)、この処理を終了する。一方、制御部11は、ステップS1804における条件に合致すると判定しないときは(ステップS1804:N)、ステップS1805の処理を実行することなく、この処理を終了する。
また、制御部11は、ステップS1802において、ステップS1802における条件に合致すると判定しないときは(ステップS1802:N)、エッジ判定フラグ(V1724)が0で、かつ、エッジ判定フラグ(V2633)が0であるか否かを判定する(ステップS1806)。制御部11は、ステップS1806における条件に合致すると判定したときは(ステップS1806:Y)、マッチデータ(Match[C21])にテンプレートデータ(24)をセットする(ステップS1807)。そして、制御部11は、エッジ判定フラグ(V1017)が0で、かつ、エッジ判定フラグ(V1118)が0で、かつ、エッジ判定フラグ(V3239)が0で、かつ、エッジ判定フラグ(V3340)が0であるか否かを判定する(ステップS1808)。制御部11は、ステップS1808における条件に合致すると判定したときは(ステップS1808:Y)、マッチデータ(Match[C21])にセットされているデータをテンプレートデータ(243)に変更し(ステップS1809)、この処理を終了する。一方、制御部11は、ステップS1808における条件に合致すると判定しないときは(ステップS1808:N)、ステップS1809の処理を実行することなく、この処理を終了する。
また、制御部11は、ステップS1801における条件に合致すると判定しないとき(ステップS1801:N)、又は、ステップS1806における条件に合致すると判定しないとき(ステップS1806:N)は、何れのテンプレートにも合致しなかったことを示すテンプレートデータ(0)をマッチデータ(Match[C21])にセットし(ステップS1810)、この処理を終了する。
次に、処理Oについて、図29を参照しながら詳述する。処理Oは、上述した処理E及び処理Fを組み合わせて最適化した処理である。
先ず、制御部11は、エッジ判定フラグ(V2425)が0で、かつ、エッジ判定フラグ(V2526)が0で、かつ、エッジ判定フラグ(V3132)が0で、かつ、エッジ判定フラグ(V3233)が0で、かつ、エッジ判定フラグ(V2532)が1であるか否かを判定する(ステップS1901)。制御部11は、ステップS1901における条件に合致すると判定したときは(ステップS1901:Y)、エッジ判定フラグ(V1516)が0で、かつ、エッジ判定フラグ(V1624)が0で、かつ、エッジ判定フラグ(V2223)が0で、かつ、エッジ判定フラグ(V2331)が0で、かつ、エッジ判定フラグ(V2627)が0で、かつ、エッジ判定フラグ(V3334)が0であるか否かを判定する(ステップS1902)。制御部11は、ステップS1902における条件に合致すると判定したときは(ステップS1902:Y)、マッチデータ(Match[C31])にテンプレートデータ(251)をセットし(ステップS1903)、この処理を終了する。
一方、制御部11は、ステップS1902における条件に合致すると判定しないときは(ステップS1902:N)、エッジ判定フラグ(V2021)が0で、かつ、エッジ判定フラグ(V2728)が0で、かつ、エッジ判定フラグ(V2026)が0で、かつ、エッジ判定フラグ(V2733)が0で、かつ、エッジ判定フラグ(V2324)が0で、かつ、エッジ判定フラグ(V3031)が0であるか否かを判定する(ステップS1904)。制御部11は、ステップS1904における条件に合致すると判定したときは(ステップS1904:Y)、マッチデータ(Match[C31])にテンプレートデータ(252)をセットし(ステップS1905)、この処理を終了する。
また、制御部11は、ステップS1901における条件に合致すると判定しないとき(ステップS1901:N)、又は、ステップS1904における条件に合致すると判定しないときは(ステップS1904:N)、何れのテンプレートにも合致しなかったことを示すテンプレートデータ(0)をマッチデータ(Match[C31])にセットし(ステップS1906)、この処理を終了する。
次に、処理Pについて、図30を参照しながら詳述する。処理Pは、上述した処理G及び処理Hを組み合わせて最適化した処理である。
先ず、制御部11は、エッジ判定フラグ(V1718)が0で、かつ、エッジ判定フラグ(V1819)が0で、かつ、エッジ判定フラグ(V2425)が0で、かつ、エッジ判定フラグ(V2526)が0で、かつ、エッジ判定フラグ(V1825)が1であるか否かを判定する(ステップS2001)。制御部11は、ステップS2001における条件に合致すると判定したときは(ステップS2001:Y)、エッジ判定フラグ(V2223)が0で、かつ、エッジ判定フラグ(V2930)が0で、かつ、エッジ判定フラグ(V1723)が0で、かつ、エッジ判定フラグ(V2430)が0で、かつ、エッジ判定フラグ(V1920)が0で、かつ、エッジ判定フラグ(V2627)が0であるか否かを判定する(ステップS2002)。制御部11は、ステップS2002における条件に合致すると判定したときは(ステップS2002:Y)、マッチデータ(Match[C41])にテンプレートデータ(253)をセットし(ステップS2003)、この処理を終了する。
一方、制御部11は、ステップS2002における条件に合致すると判定しないときは(ステップS2002:N)、エッジ判定フラグ(V2728)が0で、かつ、エッジ判定フラグ(V3435)が0で、かつ、エッジ判定フラグ(V1927)が0で、かつ、エッジ判定フラグ(V2634)が0で、かつ、エッジ判定フラグ(V1617)が0で、かつ、エッジ判定フラグ(V2324)が0であるか否かを判定する(ステップS2004)。制御部11は、ステップS2004における条件に合致すると判定したときは(ステップS2004:Y)、マッチデータ(Match[C41])にテンプレートデータ(254)をセットし(ステップS2005)、この処理を終了する。
また、制御部11は、ステップS2001における条件に合致すると判定しないとき(ステップS2001:N)、又は、ステップS2004における条件に合致すると判定しないときは(ステップS2004:N)、何れのテンプレートにも合致しなかったことを示すテンプレートデータ(0)をマッチデータ(Match[C41])にセットし(ステップS2006)、この処理を終了する。
次に、処理Qについて、図31を参照しながら詳述する。処理Qは、上述した処理I及び処理Jを組み合わせて最適化した処理である。
先ず、制御部11は、エッジ判定フラグ(V1825)が0で、かつ、エッジ判定フラグ(V2532)が0で、かつ、エッジ判定フラグ(V1926)が0で、かつ、エッジ判定フラグ(V2633)が0で、かつ、エッジ判定フラグ(V2526)が1であるか否かを判定する(ステップS2101)。制御部11は、ステップS2101における条件に合致すると判定したときは(ステップS2101:Y)、エッジ判定フラグ(V0310)が0で、かつ、エッジ判定フラグ(V0411)が0で、かつ、エッジ判定フラグ(V1018)が0で、かつ、エッジ判定フラグ(V1119)が0で、かつ、エッジ判定フラグ(V3239)が0で、かつ、エッジ判定フラグ(V3340)が0であるか否かを判定する(ステップS2102)。制御部11は、ステップS2102における条件に合致すると判定したときは(ステップS2102:Y)、マッチデータ(Match[C51])にテンプレートデータ(261)をセットし(ステップS2103)、この処理を終了する。
一方、制御部11は、ステップS2102における条件に合致すると判定しないときは(ステップS2102:N)、エッジ判定フラグ(V3845)が0で、かつ、エッジ判定フラグ(V3946)が0で、かつ、エッジ判定フラグ(V3238)が0で、かつ、エッジ判定フラグ(V3339)が0で、かつ、エッジ判定フラグ(V1118)が0で、かつ、エッジ判定フラグ(V1219)が0であるか否かを判定する(ステップS2104)。制御部11は、ステップS2104における条件に合致すると判定したときは(ステップS2104:Y)、マッチデータ(Match[C51])にテンプレートデータ(262)をセットし(ステップS2105)、この処理を終了する。
また、制御部11は、ステップS2101における条件に合致すると判定しないとき(ステップS2101:N)、又は、ステップS2104における条件に合致すると判定しないときは(ステップS2104:N)、何れのテンプレートにも合致しなかったことを示すテンプレートデータ(0)をマッチデータ(Match[C51])にセットし(ステップS2106)、この処理を終了する。
次に、処理Rについて、図32を参照しながら詳述する。処理Rは、上述した処理K及び処理Lを組み合わせて最適化した処理である。
先ず、制御部11は、エッジ判定フラグ(V1724)が0で、かつ、エッジ判定フラグ(V2431)が0で、かつ、エッジ判定フラグ(V1825)が0で、かつ、エッジ判定フラグ(V2532)が0で、かつ、エッジ判定フラグ(V2425)が1であるか否かを判定する(ステップS2201)。制御部11は、ステップS2201における条件に合致すると判定したときは(ステップS2201:Y)、エッジ判定フラグ(V0411)が0で、かつ、エッジ判定フラグ(V0512)が0で、かつ、エッジ判定フラグ(V1117)が0で、かつ、エッジ判定フラグ(V1218)が0で、かつ、エッジ判定フラグ(V3138)が0で、かつ、エッジ判定フラグ(V3239)が0であるか否かを判定する(ステップS2202)。制御部11は、ステップS2202における条件に合致すると判定したときは(ステップS2202:Y)、マッチデータ(Match[C61])にテンプレートデータ(263)をセットし(ステップS2203)、この処理を終了する。
一方、制御部11は、ステップS2202における条件に合致すると判定しないときは(ステップS2202:N)、エッジ判定フラグ(V3946)が0で、かつ、エッジ判定フラグ(V4047)が0で、かつ、エッジ判定フラグ(V3139)が0で、かつ、エッジ判定フラグ(V3240)が0で、かつ、エッジ判定フラグ(V1017)が0で、かつ、エッジ判定フラグ(V1118)が0であるか否かを判定する(ステップS2204)。制御部11は、ステップS2204における条件に合致すると判定したときは(ステップS2204:Y)、マッチデータ(Match[C61])にテンプレートデータ(264)をセットし(ステップS2205)、この処理を終了する。
また、制御部11は、ステップS2201における条件に合致すると判定しないとき(ステップS2201:N)、又は、ステップS2204における条件に合致すると判定しないときは(ステップS2204:N)、何れのテンプレートにも合致しなかったことを示すテンプレートデータ(0)をマッチデータ(Match[C61])にセットし(ステップS2206)、この処理を終了する。
次に、上述した処理M〜処理Rを実行して得られたC11〜C16の各テンプレートデータの示す値のうちの最大値を得るための処理について、図33を参照しながら詳述する。
先ず、制御部11は、マッチデータ(Match[C61])を参照し、マッチデータ(Match[C61])に0以外のデータがセットされているか否かを判定する(ステップS2301)。すなわち、制御部11は、テンプレートデータ(263)又はテンプレートデータ(263)がマッチデータ(Match[C61])にセットされているか否かを判定する。制御部11は、マッチデータ(Match[C61])に0以外のデータがセットされている判定したときは(ステップS2301:Y)、マッチデータ(Match[C61])にセットされているテンプレートデータをRAM11bの所定の記憶領域におけるマッチデータ(Match[C1000])にセットし(ステップS2302)、この処理を終了する。
一方、制御部11は、マッチデータ(Match[C61])に0以外のデータがセットされていると判定しないときは(ステップS2301:N)、マッチデータ(Match[C51])を参照し、マッチデータ(Match[C51])に0以外のデータがセットされているか否かを判定する(ステップS2303)。すなわち、制御部11は、テンプレートデータ(261)又はテンプレートデータ(262)がマッチデータ(Match[C51])にセットされているか否かを判定する。制御部11は、マッチデータ(Match[C51])に0以外のデータがセットされていると判定したときは(ステップS2303:Y)、マッチデータ(Match[C51])にセットされているテンプレートデータをマッチデータ(Match[C1000])にセットし(ステップS2304)、この処理を終了する。
一方、制御部11は、マッチデータ(Match[C51])に0以外のデータがセットされていると判定しないときは(ステップS2303:N)、マッチデータ(Match[C41])を参照し、マッチデータ(Match[C41])に0以外のデータがセットされているか否かを判定する(ステップS2305)。すなわち、制御部11は、テンプレートデータ(253)又はテンプレートデータ(254)がマッチデータ(Match[C41])にセットされているか否かを判定する。制御部11は、マッチデータ(Match[C41])に0以外のデータがセットされていると判定したときは(ステップS2305:Y)、マッチデータ(Match[C41])にセットされているテンプレートデータをマッチデータ(Match[C1000])にセットし(ステップS2306)、この処理を終了する。
一方、制御部11は、マッチデータ(Match[C41])に0以外のデータがセットされていると判定しないときは(ステップS2305:N)、マッチデータ(Match[C31])を参照し、マッチデータ(Match[C31])に0以外のデータがセットされているか否かを判定する(ステップS2307)。すなわち、制御部11は、テンプレートデータ(251)又はテンプレートデータ(252)がマッチデータ(Match[C31])にセットされているか否かを判定する。制御部11は、マッチデータ(Match[C31])に0以外のデータがセットされていると判定したときは(ステップS2307:Y)、マッチデータ(Match[C31])にセットされているテンプレートデータをマッチデータ(Match[C1000])にセットし(ステップS2308)、この処理を終了する。
一方、制御部11は、マッチデータ(Match[C31])に0以外のデータがセットされていると判定しないときは(ステップS2307:N)、マッチデータ(Match[C21])を参照し、マッチデータ(Match[C21])に0以外のデータがセットされているか否かを判定する(ステップS2309)。すなわち、制御部11は、テンプレートデータ(23)、テンプレートデータ(24)、テンプレートデータ(233)及びテンプレートデータ(243)の何れかがマッチデータ(Match[C21])にセットされているか否かを判定する。制御部11は、マッチデータ(Match[C21])に0以外のデータがセットされていると判定したときは(ステップS2309:Y)、マッチデータ(Match[C21])にセットされているテンプレートデータをマッチデータ(Match[C1000])にセットし(ステップS2310)、この処理を終了する。
一方、制御部11は、マッチデータ(Match[C21])に0以外のデータがセットされていると判定しないときは(ステップS2309:N)、マッチデータ(Match[C11])を参照し、マッチデータ(Match[C11])に0以外のデータがセットされているか否かを判定する(ステップS2311)。すなわち、制御部11は、テンプレートデータ(21)、テンプレートデータ(22)、テンプレートデータ(213)及びテンプレートデータ(223)の何れかがマッチデータ(Match[C11])にセットされているか否かを判定する。制御部11は、マッチデータ(Match[C11])に0以外のデータがセットされていると判定したときは(ステップS2311:Y)、マッチデータ(Match[C11])にセットされているテンプレートデータをマッチデータ(Match[C1000])にセットし(ステップS2312)、この処理を終了する。
一方、制御部11は、マッチデータ(Match[C11])に0以外のデータがセットされていると判定しないときは(ステップS2311:N)、何れのテンプレートにも合致しなかったことを示すテンプレートデータ(0)をマッチデータ(Match[C1000])にセットし(ステップS2313)、この処理を終了する。
以上の処理を実行することによっても最終的に1つのテンプレートデータが特定されるようになる。
本発明の実施の形態では、画像処理部10をMFP100に適用した例について説明したが、LCD(Liquid Crystal Display)等の画像表示装置に適用することも可能である。
また、本発明の実施の形態では、CMYKのカラー印刷が可能なMFP100に適用した例について説明したが、CMYKの何れか単色による印刷を行う画像形成装置に適用することも可能である。
また、本発明の実施の形態では、エッジ判定部103において、エッジ判定の対象である画素の組合せの全てについて、予めエッジ検出を行うようにしたが。エッジ検出を予め行わず、テンプレートマッチング部104におけるテンプレートの絞り込みを行う際に、エッジの条件を判定する都度、判定に必要な画素の組合せについてのみエッジ検出を行うようにしてもよい。これによれば、エッジ検出を行うための計算を一部省略することができ、演算量が削減されるようになる。
また、本発明の実施の形態では、エッジ判定結果に基づき、条件に一致するテンプレートを全て抽出した上で、テンプレートデータの最も大きいものを最終的に選択するようにしたが、例えば、テンプレートデータの最も大きいものからテンプレートの条件一致の判断を行い、条件が一致した時点でそのテンプレートを選択するようにしてもよい。
また、本発明の実施の形態では、エッジ判定結果を保持し、次回以降に実施されるエッジ判定処理において、保持されたエッジ判定フラグを流用するようにしたが、エッジ判定結果を保持せず、エッジ判定処理を実行する毎にエッジ判定を行うようにしてもよい。
また、本実施の形態では、本発明に係るプログラムのコンピュータ読み取り可能な媒体としてハードディスクや半導体の不揮発性メモリ等を使用した例を開示したが、この例に限定されない。その他のコンピュータ読み取り可能な媒体として、CD−ROM等の可搬型記録媒体を適用することが可能である。また、本発明に係るプログラムのデータを通信回線を介して提供する媒体として、キャリアウェーブ(搬送波)も適用される。
100 MFP
10 画像処理部
11 制御部
11b RAM
102 観察窓設定部
103 エッジ判定部
104 テンプレートマッチング部
105 画素値算出部

Claims (8)

  1. 入力された画像データのアンチエイリアスを行う画像処理装置であって、
    前記画像データの各画素を中心とする所定サイズの観察窓を、画素ごとに設定する観察窓設定部と、
    アンチエイリアスの対象とする異なる複数のエッジの有無のパターンをそれぞれ示す複数のテンプレートに基づいて、前記観察窓内の各画素のうち、エッジの有無を判定する2つの画素の組合せを複数特定し、特定した組合せごとに、2つの画素の入力画素値の差分により2つの画素間のエッジの有無を判定するエッジ判定部と、
    前記エッジ判定部により判定されたエッジの有無のパターンを、前記複数のテンプレートのそれぞれが示すエッジの有無のパターンと照合し、各パターンが一致する1つのテンプレートを選択するテンプレートマッチング部と、
    前記テンプレートマッチング部により選択された1つのテンプレートに基づいて、前記観察窓の中心画素の複数の隣接画素のなかから1つの隣接画素と重み付け量を特定し、前記中心画素と特定した隣接画素の各入力画素値を、特定した重み付け量により重み付け加算し、前記中心画素の出力画素値を得る画素値算出部と、
    を備えことを特徴とする画像処理装置。
  2. 前記テンプレートマッチング部は、各テンプレートがエッジの有無を示すすべての画素間のうち一部の画素間のエッジの有無のパターンが、前記エッジ判定部により判定されたエッジの有無のパターンと一致するか否かを判定することにより、前記1つのテンプレートを選択することを特徴とする請求項1に記載の画像処理装置。
  3. 前記エッジ判定部によって得られた判定結果を記憶する記憶部を備え、
    前記テンプレートマッチング部は、前記エッジの有無のパターンの照合を、前記記憶部に記憶された、観察窓内の中心画素の位置が1画素前の観察窓のエッジの有無の判定結果を流用して行うことを特徴とする請求項1又は2に記載の画像処理装置。
  4. 前記テンプレートマッチング部は、前記エッジ判定部により判定されたエッジの有無のパターンと一致する複数のテンプレートがある場合、当該一致する複数のテンプレートのうち、照合するエッジの有無の数が最も多い1つのテンプレートを選択することを特徴とする請求項1〜3のいずれか一項に記載の画像処理装置。
  5. 入力された画像データのアンチエイリアスを行う画像処理方法であって、
    前記画像データの各画素を中心とする所定サイズの観察窓を、画素ごとに設定する観察窓設定ステップと、
    アンチエイリアスの対象とする異なる複数のエッジの有無のパターンをそれぞれ示す複数のテンプレートに基づいて、前記観察窓内の各画素のうち、エッジの有無を判定する2つの画素の組合せを複数特定し、特定した組合せごとに、2つの画素の入力画素値の差分により2つの画素間のエッジの有無を判定するエッジ判定ステップと、
    前記エッジ判定ステップにおいて判定されたエッジの有無のパターンを、前記複数のテンプレートのそれぞれが示すエッジの有無のパターンと照合し、各パターンが一致する1つのテンプレートを選択するテンプレートマッチングステップと、
    前記テンプレートマッチングステップにおいて選択された1つのテンプレートに基づいて、前記観察窓の中心画素の複数の隣接画素のなかから1つの隣接画素と重み付け量を特定し、前記中心画素と特定した隣接画素の各入力画素値を、特定した重み付け量により重み付け加算し、前記中心画素の出力画素値を得る画素値算出ステップと、
    を含むことを特徴とする画像処理方法。
  6. 前記テンプレートマッチングステップにおいて、各テンプレートがエッジの有無を示すすべての画素間のうち一部の画素間のエッジの有無のパターンが、前記エッジ判定ステップにおいて判定されたエッジの有無のパターンと一致するか否かを判定することにより、前記1つのテンプレートを選択することを特徴とする請求項に記載の画像処理方法。
  7. 前記エッジ判定ステップにおいて得られた判定結果を記憶部に記憶する記憶ステップをさらに含み、
    前記テンプレートマッチングステップにおいて、前記エッジの有無のパターンの照合を、前記記憶部に記憶された、観察窓内の中心画素の位置が1画素前の観察窓のエッジの有無の判定結果を流用して行うことを特徴とする請求項又はに記載の画像処理方法。
  8. 前記テンプレートマッチングステップにおいて、前記エッジ判定ステップにおいて判定されたエッジの有無のパターンと一致する複数のテンプレートがある場合、当該一致する複数のテンプレートのうち、照合するエッジの有無の数が最も多い1つのテンプレートを選択することを特徴とする請求項5〜7のいずれか一項に記載の画像処理方法。
JP2010287152A 2010-12-24 2010-12-24 画像処理装置及び画像処理方法 Expired - Fee Related JP5605214B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010287152A JP5605214B2 (ja) 2010-12-24 2010-12-24 画像処理装置及び画像処理方法
US13/333,453 US8565548B2 (en) 2010-12-24 2011-12-21 Image processing apparatus which performs anti-aliasing on input image data and image processing method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010287152A JP5605214B2 (ja) 2010-12-24 2010-12-24 画像処理装置及び画像処理方法

Publications (2)

Publication Number Publication Date
JP2012134908A JP2012134908A (ja) 2012-07-12
JP5605214B2 true JP5605214B2 (ja) 2014-10-15

Family

ID=46316901

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010287152A Expired - Fee Related JP5605214B2 (ja) 2010-12-24 2010-12-24 画像処理装置及び画像処理方法

Country Status (2)

Country Link
US (1) US8565548B2 (ja)
JP (1) JP5605214B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012208553A (ja) * 2011-03-29 2012-10-25 Sony Corp 画像処理装置、および画像処理方法、並びにプログラム
CN104036710B (zh) * 2014-02-21 2016-05-04 北京京东方光电科技有限公司 像素阵列及其驱动方法、显示面板和显示装置
US9300842B1 (en) 2014-12-16 2016-03-29 Xerox Corporation Gated edge enhancement using orthogonal rational counters

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4437122A (en) 1981-09-12 1984-03-13 Xerox Corporation Low resolution raster images
US4847641A (en) 1988-08-16 1989-07-11 Hewlett-Packard Company Piece-wise print image enhancement for dot matrix printers
JP3131996B2 (ja) * 1990-11-20 2001-02-05 株式会社リコー 画像の解像度変換方法
JPH05336363A (ja) * 1991-04-09 1993-12-17 Matsushita Electric Ind Co Ltd 画像形成装置
JPH05130402A (ja) * 1991-11-08 1993-05-25 Canon Inc 画像処理装置
JPH06139350A (ja) 1992-10-29 1994-05-20 Matsushita Electric Ind Co Ltd 画像形成装置
JPH0950523A (ja) * 1995-08-08 1997-02-18 Matsushita Electric Ind Co Ltd 画像スムージング回路
JP3633058B2 (ja) * 1995-10-05 2005-03-30 富士ゼロックス株式会社 画像処理装置
WO1999045502A1 (en) * 1998-03-05 1999-09-10 Silicon Graphics, Inc. Subsampled texture edge antialiasing
JP4281126B2 (ja) * 1998-10-02 2009-06-17 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置
JP3796985B2 (ja) 1998-11-18 2006-07-12 富士ゼロックス株式会社 画像処理装置、画像処理方法および記憶媒体
US6947178B2 (en) * 2001-02-26 2005-09-20 International Business Machines Corporation De-screening halftones using sigma filters
JP2005122361A (ja) * 2003-10-15 2005-05-12 Sony Computer Entertainment Inc 画像処理装置及び方法、コンピュータプログラム、記録媒体
JP4407801B2 (ja) * 2003-12-16 2010-02-03 セイコーエプソン株式会社 エッジ生成装置、エッジ生成方法およびエッジ生成プログラム
US7333119B1 (en) * 2004-11-02 2008-02-19 Nvidia Corporation System and method for virtual coverage anti-aliasing
US7408559B2 (en) * 2005-12-01 2008-08-05 Hewlett-Packard Development Company, L.P. Upscaling of anti-aliased graphical elements
US7518618B2 (en) * 2005-12-23 2009-04-14 Xerox Corporation Anti-aliased tagging using look-up table edge pixel identification
JP2008283540A (ja) * 2007-05-11 2008-11-20 Mitsubishi Electric Corp 画像処理装置および画像処理方法
JP4854042B2 (ja) * 2008-08-12 2012-01-11 Necエンジニアリング株式会社 画像生成方法、画像生成装置、および画像生成プログラム
JP5533069B2 (ja) * 2009-03-18 2014-06-25 株式会社リコー 画像形成装置、画像形成方法およびプログラム

Also Published As

Publication number Publication date
JP2012134908A (ja) 2012-07-12
US20120163730A1 (en) 2012-06-28
US8565548B2 (en) 2013-10-22

Similar Documents

Publication Publication Date Title
CN101841632B (zh) 图像处理装置及图像形成装置的控制方法
US8274707B2 (en) Image processing apparatus, image processing method, and program for determining or computing an extended region of a block region of image data or an input image
JP5404192B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP4840495B2 (ja) 画像処理装置及びコンピュータプログラム
JP2008005317A (ja) 画像処理装置及びその方法、並びに、コンピュータプログラムおよび記録媒体
JP5932313B2 (ja) 印刷装置、印刷プレビューの表示方法及びそのプログラム
JP5605214B2 (ja) 画像処理装置及び画像処理方法
US9542130B2 (en) Mask based toner reduction
JP4894488B2 (ja) 画像処理装置および画像処理方法
CN102461149B (zh) 图像形成设备和图像处理方法
JP6147020B2 (ja) 画像処理装置、画像処理方法及びプログラム
JP2006121700A (ja) プリント媒体にデータを埋め込むための方法、プリント媒体に埋め込まれたデータを検索するための方法、プリント媒体にデータを埋め込む機能を有するプリンタ、プリント媒体にデータを埋め込む方法を機器に実行させるための命令プログラムを含んだ機器判読可能な媒体、及びプリント媒体に埋め込まれたデータを検索する方法を機器に実行させるための命令プログラムを含んだ機器判読可能な媒体
JP6373448B2 (ja) 画像処理装置、画像処理方法及びプログラム
JP2015149719A (ja) 選択的な向上のあるデジタル画像ハーフトーン変換
JP2008148263A (ja) 画像形成装置及びその制御方法
JP2010074627A (ja) 画像処理装置及び画像処理方法
JP5439339B2 (ja) 画像形成装置
JP2012142768A (ja) 画像処理装置、画像処理方法、およびプログラム
JP2005027037A (ja) フォーマット変換方法及び画像処理装置
JP2006196958A (ja) 画像処理装置、画像処理方法、画像形成装置、画像形成方法及び画像処理プログラム
JP2023037968A (ja) 画像処理装置及びその制御方法とプログラム
JP5004735B2 (ja) 画像形成装置、画像形成装置の制御方法、および画像形成装置の制御プログラム
JP2000278506A (ja) 画像処理装置
JP2006116758A (ja) 画像処理装置および画像処理方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム
JPH09121289A (ja) 画像処理装置

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20130416

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130618

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140515

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140527

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140709

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140729

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140811

R150 Certificate of patent or registration of utility model

Ref document number: 5605214

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees