NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

複数枚取得した画像のピクセルずれの修正について

はじめて投稿させていただきます。

現在大学の研究でLabVIEWを用いてイメージングをしています。

光強度を変化させながら画像を36枚CCDカメラにて取得し、各ピクセルごとに光強度の変化を数値解析しイメージング画像を表示しているのですが、使用している実験装置が原因で36枚の画像が撮影するたびに数ピクセルから数十ピクセル回転するようにずれてしまいます。実験装置を改良するにはお金がかかるため、まずは画像処理を用いてこのピクセルずれを修正したいのですがプログラミング初心者でどこから手をつければいいのかわからない状況です。

一般的に画像のピクセルずれを修正する場合どのようなプログラムを組めばいいのか教えていただけないでしょうか?

 

何卒、よろしくお願いします。

 

0 件の賞賛
メッセージ1/6
6,320件の閲覧回数

画像に詳しいわけではありませんが、ピクセルずれを直すのであれば、

一度画像データを配列データに変更してはどうでしょう。

 

この関数が使えるかと思います。IMAQ ImageToArray VI
http://zone.ni.com/reference/en-XX/help/370281P-01/imaqvision/imaq_imagetoarray/

Certified LabVIEW Developer
There are only two ways to tell somebody thanks: Kudos and Marked Solutions

GCentral
0 件の賞賛
メッセージ2/6
6,293件の閲覧回数

返信ありがとうございます

 

実は今使用している実験用のプログラムではすでにIMAQ ImageToArray VIを使い、画像を配列データに変換しています。

何ピクセルずれているか計算する手法、実際に画像をピクセルずれの分動かして修正する方法をご存知でしたらご教授願いたいです。

 

注文が多くなってしまい申し訳ないのですがよろしくお願いします。

 

 

0 件の賞賛
メッセージ3/6
6,279件の閲覧回数

こんにちは。

 

画像処理に関する投稿は、参考になる画像数枚、そしてそれらの画像に対してどういった処理を希望されているのか(Windowsのペイントなどで補足説明)、そして実際に使用されているVI などを用意してもらわないと回答しにくいので、よければ添付してください。

 

ちなみに画像が回転していると判断できる部分が明確であれば(被写体の輪郭、背景に必ず写っているもの、などなど)

その部分を使用して1枚めと2枚めの画像の回転度数やズレを計算できるのではないかと。

 

0 件の賞賛
メッセージ4/6
6,267件の閲覧回数

ご返事ありがとうございます。

参考として実験中に撮影した画像を添付します。

 

私の実験は36枚撮影したグレー画像の光強度の変化から偏光状態をイメージングするものです。

ですが光軸と実験装置(主に偏光板)を完璧に垂直に合わせることが不可能なため、屈折の影響で光軸がずれてしまい、その結果、画像が回転するようにずれてしまいます。

添付したGIF画像は実験中に取得した36枚の画像のうち18枚を連続再生したものです。油性ペンで書いたマーキングが少しずつずれていることがわかるとおもいます。

私の目標は画像処理でこの画像のずれの量をピクセル単位で計算し、36枚すべてがきれいに重なるように修正することです。

VI等のプログラムについてはまだ手探りの状況で作れてはいません。

 

まずはアドバイスいただいた被写体の輪郭から画像のずれを修正できないか試してみます。ありがとうございます。

 

 

0 件の賞賛
メッセージ5/6
6,239件の閲覧回数

添付ありがとうございます。

 

画像が実際に回転しているのではなくて、回転するようにズレているんですね。

油性ペンで書いたマーキングが必ず表示されているのならば、

「エッジ検出」や「直線エッジ検出」でマーキングの始まりを検出して、「数量化」を適用すればピクセルでの位置を算出できます。

もちろん数値配列に転換したあとに似たような処理をすることは可能です。

 

ちなみにIMAQやVisionの関数は扱い方が難しいのでそのまま使うのではなく、LabVIEW に付属しているVision Assistant で行いたい画像処理の

スクリプトを作り、LabVIEWのVI に変換した後のものを編集した方が簡単ですよ。

0 件の賞賛
メッセージ6/6
6,216件の閲覧回数