サンプルプログラム

エディットコントロールに表示されるグラフィックをCogDisplayに表示する(AddGraphicsContents)

ビジョンツールのエディットコントロールに表示されるグラフィックと同じものを、CogDipslay に表示するプログラムです。AddGraphicsContents というサブルーチンを作成し、流用します。エディットコントロールの【グラフィックス】タブを、プログラムで操作…

ダイアログウィンドウに画像を表示する

ダイアログウィンドウに画像を表示するプログラムです。ダイアログウィンドウに画像を表示するために ccWin32Display を使います。CWnd の派生クラスを作成することで、画像上でマウス操作が正しく行えるようになります。製品:CVL動作確認バージョン:6.8フ…

ネイティブコマンドを送受信する

ネイティブコマンドを送受信するプログラムです。VS2003 で作られたものがあったので、VS2005 や VS2008 で動作するように変更しました。※ Telnet ポート 23 はファイアウォールでブロックされているかもしれないので、そのときはポート 3000 などに変更しま…

CADインポート

CADインポートのサンプルプログラムです。CADの寸法と、画像の座標を合わせるために、CogFixtureTool を使います。CADと画像座標とのスケール比が、既知でなければなりません。または、カメラキャリブレーションを行うか、手動で値を調整します。詳細は、フ…

CogAcqFifoToolのビデオフォーマットを変更する

例えば、MVS-8504 フレームグラバを使ったとき、CogAcqFifoTool が使用するデフォルトのビデオフォーマットは Sony XC-HR50 640×480 です。他のカメラを使うときはビデオフォーマットを変更します。記述例を示します。VB.NET:Dim mAcqTool As CogAcqFifoTool…

ブロブの内側を塗りつぶした面積と重心を求める

ブロブの通常のパラメータに、クリーンナップ=塗り潰し、最小領域=塗り潰す面積、がありますが、例えば、ドーナツ形状などで、面積が、穴>ブロブ、になる場合は、このパラメータは使えません(面積が最小領域未満のブロブが未検出になります)。重心は、…

ブロブの内側を塗りつぶした面積と重心を求める

ブロブの通常のパラメータに、クリーンナップ=塗り潰し、最小領域=塗り潰す面積、がありますが、例えば、ドーナツ形状などで、面積が、穴>ブロブ、になる場合は、このパラメータは使えません(面積が最小領域未満のブロブが未検出になります)。重心は、…

画像取込と画像処理をマルチスレッドで行う

画像取込と画像処理をマルチスレッドで行うプログラム(AcqThread_VisionThread、または、overlap)は、高速アプリケーションにおいて効果的で す。取込スレッドは、必要なタイミングにカメラから画像を取り込んで、画像をキューに格納します。処理スレッド…

画像取込と画像処理をマルチスレッドで行う

画像取込と画像処理をマルチスレッドで行うプログラムは、高速アプリケーションにおいて効果的です。取込スレッド(このサンプルではメインスレッ ド)は、必要なタイミングにカメラから画像を取り込んで、画像をキューに格納します。処理スレッドは、キュー…

ツール実行をカスタマイズする

QuickBuild で準備したビジョンツールの実行をカスタマイズするサンプルです。画像取込は Image Source を使います。それに続くいくつかのビジョンツールも順番に実行します。実行順序をカスタマイズしたいビジョンツールを CogToolGroupDisable1 に作成しま…

GigE Vision カメラでトリガミスを検出する

GigE Vision カメラで、ハードウェアトリガ画像取り込みを行ったとき、画像のタイムスタンプの間隔から、トリガミスを検出するプログラムです。製品:VisionPro動作確認バージョン:7.0SR1カメラ:Basler acA1300-30gc言語:ジョブスクリプトVB.NETgige_time…

特定の種類のフレームグラバ(GigEカメラ)を取得する

