NI製品ディスカッション

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

画像のBCG調整について

解決済み
解決策を見る

質問させてください。

現在、VIでグレー画像をフォルダから取り込み、BCGLookUPを用いて、画像の輝度、コントラストを変換しています。

以下のやりたいことが実現できていません。

 

お知恵を拝借したく、VIを添付していただければ幸いです。

 

 

やりたいこと

①VI上で実行させたときに、元画像・変換画像を比べながら調整したく

 ・調整は、BCGの数値でではなく、カーソル調整にしたい。

  (カーソルで合わせたときの数値も表示したい)

 ・画像の拡大縮小も元画像・変換画像が連動させたい

 

➁上記①のあとに、エッジ検出をしたいのですが、

 エッジを検出している画像も併せて表示したい

 (VisionAssistantでエッジ検出した画像を表示したい)

 

➂上記① ⇒➁の順で実行させたく、上記①の調整が終わったら

 ボタンを押して、➁に移る、ようにしたい

 

 

よろしくお願いします。

 

 

 

0 件の賞賛
メッセージ1/7
2,271件の閲覧回数

平素よりNI製品をご愛顧頂きありがとうございます。
日本ナショナルインスツルメンツ技術部の上野です。

 

1. LabVIEW Vision Development Moduleをインストールすると、下記にBCB Lookupのサンプルプログラムが保存されますので、そちらをご参照ください。

サンプルは、下記にございます。

ヘルプメニュー >> サンプルを検索 >> 参照タブ >> ツールキットとモジュール >> 画像 >> 画像処理 >> BCG Lookup.vi

このサンプルではスライドバーで輝度、コントラスト、ガンマ値を変更して別の表示器に結果を表示します。

 

 

2. オリジナル画像とエッジ検出後の画像を表示するには、各自IMAQ Createでメモリ領域を確保して別々のImageデータを表示できるようにする必要があります。

上記でご紹介したサンプルでも同様の処理が行われており、参考になるかと思います。なお、Vision Assistantではありませんが、下記にエッジ検出のサンプルプログラムがございます。

 

ヘルプメニュー >> サンプルを検索 >> 参照タブ >> ツールキットとモジュール >> 画像 >> キャリパ >> Edge Detection.vi

 

 

3. 順次実行だけでしたら、エラー配線を数珠つなぎしてデータフローか、シーケンスストラクチャによるシーケンス処理にして、処理の間に次に進む際のきっかけを待機するループ処理をいれればよいかと思います。

 

ルックアップ調整後にエッジ検出して、再度ルックアップ値の調整を行うなどより柔軟な処理をおこないたいのでしたら、ステートマシンデザインパターンの適用を検討することをお勧めします。

 

これは、状態遷移図でステートを切り替えて処理する手法で、LabVIEWでは比較的簡単に実装することが可能です。サンプルプログラムが下記にございますので、ご参照いただけると幸いです。

 

ヘルプメニュー >> サンプルを検索 >> 参照タブ >> 基本機能 >> ループおよびストラクチャ >> ステートマシンの基礎

 

 

 

 

 

0 件の賞賛
メッセージ2/7
2,180件の閲覧回数

NI 上野様

 

ご回答ありがとうございます。

 

BCG Lookup.viを拝見しました。こちらを活用させていただきます。

ちなみに、BCG Lookup.viの中の元画像、変換画像と2つの拡大縮小を連動させたいのですが

方法はありますでしょうか?

0 件の賞賛
メッセージ3/7
2,160件の閲覧回数

見逃しておりました。申し訳ございませんでした。

Image Display表示器のプロパティノードには、Zoomに関するものがございますので、連動元の表示器のプロパティノードを読み取りにして、連動先の表示器のプロパティノードを書き込みにし、同じZoom情報と画像位置を共有すればよいかと思います。

 

SS1.png

 

プロパティノードは、ダイアグラムでImage Display表示器のオブジェクトを右クリックして、作成 >> プロパティノード >> Zoom Singleを選択して配置します。そのプロパティノードを下に引き延ばして拡張し、2つ目の項目にImage Center Positionを選択します。これでズーム情報と画像の中心位置が読み取れます。

これと同じものを連動先のImage Display表示器でも作成して、プロパティノードを書き込みにすることで同じ情報を使用できます。

 

なお上記の動作は、BCB Lookupのサンプルに拡大縮小やエッジ検出を追加した添付のプロトタイププログラムで確認しました。

 

 

0 件の賞賛
メッセージ4/7
2,139件の閲覧回数

上野様

 

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

添付のVIのように作成しましたが、元画像、変換画像の拡大縮小が連動しません。

 

プロパティノードを入れる位置が正しくないでしょうか?

すべてをダウンロード
0 件の賞賛
メッセージ5/7
2,128件の閲覧回数
解決策
トピック作成者sakana55が受理

ループ中に拡大縮小したものがループ停止後に連動するように作成されているようですが、プロパティノードの後にすぐIMAQ Dispose VIで画像を削除しているため結果が分からないのだと思います。

 

IMAQ Dispose VIをダイアグラム無効ストラクチャで無効化してお試しください。

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

上野さま

 

本件、ありがとうございます。

解決致しました。助かりました

0 件の賞賛
メッセージ7/7
2,102件の閲覧回数