トップページへ戻る

■WEBカメラとVBで画像検査プログラム その3(完成一歩手前編)

その2編 をご覧頂ければ苦労の程がわかると思うのですが、結局 DirectX SKD でWEBカメラを直接操作しないと 狙い通りのプログラムはできないようです。
観念してダウンロードしました。ダウンロード先は、 マイクロソフト DirectX SKD GraphEdit(単体でのインストールの場合)です。


作成したプログラムはこんなんです。画像の位置が少しズレてますが、時間があるときに修正します(笑)
出来上がった画像比較プログラム
@プレビュー画面にリアルタイム画像を描画。
A「基準画像として保存」ボタンでハードディスクにBMP形式で保存。
B「検査Go!」ボタンで基準画像とリアルタイム画像を比較。
C違う画素を で合成画面に描画。
とまぁ処理の流れはこんな感じです。
各ビットのRGBを個別に比較演算しているのですが、 「=じゃなければ 」にすると、ちょっとのブレや光線の加減で だらけになってしまうので数値の入力枠を作って0〜233の数字を設定して精度の調整ができるようにしました。 シビアな印刷物の検査の場合は10以下、パターンの断線や接触は20程度、 文字抜け等のポカよけレベルの場合は50程度の数値が適しているようです。
おまけで画像の A+B や A-B、最大値や最小値も使えます。
このプログラムはWEBカメラをリアルタイムに描画する部分はこちらの DirectShow関係 のページのサンプルプログラムをベースに。2つの画像の演算部分はこちらの 画像処理関連のよく見かけるVBサンプル のページのサンプルプログラムをほぼそのまま使っています。もちろん変数の修正等は自分で行わなければなりませんが...
トータルな操作画面と2つの画像の差を計算して を埋めるところはオリジナルです。


こんな感じで使います。
使用例
手でカメラを持って撮影したので数字1つ分横にブレてしまいました(汗) でも液晶表示の数字がなくなったところがしっかりと で描画されてます。文字抜け検査には使えそうです。このプログラムを こちらで検証したレンズシステム と組み合わせれば完成です。
ソースプログラムはちゃんと整理できたら公開します。画像のズレも直します( ̄□ ̄;)
次のページ  いよいよ完成です!