JP6667582B2 - 画像処理装置、画像処理方法及びプログラム - Google Patents

画像処理装置、画像処理方法及びプログラム Download PDF

Info

Publication number
JP6667582B2
JP6667582B2 JP2018136070A JP2018136070A JP6667582B2 JP 6667582 B2 JP6667582 B2 JP 6667582B2 JP 2018136070 A JP2018136070 A JP 2018136070A JP 2018136070 A JP2018136070 A JP 2018136070A JP 6667582 B2 JP6667582 B2 JP 6667582B2
Authority
JP
Japan
Prior art keywords
pixel
image
pattern
determination
pixels
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.)
Active
Application number
JP2018136070A
Other languages
English (en)
Other versions
JP2020014155A (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.)
Canon Inc
Original Assignee
Canon 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 Canon Inc filed Critical Canon Inc
Priority to JP2018136070A priority Critical patent/JP6667582B2/ja
Priority to US16/431,392 priority patent/US10748254B2/en
Publication of JP2020014155A publication Critical patent/JP2020014155A/ja
Application granted granted Critical
Publication of JP6667582B2 publication Critical patent/JP6667582B2/ja
Active 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/40Picture signal circuits
    • H04N1/409Edge or detail enhancement; Noise or error suppression
    • H04N1/4092Edge or detail enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1208Improving or facilitating administration, e.g. print management resulting in improved quality of the output result, e.g. print layout, colours, workflows, print preview
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • G06F3/1248Job translation or job parsing, e.g. page banding by printer language recognition, e.g. PDL, PCL, PDF
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1253Configuration of print job parameters, e.g. using UI at the client
    • G06F3/1256User feedback, e.g. print preview, test print, proofing, pre-flight checks
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/40Picture signal circuits
    • H04N1/405Halftoning, i.e. converting the picture signal of a continuous-tone original into a corresponding signal showing only two levels
    • H04N1/4055Halftoning, i.e. converting the picture signal of a continuous-tone original into a corresponding signal showing only two levels producing a clustered dots or a size modulated halftone pattern
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20172Image enhancement details
    • G06T2207/20192Edge enhancement; Edge preservation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)

Description

