JP2017005660A - 画像処理装置および画像処理方法 - Google Patents
画像処理装置および画像処理方法 Download PDFInfo
- Publication number
- JP2017005660A JP2017005660A JP2015121084A JP2015121084A JP2017005660A JP 2017005660 A JP2017005660 A JP 2017005660A JP 2015121084 A JP2015121084 A JP 2015121084A JP 2015121084 A JP2015121084 A JP 2015121084A JP 2017005660 A JP2017005660 A JP 2017005660A
- Authority
- JP
- Japan
- Prior art keywords
- pixel
- edge
- image
- pixels
- image processing
- 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
- 238000003672 processing method Methods 0.000 title claims 2
- 238000000605 extraction Methods 0.000 claims description 19
- 239000000284 extract Substances 0.000 claims description 5
- 238000000034 method Methods 0.000 description 40
- 239000011159 matrix material Substances 0.000 description 20
- 230000004044 response Effects 0.000 description 20
- 238000006243 chemical reaction Methods 0.000 description 15
- 230000005540 biological transmission Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Abstract
【課題】エッジ強調処理に代表されるフィルタ畳み込み演算を行う事に伴う演算量が多く、処理時間が膨大になってしまう。
【解決手段】画像処理装置は、入力画像に含まれる画素のうち、一定周期の画素のエッジ成分を抽出する。そして、抽出されていない注目画素のエッジ成分を、注目画素に隣接する画素の抽出されたエッジ成分を用いた補間演算により算出する。
【選択図】図2
【解決手段】画像処理装置は、入力画像に含まれる画素のうち、一定周期の画素のエッジ成分を抽出する。そして、抽出されていない注目画素のエッジ成分を、注目画素に隣接する画素の抽出されたエッジ成分を用いた補間演算により算出する。
【選択図】図2
Description
本発明は、画像に含まれるエッジ成分を求める技術に関する。
従来、画像に対してエッジ成分を求め、求めたエッジ成分を付加することでエッジ強調処理が行なわれている。エッジ強調処理を行うことで文字画像であれば可読性が増し、写真であればその写真が鮮鋭になり画質の向上を図る事が可能になる。エッジ成分を求める処理としてはフィルタによる畳みこみ演算を用いるのが一般的である。エッジ強調処理によりエッジ付近のコントラストが強調された画像に変換される。具体的には明るい領域と暗い領域の接する位置では明るい所はより明るく、暗いところはより暗く変換されることで境界部が誇張され、見た目には鮮鋭になったように見える。
カラー画像に対してエッジ強調を行う技術に関しては多くの技術がこれまでも公開されている。
スキャンされた原稿画像に対して、黒い文字を判定しその黒い文字と判定された箇所に対してエッジ強調を行い、またその黒い文字をプリントする時に墨版で生成することで可読性の向上を図る技術がある。例えば色画像データを輝度を示すデータと彩度を示すデータとに分離し、輝度から算出されるエッジ量と彩度とから黒エッジ度合いを求め、そのエッジに対して強調処理を行っている。
また注目画素の周囲の明度と閾値との大小関係から文字やロゴなどのエッジが明瞭なベタ部境界をより鮮鋭に、そうでない絵柄の部分では鮮鋭を抑えるよう選択的に鮮鋭度強調量を制御する処理も開示されている(特許文献1参照)。
しかしながら、エッジ強調処理をソフトウェアを用いて行うと、畳み込み演算にかかる処理時間が、入力される画像のサイズや処理するCPUリソースに応じて膨大になる場合がある。畳み込み演算には、通常、その畳み込み演算に用いる処理ウィンドウ内の画素それぞれに対してフィルタ内の対応する位置の係数の乗算を行い、その結果を累積加算する処理を行う。つまりそのウィンドウの大きさが5×5の場合、1画素処理するために25回の乗算と加算とがそれぞれ必要になり、エッジ強調処理に占めるウェイトが最も大きくなる。また上述のように単純な畳み込み演算によるエッジ強調だけでなく、それに付随したエッジ強調量の補正処理も含めると1画素にかかる演算量は膨大なものになってしまう。
本発明に係る画像処理装置は、入力画像に含まれる画素のうち、一定周期の画素のエッジ成分を抽出する抽出手段と、前記抽出手段で抽出されていない注目画素のエッジ成分を、前記注目画素に隣接する画素の前記抽出手段で抽出されたエッジ成分を用いた補間演算により算出する算出手段とを有することを特徴とする。
本発明によれば、画像に対して畳み込み演算処理を行う際の処理時間を短縮することが可能になる。
以下、本発明を実施するための形態について図面を用いて説明する。なお以下の実施形態において示す構成は一例にすぎず、本発明は図示された構成に限定されるものではない。
[実施形態1]
[画像形成装置の構成]
図1は本実施形態の、エッジ強調を行う機能を有する画像処理装置の構成を示すブロック図である。図1に示すように、画像処理装置は、画像読取部101、画像処理部102、記憶部103、CPU104、画像出力部105、ユーザインタフェース(UI)部106、および送受信部107を備える。なお、画像処理装置は、画像データを管理するサーバ、プリントの実行を指示するパーソナルコンピュータ(PC)などにネットワークなどを介して接続可能である。
[画像形成装置の構成]
図1は本実施形態の、エッジ強調を行う機能を有する画像処理装置の構成を示すブロック図である。図1に示すように、画像処理装置は、画像読取部101、画像処理部102、記憶部103、CPU104、画像出力部105、ユーザインタフェース(UI)部106、および送受信部107を備える。なお、画像処理装置は、画像データを管理するサーバ、プリントの実行を指示するパーソナルコンピュータ(PC)などにネットワークなどを介して接続可能である。
画像読取部101は、原稿の画像を読み取り、画像データを出力する。画像処理部102は、画像読取部101や送受信部107等より外部から入力される画像データを含む印刷情報を中間情報(以下「オブジェクト」と呼ぶ)に変換し、記憶部103のオブジェクトバッファに格納する。さらに、画像処理部102は、バッファしたオブジェクトに基づきビットマップデータを生成し、記憶部103のバッファに格納する。画像処理部102はビットマップデータを生成する処理において、色変換処理や、エッジ強調処理等を行う。詳細に関しては後述する。
記憶部103は、例えばROM、RAM、及びハードディスク(HD)などから構成される。ROMは、CPU104が実行する各種の制御プログラムや画像処理プログラムを格納する。RAMは、CPU104がデータや各種情報を格納する参照領域や作業領域として用いられる。また、RAMとHDは、上記のオブジェクトバッファの記憶などに用いられる。また、画像処理に必要な処理パラメータも併せて記憶しておく。このRAMとHD上で画像データを蓄積し、ページのソートや、ソートされた複数ページにわたる原稿を蓄積し、複数部プリント出力を行う。
画像出力部105は、記録紙などの記録媒体にカラー画像を形成して出力する。UI部106は、画像処理部での画像処理の種類やレベル調整等を装置へ指示するための操作を行う。例えば前述の画像処理の調整量等の設定を行う。送受信部107は、外部からプリント用の画像データを受け取り記憶部103への保存や画像出力部105への出力を行う。また記憶部103内に蓄積されている画像データを機器の外へ送信出力する。
なお、本実施形態においては、画像処理装置は、例えば図1に示すような構成を有する装置、例えばMFP(Multifunction Peripheral)を例に挙げて説明するが、画像処理装置はこれに限られるものではない。すなわち、画像データを扱う装置であればどのような装置であってもよく、例えばPCなどの情報処理装置や撮像装置などでもよい。
次に、本実施形態の画像処理部102において行なわれる画像のエッジ強調処理に関して図2を用いて詳細に説明する。以降のフローに示される処理はCPU104からの命令を元に画像処理部102により実行される。なお、画像処理部102に入力される画像データは各画素RGBの3色から構成されており、横方向(行方向)と縦方向(列方向)の画素配列として構成されているものとする。
まずステップS201において画像処理部102は、入力されたRGB画像データに対して色変換処理を行う。例えば、画像処理部102は、RGBの色空間から輝度と色差系の色空間に画素値を変換する処理を行なう。ここではRGB成分からYCbCrへの色変換を行う。色変換式を以下に示す。
Y = 0.2990 * R + 0.5870 * G + 0.1140 * B
Cb = -0.1687 * R - 0.3313 * G + 0.5000 * B
Cr = 0.5000 * R - 0.4187 * G - 0.0813 * B … 式(1)
Y = 0.2990 * R + 0.5870 * G + 0.1140 * B
Cb = -0.1687 * R - 0.3313 * G + 0.5000 * B
Cr = 0.5000 * R - 0.4187 * G - 0.0813 * B … 式(1)
式(1)においては、入力のRGB画像のRedの信号値(例えば8bitの信号であれば0〜255の値)をR、同GreenをG、同BlueをBと表している。式(1)は、入力のRGB成分をY(0〜255の値)Cb(−128〜127の値)Cr(−128〜127の値)に変換する処理を示している。この変換により入力のRGB画像は輝度Yと色差Cb、Crとへ分離される。ステップS201において画像処理部102は、入力されたRGB画像データの全ての画素について色変換処理を行なう。すなわち、各画素がRGB値を有するデータから、各画素がYCbCr値を有するデータに変換が行なわれる。
次にステップS202において画像処理部102は、処理中の画素である注目画素の位置が画素配列中の偶数行か奇数行かを判定する。すなわち、注目画素が偶数行に位置するか奇数行に位置するかを判定する。0行目、2行目、4行目・・といった偶数行であると判定した場合には続くステップS203に処理を進め、そうでない奇数行の場合にはステップS205に処理を飛ばす。
次にステップS203において画像処理部102は、ステップS201における色変換処理後の画素をフィルタウィンドウ分切り出す。色変換後の画素には、前述のように輝度情報Yおよび色差情報CbCrの信号が含まれている。画像処理部102は、色変換後の画像からある決まったサイズのウィンドウに対応する画素を切り出す。具体的には、本実施形態では行方向に5画素、列方向に5画素の5x5のウィンドウとする。本実施形態においては、注目画素を中心とした5x5のウィンドウサイズに対応する画素(計25画素)を切り出す。この場合、注目画素が画像データにおける偶数行に位置することになる。なお、ここでは5x5のウィンドウを例に挙げて説明したがウィンドウサイズはこれに限られるものではない。
次にステップS204において画像処理部102は、ステップS203で切り出したウィンドウ内の各画素の輝度Yの信号に対してフィルタマトリクスを畳みこむことでエッジ成分の算出を行う。一般的なエッジ強調の手法としてはラプラシアンフィルタを用いて2次微分にあたるエッジ成分を計算し、その値を原画像の信号値に加算するといった手法が用いられる。ステップS204では、まずエッジ成分の算出までの処理を各画素について行なう。この2次微分成分の計算を、例えば以下に示すフィルタマトリクスを用いて行う。
このフィルタマトリクスは、5x5のサイズのマトリクスであり、各要素にはフィルタ係数が含まれている。ステップS203で切り出されたウィンドウ内の各画素の輝度値をこのフィルタマトリクスを用いて畳み込みを行なう。すなわち、ステップS303で切り出されたウィンドウ内の左上に位置する画素の輝度値とフィルタマトリクス内の左上に位置する係数(−0.09)とを乗算する。また、ウィンドウ内の左上から一つ右にずらした位置の画素の輝度値と、フィルタマトリクス内の左上から一つ右にずらした係数とを乗算する。このような乗算を25画素分全てに行い、25画素分の得られた値を全て加算する。このように求められた加算後の値が注目画素(ここでは5x5のウィンドウ内の中央の画素)のエッジ成分として抽出される。
このように、5x5のフィルタマトリクスの中心(この例だと1.08を乗じる位置)がこのウィンドウの注目画素になり、この位置の出力結果となる。このフィルタマトリクスのサイズはステップS203において切り出されるウィンドウのサイズ以下にする必要がある。フィルタマトリクスの方がサイズが大きいと畳み込みで演算されない画素が出てくるので正しくエッジ成分を求められないからである。このステップS204の畳み込み処理は輝度Yに対してのみ行い色差CbCrに対しては行わない。こうすることで明るさのみ強調され、エッジ部の色変化をある程度抑える事が可能になる。このようにして得られた輝度のエッジ成分をdYとして以降扱う。求められた輝度のエッジ成分は、例えば記憶部103内に画像データの画素数と同じサイズの画素数のデータ配列を設けて、注目画素の対応する位置にそれぞれ格納される。
ステップS204において画像処理部102は、画像データに含まれるすべての画素に対して処理を行ったかを判定する。未処理の画素がある場合、ステップS202に戻り、注目画素を別の画素に変えて処理を繰り返す。
図3は、畳み込み処理の結果の得られる各画素の輝度のエッジ成分と、このエッジ成分を原画像の輝度値に加算した場合の各画素の輝度変化とを2次元のグラフで表した図である。図3では、各画素の座標は横軸の一次元で表している。破線301で示したグラフが入力輝度Yの信号値のグラフである。実線302は各画素における入力輝度値に応じて算出されて出力されたエッジ成分dYのグラフになる。実線303は、破線301で示す入力の輝度値に実線302で示すエッジ成分を各画素について加算した場合の結果の輝度値を示している。実線303で示すように、輝度の変化が起っている場所で、暗いところはより暗く、明るい側はより明るくコントラストが現れる。言い変えるとこのエッジ成分dYはエッジ強調処理を行った前後の差分信号と取る事もできる。なお、図3では入力輝度にエッジ成分を加算している例を説明しているが、ステップS205の処理の時点ではまだエッジ成分は加算していない。その後の処理においてエッジ成分の加算が行なわれる。その様子を、続くステップS206から説明する。
ステップS206において画像処理部102は、処理中の注目画素の位置が画素配列中の偶数行か奇数行かを判定し、偶数行である場合と奇数行である場合で処理を切り替える。偶数行である場合には以下に続くステップS207の処理を行なう。奇数行である場合にはステップS208及びステップS209の処理を行う。
注目画素の位置が偶数行である場合、ステップS207において画像処理部102は、ステップS201の処理で求めた注目画素の輝度信号Yに対し、ステップS204で求めたその注目画素のエッジ成分dYを加算し、エッジ強調後の輝度信号Y’を生成する。
一方、注目画素の位置が奇数行である場合においても、本来、画像処理部102は、ステップS201の処理で求めた注目画素の輝度信号Yに対して、ステップS207の処理と同様に注目画素のエッジ成分dYを加算したい。しかしながら画像処理部102は、その注目画素の位置でのエッジ成分dYをステップS204で求めていない。そのため、ステップS208において画像処理部102は、注目画素が含まれている行の上下行の画素から注目画素の位置でのエッジ成分dYを補間生成する。例えば処理中の注目画素の横方向の座標をx、縦方向の座標をy(yは奇数)とした時のdYの値をdY(x,y)と表現すると、その未知のdY(x,y)を以下の式(2)で求める。
dY(x,y) = (dY(x,y-1) + dY(x,y+1)) / 2 … 式(2)
dY(x,y) = (dY(x,y-1) + dY(x,y+1)) / 2 … 式(2)
これは結果として、1画素分上下の画素に対してステップS204のステップでフィルタマトリクスを畳み込んで得られたそれぞれの値を、式(2)で示すようにさらに足して2で割った値となる。図4を用いてその様子を説明する。処理中の注目画素の位置401を中心とした5x7のウィンドウ402を考える。ここで、注目画素の前の行(図4では一つ上の画素位置)で処理した画素の位置403の畳み込みの結果は、次のように考えられる。すなわち、画素の位置403を中心として破線で示した5x5のウィンドウ404内の画素に対して、下2行0を加えた下記のフィルタBを畳み込んだ結果と等価である。
下2行に0を加えた部分についてはエッジ成分としての計算に使われないので、ステップS304で説明した5x5のマトリクスフィルタを用いた結果と同じになる。
同様に、注目画素の位置401の後ろの行(図では一つ下の画素位置)で処理した画素の位置405の畳み込みの結果は、次のように考えられる。すなわち、画素の位置405を中心として破線で示した5x5のウィンドウ406内の画素に対して、上2行0を加えた下記のフィルタCを畳み込んだ結果と等価となる。
そして、前述のように注目画素の位置401の補間結果は、上記の2つのフィルタを用いて畳み込みを行なった結果を足して、2で割ったものとなる。これは、実数演算をしている限り、上記の2つのフィルタマトリクスを足して2で割った5x7の下記のフィルタDを5x7のウィンドウ内の画素に畳み込んだ結果と等価になる。
このフィルタDの周波数応答は、横方向については、元のステップS204で用いたフィルタAの畳み込み結果とほぼ等価な応答になる。また、このときの演算量は2画素分のエッジ成分を加算して2で割るだけで済むので、5x5の25画素の乗加算を行なう場合と比べて無視出来るレベルに減る。
このようにステップS208のエッジ成分補間処理では、式(2)に従ってエッジ成分dYを求める。そして、ステップS209において画像処理部102は、ステップS207と同様に、ステップS201の処理で求めた輝度信号YにステップS208で求めたエッジ成分dYを加算し、エッジ処理強調後の輝度信号Y’を生成する。
次に、ステップS210において画像処理部102は、輝度、色差の色空間からRGBの色空間へ色変換する。この計算はステップS201で行った色変換の逆行列演算にあたり式としては以下の様な式になる。
R = Y' + 1.4020 * Cr
G = Y' - 0.3441 * Cb - 0.7141 * Cr
B = Y' + 1.7720 * Cb … 式(3)
R = Y' + 1.4020 * Cr
G = Y' - 0.3441 * Cb - 0.7141 * Cr
B = Y' + 1.7720 * Cb … 式(3)
式(3)では、輝度信号としてエッジ強調後の輝度信号Y’が用いられている。ステップS211では全ての画素について処理を行なったかを判定し、未処理の画素があれば注目画素を変更してステップS206に処理を戻す。
このように、偶数行の画素に対してフィルタ畳み込み演算によりエッジ強調を行う。一方で、奇数行の画素については偶数行で得られたエッジ成分を補間することによりエッジ強調を行なう。このような処理によれば、画像データを構成する全画素に対して畳み込み演算を行うのに対して演算量を半分程度に抑制することが可能になる。
なお本実施形態ではエッジ強調を行う色空間として輝度色差色空間YCbCrを用いたが、輝度色差系の色空間であればL*a*b*等他の色空間でも同様の事が実現できる。また色変換を行わずRGB画像のままRGB信号値それぞれに対して処理を行っても効果は得られる。またRGBを入力としたが、Gray画像や、CMYK画像でもその効果が損なわれる訳ではない。また、画像データの画素配列のうち、一定周期の画素に対して畳み込み演算を行ない、一定周期に該当しない画素について補間演算を行なう例を説明した。すなわち、偶数行に対して畳み込み演算を行い奇数行で補間を行う例を説明したが、偶数奇数を入れ替えても当然同等の効果が得られる。同様に行単位では無く列単位で畳み込み演算と補間を切り替える事も可能である。また行列共に間引いて畳み込み演算することも可能である。
また本実施形態ではエッジ成分を算出した後にその結果を元の信号に加算することでエッジ強調画像を求める例を説明したが、それに限らずエッジ強調前後の信号値差を算出する事ができれば(dYが算出出来れば)別の処理に応用してもよい。例えばエッジ強調に限らず、スムージングの処理等にも適用は可能である。
また本実施形態ではフィルタ畳み込み演算を用いたオーソドックスなエッジ強調処理に関して説明したが、先に述べたように処理前後の信号値差を算出することができればそれに限らない。例えば黒い文字を判定しエッジ強調のパラメータを切り替えるような処理に対して本実施形態を適用することも可能である。
なお、本実施形態で説明した処理により得られる奇数行の補間結果は必ずしも偶数行でのフィルタ畳み込み結果と等価にはならない。前述したように横方向の周波数応答はほぼ同じを示しているが、縦方向の応答は大きく異なる。この結果、画像によっては不自然な周期の縞が出てしまう場合も起こりうる。しかしながら解像度が高い画像の入力であればそれが気になる事は少ない。
外部装置とネットワークなどを介して接続された場合、そこから送受信部107経由で受信される画像データは、送信元のオリジナルのデータによってさまざまな解像度の画像データであることが考えられる。それらを画像処理部102はプリント出力される解像度に拡大もしくは縮小処理する事になる。
そこでそれらの入力画像の解像度が処理後に縞が気になるほど低いと判定された場合には偶数行でも奇数行でも一様にフィルタ畳み込み演算を行うよう入力の解像度に応じて処理を切り替える構成でもよい。つまり、画像処理部102は、入力画像の解像度が所定の閾値より大きいか否かを判定し、所定の閾値より大きい場合に、図2に示すフローに従ったエッジ強調処理を行う。一方、入力画像の解像度が所定の閾値以下である場合、偶数行か奇数行かによって処理を切り替えるのではなく、いずれについても一様にフィルタ畳み込み演算を行う。入力画像の解像度が所定の閾値以下であるということは画素数が減るということになるので、処理に必要な演算量も少なくなる。つまり、トータルの処理時間は変わらないので、フィルタ畳み込み演算が膨大となってしまう事態はそもそも生じないので前述したような課題は生じなくなる。
[実施形態2]
実施形態1においては画像の偶数行と奇数行とでフィルタ畳み込み演算する画素と補間で生成する画素との切り替えを行っていた。しかしながら前述したように結果として得られる出力画像は全画素に対してフィルタ畳み込み演算を行った結果とは異なり、画像によっては偶数行と奇数行との切り替えにより縞の様なテクスチャが出てしまう事が起こりうる。これは前述のようにステップS208における補間処理で実質的に用いられていることに相当するフィルタDの周波数応答が縦方向と横方向とで異なる応答をすることに起因している。
実施形態1においては画像の偶数行と奇数行とでフィルタ畳み込み演算する画素と補間で生成する画素との切り替えを行っていた。しかしながら前述したように結果として得られる出力画像は全画素に対してフィルタ畳み込み演算を行った結果とは異なり、画像によっては偶数行と奇数行との切り替えにより縞の様なテクスチャが出てしまう事が起こりうる。これは前述のようにステップS208における補間処理で実質的に用いられていることに相当するフィルタDの周波数応答が縦方向と横方向とで異なる応答をすることに起因している。
そこで本実施形態2では補間処理で実質的に用いられていることに相当するフィルタの縦と横との周波数応答差を軽減しながらエッジ強調におけるフィルタ畳み込み演算に必要な演算量を削減する構成に関して説明する。なお、実施形態1と同様である画像処理装置の構成に関しての記載および重複するフローの説明は割愛し、本実施形態でポイントとなる点に主眼をおいて説明する。
本実施形態の画像処理部102における画像へのエッジ強調処理に関して図5を用いて詳細に説明する。以降のフローに示される処理はCPU104からの命令を元に画像処理部102により処理される。
また実施形態1と同様に入力の画像データは各画素RGBの3色から構成されており、横方向(行方向)と縦方向(列方向)の配列として構成されているものとする。
まずステップS501において画像処理部102は、入力のRGB画像データに対して色変換処理を行い輝度と色差系の色空間、ここではRGB成分からYCbCrへの色変換を行う。詳細説明はステップS201と同様のため割愛する。
ステップS502において画像処理部102は、処理中の注目画素の位置が画像配列中の偶数行かつ偶数列か、または、奇数行かつ奇数列か、もしくはそれ以外か、を判定する。これは具体的には横方向の座標をx、縦方向の座標をyとした時に、x,y共に偶数またはx,y共に奇数の時と、それ以外の場合、すなわちxが偶数かつyが奇数またはxが奇数かつyが偶数の場合とで処理を切り替えるための判定になる。x,y共に偶数または共に奇数の場合には続くステップS503の処理に進み、そうでない場合にはステップS505に処理を飛ばす。つまり千鳥格子状に処理を飛ばしていくことになる。
次にステップS503およびステップS504のステップで画像処理部102が行う処理は、それぞれステップS203およびステップS204で説明した内容と同じであるため、説明は割愛する。
このステップS504までの処理をすべての画像データに含まれる全ての画素に対して行う。これらの処理により、画像上において千鳥格子状にステップS503およびステップS504の処理を行って千鳥格子状の画素にてエッジ成分を算出していく事になる。その後にエッジ成分の加算処理を行っていく様子を続くステップS506から説明する。
ステップS506のステップにおいて画像処理部102は、ステップS502と同様に処理中の注目画素の位置が画素配列中の偶数行かつ偶数列か、または、奇数行かつ奇数列か、もしくはそれ以外か、を判定し処理を切り替える。偶数行かつ偶数列、または、奇数行かつ奇数列の場合には以下に続くステップS507を行い、それ以外である場合にはステップS508およびS509の処理を行う。
ステップS507のステップにおいて画像処理部102は、ステップS501の処理で求めた注目画素の輝度信号Yに対し、注目画素のエッジ成分dYを加算し、エッジ強調後の輝度信号Y’を生成する。
一方、ステップS508のステップにおいても画像処理部102は、ステップS501の処理で求めた注目画素の輝度信号Yに対し、ステップS506の処理と同様に注目画素のエッジ成分dYを加算したい。しかしながら画像処理部102は、その注目画素の位置でのエッジ成分dYをステップS504では求めていない。そのため、ステップS508において画像処理部102は、注目画素の上下および左右の画素から注目画素の位置でのエッジ成分dYを補間生成する。本実施形態においては、千鳥格子状にエッジ成分を求めているので、実施形態1のステップS208で説明した上下の画素からの補間だけでなく、左右の画素も用いた補間が可能になる。処理中の注目画素の横方向の座標をx,縦方向の座標をyとした時のエッジ成分dYの値をdY(x,y)と表現する。すなわちdY(x,y)は未知であり、それに隣接する画素のエッジ成分dY(x−1,y),dY(x+1,y),dY(x,y−1),dY(x,y+1)はそれぞれステップS504で処理済みで既知となっている。この注目画素の上下左右の画素の既知のエッジ成分を用いて注目画素の未知のエッジ成分dY(x,y)を補間推定する。
その補間の式は、例えば、
dY(x,y) = (dY(x,y-1) + dY(x,y+1) + dY(x-1,y) + dY(x+1,y))×α / 2 … 式(4)
で求める。ここでαの値は正の実数でフィルタゲインを調整するパラメータであり、1より大きければよりエッジ強調の強度を強くする事になるパラメータになる。この値は元のステップS204で示したフィルタと結果を近づけるためのパラメータとなる。当然乗算を伴うため処理時間に影響する。なお、式(4)では4点の既知のエッジ成分から補間演算を行う際に、4ではなく2で除算を行っている。この理由は、エッジというものは類似の値が連続している方向と、値が連続していない境界となる方向とから構成されるからである。たとえば、縦線のエッジを考えると、上下方向の画素については類似の値が連続している。一方で、左右方向の画素については値が異なるものになる。4で除算を行うということは、エッジ強調に寄与する画素とエッジ強調に寄与しない画素との両方を考慮した価を求めることになる。しかしながら、本質的にはエッジ強調に寄与する画素のみから補間をすることが望ましい。そこで本実施形態ではエッジ強調に寄与する画素から補間を行なうことを目的として、2で除算を行っている。つまり、本実施形態の処理によれば、結果としてこのエッジ強調に寄与しない画素の関連性を弱めることができる。なお、もちろん蓋然性の問題であり、2で除算を行うことでエッジ強調に寄与する画素とエッジ強調に寄与しない画素との関連性をすべて解決できるわけではない。そこで、本実施形態では、パラメータとしてαを乗算することでフィルタゲインを調整している。
dY(x,y) = (dY(x,y-1) + dY(x,y+1) + dY(x-1,y) + dY(x+1,y))×α / 2 … 式(4)
で求める。ここでαの値は正の実数でフィルタゲインを調整するパラメータであり、1より大きければよりエッジ強調の強度を強くする事になるパラメータになる。この値は元のステップS204で示したフィルタと結果を近づけるためのパラメータとなる。当然乗算を伴うため処理時間に影響する。なお、式(4)では4点の既知のエッジ成分から補間演算を行う際に、4ではなく2で除算を行っている。この理由は、エッジというものは類似の値が連続している方向と、値が連続していない境界となる方向とから構成されるからである。たとえば、縦線のエッジを考えると、上下方向の画素については類似の値が連続している。一方で、左右方向の画素については値が異なるものになる。4で除算を行うということは、エッジ強調に寄与する画素とエッジ強調に寄与しない画素との両方を考慮した価を求めることになる。しかしながら、本質的にはエッジ強調に寄与する画素のみから補間をすることが望ましい。そこで本実施形態ではエッジ強調に寄与する画素から補間を行なうことを目的として、2で除算を行っている。つまり、本実施形態の処理によれば、結果としてこのエッジ強調に寄与しない画素の関連性を弱めることができる。なお、もちろん蓋然性の問題であり、2で除算を行うことでエッジ強調に寄与する画素とエッジ強調に寄与しない画素との関連性をすべて解決できるわけではない。そこで、本実施形態では、パラメータとしてαを乗算することでフィルタゲインを調整している。
本実施形態ではαを1として以下説明を行う。αを1とした場合、結果として、ステップS204で示したフィルタマトリクスを注目画素の1画素分上下左右にずらしたマトリクスで注目画素の上下左右の5x5の画素をそれぞれ畳み込む。そして、それぞれ畳み込んだ値を式(4)に従い足して2で割ったものになる。この様子を図6を用いて説明する。注目画素の位置601前の行で処理した画素の位置603の畳み込みの結果は、次のように考えられる。すなわち、画素の位置603を中心として破線で示した5x5のウィンドウ604内の画素に対して、下2行0と、左右列に0とを埋めた下記のフィルタEを畳み込んだ結果と等価である、
同様に注目画素の位置601の後ろの行で処理した画素の位置605の畳み込みの結果は、次のように考えられる。すなわち、画素の位置605を中心とした5x5ウィンドウ606内の画素に対して、上2行0と、左右0とを埋めた下記のフィルタFを畳み込んだ結果と等価である。
同様に同様に注目画素の位置601の左の列で処理した画素の位置607の畳み込みの結果は次のように考えられる。すなわち、画素の位置607を中心とした5x5ウィンドウ608内の画素に対して、右2列0と、上下0とを埋めた下記のフィルタGを畳み込んだ結果と等価である。
同様に、注目画素の位置601の右の行で処理した画素の位置609の畳み込み結果は次のように考えられる。すなわち、画素の位置609を中心とした5x5ウィンドウ610内の画素に対して、左2列0と、上下0とを埋めた下記のフィルタHを畳み込んだ結果と等価である。
このように、式(4)は上下左右の各画素の位置における各フィルタを用いてそれぞれ対応するウィンドウ内の画素に畳み込みをした結果を足して、2で割ったものになる。
つまり処理中の注目画素の位置601を中心とした7x7のウィンドウ602はすなわち、実数演算をしている限りフィルタE〜Hを足して2で割った下記のフィルタIを用いてウィンドウ602の画素に畳み込みをした結果と等価になる。
このフィルタIの周波数応答は縦横方向に均等な応答になり、演算量は5x5の25画素の乗加算に対して無視出来るレベルに減る。またここで先のステップS508で説明した式(4)で示したαを1以外の値例えばβとすれば、このフィルタマトリクスすべてにその値βが乗じられたものと等価になる。
図7を用いてフィルタIの周波数応答の例を示す。フィルタIのフィルタマトリクスは横方向および縦方向に完全に同じ値になっているためFFTした結果は同じになる。図7では横方向の1次元の周波数とその時のゲインを示した図としている。ステップS504で用いた(すなわち、実施形態1のステップS204で説明した)5x5のフィルタAのフィルタマトリクスが実線701の様な周波数応答を示している。これに対して、上で示した7x7のフィルタIのフィルタマトリクスの周波数応答は破線702の様になる。この場合ピークの周波数がマトリクスが大きくなることにより低周波側にずれ、そのピーク時のゲインも大きく変化している。式(4)で示したαを1未満、例えば0.8程度にした場合の周波数応答を線703に示す。αを制御することでそのピークゲインの調整が可能になり、この値を用いる事で周波数帯こそずれるがピークゲインは元の5x5のフィルタAのフィルタマトリクスと同等に制御することが可能になる。
ステップS509において画像処理部102は、このようにして求めた注目画素のエッジ成分dYをステップS507と同様に、ステップS501の処理で求めた注目画素の輝度信号Yに加算し、エッジ強調後の輝度信号Y’を生成する。
次に、ステップS510のステップにおいて画像処理部102は、輝度、色差の色空間から出力のRGBの色空間へ色変換する。この計算はステップS210で説明行った内容と同じであるため説明を割愛する。ステップS511では全ての画素について処理を行なったかを判定し、未処理の画素があれば注目画素を変更してステップS506に処理を戻す。
このように、本実施形態では、千鳥格子状に画像に対してフィルタ畳み込み演算によるエッジ強調を行い、残りの位置を簡単な演算で補間する。このような処理により、画像データを構成する全画素に対して畳み込み演算を行うのに対して演算量を半分程度に抑制することが可能になる。
また先の実施形態1に対して不揃いだった縦方向、横方向の周波数応答が揃い、また図7で示したように、フィルタゲインの調整も行われるため強調される周波数帯こそ異なるが、不自然な縞の発生も押さえる事が可能になる。
[実施形態3]
実施形態1および2において簡単な補間演算を用いる事でフィルタ演算処理を間引いて計算量を削減する方法に関して説明した。しかしながら結果として得られる出力画像は全画素に対してフィルタ畳み込み演算を行った結果とは異なり、画像によっては縞や千鳥格子状のテクスチャが出る場合がある。これは実施形態1のステップS208では縦横の周波数応答差が、実施形態2のステップS508では強調される周波数帯が一致しない事に起因する。
実施形態1および2において簡単な補間演算を用いる事でフィルタ演算処理を間引いて計算量を削減する方法に関して説明した。しかしながら結果として得られる出力画像は全画素に対してフィルタ畳み込み演算を行った結果とは異なり、画像によっては縞や千鳥格子状のテクスチャが出る場合がある。これは実施形態1のステップS208では縦横の周波数応答差が、実施形態2のステップS508では強調される周波数帯が一致しない事に起因する。
そこで本実施形態3では画像に応じて、縦方向の補間を用いるか横方向の補間を用いるかを切り替えながら、エッジ強調におけるフィルタ畳み込み演算に必要な演算量を削減する構成に関して説明する。なお、実施形態1および2と同様である画像処理装置の構成に関しての記載および重複するフローの説明は割愛し、本実施形態においてポイントとなる点に主眼をおいて説明する。
本実施形態の画像処理部102における画像へのエッジ強調処理に関して詳細に説明する。なおフロー図は先の実施形態2と変わらないためその説明は割愛し、本実施形態で大きく違いがあるステップS508のエッジ成分補間に関して詳細説明する。
本実施形態におけるステップS508のステップで画像処理部102は、処理中の注目画素の行の上下行の画素、または、左右列の画素から、注目画素の位置でのエッジ成分dYを補間生成する。注目画素の横方向の座標をx、縦方向の座標をyとした時のエッジ成分dYの値を実施形態2と同様にdY(x,y)と表現する。すなわち実施形態2同様に注目画素のエッジ成分dY(x,y)は未知でありる。一方、注目画素の上下左右の画素のエッジ成分dY(x−1,y),dY(x+1,y),dY(x,y−1),dY(x,y+1)はそれぞれステップS504で処理済みで既知となっている。本実施形態では、この未知の注目画素のエッジ成分dY(x,y)を実施形態2で説明した手法とは別の手法で補間推定する。
処理中の画像が縦線であった場合、注目画素の上下に位置する画素のエッジ成分dY(x,y−1)およびdY(x,y+1)は近い値を取り、注目画素の左右に位置する画素のエッジ成分dY(x−1,y)およびdY(x+1,y)は大きく異なる値になる。逆に横線の場合は注目画素の左右に位置する画素のエッジ成分dY(x−1,y)およびdY(x+1,y)は近い値を取り、注目画素の上下に位置する画素のエッジ成分dY(x,y−1)およびdY(x,y+1)は大きく異なる値になる。
これを図3を再度用いて説明する。この図の場合は1次元で表現されているが、実線302の変化はエッジの箇所にてエッジがある向きに対して大きく変化している。
本実施形態においては図3の座標方向を横方向xとし、画像がy方向に続く縦線と仮定する。なお、画像が縦線の場合、y方向については変化がない。従って、画像が縦線の場合に仮に図3を、y方向を横軸の座標方向とした図(不図示)にすると、実線302はy方向には連続して同じ形になる。つまり、画像が縦線の場合、注目画素の左右の画素のエッジ成分dY(x−1)とdY(x+1)との差は大きくなる。一方で、上下の画素のエッジ成分dY(y−1)とdY(y+1)との差は小さい。
この特徴を利用し、本実施形態では処理中のウィンドウに含まれる画像が縦方向のエッジなのか横方向のエッジなのかをこのエッジ成分dYの差から判定し、上下から結果を補間するか、左右から結果を補間するか切り替える。
もし(dY(x,y−1) − dY(x,y+1))の絶対値が、(dY(x−1,y) − dY(x+1,y))の絶対値より小さい場合には、注目画素が含まれるウィンドウ内の画像は縦線と判定する。そして、注目画素のエッジ成分dY(x,y)の結果は類似の周波数応答を有すると考えられる上下の画素について求めたエッジ成分から下記の式(5)で導かれる値を用いる。
dY(x,y) = (dY(x,y-1) + dY(x,y+1)) / 2 … 式(5)
dY(x,y) = (dY(x,y-1) + dY(x,y+1)) / 2 … 式(5)
もし逆に(dY(x−1,y) − dY(x+1,y))の絶対値が、(dY(x,y−1) − dY(x,y+1))の絶対値より小さい場合には横線と判定する。そして、注目画素のエッジ成分dY(x,y)の結果は類似の周波数応答を有すると考えられる左右の画素について求めたエッジ成分から下記の式(6)で導かれる値を用いる。
dY(x,y) = (dY(x-1,y) + dY(x+1,y)) / 2 … 式(6)
dY(x,y) = (dY(x-1,y) + dY(x+1,y)) / 2 … 式(6)
こうすることで、画像が縦線であった場合の横方向の周波数応答は補間で作られた結果とほぼ同等になり、同様に横線であった場合の縦方向の周波数応答もほぼ同等になる。
このようなフローで千鳥格子状に画像に対してフィルタ畳み込み演算によりエッジ強調を行い、残りの位置を簡単な判定を用いて補間する。これにより、画像データを構成する全画素に対して畳み込み演算を行うのに対して演算量を半分程度に抑制することが可能になる。
また先の実施形態に対して画像特徴を用いて切り替えを行うことで、間引かれた画素とそうでない画素の周波数応答が揃い、不自然な縞や千鳥格子状のテクスチャの発生も押さえる事が可能になる。
<その他の実施形態>
実施形態2や3では、千鳥格子状にエッジ成分を算出し、エッジ強調処理が行われていない画素については上下左右の画素について処理が行われたエッジ成分を用いて補間演算を行う例を説明した。しかしながら、この例に限られることはなく、エッジ強調処理が行われていない画素について周囲の画素について処理が行われたエッジ成分を用いて補間演算を行う形態であればよい。また、補間の態様によっては上下左右の画素を用いて補間するのではなく、斜めに位置する画素を用いて補間演算を行ってもよい。
実施形態2や3では、千鳥格子状にエッジ成分を算出し、エッジ強調処理が行われていない画素については上下左右の画素について処理が行われたエッジ成分を用いて補間演算を行う例を説明した。しかしながら、この例に限られることはなく、エッジ強調処理が行われていない画素について周囲の画素について処理が行われたエッジ成分を用いて補間演算を行う形態であればよい。また、補間の態様によっては上下左右の画素を用いて補間するのではなく、斜めに位置する画素を用いて補間演算を行ってもよい。
また、各実施形態の処理では、すべての画素についてエッジ成分を算出した後に、各画素についてエッジ成分を付加する処理を行う例を説明した。しかしながら、メモリ容量の関係でエッジ強調処理を画素ごとに逐次行うような形態であってもよい。たとえば、実施形態1の例を挙げて説明する。まず第0行目と第2行目については、エッジ強調処理が行われる。そして、第0行目と第2行目の各画素についてのエッジ成分が、エッジ強調処理後の画素値とエッジ強調処理前の画素値との差分から算出される。その後、第1行目の各画素については、第0行目と第2行目について算出されたエッジ成分を用いた補間処理と補間されたエッジ成分を付加するエッジ強調処理が行われる。このように、逐次処理によって同様の処理を行ってもよい。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
Claims (13)
- 入力画像に含まれる画素のうち、一定周期の画素のエッジ成分を抽出する抽出手段と、
前記抽出手段で抽出されていない注目画素のエッジ成分を、前記注目画素に隣接する画素の前記抽出手段で抽出されたエッジ成分を用いた補間演算により算出する算出手段と
を有する画像処理装置。 - 前記抽出手段は、フィルタ畳み込み演算によって前記エッジ成分を抽出することを特徴とする請求項1に記載の画像処理装置。
- 前記抽出手段は、エッジ強調処理を行なう前の画素の値からエッジ強調処理を行なった後の画素の値との差分を前記エッジ成分として抽出することを特徴とする請求項1に記載の画像処理装置。
- 前記一定周期は前記入力画像の画素配列の行単位であり、
前記算出手段は、前記注目画素の上下に位置する画素の前記抽出手段で抽出されたエッジ成分を用いた補間演算を行なうことを特徴とする請求項1から3のいずれか一項に記載の画像処理装置。 - 前記一定周期は前記入力画像の画素配列の列単位であり、
前記算出手段は、前記注目画素の左右に位置する画素の前記抽出手段で抽出されたエッジ成分を用いた補間演算を行なうことを特徴とする請求項1から3のいずれか一項に記載の画像処理装置。 - 前記一定周期は前記入力画像の画素配列の千鳥格子状となる周期であり、
前記算出手段は、前記注目画素の上下左右に位置する画素の前記抽出手段で抽出されたエッジ成分を用いた補間演算を行なうことを特徴とする請求項1から3のいずれか一項に記載の画像処理装置。 - 前記算出手段は、前記注目画素の上下に位置する画素の前記抽出手段で抽出されたエッジ成分を用いるか、または、前記注目画素の左右に位置する画素の前記抽出手段で抽出されたエッジ成分を用いるかを、画素ごとに切り替えることを特徴とする請求項6に記載の画像処理装置。
- 前記注目画素の上下に位置する画素の前記抽出手段で抽出されたエッジ成分の差が、前記注目画素の左右に位置する画素の前記抽出手段で抽出されたエッジ成分との差より大きい場合、前記算出手段は、前記注目画素の左右に位置する画素の前記エッジ成分を用いた補間演算を行なうことを特徴とする請求項7に記載の画像処理装置。
- 前記注目画素の上下に位置する画素の前記抽出手段で抽出されたエッジ成分の差が前記注目画素の左右に位置する画素の前記抽出手段で抽出されたエッジ成分との差より小さい場合、前記注目画素の上下に位置する画素の前記エッジ成分を用いた補間演算を行なうことを特徴とする請求項7に記載の画像処理装置。
- 前記入力画像の解像度に応じて前記抽出手段が前記入力画像に含まれる一定周期の画素のエッジ成分を抽出するか、または、前記抽出手段が前記入力画像に含まれる全ての画素のエッジ成分を抽出するかを切り替える切り替え手段をさらに有することを特徴とする請求項1から9のいずれか一項に記載の画像処理装置。
- 前記抽出手段で抽出されたエッジ成分または前記算出手段で得られたエッジ成分が入力画像のそれぞれの画素の値に加算された画像を出力する出力手段をさらに有することを特徴とする請求項1から10のいずれか一項に記載の画像処理装置。
- 入力画像に含まれる画素のうち、一定周期の画素のエッジ成分を抽出する抽出ステップと、
前記抽出ステップで抽出されていない注目画素のエッジ成分を、前記注目画素に隣接する画素の前記抽出ステップで抽出されたエッジ成分を用いた補間演算により算出する算出ステップと
を有する画像処理方法。 - コンピュータを、請求項1から11のいずれか一項に記載の画像処理装置の各手段として機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015121084A JP2017005660A (ja) | 2015-06-16 | 2015-06-16 | 画像処理装置および画像処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015121084A JP2017005660A (ja) | 2015-06-16 | 2015-06-16 | 画像処理装置および画像処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017005660A true JP2017005660A (ja) | 2017-01-05 |
Family
ID=57751920
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015121084A Pending JP2017005660A (ja) | 2015-06-16 | 2015-06-16 | 画像処理装置および画像処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017005660A (ja) |
-
2015
- 2015-06-16 JP JP2015121084A patent/JP2017005660A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6649750B2 (ja) | 画像処理装置、画像処理方法 | |
KR101248858B1 (ko) | 화상처리장치 및 화상처리방법 | |
JP6031286B2 (ja) | 画像処理装置及び画像処理方法 | |
JP6418788B2 (ja) | 画像処理装置及び画像処理方法、プログラム | |
JP6489761B2 (ja) | 画像処理装置及び画像処理方法、プログラム | |
CN106303150B (zh) | 图像处理装置及图像处理装置的控制方法 | |
JP6417851B2 (ja) | 画像処理装置、および、コンピュータプログラム | |
US8619330B2 (en) | Image processing apparatus and image processing method | |
JP6923037B2 (ja) | 画像処理装置、画像処理方法およびプログラム | |
JP2022145776A (ja) | 画像処理装置及び画像処理方法 | |
JP6271874B2 (ja) | 画像処理装置及び画像処理方法 | |
JP2007336555A (ja) | 画像処理装置、画像形成装置、画像処理方法 | |
JP6676962B2 (ja) | 画像処理装置、画像処理方法およびプログラム | |
Son et al. | Inverse color to black-and-white halftone conversion via dictionary learning and color mapping | |
JP4261201B2 (ja) | 画像処理装置、画像処理方法、画像処理プログラムおよび記憶媒体 | |
JP6486082B2 (ja) | 画像処理装置及び画像処理方法、プログラム | |
JP6380763B2 (ja) | 画像形成装置、色変換プログラムおよび色変換方法 | |
JP2017005660A (ja) | 画像処理装置および画像処理方法 | |
JP4792893B2 (ja) | 画像処理装置およびプログラム | |
JP4067538B2 (ja) | 画像処理方法、画像処理装置、画像形成装置、コンピュータプログラム、及び記録媒体 | |
JP2014143512A (ja) | 画像処理装置及び画像処理方法 | |
US8537413B2 (en) | Image processing apparatus, image processing method, and computer-readable storage medium | |
JP6819358B2 (ja) | 画像処理装置、画像判定方法、及び画像処理プログラム | |
JP2022141319A (ja) | 画像処理装置、画像処理装置の制御方法、及びプログラム | |
JP2015149545A (ja) | 画像処理装置、その制御方法、プログラム |