画像処理
画像処理-画像間演算-
画像処理に利用される「画像間演算」
ご無沙汰しております。4月から2年目になったKです。
時間の経過は早く、気付くと入社から1年が経っていました。
まだまだ分からない事も多く、学ぶべきことは沢山ありますが日々努力を重ね精進してまいります。
今回、私がご紹介するのは、画像処理で利用される「画像間演算」についてです。
画像間演算は、複数の画像同士の演算処理です。
イメージとしては、合成画像に近いかと思います。
今回の記事では画像そりの際に利用される「画像間演算」について、
弊社画像解析ソフトウェア「WinROOF」を使用しご紹介いたします。
【例. 2枚の画像間での加算処理前と後】
上記のように、画像間演算を使用することで対象画像間で合成処理を行い、重なった部分のみを強調することなどが可能です。
画像間演算の種類
今回は弊社画像解析ソフトウェア「WinROOF」シリーズに搭載の10個の演算方法をご紹介いたします。
弊社画像解析ソフト「WinROOF」では、算術演算と論理演算を搭載しています。
算術演算
まずは算術演算からです。
算術演算では、2枚の画像のそれぞれの対応する画素にて演算処理を行います。
WinROOFでは「加算」、「減算」、「乗算」、「除算」、「最大値」、「最小値」、「平均値」の7つの算術演算を搭載しております。
今回は以下の画像をもとに算術演算の処理を実行しました。
【加算】
加算処理では2枚の画像の対応する画素の画素値で和を求めます。
今回使用した画像は8bitのグレースケールです。
8bitの画像は0~255の階調で表現され、0に近いほど暗く、255に近いほど明るく表現されます。
よって、背景部分が重なり合った部分に関しては明るく、
背景部分と粒子が重なり合った部分は粒子の色が明るく(薄く)、
粒子と粒子の重なり合った部分は少し明るく(薄く)なります。
【減算】
減算処理では2枚の画像の対応する画素の画素値で差を求めます。
8bitの画像2枚の画像間の差を求めた際に、階調の値が0以下の場合は0とし、255以上の場合は255とします。
よって今回は、背景部分から粒子部分の差を求めた画素が出力されます。
弊社画像解析ソフトウェア「WinROOF」シリーズでは、
演算後の正(+)部分、負(-)部分、絶対値の3種類から出力が可能です。
【乗算】
乗算処理では2枚の画像の対応する画素の画素値で積を求めます。
今回の画像ではそれぞれの画素値の値が大きく階調の最大値255を超えてしまうため、
すべての画素値が255となり画像は真っ白になります。
【除算】
除算処理では2枚の画像の対応する画素の画素値で商を求めます。
今回の画像ではそれぞれの画素値の値に差が少ないため、
ほとんどの部分で画素値が1となり画像は真っ黒になります。
画像を2値化することで、真っ黒に見える中でも多少の画素値の差が確認できます。
【最大値】
最大値処理では2枚の画像の対応する画素の画素値の最大値を求めます。
画像内の背景部分(グレーの部分)の方が画素値が大きく、
全体的に画像の背景部分が多くなります。
【最小値】
最小値処理では2枚の画像の対応する画素の画素値の最小値を求めます。
画像内の粒子部分(黒色部分)の方が画素値が小さく、
全体的に画像の粒子部分が多くなります。
【平均値】
平均値処理では2枚の画像の対応する画素の画素値の平均値を求めます。
画像内の背景部分(明るい部分)と粒子部分(暗い部分)の平均値をとるので、
背景部分の多い今回の画像は全体的に明るさが増し、粒子の重なり合う部分は暗さが維持されます。
論理演算
論理演算では、2進数で表された値の1は入力、0は未入力となります。
WinROOFでは、論理和、論理積、排他的論理和の3種類の演算機能を搭載しております。
まずは、それぞれの演算処理についてご説明します。
【論理和】
論理和の処理は、ORの処理になります。
例えば、10進数で170は2進数で10101010、49は00110001と表します。
10進数で171と49の論理和は187になります。
つまり、論理和は、2つの画像の対応する画素のbitそれぞれの値がどちらか、または、両方が1の場合入力することになります。
上記の結果を表とベン図にして表すと以下になります。
【論理積】
論理積の処理は、ANDの処理になります。
例えば、10進数で170は2進数で10101010、49は00110001と表します。
10進数で171と49の論理積は32になります。
つまり、論理積は、2つの画像の対応する画素のbitそれぞれの値が両方1の場合入力することになります。
上記の結果を表とベン図にして表すと以下になります。
【排他的論理和】
排他的論理和の処理は、XORの処理になります。
例えば、10進数で170は2進数で10101010、49は00110001と表します。
10進数で171と49の排他的論理和は155になります。
つまり、排他的論理和演算は、2つの画像の対応する画素のbitそれぞれの値どちらかが1の場合入力、両方が1または0の場合未入力になります。
上記の結果を表とベン図にして表すと以下になります。
続いて、論理演算3種類を2値化画像に適応した結果です。
今回は以下の画像をもとに論理演算の処理を実行しました。
【論理和】
2値化された画像では、2値化部分が1、されていない部分が0の扱いになります。
論理和は2つの画像の対応する画素のbitそれぞれの値がどちらか、または、両方が1の場合入力することになるので、画像それぞれで2値化されている部分と重なっている部分どちらもが出力されています。
【論理積】
2値化された画像では、2値化部分が1、されていない部分が0の扱いになります。
論理積は、2つの画像の対応する画素のbitそれぞれの値が両方1の場合入力することになるので、画像それぞれで2値化されている部分の重なった部分のみが出力されています。
【排他的論理和】
2値化された画像では、2値化部分が1、されていない部分が0の扱いになります。
排他的論理和は、2つの画像の対応する画素のbitそれぞれの値どちらかが1の場合入力、両方が1または0の場合未入力になるので、画像それぞれで2値化されて重なっていない部分のみが出力されています。
画像間演算の機能を実際に試されたい方向けに、WinROOFシリーズの無料体験版(デモ版)も用意しています。
気になる方は下のリンクからダウンロードしてみてくださいね。
■ ■ 無料体験版(デモ版)をダウンロードご希望の方はここをクリック ■ ■