本発明は、画像に対してエッジ補正処理を行う画像処理装置、制御方法、及びプログラムに関するものである。
従来、画像処理装置においてジャギーと呼ばれる文字等のエッジ部に発生するガタツキを改善する技術が知られている。特許文献1にはスクリーン処理前の多値の画像データを用いて、信号値のコントラストが予め決められた閾値以上である画素をエッジ画素と判定し、スクリーン処理後の画像データとエッジ画素の補正データを合成するエッジ補正技術が開示されている。
また、パーソナルコンピュータのOS(Operating System)として、Windows(登録商標)が知られている。Windowsなどのアーキテクチャでは、透過オブジェクトを簡易に表現するために、ROP(RasterOPeration)と呼ばれる技術が採用されている。ROPでは、下地の画像とこれに重ねる画像とを画素単位に論理演算し、透過画像を表現することができる。
ところで、プリンタなどの画像形成装置においては、Windowsとの親和性を確保するために、ROPをサポートするページ記述言語(PDL)を採用することがある。この場合、ROPで表現される半透明オブジェクトは、透過率に応じて網目状に加工した網目上のマスク画像と下地のバックグラウンド画像を論理合成して生成される。
上述のROPで表現される半透明オブジェクトは、下地の画像が白で、網目画像が一定以上の濃さがあり、信号値のコントラストがある画像となる。
ここで、半透明を実現するために網目上で表現される領域は、画像形成装置上でのエッジ検出処理においてエッジ画素と判定されてしまう。この場合、本来、半透明オブジェクトを表現する領域にまで、ジャギーを改善するためのエッジ補正処理が行われて、縁取り処理などにより、本来の色値と異なる画像(ユーザが意図するよりも濃い色合いの画像)となってしまう。
特許文献2には、当該半透明オブジェクトにエッジ補正処理が行われることを抑制するための技術が記載されている。特許文献2には、半透明オブジェクトの色値を保ちつつ、画像全体のジャギーは改善する方法が記載されている。特許文献2は、一般的な画像においては、エッジ画素が密集することは少なく、ROPで表現される半透明オブジェクトは、エッジ画像が密集していることに着目している。ROPで表現される半透明オブジェクトを構成する画素であるか否かを判定し、半透明オブジェクトを構成する画素であると判定された場合には、該注目画素に対してエッジ補正処理を行わないよう制御する仕組みが開示されている。
特開2006−295877号公報 特開2016−58879号公報
特許文献2に記載の方法では、判定パターンと注目画素を含む画像領域がパターンマッチングで一致する場合に、当該注目画素が半透明オブジェクトを構成する画素であると判定する。
しかしながら、特許文献2に記載方法では、半透明オブジェクトの上に文字などのオブジェクトが重なるようなケースにおいては、規則的な半透明パターンが崩れてしまい、半透明オブジェクトのパターンであると判定できない場合がある。即ち、従来の方法では、半透明オブジェクトの領域に、更に文字や線などのオブジェクトが重なった領域については、半透明オブジェクトを構成する画素と判定できず、当該重なった領域の境界や内側にエッジ補正処理が適用されてしまう懸念がある。この場合、文字等が潰れ、文字等の可読性が低下するといった問題点がある。
本発明は、上述の懸念点の少なくとも1つを鑑みなされたものである。本発明は、透明オブジェクトに文字等を重ねたオブジェクトを含む印刷データに対しても、適切にエッジ補正処理を行える仕組みを提供することを目的の1つとする。本発明の別の目的は、ユーザにとって違和感の少ないエッジ補正処理を行うための仕組みを提供することである。
上記の少なくとも1つの目的を達成するために本発明の画像処理装置は、入力画像における注目画素及びその周辺画素を含む複数画素の明暗と、予め保持されている半透明オブジェクトを判定するパターンとを比較する比較手段と、前記比較手段での比較結果に基づき、前記注目画素に対してかけるエッジ補正処理の強度を少なくとも3段階で変化させる制御手段と、を有することを特徴とする。
本発明の1つの側面としては、複数のベンダの印刷装置に対応するプリンタドライバ又はプリントクライアントを用いて印刷を行う場合であっても、ベンダ毎の拡張機能を適切に利用できるようになる。また、本発明の1つの側面としては、ドライバは、所定の印刷プロトコルに則するクラスドライバとして実現し、ベンダ毎の拡張は、サンドボックス化された環境で動作する拡張アプリケーションが実現するため、セキュリティと利便性を両立できるようになる。また、本発明の別の側面としては、所定の印刷プロトコルに則する印刷ジョブを生成するプリンタドライバのための拡張アプリケーションを提供することで、当該アプリケーションを介してベンダ毎の印刷設定を反映した印刷を行えるようになる。
印刷システムの一例を示す図である。 画像処理部のハードウェアモジュール構成の一例を示す図である。 エッジ補正処理に用いるルックアップテーブルの一例を示す図である。 エッジ判定処理の一例を示すフローチャートである。 類似度の導出方法の一例を示すフローチャートである。 ROPを用いた半透明パターンを説明するための模式図である。 判定パターンの一例を説明するための模式図である。 判定パターンの反転処理を説明するための模式図である。 2値化した出力画像の一例である。 画像合成処理の一例を説明するフローチャートである。 エッジ補正に関する係数の一例を説明する図である。 出力画像を説明するための図である。 出力画像を説明するための図である。 出力画像を説明するための図である。 出力画像を説明するための図である。 出力画像を説明するための図である。 第2の実施形態における判定パターンの一例である。 第2の実施形態における類似度の導出方法の一例を示すフローチャートである。 類似度を導出する処理を行う回路構成の一例を示す模式図である。
以下、本発明を実施するための実施形態について図面を用いて説明する。なお、以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また実施の形態で説明されている特徴の組み合わせのすべてが発明の解決手段に必須のものとは限らない。
<第1の実施形態>
本実施形態では、エッジ補正処理を実行する画像処理装置2を例にエッジ補正処理の方法を説明する。特に、入力された画像における各画素の半透明度合いを示す類似度を導出し、半透明度合いに応じてエッジ補正処理を実施する形態について説明する。
<装置構成>
図1は、本実施形態におけるシステム構成の概略図である。図1に示される画像処理システムは、ホストコンピュータ1、画像形成装置2によって構成される。ホストコンピュータ1は、一般のPC(パーソナルコンピュータ)などのコンピュータである。このホストコンピュータ1上の不図示のプリンタドライバ等のソフトウェアアプリケーションで作成された画像や文書は、PDL(Page Description Language)データとしてネットワークを介して画像形成装置2に送信される。画像形成装置2は、PDLデータを含む印刷ジョブをホストコンピュータ1から受信し、当該印刷ジョブに基づきシートに画像を印刷する機能を有する。
なお、本実施形態では画像処理装置の一例として印刷機能を有する画像形成装置を例示しているがこれに限定されるものではない。印刷のための画像を生成するプリントサーバなどであってもよい。
続けて画像形成装置2のハードウェア構成について説明する。画像形成装置2は、コントローラ21、印刷エンジン22、UI(ユーザインタフェース)部23を有する。
コントローラ21は、印刷エンジン22に接続され、ホストコンピュータ1からPDLデータを受け取り、印刷エンジン22で処理可能な印刷データに変換し、その印刷データを印刷エンジン22に出力する。
印刷エンジン22は、コントローラ21より出力された印刷データに基づいて、シートに画像を印刷する。画像が印刷されたシートは図示省略の排紙部に排紙される。なお、本実施形態の説明における印刷エンジン22は、電子写真方式の印刷エンジンとしているがこれに限定されるものではない。例えば、インクジェット方式の印刷エンジンなどであってもよい。
操作部23は、ユーザにより操作され、種々の機能を選択したり、操作指示を行うために使用される。即ち、操作部23は、ユーザ操作を受け付ける受付部やユーザに情報を提示する表示部として機能する。この操作部23は、表面にタッチパネルが設けられた液晶ディスプレイや、スタートキーやストップキー、テンキー等の各種キー等を配置したキーボード等を備えている。
次に、コントローラ21の詳細について説明する。コントローラ21はホストI/F(インターフェース)部101、CPU(Central Processing Unit)102、RAM(Random Access Memory)103を有する。またコントローラ21は、ROM(Read Only Memory)104、画像処理部105、エンジンI/F部106、内部バス107を有する。ホストI/F部101は、ホストコンピュータ1から送信されたPDLデータを受け取るためのインターフェースである。
CPU102は、RAM103やROM104に格納されているプログラムやデータを用いて画像形成装置2全体の制御を行うと共に、コントローラ21が行う後述の処理を実行する。RAM103は、CPU102が各種の処理を実行する際に用いるワークエリアを備えている。ROM104は、後述の各種処理をCPU102に実行させるためのプログラムやデータ、また、コントローラ21の設定データなどが格納されている。
画像処理部105は、CPU102からの設定に応じて、ホストI/F部101が受け取ったPDLデータに対してプリント用画像処理を行い、印刷エンジン22で処理可能な印刷データを生成する。画像処理部105は特に、受け取ったPDLデータに対してラスタライズを行うことで、1画素あたり複数の色成分を持つ画像データを生成する。複数の色成分とは、RGB(赤、緑、青)などの色空間において独立した色成分のことである。画像データは、画素毎に1つの色成分につき8ビット(256階調)の値を持つ。すなわち、画像データは多値の画素を含む、多値のビットマップデータである。画像処理部105は、生成された画像データを用いて、RGB色空間からCMYK(シアン、マゼンタ、イエロー、ブラック)色空間への色変換やスクリーン処理などの画像処理を施すことで印刷データを生成する。また、画像処理部105では、エッジ補正処理なども行われる。画像処理部105の詳細については後述する。
エンジンI/F部106は、画像処理部105によって生成された印刷データを、印刷エンジン22に送信するインターフェースである。内部バス107は、上述の各部に対してデータや制御コマンドを送受信するためのシステムバスである。
<画像処理部>
次に、画像処理部105の詳細について説明する。なお、上述したように画像処理部105は、ホストI/F部101で受け取ったPDLデータに対してラスタライズ処理を行うことで、RGBの多値の画像データを生成する。図2は、画像処理部105において、当該生成された多値の画像データに対して行われるプリント用画像処理について説明するための図である。画像処理部105は、図2に示すように、色変換処理部201、ガンマ補正処理部202を有する。また、画僧処理部105は、スクリーン処理部203、エッジ補正データ生成部204、判定画像生成部205、エッジ判定部206、2値化部207、半透明度合い算出部208、画像合成部209を有する。
色変換処理部201は、多値の画像データに対してRGB色空間からCMYK色空間への色変換処理を行う。この色変換処理によって1画素あたり8ビット(256階調)の多値の濃度値(階調値、信号値とも呼ぶ)を持つCMYK画像データが生成される。このCMYK画像データは色変換処理部201内の不図示のバッファに格納される。
ガンマ補正処理部202は、後述するスクリーン処理部203でスクリーン処理された画像データが記録紙へと転写された際の濃度特性が所望の特性となるよう、一次元のルックアップテーブルを用いて、入力された画素データを補正する。本実施形態では、例としてリニアな形状をした一次元のルックアップテーブルを用いる。このルックアップテーブルは入力がそのまま出力されるようなルックアップテーブルである。ただし、印刷エンジン22の状態の変化に応じて、CPU102は、この一次元のルックアップテーブルを書き換えても良い。ガンマ補正後の画素データは、スクリーン処理部203に入力される。
スクリーン処理部203は、ガンマ補正処理部202から受け取った多値(例えば、8ビット)のCMYKイメージを印刷エンジン22の色材の潜像画像である多値(例えば、4ビット)のCMYKイメージに変換し、画像合成部209に出力する。
エッジ補正データ生成部204は、色変換処理部201からCMYKイメージを受け取り、一次元のルックアップテーブルを用いて、エッジ画素におけるエッジ補正データを生成する。その後、生成したエッジ補正データを画像合成部209に出力する。本実施形態では、例として、図3に示す一次元のルックアップテーブルを用いてエッジ補正データを生成する。エッジ補正データ生成部204に入力された画素の信号値が153の場合は、エッジ補正データは13となる。
判定画像生成部205は、色変換処理部201からCMYKイメージを受け取り、エッジ判定部206や半透明度合い算出部208で実施する判定処理のための判定画像を生成する。本実施形態では、例として、各色版に予め定められた重み付けを行い判定用の画像を生成する。具体的には、以下の式を用いて判定画像を生成する。
L=(C×Wc)+(M×Wm)+(Y×Wy)+(K×Wk)・・・式(1)
本実施例では例えば、Wc=0.3、Wm=0.6、Wy=0.1、Wk=1.0とする。重み付け係数の値はこれに限定するものではなく、輝度を信号に変換してもよい。また、重み付けではなく、各色版の最大値、CMYKの平均値を判定用の画像としてもよいことは言うまでもない。
エッジ判定部206は、判定画像生成部205から判定画像を受け取り、判定画像からエッジ画素を判定する。エッジ画素として判定された画素は“1”を出力し、エッジ画素でないと判定された画素は“0”を出力する。エッジ判定画像を画像合成部209に出力する。エッジ判定部206の処理の詳細については図4を参照して後述する。即ち、エッジ判定部206は、注目画素がエッジを構成する画素であるか否かを判定する。
2値化部207は、判定画像生成部205から判定画像を受け取り、判定画像から2値画像を生成する。2値化部207は、予め定められた閾値(本実施例では、63)と判定画像を比較し、閾値よりも判定画像が大きい場合に“1”を出力し、それ以外の場合は、“0”を出力する。2値化した2値化画像を半透明度合い算出部208に出力する。
半透明度合い算出部208は、2値化部207から2値化画像を受け取り、2値化画像と判定パターン画像の一致度合を示す類似度を算出する。そして、算出した半透明度合いを画像合成部209に出力する。半透明度合い算出208の処理の詳細については、図5を参照して後述する。
画像合成部209は、エッジ判定部206から受け取ったエッジ判定画像と半透明度合い算出部208から受け取った半透明度合いに基づいて画像合成処理を行う。画像合成部209は、エッジ判定画像と半透明度合いに基づいてエッジ補正データ生成部から受け取ったエッジ補正画像とスクリーン処理部203から受け取ったスクリーン画像(ハーフトーン画像とも呼ぶ)に画像合成処理を実施する。画像合成部209で実施される画像合成処理の詳細については後述する。その後、画像合成処理後の画像をエンジンI/F部106に出力する。
<エッジ判定部206の動作>
上述のように、エッジ判定部206は、判定画像生成部205から受け取った判定画像を入力画像として、エッジ画素の判定を行う。そして、判定したエッジ画素のエッジ情報を“1”(エッジあり)にする。なお、エッジ画素として判定されなかった画素は、エッジ情報を“0”(エッジなし)のままにする。
図4は、エッジ判定部206で行われるエッジ判定処理のフローチャートである。
エッジ判定部206は、注目画素と注目画素を中心とする周辺の8画素の計9画素(参照領域)のコントラスト(濃度段差)を算出し、コントラストが予め決められた閾値よりも大きいかどうかでエッジ判定を実施する。
ステップS401において、エッジ判定部206は、参照領域の中で最も画素値が大きい画素値(最大値[MAX])を求める。ステップS402において、エッジ判定部206は、参照領域の中で最も画素値が小さい画素値(最小値[MIN])を求める。ステップS403において、エッジ判定部206は、ステップS401で求めた最大値[MAX]からステップS402で求めた最小値[MIN]を減算し、コントラスト値[CONT]を求める。これにより、参照領域の信号値の段差量が算出される。
ステップS404において、エッジ判定部206は、ステップS403で求めたコントラスト値[CONT]と予め定められたエッジ判定値[Sub]とを比較し、コントラスト値[CONT]の方が大きいかどうかを判定する。判定の結果、エッジ判定値[Sub]よりもコントラスト値[CONT]の方が大きい場合にはステップS405に進む。
一方、エッジ判定値[Sub]よりもコントラスト値[CONT]の方が大きくない場合にはステップS407に進む。エッジ判定値[Sub]よりもコントラスト値[CONT]の方が大きくない場合は、エッジ補正処理が必要ないと判断する。ステップS405において、エッジ判定部206は、注目画素の信号値に予め定められた値marginを加算した値と最大値[MAX]を比較し、注目画素の信号値に予め定められた値marginを加算した値が大きいかどうか判定する。
ステップS406において、エッジ判定部206は、エッジ判定信号を“1(ON)”に設定する。ステップS407において、エッジ判定部206は、エッジ判定信号を“0(OFF)”に設定する。ステップS408において、エッジ判定部206は、全ての画素に処理を行ったか判定する。全ての画素に処理が終了していない場合は、ステップS409へ移行する。全ての画素に処理が終了した場合は、本処理を終える。ステップS409において、エッジ判定部206は、注目画素を次の画素に移動し、ステップS401からステップS408の処理を再度行う。
なお、本実施形態では、一例として注目画素を中心とした近傍9画素の最大値と最小値に基づき注目画素がエッジであると判定する場合を例示したがこれに限定されるものではない。そのほかのエッジ判定アルゴリズムに基づきエッジを構成する画素を検出することもできる。また、ニューラルネットワークなど用いてエッジ画素を検出することもできる。
<半透明度合い算出部208の動作>
半透明度合い算出部208は、半透明パターンの画像が存在する領域を判定するものである。半透明度合い算出部208は、2値化画像に対して所定のサイズのウィンドウを設定し、そのウィンドウ内の画素と予め用意した判定パターンの一致度合いを示す類似度を算出する。本実施形態では、注目画素を中心とし、当該注目画素に隣接する周辺画素を含複数画素である7×7画素のウィンドウを設定する。
半透明オブジェクトが存在する文書データを印刷する場合、描画コマンドとして通常のオブジェクトに対し、画素を間引いた画像を生成するためのPDLデータがホストコンピュータ1において生成される。CPU102は、PDLデータに含まれる半透明オブジェクトの描画命令に基づいて、レンダリング処理を行い、画素が間引かれた半透明パターン画像を生成する。半透明パターン画像は、通常の色値を持つオブジェクトに対し透過率に応じて画素がパターン状に画素が間引かれた画像である。なお、本実施形態では、レンダリング処理を画像形成装置2で行う場合を例示しているがこれに限定されるものではない。ホストコンピュータ1が半透明パターン画像を含むラスタ画像を生成し、当該ラスタ画像を含む印刷ジョブを受信して印刷に供するようにしてもよい。
図6は、半透明パターン画像を構成するパターンの例を示す図である。例えば、CPU102は、半透明パターン画像を300dpiの解像度で描画するよう構成されている。ここで、図6(a)〜(d)はそれぞれ、透過率としてそれぞれ95%、85%、75%、50%が指定された場合の半透明パターン画像を示している。このように、半透明パターンは、透過率ごとにパターン形状が異なり、透過率0%および100%を除く透過率それぞれに対するパターンが用意される。CPU102は、図6に示すような16×16のマトリクスパターンを繰り返し配置することで、半透明パターン画像を生成する。これらのパターン画像は、描画位置や描画するオブジェクトの個数に応じて、マトリクスで表現する位相が異なるよう設定される。例えば、図6(a)〜(d)に示すパターンが右にM画素(M:最大15画素)、下にN画素(最大15画素)ずれた状態のパターンを繰り返し描画する。
ところで、当該生成された半透明画像の上に文字などのオブジェクトが重なるようなケースにおいては、規則的な半透明パターンが崩れてしまい、従来の方法では半透明オブジェクトのパターンであると判定できない場合がある。即ち、従来の方法では、半透明オブジェクトの領域に、更に文字や線などのオブジェクトが重なると、当該重なった領域については、半透明オブジェクトを構成する画素と判定できず、当該重なった領域の境界や内側にエッジ補正処理等が適用されてしまう。この場合、文字等が潰れ、文字等の可読性が低下するといった問題点がある。
本実施形態では透明オブジェクトに文字等を重ねた領域を含む画像に対しても、適切にエッジ補正処理を行えるように、類似度に基づくエッジ補正処理を行う仕組みを提供する。以下具体的な仕組みについて説明する。
<判定パターンの説明>
本実施形態では、7×7画素の教師パターンで半透明度合いを算出する場合について説明する。教師パターンの大きさは7×7に限ったものではなく、16×16でも良いことは言うまでもない。また、本実施形態では、半透明度合いの算出を600dpiの解像度で実施するが、300dpiや1200dpiであっても良いことは言うまでもない。
本実施形態では、図6に示した300dpiの16×16のパターンは600dpiに単純拡大され、32×32のパターンとなって半透明度合い算出部208に入力される。
ここで、半透明パターンは99%〜50%の透過率まで孤立点の状態を保持して成長し、49%〜1%で孤立点の状態が反転する。この特徴を有しているため、ここでは、図7に示す判定パターンを用いて半透明度合いの算出を行う。
図7は、判定を行うための教師データとなる教師パターンの一例を示す図である。以降、これらの教師データを単に判定パターンとも呼ぶものとする。図7の“0”の値は、2値化部207の該当する画素が“0”であるかを判定するために用いられる。図7の“1”の値は、2値化部207の該当する画素が“1”であるかを判定するために用いられる。
図7(a)は、7×7の領域内に1つのドット(縦又は横に画素値が“1”の画素が隣接する画素群)が存在する場合の判定パターンである。図7(b)は、7×7の領域内に2つのドットが存在する場合の判定パターンである。図7(c)は、7×7の領域内に3つのドットが存在する場合の判定パターンである。図7(d)は、7×7の領域内に4つのドットが存在する場合の判定パターンである。図7(e)は、7×7の領域内に5つのドットが存在する場合の判定パターンである。図7(f)は、7×7の領域内に6つのドットが存在する場合の判定パターンである。図7(g)は、7×7の領域内に7つのドットが存在する場合の判定パターンである。図7(h)は、透過率50%を判定する判定パターンであり、7×7の領域内に8つのドットが存在する場合の判定パターンである。図7の判定パターンはあくまで一例であり、CPU102で生成される半透明パターン画像やCPU102で半透明パターン画像を生成する解像度に応じて適宜異ならせることができる。
<類似度の導出処理>
続いて、類似度の導出処理を、図5、図8、図9を用いて説明する。ここで、変数[tmp]は所定の判定パターン[pat]と2値化画像[bi]の一致度合い(類似度)を示すものである。変数[i]、変数[j]は2値化画像[bi]と判定パターン[pat]の画素位置を示すものである。変数[k]は、判定パターン[pat]を回転反転した画像を示すものである。
図8は、図7(d)の判定パターンを回転、反転した画像である。図8(a)は、図7(d)そのものであり、変数[k]=0である。図8(b)は、図7(d)を右に90度回転したものであり、変数[k]=1である。図8(c)は、図7(d)を右に180度回転したものであり、変数[k]=2である。図8(d)は、図7(d)を右に270度回転したものであり、変数[k]=3である。図8(e)は、図7(d)を左右反転したものであり、変数[k]=4である。図8(f)は、図8(e)を右に90度回転したものであり、変数[k]=5である。図8(g)は、図8(e)を右に180度回転したものであり、変数[k]=6である。図8(h)は、図8(e)を右に270度回転したものであり、変数[k]=7である。
変数[p]は、図7の(a)〜(h)の判定パターン[pat]を示すものである。本実施形態では、23種類存在する。p=0が(a)、p=1〜3が(b)、p=7が(h)に対応する。変数[n]は、図7の(a)〜(h)の判定パターン[pat]の論理反転の有無を意味する。変数[n]=0の場合は、論理反転無し。変数[n]=1の場合は、論理反転有りを意味する。類似度[SCORE]は、最終的な2値化画像[bi]と判定パターン[pat]との一致度合いを示したものであり、全ての判定パターン[pat]との一致度合いの中で一番大きいものを類似度[SCORE]とする。
図9は、2値化画像の例を示したものである。図9(a)は、半透明画像を模した2値化画像の一例である。図9(b)は、文字や線等を模した2値化画像の一例である。図9(c)は、画像の一部が半透明画像の一例である。
図5は、半透明度合い算出部208の処理を説明するフローチャートである。なお、本実施形態では、説明のために、一例の判定処理を繰り返し処理を含むフローチャートで説明するが、これに限定されるものではない。各処理を行うための複数のハードウェア回路を配置し、複数のパターンによる判定を同時並列に行うようにしてもよい(詳細は後述する)。
ステップS501では、半透明度合い算出部208は、変数の初期化を行う。変数[tmp]、変数[i]、変数[j]、変数[k]に0を代入する。ステップS502では、半透明度合い算出部208は、2値化画像と判定パターンの対応する各画素を比較し、一致するかどうか判定する。一致する場合は、一致度合いを示す類似度[tmp]に1を加算するためにステップS503へ移行する。一致しない場合は、類似度[tmp]に1を加算せずに、ステップS504へ移行する。
ステップS503では、半透明度合い算出部208は、類似度[tmp]に1を加算する。本実施形態では、7×7画素で類似度を算出するので、全ての画素が一致する場合は、類似度[tmp]は49となる。
ここで、2値化画像が図9(a)、判定パターンが図8(a)の場合について説明する。図8(a)は、変数[p]=7、変数[k]=0、変数[n]=0の場合である。まず、変数[i]=0、変数[j]=0について比較を行う。図8(a)の変数[i]=0、変数[j]=0の画素は、1である。そして、図9(a)の変数[i]=0、変数[j]=0の画素の値は、1であり、図8(a)と一致するので、類似度[tmp]に1を加算する。次に、2値化画像が図9(b)、判定パターンが図8(a)の場合について説明する。まず、変数[i]=0、変数[j]=0について比較を行う。図8(a)の変数[i]=0、変数[j]=0の画素は、1である。そして、図9(b)の変数[i]=0、変数[j]=0の画素の値は、0であり、図8(a)と一致しないので、類似度[tmp]に1を加算しない。
ステップS504では、半透明度合い算出部208は、次の画素と比較を行うために変数[i]に1を加算する。ステップS505では、半透明度合い算出部208は、7×7画素のある副走査位置における、主走査方向にすべての画素について比較を行ったか判断する。本実施形態では、7×7画素なので、変数[i]が7の場合に主走査方向にすべての画素について比較を行ったか判定できる。主走査方向にすべての画素について比較を行ったと判断された場合は、ステップS506へ移行して、変数[i]に0を代入する。
ステップS506では、半透明度合い算出部208は、変数[i]に0を代入する。ステップS507では、半透明度合い算出部208は、変数[j]に1を加算して、注目画素を副走査方向に移動させる。ステップS508では、半透明度合い算出部208は、7×7画素すべての画素について比較を行ったか判断する。本実施形態では、ウィンドウサイズに7×7画素を採用しているため、変数[j]が7の場合に主走査方向にすべての画素について比較を行ったと判断する。すべての画素について比較を行ったと判断された場合は、ステップS509へ移行して、変数[j]と変数[i]に0を代入して変数の初期化を行う。
ここで、2値化画像が図9(a)、判定パターンが図8(a)の場合について説明する。図8(a)と図9(a)は7×7画素の全ての画素が一致するので、類似度[tmp]は49となる。次に、2値化画像が図9(b)、判定パターンが図8(a)の場合についてフローチャートに従って各画素を比較すると、一部の画素に一致が見られる。この場合49画素中の31画素と一致するので、類似度[tmp]は31となる。
上述したように、図9(a)は類似度[tmp]が49、図9(b)は類似度[tmp]が24、図(c)は類似度[tmp]が31となる。このように、半透明画像を模した図9(a)は49(最大値)となり、一部半透明画像を含む図9(c)は31、文字や線を模した図9(b)が一番低い24となる。このように教師パターンである判定パターンと注目画素を含むウィンドウとのパターンマッチングを行うことで、半透明度合いを占める類似度を定量化できる。
続けて、ステップS509では、半透明度合い算出部208は、変数[j]と変数[i]に0を代入して変数の初期化を行う。
ステップS510では、半透明度合い算出部208は、類似度[tmp]と類似度[SCORE]を比較し、類似度[tmp]が類似度[SCORE]よりも大きい場合は、類似度[SCORE]に類似度[tmp]を代入する。類似度[tmp]を代入することで類似度[SCORE]を更新する。これにより、判定した判定パターンの中で一番一致度が高い類似度が採用されることとなる。
ステップS511では、半透明度合い算出部208は、類似度[SCORE]に類似度[tmp]を代入する。ステップS512では、半透明度合い算出部208は、次の判定パターンと比較を行うために、変数[k]に1を加算し、ステップS513へ移行する。
ステップS513では、半透明度合い算出部208は、全ての回転、反転した判定パターンと類似度[tmp]を算出したかを判定する。変数[k]が8の場合は、全ての回転、判定した判定パターンと類似度[tmp]を算出したと判断し、ステップS514へ移行する。まだ判定パターンが残っていると判断した場合は、ステップS502へ移行する。
ステップS514では、半透明度合い算出部208は、変数[k]に0を代入して、初期化する。ステップS515では、半透明度合い算出部208は、変数[p]に1を加算し、次の判定パターンとの類似度[tmp]を算出する。ステップS516では、半透明度合い算出部208は、図7の(a)〜(h)の判定パターンの類似度[tmp]を算出したかを判断する。変数[p]が23の場合は、図7の(a)〜(h)の判定パターンと類似度[tmp]を算出したと判断して、ステップS517へ移行する。
ステップS517では、半透明度合い算出部208は、変数[p]に0を代入して初期化を行う。ステップS518では、半透明度合い算出部208は、変数[n]に1を加算することで、図7の(a)〜(h)の判定パターンの論理を反転した判定パターン[pat]と2値化画像[bi]の類似度[tmp]を算出する。
ステップS518では、半透明度合い算出部208は、図7の(a)〜(h)の判定パターンと論理を反転した図7の(a)〜(h)の判定パターンの両方で類似度[tmp]を算出したかを判定する。nが2の場合は、図7の(a)〜(h)の判定パターンと論理を反転した図7の(a)〜(h)の判定パターンの両方で類似度[tmp]を算出したと判断し、この時点の類似度[SCORE]を2値化画像[bi]の半透明度合いとして出力する。変数[n]が1の場合は、ステップS502へ移行する。
以上の処理を、注目画素を1画素ずつずらしながら2値化画像の全画素に適用することにより、半透明度合い画像が生成される。
<処理の並列化方法に関する説明>
続けて、図19を用いて複数のパターンによる判定を並列に行う方法を説明する。図19は、判定を並列に行うための回路構成の一例を説明するための模式図である。
マッチング回路は、判定パターンを図示省略の不揮発性メモリなどから読み出して、当該判定パターンと、入力データである注目画素を含む7×7のウィンドウの各画素を比較し、一致する画素のカウント結果を出力するハードウェア回路である。このマッチング回路を複数用意しておき、各マッチング回路に異なる判定パターンを割り当て、同じ入力データを供給することで、全ての判定パターンに対する類似度[tmp]を導出することができる。各マッチング回路で導出された類似度は、Selectorに入力される。Selectorは入力された複数の類似度のうち、一番大きい類似度を出力するよう構成されたセレクタである。このようなハードウェア構成を採用すると、類似度導出に係る時間を削減することができる。
<画像合成部209の動作>
続けて、エッジ補正を実現する画像合成処理について図10を用いて説明する。図10は、画像合成部209で行われる、画像合成処理のフローチャートである。
ステップS1001では、画像合成部209は、注目画素がエッジ画素であるかエッジ判定部206から入力されたエッジ判定画像から判定する。エッジ判定画像が“1”の場合は、注目画素がエッジ画素であると判断し、ステップS1002へ移行する。エッジ判定画像が“0”の場合は、ステップS1004へ移行してスクリーン処理部203から入力されたスクリーンデータを出力する。
ステップS1002では、画像合成部209は、注目画素の半透明度合いに基づいて、スクリーン処理部203のスクリーンデータScrDataとエッジ補正データ生成部204のエッジ補正データEdgeDataを決定する。具体的には、以下の式を用いて画像合成データCombDataを生成する。
CombData=EdgeData×α+ScrData×β・・・式(2)
なお、画像合成データCombDataの生成アルゴリズムは、これに限定するものではなく、類似度[Score]に基づいてエッジ補正データEdgeDataとスクリーンデータScrDataを合成する割合が変化するものであればよい。
ステップS1003では、画像合成部209は、ステップS1003で生成した画像合成データCombDataを出力する。ステップS1004では、画像合成部209は、スクリーンデータを出力する。
ステップS1005では、画像合成部209は、全ての画素に画像合成処理を行ったか判定する。全ての画素に画像合成処理を行った場合は、処理を終了する。全ての画素に画像合成処理を行っていないと判定した場合は、ステップS1006へ移行する。
ステップS1006では、画像合成部209は、注目画素を次の画素へ移動し、ステップS1001へ移行し、画像合成処理を行う。
<本実施形態におけるエッジ補正処理の効果>
次に、図12、図13を用いて、本実施形態における処理結果とその効果を説明する。
図12は、下地が白の画像に透過率25%のオブジェクトにROPコマンドを使って画像を描画した場合を説明するための図である。図12(a)は、信号値128の8×8のオブジェクトである。図12(b)は透過率25%で使用する網目画像である。図12(c)はROPコマンドを使って図12(a)のオブジェクトを透過率25%で描画した場合の画像である。ホストI/F部101から受け取ったROPコマンドを含むPDLデータに基づき、図12(c)を生成する処理を画像処理部105が実施する。
図13(a)は、色変換処理部201の出力画像である。図13(a)は、ROPコマンドを使って図12(a)の半透明オブジェクトを透過率25%で描画した場合の画像である。
図13(b)は、スクリーン処理部203の出力画像である。図13(a)の各画素値と画像の位置によって決定されるスクリーンマトリクスの閾値を比較し、画素値が大きい場合に15(4ビット)が出力され、画素値が閾値以下の場合は0が出力される。図13(c)は、エッジ補正データ生成部204の出力画像である。エッジ補正データ生成部204は、図13(a)の各画素値を引数として、図3のエッジ補正データ生成用の一次元のルックアップテーブルを参照し、図13(c)を生成する。画素1301の信号値は128なので、画素1303のエッジ補正データは、12となる。
図13(d)は、判定画像生成部205の出力画像である。画素1301の信号値はK:128であるものとする。従って、上述した式(1)を用いて判定画像の画素1304の出力を算出すると、「出力画像L=(C×0.3)+(M×0.6)+(Y×0.1)+(K×1)=128」となる。
図13(e)は、エッジ判定部206の出力画像である。本実施形態ではエッジ判定値[Sub]が32なので、画素1304を中心とする3×3画素1305の最大値は、128となる。そして、画素1304を中心とする3×3画素1305の最小値は、0となる。従って、コントラスト値は、最大値―最小値=128−0=128となり、エッジ判定値[Sub]よりも大きいので、エッジ画素1307は“1”(エッジあり)となる。
図13(f)は、2値化部207の出力画像である。本実施形態では、2値化部207の閾値は63である。判定画像の画素1307は128で、閾値63よりも大きいので、“1”が出力される(画素1308)。
図13(g)は、半透明度合い算出部208の出力画像である。注目画素1301を例に挙げて説明を行う。注目画素1301の半透明度合いは、7×7画素1306で算出する。7×7画素の2値化画像は、7×7画素の2値化画像1309となる。このとき、判定パターンの図8(a)を論理反転したものと7×7画素全てが一致するので、注目画素1310に対する類似度[Score]は49となる。
図13(h)は、エッジ補正処理の抑止を行わない場合(注目画素が半透明オブジェクトを構成する画素であるかの判定を行わない場合)の画像である。エッジ補正処理の抑止を行わない場合は、エッジ画素と判断された画素は、図13(b)のスクリーン処理部203の出力画像と図13(c)のエッジ補正データ生成部204の出力画像の大きい方の値を出力する場合について説明する。画素1311は、画素1307が“1”なので、エッジ画素である。画素1311は、画素1313と画素1303の大きい方の値を出力する。画素1313は0で、画素1303は12なので、画素1311は、12となる。その他の画素についても、同様に処理を行うと図13(h)のような結果となる。この、エッジ補正処理後の出力画像を示す図13(h)は、エッジ補正処理を行う前の図13(b)と比較して濃度が濃くなっていることがわかる。
一方、図13(i)は、本実施形態における画像合成部209の出力画像である。注目画素1301を例に挙げて説明を行う。図11は、係数α、βの一例を説明するための模式図である。係数αは類似度[Score]が第1閾値(例えば、24)を超えると単調減少し、第2閾値(例えば、31)を超えると以降は、0となる係数である。即ち、係数αは、半透明らしさを示す判定パターンとの類似度が高くなるにつれて、エッジ補正の強度を低下させる係数である。係数βは、例えば1を採用することができる。類似度[Score]に対応する係数αは、ルックアップテーブルに記憶されており、類似度[Score]をキーとして、当該ルックアップテーブルを参照することで、係数αを取得する。
例えば、注目画素1301の半透明度合い1310は49なので、係数α=0、係数β=1.0となる。従って、式(2)より「CombData=EdgeData×α+ScrData×β=12×0+0×1.0=0」となり、画像合成処理後の画素1312は0となる。その他の画素についても同様に処理を行うと図13(i)の結果となる。図13(i)のように判定パターンとして判定した画素については、エッジ補正データの影響度合いを式(2)に基づき低下させることで、エッジ補正処理を行う場合であっても、半透明パターンに対する濃度上昇を抑制することができる。
図14は本発明の効果を説明するための図である。図14(a)は、半透明オブジェクトを含む画像である。図14(a)のオブジェクト1401は、信号値192のひし形のオブジェクトである。図14(a)のオブジェクト1402は、信号値0の長方形の透過率75%のオブジェクトである。図14(b)は、図14(a)にエッジ補正処理を適用しなかった場合の画像形成装置2で印刷した印刷物をスキャナで読み取った画像である。
図14(c)は、図14(a)にエッジ補正処理を適用した場合の画像形成装置2で印刷した印刷物をスキャナで読み取った画像である。図14(d)は、図14(a)に本実施形態でエッジ補正処理を適用した場合の画像形成装置2で印刷した印刷物をスキャナで読み取った画像である。
図14(c)は、オブジェクト1402がエッジ補正処理によって濃度が上昇していることがわかる。図14(c)に対して図14(d)は、半透明オブジェクトを判定し、濃度上昇を抑制できていることがわかる。
上述したように、半透明度合いを算出し、半透明度合いに応じてスクリーンデータとエッジ補正データを合成する本発明の方法を用いると、半透明を含む画像であっても適切にエッジ補正処理を適用することができる。
<先行技術との差の説明>
次に、図15を用いて、本実施形態における処理例と処理結果の詳細を説明する。
図15(a)は、色変換処理部201の出力画像である。図15(a)の左側には透過率75%でK版の信号値128の半透明画素1501の上にゴシック体で“日”という文字1502をK版の信号値255で配置され、右側には幅8画素、縦に26画素、K版の信号値128の縦棒1503が配置されている画像である。本例では、説明を簡略化させるためにCMY版の信号値は0とする。
図15(b)は、スクリーン処理部203の出力画像である。図15(a)の各画素値と画像の位置によって決定されるスクリーンマトリクスの閾値を比較し、画素値が大きい場合に15(4ビット)が出力され、画素値が閾値以下の場合は0が出力される。
図15(c)は、エッジ補正データ生成部204の出力画像である。エッジ補正データ生成部204は、図15(a)の各画素値を引数として、図3のエッジ補正データ生成用の一次元のルックアップテーブルを参照し、図15(c)を生成する。半透明の画素1501の信号値は128なので、半透明の画素1505のエッジ補正データは、12となる。画素1504の信号値は128なので、半透明の画素1506のエッジ補正データは、12となる。
図15(d)は、判定画像生成部205の出力画像である。半透明の画素1501の信号値は128なので、上述した式(1)を用いて判定画像の画素1507の出力を算出する。即ち、「L=(C×0.3)+(M×0.6)+(Y×0.1)+(K×1)=128」となる。
図15(e)は、エッジ判定部206の出力画像である。本実施形態ではエッジ判定値[Sub]が32なので、半透明の画素を中心とする3×3画素1508の最大値は、128となる。そして、半透明の画素を中心とする3×3画素1508の最小値は、0となる。従って、コントラスト値は、最大値―最小値=128−0=128となり、エッジ判定値[Sub]よりも大きいので、エッジ画素1509は“1”(エッジあり)となる。
図15(f)は、2値化部207の出力画像である。本実施形態では、2値化部207の閾値は63である。判定画像の画素1507は128で、閾値63よりも大きいので、“1”が出力される(画素1510)。
図15(g)は、半透明度合い算出部208の出力画像である。注目画素1501を例に挙げて説明を行う。注目画素1501の半透明度合いは、7×7画素1511で算出する。7×7画素の2値化画像は、7×7画素の2値化画像1512となる。このとき、図9(c)と同じなので、注目画素1501の半透明度合い1513は31となる。本来であれば、全ての判定パターンと比較し、最も半透明度合いが高い値となるが、本実施形態では、説明を簡略化するために図8(a)の判定パターンとの半透明度合いの数値のみを使って説明を行う。
次に、注目画素1504を例に挙げて説明を行う。注目画素1504の半透明度合いは、7×7画素1514で算出する。7×7画素の2値化画像は、7×7画素の2値化画像1515となる。このとき、図9(b)と同じなので、注目画素1504の半透明度合い1516は24となる。
図15(h)は、半透明度合いに応じて画像を合成せず、従来手法のように半透明パターンと一致した画素は、エッジ補正処理を抑止し、一致しない場合は、エッジ補正処理を適用した場合の画像である。注目画素1501を例に挙げて説明を行う。注目画素1501の半透明度合い1513は31であり、49ではないので、半透明パターンとは一致しないと判定される。従って、エッジ補正データ1505とスクリーンデータの大きいが出力されるので、合成画像の画素1517はエッジ補正データ1505の値である12となる。
このように、半透明画素と文字画像が隣接する画素で半透明パターンが崩れてしまい、半透明パターンと一致しなくなってしまう。そして、図15(h)に示すように、文字の“日”の中や周辺の半透明画素にエッジ補正処理が適用されてしまい、“日”の可読性が著しく低下してしまうことがわかる。
図15(i)は、画像合成部209の出力画像である。注目画素1501を例に挙げて説明を行う。注目画素1501の類似度1513は31なので、図11から係数α=0、係数β=1.0と決定される。従って、式(2)よりCombData=EdgeData×α+ScrData×β=12×0+0×1.0=0となり、画像合成処理後の画素1518は0となる。
続いて、注目画素1504を例に挙げて説明を行う。注目画素1504の半透明度合い1516は24なので、図11から係数α=1.0、係数β=1.0と決定される。従って、式(2)より、「CombData=EdgeData×α+ScrData×β=12×1.0+0×1.0=12」となる。従って、画像合成処理後の画素1519は12となる。
上述したように、半透明度合いを算出し、半透明度合いに応じてスクリーンデータとエッジ補正データを合成する本発明の方法を用いると、半透明パターンが崩れる画素においても高い半透明度合いを算出することができる。これにより、半透明パターンが崩れる画素であってもエッジ補正処理を抑制することができる。そして、画素1504のような通常のエッジ画素に対しては、適切にエッジ補正処理を適用することができる。
図16は、本発明の効果を説明するための図である。図16は、図14を拡大したものである。図16(a)は、特許文献2の技術を使って、半透明オブジェクトを含む画素である場合にエッジ補正処理を抑止したものである。図16(b)は、本実施形態でエッジ補正処理を適用した場合の図である。図16(a)は、文字の内部にエッジ補正処理が適用されて、文字が潰れて可読性が低下しているのに対して、本実施形態を適用した場合は、文字の可読性が低下していないことがわかる。
<効果>
以上説明したように、従来手法のように半透明パターンと一致した画素は、エッジ補正処理を抑止し、一致しない場合は、エッジ補正処理を適用した場合は半透明パターンが少しでも崩れると抑止制御することができず、弊害が発生してしまう。そして、本課題は半透明であるという情報を太らせても解決することはできない。なぜなら、“日”という文字の“口”の中の全ての半透明画素が半透明パターンと異なるからである。従って、本例においてはそもそも太らせる情報がない。
一方、本実施形態では、半透明パターンを模した判定パターンとの一致度合を示す類似度を算出し、半透明度合いに応じてスクリーンデータとエッジ補正データを合成する。また、当該類似度に応じてスクリーンデータとエッジ補正データを合成する。従って、図15(i)に示すように、半透明パターンが崩れる画素はエッジ補正データを抑制しながら通常のエッジ画素にはエッジ補正処理を適用することができる。
<第2の実施形態>
第2の実施形態では、判定パターンの中に2値化画像にかかわらず、半透明度合いを加算する画素(ドントケア)を設け、判定パターンの数を削減する仕組みについて説明する。複数の判定パターンを集約することで、保持に必要な回路や演算に必要なコストを削減することができる。なお、第2の実施形態では、第1の実施形態とハードウェア構成は同一であるものとする。また、第1の実施形態と同様の処理については適宜省略しつつ説明する。
<判定パターンの説明>
第2の実施形態では、図17に示す判定パターンを用いて半透明度合いの算出を行う。図17は、判定パターンの例を示す図である。図17の“0”は、2値化部207の該当する画素が“0”であるかを判定する。図17の“1”は、2値化部207の該当する画素が“1”であるかを判定する。図17の“2”は、2値化部207の該当する画素が“0”であっても“1”であっても関係なく半透明度合いに加算を行う。
図17(a)、(b)が第2の実施形態における判定パターンである。図17(c)〜(f)は、図17(a)における変数[k]=0〜3を示したものである。図17(g)〜(j)は、図17(b)における変数[k]=0〜3を示したものである。図17(c)は、図17(a)における変数[k]=0にあたるものである。図17(d)は、図17(a)における変数[k]=1にあたるものであり、図17(a)を右に90度回転させたものである。
図17(e)は、図17(a)における変数[k]=2にあたるものであり、図17(a)を右に180度回転させたものである。
図17(f)は、図17(a)における変数[k]=3にあたるものであり、図17(a)を右に270度回転させたものである。図17(g)は、図17(b)における変数[k]=0にあたるものである。
図17(h)は、図17(b)における変数[k]=1にあたるものであり、図17(b)を右に90度回転させたものである。図17(i)は、図17(b)における変数[k]=2にあたるものであり、図17(b)を右に180度回転させたものである。
図17(j)は、図17(b)における変数[k]=3にあたるものであり、図17(b)を右に270度回転させたものである。図17(a)は、図7(a)〜(d)の判定パターンの代替となる判定パターンである。図7(a)〜(d)に着目すると、特徴が存在することがわかる。図7(b)は二つの孤立点が存在する場合を示したものであるが、中心の2×2画素の孤立点と図17(a)の“2”となっている画素位置のいずれかがもう一つの孤立点となっているものである。図7(c)は三つの孤立点が存在する場合を示したものであるが、中心の2×2画素の孤立点と図17(a)の“2”となっている画素位置のいずれかが二つが孤立点となっているものである。図7(d)は四つの孤立点が存在する場合を示したものであり、図17(a)の“2”が全て孤立点となっている判定パターンである。
図7(a)は一つの孤立点が存在する場合を示したものであり、図17(a)の“2”になにもない場合のパターンである。以上のことから、注目画素を含む2×2画素の孤立点(対応画素が“1”)と図17(a)の“2”となっている画素以外が“0”は共通であることがわかる。従って、図17(a)の“2”となっている画素以外で図7(a)〜(d)の半透明度合いを算出することができる。
8つの図7(a)〜(d)の判定パターンを1つの判定パターンの図17(a)に置き換えることで、判定パターンを保持するための回路や半透明度合いを演算するための回路を1/8に減らすことができる。また、ソフトウェアプログラムにより判定を行うケースであれば、判定処理の演算コストを1/8に削減することができる。
図17(b)は、図7(e)〜(h)の判定パターンの代替となる判定パターンである。図7(e)〜(h)に着目すると、特徴が存在することがわかる。図7(e)〜(h)は、図17(b)の“2”以外の画素は同じで共通であることがわかる。そして、図7(e)〜(h)の差分は、図17(b)の“2”の画素位置にドットが存在するかどうかである。従って、図17(b)の“2”となっている画素以外で図7(e)〜(h)の半透明度合いを算出することができる。
15個の図7(e)〜(h)の判定パターンを1つの判定パターンの図17(b)に置き換えることで、判定パターンを保持するための回路や半透明度合いを演算するための回路を1/15に減らすことができる。
<フローチャートの説明>
図18は、半透明度合い算出部208の処理を説明するフローチャートである。
ステップS1801では、半透明度合い算出部208は、変数の初期化を行う。変数[tmp]、変数[i]、変数[j]、変数[k]に0を代入する。ステップS1802では、半透明度合い算出部208は、2値化画像と判定パターンの対応する各画素を比較し、一致するかどうか判定する。一致する場合は、類似度[tmp]に1を加算するためにステップS1804へ移行する。一致しない場合は、類似度[tmp]に1を加算せずに、ステップS1803へ移行する。
ステップS1803では、半透明度合い算出部208は、判定パターンの注目画素が“2”であるかを判定する。判定パターンの注目画素が“2”の場合は、類似度[tmp]に1を加算するために、ステップS1804へ移行する。判定パターンの注目画素が“2”でない場合は、注目画素を次の画素へ移動させるためにステップS1805へ移行する。
ステップS1804では、半透明度合い算出部208は、類似度[tmp]に1を加算する。
ここで、2値化画像が図9(a)、判定パターンが図17(a)の場合について説明する。図17(a)は、変数[p]=0、変数[k]=0、変数[n]=0の場合である。まず、変数[i]=0、変数[j]=0について比較を行う。図17(a)の変数[i]=0、変数[j]=0の画素は、2である。そして、図9(a)の変数[i]=0、変数[j]=0の画素の値は、1なので、ステップS1802では一致しないと判断され、ステップS1803へ移行する。そして、ステップS1803において、判定パターンは2であると判定されるので、ステップS1804へ移行して、類似度[tmp]に1を加算する。
次に、2値化画像が図9(b)、判定パターンが図17(a)の場合について説明する。まず、変数[i]=0、変数[j]=0について比較を行う。図17(a)の変数[i]=0、変数[j]=0の画素は、2である。そして、図9(b)の変数[i]=0、変数[j]=0の画素の値は、0であり、図17(a)と一致しないので、ステップS1803へ移行する。そして、ステップS1803において、判定パターンは2であると判定されるので、ステップS1804へ移行して、類似度[tmp]に1を加算する。
ステップS1805では、半透明度合い算出部208は、次の画素と比較を行うために変数[i]に1を加算する。ステップS1806では、半透明度合い算出部208は、7×7画素のある副走査位置における、主走査方向にすべての画素について比較を行ったか判断する。本実施形態では、7×7画素なので、変数[i]が7の場合に主走査方向にすべての画素について比較を行ったか判定できる。主走査方向にすべての画素について比較を行ったと判断された場合は、ステップS1807へ移行して、変数[i]に0を代入する。
ステップS1807では、半透明度合い算出部208は、変数[i]に0を代入する。ステップS1808では、半透明度合い算出部208は、変数[j]に1を加算して、注目画素を副走査方向に移動させる。
ステップS1809では、半透明度合い算出部208は、7×7画素すべての画素について比較を行ったか判断する。本実施形態では、7×7画素なので、変数[j]が7の場合に主走査方向にすべての画素について比較を行ったか判定できる。すべての画素について比較を行ったと判断された場合は、ステップS1810へ移行して、変数[j]と変数[i]に0を代入して変数の初期化を行う。
ここで、2値化画像が図9(a)、判定パターンが図17(a)の場合について説明する。図17(a)と図9(a)をフローチャートに従って各画素を比較すると、図17(a)の“2”の画素位置以外の全ての画素が一致する。図17(a)の“2”の画素位置は一致度合いに加算されるので、類似度[tmp]は49となる。
次に、2値化画像が図9(b)、判定パターンが図17(a)の場合について説明する。フローチャートに従って各画素を比較すると、49画素中の22画素が一致するので、22+5(図17(a)の“2”の画素)=27となり、類似度[tmp]は27となる。
続いて、2値化画像が図9(c)、判定パターンが図17(a)の場合について説明する。フローチャートに従って各画素を比較すると、以下の場合に一致する。変数[i]=1〜6かつ変数[j]=3のとき。変数[i]=1〜6かつ変数[j]=4のとき。変数[j]=5のとき。変数[j]=6のとき。即ち、以上の26画素と一致するので、26+5(図17(a)の“2”の画素)=31となり、類似度[tmp]は31となる。
上述したように、図9(a)は類似度が49、図9(b)は類似度が27、図9(c)は類似度が31となる。このように、半透明画像を模した図9(a)は49(最大値)となり、一部半透明画像を含む図9(c)は31、文字や線を模した図9(b)が一番低い27となり、半透明度合いを定量化できていることがわかる。
ステップS1810では、半透明度合い算出部208は、変数[j]と変数[i]に0を代入して変数の初期化を行う。ステップS1811では、半透明度合い算出部208は、類似度[tmp]と類似度[SCORE]を比較し、類似度[tmp]が類似度[SCORE]よりも大きい場合は、類似度[SCORE]に類似度[tmp]を代入する。類似度[tmp]を代入することで、類似度[SCORE]を更新する。これにより、判定した判定パターンの中で一番一致度が高いものの類似度が採用されることとなる。
ステップS1812では、半透明度合い算出部208は、類似度[SCORE]に類似度[tmp]を代入する。
ステップS1813では、半透明度合い算出部208は、次の判定パターンと比較を行うために、変数[k]に1を加算し、ステップS1814へ移行する。
ステップS1814では、半透明度合い算出部208は、全ての回転、反転した判定パターンに対する類似度を算出したかを判定する。変数[k]が4の場合は、全ての回転、判定した判定パターンに対する類似度を算出したと判断し、ステップS1815へ移行する。まだ判定パターンが残っていると判断した場合は、ステップS1802へ移行する。
ステップS1815では、半透明度合い算出部208は、変数[k]に0を代入して、初期化する。ステップS1816では、半透明度合い算出部208は、変数[p]に1を加算し、次の判定パターンを用いた類似度を算出する。
ステップS1817では、半透明度合い算出部208は、図17(a)、(b)の判定パターンに対する類似度を算出したかを判断する。変数[p]が2の場合は、図17(a)、(b)の判定パターンに対する類似度を算出したと判断して、ステップS1818へ移行する。
ステップS1818では、半透明度合い算出部208は、変数[p]に0を代入して初期化を行う。ステップS1819では、半透明度合い算出部208は、変数[n]に1を加算することで、図17(a)、(b)の判定パターンの論理を反転した判定パターンと2値化画像[bi]の類似度を算出する。
ステップS1819では、半透明度合い算出部208は、図17(a)、(b)の判定パターンと論理を反転した図17(a)、(b)の判定パターンの両方で類似度を算出したかを判定する。nが2の場合は、図17(a)、(b)の判定パターンと論理を反転した図17(a)、(b)の判定パターンの両方で類似度を算出したと判断し、この時点の類似度[SCORE]を2値化画像[bi]の半透明度合いとして出力する。変数[n]が1の場合は、ステップS1802へ移行する。
以上、説明したように、判定パターンの中に2値化画像にかかわらず、半透明度合いを加算する画素を設けることで、複数の判定パターンを集約することができる。なお、第1の実施形態でも説明したように、演算の高速化を図る目的で、ハードウェア回路として図18の各処理で説明した演算と同様の結果を出力する回路を構成することができる。この場合、図19で説明したように、判定パターンと入力データ(7×7)に基づき類似度[tmp]を出力する複数のマッチング回路と、セレクタ等の構成で実現すればよい。
以上説明したように、第2の実施形態では、第1の実施形態に比べて、回路規模や演算コストを下げつつ、低コストでエッジ補正処理を実現することができる。具体的には、23パターンを2パターンに集約できるので、判定パターンを保持するための回路を2/23に減らすことができる。また、演算に必要な回路も削減することができる。
<その他の実施形態>
本発明は、上述の各実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASICやFPGA)によっても実現可能である。
2 画像形成装置
105 画像処理部
22 印刷エンジン

