サンプルプログラム
ビジョンツールのエディットコントロールに表示されるグラフィックと同じものを、CogDipslay に表示するプログラムです。AddGraphicsContents というサブルーチンを作成し、流用します。エディットコントロールの【グラフィックス】タブを、プログラムで操作…
ダイアログウィンドウに画像を表示するプログラムです。ダイアログウィンドウに画像を表示するために ccWin32Display を使います。CWnd の派生クラスを作成することで、画像上でマウス操作が正しく行えるようになります。製品:CVL動作確認バージョン:6.8フ…
ネイティブコマンドを送受信するプログラムです。VS2003 で作られたものがあったので、VS2005 や VS2008 で動作するように変更しました。※ Telnet ポート 23 はファイアウォールでブロックされているかもしれないので、そのときはポート 3000 などに変更しま…
CADインポートのサンプルプログラムです。CADの寸法と、画像の座標を合わせるために、CogFixtureTool を使います。CADと画像座標とのスケール比が、既知でなければなりません。または、カメラキャリブレーションを行うか、手動で値を調整します。詳細は、フ…
例えば、MVS-8504 フレームグラバを使ったとき、CogAcqFifoTool が使用するデフォルトのビデオフォーマットは Sony XC-HR50 640×480 です。他のカメラを使うときはビデオフォーマットを変更します。記述例を示します。VB.NET:Dim mAcqTool As CogAcqFifoTool…
ブロブの通常のパラメータに、クリーンナップ=塗り潰し、最小領域=塗り潰す面積、がありますが、例えば、ドーナツ形状などで、面積が、穴>ブロブ、になる場合は、このパラメータは使えません(面積が最小領域未満のブロブが未検出になります)。重心は、…
ブロブの通常のパラメータに、クリーンナップ=塗り潰し、最小領域=塗り潰す面積、がありますが、例えば、ドーナツ形状などで、面積が、穴>ブロブ、になる場合は、このパラメータは使えません(面積が最小領域未満のブロブが未検出になります)。重心は、…
画像取込と画像処理をマルチスレッドで行うプログラム(AcqThread_VisionThread、または、overlap)は、高速アプリケーションにおいて効果的で す。取込スレッドは、必要なタイミングにカメラから画像を取り込んで、画像をキューに格納します。処理スレッド…
画像取込と画像処理をマルチスレッドで行うプログラムは、高速アプリケーションにおいて効果的です。取込スレッド(このサンプルではメインスレッ ド)は、必要なタイミングにカメラから画像を取り込んで、画像をキューに格納します。処理スレッドは、キュー…
QuickBuild で準備したビジョンツールの実行をカスタマイズするサンプルです。画像取込は Image Source を使います。それに続くいくつかのビジョンツールも順番に実行します。実行順序をカスタマイズしたいビジョンツールを CogToolGroupDisable1 に作成しま…
GigE Vision カメラで、ハードウェアトリガ画像取り込みを行ったとき、画像のタイムスタンプの間隔から、トリガミスを検出するプログラムです。製品:VisionPro動作確認バージョン:7.0SR1カメラ:Basler acA1300-30gc言語:ジョブスクリプトVB.NETgige_time…
CogFrameGrabbers を使ったときは、すべての、フレームグラバ、GigEカメラ、IEEE1394カメラを、取得します。それらのインデックス番号はシステム依存です。 CogFrameGrabberGigEs や CogFrameGrabber8500s のように指定すれば、特定の種類のフレームグラバ(…
CogDisplay上のマウス位置を表示するプログラムです。CogDisplay に MouseMove のイベントを追加します。渡される引数の (x, y) は、CogDisplay の座標なので、MapPoint で画像の座標に変換します。製品:VisionPro動作確認バージョン:4.2言語:VB.NET、C#…
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番端のエッジを見つけるためには、負の位置(PositionNeg)の得点付けを使います。グラフが示すように、Caliper ウィンドウの中心から、左へ行くほど得点が高くなり、右へ行くほど得点が低くなります。グラフは、見やすいように、デフォルトの Xc…
PatInspect で差分画像を作成し、Blob で欠陥抽出を行うと、Blob 結果は差分画像上に表示されます。Blob 結果を元画像上に表示すれば、どこが欠陥か明示的に示され、便利です。製品:VisionPro動作確認バージョン:5.0言語:ツールグループスクリプトVB.NET…
任意の検査領域で Blob を実行するサンプルです。任意の検査領域で Blob を実行するには、マスク画像を使います。部品が移動するときは、PatMax で位置決め、Fixture で座標を移動してから、Blob を実行しますが、マスク画像も移動させることは困難です。そ…
Blob 結果の GetBoundary を、Histogram ツールの領域に接続すれば、そのブロブの輝度値(画素の平均値)を調べることができます。サンプルでは、ToolBlock を使って、見つけたすべてのブロブについて輝度値を調べ、ある値より大きいものだけを、OutputArray…
Blob結果からマスク画像を作成するプログラムです。CopyRegion1 は、マスク画像の下地を作成します(グレースケール値=255)。CopyRegion2 は、グラフィック形状を画像に書き込みます。設定は次の通りです。定数値を入力する、グレースケール値=0、外部領…
現在の VisionPro は .NET Framework の開発をサポートしています。以前の VisionPro は、VB6.0、VC++6.0 の開発をサポートしていました。VB6.0、VC++6.0 を公式サポートしている最後のバージョンは 4.0.2 です。VC++6.0 のアプリケーションは ATL プログラ…