mengineer's blog

ニッチなネタばかりですが。

JAISDK 画像データを表示する

JAISDKのネタが続きます、以前の記事はこちら。

mengineer.hatenablog.com

mengineer.hatenablog.com

ここまでは前準備でしたが、今回は画像を取り込んで表示する部分です、

引き続きSimpleImageDisplayのサンプルで見てみましょう。

SimpleImageDisplaySample : 別ウィンドウに画像を表示させる

startボタンで画像取込開始、新しいウィンドウが開き画像データが表示されます、
stopボタンで取込停止します。

f:id:mengineer:20170722130655p:plain

下記がその部分のソースです、前準備が色々面倒臭かった割にシンプルですね。

myCamera.StartImageAcquisition(true, 5) で画像取込開始します。

最初の引数は画像をウィンドウに表示するか?、なので通常はtrueにします、
次の5は画像取込用のバッファ数です。

取込停止はmyCamera.StopImageAcquisition()だけです。

ChildWindowSample:子ウィンドウに画像を表示させる

別のサンプルを見てみます、画像データの表示で新規Windowを開くのでは無く、
Form内の子ウィンドウ(picturebox1)に表示させるものです。
(実際は、こちらの方が良く使われるかも)

画面はこんな感じ、上半分はSimpleImageDisplayと全く同じですね、
同様にstart/stopボタンで画像取込開始/停止することが出来ます。

f:id:mengineer:20170802092351p:plain

startボタンの処理がこちら

9行目 myCamera.StartImageAcquisition(true, 5, pictureBox1.Handle)で、
pictureBox1のハンドルを渡しているのが、先ほどのサンプルとの違いです。

15~21行目は画像のリサイズ処理です、”Stretch video”をチェックすると、
画像全体を子ウィンドウのサイズに合うようにリサイズしてくれます。

6行目、チェックボックスの状態をmyCamera.StretchLiveVideoに設定し、
15~21行目で、StretchLiveVideoの状態に合わせて処理を切り替えています。

実際はこんな感じ。(カメラをテストパターン表示にしています)
左が画像全体(チェック有り)、右がチェック無し:左上のみ表示されています。

f:id:mengineer:20170802095058p:plain

ちなみにForm自体をリサイズした時にも同様の処理が入っています。

当たり前ですが、Formを横長に延ばすと、こんな感じで表示されます。 f:id:mengineer:20170802095703p:plain