NI製品ディスカッション

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

LabVIEWのフロントパネル上の画像保存について

LabVIEWのフロントパネル上の画像の保存について質問があります。

フロントパネルに表示されるxy平面視点や3D視点のグラフの画像を保存する際、

灰色の枠やカラーバーの部分を除いて、白背景の領域の部分のみを保存する

ことは可能でしょうか。

もし可能であれば、その方法をご教授頂けるでしょうか。

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

3Dグラフですか?

基本的には制御器の画像を取得し非平坦化してから切り出すのですが、3Dグラフは描画領域のサイズが取得できないので切り出し範囲を決め打ちしないといけません。

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

J.H.Watson様

分かりました。3Dグラフの切り出し範囲の決め打ちはLabVIEWのプログラム内で

行うことはできますか?

0 件の賞賛
メッセージ3/9
1,490件の閲覧回数

VIスニペットを添付します。上半分はLabVIEWに付属のサンプルVIです。

インボークノードで画像が取得できる制御器で使えると思います。

Save Picture_3D Mesh_Fixed Area.png

 

 

0 件の賞賛
メッセージ4/9
1,484件の閲覧回数

J.H.Watson様

添付していただいた画像を参考にしたところ、フロントパネルの画像を

必要な範囲の切り取りを行って取得できました。ありがとうございます。

 

関連した質問ですみません。

現在、3D Surfaceという表示器でフロントパネルに生成された画像を

インボーグノードで取得しているのですが、プログラムを実行して計測すると、

フロントパネルに表示される画像と保存される画像では一回分ずれがあります。

一回目の計測ではフロントパネルに計測結果が表示されますが、保存された

画像は軸のみ(白の背景)となっており、もう一度計測するとフロントパネルの

画像は新しく更新され、一回前の計測結果のグラフが画像として保存される、

といった形です。

計測した結果をフロントパネルと画像のどちらにも同時に反映させるには

どうすればよいでしょうか。

 

また、一つの表示器やフロントパネルの画像から3Dと2D視点の二つの画像を

取得することは可能でしょうか。

 

0 件の賞賛
メッセージ5/9
1,453件の閲覧回数

一回遅れるというよりは、グラフの描画が完了しないうちに画像を取得してしまうのが原因です。プログラムでファイル名を生成して保存するとそうなります。

画像を取得するメソッドの前に若干の遅延時間を置くと改善すると思います。

Save Picture_3D Mesh_Fixed Area_2.png

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

> また、一つの表示器やフロントパネルの画像から3Dと2D視点の二つの画像を取得することは可能でしょうか。

制御器のプロパティはプロパティノードで操作できます。グラフの表示方向をセットしてから画像を取得すれば良いでしょう。

 

添付のVIは、「画像をファイルに保存」メソッドを使って一時ファイルに書き出し、それを再読み込みして切り出します。

このメソッドは自動的に描画完了後(しかも描画範囲+枠線)のイメージを取得してくれます(ただし制御器パレットのアイコンでバックがグレーのヤツ特有です)。

 

使用するグラフに合ったメソッドのほうを使ってください。

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

J.H.Watson様

添付されたVIを参考にしたところ、こちらで待ち時間を指定したりせずに

自動で描画完了後のグラフをトリミングし、画像を保存することが出来ました。

ありがとうございます。

 

2Dグラフ(XY視点)についてですが、グラフが描画される白い領域だけでなく、

軸の名前と目盛の数値を含めて、こちらも自動でグラフの描画完了後に

トリミングをして画像の保存を行うようにプログラムを作成することは

できるでしょうか。

 

インボーグノードを用いた方法について、「画像を取得」ではグラフの描画を

待つための時間設定が必要であり、「画像をファイルに保存」ではグラフの

描画完了を自動で待つものの、白い領域の外側は保存されないので、

どうすればよいでしょうか。

0 件の賞賛
メッセージ8/9
1,394件の閲覧回数

「画像をファイルに保存」を描画完了の待ちに使えば「遅延時間」VIは無くせますね。

・・・ってやってみたらグラフの境界と描画エリアの位置関係は固定のようなので、グラフのサイズ変更に対応できるかもしれないと気がつきました。

 

添付のVIは、最初に3Dを「画像をファイルに保存」して描画サイズを取得し、2Dは「画像を取得」して3Dのサイズから割り出したオフセットを加えて切り出し範囲を決めています。

ウィンドウサイズを変えて実行してみてください。

両方のメソッドを持つ制御器でないとダメだし、フォントサイズが変わると調整が必要かもしれません。

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