JP2017103562A - 画像処理装置およびその制御方法、プログラム - Google Patents
画像処理装置およびその制御方法、プログラム Download PDFInfo
- Publication number
- JP2017103562A JP2017103562A JP2015234263A JP2015234263A JP2017103562A JP 2017103562 A JP2017103562 A JP 2017103562A JP 2015234263 A JP2015234263 A JP 2015234263A JP 2015234263 A JP2015234263 A JP 2015234263A JP 2017103562 A JP2017103562 A JP 2017103562A
- Authority
- JP
- Japan
- Prior art keywords
- value
- pixel
- output
- output value
- processing target
- 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.)
- Pending
Links
Images
Landscapes
- Facsimile Image Signal Circuits (AREA)
Abstract
【課題】 入力画像の特徴を維持しつつ、安定したドットの形成を可能にするハーフトーン画像を生成する。【解決手段】 入力画像をハーフトーン画像に変換する画像処理装置であって、入力画像における処理対象領域における出力値の合計の目標値を算出する目標値算出手段と、前記処理対象領域における各画素の画素値と、前記処理対象領域に対応する各閾値とに基づいて、前記処理対象領域における各画素の指標値を算出する指標値算出手段と、前記処理対象領域における各画素の出力値の合計が、前記目標値となるように前記処理対象領域における各画素の出力値を決定する出力値決定手段とを有し、前記出力値決定手段は、前記処理対象領域における各画素の指標値に基づいて、出力値の最大値を出力値とする画素の位置を決定することを特徴とする。【選択図】 図2
Description
本発明は、画像データをより高品質なハーフトーン画像データに変換する技術に関する。
従来、電子写真方式の複写機やプリンタ等の画像形成装置は感光体ドラムを帯電し、その帯電した感光体ドラム上にレーザ光を走査し露光することによって、感光体ドラム上に静電潜像を形成する(以下、潜像と呼ぶ)。そして、画像形成装置は、着色剤(トナー)を用いて像担持体感光体ドラム上に形成された静電潜像を現像し、それを記録材に転写し、さらに記録材に定着させることによって、記録媒体上に可視像を形成する。一方コンピュータやデジタルカメラを介して入力されたデジタル画像データにより表わされる画像を、画像形成装置が記録媒体上に形成することが広く利用されている。デジタル画像データにおいては一般に、画像を構成する各画素の画素値が、1色当り8ビットや16ビット等の多階調で表現される。一方画像形成装置では、記録材によるドットのオンオフによって画像を形成するため、画像データの階調数よりも画像形成装置が出力可能な階調数の方が低いことが多い。そこで従来、画像形成装置により画像を印刷するために、デジタル画像データに対してハーフトーン処理が施される。ハーフトーン処理により得られるハーフトーン画像データは、画像形成装置が記憶媒体上に出力するドットパターンを表し、疑似的に画像の階調を表現する。
電子写真方式を用いた画像形成装置では、生成したレーザ光のパルス幅が狭い場合や、パルス幅が広くても周囲に他の画素が無くドットが孤立して存在する場合には、ドラム上にはっきりとした潜像を生成することが出来ない場合がある。その結果、ドットを安定して形成することが困難となり、粒状性ノイズなどの画質低下につながる場合があった。そこで電子写真方式を用いた画像形成装置が安定して画像を形成できるように、ハーフトーン画像データを生成する技術が知られている。特許文献1ではセル内の入力階調値の平均値に応じた理想出力合計値を生成し、この理想出力合計値に達するまでセル内の重心から出力階調値の生成を繰り返す技術が開示されている。
特許文献1で開示された技術では、理想出力合計値に達するまでセル内の重心から出力階調値を生成しようとするため、原画像が高周波成分を多く持つ画像の場合、その細部を表現できず解像感の良くない画像になってしまう場合があった。
そこで本発明は、入力画像の特徴を維持しつつ、安定したドットの形成を可能にするハーフトーン画像を生成することを目的とする。
そこで本発明は、入力画像の特徴を維持しつつ、安定したドットの形成を可能にするハーフトーン画像を生成することを目的とする。
上記課題を解決するために本発明では、入力画像をハーフトーン画像に変換する画像処理装置であって、入力画像における処理対象領域における出力値の合計の目標値を算出する目標値算出手段と、前記処理対象領域における各画素の画素値と、前記処理対象領域に対応する各閾値とに基づいて、前記処理対象領域における各画素の指標値を算出する指標値算出手段と、前記処理対象領域における各画素の出力値の合計が、前記目標値となるように前記処理対象領域における各画素の出力値を決定する出力値決定手段とを有し、前記出力値決定手段は、前記処理対象領域における各画素の指標値に基づいて、出力値の最大値を出力値とする画素の位置を決定することを特徴とする。
本発明によれば、入力画像の特徴を維持しつつ、安定したドットの形成を可能にするハーフトーン画像を生成できる。
以下、添付の図面を参照して、本発明を好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例にすぎず、本発明は図示された構成に限定されるものではない。
<第1の実施形態>
第1の実施形態では、各画素の画素値が256値(8ビット)の入力画像を、16値(4ビット)のハーフトーン画像データに変換する方法を説明する。第1の実施形態は、入力画像における4画素×4画素の領域ごとに、ハーフトーン処理を行う。図1は、第1の実施形態に適用可能な画像処理装置のハードウェア構成の例を示すブロック図である。画像処理装置は、CPU100、RAM101、操作部103、表示部104、外部記憶装置105、画像処理部106、I/F(インターフェース)部107、バス108を備える。CPU100は、RAM101やROM102に格納されているコンピュータプログラムやデータを用いて、画像処理装置全体の動作制御を行う。
第1の実施形態では、各画素の画素値が256値(8ビット)の入力画像を、16値(4ビット)のハーフトーン画像データに変換する方法を説明する。第1の実施形態は、入力画像における4画素×4画素の領域ごとに、ハーフトーン処理を行う。図1は、第1の実施形態に適用可能な画像処理装置のハードウェア構成の例を示すブロック図である。画像処理装置は、CPU100、RAM101、操作部103、表示部104、外部記憶装置105、画像処理部106、I/F(インターフェース)部107、バス108を備える。CPU100は、RAM101やROM102に格納されているコンピュータプログラムやデータを用いて、画像処理装置全体の動作制御を行う。
RAM101は、外部記憶装置105からロードされたコンピュータプログラムやデータ、I/F部107を介して外部から受信したデータを一時的に記憶するための記憶領域を有する。また、CPU100が各種の処理を実行する際に用いる記憶領域や画像処理部106が画像処理を実行する際に用いる記憶領域を有する。即ち、RAM101は、各種の記憶領域を適宜提供することが出来る。ROM102は、本装置の設定データやブートプログラムなどが格納されている。操作部103は、キーボードやマウスなどにより構成されており、操作者が操作することで各種の指示をCPU100に対して入力することができる。
表示部104は、CRTや液晶画面などにより構成されており、CPU100による処理結果を画像や文字などで表示することができる。
外部記憶装置105は、ハードディスクドライブに代表される大容量情報記憶装置である。外部記憶装置105には、OS(オペレーティングシステム)やCPU100に処理を実行させるためのコンピュータプログラムやデータなどが保存されている。また、各部の処理によって生成される一時的なデータ(入出力画像や画像処理部で使われる閾値マトリクスなど)を保存することもできる。外部記憶装置105に保存されているコンピュータプログラムやデータは、CPU100による制御に従って、適宜RAM101にロードされ、CPU100による処理対象となる。
画像処理部106は、コンピュータプログラムを実行可能なプロセッサや専用の画像処理回路として実現され、印刷対象として入力された画像を画像形成部107が出力可能な画像データに変換するため各画像処理を実行する。例えば、CPU100から画像処理を実行する指示を受け付けると、外部記憶装置105に格納されたN階調の入力画像を処理し、M階調の出力画像を出力する。また、画像処理の際には、RAM101の記憶領域を利用しながら処理を実施する。I/F部107は、外部機器やインターネットに画像処理装置を接続するためのインターフェースとして機能するものである。例えば、N(N:自然数)階調の入力画像をこのI/F部107を介して画像処理装置に入力しても良いし、画像処理装置の最終的な出力であるM(M:自然数、N>M)値の出力画像をこのI/F部107を介して外部に対して送信しても良い。上記の各部はいずれも、バス108に接続されている。図2は、画像処理部106の詳細な構成を示すブロック図である。また、画像処理部106における処理の動作については、図3に示すフローチャートを用いて説明する。画像処理部106を専用の画像処理回路として実現する場合には、図2に示したブロック図を構成すればよい。また、画像処理部106をソフトウェアとして実装してもよい。この場合、図3に示すフローチャートを実現するコンピュータプログラムを、CPU101が実行すればよい。
画像処理部106は、閾値群取得部200、画素群取得部201、目標値算出部202、指標値算出部203、出力値決定部204を有する。閾値群取得部200は、RAM101や外部記憶装置105に格納された閾値マトリクスからディザ処理を実施する処理単位に応じたサイズの閾値群を取得する。本実施形態では、4画素×4画素の領域単位で処理をするため、1つの処理単位ごとに16の閾値を取得する。画素群取得部201は、RAM101や外部記憶装置105に格納された入力画像からディザ処理を実施する処理単位分の画素群を取得する。本実施形態は、1つの処理単位ごとに16画素の画素値を取得する。
目標値算出部202は、入力された画素群と閾値群を参照してディザ処理を行い、その結果を集計し、目標値として算出し出力する。処理対象領域の各画素について、画素値と対応する閾値を比較し、量子化する。16画素の量子化結果の合計値を、処理対象領域の目標値とする。指標値算出部203は、処理対象領域の各画素について、各画素の画素値と対応する閾値との差分を、各画素の指標値として算出する。指標値算出部203は、得られた各画素の指標値を出力値決定部204に出力する。出力値決定部204は、各画素の指標値を参照することにより、処理対象領域の出力値の合計が目標値算出部202から得た目標値となるように、処理対象領域における画素の出力値を決定する。
図3に示すフローチャートに沿って、画像処理部106における処理の動作を具体的に説明する。処理をスタートすると、まず、ステップS300において画素群取得部201は、RAM101や外部記憶装置105から処理対象領域の画素の画素値を取得する。本実施形態では、図4に示すような各画素8ビットの入力画像400に対して、4画素×4画素の矩形領域401で示す領域単位にハーフトーン処理を実行する。処理対象領域の画素値を全て取得したら、次のステップに進む。ステップS300と並行して、ステップS302において閾値群取得部200は、RAM101や外部記憶装置105から処理対象領域に対応する閾値群を取得する。閾値マトリックスとしては公知のAMスクリーンを用いる。本実施形態では、図5に示すような8画素を1単位とする閾値マトリクスを用いる。図5に示す閾値マトリクスは、各閾値が画素に対応するように画像に対してタイル状に配置させている。閾値群取得部302は、処理対象領域である4画素×4画素に対応する閾値群を取得する。図5に示す閾値マトリクスは、各画素位置に対して閾値が二つずつ存在し、各閾値は入力画像に合わせて8ビットの値で表現され、出力値が0から15までの16値となる多値ディザマトリックスを表している。大きい方の閾値をth1と表し、小さい方の閾値をth0と表す。画素値が閾値th1以上の場合は出力値として最大値の15を出力し、画素値が閾値th0以下の時は最小値の0を出力する。入力値が閾値th0より大きく閾値th1未満である場合は、閾値th0から閾値th1までを16段階に分けて量子化した値を出力する。具体的には(画素値−閾値th0)/8の小数点以下を切り捨てた値を出力する。このような閾値マトリクスを用いてディザ処理することで、256値(8ビット)の画素値からなる入力画像を0から15までの16値の量子化値からなる出力画像を得る。また、閾値マトリクスの閾値のビット数を変更することで、N値の入力画像に対して適用可能である。なおステップS301とステップS302は、互いに依存関係を持たない処理であるため、逐次的に処理する場合にも、その処理を実行する順番については考慮しなくてよい。
ステップS304において目標値算出部202は、処理対象領域に含まれる画素の画素値の平均値を算出する。次に、ステップS305において目標値算出部202は、算出した平均値とステップS302において取得した閾値群とを用いてディザ処理を実行する。ステップS304において算出した処理対象領域における画素値の平均値は一つであるのに対し、取得した閾値群は4画素×4画素の閾値の組を有する。ステップS304におけるディザ処理では、1つの平均値を閾値群の全ての閾値と比較して、処理対象領域に含まれる画素分の出力値を算出する。これにより、処理対象領域の階調数を256値から16値に低減する量子化処理を行う。次にステップS307において、ステップS305における処理対象領域の量子化結果の総和を算出して、処理対象領域の目標値として出力する。
ステップS306において指標値算出部203は、ステップS304にて算出した目標値に基づいて出力値を決定するための指標となる指標値を算出する。この処理はステップS304、ステップS305、ステップS307の一連の処理と並行して実行が可能である。本実施形態では、指標値は、処理対象領域における画素に対して、“画素値−閾値”を用いるとする。従って各画素2つの指標値を算出されることになる。指標値算出部203は、得られた指標値を出力値決定部204へ出力する。
ステップS308において出力値決定部204は、処理対象領域における指標値を参照しながら、処理対象領域における出力値の合計が、ステップS304で算出した目標値と一致するように、処理対象領域における各画素の出力値を決定する。出力画素値としては0から15までの16値を出力する。ステップS208における処理の詳細は後述する。ステップS309において、全画素に対する処理が完了したかどうかを判定する。未処理の領域があればステップS300およびステップS301に戻り、全画素の処理が完了すれば処理を終了する。
ステップS308における出力値決定部204が実行する処理の動作を、図6に示すフローチャートに従って具体的に説明する。このフローチャートでは、処理対象領域における指標値が最大の画素位置に、安定したドットを形成できる所定の出力値を設定し、残りの画素位置に対しては、それぞれの画素位置の指標値に応じた出力値になるように各画素の出力値を決定していく。このようにすることで、処理対象領域において所定のパルス幅で安定したドットが形成され、安定したドットを中心に周囲の小さなパルス幅のドットも安定して形成することが出来る。安定したドットを形成できる所定量としては予め決めておけばよく、以下では例として、指標値が最大の画素位置には16値の出力値の最大値である15を設定するものとして説明する。
まずステップS700において出力値決定部204は、処理対象領域における各画素の出力値を初期化する。即ち、4画素×4画素分の出力値を0にセットする。初期化が終了したらステップS701へ移る。次に、ステップS701において出力値決定部204は、処理対象領域における16画素の指標値を参照して、指標値が最大の画素位置を探す。最大の指標値が複数ある場合は、その中で閾値が最も小さい画素位置を探す。画素位置を得た後、ステップS702へ移る。
ステップS702において出力値決定部204は、処理対象領域の目標値と出力値の最大値(=15)とを比較する。目標値が最大値以上の場合、ステップS703へ移る。一方、最大値未満の場合、ステップS704へ移る。ステップS703において出力値決定部204は、ステップS701において選んだ画素位置の出力値を、出力値の最大値である15に決定し、目標値から15を減算して新たな目標値を算出する。さらに、ステップS701において選んだ画素位置の指標値から255を減算する。255を減算する理由は、指標値を小さくすることでこの画素位置が再び選択されることのないようにするためである。当然、その目的を達せられるのであれば、この画素位置を記憶しておくことで再度の選択を防ぐ方式にしてもよい。ステップS703での処理を終えるとステップS705に移る。
ステップS704において出力値決定部204は、ステップS701において選んだ画素位置の出力値として、処理対象領域の目標値(15以下の値)を決定し、処理対象領域の目標値を0に更新する。ステップS705へ移る。ステップS703あるいはステップS704までの操作により、指標値が最大の画素位置の出力値を最大(安定したドットに対応する値)にすることが出来る。
ステップS705では、目標値が0より大きいかを判定する。目標値が0より大きい場合、ステップS706へ移る。一方、目標値が0の場合、出力値決定部204は全ての画素を分配し終えたとして処理を終了する。ステップS706では、ステップS702と同じ動作を行う。即ち、指標値を参照して指標値が最大の画素位置を探す。最大の指標値が複数ある場合は、その中で閾値が最も小さい画素位置を探す。画素位置を得た後、ステップS707へ移る。
ステップS707では、ステップS706で得た画素位置の現時点での出力値を調べ、出力値が15未満かどうかを判定する。出力値が15未満の場合、ステップS708へ移る。一方、出力値が15の場合、ステップS709へ移る。
ステップS708では、選んだ画素位置の出力値を1増やし、目標値を1減らす。そして、その画素位置の指標値から17を減算して、新たな指標値とする。ここで17を減算する根拠を説明する。出力値は0から15までの16値であり、最大値の15が入力された画素値の最大値255に相当すると考えると、255÷15=17となり、出力画素値の1は指標値の17に換算できるためである。ステップS708での処理を終えると、ステップS705へ移る。ステップS709は、既に出力値が上限の15に達しているという状態であり、この画素が再び選択されることのないようにするために、指標値から255を減算する。あるいは、ステップS703での説明と同様に画素位置を記憶しておき、再度の選択を防ぐという方法にしてもよい。ステップS709での処理を終えると、ステップS705へ移る。
以上の操作を行うことで、目標値が0になるまで処理対象領域における各画素の出力値の合計が増え続け、目標値が0になったところで最終的な各画素の出力値が確定する。以上のような処理の効果について説明する。電子写真の場合、最終的に生成した各画素の出力値に基づいて、レーザーのパルス幅が決定される。従って、各画素の出力値は、レーザーのパルス幅とみなすことが出来る。電子写真においては、狭いパルス幅で生成したドットは安定して生成するのが難しく、画像の粒状性などに悪影響を及ぼす場合がある。第1の実施形態では、指標値の最大の部分に広いパルス幅でドットを生成することでドットの安定性を確保し、その周囲に入力画素値に応じたドットを生成することで、入力画像の階調性を維持するハーフトーンを可能とした。さらに、第1の実施形態では、最大値を出力値とする画素の位置を、各画素の画素値と対応する閾値とから算出される画素毎に指標値に基づいて決定した。これにより、画素値の大きい画素に安定したドットを形成するための出力値を分配しやすくなる。その結果、入力された画像のエッジや高周波成分などの特徴を維持したまま細部を十分に表現した高画質なハーフトーン画像データに変換することができる。
<第2の実施形態>
第1の実施形態では、出力値決定部204において指標値が最大の画素位置に最大の出力画素値を設定していた。第2の実施形態では、処理対象領域において指標値の大きさが二番目以降の画素位置にも、最大の出力値を決定することで、より安定性を高める方式について説明する。第1の実施形態と同様の構成については、同じ符号を用いて説明し、詳細な説明を省略する。第2の実施形態では、図2における出力値決定部204が実行する処理の動作のみが、第1の実施形態と異なる。
第1の実施形態では、出力値決定部204において指標値が最大の画素位置に最大の出力画素値を設定していた。第2の実施形態では、処理対象領域において指標値の大きさが二番目以降の画素位置にも、最大の出力値を決定することで、より安定性を高める方式について説明する。第1の実施形態と同様の構成については、同じ符号を用いて説明し、詳細な説明を省略する。第2の実施形態では、図2における出力値決定部204が実行する処理の動作のみが、第1の実施形態と異なる。
第2の実施形態に適用可能な出力値決定部204が実行する処理の動作を示すフローチャートを図7に示す。説明のために、以降では最大の出力値を決定する画素の数を、最大値出力数として説明する。即ち、2番目の大きさの指標値を持つ画素位置まで最大の出力値を設定する場合は、最大値出力数は2であるとする。
ステップS800において、ステップS700における処理対象領域の出力値の初期化に加え、最大値を出力値として決定した回数を示す変数tを0に初期化する。初期化が終了したらステップS801へ移る。ステップS801において、変数tが、予め設定された最大値出力数よりも小さいかどうかを判定する。小さい場合はステップS701へ移る。ステップS701からステップS703とステップS704までに至る処理は第1の実施形態と同様であり、それらの処理で最大の出力画素値を決定する動作を終えた後、ステップS802へ移る。ステップS802では変数tを1だけ増やし、ステップS801へ移る。ステップS801において、変数tが最大値出力数以上である場合は、指標値の大きさが最大値出力数番目までの画素位置まで最大の出力画素値が決定されたと判断し、ステップS705へ移る。
以上の動作により、第2の実施形態によれば、指標値の大きさが1番大きい画素位置のみならず、2番目以降の画素位置にも最大の出力値を設定することが出来る。これによって広いパルス幅を持つ画素が増えることとなりドットの安定性を高めることが出来る。
<第3の実施形態>
第2の実施形態では、出力値決定部204が指標値の大きい複数個の画素位置に最大出力値を決定した後に、残りの画素位置について出力値を1ずつ増やしていくことで出力画素値を分配していた。第3の実施形態では、複数の画素位置に最大出力値を決定した後、残りの画素位置に対して出力画素値を1ずつではなく複数単位ずつ分配していく方式を説明する。これにより、出力値がよりまとまって分配されることとなり安定性が向上する。第2実施形態と異なる出力値決定部204が実行する処理の動作のみを説明する。第3の実施形態に適用可能な出力値決定部204が実行する処理の動作を示すフローチャートを、図8に示す。図8において、図7に示したフローチャートと同じ動作をする部分については同じ符号を付した。従って、実施例3では図7と異なる動作をする部分についてのみ説明する。説明のために、以降では出力画素値分配時に一度に分配する画素数を分配画素数と呼んで説明する。
第2の実施形態では、出力値決定部204が指標値の大きい複数個の画素位置に最大出力値を決定した後に、残りの画素位置について出力値を1ずつ増やしていくことで出力画素値を分配していた。第3の実施形態では、複数の画素位置に最大出力値を決定した後、残りの画素位置に対して出力画素値を1ずつではなく複数単位ずつ分配していく方式を説明する。これにより、出力値がよりまとまって分配されることとなり安定性が向上する。第2実施形態と異なる出力値決定部204が実行する処理の動作のみを説明する。第3の実施形態に適用可能な出力値決定部204が実行する処理の動作を示すフローチャートを、図8に示す。図8において、図7に示したフローチャートと同じ動作をする部分については同じ符号を付した。従って、実施例3では図7と異なる動作をする部分についてのみ説明する。説明のために、以降では出力画素値分配時に一度に分配する画素数を分配画素数と呼んで説明する。
ステップS900では、処理対象領域における出力値の初期化と最大値を出力値として決定した回数を示す変数tの0への初期化に加え、出力値を複数単位ずつ分配する処理の回数を示す変数sを0に初期化する。初期化が終了したらステップS801へ移り、その後実施例2と同様にステップS706の最大指標値探索までを行う。そして、ステップS901へ移る。ステップS901では、変数sと予め設定された分配画素数を比較し、変数sが分配画素数未満であればステップS902へ移る。
ステップS902では、ステップS706で得た画素位置の現時点での出力値を参照し、出力値が15未満かどうかと目標値が0より大きいかどうかを判定する。出力値が15未満で、且つ、目標値が0より大きい場合、ステップS708へ移る。一方、それ以外の場合、ステップS709へ移る。ステップS708とステップS709の処理後はステップS903へ移る。
ステップS903では変数sを1だけ増やし、ステップS901へ移る。ステップS901で、変数sが分配画素数以上である場合は、分配画素数分のドットを分配し終えたと判断し、ステップS705へ移る。以上の動作により、第3の実施形態によれば、指標値が最大の画素位置へ最大出力値を決定した後、出力画素値を複数単位ずつ分配することにより広いパルス幅を持つ画素が増えることとなり、ドットの安定性が向上する。
なお、第3の実施形態において加えた、残りの画素位置に対して出力画素値を複数単位ずつ分配する処理は、指標値の大きさが最大以外の画素位置にも最大出力値を決定する処理とは互いに独立している。従って、それらのいずれか一方の処理のみを加えるということができ、第3実施形態で加えた処理のみを第1の実施形態に加えるということも可能である。
なお、第3の実施形態において加えた、残りの画素位置に対して出力画素値を複数単位ずつ分配する処理は、指標値の大きさが最大以外の画素位置にも最大出力値を決定する処理とは互いに独立している。従って、それらのいずれか一方の処理のみを加えるということができ、第3実施形態で加えた処理のみを第1の実施形態に加えるということも可能である。
<第4の実施形態>
前述の実施形態では、各画素の指標値を参照しながら出力値を分配していくという方式について説明した。第4実施形態では、指標値に加えて周囲画素を参照して画素値を分配する方法について説明する。周囲画素を参照することにより、より安定な画素分配を実現することが可能となる。第4の実施形態では、出力値決定部204の動作のみが異なり、他の構成要素の動作は第1の実施形態と同じである。第4実施形態に適用可能な出力値決定部204の処理の動作を示すフローチャートを図9に示す。図9において、図6に示したフローチャートと同じ動作をする部分については同じ符号を付した。従って、第4の実施形態では、図6と異なる動作をする部分についてのみ説明する。
前述の実施形態では、各画素の指標値を参照しながら出力値を分配していくという方式について説明した。第4実施形態では、指標値に加えて周囲画素を参照して画素値を分配する方法について説明する。周囲画素を参照することにより、より安定な画素分配を実現することが可能となる。第4の実施形態では、出力値決定部204の動作のみが異なり、他の構成要素の動作は第1の実施形態と同じである。第4実施形態に適用可能な出力値決定部204の処理の動作を示すフローチャートを図9に示す。図9において、図6に示したフローチャートと同じ動作をする部分については同じ符号を付した。従って、第4の実施形態では、図6と異なる動作をする部分についてのみ説明する。
まず、ステップS700からステップS706までの処理は第1の実施形態と同じである。ステップS706において最大指標値の画素位置を得たら、ステップS1001へ移る。ステップS1001において、ステップS706で得た画素位置に隣接する画素位置(以降、隣接画素位置とする)の出力画素値を参照し、隣接画素位置の出力値が15未満であるかどうかを判定する。隣接画素位置としては上下左右の4か所を参照する。隣接画素位置の4つの出力値が全て15未満であれば、ステップS1002へ移る。ステップS1002からステップS1004で行われる処理は、それぞれステップS702からステップS704で行われる処理と同じである。ステップS1001からステップS1003あるいはステップS1004までの処理を通じて、隣接画素位置に最大出力値の画素が存在しない場合、着目画素の画素位置の画素値を最大出力値にすることを表している。ステップS1003あるいはステップS1004での処理が終了したら、ステップS705へ移る。ステップS1001の処理において、隣接画素位置の4つの出力画素値のうち少なくとも1つが15以上であれば、ステップS707へ移る。
以上の動作により、隣接画素位置に安定したドット形成ができる大きさの出力値がない場合、その画素位置の出力値は最大になる。前述したように隣接画素に小さい出力画素値しかない孤立した画素は不安定になりやすい傾向がある。そこでそのような画素位置に大きな出力値を決定することで、出力画像の安定性を高めることができ、さらに隣接画素を含む周囲の画素の安定性も高めることが可能となる。
<第5の実施形態>
前述の実施形態では、入力された画像に対して、一様に処理する方法について説明した。第5の実施形態では、入力画像の特徴に応じて出力値の決定方法を制御する構成について説明する。図10は、第5の実施形態に適用可能な画像処理部106の構成を示すブロック図である。図10と図2との相違点は、判定部1101が増えた点、出力値決定部1104が出力値決定部204と異なる動作をする点である。それ以外の構成要素については図2の構成要素と動作と同じであり、それらについては図2と同じ符号を付した。以降では新たに加えた判定部1101と動作の異なる出力値決定部1104についてのみ説明する。なお、ここでは出力値決定部1104は第2の実施形態に示したような最大値出力数をもとに出力画素値を決定する方式で動作するものとして説明する。
前述の実施形態では、入力された画像に対して、一様に処理する方法について説明した。第5の実施形態では、入力画像の特徴に応じて出力値の決定方法を制御する構成について説明する。図10は、第5の実施形態に適用可能な画像処理部106の構成を示すブロック図である。図10と図2との相違点は、判定部1101が増えた点、出力値決定部1104が出力値決定部204と異なる動作をする点である。それ以外の構成要素については図2の構成要素と動作と同じであり、それらについては図2と同じ符号を付した。以降では新たに加えた判定部1101と動作の異なる出力値決定部1104についてのみ説明する。なお、ここでは出力値決定部1104は第2の実施形態に示したような最大値出力数をもとに出力画素値を決定する方式で動作するものとして説明する。
判定部1101は、画像における所定のブロックごとに、平坦とみなせる領域かどうかを判定する。平坦な領域の判定方法は種々あるが一例を挙げると、ブロックにおけるダイナミックレンジを用いる方法が挙げられる。4画素×4画素のブロックの最大値と最小値の差分値をダイナミックレンジとして算出し、ダイナミックレンジに応じた判定値を出力する。もし、ダイナミックレンジが所定の閾値よりも小さければ平坦な画像であると判定して、複数の画素に安定したドット形成のできる出力値を決定するため、出力値決定部1104に出力する判定値は大きい値(第1の判定値)を出力する。一方、ダイナミックレンジが所定の閾値以上である場合、処理対象領域において1つの画素にのみ大きい値の出力値を決定するために、判定値として“1”(第2の判定値)を出力する。出力値決定部1104は判定部からの判定結果(判定値)を受け取ると、受け取った判定値を最大値出力数として設定し、図7のフローチャートに従って動作する。
以上の動作により、入力画像が平坦な画像な場合は大きな出力値を出すことでドットの安定性を重視したハーフトーン画像データに変換なされる。一方、入力画像のダイナミックレンジの広い高解像度の画像の場合は、細部の再現を重視したハーフトーン画像データに変換される。従って、入力画像の特性に応じた良好なハーフトーン画像データに変換することができる。
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
200 閾値群取得部
201 画素群取得部
202 目標値算出部
203 指標値算出部
204 出力値決定部
201 画素群取得部
202 目標値算出部
203 指標値算出部
204 出力値決定部
Claims (10)
- 入力画像をハーフトーン画像に変換する画像処理装置であって、入力画像における処理対象領域における出力値の合計の目標値を算出する目標値算出手段と、
前記処理対象領域における各画素の画素値と、前記処理対象領域に対応する各閾値とに基づいて、前記処理対象領域における各画素の指標値を算出する指標値算出手段と、
前記処理対象領域における各画素の出力値の合計が、前記目標値となるように前記処理対象領域における各画素の出力値を決定する出力値決定手段とを有し、
前記出力値決定手段は、前記処理対象領域における各画素の指標値に基づいて、出力値の最大値を出力値とする画素の位置を決定することを特徴とする画像処理装置。 - 前記出力値決定手段は、前記目標値が前記最大値未満の場合は、前記処理対象領域における画素には、前記出力値の最大値を決定せず、前記目標値が前記最大値以上の場合は、前記処理対象領域における少なくとも1つの画素に、前記出力値の最大値を、出力値をして決定することを特徴とする請求項1に記載の画像処理装置。
- 前記出力値決定手段は、前記処理対象領域において、前記指標値が最大となる画素の出力値として、前記出力値の最大値を決定することを特徴とする請求項1または2に記載の画像処理装置。
- 前記出力値決定手段は、前記処理対象領域において指標値が最大の画素の出力値として、前記出力値の最大値を決定して、前記処理対象領域における他の画素に対しては、前記指標値の大きい順に目標値まで出力値を順に分配することにより、前記処理対象領域における各画素の出力値を決定することを特徴とする請求項1乃至3のいずれか一項に記載の画像処理装置。
- 前記出力値決定手段は、前記処理対象領域において、着目画素の周囲の出力値を参照し、出力値が所定の値以上の画素が周囲に存在しない場合、前記着目画素の出力値を所定の値にすることを特徴とする請求項1乃至4のいずれか一項に記載の画像処理装置。
- 前記目標値算出手段は、前記処理対象領域における各画素の画素値の平均値を、前記処理対象領域に対応する閾値群と比較することにより量子化した結果の総和を目標値として算出することを特徴とする請求項1乃至5のいずれか一項に記載の画像処理装置
- 前記指標値算出手段は、前記処理対象領域における各画素の画素値と対応する閾値との差分を、各画素の指標値として算出することを特徴とする請求項1乃至6のいずれか一項に記載の画像処理装置。
- さらに、前記処理対象領域が平坦な領域かどうかを判定する判定手段を有し、
前記出力値決定手段は、前記判定手段による判定結果に応じて、前記処理対象領域における各画素の決定する処理を制御することを特徴とする請求項1乃至7のいずれか一項に記載の画像処理装置。 - コンピュータに読み込ませ実行させることで、前記コンピュータを請求項1乃至6の何れか一項に記載された画像処理装置として機能させることを特徴とするコンピュータプログラム。
- 入力画像をハーフトーン画像に変換する画像処理方法であって、
入力画像における処理対象領域における出力値の合計の目標値を算出し、
前記処理対象領域における各画素の画素値と、前記処理対象領域に対応する各閾値とに基づいて、前記処理対象領域における各画素の指標値を算出し、
前記処理対象領域における各画素の指標値に基づいて、出力値の最大値を出力値とする画素の位置を決定し、前記処理対象領域における各画素の出力値の合計が、前記目標値となるように前記処理対象領域における各画素の出力値を決定することを特徴とする画像処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015234263A JP2017103562A (ja) | 2015-11-30 | 2015-11-30 | 画像処理装置およびその制御方法、プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015234263A JP2017103562A (ja) | 2015-11-30 | 2015-11-30 | 画像処理装置およびその制御方法、プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017103562A true JP2017103562A (ja) | 2017-06-08 |
Family
ID=59016923
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015234263A Pending JP2017103562A (ja) | 2015-11-30 | 2015-11-30 | 画像処理装置およびその制御方法、プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017103562A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019097051A (ja) * | 2017-11-24 | 2019-06-20 | キヤノン株式会社 | 画像処理装置及び画像処理方法 |
JP2020082694A (ja) * | 2018-11-30 | 2020-06-04 | キヤノン株式会社 | ディザマトリクスの生成装置、生成方法、当該ディザマトリクスを用いた画像処理装置、画像処理方法、及びプログラム |
WO2021090553A1 (ja) * | 2019-11-07 | 2021-05-14 | キヤノン株式会社 | 画像処理装置、画像処理方法及びプログラム |
-
2015
- 2015-11-30 JP JP2015234263A patent/JP2017103562A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019097051A (ja) * | 2017-11-24 | 2019-06-20 | キヤノン株式会社 | 画像処理装置及び画像処理方法 |
JP7000133B2 (ja) | 2017-11-24 | 2022-01-19 | キヤノン株式会社 | 画像処理装置及び画像処理方法 |
JP2020082694A (ja) * | 2018-11-30 | 2020-06-04 | キヤノン株式会社 | ディザマトリクスの生成装置、生成方法、当該ディザマトリクスを用いた画像処理装置、画像処理方法、及びプログラム |
JP7242272B2 (ja) | 2018-11-30 | 2023-03-20 | キヤノン株式会社 | ディザマトリクスの生成装置、生成方法、当該ディザマトリクスを用いた画像処理装置、画像処理方法、及びプログラム |
WO2021090553A1 (ja) * | 2019-11-07 | 2021-05-14 | キヤノン株式会社 | 画像処理装置、画像処理方法及びプログラム |
US11770491B2 (en) | 2019-11-07 | 2023-09-26 | Canon Kabushiki Kaisha | Image processing device, image processing method, and storage medium |
JP7391619B2 (ja) | 2019-11-07 | 2023-12-05 | キヤノン株式会社 | 画像処理装置、画像処理方法及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10534987B2 (en) | Image processing apparatus image processing method and program | |
US20170208211A1 (en) | Image processing apparatus, image processing method, and storage medium | |
US7009622B2 (en) | Image processing apparatus, image processing method, and image processing program | |
JP2017103562A (ja) | 画像処理装置およびその制御方法、プログラム | |
JP5013805B2 (ja) | プロセッサ読取可能記憶媒体 | |
KR102295127B1 (ko) | 복수-평면 랜덤 스크린들의 은닉 마르코프 모델 생성 | |
JP4412248B2 (ja) | 画像処理装置、画像処理方法、及び画像処理プログラム | |
US20180074431A1 (en) | Image processing apparatus, image forming apparatus and computer-readable medium | |
JP2007282013A (ja) | 画像処理装置、画像処理方法およびプログラム | |
JP2018129574A (ja) | 画像処理装置及び画像処理方法 | |
JP5678501B2 (ja) | 画像処理装置及び画像処理方法 | |
JP6276680B2 (ja) | 画像処理装置及び方法、プログラム、並びに印刷システム | |
JP2019009621A (ja) | 画像形成装置、その制御方法、及びプログラム | |
JP6190152B2 (ja) | 画像処理装置及び画像処理方法 | |
JP7000133B2 (ja) | 画像処理装置及び画像処理方法 | |
JP4457645B2 (ja) | 画像処理装置、画像処理方法およびプログラム | |
JP7257806B2 (ja) | 画像形成装置、生成装置、変換方法、並びに、生成方法 | |
JP6565711B2 (ja) | 画像処理装置、画像形成装置及び閾値マトリクスの整形方法 | |
JP5966295B2 (ja) | 画像処理装置及び画像形成装置 | |
JP6639076B2 (ja) | 画像処理装置、画像処理方法およびプログラム | |
JP2010141696A (ja) | 画像データの圧縮方法、圧縮装置および圧縮プログラム | |
JP2019110512A (ja) | 画像形成装置及び画像形成方法、プログラム | |
JP2019062577A (ja) | 画像処理装置、画像処理方法およびプログラム | |
JP2005341142A (ja) | 画像処理装置、画像処理方法、画像処理プログラムおよびそのプログラムを記録した記録媒体 | |
JP2009194660A (ja) | 画像処理装置 |