ここまでできる!アドオンなしで画像処理

その他

スポンサーリンク

この記事では、LabVIEWで画像処理を行う場合に使用されるアドオンソフトは使用せず、敢えて標準関数のみで様々な処理を行う方法を紹介してきた本ブログの記事をまとめています。

スポンサーリンク

LabVIEWによる画像処理

LabVIEWで画像処理を行う場合、最もお勧めな方法は、既に画像処理用に開発された関数を使用することであり、それがVision Development Module、と呼ばれるアドオンソフトになります。

これはこれで便利なので、本ブログでも度々このアドオンを使用したプログラムの紹介はしてきました。

ただ、これは有償ソフトウェアなので、気軽に始めてみようという場合には少々ハードルが高かったりします。

一方で、LabVIEWで画像をピクチャデータとして扱う方法があり、このための関数は標準関数(アドオンなど必要とせずにLabVIEWに元々備わっている関数)として使用できます。

Vision Development Moduleでできるすべての処理がこの標準関数だけでできるわけではないですが(頑張ればできる?のかもしれませんが圧倒的に非効率だと思います)、一部の処理は近しいことが実現できるのも確かです。

そんな、標準関数を用いて画像処理を行うためのプログラムについて本ブログで紹介しているものについてまとめてみました。

前提知識

標準関数、具体的にはピクチャに関わる関数ですが、こちらを使用するのも多少なり心得がないと扱いずらいかもしれません。

ピクチャに関する基本的な操作や考え方は以下の記事で紹介しています。

一番大事なのは、画像、ピクチャをピクセル値の配列として扱う点です。

基本的に2次元配列の操作を数多くします。

そこそこ大きい画像(=配列サイズが大きいデータ)であっても、単純な処理であればそこそこ早く処理することができますが、ピクセル値の四則演算や2次元配列の行あるいは列方向の操作、転置、値の入れ替え、この辺りはある程度慣れが必要かなと思います。

標準関数で実装する

では、標準関数を用いたピクチャの操作でどういった画像処理ができるかを挙げていきます。

画像の色補正

画像の色を補正するのはピクセル値の操作となります。

例えばグレースケール画像では各ピクセル値はU8で表され、カラー画像ではU32の数値であり、R、G、BをそれぞれU8で表したものを合わせています。

これらを単に数字としてみなし適切な演算をすることで色味を変更することができます。

その例として、明るさ、コントラスト、ガンマ値補正を行うことができるという例を紹介しています。

部分的ズーム

画像を2次元のピクセル値配列と見なせば、配列操作を行うことで画像の一部を抜き出すことも簡単にできます。

抜き出す操作だけでは面白くないですが、抜き出した一部分に対してさらに別の画像処理を行わせることで、画像全体を扱わず(つまり大きな配列を扱うことなく)必要な部分にだけ画像処理を行わせることも可能になります。

ヒストグラムを測る

画像全体の色の分布を表すためにはヒストグラム表示するという方法がありますが、RGBの分布をみるだけでなく、HSVやHSLの形式での表示にも対応させることができます。

演算は、LabVIEWの四則演算の関数を使うと見た目が煩雑になるので、数式ノードを使って整理した状態で行わせることができ、その実装例を紹介しています。

ラインプロファイルを取得

ユーザーが任意に引いたある線に沿って、ピクセル値がどのように変化しているかをグラフに表示します。

画像をピクチャ上に表示し、そのピクチャに対して線を引くという操作はサンプルをベースにすれば簡単に実装できます。

キャリパ処理

画像上における特徴量を測るためにキャリパ処理が使えます。

例えば、ユーザーが任意の点を複数指定したとして、点を結んだ線分の中点座標、線分の水平および垂直線からの角度、2つの線分がなす角度、といった分布を調べることができます。

粒子の枠を強調する

画像の中にある特定領域(周りとのコントラストが一定以上ある部分)を粒子と見なし、その粒子の縁を枠として囲うといった処理ができます。

枠はピクチャ画像とは別にXYグラフ上の点群として取り出せます。

フィルタをかける

画像加工の一種としてフィルタ処理があります。

結局これもピクセル値配列の処理の一環で、数値に対する処理、配列に対する処理を駆使することになり、演算処理の仕方を変えれば様々な種類のフィルタをかけることができて画像を見やすくあるいは他の処理に対して加工しやすくなります。

本記事では、LabVIEW用のアドオンを使用せずに、標準関数だけでピクチャへの操作をすることによって様々な画像処理を行うための記事をまとめました。

早い、効率がいい、もっと他の処理をしたい、という場合には、Vision Development Moduleの検討がいいと思いますが、これが無くても「頑張れば」色々とできる、ということを紹介できたと思います。

必然的に2次元配列の操作を頻繁に行うので、LabVIEWに慣れていない方は苦労する点も実際多いかもしれません。

一方で、配列操作が苦手な方が少しでも得意になるにはいい練習材料になるかなと思うので、修行と思って挑戦してみてください。

ここまで読んでいただきありがとうございました。

コメント

タイトルとURLをコピーしました