CogFrameGrabbers を使ったときは、すべての、フレームグラバ、GigEカメラ、IEEE1394カメラを、取得します。それらのインデックス番号はシステム依存です。 CogFrameGrabberGigEs や CogFrameGrabber8500s のように指定すれば、特定の種類のフレームグラバ(…

CogDisplay上のマウス位置を表示

CogDisplay上のマウス位置を表示するプログラムです。CogDisplay に MouseMove のイベントを追加します。渡される引数の (x, y) は、CogDisplay の座標なので、MapPoint で画像の座標に変換します。製品:VisionPro動作確認バージョン:4.2言語:VB.NET、C#…

イーサネットで受信した文字をSendKeysで他アプリにキー入力

DM200 で読み取りし、イーサネットで受信した文字を、SendKeys関数を使って、他アプリにキー入力するプログラムです。メモ帳で動作を確認しました。(※Excel は SendKeys が正しく動作しませんでした。)1個目は、受信文字をテキストボックスに表示しますが…

イーサネット通信の簡単なプログラム

DataMan用のイーサネット通信の簡単なプログラムです。While 文で繰り返すだけなので、止めるときは、デバッグ停止します。正しく停止や中断したい場合は、タイマーコントロールかマルチスレッドで書き換えてください。製品:DataMan動作確認バージョン:3.6…

フォームのコントロールに他のスレッドから書き込むとエラーになる

フォームのコントロールに、他のスレッドから、直接、データを書き込むことは、Visual Studio が禁止しています。フォームのスレッドで作成したコントロールのプロパティに、他のスレッドからは、直接、書き込めないので、InvokeRequired、Invoke、Delegate …

マスタースレーブ設定で同時取り込みを行う

複数台カメラ使用時に、マスタースレーブ設定を行って、画像の同時取り込みを行うサンプルです。MVS-8504 フレームグラバを使って動作を確認しています。CameraLink カメラや GigE Vision カメラを使用するときは、マスタースレーブの機能は無いので、トリガ…

マスタースレーブ設定で同時取り込みを行う

複数台カメラ使用時に、マスタースレーブ設定を行って、画像の同時取り込みを行うサンプルです。MVS-8504 フレームグラバを使って動作を確認しています。CameraLink カメラや GigE Vision カメラを使用するときは、マスタースレーブの機能は無いので、トリガ…

左右反転疑似ライブ

左右反転疑似ライブのプログラムです。通常のライブ表示は、カメラからの画像そのままなので、反転した画像は、表示できません。反転した画像でライブ表示したいときは、画像取り込み、反転処理、表示を繰り返します。StartAcquire と CompleteAcquire の組…

画像をセーブ・ロードする

画像をセーブするコード例を示します。VB.NET:Dim ImageFile As CogImageFile ImageFile = New CogImageFile ImageFile.Open(SaveFileDialog1.FileName, CogImageFileModeConstants.Write) ImageFile.Append(Image) ImageFile.Close()C#:CogImageFile ImageF…

表示しているグラフィックと画像をビットマップ保存する

表示しているグラフィックと画像をビットマップ保存するには、CogDisplay の CreateBitmapContent を使います。コード例を示します。VB.NET:PictureBox1.Image = CogDisplay1.CreateContentBitmap(Display.CogDisplayContentBitmapConstants.Image) Picture…

Caliperで1番端のエッジを見つける

Caliper で1番端のエッジを見つけるためには、負の位置(PositionNeg)の得点付けを使います。グラフが示すように、Caliper ウィンドウの中心から、左へ行くほど得点が高くなり、右へ行くほど得点が低くなります。グラフは、見やすいように、デフォルトの Xc…

PatInspect – Blob の結果グラフィックを元画像に表示する

PatInspect で差分画像を作成し、Blob で欠陥抽出を行うと、Blob 結果は差分画像上に表示されます。Blob 結果を元画像上に表示すれば、どこが欠陥か明示的に示され、便利です。製品:VisionPro動作確認バージョン:5.0言語:ツールグループスクリプトVB.NET…

任意の検査領域でBlobを実行する(不要箇所をマスクしてBlobを実行する)

任意の検査領域で Blob を実行するサンプルです。任意の検査領域で Blob を実行するには、マスク画像を使います。部品が移動するときは、PatMax で位置決め、Fixture で座標を移動してから、Blob を実行しますが、マスク画像も移動させることは困難です。そ…

見つけたブロブの輝度値を調べる

Blob 結果の GetBoundary を、Histogram ツールの領域に接続すれば、そのブロブの輝度値(画素の平均値)を調べることができます。サンプルでは、ToolBlock を使って、見つけたすべてのブロブについて輝度値を調べ、ある値より大きいものだけを、OutputArray…

Blob結果からマスク画像を作成

Blob結果からマスク画像を作成するプログラムです。CopyRegion1 は、マスク画像の下地を作成します(グレースケール値=255)。CopyRegion2 は、グラフィック形状を画像に書き込みます。設定は次の通りです。定数値を入力する、グレースケール値=0、外部領…

VB6、VC++6の簡単なアプリケーションの作成

現在の VisionPro は .NET Framework の開発をサポートしています。以前の VisionPro は、VB6.0、VC++6.0 の開発をサポートしていました。VB6.0、VC++6.0 を公式サポートしている最後のバージョンは 4.0.2 です。VC++6.0 のアプリケーションは ATL プログラ…