Claims (7)

  1. 入力画像における注目画素及びその周辺画素を含む複数画素の明暗と、予め保持されている半透明オブジェクトを判定するパターンとを比較する比較手段と、
    前記比較手段での比較結果に基づき、前記注目画素に対してかけるエッジ補正処理の強度を少なくとも3段階で変化させる制御手段と、
    を有することを特徴とする画像処理装置。
  2. 前記比較手段は、前記複数画素の明暗と前記パターンとの合致度を求め、
    前記制御手段は、前記合致度が低い場合に、強度が強くなるよう前記エッジ補正処理の強度を変化させることを特徴とする請求項1に記載の画像処理装置。
  3. 前記パターンには複数の画素が含まれ、前記パターンの各画素の値は、前記パターンの各画素に対応する前記入力画像の画素の値と比較され、
    前記パターンには、前記入力画像の画素が閾値よりも暗い画素の場合に前記合致度を高くする画素と、前記入力画像の画素が閾値よりも明るい画素の場合に前記合致度を高くする画素と、前記入力画像における画素が閾値よりも明るいか暗いかに関わらず合致度を変化させない画素とを有することを特徴とする請求項2に記載の画像処理装置。
  4. 前記入力画像に対してスクリーン処理をかけることでスクリーン処理後の画像を得るスクリーン処理手段と、
    前記制御手段で決定した強度で前記スクリーン処理後の画像における前記注目画素に対してエッジ補正処理を行うエッジ補正処理手段をさらに有することを特徴とする請求項1乃至3のいずれか1項に記載の画像処理装置。
  5. 前記半透明オブジェクトを描画する際に用いられた解像度に基づいて、前記パターンを異ならせることを特徴とする請求項1乃至4のいずれか1項に記載の画像処理装置。
  6. コンピュータに
    入力画像における注目画素及びその周辺画素を含む複数画素の明暗と、予め保持されている半透明オブジェクトを判定するパターンとを比較する比較工程と、
    前記比較工程での比較結果に基づき、前記注目画素に対してかけるエッジ補正処理の強度を少なくとも3段階で変化させる制御工程と、
    を実行させることを特徴とする画像処理方法。
  7. 請求項6に記載の画像処理方法をコンピュータに実行させるためのプログラム。
