画像を二次元配列に変換 ― 2010/09/08 15:00
LabVIEWの画像データを加工するため、配列に変換するサブVIを作成しました。
配列に変換することで、画像の一部を取り出したり、画像を加工する処理を、配列処理として行うことができます。
加工した後の、配列は、「非平坦化ピックスマップ描画」関数を使って画像にすることができます。
使い方は簡単で、画像のデータをつないで、画像の色深度を指定します。
実行するとデータ配列が出力されます。
色深度は、1ビット、4ビット、8ビット、24ビット(True Color)の4種類に対応しています。
サンプルは会社のサイトに掲載しましたので下記をご覧ください。
AquesTalkで読み上げる ― 2010/09/01 15:00
とても有名な、日本語音声合成のライブラリのAquesTalkを使って音声を出すサブVIをつくりました。
AquesTalkに関しての詳しい情報は、株式会社アクエストのサイトをご覧ください。
株式会社アクエスト
AquesTalkのかな表記の音声記号列を「koe」に入力します。
「speed」は読み上げの速度で、50-300 の間で指定してデフォルトは100で、大きいほど速くなります。
AquesTalkは、100から204までのエラーコードを出します。
ここでは、エラーコードに5000を加えて、ユーザ定義領域の5100から5204までのコードに変換しています。
サンプルは会社のサイトに掲載しましたので下記をご覧ください。
音を連結する ― 2010/08/31 15:00
LabVIEWで音(波形データ)を連結するサブVIを作成しました。
Aの音の後ろに、Bの音を連結して再生すると、Aの音が鳴った直後にBの音が鳴ります。
内容は、簡単で波形データの中の配列を取り出し連結して新しい波形データを作っています。
ただし、連結する二つの音のサンプリング周期は同じでなければいけません。
サンプルは会社のサイトに掲載しましたので下記をご覧ください。
配列を編集する ― 2010/08/30 15:00
LabVIEWで配列を使うとき、注意が必要な点があります。
配列のデータを置き換える関数の「部分配列置換」の関数では、配列のサイズより大きい位置を指定すると無視されます。
あくまでも置き換えなので、置き換えるべきデータが無いなら実行できないということです。
しかし、画面上の制御器などで配列を使う時には、データが無い所に入力すると、自動的に配列のサイズが大きくなります。
こちらの方が、感覚的に解りやすい場合も多いです。
今回は、配列の制御器にデータを書き込むのと同じように、配列データを編集できるサブVIを作成しました。
配列のサイズの範囲内なら、通常の「部分配列置換」と同じ操作です。
配列のサイズより大きい位置を指定した場合には、配列サイズを大きくして、書き込みます。
サンプルは会社のサイトに掲載しましたので下記をご覧ください。
Htmlの属性情報を取り出す ― 2010/08/27 15:00
LabVIEWを使ってWeb上のデータを利用する時に、HTMLの情報を解読する必要があります。
HTMLのタグと呼ばれる記号には、属性情報を追加することが出来ます。
例えば、リンクを表すタグの < a > では、リンク先属性 "href" を追加して、
< a href="http://www.tectos.co.jp/" > と表記します。
今回は、Htmlの中を検索して、特定のタグの中にある特定の属性情報をリストで取り出すサブVIを作りました。
使い方は簡単で、検索の対象となるHtmlドキュメントを、"HTML"に入力します。
"Section Name"にタグの名前、例えば"a"と入力します。
"Attribute Name"に属性の名前、例えば"href"と入力して実行します。
すると、"Value List"から属性情報のリストが出力されます。
この例の場合は、入力したHTMLの中のリンク先のアドレスをリストで出力してくれます。
サンプルは会社のサイトに掲載しましたので下記をご覧ください。
境界でチャートの色を変える ― 2010/08/26 15:00
波形チャートのプロットの色を途中で変えると、プロット全体の色が変化してしまいます。
一本の波形を波形の途中で色を変えることはできません。
二本の色違いの波形を巧く表示することでまるで一本の波形が色を変えているように見せることができます。
二本の色違いの波形を表示するために、一方が表示されている時には、もう一方のラインを消します。
ラインを消すには、そこでの値を"NaN"にするとチャートからプロットが消えます。
NaNでプロットを消すと、その前後のラインも消えてしまうため、はじめからラインは表示しません。
サンプルは会社のサイトに掲載しましたので下記をご覧ください。
値の変化を調べる ― 2010/08/25 15:00
繰返しループの中で値が変化していないか調べる場合があります。
通常はシフトレジスタで前回の値を次の回に送り、比較をします。
しかし、数が増えるとシフトレジスタも増えてしまい場所を取ります。
たくさんの値の変化を調べるためのサブVIを作りました。
1つのサブVIで4つまでの値を調べることが出来ます。
調べたい値を"Value 1"から"Value 4"までに接続します。
実行すると、"V1 Change?"から"V4 Change?"に、各値が変化したかの結果を出力します。
さらに多くの値を調べたい場合には、"ChangeList"を使用します。
サンプルは会社のサイトに掲載しましたので下記をご覧ください。
Waveファイルを再生する ― 2010/08/24 15:00
サウンドデータファイルのWaveファイル(拡張子.wav)を再生するサブVIです。
音声でのメッセージを再生したり、警告音を鳴らすなど様々な用途が考えられます。
最初に、指定されたファイルが有るか、拡張子が".wav"か、等を調べます。
問題が有る場合にはファイルを選択するダイアログを開きます。
次に、VIライブラリの「サウンドファイル簡易読取り」でファイルを開きます。
続いて、サブVIの「PlaySound.vi」で再生します。
一連の処理を一つのサブVIで行いますので、実装が簡単ですし、信頼性も上がります。
サンプルは会社のサイトに掲載しましたので下記をご覧ください。
フィードバックノードで機能的グローバル ― 2010/08/23 15:00
機能的グローバル変数は、データ共有のための機能に加えて様々な処理を追加出来る便利なVIです。
通常は、一回しか実行されないループに、初期化されていないシフトレジスタを作って実装します。
今回は、シフトレジスタの代わりに、フィードバックノードを使った、機能的グローバル変数の作り方を紹介します。
フィードバックノードは、シフトレジスタとほぼ同じ役割を果たす関数です。
シフトレジスタと同様に、データの保存するためのメモリ領域を持ち、前回の実行で書き込まれた値を保持しています。
フィードバックノードを使うと、ループが不要なので全体がシンプルに見えます。
しかし、ダイアグラムの見た目がデータフローと矛盾するので、慣れないと解りにくい場合があります。
サンプルは会社のサイトに掲載しましたので下記をご覧ください。
Htmlのデータを取り出す ― 2010/08/20 15:00
Webサイトを記述するHtmlは、タグと呼ばれる見出しによって、いくつものセクションが作られ、セクションの集まりとして表現されています。
Htmlを解読するには、このセクションの情報を適切に取り出す必要があります。
Htmlのデータから、指定した名称のタグを探して、そのタグで指定されたセクションのデータを取り出します。
例えば本文を示すタグ< body>でも、< BODY>や、< Body>などの書き方も出来ます。
このVIでは、書き方のバリエーションにも対応した処理を行っています。
サンプルは会社のサイトに掲載しましたので下記をご覧ください。
最近のコメント