サンプルプログラム

In-Sight スプレッドシートでの測定サンプル

In-Sight スプレッドシートで、測定のサンプルを作りました。 セルA0: AcquireImage(0, 1, 8, …)セルA2: CalibrateGrid($A$0)、チェッカーボードのキャリブレーションを行いますセルA4: TransformImage($A$0, $A$2, 0, …)、セルB4: ExtractCalibration(A4)セ…

Checker 4G、イーサネットで結果出力

Checker 4G で、イーサネットでの結果出力を確認しました。非常に簡単なものですが、そのサンプルプログラム(C#)です。Checker 4G の Generic FFP (Factory Floor Protocol)プロトコルを使います。Generic FFP プロトコルとは、一般のUDPソケット通信に…

ガンマ補正

VisionPro と CVL のガンマ補正のサンプルです。画像の明るさとコントラストの調整には次の方法があります: 照明明るさ、レンズ絞り、カメラ露光時間、アナログカメラを使うときのフレームグラバのA/D変換器のゲインとオフセット、デジタルカメラを使うとき…

DataManに繰り返しトリガーをかける

イーサネット経由で、DataMan に、単に、繰り返しトリガーをかけるプログラムです。間隔はタイマーコントロールのプロパティで調整します。返信が無いと次に進まないので、DataMan セットアップツールで、読まなかったときに文字列を返すように設定してくだ…

連続実行を指定回数でストップする

Image Source でディレクトリを指定して、連続実行すると、順次、画像ファイルを読み出しますが、最後の画像ファイルを実行した後、最初の画像ファイルに戻ってしまいます。 連続実行を自動的に容易に解除する方法はありませんが、メッセージボックスを表示…

画像中の複数の2Dコードを読み取る

画像中の複数の2Dコード(QRコード)を読み取るサンプルです。VisionPro の2Dシンボルツールは、画像中(領域)で1個のコードしか、読み取りません。このプログラムは、1個見つけて読み取り、そのコードを塗りつぶし、また見つけに行き、見つからなくなるま…

画像中の複数の2Dコードを読み取る

画像中の複数の2Dコード(QRコード)を読み取るサンプルです。CVL が持っている2Dシンボルツールは、画像中(領域)で1個のコードしか、読み取りません。このプログラムは、1個見つけて読み取り、そのコードを塗りつぶし、また見つけに行き、見つからなくな…

USBカメラで画像を取り込む

VisionPro ではありませんが、一般的なプログラミングでの、USBカメラで画像を取り込むサンプルです。DirectX SDK (March 2009)、DirectShowNet を使っています。画像取り込みを行うために動画の開始が必要で、動画しながらの画像取り込みは数ミリ秒〜数十…

MCプロトコルを実装したサンプル

VisionPro/QuickBuild でMCプロトコル(3Eフレーム)を実装したサンプルです。(AE作成)Ethernet、バイナリコードによる交信、を行います。MCPTool.dll と MCPTool.ico を bin ディレクトリ、MCPTool.vtt を bin\Templates\Tools ディレクトリにコピーして…

オートフォーカス(cfImageSharpnessFocusSearch)

CVL でオートフォーカスを行うサンプルです。cfImageSharpnessFocusSearch と cfImageSharpness を使います。cfImageSharpnessFocusSearch の引数で、モーター位置の最小値、最大値、いくつの値より変化が小さくなったら調整を止めるか、を指定します。 cfIm…

品種を判別する

検査領域を必要に応じて複数指定します。モデル(品種)を複数登録します。それぞれの検査領域で、すべてのモデルをマッチングし、得点を調べます。1番得点が高いものが、そこにある品種だと判断できます。始めに、固有なパターンを使って、対象物全体の位置…

ベンチマーク

ベンチマークを行うサンプルを作成してみました。PC環境や VisionPro バージョンを変更したときなどに、動作確認することを、想定しています。画像はビットマップファイルを開きます。画像は、前もって、チェッカーボードキャリブレーションを行い、レンズ歪…

ベンチマーク

ベンチマークを行うプログラムを作成してみました(CVL)。PC環境や CVL バージョンを変更したときなどに、動作確認することを、想定しています。画像はビットマップファイルを開きます。画像は、前もって、チェッカーボードキャリブレーションを行い、レン…

Caliper を実行するサンプル

Caliper を実行するサンプルです。CVL に標準で付属する cvlproj のプロジェクトで、コンパイル・実行します。Caliper ツールはエッジ(黒→白、白→黒)の位置を検出します。ノギスの役割をし、対象物の辺の位置や幅を測定します。ノギスと同じで、正確な幅や…

Blob を実行するサンプル

Blob を実行するサンプルです。CVL に標準で付属する cvlproj のプロジェクトで、コンパイル・実行します。適切なしきい値で画像を二値化し、対象物と背景に分け、対象物の面積や重心、横幅、縦幅、を計算することを、ブロブ解析と言います。blob.cpp:ピク…

ToolBlock に画像を表示する

ToolBlock は、CogImage の端子だけをつなぎ合わせても ToolBlockEdit のCogRecordDisplay に画像が表示されません。スクリプトを使用して画像を表示することができます。コードを示します。(AE作成)先ず ToolBlock に CogImage の入出力端子の Input/Outp…

PatMax を実行するサンプル(キャリブレーションあり)

PatMax を実行するサンプルです。キャリブレーションの有無など、いくつか種類があります。サンプルは、CVL に標準で付属する cvlproj のプロジェクトで、コンパイル・実行します。pmalign.cpp:ピクセル座標で動作するサンプルです。画像はカメラから取り込…

トレーニングで作成するプログラム

VisionPro トレーニングのプログラミングコースで作成するプログラムです。正確な説明は、トレーニングにご参加頂きたいですが、簡単にポイントを説明します。QuickBuild のファイルをロードして実行するアプリケーション:CogJobManager と QuickBuild は同…

形状を取込画像に書き込む

形状を指定して人工画像を作成する方法は先の記事で紹介しました。描いた形状を、カメラで取り込んだ画像や他の画像に重ねて書き込むには、画像の AND や OR のような処理で行います。VisionPro は画像の AND/OR を行うツールを直接は持っていません。代わり…

コントラスト判定

In-Sight にコントラスト判定ツールがあります。同様な計算を VisionPro と CVL で行うサンプルです。製品:VisionPro動作確認バージョン:7.2言語:C#シンプルスクリプト、ToolBlockcontrast_vpp.zip製品:CVL動作確認バージョン:7.0言語:VC++、VS2005con…

オートフォーカスデモ

オートフォーカスデモの C# のサンプルです。VB.NET のサンプルは VisionPro に標準で付属しています。オートフォーカスのアプリケーションは、ImageSharpness ツールを使います。ImageSharpness ツールは、指定した領域の、鮮明度を計算します。計算方法に…

CogMaximizer のサンプルプログラム

CogMaximizer は値が最大になる位置を見つけます。Excute メソッドの引数は下限値、上限値、許容値です。CogMaximizer を実行中、Evaluate イベントが呼ばれるので、ここに、評価したい X-Y データや式を記述します。e.Position がX値を意味します。データや…

人工画像を作成する

人工画像を作成するために cfRasterize を使います。ccPelBuffer pelbuf(256, 256); for (c_Int32 y = 0; y memset(pelbuf.pointToRow(y), y, 256);// cfRasterize ccEllipse2 ell(cc2Vect(50, 100)/*radii*/, ccRadian(0.0)/*angle*/, cc2Vect(127, 127)/*c…

CogToolBlock スクリプトの簡単なサンプル

CogToolBlock スクリプトの簡単なサンプルです。QuickBuild の中で任意に計算するには、スクリプトを使うと、シンプルです。CogToolGroup でもできますが、VisionPro 6.1 で追加された CogToolBlock は、入力と出力をマウス操作で追加できます。コグネックス…

人工画像を作成する

人工画像を作成するサンプルプログラムです。円や四角やポリゴンなどのグラフィック形状を使って、画像を人工的に作ることができます。白黒画像は256階調の画素で構成されています。CreateRLE メソッドは、グラフィック形状から、256階調の画素を作ります。…

複数のグラフィックを1つに合成して操作する

CogCompositeShape を使えば、複数のグラフィックを1つに合成できます。移動や回転などのマウス操作を行うと、合成されたグラフィックは、一緒に動きます。サンプルでは、直線を2つ組み合わせ、十字マークを合成しています。標準の十字マークグラフィックも…

結果グラフィック(CreateResultGraphics)の色を変える

ビジョンツールの結果グラフィック(CreateResultGraphics)の色を変える記述例です。バーコードツールの結果グラフィックを赤色に変更しています。Dim bounds As CogCompositeShape bounds = OneResult.CreateResultGraphics(CogBarcodeResultGraphicConsta…

グラフィックのマウスイベント

表示しているグラフィックのマウスイベントを使うサンプルプログラムです。サンプルでは、2つ四角を表示し、どちらかをドラッグしたときに、2つの四角の中心を結ぶ直線を描きます。対話グラフィックの Dragging イベントを使います。DraggingStopped イベン…

Histogramツールのグラフィックをビットマップ保存する

Histogram ツールのグラフィックをビットマップ保存するプログラムです。グラフは固有の寸法で描かれているので、適切に表示するように調整します。プログラム中にある “*” は、ディスプレイピクセル座標系です。製品:VisionPro動作確認バージョン:5.1言語…

グラフィック表示速度

グラフィックを多く表示するとき、グラフィックの追加中は、CogDisplay の更新を無効にすると、処理速度が向上します。CogDisplay1.DrawingEnabled = False ‘グラフィックの追加中は表示を更新しない … CogDisplay1.DrawingEnabled = True ‘すべてのグラフィ…