JP2018136070A 2018-07-19 2018-07-19 画像処理装置、画像処理方法及びプログラム Active JP6667582B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018136070A JP6667582B2 (ja) 2018-07-19 2018-07-19 画像処理装置、画像処理方法及びプログラム
US16/431,392 US10748254B2 (en) 2018-07-19 2019-06-04 Image processing apparatus, image processing method, and storage medium to change intensity of edge correction processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018136070A JP6667582B2 (ja) 2018-07-19 2018-07-19 画像処理装置、画像処理方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2020014155A JP2020014155A (ja) 2020-01-23
JP6667582B2 true JP6667582B2 (ja) 2020-03-18

Family

ID=69161138

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018136070A Active JP6667582B2 (ja) 2018-07-19 2018-07-19 画像処理装置、画像処理方法及びプログラム

Country Status (2)

Country Link
US (1) US10748254B2 (ja)
JP (1) JP6667582B2 (ja)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4217706B2 (ja) 2004-11-01 2009-02-04 キヤノン株式会社 画像処理装置及び画像処理方法
JP4441562B2 (ja) * 2007-10-31 2010-03-31 キヤノン株式会社 画像処理装置および画像処理方法
WO2009126621A2 (en) * 2008-04-07 2009-10-15 Tufts University Methods and apparatus for image restoration
DE112010005721B4 (de) * 2010-07-06 2021-02-04 Mitsubishi Electric Corporation Bildverarbeitungsvorrichtung
JP5323035B2 (ja) * 2010-12-10 2013-10-23 キヤノン株式会社 画像形成装置及びその画像形成方法
JP2016058879A (ja) * 2014-09-09 2016-04-21 キヤノン株式会社 画像処理装置及び画像処理方法
JP6833552B2 (ja) * 2017-02-16 2021-02-24 キヤノン株式会社 画像形成装置、画像形成方法、プログラム。

