実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また、実施形態の中で説明されている諸要素およびその組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、第1実施形態に係る画像処理システムの構成を示すブロック図である。
図1において、画像処理システムは、撮影装置100、画像処理装置111、121、131、表示装置112、122、132、入力装置113、123、133および記憶装置114、124、134を備える。
画像処理装置111、121、131は、インターネットなどの通信ネットワーク140を介して互いに接続されている。画像処理装置111は、撮影装置100、表示装置112、入力装置113および記憶装置114に接続されている。画像処理装置121は、表示装置122、入力装置123および記憶装置124に接続されている。画像処理装置131は、表示装置132、入力装置133および記憶装置134に接続されている。
撮影装置100は、被写体を撮影し、画像データを生成する。撮影装置100は、例えば、デジタルカメラ、スマートフォンや携帯電話に付属したカメラ、スキャナ、医療現場で用いられるX線写真撮影装置、MRI(Magnetic Resonance Imaging)等、監視現場で用いられる監視カメラ、その他、各種検査現場で用いられる超音波や赤外線、可視光、紫外線、X線やγ線、電子線などを捉えた画像を撮影する各種撮影装置などである。
画像処理装置111は、入力装置113からの入力情報に基づいて、撮影装置100から画像データを受け取ったり、各種画像処理を行ったりすることができる。また、画像処理装置111は、処理画像データを含む処理結果を表示装置112に表示したり、記憶装置114に記憶したり、通信ネットワーク140に送信したりできる。さらに、画像処理装置111は、外部からのリクエスト情報を受け取り、記憶装置114に記憶した画像データなどの各種情報を外部に送信することができる。画像処理装置111は、例えば、汎用計算機であるワークステーション、デスクトップパソコン、ノートパソコン、タブレット端末、スマートフォン等であってもよいし、画像処理専用ハードウェアであってもよい。
表示装置112は、ディスプレイやテレビなどを用いることができる。入力装置113は、キーボードやマウスなどを用いることができる。記憶装置114は、磁気ディスク装置、光ディスク装置、SSD(Solid State Drive)またはUSB(Universal Serial Bus)メモリなどを用いることができる。
なお、ノートパソコンやパブレット端末、スマートフォン等は、画像処理装置111、表示装置112、入力装置113および記憶装置114が一体となっている。
通信ネットワーク140は、画像データを含む各種情報データを送受信可能な回線で、世界中に繋がることができる。通信ネットワーク140は、例えば、インターネットを用いることができる。通信ネットワーク140には、ローカルなエリアに独自の専用の回線を設けることもできる。
画像処理装置121は、入力装置123からの入力情報に基づき、画像処理装置111に接続された記憶装置114から画像データを受け取ったり、各種画像処理を行うことができる。また、画像処理装置121は、処理画像データを含む処理結果を表示装置122に表示したり、記憶装置124に記憶したり、通信ネットワーク140に送信したりできる。さらに、画像処理装置121は、外部からのリクエスト情報を受け取り、記憶装置124に記憶した画像データなどの各種情報を外部に送信することができる。
画像処理装置131は、入力装置133からの入力情報に基づき、画像処理装置121に接続された記憶装置124から画像データを受け取ったり、各種画像処理を行うことができる。また、画像処理装置131は、処理画像データを含む処理結果を表示装置132に表示したり、記憶装置134に記憶したり、通信ネットワーク140に送信したりできる。
各画像処理装置111、121、131の画像処理機能は、画像処理を実現するソフトウェア(プログラム)をインストールすることで実装することができる。また、撮影装置100が画像処理装置を内蔵している場合は、この内蔵された画像処理装置も画像処理を実施することができるし、画像処理専用ハードウェアを搭載して画像処理を実施することもできる。
この画像処理システムは、例えば、個人が撮影装置100としてデジタルカメラを用い、画像処理装置111として記憶装置114を内蔵したノートパソコンを用いることができる。そして、個人がデジタルカメラで撮影した画像データを記憶装置114に記憶し、通信ネットワーク140を介して、外部のSNS(social networking service)の情報サービス会社の画像処理装置121に接続された記憶装置124に画像をアップロードし、広く一般に画像にアクセスできるようにすることができる。この時、ユーザは、自分が所有する画像処理装置131に接続された表示装置132上でアップロードされた画像を見ることができる。
その他、医療現場では、撮影装置100としてX線写真撮影装置やMRI等の各種画像撮影装置にある画像データを、これらの画像撮影装置と繋がった、あるいはこれらの画像撮影装置を内蔵した画像処理装置111から病院内のデータサーバである画像処理装置121に送ることができる。そして、医師は、画像処理装置131に接続された表示装置132上で画像を参照することができる。
ここで、画像処理装置111は、撮影装置100で撮影された撮影画像を微分した微分画像を作成し、その微分画像を変更処理した変更微分画像を作成し、その変更微分画像を経路積分した経路積分画像を作成することができる。ここで、微分画像上で変更処理を行うことで、その変更の仕方により、変更微分画像を経路積分した経路積分画像に、様々な特徴を持たせることができる。例えば、エッジを保存しつつ、コントラストを向上した鮮鋭化画像にしたり、ノイズ成分を低減したノイズ低減画像にしたりすることができる。
図2は、図1の画像処理装置の構成および処理画像の一例を示すブロック図である。
図2において、画像処理装置111は、微分処理部211、微分画像変更処理部212および経路整合積分処理部213を備える。
微分処理部211は、入力画像201を微分した微分画像を作成する。入力画像201は、カラー画像であってもよいし、白黒画像であってもよい。入力画像201は、図1の撮影装置100で撮影された画像であってもよい。図2では、入力画像201として、各画素に白黒のグレースケールの値を持つ白黒画像を例にとる。入力画像201が2次元画像の場合、微分方向をX方向およびY方向の2方向に設定することができる。この時、微分処理部211は、X方向およびY方向のそれぞれについて1次元方向の微分を行うことで、X方向偏微分画像202とY方向偏微分画像203を作成する。
図3は、図1の画像処理装置の処理画像の方向の一例を示す図である。
図3において、入力画像201は、2次元平面で縦横の2方向がある。2次元平面の左上の点を座標の原点221とし、右方向をX方向222、下方向をY方向223と定義する。
この時、入力画像201をIと記すと、座標(x,y)の点(画素)にある入力画像201の画素値をI(x,y)と表すことができる。X方向偏微分画像202をDx、Y方向偏微分画像203をDyと記すと、座標(x,y)のそれぞれの微分値は、以下の数式1、2で与えることができる。
(数1)
Dx(x,y)=I(x+1,y)-I(x,y)
(数2)
Dy(x,y)=I(x,y+1)-I(x,y)
上述した微分画像は、偏微分画像である。その他にも、微分画像は、偏微分画像と変換および逆変換で結びついた画像であってもよい。例えば、X方向偏微分画像とY方向偏微分画像は、絶対値画像と角度画像に変換することができる。また、絶対値画像と角度画像は、X方向偏微分画像とY方向偏微分画像に逆変換することもできる。微分画像は、偏微分画像か、または偏微分画像に変換可能な画像なので、経路に沿った線積分が可能である。
なお、一般的な画像処理の分野では、上述した定義と異なる微分画像が存在する。例えば、以下の参考文献1では、以下の参考文献2で呼んでいるintegral image(積分画像)について、その逆演算で定義された微分画像を導入している。この参考文献2のintegral image(積分画像)は、経路に沿った線積分を用いていないため、本実施形態の積分画像とは定義が異なるものである。また、参考文献1の微分画像は、経路に沿った線積分ができないため、これ単独では、本実施形態で対象とする微分画像とはならない。参考文献1の微分画像を本実施形態の対象とするには、経路積分が可能となるように、何らかの情報を加える必要がある。本実施形態で対象とする微分画像は、上記のように、経路に沿った線積分が可能な情報を与えるものである。
参考文献1:Kohei Inoue,Kenji Hara,Kiichi Urahama,“Integral Image-Based Differential Filters,”International Journal of Computer,Electrical, Automation, Control and Information Engineering,vol.8,no.5,pp.812-821,2014.
微分画像変更処理部212は、X方向偏微分画像202とY方向偏微分画像203を変更処理したX方向変更偏微分画像204とY方向変更偏微分画像205を作成する。X方向偏微分画像202とY方向偏微分画像203の変更の仕方は各種ある。例えば、X方向変更偏微分画像204およびY方向変更偏微分画像205の画素値の絶対値に応じて、その絶対値を拡縮することができる。この時、X方向変更偏微分画像204をEx、Y方向変更偏微分画像205をEyで表すと、X方向偏微分画像202およびY方向偏微分画像203からX方向変更偏微分画像204およびY方向変更偏微分画像205への変更は、例えば、以下の数式3、4で与えることができる。
(数3)
Ex(x,y)=k*(Dx(x,y)-lv)+lv(Dx(x,y)≧lvの場合)
=Dx(x,y)*|Dx(x,y)|/lv(|Dx(x,y)|<lvの場合)
=k*(Dx(x,y)+lv)-lv(Dx(x,y)≦-lvの場合)
(数4)
Ey(x,y)=k*(Dy(x,y)-lv)+lv(Dy(x,y)≧lvの場合)
=Dy(x,y)*|Dy(x,y)|/lv(|Dy(x,y)|<lvの場合)
=k*(Dy(x,y)+lv)-lv(Dy(x,y)≦-lvの場合)
ただし、kとlvは所定値である。|Dx(x,y)|は、Dx(x,y)の絶対値である。数式3の処理により、X方向変更偏微分画像204のDx(x,y)は、絶対値がlvより小さい場合は、2乗の式に従い、絶対値がlvより小さい部分の絶対値がより小さくなり、絶対値がlvより大きい場合は、絶対値がlvより大きい部分の値がk倍される。
経路整合積分処理部213は、X方向変更偏微分画像204およびY方向変更偏微分画像205を経路整合積分した経路整合積分画像206を作成する。経路整合積分処理部213は、積分を始める初期点の輝度を入力画像201の輝度とする場合は、入力画像201を参照する。また、経路整合積分処理部213は、ブロックに分割して積分して、ブロック内平均輝度を、入力画像201の対応するブロック内平均輝度に合わせたい場合なども、入力画像201を参照する。さらに、経路整合積分処理部213は、経路整合積分画像206の表示レベルを設定する場合にも、入力画像201を参照することができる。
ここで、本実施形態の経路積分は、画像上のある点から別の点に向かう経路に沿った線積分のことである。物理学の分野で使われる量子力学的な状態の遷移を扱う際の経路積分とは異なる概念である。本実施形態の経路積分は、画像に設定された経路上の画素値の加減算演算による線積分を行う。この時、経路整合積分処理部213は、X方向の経路積分を行う場合、X方向変更偏微分画像204を参照し、Y向の経路積分を行う場合、Y方向変更偏微分画像205を参照する。微分画像を変更処理することなく、微分画像を経路積分すると、ある画素から他の画素への経路が複数ある場合においても、それら複数の経路の線積分値が異なることはない。
一方、微分画像を変更処理した変更微分画像を経路積分すると、ある画素から他の画素への経路が複数ある場合、それら複数の経路の線積分値が異なることがある。ここで、変更微分画像の経路積分によって得られる複数の線積分値に基づいて1つの積分値を算出する処理を含む積分を経路整合積分と言う。1つの積分値を算出する方法としては、複数の線積分値の平均値を求めるようにしてもよいし、ニューラルネットワークを用いて複数の線積分値に基づいて1つの積分値を求めるようにしてもよい。その他にも、いずれか一つの経路の線積分値を積分値として選ぶようにしてもよいし、それらの線積分値に適当な値を加算した値を積分値にするようにしてもよい。例えば、複数の線積分値のうち最大値を選択するようにしてもよいし、最大値を選択するようにしてもよい。
なお、一般的な画像処理の分野では、上述した本実施形態の積分画像の定義とは異なる積分画像が存在する。例えば、以下の参考文献2では、高速演算のために、画像の左上の点と着目点で囲われる四角形内の画素値の総和を画素値とする画像を作り、それをintegral image と呼んでいる。
参考文献2:Paul Viola,Michael Jones,“Rapid Object Detection using a Boosted Cascade of Simple Features,“CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION 2001,volume I,pp.511-518.
また、以下の参考文献3では、高速演算のために、画像の左下の点と着目点で囲われる四角形内の画素値の総和を求めたsummed-area table(画像)を作る。参考文献2のintegral imageと、参考文献3のsummed area tableは、四角形の取り方が異なるだけで、高速化の原理は同じである。以上の参考文献2のintegral imageも、summed area tableも、本実施形態の積分画像ではない。
参考文献3:Franklin C.Crow,“Summed-Area Tables for Texture Mapping,”Computer Graphics Volume 18,Number 3,pp.207-212,July 1984.
以上で述べた手順を実現するソフトウェア(プログラム)を作成し、そのソフトウェアを計算機にインストールすると、その計算機は、微分処理部211、微分画像変更処理部212および経路整合積分処理部213を実現することができる。微分処理部211、微分画像変更処理部212および経路整合積分処理部213は、専用ハードウェアで実現するようにしてもよい。
図4は、図1の画像処理装置の経路積分処理を示すフローチャートである。
図4のステップS11において、マップ等の初期値および初期点を設定する。この時、入力画像201と同じサイズのマップMと、積分値を代入する画像Fを用意する。後の処理により、画像Fの所定範囲に積分値を代入し終えたら、経路整合積分画像206が得られる。
ここで、入力画像201のX方向のサイズをnx、Y方向のサイズをnyとする。また、積分値を求める所定範囲をX方向がx1以上かつx2以下、Y方向がy1以上かつy2以下とする。なお、x1=0、x2=nx-1、y1=0、y2=ny-1の時、入力画像201のサイズ全体の積分値が求まる。
積分を始める初期点を(x0,y0)とする。初期点から距離が0の隣接点(0隣接点)として、初期点(x0,y0)を0隣接点配列に登録する。0隣接点配列の配列数は1である。すなわち、k隣接点配列のk(kは0以上の整数)の値を0、配列数を1とする。k隣接点は、初期点から距離がkの隣接点である。また、画像Fの積分値を入力画像201の値とする。この時、画像Fの積分値は、以下の数式5で与えることができる。
(数5)
F(x0,y0)=I(x0,y0)
なお、k隣接点配列のk=0以外の時の配列数の初期値は0とする。また、k隣接点がまだ着目されていないことを示すk隣接点配列の未参照確認フラグの値を真とする。マップMのマップ値は、積分値を求める所定範囲では0、その範囲外では-1とする。ただし、初期点のマップ値を2とする。すなわち、M(x0,y0)=2である。
次に、ステップS12において、着目点Paを設定する。k隣接点配列の中からk隣接点を順番に着目点Paとする。すなわち、k隣接点配列の未参照フラグの値が真の場合は、k隣接点配列の最初の位置に格納された点を着目点Paとし、k隣接点配列の未参照フラグの値を偽とする。k隣接点配列の未参照フラグの値が偽の場合は、k隣接点配列の中から、今まで着目していたk隣接点の位置の次の位置に格納されたk隣接点を着目点Paとする。
次に、ステップS13において、着目点Pbを設定する。この時、k隣接点の着目点Pbの4つの隣接点を順番に着目点Pbとする。着目点Pbには、左、右、上および下の4つの隣接点があり、例えば、この順番に着目点Pbを定める。
次に、ステップS14において、着目点Pbが積分すべき点か判断する。着目点Pbの位置のマップ値が0か1であれば、ステップS15に進み、着目点Pbの位置のマップ値が0および1のいずれでもなければ、ステップS16に進む。
ステップS15では、着目点Pbの積分等の処理を行う。積分等の処理では、経路整合積分を行う。この時、着目点Pbの位置のマップ値が0であれば、マップ値を1とし、その位置の積分値を着目点Paの積分値とX方向変更偏微分画像204とY方向変更偏微分画像205を参照して線積分にて求め、画像Fの着目点Pbの値とする。そして、k+1隣接点配列に、その点を加え、k+1隣接点の配列数を1だけ増やす。
着目点Pbの位置のマップ値が1であれば、マップ値を2とし、その位置の積分値を着目点Paの積分値とX方向変更偏微分画像204とY方向変更偏微分画像205を参照して線積分にて求める。そして、既に求めていたその位置の積分値である画像Fの着目点Pbの値と平均し、その平均値を新たに画像Fの着目点Pbの値とする。
次に、ステップS16において、着目点Pbが着目点Paの隣接点の最後の点か判断する。着目点Pbが着目点Paの隣接点の最後の点であれば、ステップS17に進み、着目点Pbが着目点Paの隣接点の最後の点でなければ、ステップS13に戻る。
ステップS17では、着目点Paがk隣接点の最後の点か判断する。着目点Paがk隣接点の最後の点であれば、ステップS18に進む。着目点Paがk隣接点の最後の点でなければ、ステップS12に戻る。
次に、ステップS18において、k+1隣接点があるか判断する。k+1隣接点の配列数が0でなければ、k+1隣接点があるので、ステップS19に進む。k+1隣接点の配列数が0ならば、k+1隣接点がないので、経路整合積分処理は終了する。この時、画像Fの所定範囲に積分値が代入され、図2の経路整合積分画像206が得られる。
次に、ステップS19において、k+1参照化を行う。この時、マップ値が1の箇所を2にする。そして、次のk+1隣接点を以後参照するようにしてステップS12に戻る。すなわち、ステップS12以降の処理でk+1隣接点をk隣接点と読み替え、k隣接点配列の未参照フラグの値を真とする。なお、図4のステップS12からステップS19の処理をS10とする。
図5は、図1の画像処理装置の処理画像全体の経路整合積分方法を示す図である。
図5において、図4の経路整合積分処理に基づいて、入力画像201と同じサイズの画像231全体を順次積分することで、図2の経路整合積分画像206を作成した。なお、図4の経路整合積分処理に基づいて作成した経路整合積分画像206を同距離経路平均積分画像206aと言うことにする。
この時、画像231の中心を、積分を始める初期点P0とした。すなわち、x0=nx/2、y0=ny/2とした。同距離経路平均積分画像206aの表示レベルは、入力画像201の最小値3から最大値244に合わせて、この範囲を表示した。
積分を始める初期点P0の近傍233について、初期点P0からの距離が1の経路を233aに示し、初期点P0からの距離が2の経路を233bに示した。初期点P0からの距離が1の経路233a上には、点P1~P4がある。初期点P0からの距離が2の経路233b上には、点P5~P12がある。ここで、例えば、初期点P0から点P11までの経路には、2つの経路L1、L2がある。この時、例えば、経路L1での積分値と経路L2での積分値との平均を取ることで、点P11での経路整合積分値を求めることができる。
具体的には、初期点P0から点P1~P4までの経路整合積分値は、以下の数式6~9で与えることができる。
(数6)
F(x0-1,y0)=F(x0,y0)-Ex(x0-1,y0)
(数7)
F(x0+1,y0)=F(x0,y0)+Ex(x0,y0)
(数8)
F(x0,y0-1)=F(x0,y0)-Ey(x0,y0-1)
(数9)
F(x0,y0+1)=F(x0,y0)+Ey(x0,y0)
また、初期点P0から点P5~P12までの経路整合積分値は、以下の数式10~17で与えることができる。
(数10)
F(x0-2,y0)=F(x0-1,y0)-Ex(x0-2,y0)
(数11)
F(x0+2,y0)=F(x0+1,y0)+Ex(x0+1,y0)
(数12)
F(x0,y0-2)=F(x0,y0-1)-Ey(x0,y0-2)
(数13)
F(x0,y0+2)=F(x0,y0+1)+Ey(x0,y0+1)
(数14)
F(x0-1,y0-1)=(F(x0-1,y0)-Ey(x0-1,y0-1)
+F(x0,y0-1)-Ex(x0-1,y0-1))/2
(数15)
F(x0+1,y0-1)=(F(x0+1,y0)-Ey(x0+1,y0-1)
+F(x0,y0-1)+Ex(x0,y0-1))/2
(数16)
F(x0+1,y0+1)=(F(x0+1,y0)+Ey(x0+1,y0)
+F(x0,y0+1)+Ex(x0,y0+1))/2
(数17)
F(x0-1,y0+1)=(F(x0-1,y0)+Ey(x0-1,y0)
+F(x0,y0+1)-Ex(x0-1,y0+1))/2
なお、数式6~13までは、線積分を行う最短距離の道筋が1通りしかない場合である。数式14~17までは、線積分を行う最短距離の道筋が2通りある場合である。この時、これら2通りの道筋の積分値の平均値を経路整合積分値とした。
例えば、数式17の場合、1番目の経路に沿った積分値F(x0-1,y0)+Ey(x0-1,y0)と、2番目の経路に沿った積分値F(x0,y0+1)-Ex(x0-1,y0+1)の平均値を経路整合積分値とした。
図5の同距離経路平均積分画像206aでは、入力画像201と同じサイズの画像231全体で経路整合積分されている。同距離経路平均積分画像206aは、画像の中心、すなわち積分を始める初期点P0に近い部分は、入力画像201の値に近い画像となるが、端に行くに従って一般に、入力画像201の値から離れることになる。この時、全体のバランスを崩して入力画像の値から離れ、不自然な斜めの帯状部Z1などが発生することがある。これは、X方向偏微分画像202とY方向偏微分画像203を変更処理したX方向変更偏微分画像204とY方向変更偏微分画像205は、一般に画像全体でバランス良く変更されず、全体のバランスを崩して変更した部分の影響が、積分の初期点P0から離れるにつれ大きくなり目立つようになったためである。特に、同距離経路の平均を取る斜め方向は、より多くの矛盾を受けた変更を積分画像に負わすため、斜めの不自然に見える帯状部Z1などが現れることがある。
図6は、図5と同様に、図1の画像処理装置の処理画像の一部の経路整合積分方法を示す図である。図4と図5では、積分範囲が異なる。すなわち、図5の積分範囲は、入力画像201と同じサイズで、図6の積分範囲は、入力画像より小さい中心付近の領域234である。
図6においては、図4の経路整合積分処理に基づいて、入力画像201と同じサイズの画像231の中の中心付近の小さな領域234の範囲を順次積分することで、同距離経路平均積分画像206bを作成した。
この同距離経路平均積分画像206bは、中心付近の小さな領域234で経路整合積分されている。このため、図5で見られたような端に行くに従って目立つ不自然な帯状部Z1が見られない。この不自然な帯上部が見られる程度は、X方向変更偏微分画像204とY方向変更偏微分画像205が持つ本来好ましくない変更の大きさと、積分値を求める範囲234の大きさに依存する。
なお、上述した説明では、微分画像として、X方向偏微分画像202とY方向偏微分画像203を例にとったが、その他の方法で作成した微分画像であってもよい、例えば、X方向とY方向に加え、斜め方向の偏微分画像も作り、これら4方向の偏微分画像を微分画像とするようにしてもよい。この場合、縦横、上下および斜めの接続に対し、距離を定義し、例えば、縦および横の距離が1で、斜めの距離が2などと定義し、その定義に従って、ある点から別の点に行く距離を測ることができる。
この時、経路整合積分は、初期点P0から積分値を求める点の離散的な距離の定義に基づく最短経路が複数現れた場合は、それら複数の経路の積分値の平均値をその点の積分値とすることができる。例えば、距離が2の斜めの右上の点に行く経路は、斜めの経路の他、上から右の点に行く経路と右から上の点に行く経路の3通りあり、これらの3つの経路の積分値の平均値を右斜め上の点の積分値とすることができる。ただし、斜め上の経路の方に大きな重みを付けた重み付き平均を行うこともできる。本明細書では、重み付き平均も、平均の中に含まれることとする。
以上説明したように、上述した第1実施形態によれば、作成する積分画像の初期点P0の積分値を所定値に設定する。次に、初期点P0の隣の点について、(X方向とY方向の2方向の偏微分の場合は数式6~9に示したように)、初期点P0の積分値と、変更微分画像の該当位置の値を参照して、所定の加減算演算による線積分を行うことにより、この初期点P0の隣の点の積分値を求める。
順次、既に積分値を求めた点の隣の点について、既に積分値を求めた点の積分値と微分画像の該当位置の値を参照して、所定の加減算演算による線積分を行うことにより、既に積分値を求めた点の隣の点の積分値を求める。この時、積分値を求める点と初期点との離散的な距離が同じ経路が複数ある場合は、その複数の経路ごとの線積分を行った値の平均値をその点の積分値とする。以上の処理を順次、所定範囲まで繰り返して、所定範囲の全ての点の線積分した値を求めることにより、所定範囲内の同距離経路平均積分画像を作成する。
これにより、微分画像を変更処理した変更微分画像の積分値が経路によって異なる値を持つ場合においても、その変更微分画像の積分値を一意に定めることができる。このため、微分画像を変更処理した場合においても、その変更処理された変更微分画像から積分画像を作成することができる。
なお、数式5で示したように、初期点P0(x0,y0)の積分値F(x0,y0)を入力画像201の値I(x0,y0)とした。経路整合積分は、初期点P0(x0,y0)を起点に加算、減算および平均処理を行う。このため、初期点P0(x0,y0)の積分値F(x0,y0)の値をaだけ増やせば、積分値は、全ての点でaだけ値が増える。すなわち、オフセットがaだけ付加された画像が得られる。従って、初期点P0(x0,y0)の積分値を0に設定した場合、得られる積分画像は、オフセットが-I(x0,y0)だけ異なる画像が得られる。
従って、積分画像の所定範囲の平均値を所定値に設定する場合は、初期点P0(x0,y0)の積分値をI(x0,y0)とせずに、0またはランダム値を含むどのような所定値に設定しても、最終的な結果である所定範囲の平均値を所定値にした積分画像は変らない。
図7は、第2実施形態に係る積分画像のオフセット変更方法を示すフローチャート、図8は、図7の平均値算出領域の設定例を示す図である。
図8において、積分画像のオフセットを変更するために、積分値を求める領域234の中に平均値算出領域236を設けることができる。図6の同距離経路平均積分画像206bから、オフセットを変更した同距離経路平均積分画像206cを作成した。なお、この同距離経路平均積分画像206cの表示レベルは、入力画像の201最小値3から最大値244に合わせて、この範囲を表示した。
図7の処理S20は、処理S21と処理S23を備える。処理S21は、積分値を求める処理である。処理S21では、積分を始める初期点P0の積分値F(x0,y0)の値をI(x0,y0)ではなく、0に設定する。処理S21は、ステップS22、S10を備える。処理S23は、積分画像のオフセットを変更する処理である。処理S23は、平均値算出領域236内の平均値を所定値にするオフセット調整を実行する。処理S23は、ステップS24~S27を備える。
ステップS22において、マップ等の初期値および初期点0設定を行う。この時、積分を始める初期点の積分値F(x0,y0)を0に設定する。その他は、図4のステップS11の処理と同様である。次に、図4のステップS10の処理と同様の処理を行う。
次に、ステップS24において、入力画像201の平均値を算出する。この時、入力画像201について、図8の平均値算出領域236内の平均値h0を求める。
次に、ステップS25において、積分画像の平均値を算出する。この時、ステップS21で得られた積分画像について、平均値算出領域236内の平均値h1を求める。
次に、ステップS26において、オフセット値を算出する。この時、平均値h0、h1の差分h0-h1をオフセット変更量とする。
次に、ステップS27において、積分画像のオフセットを変更する。この時、ステップS21で得られた積分画像にオフセット変更量を加算し、オフセット変更した積分画像を作成する。
なお、図7のステップS21では、積分を始める初期点P0の積分値F(x0,y0)を0に設定したが、第1実施形態に示したように、入力画像201の値I(x0,y0)に設定しても、ランダムの値に設定しても、ステップS27で得られる積分画像は変らない。このため、ステップS21は、初期点P0の積分値をどのような値に設定してもかまわない。
また、上述した第2実施形態では、平均値算出領域236内において、入力画像201の平均値と、経路整合積分画像206の平均値を合わる方法について説明した。平均値を合わせる対象は、入力画像201に限らず、入力画像201を加工した画像であってもよい。また、平均値を合わせる対象は、0または128などの値を持つ均一画像であってもよい。
以上説明したように、上述した第2実施形態によれば、経路整合積分画像について、平均値算出領域232内の平均値を所定値に変更するオフセット調整を行う。
ここで、ステップS10で得られた積分画像の平均値を入力画像201の平均値に合わせる場合は、入力画像201と平均値算出領域236内の平均値が変らない経路整合積分画像206を得ることができる。ステップS10で得られた積分画像の平均値を入力画像201の加工画像の平均値に合わせる場合は、入力画像201の加工画像と平均値算出領域236内の平均値が変わらない経路整合積分画像206を得ることができる。ステップS10で得られた積分画像の平均値を均一画像に合わせる場合は、平均値算出領域236内の平均値が均一値になる経路整合積分画像206を得ることができる。
図5において、入力画像201と同じサイズの画像231全体を順次積分すると、上述のように、積分の初期点P0から離れるにつれ大きくなり目立つ、斜めの不自然に見える帯状部Z1が発生する場合がある。これに対して、図6に示すように、中心付近の小さな領域234のみ積分すると、斜めの不自然に見える帯状部Z1が目立たなくなる。従って、この処理は、小さな領域に限る必要があるため、入力画像201と同じサイズの画像231全体の積分画像を得るようにするためには、画像231を小さなブロックに分割する必要がある。以下の第3実施形態では、画像231をブロックに分割し、ブロックごとに経路整合積分を実行する。ブロックごとに経路整合積分した画像をブロック分割積分画像と言うことにする。
図9は、第3実施形態に係る積分画像の作成方法を示す図である。
図9において、例えば、画像231を16*16などの小さなサイズのブロックに分割する。そして、各ブロックの中から着目ブロック240の処理の順番235を定め、その順番235に従って着目ブロック240ごとに経路整合積分を実行する。この時、図2の入力画像201に対してブロック分割積分画像206dが得られた。着目ブロック240ごとに経路整合積分を実行する方法では、ブロック端で図5の帯状部Z1を目立たなくすることができる。なお、ブロック分割積分画像206dの表示レベルは、入力画像201の最小値3から最大値244に合わせて、この範囲を表示した。
図10は、第3実施形態に係る積分画像の作成方法を示すフローチャートである。
図10の処理S30は、ステップS31、S20、S32を備える。ステップS31において、画像231をブロックに分割する。そして、各ブロックの中から着目ブロック240を順番に定める。次に、ステップS20において、着目ブロック240について、図7の処理20を実行する。
なお、図7の処理20をブロックごとに実行する場合、平均値算出領域236は、各着目ブロック240内の所定領域に設定する。例えば、着目ブロック240の画像サイズをsx*syとし、平均値算出領域236のブロックサイズをhx*hyとすると、sx=16、sy=16、hx=8、hy=8とし、着目ブロック240の中心と平均値算出領域236の中心を一致させることができる。
次に、ステップS32において、着目ブロック240が画像231の最後のブロックであれば、処理を終了する。着目ブロック240が画像231の最後のブロックでなければ、ステップS31に戻る。最後のブロックまで進むと、入力画像201と同じサイズのブロック分割積分画像206dが得られる。
なお、上述した第3実施形態では、sx=16、sy=16、hx=8、hy=8とした例を示したが、他の値に設定することもできる。例えば、sx=16、sy=16、hx=16、hy=16としたり、sx=32、sy=32、hx=16、hy=16としたりすることができる。
また、図9の例では、画像231のサイズが、ブロックサイズの整数倍になっており、分割したブロックサイズが全て同じサイズになる場合を示した。画像231のサイズが、ブロックサイズの整数倍になっていない場合は、右端や下端で、ブロックサイズが他より小さいブロックが生じる。この小さいブロックも、他のブロックと同様に図10の処理S30を実行し、ブロック分割積分画像を作成できる。
また、ブロックごとに平均値を合わせる対象は、入力画像に限らず、入力画像を加工した画像であってもよいし、0または128などの値を持つ均一画像であってもよい。
以上説明したように、上述した第3実施形態によれば、画像231を所定のブロックに分割し、分割した全てのブロックについてブロック分割積分画像を作成する。さらに、分割した全てのブロックについて所定の平均値算出領域236内の平均値を所定値に変更するオフセット調整を行う。
これにより、図5の帯状部Z1を目立たせることなく、入力画像201と同じサイズの画像231全体の積分画像を得ることができる。
なお、平均値算出領域236は、各着目ブロック240内の所定領域に設定されるため、ブロックの接続部でブロック歪Z2が発生する場合がある。ブロック歪Z2を低減させるために、以下の第4実施形態では、ブロック分割積分画像の重み付き平均をとる。重み付き平均をとったブロック分割積分画像をブロック分割平均画像と言うことにする。
図11は、第4実施形態に係るブロック分割積分画像のブロック分割例を示す図である。
図11において、分割の仕方が異なる4つのブロック分割積分画像250a~250dを作成する分割の仕方を決定する。ブロック分割積分画像250aは、図9の画像231と同一の分割の仕方から得られた画像である。ブロック分割積分画像250bは、ブロック分割積分画像250aに対して図3の-X方向に半ブロックだけずらした分割の仕方から得られた画像である。ブロック分割積分画像250cは、ブロック分割積分画像250aに対して図3の-Y方向に半ブロックだけずらした分割の仕方から得られた画像である。ブロック分割積分画像250dは、積分画像250aに対して図3の-X方向および-Y方向に半ブロックずつずらした分割の仕方から得られた画像である。
ブロック分割積分画像250bの左右端は半ブロックしかないが、この半ブロックからブロック分割積分画像を作成することができる。ただし、簡単のため、この半ブロックだけは、ブロック分割積分画像250aの対応位置の値を代入することもできる。
ブロック分割積分画像250cの上下端は半ブロックしかないが、この半ブロックからブロック分割積分画像を作成することができる。ただし、簡単のため、この半ブロックだけは、ブロック分割積分画像250aの対応位置の値を代入することもできる。
ブロック分割積分画像250dの左右端および上下端は半ブロックしかないが、この半ブロックからブロック分割積分画像を作成することができる。ブロック分割積分画像250dの四隅は1/4ブロックしかないが、この1/4ブロックからブロック分割積分画像を作成することができる。ただし、簡単のため、左右端の半ブロックだけは、ブロック分割積分画像250cの対応位置の値を代入することもできる。また、上下端の半ブロックだけは、ブロック分割積分画像250bの対応位置の値を代入することもできる。また、四隅の1/4ブロックだけは、ブロック分割積分画像250bの対応位置の値とブロック分割積分画像250cの対応位置の値との平均値を代入することもできる。
ある画素251に着目すると、画素251は、ブロック分割積分画像250a~250dのそれぞれの4つのブロック252a~252dに属する。着目する画素251の位置によって、画素251が属する4つのブロック252a~252dが、どのブロック分割積分画像250a~250dのブロックであるか決まる。
図12は、図11の4つのブロックと着目画素との位置関係を示す図である。
図12において、これら4つのブロック252a~252dを含むようにブロック252a~252dを重ねると、ブロック253が得られる。この時、着目する画素251と、各ブロック252a~252dの中心254a~254dの位置関係に基づいて、各ブロック252a~252dの重みを求め、4つのブロック252a~252dの重み付き平均をとる。
ここで、着目点251は、中心254aからX方向に距離a、Y方向に距離bだけ離れている。この時、各ブロック252a~252dのブロック分割積分画像をF0、F1、F2、F3とし、各ブロック252a~252dのX方向のサイズをsx、Y方向のサイズをsyとすると、重み付き平均画像Gは、以下の数式18~22で与えることができる。
(数18)
G(x,y)=w0*F0(x,y)+w1*F1(x,y)+w2*F2(x,y)
+w3*F3(x,y)
(数19)
w0=(sx/2-a)*(sy/2-b)/(sx*sy/4)
(数20)
w1=a*(sy/2-b)/(sx*sy/4)
(数21)
w2=(sx/2-a)*b/(sx*sy/4)
(数22)
w3=a*b/(sx*sy/4)
図13は、第4実施形態に係るブロック分割積分画像のノイズ除去方法を示すフローチャートである。
図13のステップS41において、半ブロックずつ分割の仕方が異なる4つのブロック分割積分画像250a~250dを作成する分割の仕方を決定する。
次に、ステップS30aにおいて、ブロック分割積分画像250aを作成する分割Baの仕方に従って、図10の処理S30を実行することにより、ブロック分割積分画像250aを作成する。
また、ステップS30bにおいて、ブロック分割積分画像250bを作成する分割Bbの仕方に従って、図10の処理S30を実行することにより、ブロック分割積分画像250bを作成する。
また、ステップS30cにおいて、ブロック分割積分画像250cを作成する分割Bcの仕方に従って、図10の処理S30を実行することにより、ブロック分割積分画像250cを作成する。
また、ステップS30dにおいて、ブロック分割積分画像250dを作成する分割Bdの仕方に従って、図10の処理S30を実行することにより、ブロック分割積分画像250dを作成する。
次に、ステップS42において、着目した画素251が属する4つのブロック分割積分画像250a~250dの該当ブロック252a~252dの各々の中心254a~254dと、着目する画素251の距離に応じて重みを決定し、4つのブロック分割積分画像250a~250dの重み付き平均を行う。4つのブロック分割積分画像250a~250dの重み付き平均をとった画像をブロック平均積分画像と言うことにする。
上述した第4実施形態では、半ブロックずつ分割の仕方が異なる4つのブロック分割積分画像250a~250dを作成して重み付き平均を行った。他にも、1/4ブロックずつ分割の仕方が異なる16個のブロック分割積分画像を作成して重み付き平均を行うこともできる。重み付けの方法も、数式19~22では、着目する画素251と、ブロック分割ブロック252a~252dの各々の中心254a~254dとのX方向およびY方向のそれぞれの方向での距離に応じて重みを決定した。この他にも、着目する画素251と、ブロック分割ブロック252a~252dの各々の中心254a~254dとのユークリッド距離に応じて重みを決定することができる。
また、上述した第4実施形態では、1つのブロック分割積分画像の各々のブロックは重なり合うことがない。ここで、各ブロックの端で重なり合うブロック分割を行ない、重なり合った部分で平均を取り、各ブロックの端の部分で平均からの違いを誤差とし、ブロックの端の部分の誤差からブロックの端でない部分の誤差を補間して求め、この誤差を引いてブロックの端でない部分を修正した積分値を求めることもできる。
この場合、ブロックの重なり合った部分を飛ばした飛び飛びのブロックで積分値を求めた飛び飛びの積分画像を作り、それを複数作成したことになる。そして、重なり合った端の部分で、平均からの違いを誤差として、ブロックの内側の部分を補間することは、距離に応じて誤差の重み付き平均を行ったことに相当する。このため、この処理により、重み付き平均の仕方を変えた重み付き平均積分画像を作成することができる。
以上説明したように、上述した第4実施形態によれば、複数の分割の仕方の異なるブロック分割積分画像を作成し、着目画素が属する複数のブロック分割積分画像の各ブロックの中心と着目画素の距離に応じた重み付き平均を行い、ブロック平均積分画像206eを作成する。
これにより、図5の帯状部Z1および図9のブロック歪Z2を低減しつつ、入力画像201と同じサイズの画像231全体の経路整合積分画像を変更微分画像から作成することができる。
図14は、図2の入力画像に対して図13の処理の有無に応じた積分画像を示す図である。
図14において、入力画像201から得られたブロック分割積分画像206dでは、ブロック歪Z2が発生している。ブロック分割積分画像206dに対して作成されたブロック平均積分画像206eでは、ブロック歪Z2が低減されている。ブロック平均積分画像206eに対してパラメータを変えて作成したブロック平均積分画像206fでも、ブロック歪Z2が低減されている。なお、ブロック分割積分画像206dおよびブロック平均積分画像206e、206fの表示レベルは、入力画像201の最小値3から最大値244に合わせて、この範囲を表示した。
ブロック平均積分画像206eは、上記、数3、4の中のパラメータをlv=10かつk=2にして作成した。lvを10にすることにより、小さい輝度変動が抑えられ、例えば、飛行機の上側に映っている雲が平坦化され、kを2にすることにより、輝度変動が大きい部分は、画像の表示レベルを超えない範囲で、入力画像201に比べほぼ2倍のコントラストの向上を達成できた。
ブロック平均積分画像206fは、lv=0かつk=3にして作成した。lvを0にしたため、濃度変化の小さい箇所も平坦化はされず、kを3にしたため、表示レベルを超えない範囲で、局所的なコントラスト向上がなされ、例えば、雲の部分の濃淡変化も強調されている。
なお、X方向偏微分画像202およびY方向偏微分画像203からX方向変更偏微分画像204およびY方向変更偏微分画像205への変更は、数式3、4を用いた方法以外にも、様々な方法がある。例えば、X方向偏微分画像202およびY方向偏微分画像203からX方向変更偏微分画像204およびY方向変更偏微分画像205への変更は、以下の数式23~25で与えてもよい。
(数23)
D(x,y)=sqrt(Dx(x,y)*Dx(x,y)+Dy(x,y)
*Dy(x,y))
ただし、sqrt()は、平方根を取る演算である。
(数24)
Ex(x,y)=k*(Dx(x,y)-lv)+lv(D(x,y)≧lvかつDx(x,y)≧0の場合)
=Dx(x,y)*D(x,y)/lv(D(x,y)<lvの場合)
=k*(Dx(x,y)+lv)-lv(D(x,y)≧lvかつDx(x,y)<0の場合)
(数25)
Ey(x,y)=k*(Dy(x,y)-lv)+lv(D(x,y)≧lvかつDy(x,y)≧0の場合)
=Dy(x,y)*D(x,y)/lv(D(x,y)<lvの場合)
=k*(Dy(x,y)+lv)-lv(D(x,y)≧lvかつDy(x,y)<0の場合)
数式23~25による微分画像の変更処理を行うと、画像のエッジの方向によらず、等方的な変換式で変更できる。この変更処理は、パラメータを変更すると、各種異なる効果が得られる。
例えば、lv=0とすると、微分画像の画素値がk倍に変更される。この変更は、局所的な濃淡変化をk倍にしたことになる。このため、kが1より大きい場合は、入力画像の局所的なコントラストを向上させた積分画像を得ることができる。
ノイズレベルの程度を評価した適当な値にlvを設定し、kを1に設定すると、ノイズレベルの程度を評価したlvより絶対値の低い値の絶対値を低減した値にし、かつそれより大きなエッジの変化は保存することができる。従って、この変更により、微分画像のエッジを保存したノイズ除去や微小な変化を抑えた平坦化を行うことができ、エッジ保存型のノイズ除去や平坦化をした平滑化画像を得ることができる。lvを所定値に設定し、kを1より大きい値にすると、lvより絶対値の低い値の絶対値を低減し、かつlvより絶対値の高い値をk倍に変更することができる。
ノイズレベルの程度を評価した値にlvを設定すると、ノイズ除去と局所的なコントラスト向上を同時に行った積分画像を得ることができる。この変更は、lvより絶対値の低い値を低減する処理を含む処理である。また、この変更は、lvより絶対値の高い値を定数倍しているので、微分画像の値を定数倍にする処理を含んでいる。
以上の数式23~25を用いる方法以外にも、例えば、数式23~25の式にD(x,y)がlv2を超える場合を設け、D(x,y)がlv2を超える場合は、別の傾きk2を設定し、例えば、Dx(x,y)>lv2の場合は、k2*(Dx(x,y)-lv2)+lv2のように変更し、他も同様に変更することもできる。
この時、lvをノイズレベルの程度を評価した小さな値にし、kを1より大きな値にし、k2を1にすると、ブロック平均積分画像は、ノイズレベルの変化の小さい部分の変化を小さくしたノイズ低減と、ノイズレベルより大きな変化でlv2より小さな変化をする箇所の変化を大きくした局所的なコントラスト向上が達成され、lv2より大きな変化をする部分は、その変化に忠実な局所的なコントラストを持たせることができる。また、lv2を1より小さな値に設定すると、lv2より大きな変化をする部分の局所的なコントラストを抑えることができる。
その他、目的に応じ、数々の微分画像の変更の仕方がある。例えば、D(x,y)がlvより小さい場合は、単純に値を0にする処理を行うノイズ除去をすることができる。その他、数式24のDx(x,y)*D(x,y)をsqrt(|Dx(x,y)|)*sgn(Dx(x,y))、数25のDy(x,y)*D(x,y)をsqrt({Dy(x,y)|)*sgn(Dy(x,y))にすることができる。なお、sgn()は値が正の場合は1、負の場合は-1、0の場合は0を返す関数である。この場合、絶対値が低い変化を平方根の関数を用いて強調することができる。
その他にも、微分画像の変更の仕方は各種あり、任意の関数を用いて変更することができる。着目点周辺の3*3領域で平均をする場合を数式26、27に示す。
(数26)
Ex(x,y)=(Dx(x-1,y-1)+Dx(x,y-1)+Dx(x+1,y-1)+Dx(x-1,y)+Dx(x,y)+Dx(x+1,y)+Dx(x-1,y+1)+Dx(x,y+1)+Dx(x+1,y+1))/9
(数27)
Ey(x,y)=(Dy(x-1,y-1)+Dy(x,y-1)+Dy(x+1,y-1)+Dy(x-1,y)+Dy(x,y)+Dy(x+1,y)+Dy(x-1,y+1)+Dy(x,y+1)+Dy(x+1,y+1))/9
以上の平均処理をした微分画像を積分してできる積分画像は、画像の平均をした画像と良く似た画像になる。画像の鮮鋭化をする場合を数式28、29に示す。
(数28)
Ex(x,y)=Ex(x,y)-(Dx(x-1,y-1)+Dx(x,y-1)+Dx(x+1,y-1)+Dx(x-1,y)+Dx(x,y)+Dx(x+1,y)+Dx(x-1,y+1)+Dx(x,y+1)+Dx(x+1,y+1))/9
(数29)
Ey(x,y)=Ey(x,y)-(Dy(x-1,y-1)+Dy(x,y-1)+Dy(x+1,y-1)+Dy(x-1,y)+Dy(x,y)+Dy(x+1,y)+Dy(x-1,y+1)+Dy(x,y+1)+Dy(x+1,y+1))/9
以上の鮮鋭化処理をした微分画像を積分してできる積分画像は、画像の鮮鋭化をしてできる画像と良く似た画像になる。
以上の他にも、例えば、非特許文献3の処理を、入力画像ではなく、微分画像に対して行うこともできる。その際、微分画像では、X方向偏微分画像とY方向偏微分画像の絶対値(2乗和の平方根)を取り、絶対値画像に対して8方向の最小変化方向を見つけ、その方向にX方向偏微分画像はX方向偏微分画像で処理し、Y方向偏微分画像はY方向偏微分画像で処理することができる。さらに、上記の絶対値画像を参照して、着目点がエッジ部分か平坦部かを評価した処理結果に応じ、微分画像の値の変え方を変えた適応処理を行うことができる。
この非特許文献3の処理を含め、エッジ保存型の処理を行うことができる。エッジ保存型の処理では、微分画像の着目点がエッジ部分か平坦部分かを評価した処理結果に応じて、微分画像の値を変える適応型処理を行うことができる。この適応型処理は、エッジ部を保存し、平坦部の平滑化を行うフィルタ処理に有効である。
以上の説明では、入力画像201が白黒のグレースケールを持つ画像としたが、カラー画像の場合も、同様に微分画像の変更処理などを行うことができる。例えば、RGBのカラーを順番にカラー番号cで表し、入力画像201をI[c]で表わし、Ex[c]、Ey[c]、Dx[c]およびDy[c]は、各々、上記の数式で、各画像に[c]を加えたものになり、それぞれ独立に計算することができる。ただし、数式23は、それぞれの加算なので、カラー番号0~2の加算を行う以下の数式30で与えることができる。
(数30)
D(x,y)=sqrt(Dx[0](x,y)*Dx[0](x,y)+Dy[0](x,y)*Dy[0](x,y)+Dx[1](x,y)*Dx[1](x,y)+Dy[1](x,y)*Dy[1](x,y)+Dx[2](x,y)*Dx[2](x,y)+Dy[2](x,y)*Dy[2](x,y))
また、以上の説明では、カラーがRGBの3色である場合を例にとったが、マルチスペクトルやハイパースペクトル画像では、3色より多い色がある。この場合でも、3色の場合と同様に処理することができる。
また、以上の説明では、画像が2次元画像である場合を例にとったが、MRIやX線CT(Computed Tomography)などでは、3次元画像が得られる場合がある。3次元画像をI(x,y,z)で表すと、微分方向は、X、Y、Zの3方向あり、Dz(x,y,z)=I(x,y,z+1)-I(x,y,z)で定義できる。この時、経路整合積分値は、2次元画像と同様に、最短経路となる道筋の線積分値の平均値とすることができる。
例えば、(x,y,z)の点から(x,y+1,z+1)の点に移動する場合は、yz平面内での2次元的な移動であるので、2つの経路の平均である。ところが、(x,y,z)の点から(x+1,y+1,z+1)の点に移動する場合は、xyz空間内での3次元的な移動である。このため、(x,y+1,z+1)と(x+1,y,z+1)と(x+1,y+1,z)の3点の線積分値を求め、この3点から(x+1,y+1,z+1)の点へ向かう3つの経路についてそれぞれ線積分値を求め、その平均を積分値とすることができる。ブロック分割では、2次元画像では平面のブロックに分割したが、3次元画像では立方体のブロックに分割することができる。
2次元では、半ブロックごとに分割の異なる4つのブロック分割積分画像を作成したが、3次元では、立方体の半ブロックごとに分割の異なる8つの立方体のブロック分割積分画像を作成する。2次元では、数式18~22に基づいてブロック平均積分画像を求めたが、3次元では、数式18~22にz方向を加えた対称的な式に基づいてブロック平均積分画像を作成する。4次元以降も同様に作成することができる。
また、以上の説明では、画像入力として入力画像201を用意した例を示したが、入力画像201の他に、別の入力画像を用意してもよい。ここで、これらの入力画像の各々の微分画像を作成し、両者を加算した変更微分画像を積分した画像は、2つの入力画像を加算した画像に等しい。
この時、別の入力画像が、被写体の輪郭に沿って切り出され、入力画像201より小さいものとする。この場合、入力画像201の微分画像に別の入力画像の微分画像を重ねた部分では、入力画像201の微分画像の重なり部分の値を0にして、別の入力画像の微分画像を加えることもできる。この変更微分画像を積分すると、重なり部分で元の入力画像201の輝度勾配を無視した渾然とした合成画像が得られる。
また、重なり部分の入力画像201の微分画像の値を最も近い輪郭部分に加算し、重なり部分は0にする処理をして、別の入力画像の微分画像を加えると、その変更微分画像から、元の入力画像201の全体の輝度を損なわずに、別の入力画像を上乗せしたブロック平均積分画像を作成することができる。
図15は、第5実施形態に係る積分画像のレベル調整処理を示すフローチャートである。
図15のステップS50において、画像処理装置111は、経路整合積分画像206を作成した後、入力画像201に基づいて経路整合積分画像206のレベル調整を行うことで、レベル調整された経路整合積分画像271を作成する。レベル調整では、例えば、入力画像201の最大値を超えた経路整合積分画像206の画素値を入力画像201の最大値に設定し、入力画像201の最小値より小さい経路整合積分画像206の画素値を入力画像201の最小値に設定する。その他、画像レベルを0から255など、所定値の範囲で表現する場合などは、経路整合積分画像206の画素値が0(最小の所定値)より小さい場合は0(最小の所定値)にし、255(最大の所定値)より大きい場合は255(最大の所定値)にすることもできる。
これにより、経路整合積分画像206の輝度の最大値や最小値が、入力画像201の最大値や最小値と異なる場合においても、経路整合積分画像206を適切なレベルで表示させることができる。このため、経路整合積分画像206の表示レベルが入力画像201の表示レベルと異なる場合においても、経路整合積分画像206の最大値や最小値を基準に経路整合積分画像206をこの範囲で表示させることなく、入力画像201の最大値や最小値を基準に経路整合積分画像206をこの範囲で表示させることができ、経路整合積分画像206の不自然な表示を防止することができる。
図16は、図15の処理の有無に応じた積分画像を示す図である。
図16において、ブロック平均積分画像206eは、その表示レベルを入力画像201の最小値3から最大値244に合わせて、この範囲を表示した。一方、ブロック平均積分画像206e2は、その表示レベルを最小値-128から最大値356に合わせて、この範囲を表示した。ブロック平均積分画像206e、206e2は、同じパラメータで作成したが、表示レベルの違いによって、コントラストなど見え方が異なっている。
なお、図2の経路整合積分画像206の表示が適切なレベルで表示されるようにする別の方法として、経路整合積分画像206のデフォルト表示レベルの情報を生成し、画像表示処理でデフォルト表示レベルを参照して経路整合積分画像206を表示したり、表示された画像を見たユーザがデフォルト表示レベルを変更し、その変更に従って表示レベルを調整して経路整合積分画像206を表示させたりすることができる。
図17は、第6実施形態に係る積分画像の表示処理を示すフローチャートである。
図17のステップS60において、入力画像201に基づいて経路整合積分画像206のデフォルト表示レベルを決定する。この時、表示レベルのデフォルト値を計算または設定し、経路整合積分画像206に属性データとして付加した属性付積分画像282を作成して保存する。例えば、図1の画像処理装置121がこの処理を行う場合、属性付積分画像282を記憶装置124に保存する。、
表示レベルのデフォルト値は、表示レベルの上の値を示す上限値と、表示レベルの下の値を示す下限値がある。例えば、上限値は入力画像201の最大値に、下限値は入力画像201の最小値に設定することができる。あるいは、上限値を255、下限値を0に設定することもできる。
次に、ステップS61において、属性付積分画像282の画像表示処理を実行する。この時、ステップS60で保存された属性付積分画像282を読み込み、表示装置に表示する。例えば、画像処理装置121がこの処理を行う場合、記憶装置124から属性付積分画像282を読み込み、表示装置122に表示する。
属性付積分画像282は、経路整合積分画像206とともに、属性データとして表示レベルのデフォルトの上限値と下限値を与える。画像処理装置121は、この上限値と下限値の範囲で経路整合積分画像206を表示する。
図18は、図17の処理の有無に応じた積分画像を示す図である。
図18において、デフォルトの表示レベルを変更する場合は、例えば、図1の入力装置123から表示レベルの上限値や下限値を指定することができる。例えば、表示レベルが入力画像201の最小値3から最大値244に設定されたブロック平均積分画像206eを、デフォルト表示レベルで表示させることができる。また、表示レベルが入力画像201の最小値100から最大値244に設定されたブロック平均積分画像206e3を表示させることもできる。
図19は、第7実施形態に係る画像処理装置の構成および処理画像の一例を示すブロック図である。
図19において、この画像処理装置は、微分処理部311、微分画像変更処理部312および経路整合積分処理部313を備える。
微分処理部311は、入力画像301を微分した微分画像を作成する。入力画像301が2次元画像の場合、微分処理部311は、X方向およびY方向のそれぞれについて1次元方向の微分を行うことで、X方向偏微分画像302とY方向偏微分画像303を作成する。入力画像301は、図1の撮影装置100で撮影された撮影画像だけでなく、画像処理装置で作成したコンピュータグラフィック画像であってもよいし、コピー画像やスキャナ画像であってもよい。
入力画像301として、背景に緩やかな濃淡が生じた文字画像を例にとった。入力画像301の背景の緩やかな濃淡は、撮影装置100がカメラである場合に、光の加減から生じることがある。入力画像301の画像サイズは256*256とし、画素(x,y)が背景部の時は、画素値を128+((128-x)+(128-y))*0.5とし、画素(x,y)が文字部の時は、画素値を背景部よりも50だけ低い値にした。この時、X方向偏微分画像302とY方向偏微分画像303の画素値は、背景部は0.5になり、文字部のエッジの画素値は、両者の値の2乗和の平方根が49から51まで文字の角度に応じた値を取り、文字部の内部の画素値は0になる。
微分画像変更処理部312は、X方向偏微分画像302とY方向偏微分画像303を変更処理したX方向変更偏微分画像304とY方向変更偏微分画像305を作成する。この時、微分画像変更処理312は、例えば、X方向偏微分画像302の画素値の絶対値が閾値lv3以下ならば値を0にし、Y方向の偏微分画像203の画素値の絶対値が閾値lv3以下ならば、値を0にすることができる。この時、閾値lv3は、背景部の緩やかな傾斜による画素値を0にする値に設定する。
図19の例では、入力画像301は、背景部で1画素当たりX方向およびY方向ともに0.5の輝度変化をさせて作成したため、閾値lv3は1に設定した。この時、X方向変更偏微分画像304とY方向変更偏微分画像305は、背景部が0となり、文字部のエッジが殆ど変らず、文字部の内部は0のままになる。
経路整合積分処理部313は、X方向変更偏微分画像304およびY方向変更偏微分画像305を経路整合積分した経路整合積分画像306を作成する。経路整合積分処理部313は、経路整合積分画像306の表示レベルを設定する場合、均一画像307を参照することができる。
ここで、経路整合積分処理部313は、例えば、経路整合積分画像306として、図13の処理によりブロック平均積分画像を作成する。この場合、ブロック平均積分画像の各ブロックでは、図4の処理によってブロック分割積分画像が作成される。各ブロックのブロック分割積分画像の平均値は、均一画像307の平均値(すなわち、所定の均一値)に合わせられる。
図19の例では、ブロック分割積分画像の各ブロックの画像サイズは、入力画像301の画像サイズの半分に取った。すなわち、入力画像301の画像サイズが256*256であるので、ブロック分割積分画像のブロックサイズは128*128である。均一画像307の値は、中間値の128にした。
ここで、入力画像301を微分処理することにより、文字のエッジを保存しつつ、入力画像301の緩やかに濃淡が変化する背景部の値を小さくしたX方向偏微分画像302とY方向偏微分画像303を作成することができる。この時、X方向偏微分画像302とY方向偏微分画像303の背景部の値は、X方向偏微分画像302とY方向偏微分画像303の文字のエッジ部分の値より大きくすることができる。
さらに、X方向偏微分画像302とY方向偏微分画像303の背景部の小さな値を0にする変更処理を行うことにより、文字のエッジを保存しつつ、入力画像301の緩やかに濃淡が変化する背景部の値を0としたX方向変更偏微分画像304とY方向変更偏微分画像305を作成することができる。
ここで、背景部の値を0とすることにより、背景部の値を積分しても背景部の値を0のまま維持することができる。このため、X方向変更偏微分画像304とY方向変更偏微分画像305を積分することにより、入力画像301の文字のエッジを保存しつつ、背景部の緩やかな濃淡を除去することができ、背景部の濃度が均一化された経路整合積分画像306を作成することができる。
さらに、入力画像301では、背景の明るい部分では、文字も明るくなり、背景の暗い部分では、文字も暗くなっている。例えば、入力画像301では、Aという文字はFという文字よりも明るくなっている。ここで、各ブロックのブロック分割積分画像の平均値を均一画像307の平均値に合わせることにより、文字間の濃淡を均一化することができる。例えば、経路整合積分画像306では、Aという文字の明るさとFという文字の明るさがほぼ等しくなっている。
図20は、図19の経路整合積分画像306の2値化処理を示すフローチャートである。
図20のステップS70において、画像処理装置111は、図19の処理によって作成された経路整合積分画像306に対し、経路整合積分画像306を2値化処理することで、2値化画像322を作成する。2値化処理は、画像の画素値が閾値以下の場合は画素値を0、閾値より高い場合は画素値を1にする処理である。2値化画像は、画素値が0および1の2値をとる場合だけでなく、その画素値に255をかけて、画素値が0および255の2値をとるようにしてもよい。ここでは、2値化画像の値が0および255の2値をとるものとした。
図21は、図19の入力画像301および経路整合積分画像306の2値化画像を示す図である。
図21において、背景の濃淡が緩やかに傾斜した入力画像301を2値化処理することにより、2値化画像308を作成した。この時、2値化の閾値を103に設定した。2値化画像308では、背景が明るい部分では、文字と背景が白くなり、文字と背景の区別がつかなくなる。背景が暗い部分では、文字と背景が黒くなり、文字と背景の区別がつかなくなる。
これに対して、図19の処理にて入力画像301から経路整合積分画像306を作成する。そして、経路整合積分画像306に対して2値化処理した2値化画像309を作成すると、背景のみを白くし、文字のみを黒くすることができる。この時、2値化の閾値を98以上、135以下に設定すると、背景と文字が分離された2値化画像309が得られた。ここで、入力画像301は、0から255の輝度レベルの範囲になるよう作成し、経路整合積分画像306は、最大値を255、最小値を0にしたレベル調整を行っている。
以上説明したように、上述した第7実施形態によれば、入力画像301の背景の濃淡に緩やかな傾斜があるために、背景と文字を分離可能な2値化の閾値を設定できない場合においても、入力画像301の文字のエッジが保存されるとともに背景の濃淡の緩やかな傾斜が除去された経路整合積分画像306を作成することができ、背景と文字を分離可能な2値化の閾値を設定することができる。
図22は、図19の画像処理装置のその他の処理画像の一例を示す図である。
図22において、図19の画像処理装置に入力画像301cが入力されたものとする。入力画像301cの背景には、中心を128として、右側から左側に1画素当たり0.1の濃淡を付けた。また、入力画像301cの中央部に濃度が128の均一な四角形を作成した。この例の場合、微分画像変更処理312は、数式3、4を用いた変更処理を実行し、lvを1とした。入力画像301cは、画像値が115から142までを最小の輝度から最大の輝度で表示した。入力画像301cの中央部に置かれた四角形は、濃度が均一であるが、背景にグラデーションがある。このため、本来は内部の濃度が均一な四角形でも、人間にはあたかも四角形の内部にグラデーションがかかっているかのような錯視が現れる。
ここで、入力画像301cから作成した各ブロックのブロック分割積分画像の平均値を均一画像307の平均値に合わせたブロック平均積分画像306bでは、中心部に置かれた四角形の内部にグラデーションが現れるが、背景にも若干の濃淡の変化が現れる。例えば、四角形の内部の明るい箇所の周辺では、背景が暗くなり、四角形の内部の暗い箇所の周辺では、背景が明るくなっている。
このブロック平均積分画像306bにおいて、例えば、中央部の四角形以外の背景の値を128という一定値に設定することにより、ブロック平均積分画像306cを得ることができる。ブロック平均積分画像306cでは、中央部の四角形のグラデーションを保存しつつ、背景の濃淡の変化を除去することができ、人間の錯視を再現した画像を得ることができる。
図23は、第8実施形態に係る画像処理装置の変更微分画像の作成方法を示すフローチャートである。
図23において、この画像処理装置は、微分画像変更処理部400a、400bを備える。微分画像変更処理部400bは、コンボリューショナルニューラルネットワーク401を備える。コンボリューショナルニューラルネットワーク401は、コンボリューション層402とニューラルネット層403を備える。微分画像変更処理部400aは、コンボリューション層402を備える。
コンボリューション層402は、入力画像のコンボリューションを行う。入力画像は、画像を局所平均した画像から引いて作るエッジ画像とすることができる。コンボリューション層402は、3*3または5*5などの小さな領域のコンボリューションを画像全体で行い、その画像を積み重ねて行き、画像の特徴を抽出する。
ニューラルネット層403は、コンボリューション層402で捕らえた特徴を認識するための計算を行う。ニューラルネット層403は、何層にも渡って深い計算を行う深層学習により認識率を向上させることができる。ニューラルネット層403は、認識結果404を出力する。
また、ニューラルネット層403の出力に対して、認識物の抽出処理421を行うことで、認識物を四角で囲って表示したり、認識物の輪郭を囲って表示したり、認識物の輪郭だけでなく内部も黒く塗りつぶして表示したりすることができる。
コンボリューショナルニューラルネットワーク401のネットワーク構造や深層学習の仕方などについて、例えば、以下の参考文献4に記載されている。コンボリューション層402およびニューラルネット層403の学習の仕方は、参考文献4に記載されているように、事前学習を行う方法や深層学習を行う方法がある。
参考文献4:岡谷貴之、「深層学習」、講談社
微分画像変更処理部400a、400bを図2の微分画像変更処理部212の代わりに用いる場合、コンボリューショナルニューラルネットワーク401の入力として、微分画像を用いる。微分画像には、X方向偏微分画像202とY方向偏微分画像203の2つがあるため、入力のデータ数が通常の2倍になり、ネットワークの容量も通常の2倍必要になる。ただし、微分画像は、原画像のオフセットを除き再現可能な情報を持っており、オフセットに関する何らかの情報を与えるか、内部でキャリブレーションできる画像に限定すれば、原画像を再現できる。
コンボリューション層402が入力画像のコンボリューションを行うと、微分画像変更処理部400aは、コンボリューション層402に現れたデータに対して単純化処理411を行う。単純化処理411では、コンボリューション層402に現れたデータを画素ごとに最大値を持つコンボリューションに限定するスパース処理を行う。
次に、微分画像変更処理部400aは、スパースなデータに対して画像再構成処理412を行う。画像再構成処理412では、スパースなデータに対して、出力画像が入力画像になるべく近くなるように学習を行う。スパース処理を行って画像の特徴の現れた再構成画像を得ることで、入力画像の特徴が良く現れた出力画像を作成することができ、ノイズ除去やデフォルメ画像の作成に用いることができる。
微分画像変更処理部400aは、このような画像再構成処理412を行ってできた画像を、X方向変更偏微分画像204aおよびY方向変更偏微分画像205aとする。この時、X方向変更偏微分画像204aおよびY方向変更偏微分画像205aとして、入力画像の特徴を良く表現したノイズの少ない出力画像が得られるため、その積分画像として、ノイズが低減され、入力画像の形態が良く現れた出力画像を得ることができる。
一方、微分画像変更処理部400bは、ニューラルネット層403を介して認識した認識物の抽出処理421の学習を行う。学習には、学習用の入力画像と物体の認識フラグと抽出領域を示したデータを用い、深層学習する方法が広く知られている。
微分画像変更処理部400bは、ニューラルネット層403の出力に対して、認識物の抽出処理421を行うと、単純化処理422を行う。単純化処理422では、認識物の抽出処理421で抽出された物体の情報を元に、コンボリューショナルニューラルネットワーク401を逆に辿り、コンボリューション層402で抽出された物体に関する部分の選択とスパース処理を行う。
次に、微分画像変更処理部400bは、選択されたスパースなデータに対して画像再構成処理423を行う。画像再構成処理423では、選択されたスパースなデータに対して、出力画像が入力画像となるべく近くなるように学習を行う。
微分画像変更処理部400bは、このような画像再構成処理423を行ってできた画像を、X方向変更偏微分画像204bおよびY方向変更偏微分画像205bとする。この時、X方向変更偏微分画像204bおよびY方向変更偏微分画像205bとして、入力画像から抽出された物体の特徴を良く表現したノイズの少ない出力画像が得られるため、その積分画像として、ノイズが低減され、入力画像から抽出された物体の形態が良く現れた出力画像を得ることができる。
図24は、第9実施形態に係る画像処理装置の経路整合積分処理部の構成を示すブロック図である。
図24において、この画像処理装置は、ニューラルネット層431およびパラメータ更新量計算部432を備える。ニューラルネット層431は、入力画像201、X方向変更偏微分画像204およびY方向変更偏微分画像205に基づいて、経路整合積分画像433を作成する。パラメータ更新量計算部432は、経路整合積分画像206、433に基づいてニューラルネット層431のパラメータ更新量を計算し、ニューラルネット層431のパラメータを更新する。
この時、パラメータ更新量計算部432は、経路整合積分画像206として、例えば、ブロック平均積分画像を学習用の参照データ画像として用いることができる。そして、パラメータ更新量計算部432は、ニューラルネット層431から出力された経路整合積分画像433が、参照データ画像になるべく近づくようにニューラルネット層431に学習させることができる。この学習では、経路整合積分画像206、433間の差画像について、各画素の2乗和を評価値として、この評価値を小さくするパラメータの更新量を求める。パラメータの更新量を求める計算は、この評価値を小さくするバックプロパゲーション法などを深層学習で行うことができる。
このようにニューラルネット層431を学習させることにより、経路整合積分画像206とほぼ同等の画像を作成する機能をニューラルネット層431に持たせることができる。このように学習させたニューラルネット層431は、学習用の参照データ画像とネット構造に依存して幾分の個性を持つが、学習に用いた経路整合積分画像206を作成した経路整合積分と似た計算を行う機能を機械学習で持つことができる。すなわち、このように学習させたニューラルネット層431は、経路整合積分を実行したり、経路整合積分をして若干の変更を加えたりすることができ、図2の経路整合積分処理部213として用いることができる。このように学習させたニューラルネット層431は、単体で経路整合積分を含んだ計算を行うものとして機能させることができる。
この他にも、ニューラルネット層431は、入力画像201にノイズを加えた画像、X方向変更偏微分画像204およびY方向変更偏微分画像205に基づいて、経路整合積分画像を作成することができる。そして、パラメータ更新量計算部432は、経路整合積分画像206を学習用の参照データ画像として、ニューラルネット層431の出力画像が参照データ画像になるべく近づくようにニューラルネット層431に学習をさせることができる。この時、ニューラルネット層431は、学習に利用した路整合積分画像206を作成した時の積分処理にノイズ除去機能を加えた処理を行うことができる。このように学習させたニューラルネット層431は、経路整合積分画像206を作成した時の経路整合積分を行うことができ、図2の経路整合積分処理部213として用いることができる。
上述した実施形態では、入力画像を微分した微分画像を作成し、その微分画像を変更処理した変更微分画像を作成し、その変更微分画像を経路積分した経路積分画像を作成することができる。
ただし、微分画像をk(kは1より大きい実数)倍した画像は、経路によらず線積分値が同じになる。この時、微分画像をk倍した画像の経路ごとに線積分値を求めて平均値を積分値とする経路整合積分を行うことなく、数学的に等価な同一な結果が得られる簡易な処理が存在する。すなわち、微分画像をk倍した画像に限定すると、経路整合積分画像は、オフセットを除き、原画像を単にk倍したものと等しい。
以下、微分画像をk倍した画像の経路ごとに線積分値を求めて平均値を積分値とする経路整合積分と数学的に等価な同一な結果が得られる簡易な処理について説明する。
図25は、第10実施形態に係る画像処理装置のブロック画像の作成方法を示すフローチャートである。
図25の処理S80は、ステップS81、S82、S83、S88を備える。ステップS81において、画像231をブロックに分割する。そして、各ブロックの中から着目ブロック240を順番に定める。
次に、ステップS82において、入力画像201を入力として、着目ブロック240の画像を定数倍(例えば、k倍)する。
次に、ステップS84において、入力画像201の平均値を算出する。この時、入力画像201について、図8の平均値算出領域236内の平均値を求める。
次に、ステップS85において、定数倍画像の平均値を算出する。この時、ステップS82で得られた定数倍画像について、平均値算出領域236内の平均値を求める。
次に、ステップS86において、オフセット値を算出する。この時、ステップS84で得られた平均値とステップS85で得られた平均値との差分をオフセット変更量とする。
次に、ステップS87において、定数倍画像のオフセットを変更する。この時、ステップS22で得られた定数倍画像にオフセット変更量を加算し、オフセット変更した定数倍画像を作成する。
次に、ステップS88において、着目ブロック240が画像231の最後のブロックであれば、処理を終了する。着目ブロック240が画像231の最後のブロックでなければ、ステップS81に戻る。最後のブロックまで進むと、入力画像201と同じサイズのブロック分割定数倍画像206jが得られる。
ブロック分割定数倍画像206jの作成処理により、演算量を減少させつつ、k倍した微分画像からブロック平均積分画像206jを作成する処理と数学的に等価な結果を得ることができる。
ブロックの平均値を合わせる参照画像として入力画像201を用いた場合、入力画像201を表示する時と同じ表示レベルでブロック平均定数倍画像206jを表示することができる。この時、ブロック平均定数倍画像206jは、ブロック内で画像をk倍しているため、局所的にコントラストを入力画像201のk倍にすることができる。
例えば、数式23~25において、lv=0として微分画像をk倍にする処理を行った後、ブロックごとに積分すると、局所的な濃淡変化をk倍にしたブロック分割積分画像が得られる。ブロック分割積分画像の作成処理では、入力画像の微分処理およびブロックごとの積分処理を伴うが、ブロック分割定数倍画像の作成処理では、入力画像の微分処理およびブロックごとの積分処理をブロックごとの定数倍処理に置き換えることにより、ブロック分割積分画像の作成処理と数学的に等価な結果を得ることができる。
これは、微分画像をk倍して経路整合積分した画像は、微分する前の入力画像をk倍した画像と、オフセットを除き等しいためである。ブロック分割積分画像では、入力画像201や均一画像307などにブロック内の平均値を合わせるオフセット調整を行っている。ブロック分割定数倍画像についても同様に、ブロック内の画像をk倍して、ブロック内の平均値を入力画像201や均一画像307などに合わせることで、オフセットも含めて数学的に等価な処理を実現することができる。
ただし、ブロック内で画像をk倍して平均値を入力画像201に合わせれば、ブロック内の局所的なコントラストはk倍になるが、ブロック間で濃度の不連続によるブロック歪が生じる。この時、後述する図26の第11実施形態により、複数のブロック分割定数倍画像を作成してブロック間の濃度の不連続を解消することができる。その際、若干の緩やかな傾斜を持って濃淡補正をしたことになるため、k倍の局所的なコントラストが若干変化して、ほぼk倍の局所的なコントラストになる。
なお、画像の表示レベルの上限と下限を超えた輝度は上限や下限の輝度にするため、上限と下限を越える濃度も表現したい場合は、画像の表示レベルを変えるか、あるいは、入力画像201を処理してブロック内の平均輝度の最小値や最大値を変えた画像を、平均値を合わせる参照画像にすることで対応することができる。
図26は、第11実施形態に係るブロック画像のブロック歪除去方法を示すフローチャートである。
図26のステップS41において、半ブロックずつ分割の仕方が異なる4つのブロック分割定数倍画像を作成する分割の仕方を決定する。
次に、ステップS80aにおいて、ブロック分割定数倍画像を作成する1つ目の分割Baの仕方に従って、図25の処理S80を実行することにより、1つ目のブロック分割定数倍画像を作成する。
また、ステップS80bにおいて、ブロック分割定数倍画像を作成する2つ目の分割Bbの仕方に従って、図25の処理S80を実行することにより、2つ目のブロック分割定数倍画像を作成する。
また、ステップS80cにおいて、ブロック分割定数倍画像を作成する3つ目の分割Bcの仕方に従って、図25の処理S80を実行することにより、3つ目のブロック分割定数倍画像を作成する。
また、ステップS80dにおいて、ブロック分割定数倍画像を作成する4つ目の分割Bbの仕方に従って、図25の処理S80を実行することにより、4つ目のブロック分割定数倍画像を作成する。
次に、ステップS42において、着目画素が属する4つのブロック分割定数倍画像の該当ブロックの各々の中心と、着目画素の距離に応じて重みを決定し、4つのブロック分割定数倍画像の重み付き平均を行うことで、ブロック平均定数倍画像206kを作成する。
以上の処理では、ブロックの平均値を合わせる参照画像として入力画像201を用いた例を示したが、平均値を合わせる参照画像は、均一画像307であってもよいし、入力画像201を加工した画像であってもよい。
また、重み付き平均をとるために、分割の仕方が異なる4つのブロック分割定数倍画像を作成する方法について説明したが、より多くのブロック分割定数倍画像を作成してもよいし、上述した方法以外の重み付き平均の仕方を用いてもよい。
以上説明したように、上述した第11実施形態によれば、画像をブロックに分割し、各々のブロック内の画像を定数倍し、各ブロックの平均値算出領域内の平均値を所望の値にする平均値合わせ処理を行い、ブロック分割定数倍画像を得る。
次に、分割の仕方の異なるブロック分割定数倍画像を複数作成し、着目画素の属する複数のブロック分割定数倍画像の各ブロックの中心と着目画素の距距離に応じた重み付き平均を行い、ブロック平均定数倍画像を作成する。
これにより、演算量を減少させつつ、ブロック内の局所的なコントラストをk倍することが可能となるとともに、ブロック間の濃度の不連続によるブロック歪を解消することができる。例えば、3次元CT画像に時間情報を持たせた4次元CT画像などの情報量が多い画像においても、画像処理にかかる時間を削減しつつ、局所的なコントラストを強調することができ、画像診断能力を向上させることができる。
ブロック平均定数倍画像の作成処理は、各ブロック内の画像を定数倍する処理を行っているが、各ブロック内でオフセット調整している。従って、各々のブロック内で画像を定数倍する処理を行えば、画像のオフセットを除き、ブロック平均定数倍画像を作成できる。ブロック内の画像を定数倍してオフセットを調整する処理は、それと数学的に等価な処理が多数存在する。
例えば、ブロック内の画像をフーリエ変換した画像を定数倍して、逆フーリエ変換することも、ブロック内の画像をウエーブレット変換した画像を定数倍して、逆ウエーブレット変換することもできる。数学的には、線形変換であれば、変換した画像を定数倍して逆変換を行うこともできる。ここでは、画像を定数倍する処理は、変換した画像を定数倍して逆変換する処理や、オフセットを除き画像を定数倍する処理も含む。
上述した実施形態では、変更微分画像の経路積分によって得られる複数の経路の線積分値が異なる時に、複数の線積分値に基づいて1つの積分値を算出する方法について説明した。それ以外にも、変更微分画像についての線積分値が経路によらず一意に定まるように変更微分画像を整合化し、整合化された変更微分画像を任意の経路で線積分することで、数学的に等価な経路整合積分画像が得られるようにしてもよい。
以下、変更微分画像についての線積分値が経路によらず一意に定まるように変更微分画像を整合化し、整合化された変更微分画像を線積分する処理について説明する。
図27は、第12実施形態に係る画像処理装置の構成を示すブロック図である。
図27において、画像処理装置は、微分処理部211、微分画像変更処理部212、整合微分画像作成処理部214および整合微分画像積分処理部215を備える。微分処理部211および微分画像変更処理部212は、図2の構成と同様である。
整合微分画像作成処理部214は、X方向変更偏微分画像204とY方向変更偏微分画像205が整合化されたX方向整合偏微分画像207とY方向整合偏微分画像207を作成する。X方向整合偏微分画像207とY方向整合偏微分画像207は、線積分値が経路によらず一意に定まる画像である。
整合微分画像積分処理部215は、X方向整合偏微分画像207およびY方向整合偏微分画像207を経路積分した経路積分画像209を作成する。整合微分画像積分処理部215は、経路積分画像209の表示レベルを設定する場合、入力画像201を参照することができる。経路積分画像209の作成処理は、図2の経路整合積分画像206の作成処理と数学的に等価である。
整合微分画像積分処理部215は、初期点から始め、順次隣の点について、X方向整合偏微分画像207およびY方向整合偏微分画像207を参照して線積分を行うことで積分値を求める。X方向整合偏微分画像207およびY方向整合偏微分画像207では、ある点への同距離の経路が複数あっても、線積分した値は変らないので、どの経路を辿ってもよい。例えば、左右を上下より優先する順番として経路を決めるなど、経路を1本に絞って線積分することができる。所望する全ての点の積分値を求め、経路積分画像209に値を代入し終えたら処理を終了する。
以下、変更微分画像が整合化された整合微分画像の作成方法について説明する。まず、変更微分画像Eを微分画像E’に代入する。この時点では、微分画像E’は整合化されておらず、以下の整合化処理を順次することにより、最終的に整合微分画像を得る。最初の代入時には、X方向微分画像Ex’には、X方向変更偏微分画像204の値が、Y方向微分画像のEy’には、Y方向偏微分画像205の値が代入される。
次に、初期点を含む隣接4点メッシュの微分画像E’を整合化処理する。整合化とは、経路によらず、線積分値が同じになるように微分画像E’の値を変更することである。
図28は、図27の画像処理装置の整合微分画像の作成時の隣接4点メッシュ内の勾配の様子を示す図である。
図28において、初期点(x0,y0)から点(x0+1,y0+1)までの経路に沿った線積分を行うものとする。ここで、4つの点(x0,y0)、(x0+1,y0)、(x0+1,y0+1)、(x0,y0+1)を頂点とする隣接4点メッシュに着目する。この時、初期点(x0,y0)から点(x0+1,y0+1)までの経路には、(x0,y0)→(x0+1,y0)→(x0+1,y0+1)という経路R1と、(x0,y0)→(x0,y0+1)→(x0+1,y0+1)という経路R2がある。
第12実施形態の経路整合積分は、以下の数式31~34を用いて実行することができる。ただし、Fは経路整合積分画像で、F(x0,y0)には、入力画像201の(x0,y0)の値を代入する。
(数31)
e1=Ex’(x0,y0)+Ey’(x0+1,y0)
(数32)
e2=Ey’(x0,y0)+Ex’(x0,y0+1)
(数33)
e=(e1+e2)/2=(Ex’(x0,y0)+Ey’(x0+1,y0)+Ey’(x0,y0)+Ex’(x0,y0+1))/2
(数34)
F(x0+1,y0+1)=F(x0,y0)+e
この時、数式31~33を用いることで、X方向微分画像Ex’およびY方向微分画像のEy’の値を以下の数式35、36の計算により整合化処理する。
(数35)
Ey’(x0+1,y0)=e-Ex’(x0,y0)
(数36)
Ex’(x0,y0+1)=e-Ey’(x0,y0)
以上のように整合化処理すると、以下の数式37、38で示すように、どちらの経路R1、R2の線積分値も同一になり、どちらの経路R1、R2で線積分しても線積分値を一意に決めることができる。
(数37)
F(x0+1,y0+1)=F0(x0,y0)+Ex’(x0,y0)+Ey’(x0+1,y0)
=F0(x0,y0)+e
(数38)
F(x0+1,y0+1)=F0(x0,y0)+Ey’(x0,y0)
+Ex’(x0,y0+1)
=F0(x0,y0)+e
他の初期点(x0,y0)を含む隣接4点メッシュについても、整合化処理する。隣接4点メッシュ内では、初期点(x0,y0)を基準として、距離が1だけ離れた点から距離が2だけ離れた点に向かう経路が2経路ある。このため、整合化処理では、それら2経路の線積分値が同一の値になるように、それぞれの経路の線積分値の平均値を新たな線積分値とし、距離が1だけ離れた点から距離が2だけ離れた点に向かう勾配である微分画像E’の値を変更する。
初期点(x0,y0)から距離がkだけ離れた点が隣接4点メッシュの点の中で最も初期点(x0,y0)に近い点である場合、隣接4点メッシュ内で距離がk+1だけ離れた点から距離がk+2だけ離れた点に行く経路は2通りある。このため、それぞれの経路に沿った線積分値の平均値が新たな線積分値となるように、距離がk+1だけ離れた点から距離がk+2だけ離れた点の勾配である微分画像E’の値を変更することができる。
初期点(x0,y0)を含む隣接4点メッシュから整合化処理を始め、順次距離の離れた隣接4点メッシュの整合化処理をし、積分値を求める領域内の隣接4点メッシュ全ての整合化処理を終えると、微分画像E’として整合微分画像を得ることができる。
図29は、図27の画像処理装置の整合微分画像作成処理を示すフローチャートである。
図29のステップS91において、図27の整合微分画像作成処理部214は、入力画像201と同じサイズの画像231の各隣接4点メッシュについて、初期点P0からの距離を求める。隣接4点メッシュ上の4点のうち、初期点P0に最も距離の近い点との距離を、隣接4点メッシュと初期点P0との距離とする。
次に、ステップS92において、整合微分画像作成処理部214は、微分画像E’に変更微分画像Eを代入する。この時、X方向微分画像Ex’には、X方向変更偏微分画像204の値を代入し、Y方向微分画像のEy’には、Y方向偏微分画像205の値を代入する。この最初の代入時では、微分画像E’は、まだ整合化されていない。
次に、ステップS93において、整合微分画像作成処理部214は、隣接4点メッシュの距離の小さい順に微分画像E’を整合化処理する。積分を所望する全ての点を含む隣接4点メッシュについて整合化処理を終えると、微分画像E’は、整合微分画像になる。
なお、整合化処理では、着目する隣接4点メッシュの中で、最も初期点P0に近い点を起点に最も初期点P0に遠い点までの経路が2通りあるものを整合化する。例えば、着目する隣接4点メッシュの中で、最も初期点P0に近い点を(x,y)とし、初期点P0に最も遠い点を(x+α,y+β)とすると、以下の数式39~43を用いて整合化する。ただし、α、βは、1または-1である。
(数39)
e1’=α*Ex’(x+(α-1)/2,y)
+β*Ey’(x+α,y+(β-1)/2)
(数40)
e2’=β*Ey’(x,y+(β-1)/2)
+α*Ex’(x+(α-1)/2,y+β)
(数41)
e’=(e1’+e2’)/2
(数42)
Ey’(x+α,y+(β-1)/2)
=β(e’-α*Ex’(x+(α-1)/2,y))
(数43)
Ex’(x+(α-1)/2,y+β)
=α(e’-β*Ey’(x,y+(β-1)/2))
以上の整合化処理では、数式41に示すように、隣接4点メッシュ内の2つの経路による線積分値の平均値が新たな線積分値になるように微分画像の値を変更した。この他にも、様々な整合化の仕方がある。例えば、数式41では、e’を平均値(e1’+e2’)/2にしたが、e1’かe2’のどちらか一方にしたり、適当な重みを付けた重み付き平均値にしたり、若干平均値からずれた値にしてもよい。
以上のように、経路の異なる線積分値が一致するように微分画像の値を整合化する処理を行ってから、線積分する処理は、整合化していない微分画像の経路の異なる線積分値の平均値を積分値とする処理と実質的に等価である。従って、数式41の平均をとって整合化した微分画像を作成して線積分する処理は、同距離経路平均積分の中に含まれる。
なお、数式41で求めた平均値を用いて整合化された整合微分画像を線積分すると、同距離経路平均積分画像になるが、同距離経路平均積分画像を微分すると、数式41で求めた平均値を用いて整合化した整合微分画像になる。このため、両者は、変換および逆変換で結びついた画像である。
また、経路整合積分画像を微分した微分画像は、整合のとれた微分画像なので、この整合のとれた微分画像が得られるように、変更微分画像(X方向偏微分画像204とY方向偏微分画像205)を加工する処理も、整合化処理の中に含まれる。
図27の例では、微分処理部211、微分画像変更処理部212、整合微分画像作成処理部214および整合微分画像積分処理部215を画像処理装置に設けた構成を示した。微分処理部211、微分画像変更処理部212、整合微分画像作成処理部214および整合微分画像積分処理部215は、別個のプログラムで実現したり、別個の装置に設けたりして、分離して動作できるようにしてもよい。例えば、整合微分画像作成処理部214の出力を入力とする整合微分画像積分処理部215を別のプログラムで実現したり、別の装置に設け、その別のプログラムまたは別の装置で整合微分画像の積分処理を行うようにしてもよい。
図30は、図27の画像処理装置の整合微分画像の作成時の隣接4点メッシュの距離の一例を示す図である。
図30において、各隣接4点メッシュに、初期点P0からの距離を求めた値を付した。例えば、初期点P0を含む距離が0の隣接4点メッシュが4つあり、距離が1の隣接4点メッシュがその隣に8個、距離が2の隣接4点メッシュがさらにその隣に12個あることが分る。図30では、全部で64個の隣接4点メッシュしか示していないが、実際には、入力画像201と同じサイズの画像231の中の積分値を求めることを所望する全ての点を含む隣接4点メッシュに距離を割り振ることができる。
微分画像を整合化する処理は、上記で記載した方法の他、下記の参考文献5、6に記載された方法なども用いることができる。
参考文献5:Vishal M.Patel,Ray Maleh,Anna C.Gilbert,and Rama Chellappa,“Gradient-Based Image Recovery Methods From Incomplete Fourier Measurements”,IEEE TRANSACTIONS ON IMAGE PROCESSING,VOL. 21,NO. 1,JANUARY 2012.
参考文献6:Tal Simchony,Rama Chellappa,M.Shao,”Direct Analytical Methods for Solving Poisson Equations in Computer Vision Problems”,TRANSACTION on ANALYSIS and MACHINE INTELIGENCE,VOL.12,NO.5 MAY 1990.
上記参考文献5は、撮影データがX線CTやMRIのデータで、これ等のデータから作製した微分画像について、整合化処理を行うものである。参考文献5の整合化処理は、文献中の「V.IMAGE RECONSTRUCTION FROM GRADIENTS」に記載されている。
上記参考文献6は、撮影画像の影や光線から被写体の撮影面に垂直な方向の凹凸を示す微分画像を作製し、この微分画像の凹凸を示す微分画像の整合化処理を行うものである。
従って、上記参考文献5、6は、本実施形態とは全体の構成が異なり、本実施形態の全体の構成上の特徴である「入力画像の微分画像を求め、微分画像を変更し、変更した微分画像に対して、整合化処理をして線積分、または経路整合積分を行う」ものではない。
図31は、図1の画像処理装置のハードウェア構成例を示すブロック図である。
図31において、画像処理装置111には、プロセッサ11、通信制御デバイス12、通信インターフェース13、主記憶デバイス14および外部記憶デバイス15が設けられている。プロセッサ11、通信制御デバイス12、通信インターフェース13、主記憶デバイス14および外部記憶デバイス15は、内部バス16を介して相互に接続されている。主記憶デバイス14および外部記憶デバイス15は、プロセッサ11からアクセス可能である。
また、画像処理装置111の外部には、入力装置20および出力装置21が設けられている。入力装置20および出力装置21は、入出力インターフェース17を介して内部バス16に接続されている。
入力装置20は、例えば、キーボード、マウス、タッチパネル、カードリーダまたは音声入力装置などである。出力装置21は、例えば、画面表示装置(液晶モニタ、有機EL(Electro Luminescence)ディスプレイ、グラフィックカード等)、音声出力装置(スピーカ等)または印字装置などである。
プロセッサ11は、画像処理装置111全体の動作制御を司るハードウェアである。なお、プロセッサ11は、汎用プロセッサであてもよいし、画像処理に特化した専用プロセッサであってもよい。主記憶デバイス14は、例えば、SRAMまたはDRAMなどの半導体メモリから構成することができる。主記憶デバイス14には、プロセッサ11が実行中のプログラムを格納したり、プロセッサ11がプログラムを実行するためのワークエリアを設けたりすることができる。
外部記憶デバイス15は、大容量の記憶容量を有する記憶デバイスであり、例えば、ハードディスク装置やSSDである。外部記憶デバイス15は、各種プログラムの実行ファイルやプログラムの実行に用いられるデータを保持することができる。外部記憶デバイス15には、画像処理プログラム15Aを格納することができる。画像処理プログラム15Aは、画像処理装置111にインストール可能なソフトウェアであってもよいし、画像処理装置111にファームウェアとして組み込まれていてもよい。
通信制御デバイス12は、外部との通信を制御する機能を有するハードウェアである。通信制御デバイス12は、通信インターフェース13を介してネットワーク19に接続される。ネットワーク19は、インターネットなどのWAN(Wide Area Network)であってもよいし、WiFiなどのLAN(Local Area Network)であってもよいし、WANとLANが混在していてもよい。
入出力インターフェース17は、入力装置20から入力されるデータをプロセッサ11が処理可能なデータ形式に変換したり、プロセッサ11から出力されるデータを出力装置21で出力可能なデータ形式に変換したりする。
プロセッサ11が画像処理プログラム15Aを主記憶デバイス14に読み出し、画像処理プログラム15Aを実行することにより、入力画像を微分した微分画像を作成し、その微分画像を変更処理した変更微分画像を作成し、その変更微分画像を経路積分した経路積分画像を作成することができる。
この時、画像処理プログラム15Aは、図2の微分処理部211、微分画像変更処理部212および経路整合積分処理部213の機能を実現することができる。
なお、画像処理プログラム15Aの実行は、複数のプロセッサやコンピュータに分担させてもよい。あるいは、プロセッサ11は、ネットワーク19を介してクラウドコンピュータなどに画像処理プログラム15Aの全部または一部の実行を指示し、その実行結果を受け取るようにしてもよい。