JP6632253B2 - 画像処理装置、画像処理方法およびプログラム - Google Patents

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

Info

Publication number
JP6632253B2
JP6632253B2 JP2015168291A JP2015168291A JP6632253B2 JP 6632253 B2 JP6632253 B2 JP 6632253B2 JP 2015168291 A JP2015168291 A JP 2015168291A JP 2015168291 A JP2015168291 A JP 2015168291A JP 6632253 B2 JP6632253 B2 JP 6632253B2
Authority
JP
Japan
Prior art keywords
value
pixel
threshold
output
predetermined area
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
JP2015168291A
Other languages
English (en)
Other versions
JP2017046242A (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 JP2015168291A priority Critical patent/JP6632253B2/ja
Publication of JP2017046242A publication Critical patent/JP2017046242A/ja
Application granted granted Critical
Publication of JP6632253B2 publication Critical patent/JP6632253B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Facsimile Image Signal Circuits (AREA)

Description

本発明は、画像データを構成する各画素の画素値を量子化するハーフトーン処理技術に関する。
コンピュータを用いて処理したデジタル画像データを印刷することが広く行われている。しかしながら、デジタルな画像データが表現する階調数に対して、一般に、印刷装置が表現可能な階調数の方が少ない。このため、デジタルな画像データの階調数を印刷装置が表現可能な階調数に変換するハーフトーン処理がなされる。
ハーフトーン処理のひとつとして、画像データを周期的に変動する閾値と比較することによって出力値を決定するスクリーン処理(組織的ディザ法)が知られている。閾値よりも大きい画素値の画素を黒画素にし、閾値よりも小さい画素値の画素を白画素として決定する。このようなスクリーン処理を施すことにより、画像データが表す濃淡を面積階調で表現したハーフトーン画像データを得られる。ハーフトーン画像データでは、再現される階調は単位面積あたりの黒画素の数によって決定される。従って、階調の変化が少ない平坦部においては、ハーフトーン画像データでは均等な間隔で同一形状のドット(網点とも言う)が形成され、良好な画像を得られる。一方、階調が大きく変化する細線の画像などは、細線の濃度や角度によって細線位置にドットが形成されず、細線の途切れや消失が発生してしまうことがある。 そこで特許文献1では、画像データにおける細線を検出し、細線の位置の閾値を変更することで、細線を構成するドットが形成されるように制御する方法が開示されている。また、特許文献2には、検出された細線の位置の閾値を一律に小さくすることで、ドットが形成される確率を高めることを記載している。
特開2012−157998号公報 特開平11−345327号公報
スクリーン処理に用いられる閾値マトリクスは、単位領域ごとに面積階調で濃淡を表現できるように設計されている。しかしながら特許文献1や特許文献2に記載された方法では、細線として検出された位置の閾値を一律に変更するため、細線を含む単位領域では階調性が崩れてしまう。また、入力画像と閾値マトリクスとが干渉することによりモアレが発生するという課題があった。
そこで本発明は、入力画像と閾値マトリクスとの干渉を防止しつつ細線の再現性を向上させ、良好なハーフトーン画像を得ることを目的とする。
上記課題を解決するために本発明に係る画像処理装置は、画像データを構成する各画素の画素値を量子化する画像処理装置であって、画像データにおける所定領域毎に、前記所定領域に含まれる各画素の画素値に基づいて、白画素を検出する検出手段と、閾値マトリクスを参照して、前記所定領域に含まれる各画素に割り当てられる閾値を取得する取得手段と、前記所定領域における白画素に割り当てられた閾値のうち、最小の値である第一の閾値を検出する第一の閾値検出手段と、前記所定領域における白画素以外の画素に割り当てられた閾値のうち最小の値である第二の閾値を検出する第二の閾値検出手段と、前記第一の閾値と前記第二の閾値とを比較し、比較の結果に応じて、前記第二の閾値を前記第一の閾値に置換する置換手段と、前記所定領域に含まれる各画素の画素値に基づいて、前記所定領域において目標とする出力値を出力目標値として算出する算出手段と、前記所定領域における画素について、当該画素の画素値が大きい、または、当該画素に割り当てられた閾値が小さいほど優先して出力値を分配するように優先順を出力する出力手段と、前記出力目標値に達するまで、前記優先順に従って前記所定領域に含まれる画素に対して出力値を分配する分配手段と、前記所定領域における各画素の最終出力値を決定する決定手段とを有し、前記決定手段は、前記所定領域において、前記第二の閾値を割り当てられた画素については、前記第二の閾値または前記第一の閾値を用いて子化された結果を最終出力値として決定し、前記第二の閾値を割り当てられた画素以外の画素については、前記分配手段による結果を最終出力値として決定することを特徴とする。
本発明によれば、入力画像と閾値マトリクスとの干渉を防止しつつ細線の再現性を向上させ、良好なハーフトーン画像を得ることが可能となる。
画像処理装置の構成を示すブロック図 画像処理装置における画像処理の流れを示すフローチャート図 画像処理装置の構成を示すブロック図 画像処理装置における画像処理の流れを示すフローチャート図 画像処理装置における画像処理の流れを示すフローチャート図 画像処理装置の構成を示すブロック図 画像処理装置における画像処理の流れを示すフローチャート図
以下、添付の図面を参照して、本発明を好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例にすぎず、本発明は図示された構成に限定されるものではない。
<第1実施形態>
図1は、本実施形態に適用可能な画像処理装置の詳細を示すブロック図である。第1実施形態における画像処理装置は、入力された画像データを、記録媒体に画像を形成するインクジェット方式の印刷装置が出力可能なハーフトーン画像データに変換する装置である。
画素値/閾値取得部102は、処理対象の画像データにおける所定領域に含まれる画素の画素値をデータ蓄積部101から取得する。また、データ蓄積部101に予め保持された閾値マトリクスのうち、所定領域に対応する位置の閾値それぞれを、データ蓄積部から取得する。なおデータ蓄積部101は、DRAM・SRAMであり、処理対象の画像データを一時的に保存したり、処理に必要な閾値マトリクスを保持したりしている。本実施形態において処理対象の画像データは、各画素0〜255いずれかの画素値を有する8bitのデータとする。閾値マトリクスは、値の異なる閾値が所望のドットパターンになるように配置されている。閾値マトリクスは、印刷装置の特性に応じて予め設計されている。本実施形態では、ブルーノイズマスクとして知られる閾値マトリクスを用いるとする。所定領域は、縦4画素×横4画素の領域とする。ブルーノイズマスクでは、分散性の高いドットパターンを出力できるように、0〜255の値の閾値が分散して配置されている。したがって一般にブルーノイズマスクでは、4画素×4画素の所定領域に対応する閾値群に、同じ値の閾値が含まれることはない。
白画素検出部103は、画素値/閾値取得部102により取得した所定領域について、所定領域の各画素の画素値に基づいて白画素の位置を検出する。ここでは画像データにおいて画素値0が白画素であることを示すため、所定領域において画素値が0である画素を検出する。白画素検出部103は、各画素について白画素かどうかを示す白画素情報を出力する。なお、白画素検出部103の代りに、RIP(Raster Image Processor)装置やプロセッサ等で生成された属性情報を使用しても良い。
第一閾値検出部104は、所定領域における白画素情報に基づいて、所定領域における白画素の画素位置に割り当てられた閾値群のうち、最小の閾値を検出する。第一閾値検出部104は、検出した最小閾値を、白画素最小閾値情報として出力する。
第二閾値検出部105は、所定領域における白画素情報に基づいて、所定領域における白画素以外の画素位置に割り当てられた閾値群のうち、最小の閾値を検出する。第二閾値検出部105は、検出した最小閾値を、白画素以外最小閾値として出力する。
出力目標値算出部108は、所定領域に含まれる各画素の画素値に基づいて、所定領域において出力する目標値を算出する。具体的には、所定領域の各画素の画素値を平均して平均画素値を算出する。算出した平均画素値を各画素の画素値に置き換えて、各画素位置に対応する閾値と比較することによりスクリーン処理を行う。平均画素値が閾値以上である画素については1を出力し、平均画素値が閾値未満である画素については0を出力する。出力目標値算出部108は、出力結果を合計してスクリーン処理した結果を集計し、前記所定領域内の出力目標値情報として出力する。本実施形態では、画素値を0または1に変換する2値化を例に説明している。画素値0はドットを吐出しないことを示し、画素値1はドットを吐出することを示す。従ってここで算出される出力目標値は、所定領域内に出力すべきドット(黒画素)の数に等しい。
出力分配順算出部109は、所定領域の各画素に対して出力値を分配する分配順を算出する。出力分配順算出部109はまず、所定領域の各画素について、画素値から対応する閾値を減算し、画素値と閾値とのの差分値を算出する。そして、算出した差分値を所定領域における各画素位置の評価値とし、この評価値をソート処理する。評価値は、画素値が大きい、または対応する閾値が小さいほど大きい値になる。出力分配順算出部109は、評価値を大きい値から順になるようにソート処理する。ソート処理した結果が出力分配順になる。出力分配順算出部109は、所定領域の出力分配順を出力分配情報として出力する。
閾値置換部106は、所定領域に対応する閾値群の一部を、他の値により置換する。
閾値置換部106は、所定領域における各画素の画素値、白画素最小閾値情報、白画素以外最小閾値情報、出力目標値情報および出力分配順情報に基づいて、閾値の置換をする。まず、所定領域において、白画素以外最小閾値と、白画素最小閾値と比較し、白画素以外最小閾値の方が大きい値である場合、白画素以外最小閾値を白画素最小閾値の値に置換する。また、白画素以外最小閾値の画素を除く所定領域における画素については、出力目標値と分配順を参照し閾値を所定の閾値に置換する。より具体的には、出力目標値に達するまで、分配順に従って各画素に出力値(本実施形態では1)を分配する。これにより黒画素を配置すべきと決定された画素位置の割り当てられた閾値を、0に置換する。閾値0は、黒画素を配置すべきと決定した画素位置を、後段の量子化部107により出力値1とするための閾値である。出力目標値に達すると、残りの出力値を分配しない画素に対して、割り当てられた閾値をドットが形成されない閾値最大値(本実施形態では255)に置換する。255は、画像データにおいて取り得る画素値の最大値である。ここでは、後段の量子化部107により出力値0とするために、取り得る画素値の最大値を閾値に置換する。
量子化部107は、所定領域における各画素の画素値と、閾値置換部106から出力される対応する閾値とを比較し、各画素の出力値を決定する。画素値が閾値未満の画素は、出力値として0が決定される。画素値が閾値以上である画素は、出力値として1が決定される。
本実施形態では、縦4画素×横4画素からなる所定領域ごとに黒画素数を決定している。所定領域において出力目標値は、画素値の平均と割り当てられた閾値とによって決まる。このとき、所定領域に低濃度の細線がある場合など平均値が小さい場合には、出力目標値が0とみなされ、細線の途切れにつながってしまう場合がある。そこで本実施形態における閾値置換部106は、所定領域における白画素以外最小閾値を、よりドットが形成される確率が高い白画素最小閾値に置換する。これにより、仮に出力目標値が0であっても、白画素以外最小閾値として検出された画素については、ドットが形成される確率が高い閾値を維持しているので、低濃度の細線を構成する画素の位置が黒画素として出力されやすくなる。このように本実施形態における画像処理装置は、所定領域における出力結果が出力目標値となるように黒画素を決定する処理だけではなく、所定領域において一部画素については画素値と閾値との比較により黒画素にするかどうかを決定する。これにより、出力目標値が0になってしまう場合であっても、黒画素が出力される確率が高くなり、細線の途切れが発生するのを低減することができる。
なお、図示していないが、第1実施形態における画像処理装置は、上記各部を実現するためのハードウェア構成を備えている。具体的には、アック主プログラムやデータを記憶するためのHDD(ハードディスクドライブ)や、ROM,RAM,さらにはプログラムを実行し各部を統括的に制御するCPUなどがある。
図2は、図1に示す画像処理装置における画素値/閾値取得部102、白画素検出部103、第一閾値検出部104、第二閾値検出部105、出力目標値算出部108、出力分配順算出部109、閾値置換部106が実行する画像処理のフローチャートである。一連の処理は、以下に示す手順を記述したコンピュータ実行可能なプログラムを、ROM等からRAM上に読みこんだ後、CPUによって該プログラムを実行することにより実施される。
ステップS201においてまず、白画素最小閾値と、白画素以外最小閾値を、閾値の最大値に初期化する。また、所定領域における処理画素位置を示す変数iを0に初期化する。ステップS202において画素値/閾値取得部102は、処理対象とする所定領域に含まれる画素のうち、処理対象とする注目画素の画素値を取得する。また、注目画素の画素位置を参照し、閾値マトリクスにおける対応する閾値を取得する。画素値/閾値取得部102は、注目画素の画素値および、注目画素に割り当てられた閾値を白画素検出部103に出力する。
ステップS203において白画素検出部103は、注目画素が白画素であるかを判定する。注目画素の画素値が0であれば白画素と判定し、ステップS204に進む。注目画素の画素値が0以外の値であれば白画素ではないと判定し、ステップS205へ進む。
注目画素が白画素である場合、ステップS204において第一閾値検出部104は、変数である白画素最小閾値が、ステップS202において取得した注目画素に割り当てられた閾値より大きいかどうかを判定する。注目画素に割り当てられた閾値より白画素最小閾値の方が大きい場合はステップS206へ進む。それ以外の場合はステップS208へ進む。ステップS206において第一閾値検出部104は、白画素最小閾値を、ステップS202において取得した注目画素に割り当てられた閾値の値に更新する。
注目画素が白画素ではない場合、ステップS205において第二閾値検出部105は、変数である白画素以外最小閾値が、ステップS202において取得した注目画素に割り当てられた閾値より大きいかどうかを判定する。注目画素に割り当てられた閾値よりも白画素以外最小閾値の方が大きい場合はステップS207へ進む。それ以外の場合はステップS208へ進む。ステップS207において第二閾値検出部105は、白画素以外最小閾値を、ステップS202において取得した注目画素に割り当てられた閾値の値に更新する。ステップS208において、所定領域に含まれる画素全てに対して処理したか判定する。処理が終了していない場合はステップS202へ、処理が終了している場合はステップS212へ進む。
ステップS209において画素値/閾値取得手段102は、所定領域に含まれるすべての画素の画素値を取得する。また、所定領域に対応する全ての閾値を取得する。画素値/閾値取得手段102は、取得した所定領域における各画素の画素値および割り当てられた閾値を、出力目標値算出部108および出力分配順算出部109に出力する。ステップS210において出力目標値算出部108は、所定領域における画素の画素値を平均して平均画素値を算出する。算出した平均画素値と、所定領域に対応する閾値群の各閾値を比較する。画素値の方が閾値以上の画素の数を集計し、出力目標値とする。本実施形態では、2値のハーフトーン画像データに変換する。従って縦4画素×横4画素の所定領域の出力目標値は、0〜16の範囲となる。ここでは出力目標値は、所定領域における画素のうち黒画素にすべき画素の数に相当する。
ステップS211において出力分配順算出部109は、所定領域における各画素について、出力目標値に達する分の出力値を分配する分配順を算出する。まず各画素の画素値と割り当てられた閾値との差分「画素値―閾値」を算出する。算出した差分値を評価値とし、評価値が大きい方から出力を分配するものとする。算出した分配順を配列変数rank[*]に格納する。本実施形態では、所定領域内には16画素含まれるので、出力分配順は1〜16となる。以上の通り、ステップS201〜ステップS211において、所定領域の白画素最小閾値、白画素以外最小閾値、出力目標値、出力分配順が算出される。
ステップS212において閾値置換部106は、所定領域に含まれる画素を所定の順に従って1つ選択し、注目画素とする。注目画素の画素値及び注目画素に割り当てられる閾値を取得する。ステップS213において閾値置換部106は、注目画素に対応する閾値が白画素以外最小閾値と同じであるか否かを判定する。なお前述の通り、所定領域内に同じ閾値は存在しないため、注目画素に対応する閾値が白画素以外最少閾値であるということは、注目画素が白画素ではなく、かつ白画素以外の画素の中でも最小閾値が割り当てられた画素であることを意味する。同じであればステップS214へ進み、同じでなければステップS216へ進む。ステップS213において注目画素が白画素以外最小閾値と同じ値であると判定された場合、ステップS214において、注目画素の閾値である白画素以外最小閾値と白画素最小閾値とを比較する。つまりここでは、所定領域において白画素に割り当てられた最小閾値と白画素以外に割り当てられた最小閾値との大きさを比較していることになる。注目画素の白画素以外最小閾値の方が大きい場合はステップS215へ進み、それ以外の場合はステップS216へ進む。
ステップS215では、注目画素の閾値を、閾値マトリクスの配置に従って割り当てられた白画素以外最小閾値から所定領域における白画素最小閾値の値に置換する。これにより注目画素に対応する閾値はより小さい値に更新される。ステップS216において閾値置換部106は、所定領域の出力目標値があらかじめ定められた所定値以上かを判定する。出力目標値の方が所定値より大きい場合はステップS217へ、それ以外の場合はステップS220へ進む。
ステップS217において閾値置換部106は、注目画素の出力分配順を示す変数配列rank[i]が出力目標値以下であるかを判定する。これは注目画素に出力目標値が分配されるかどうかを判定している。出力分配順が出力目標値以下の場合、注目画素は、出力値(ドット)を分配される画素であると判定し、ステップS218へ進む。注目画素の出力分配順が出力目標値より大きい場合は、注目画素は出力値(ドット)を分配されない(白画素として出力される)画素であると判定し、ステップS219へ進む。例えば、出力目標値が1である場合、注目画素の出力分配順の値が1(分配する優先順位が一番高い)場合は、注目画素に出力値1を分配する。一方、注目画素の出力分配順が2以上である場合には、出力目標値を超えて出力値を分配することはないので、出力値を分配しないようにする。
ステップS218において閾値置換部106は、注目画素に対応する閾値を0に置換する。量子化部107は、注目画素の画素値と閾値とを比較し、注目画素の画素値の方が大きければ注目画素の出力値を1として出力する。ステップS217において注目画素は出力値を分配する画素と判定されているので、注目画素には出力値(ドット)を分配するために、注目画素の閾値を最小の閾値(画素値の取り得る値の最小値)に書き換える。その結果、後続の量子化部107により、注目画素には出力値1が分配されることになる。
ステップS219において閾値置換部106は、注目画素に対応する閾値を255に置換する。前述の通り、後段の量子化部107は、注目画素の画素値と閾値とを比較し、注目画素の画素値が閾値以下であれば注目画素の出力値を0として出力する。ステップS217において注目画素には出力値を分配しないと判定している。そのため注目画素は出力値が0となるように、注目画素の閾値を最大の閾値(画素値の取り得る値の最大値に書き換える。その結果、後続の量子化部107により、注目画素の画素値は出力値0に変換されることになる。
ステップS220において閾値置換部106は、注目画素の画素値があらかじめ定められた所定値以上か否かを判定する。所定値以上の場合はステップS221へ進み、それ以外の場合はステップS217へ進む。ステップS221において閾値置換部106は、注目画素にドットが形成されるように注目画素の閾値を0に置換する。ステップS222において閾値置換部106は、注目画素に対応する閾値を、ドットが形成されないように255に置換する。
ステップS223において、所定領域における画素位置を示す変数iに1を加算する。ステップS224において、所定領域内の画素全てに対して処理したかを判定する。処理が終了していない場合はステップS212へ戻り、未処理の画素に対する処理を続ける。所定領域に含まれる画素全てに対して処理が完了すればステップS224に進み、未処理の所定領域があるか否かを判定する。未処理の所定領域があれば、ステップS212に戻り、全ての所定領域に対する処理が完了すれば、画像データに対する閾値置換部106による処理までは完了する。
本実施形態による処理について説明する。白画素は画素値が最小値(0)であるため、割り当てられる閾値がいかなる値であっても量子化部107による量子化の結果0が出力されることになる。そこで所定領域における非白画素の最小閾値が、白画素の最小閾値よりも小さい場合は、非白画素の最小閾値を白画素の最小閾値により置換する。その結果、閾値を置換された画素はより黒画素が出力されやすくなる。これにより所定領域で低濃度の細線が消失するのを抑制することができる。
なお所定領域に割り当てられた他の閾値を用いて非白画素の閾値を置換しているため、所定領域において黒画素が出力される確率は維持できる。また、所定領域において出力目標値に応じた出力値の分配処理をしている。この時、出力値を分配する優先順位は、各画素の画素値と割り当てられた閾値とに基づいて決めている。画素値が大きいほど、あるいは閾値が小さいほど優先順位は高くなりやすい。その結果画像データの特徴と、閾値マトリクスを設計した際の理想的なドットパターンの両方を考慮して出力値を分配することができる。これにより、画像データと閾値マトリクスとの干渉を防ぎ、モアレの発生を低減することができる。さらに、出力目標値が所定値以下であっても、画素値が所定値以上の画素を黒画素とする処理により所定濃度以上の細線・文字・孤立点パターン等が再現される。
本実施形態では、所定領域における各画素に割り当てられた閾値について、まず白画素以外最小閾値として検出された画素の閾値を決定する。白画素以外最小閾値に対応する画素は、そのまま割り当てられた閾値か白画素最小閾値が閾値となる。次に、出力目標値が所定値以下である場合、画素値が所定値以上の画素の閾値を0に決定する。そのあと、出力目標値に応じて出力値を分配するための閾値を決定する。従って、白画素以外最小閾値を決定する処理、出力目標値が所定値以下で入力画素値が所定値以上の画素を黒画素とする処理を優先した出力結果を得ることが出来る。
<第2実施形態>
第1実施形態では、所定領域における出力値の合計が出力目標値となるように分配するように、所定領域における一部の画素に割り当てられた閾値を0または最大閾値に置換した。第2実施形態では、所定領域における出力値の合計値が出力目標値となるように分配する処理については、閾値を設定により出力値を制御する処理を実行しない構成を示す。なお第1実施形態と同様の構成、処理については、同じ符号を付し、その詳細な説明を省略する。図3は、第2実施形態に適用可能な画像処理装置の詳細な構成を示すブロック図である。閾値置換部301は、所定領域における注目画素に割り当てられた閾値が、白画素以外最小閾値と同じ値である画素については、白画素最小閾値と白画素以外最小閾値を比較する。白画素最小閾値の方が白画素以外最小閾値よりも小さい(ドットが形成される確率が高い)場合、注目画素の閾値を白画素最小閾値に置換する。さらに、注目画素に対して閾値を置換したことを示す情報を、閾値置換情報として出力する。
量子化部302は、画像データを構成する各画素に対して、画素の画素値と対応する閾値とを比較することにより、各画素の画素値を量子化する。ただし、閾値置換部301において閾値置換された画素については、画素値/閾値取得部102から得られた画素値を、閾値置換部301から得られた置換後の閾値で量子化し、量子化値として出力する。出力算出部303は、所定領域毎に、出力分配順に従って優先順位が高い方から順に出力値を出力目標値に達するまで分配し、各画素の出力値として出力する。本実施形態では、8ビットの画素値を2値に変換する。出力値0は白画素(ドットを形成しない)を、出力値1は黒画素(ドットを形成する)ことを意味する。従って出力目標値は、所定領域に含まれる画素のうちドット数そのものとなる。例えば、出力目標値が5である場合には、出力分配順において優先度が高い画素から5画素の出力値を1とする。また、出力分配順において優先度が高い方から6画素以降の画素の出力値を0として出力する。
最終出力選択部304は、閾値置換部301から得られた閾値置換情報を用いて、所定領域毎に各画素について、量子化部302から得られた量子化値か、出力算出部302から得られた出力値の何れかを選択して、最終出力値として出力する。閾値置換情報が閾値置換されたことを示す画素については、量子化部302から得られた量子化値を最終出力値とする。閾値置換情報が閾値置換されなかったことを示す画素については、出力算出部303から得られる出力値を、最終出力値とする。第2実施形態では、8ビットの画像データを2値のハーフトーン画像データに変換するため、量子化部302から得られた量子化値と出力算出部303から得られる出力値は、共に1ビットである。よって、量子化部302から得られた量子化値と出力算出部303から得られた出力値をOR演算した値を最終出力値とする方法でも良い。
図4は、第2実施形態における画像処理装置が実行する処理のフローチャートである。ステップS201〜ステップS212は、第1実施形態と同様の処理であるので説明は省略する。ステップS401において閾値置換部301は、注目画素に割り当てられた閾値が白画素以外最小閾値と同じ値であるか否かを判定する。同じであればステップS402へ、同じでなければステップS412へ進む。
注目画素に割り当てられた閾値が白画素最小閾値と同じ値である場合、ステップS402において閾値置換部301は、注目画素に割り当てられた白画素以外最小閾値と白画素最小閾値とを比較する。注目画素の閾値の方が白画素最小閾値より大きい場合はステップS403へ、それ以外の場合はステップS412へ進む。ステップS403において閾値置換部301は、注目画素の閾値(白画素以外最小閾値)を、より小さい値である白画素最小閾値に置換する。また閾値置換情報を、閾値置換したことを示す状態にして出力する。ステップS404において量子化部302は、ステップS403において置換された閾値を用いて注目画素を量子化し、注目画素の量子化値を算出する。注目画素の画素値が置換された閾値以上であれば量子化値は1、それ以外の場合は、量子化値は0とする。
ステップS405において出力算出部303は、出力目標値があらかじめ定められた所定値以上か否かを判定する。出力目標値の方が大きい場合はステップS406へ、それ以外の場合はステップS407へ進む。ステップS406において出力算出部303は、注目画素の出力分配順を示す変数配列rank[i]が出力目標値以下であるか否かを判定する。注目画素の出力分配順が出力目標値以下の場合には、注目画素は出力値(ドット)を分配される画素であると判定し、ステップS408へ進む。ステップS408において出力算出部303は、注目画素の出力値を1とし、出力値を分配する。注目画素の出力分配順が出力目標値未満である場合は、ステップS409へ進み、ステップS409において出力値算出部303は注目画素の出力値を0とする。ステップS407において出力算出部303は、注目画素の画素値があらかじめ定められた所定値以上か否かを判定する。注目画素の画素値が所定値以上の場合はステップS410へ進み、それ以外の場合はステップS406へ進む。ステップS410において出力値算出部303は、注目画素に出力値に分配するため、出力値として0を与える。ステップS411において出力算出部303は、所定領域内の画素位置を示す変数iに1加算する。
ステップS412において最終出力算出部304は、閾値置換情報を参照し、注目画素が予め割り当てられた閾値を置換された画素であるか否かを判定する。また、量子化部302から出力される注目画素の量子化値が0かどうかを判定する。注目画素が閾値を置換された画素であり、かつ量子化値が0でない場合、ステップS413に進み、それ以外の場合はステップS414に進む。ステップS413において最終出力選択部304は、注目画素の最終出力値をステップS404において量子化部302が算出した量子化値とする。ステップS414において最終出力選択部304は、注目画素の最終出力値を出力算出部303が算出したステップS408、S409、S410のいずれかの出力値とする。
ステップS415において最終出力選択部304は、閾値を置換したか否かを示す情報を、置換していないことを示す状態に初期化する。ステップS416において画素値/閾値取得部102は、所定領域における画素全てに対して処理したかを判定し、処理が終了していない場合はステップS212へ戻る。以上の処理フローにより、第1実施形態と同様の処理結果を得ることが出来る。
<第3実施形態>
前述の実施形態では、所定領域における出力値の合計値が出力目標値となるように出力値を分配しても、最終的な総出力値が出力目標値を超える場合がある。これは所定領域における濃度を保存することよりも、所定領域における画像の形状(線など)を再現することを優先している。一方、出力目標値がある程度の大きさを持つ場合、言い換えると所定領域における濃度が濃い場合には、濃度を保存する(所定領域における総出力値を出力目標値とする)方が、良好な出力結果が得られる。
第3実施形態では、必ず所定領域における総出力値が出力目標値となるように各画素の出力値を決定する方法について説明する。なお、画像処理装置の構成については、第2実施形態で示した図3と同様であるため説明を省略する。図5は、第3実施形態における画像処理装置が実行する処理のフローチャートである。ただし、最終出力選択部304は、注目画素の最終出力値を決定するとともに、出力分配順を更新する処理を行う場合がある。この場合、最終出力選択部304は、更新した出力分配順を出力算出部303に入力することとする。ステップS201〜S214は、前述の実施形態と同じ処理であるので説明は省略する。また、ステップS401〜S414は、第2実施形態と同じであるので説明は省略する。
ステップS501において最終出力選択部304は、S211において算出された出力分配順を更新する。注目画素は、閾値が置換され、かつ、量子化値が0でない画素である。つまり所定領域においてドット(黒画素)を1つ分配したことになる。例えば、所定領域の出力目標値が5と算出されたとする。このとき出力分配順の上位5画素に出力値1を分配する。しかしながら、閾値が置換された白画素以外最小閾値の画素が上位5画素以内ではない場合、所定領域における最終出力値の総和が6になってしまう。そこで最終出力選択部304は、所定領域における出力分配順を更新する。具体的には、注目画素の出力分配順よりも順位が高い画素の出力分配順を、1つずつ下げる。こうすることで出力目標値が1以上であれば、所定領域における最終出力値の総和は、出力目標値と同じとなる。
ステップS502において最終出力選択部304は、所定領域に含まれる画素全てに対して処理したかを判定する。処理が終了していない場合はステップS212に戻る。ステップS503において閾値置換部301は、閾値を置換したか否かを示す情報を、未実施を示す状態に初期化する。
ステップSS504において画素値/閾値取得部102は、所定領域における注目画素の画素値と、注目画素に対応する閾値を取得する。ステップS405〜S411では、ステップS501で更新された出力分配順を用いて出力値算出を行う。処理の内容は、第2実施形態と同様である。ステップS505・S413・S414において、最終出力電卓部304は、ステップS404において算出された量子化値か、ステップS408・S409・S410のいずれかで算出された出力値のいずれかを、注目画素の最終出力値として選択する。処理の内容は、第2実施形態と同様である。ステップS506において最終出力算出部304は、所定領域に含まれる画素全てに対して処理したかを判定する。
以上の処理によって、所定領域における出力目標値が1以上の場合において、所定領域における総出力値が出力目標値と等しくなる。その結果、所定領域内の白画素以外最小閾値を一部置換することにより、細線の途切れや消失を抑制しつつ、所定領域内の出力値の合計値が出力目標値となり、良好な出力結果を得ることが出来る。
<第4実施形態>
第3実施形態では、出力目標値を分配する順番を更新し、所定領域内の出力目標値が1以上の場合において、所定領域内の総出力値が出力目標値と等しくなるようにしている。第4実施形態では、所定領域内において置換された閾値を用いて、所定領域内の出力値の合計値が出力目標値となるように出力値1を分配することで、同様の効果を得る。
図6は、第4実施形態に適用可能な画像処理装置の詳細な構成を示すブロック図である。データ蓄積部101、画素値/閾値取得部102、白画素検出部103、白画素最小閾値算出部104、白画素以外最小閾値算出部105は、第1実施形態と同じであるので説明は省略する。また、閾値置換部301、量子化部302、出力算出部303、最終出力選択部304は、第2形態と同じであるので説明は省略する。
出力目標値算出部601は、第1実施形態における出力目標値算出部108と処理内容は同じであるが、閾値置換部301によって割り当てられた閾値を置換された後の閾値を用いて、所定領域における出力目標値を算出する点が異なる。出力分配順算出部602は、第1実施形態における出力目標分配順算出部109と処理内容は同じである。閾値置換部301によって割り当てられた閾値を置換された後の閾値を用いて、所定領域における各画素の出力分配順を算出する点が異なる。
図7は、第4実施形態における画像処理装置が実行する処理のフローチャートである。ステップS201〜S208では、所定領域内の白画素の最小閾値と白画素以外の最小閾値を算出しており、第2実施形態と同じであるので説明は省略する。また、ステップS212も第2実施形態と同じであるが、ステップS701に進む点が第2実施形態とは異なる。ステップS701において閾値置換部301は、注目画素の閾値が白画素以外最小閾値と同じであるか否かを判定する。同じであればステップS702へ、同じでなければステップS704へ進む。
ステップS702において閾値置換部301は、注目画素の閾値(白画素以外最小閾値と同じ値)が白画素最小閾値より大きいか否かを判定する。注目画素の閾値の方が白画素最小閾値よりも大きい場合はステップS703へ、それ以外の場合はステップS704へ進む。ステップS703において閾値置換部301は、注目画素の閾値をより値の小さい白画素最小閾値に置換する。ステップS704において閾値置換部301、所定領域における画素全てに対して処理したかを判定する。処理が終了していない場合はステップS212へ戻り、そうでない場合はステップS705へ進む。
ステップS705において出力目標値算出部601は、所定領域に含まれる全画素の画素値と、対応する閾値を取得する。ここで出力目標値算出部601が取得する閾値は、ステップS212およびステップS701〜S704による閾値置換処理が実施された後の閾値となる。ステップS706において出力目標値算出部601は、所定領域における内の出力目標値を算出する。ステップS705において取得した各画素の画素値を平均して、所定領域の平均画素値を算出する。算出した平均画素値とステップS705において取得した閾値それぞれを用いてスクリーン処理し、平均画素値以下の閾値の数を集計した値を出力目標値とする。ステップS707において出力分配順算出部602は、所定領域内の総出力値が出力目標値に達するまで出力値1を分配する際の出力分配順を算出する。所定領域内の各画素において「画素値―閾値」を算出する。算出した差分値を評価値として、評価値が大きい方から出力を分配するものとする。算出した分配順を配列変数rank[*]に格納する。本実施形態では、出力分配順は1〜16となる。
ステップS708において画素値/閾値取得部102は、所定領域における注目画素の画素値及び所定領域に対応する閾値を取得する。ステップS709において量子化部302は、注目画素の画素値を対応する閾値を用いて量子化し、注目画素の量子化値を算出する。画素値が対応する閾値以上であれば量子化値は1、それ以外の量子化値は0とする。ここで用いられる閾値は、閾値置換部301によって閾値を置換された後の閾値である。
ステップS710において出力算出部303は、所定領域の出力目標値があらかじめ定められた所定値以上か否かを判定する。出力目標値の方が大きい場合はステップS711へ、それ以外の場合はステップS712へ進む。ステップS711において出力算出部303は、注目画素の出力分配順を示す変数配列rank[i]が、出力目標値以下であるか否かを判定する。出力目標値以下の場合には、注目画素は出力値1(ドット)を分配する画素であると判定し、ステップS713へ進む。ステップS713において注目画素に出力値1を分配する。それ以外の場合はステップS714へ進み、注目画素に出力値を分配せず、出力値0とする。
ステップS712において出力算出部303は、注目画素の画素値があらかじめ定められた所定値以上か否かを判定する。所定値以上の場合はステップS715へ進み、それ以外の場合はステップS711へ進み、ステップS715にて出力値に分配する。ステップS716において最終出力選択部304は、注目画素について、ステップS709において量子化値が0でない場合はステップS717に進み、それ以外はステップS718に進む。ステップS717においては、注目画素の最終出力値をステップS709で算出した量子化値とする。ステップS718では、注目画素の最終出力値をS713、S714、S715のいずれかで算出した出力値とする。ステップS719において最終出力選択部304は、所定領域内の画素位置を示す変数iに1加算する。ステップS720では、所定領域内の画素全てに対して処理したかを判定する。処理が終了していない場合はS708へ戻り、そうでない場合は処理を終了する。
以上のように、所定領域内の白画素以外最小閾値を必要に応じて白画素最小閾値に置換した後、所定領域内の出力値の合計が出力目標値となるように出力値を分配する処理を行う。これにより第3実施形態と同様の効果を得る。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
103 白画素検出部
104 第一閾値検出部
105 第二閾値検出部
106 閾値置換部
107 量子化部
108 出力目標値算出部
109 出力分配順算出部

Claims (7)

  1. 画像データを構成する各画素の画素値を量子化する画像処理装置であって、
    画像データにおける所定領域毎に、前記所定領域に含まれる各画素の画素値に基づいて、白画素を検出する検出手段と、
    閾値マトリクスを参照して、前記所定領域に含まれる各画素に割り当てられる閾値を取得する取得手段と、
    前記所定領域における白画素に割り当てられた閾値のうち、最小の値である第一の閾値を検出する第一の閾値検出手段と、
    前記所定領域における白画素以外の画素に割り当てられた閾値のうち最小の値である第二の閾値を検出する第二の閾値検出手段と、
    前記第一の閾値と前記第二の閾値とを比較し、比較の結果に応じて、前記第二の閾値を前記第一の閾値に置換する置換手段と、
    前記所定領域に含まれる各画素の画素値に基づいて、前記所定領域において目標とする出力値を出力目標値として算出する算出手段と、
    前記所定領域における画素について、当該画素の画素値が大きい、または、当該画素に割り当てられた閾値が小さいほど優先して出力値を分配するように優先順を出力する出力手段と、
    前記出力目標値に達するまで、前記優先順に従って前記所定領域に含まれる画素に対して出力値を分配する分配手段と、
    前記所定領域における各画素の最終出力値を決定する決定手段とを有し、
    前記決定手段は、前記所定領域において、前記第二の閾値を割り当てられた画素については、前記第二の閾値または前記第一の閾値を用いて子化された結果を最終出力値として決定し、前記第二の閾値を割り当てられた画素以外の画素については、前記分配手段による結果を最終出力値として決定することを特徴とする画像処理装置。
  2. 前記置換手段は、前記分配手段による処理の結果に基づいて、前記所定領域に含まれる各画素の閾値に割り当てられる閾値を置換ることを特徴とする請求項に記載の画像処理装置。
  3. 前記置換手段は、前記所定領域に含まれる各画素のうち、前記第二の閾値が割り当てられた画素には、前記第二の閾値または前記第一の閾値を割り当て、前記出力目標値が第一の所定値未満である場合、前記所定領域に含まれる画素のうち、第二の所定値以上の画素値を有する画素には、閾値0を割り当て、前記出力目標値が第一の所定値以上である場合、前記出力目標値の分の画素に閾値0を割り当て、それ以外の画素には閾値の最大値を割り当てるように置換することを特徴とする請求項に記載の画像処理装置。
  4. 前記閾値マトリクスは、ブルーノイズマスクであることを特徴とする請求項1乃至のいずれか一項に記載の画像処理装置。
  5. 前記置換手段は、前記第二の閾値が前記第一の閾値以上である場合、前記第二の閾値を前記第一の閾値により置換することを特徴とする請求項1乃至のいずれか一項に記載の画像処理装置。
  6. コンピュータに読み込ませ実行させることで、前記コンピュータを請求項1乃至の何れか一項に記載された画像処理装置として機能させることを特徴とするコンピュータプログラム。
  7. 画像データを構成する各画素の画素値を量子化する画像処理方法であって、
    画像データにおける所定領域毎に、前記所定領域に含まれる各画素の画素値に基づいて、白画素を検出し、
    閾値マトリクスを参照して、前記所定領域に含まれる各画素に割り当てられる閾値を取得し、
    前記所定領域における白画素に割り当てられた閾値のうち、最小の値である第一の閾値を検出し、
    前記所定領域における白画素以外の画素に割り当てられた閾値のうち最小の値である第二の閾値を検出し、
    前記第一の閾値と前記第二の閾値とを比較し、比較の結果に応じて、前記第二の閾値を前記第一の閾値に置換し、
    前記所定領域に含まれる各画素の画素値に基づいて、前記所定領域において目標とする出力値を出力目標値として算出し、
    前記所定領域における画素について、当該画素の画素値が大きい、または、当該画素に割り当てられた閾値が小さいほど優先して出力値を分配するように優先順を出力し、
    前記出力目標値に達するまで、前記優先順に従って前記所定領域に含まれる画素に対して出力値を分配し、
    前記所定領域における各画素の最終出力値を決定し、
    前記決定は、前記所定領域において、前記第二の閾値を割り当てられた画素については、前記第二の閾値または前記第一の閾値を用いて量子化された結果を最終出力値として決定し、前記第二の閾値を割り当てられた画素以外の画素については、前記分配よる結果を最終出力値として決定することを特徴とする画像処理方法。
JP2015168291A 2015-08-27 2015-08-27 画像処理装置、画像処理方法およびプログラム Active JP6632253B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015168291A JP6632253B2 (ja) 2015-08-27 2015-08-27 画像処理装置、画像処理方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015168291A JP6632253B2 (ja) 2015-08-27 2015-08-27 画像処理装置、画像処理方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2017046242A JP2017046242A (ja) 2017-03-02
JP6632253B2 true JP6632253B2 (ja) 2020-01-22

Family

ID=58212250

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015168291A Active JP6632253B2 (ja) 2015-08-27 2015-08-27 画像処理装置、画像処理方法およびプログラム

Country Status (1)

Country Link
JP (1) JP6632253B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7250508B2 (ja) * 2018-12-21 2023-04-03 キヤノン株式会社 画像処理装置、画像処理方法、及びプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4468826B2 (ja) * 2005-01-07 2010-05-26 株式会社リコー 画像処理装置および画像処理方法
JP2007208786A (ja) * 2006-02-03 2007-08-16 Seiko Epson Corp ディザマトリックスの生成
JP2012157998A (ja) * 2011-01-31 2012-08-23 Seiko Epson Corp 印刷システムおよび印刷方法

Also Published As

Publication number Publication date
JP2017046242A (ja) 2017-03-02

Similar Documents

Publication Publication Date Title
JP6472336B2 (ja) 画像処理装置、画像処理方法およびプログラム
US9749496B2 (en) Performing halftone processing using intra-cell sum value differences applied so as to correct boundary pixels
JP5436624B2 (ja) 画像処理装置およびその制御方法
JP2006065834A (ja) 画像処理装置および画像処理方法
JP6632253B2 (ja) 画像処理装置、画像処理方法およびプログラム
JP3648142B2 (ja) ディジタルコピー装置の画像の改良方法および装置
US8134749B2 (en) Multi-bit-depth error diffusion for the reproduction of color or monochrome images
CN110475041B (zh) 一种灰度图像处理方法、装置及打印机
JP2815157B2 (ja) 画像処理装置
US20160344895A1 (en) Image processing using content-based weighted dithering
JP7391619B2 (ja) 画像処理装置、画像処理方法及びプログラム
JP2012182651A (ja) 画像処理装置及びその制御方法
JP2007208639A (ja) 画像処理方法、画像処理装置、画像記録装置、プログラムおよび記録媒体
JP2001109889A (ja) 画像処理装置
JP5915410B2 (ja) 画像処理装置及びプログラム
JP2003116014A (ja) 画像処理装置及び方法及びコンピュータプログラム及びコンピュータ可読記憶媒体
JP4589887B2 (ja) 画像処理装置
JP2019062577A (ja) 画像処理装置、画像処理方法およびプログラム
JP2020102767A (ja) 画像処理装置、画像処理方法、及びプログラム
JP7000133B2 (ja) 画像処理装置及び画像処理方法
JP6226717B2 (ja) 画像処理装置及び画像処理方法
JP4235852B2 (ja) 画像データ変換装置及び画像データ変換方法
JP2008078830A (ja) 画像処理装置及び画像処理方法
JP6547738B2 (ja) 画像処理装置、ハーフトーンスクリーン生成装置、ハーフトーンスクリーン生成方法、及びハーフトーンスクリーン生成プログラム
JP6324239B2 (ja) 画像処理装置、画像処理方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180821

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190621

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190702

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190830

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191210

R151 Written notification of patent or utility model registration

Ref document number: 6632253

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151