Also Published As

Publication number Publication date
US10748254B2 (en) 2020-08-18
JP2020014155A (ja) 2020-01-23
US20200027197A1 (en) 2020-01-23

Similar Documents

Publication Publication Date Title
JP4574457B2 (ja) 画像処理装置およびその方法
US10706340B2 (en) Image processing apparatus and method for controlling the same with character attribute indicating that pixel is pixel of a character
US8526061B2 (en) Image processing apparatus, image processing method, and computer program product
US8675968B2 (en) Image processing apparatus
JP6667582B2 (ja) 画像処理装置、画像処理方法及びプログラム
JP7077451B2 (ja) 画像形成装置および画像形成装置の制御方法、ならびにプログラム
US9363414B2 (en) Halftone mechanism
JP6794821B2 (ja) 画像処理装置、および、コンピュータプログラム
JP3754468B2 (ja) 画像データ処理方法および画像処理装置
JP2015149719A (ja) 選択的な向上のあるデジタル画像ハーフトーン変換
JP7005796B2 (ja) 画像形成装置、その制御方法、及びプログラム
US10798267B2 (en) Image processing to set output pixel values subject to edge or thin line correction
JP7187300B2 (ja) 画像処理装置、画像処理方法及びプログラム
JP2020005117A (ja) 画像処理装置及びプログラム
JP4636145B2 (ja) 画像処理装置及びプログラム
JP6061654B2 (ja) 画像処理装置、画像処理方法、コンピュータプログラム
JP2019121870A (ja) 画像処理装置とその制御方法、及びプログラム
JP6825414B2 (ja) 印刷指示装置及びプログラム
JP2013055542A (ja) 画像処理装置、画像処理方法、プログラムおよび記録媒体
JP6155604B2 (ja) 画像処理装置および画像処理方法
US20180359388A1 (en) Image processing apparatus and image processing method
JP2001069349A (ja) 画像処理方法、画像処理装置および記録媒体
JP5181916B2 (ja) 画像処理装置、圧縮方法及び伸張方法
JPH11268337A (ja) 画像形成装置
JP2008028441A (ja) 印刷画像形成装置および印刷画像形成プログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190307

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190307

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: 20200128

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200225

R151 Written notification of patent or utility model registration

Ref document number: 6667582

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151