プログラマブル・コントローラ
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、ビデオ・イメージに存在する物体を評価する映像信号処理装置に関し、特に自動製造装置と連携させて用いることができる装置に関する。
[従来の技術とその問題点]
自動アツセンブリ装置及びロボツトが益々複雑になるに従つて、これらの装置に視覚能力を付加することが望まれている。これは、このような装置が製造中の物体の位置を定めると共に、部品の存在又は穴のような特定の特徴の適正な位置と、大きさを調べることができる。このために、ビデオ・カメラを用いて後に電子的に解析することができる工作物すなわち製作品のビデオ・イメージを発生していた。
自動アツセンブリ装置が用いる視覚装置において発生する問題のうちの一つとしては、コンベヤ装置又は他の型式の材料取り扱い装置に沿つて製作品が移動するためその位置が変化することが挙げられる。製作品を正しく評価するためには、典型的なものとして、製作品はビデオ・カメラに対して正確に配置させなければならない。
従来の製造装置において適正な位置が問題となるときは、部品装入機械のように、製造装置に対して非常に正確に製作品を配置する設備内に、製作品を配置している。しかし、このような設備は、その製造工程において相当の費用と時間を必要とする。
アツセンブリ・ライン上で作業をしている人間は、その者に対して製作品を正確に揃えることが必要である。人間は、その者の視界内の種々の部品の位置を確認し、また位置のバラツキに対してその者の前に配置された異なる製作品として適応することができる。かくして、人間であるアツセンブリ作業者のこのような特質によるある程度の製作品の不揃いは許容されるような視覚装置を提供することが待望される。
[発明の概要]
本発明による視覚入力モジユールは評価されるべき物体のビデオ・イメージを表わす映像信号を入力する。この視覚入力モジユールは、イメージ・ピクセルの特徴を評価する視覚入力モジユールのいくつかの検知領域を画定する装置を有し、この検知領域内で物体の種々の特徴が評価される。例えば、検知領域において与えられたしきい値を超えた輝度を有するピクセルがカウントされる。ピクセルのカウントは予め定めた最小値及び最大値と比較され、評価した特徴が受け入れ可能な許容範囲に含まれるか否かを判断することができる。
視覚入力モジユールの実施例には、前記物体の実際位置とデータ位置(基準位置)との間の差を判断する手段が備えられる。次に、視覚入力モジユールは所定の位置の差により、物体でデータ位置(基準位置)からシフトされた量と同一のシフト量、かつ同一のシフト方向に検知領域をシフトさせる。これは、検知領域が評価している各物体に対して同様に揃えられることを保証するものである。
そこで、本発明の目的は、通常のプログラマブル・コントローラに関連可能な視覚入力モジユールを提供すること、すなわち、プログラマブル・コントローラからのコマンドに応答して、前記プログラマブル・コントローラに入力されている他の検知データと同一のフオーマツトにより、処理しているイメージについてのデータを出力することのできる視覚入力モジユールを提供することである。これにより、例えば検知したパラメータが与えられた許容範囲にあるか否かの標識がプログラマブル・コントローラに送出されることになる。
他の目的は、全ての映像処理を行ない、処理の結果をプログラマブル・コントローラに報告する視覚入力モジユールを得ることにある。
更に、本発明の他の目的は、ビデオ・イメージ処理装置に1つの機構を組み込むことにより、前記ビデオ・イメージ内の対象物の位置について、その正規の位置からのシフトを補償することにある。
また、他の目的は、並列にビデオ・イメージを2進数化した4つの異なるものを処理する装置を提供することにある。
また本発明の他の目的は、プログラマブル・コントローラに習熟している者にとつて、特定の作業のために構築が容易なプログラマブル・コントローラ用の視覚入力モジユールを提供することにある。それにより、視覚入力モジユールを構築するために複雑なコンピユータ言語やコマンド・セツトそれ自体を学習する必要はなくなり、ひいて視覚入力モジユールの構築はコントロール・エンジニヤにとり慣れ親しんだ考え方に合致したものとなる。
[実施例]
第1図を先ず参照すると、本発明に関連するプログラマブル・コントローラがラツク1に収容されている。ラルク1は種々のモジユール2〜6を収納する一連のスロツトを備えている。これらのモジユール2〜6は、バツク・プレートをなすようにラツク1の背面に沿つて伸延するマザー・ボードに電気的に接続されている。ラツク1の物理的な構造は、米国特許第4,151,580号に開示されている。モジユール2〜6には、電源モジユール2及びプロセツサ・モジユール3とが含まれる。プロセツサ・モジユール3はプログラム端子7にケーブルにより接続されており、プログラム端子7はユーザーがプロセツサ・モジユール3をプログラムすること、又はその動作を監視することが可能なキーボード9を備えている。英数字データは、装置コントロール・プログラムを表わすラダー図と共に、CRT表示装置8上に表示される。プログラム及びデータはデイスク駆動装置10に収容されているフロツピー・デイスクに記憶される。この型式のプログラマブル・コントローラの更に詳細な説明については、米国特許第4,442,504号を参照されたい。
ラツク1内の入出力モジユール4〜4、視覚入力モジユール5,6のうちのいくつかは、プログラマブル・コントローラ装置を被制御装置に接続する入出力(I/O)機能を実行する。例えば、第1図に示す装置は通常的な4つの入出力モジユール4と、新しい2つの視覚入力モジユール5及び6を有する。入出力モジユール4は、種々の形式のもの、例えば直流入出力モジユール、交流入出力モジユール、アナログ入出力モジユール、並びに/又はオープン及びクローズド・ループ位置決めモジユールとを備えている。
各視覚入力モジユール5及び6はラツク1の2スロツクを占有して、各スロツトのバツクプレーン・コネクタに接続している。第1の視覚入力モジユール5は、ケーブルを介して、上方から製作品12に照準を定めているモノクロのカメラ11に接続されている。製作品12はアツセンブリ・ライン・コンベヤ(図示なし)によりカメラ11の下に搬送されるものでよい。第1の視覚入力モジユール5は製作品12の256×256ピクセルのビデオ・イメージを発生し、それを視覚入力モジユール5に接続されているモニター13の陰極線管上に表示する。ライト・ペン14は、以下で説明するように、モニター13上にときどき表示されるシンボルを選択することにより、データを入力するのに用いられる。
第2の視覚入力モジユール6は、製作品12の側面を見るように配置された他のカメラ15が接続されている。第2の視覚入力モジユール6がビデオ・モニターの端子となるが、これには、ライト・ペンが接続されていない。これらの装置は、典型的なものとしては、種々の特徴を検知されるべき様々な特徴、及び、検知を行なうイメージ内の領域が画定される設定段階においてだけ必要なものである。
2つの視覚入力モジユール5及び6はまた、正面パネルにその機能ステータスを表示するための多数の表示ランプ16を備えている。その正面パネルにはいくつかの電気端子17も備えられている。これらの電気端子17は、視覚入力モジユール5及び6に対する外部トリガ入力、カメラ電源、ストロープ・ライト・トリガ出力信号、モジユール・ビジー出力信号、及び、製作品の総合評価が合格が不合格かを示すマスタ評価判定出力信号、をそれぞれ供給する。
視覚入力モジユール(VIN)5及び6はそれぞれカメラ11及びカメラ15からのイメージを処理し、選択した物体の特徴についてのデータを発生する。以下で詳細に説明するが、視覚入力モジユール5及び6はカメラ11及び15からのビデオ・イメージを処理して独立した4つの2進数のイメージを導出する。ビデオ・イメージの各ピクセルの輝度をあるしきい値と比較し、2進数イメージにおいて対応するピクセルを白か黒に設定することにより、2進数イメージが生成される。2進数イメージには中間のグレー・スケールの輝度値がない。
視覚入力モジユール5及び6のオペレータは、2進数イメージに4つの検知領域、即ち窓を画定する。各窓は異なる2進数イメージに関れ付けられる。視覚入力モジユール5及び6は複数の窓内の2進数イメージの白又は黒ピクセルをカウントする。これらのカウントから、種々の製作品12の特徴である大きさ、形状及び位置が決定される。オペレータは各窓の許容し得るピクセル・カウントの範囲も設定することができる。4つの出力警報フラグは、4つのカウントがそれぞれの範囲内にあるか否かを表わしている。マスタ評価判定警報フラグは、全てのカウントがそれらの範囲内に入るか、入らないものがあるかを表わす。
オペレータは最大6つの水平又は垂直ライン・センサーを画定し、かつ4つある2進数イメージにそれぞれ1つを割り付けることができる。水平又は垂直ライン・センサーは、各ラインに沿うピクセルについて異なる評価機能を実行可能なソフトウエアにより、実現されている。例えば、白及び黒ピクセルをカウントすること、又はブロツブ(blob)と呼ばれるピクセルの白黒グループ数をカウントすることができる。窓センサーの観点からカウントした許容し得る結果値の範囲を設定してもよい。
水平又は垂直ライン・センサーの処理結果は、ラルク1のプロセツサ・モジユール3で利用される。プロセツサ・モジユール3は範囲警報フラグか、又は全セツトのセンサー結果を得ることができる。プロセツサ・モジユール3は視覚入力モジユール5及び6からのデータを用いて製作品12の容認可能性を評価し、製作品12について更に実行される製造ステツプを制御する。
視覚入力モジユール(VIM)のハードウエア 視覚入力モジユール5及び6のうちの一つの機能動作を詳細に説明する前に、先ずその回路を理解する必要がある。視覚入力モジユール5は第3A図に示すCPU部と、第3B図に示す映像プロセツサ部とを備えている。CPU部は、データ信号、アドレス信号、制御信号用に3つの共通バスであるデータ・バス41、制御バス42及びアドレス・バス43の周辺にそれぞれ構築されている。実際的なものとして、制御バス42は視覚入力モジユール5の両部分の種々の部品間に設けられている一連の離散的な導線である。データ・バス41は8ビツト幅であり、アドレス・バス43は16ビツト幅である。マイクロプロセツサ44は、3つのバスであるデータ・バス41、制御バス42及びアドレス・バス43に全て接続されており、読み出し専用メモリ(ROM)46に記憶されているプログラムを実行することにより視覚入力モジユール5及び6の動作を制御している。マイクロプロセツサ44は前面パネルの入出力(I/O)インタフエース回路50に直接接続されている。入出力インタフエース回路50は視覚入力モジユール5及び6(第1図)の前面パネルの表示ランプ16及び電気端子17をマイクロプロセツサ44に接続している。
ランダム・アクセス・メモリ(RAM)47はデータ・バス41、制御バス42及びアドレス・バス43に接続され、ラツク1のプロセツサ・モジユール3から転送されるデータ用のメモリであり、かつ製作品の視覚入力モジユール5及び6の評価結果も記憶する。EEPROM54も、コントローラのオペレータにより設定された構造データを記憶する不揮発性メモリを得るために3つのバス、即ちデータ・バス41、制御バス42及びアドレス・バス43にも接続されている。
CPU部には、更に3つの内部バスのデータ・バス41、制御バス42及びアドレス・バス43に接続されているバツクプレーン・インタフエース回路52が配置されている。バツクプレーン・インタフエース回路52は、プログラマブル・コントローラの通常の入出力モジユールに採用されている回路と同じものであり、他のモジユールであるプロセツサ・モジユール3、入出力モジユール4及び視覚入力モジユール6とデータを交換するために視覚入力モジユール5をラツク1をバツク・プレーンに接続している。先に述べたように、視覚入力モジユール5は2スロツトを占有する。2つのスロツト用のバツクプレーン・コネクタ55及び56は、バツクプレーン・インタフエース回路52に接続されている。ラツク1のプロセツサ・モジユール3は所望のデータの型式及びデータ量に基づいてバツクプレーン・コネクタ55又は56を介して視覚入力モジユール5及び6をアクセスすることができる。
バツクプレーン・コネクタ55のうちの一つは、米国テキサス・インスツルメンツ社の74651デバイスのように、商業的に入手可能なバス・インタフエース集積回路に接続されている。このバス・インタフエース集積回路は2つの8ビツト・データ・ラツチを備えており、そのうちの一方が視覚入力モジユール5からのデータ・バイトを記憶し、他方がプロセツサ・モジユール3からのデータ・バイトを記憶するものである。視覚入力モジユール5及びプロセツサ・モジユール3は、これらのデータ・ラツチをアクセスして他のデバイスが記憶したデータを読み出すことができる。各ビツトは次のテーブルに示す機能を有する。
ビツト 送出源 機能0 プロセツサ VIM設定エネーブル1 VIM VIM不良2 VIM 通信不良3 プロセツサ トリガVIM4 VIM VIMビジー5 VIM 輝度プローブ警報6 VIM xy位置警報7 VIM マスタ判定警報 プロセツサ・モジユール3のビツト・セツトはVIMを種々の動作モードに設定し、VIMのビツト・セツトは種々の事象をプロセツサ・モジユール3に知らせるものである。ビツト3はプロセツサ・モジユール3によりセツトされ、VIMをトリガして処理すべきビデオ・フレームを取り込むためのものである。ビツト5は、ビデオ・イメージの輝度が予め定めた範囲外にあることを示す。ビツト6は、製作品を補正するのにVIMのデータ位置からシフトし過ぎたことを示す。ビツト7の値は、イメージ評価の結果が全て満足されているか、又は結果のうちの少なくとも一つが予め定めた範囲の外側であるかを示す。
ラツク1の他のスロツトのコネクタ56はVIMRAM48とプロセツサ・モジユール3との間でデータ・ブロツクを転送する回路に接続されている。この回路は、データ・ブロツクを収集して転送する前述のプログラマブル・コントローラI/Oモジユールに関連されたものと同様である。この転送を実行するために用いられる技術は、「高密度インテリジエント入出力インタフエースを有するプログラマブル・コントローラ」と題する米国特許第4,293,924号に説明されているものと同様のものである。バツクプレーン・インタフエース回路52はデータを双方向に転送することができる。これは、プロセツサ・モジユール3に送出すべきVIMの評価の結果を表わすデータをエネーブルするばかりでなく、プロセツサ・モジユール3がVIM構成データを送受することができるようにする。
アドレス・デコード回路53は、アドレス・バス43に接続されており、マイクロプロセツサ44が送出した各アドレスを受け取り、アドレス指定されたVIM部品のために一組の制御信号を制御バス42上に発生する。マイクロプロセツサ44はアドレス・デコード回路53を介して映像プロセツサ部を種々の動作モードを置くために必要な制御信号を発生する。これに対して、アドレス・デコード回路53は映像プロセツサの一部分でよいことは明らかである。
制御バス42は、データ・バス41及びアドレス・バス43と共に、それぞれ映像プロセツサ部に接続されている。第3B図に示すように、データ・バス41及び制御バス42はCPU部から映像プロセツサ部の全体にわたつて延在している。しかし、アドレス・バス43はアドレス・バス・マルチプレクサ60の入力に接続されている。アドレス・バス・マルチプレクサ60の他の入力はアドレス発生器64の出力に接続されている。選択入力61の信号は、どのアドレス信号源がアドレス・バス・マルチプレクサ60により映像プロセツサ・アドレス・バス45に接続されているか、を決定する。
クロツク62はその周波数がカメラ11からの映像信号のビクセル速度を定めるパルス出力信号を発生する。このパルス出力信号はアドレス発生器64の入力に供給されている。アドレス発生器64はパルス出力信号をカウントして並列16ビツトのアドレス信号を発生している。このアドレス信号は適時アドレス・バス・マルチプレクサ60により映像プロセツサ・アドレス・バス45に接続され、これに接続されているイメージ・メモリをアドレス指定する。アドレス信号の上位ビツト(MSB)は記憶したイメージのピクセル・ライン数を表わし、下位ビツト(LSB)はイメージの水平ラインを介するピクセル・カラム数を表わす。アドレス発生器64はカメラ11用に通常の映像同期信号(sync)も発生している。アドレス発生器64は線64上にカメラ11用に映像同期信号の垂直帰線期間の生起を示す信号を発生する。線65はアドレス・バス・マルチプレクサ60の選択入力61に接続され、これによつてアドレス・バス43が垂直帰線期間に映像プロセツサ・アドレス・バス45に接続される。線65は更に制御バス42を介してマイクロプロセツサ44に接続されている。
カメラ11のビデオ出力信号は映像増幅器66により増幅され、映像増幅器66の映像出力は輝度基準回路68に供給される。輝度基準回路68は8×8のピクセル領域26(ここでは、輝度プローブと呼ぶ。)における輝度を検知して、カメラ11からのビデオ・イメージにおける物体の輝度の変化を補正する。輝度基準回路68の詳細は第4図に示されている。データ・バス41は輝度プローブ位置レジスタ70の入力に接続され、輝度プローブ位置レジスタ70はイメージ内のプローブ位置を記憶する。輝度プローブ位置レジスタ70は8ビツトのメモリ位置を記憶するものであり、データ・バス41からのバイトを書き込むことができる。第1のメモリ位置は上位バイト、即ち輝度プローブ26の位置アドレスのピクセル・ライン番号を記憶し、他のメモリ位置は下位バイト、即ち行番号を記憶する。ピクセル領域26は8×8ピクセルの予め定めた領域であるので、ビデオ・イメージの32×32位置に配置される。その結果、輝度プローブ26の位置をピクセル・ライン数の5上位ビツト及びピクセル・カラム数の5上位ビツトにより指定することができる。
輝度プローブ位置レジスタ70に記憶されている5上位ビツトは、アドレス比較器72の一方の入力に接続されている。アドレス比較器72の他方の入力には、映像プロセツサ・アドレス・バス45が接続されている。アドレス比較器72は映像プロセツサ・アドレス・バス45及び輝度プローブ位置レジスタ70の上位バイトの5上位ビツトと、これらの発生源の下位ビツトの5上位ビツトとを比較する。線74へのアドレス比較器72の出力は、映像プロセツサ・アドレス・バス45を介してアドレス指定されたピクセルが輝度プローブ26の検知領域内にあることを示す。
アドレス比較器72の出力はサンプル・ホールド回路76に接続されている。このサンプル・ホルド回路76は絶縁増幅器78からなり、その入力端は映像増幅器66の出力に接続されている。絶縁増幅器78の出力はトンランスミシヨン・ゲート80を介して接続されている。トランスミシヨン・ゲート80はアドレス比較器72の出力信号により制御されている。トランスミシヨン・ゲート80の出力と接地との間には抵抗84とコンデンサ86とが直列接続されている。コンデンサ8は輝度プローブ領域内のピクセルの平均輝度レベレを表わす電荷を蓄積する。第2のトランスミシヨン・ゲート88はコンデンサ86と並列に接続されており、制御バス42の一つを介してマイクロプロセツサ44から入力されるリセツト信号に応答して、放電する。
出力増幅器82からのサンプル・ホールド回路76の出力はアナロク・デイジタル(A/D)変換器90の入力に接続されている。アナログ・デイジタル変換器90はアドレス・デコード回路53から制御バス42の一つを介して入力される信号によりエネーブルされ、データ・バス41に記憶している平均輝度レベルをデイジタル化したものを供給する。アナロク・デイジタル変換器90の出力は0〜255のデイジタル数であり、データ・バス41に供給される。
第3B図を再び参照すると、映像増幅器66の映像出力は異なる4つの2進数イメージ・プロセツサ100にも供給されている。2進数イメージ・プロセツサ100はカメラ11のアナログ映像信号により異なる4つの2進数ビデオ・イメージを発生する。2進数イメージ・プロセツサ100はデータ・バス41及び制御バス42に接続されており、クロツク62からピクセル速度信号を入力している。2進数イメージ・プロセツサ100の詳細を第5図に示す。データ・バス41は、例えばアナロク・デバイセス社が製造した集積回路AD7226型のような4ビツトのデイジタル・アナロク変換器(D/A)102の入力に接続されている。アナログ・デイジタル変換器102の各入力は、集積回路の個別のデイジタル・データ・ラツチに接続されている。各デイジタル・アナログ変換器102の基準電圧レベルを表わす8ビツトのデイジタル数は、対応するラツチに記憶される。これは、回路選択線104を介してラツチを選択することにより達成される。次に、このデータはマイクロプロセツサ44によりデータ・バス41を介して送出され、一方書き込みエネーブル・パルスがデイジタル・アナログ変換器102に印加される。回路選択線104及び書き込みエネーブル線105は映像プロセツサ・アドレス・バス45の一部をなし、アドレス・デコード回路53から引き出されている。
動作状態において、デイジタル・アナログ変換器102はラツチ内容のアナログ信号を4つの電圧比較器106〜109の反転入力に供給している。電圧比較器106〜109の各反転入力は映像増幅器66(第3B図)に接続されている。4つの電圧比較器106〜109の出力は4ビツトの出力ラツチ110の各入力に供給されている。出力ラツチ110はピクセル・クロツク信号を入力し、出力ラツチ110はこのピクセル・クロツク信号のパルスによつて各電圧比較器106〜109の出力ビツトを記憶する。
出力ラツチ110の出力は、2進数イメーザ・プロセツサ100が発生したビデオ・イメージを2進数化したものを表わしている。2進数化したビデオ・イメージを発生するために、異なる4つの輝度しきい値(各イメージについて一つ)がデイジタル・アナログ変換器102のラツチに記憶される。各しきい値のアナログ信号は基準値として電圧比較器106〜109のうちの一つに印加される。カメラ11からアナログの映像信号は電圧比較器106〜109の印加され、それぞれ映像信号の輝度が基準しきい値より高いか、低いかに対応させた値を有する2進数出力を発生する。この2進数出力は4つの出力ラツチ110により各ピクセル毎にサンプリングされ、2進数イメージを表わす出力信号を発生する。出力ラツチ110の出力は2進数イメージ・プロセツサ100に供給される。
第3B図に示すように、2進数イメージ・プロセツサ100の4つの2進数イメージ出力は、4線のバス112を介してバツフア・メモリ114のデータ入力に接続されている。バツフア・メモリ114は4×64Kのメモリ回路を備えており、各メモリ回路は2進数イメージ・プロセツサ100からの256×256ピクセルの2進数出力イメージのうちの一つを記憶する。バツフア・メモリ114は映像プロセツサ・アドレス・バス45に接続されており、制御バス42から書き込み及び読み出し制御信号を入力している。VIMのある種の機能は、リアル・タイムで実行することができないことは明らかである。その結果、これらの機能はバツフア・メモリ114に記憶されている2進数イメージを評価している。従つて、この評価を映像走査速度で実行する必要はない。
2進数イメージ・プロセツサ100及びバツフア・メモリ114の出力は、独立した入力としてイメージ入力選択回路116に接続されている。イメージ入力選択回路116は、制御バス42を介するアドレス・デコード回路53の信号に応答して、バツフア・メモリ114、2進数イメージ・プロセツサ100又はデータ・バス41のうちの1出力をイメージ出力線118に接続する。イメージ入力選択回路116の他の部分は制御バス42の信号に応答してバツフア・メモリ114又は2進数イメージ・プロセツサ100の4つの出力線にカウンタ・バス120の4線に接続する。
イメージ出力線118上のイメージ出力信号は64Kのグラフイツク・メモリ122のデータ入力端子に接続されている。映像プロセツサ・アドレス・バス45及び種々の制御バス42はグラフイツク・メモリ122に接続されている。グラフイツク・メモリ122は、モニター13上に表示するためにCPU部が発生するアイコン及び英数字のキヤラクタを含む256×256ピクセル・イメージを記憶する。イメージ出力線118のイメージ出力信号は窓メモリ124のデータ入力端子にも接続されている。窓メモリ124は独立した4つの64Kの2進数イメージ・メモリを有する。これは、以下で説明するように、4つのセンサー窓を定義する独立した2進数イメージのためのメモリとなる。窓メモリ124はイメージ入力選択回路116からイメージを出力するイメージ出力線118に共通に接続されている。窓メモリ124のアドレス端子はx−yオフセツト回路126の出力に共通に接続されている。
x−yオフセツト回路126は、第6図に詳細に示されており、ビデオ・イメージのデータ位置(基準位置)から評価をしている製作品位置のシフトについて、補償を行なうものである。x−yオフセツト回路126は、製作品12が水平及び垂直方向にシフトした場合、その製作品12の像のシフト量(移動量)はピクセルの数によって検知でき、このピクセル数がX−Yオフセツト回路126に記憶される。これらの数は、窓メモリ124のアドレスに加算され、製作品12のシフトに対応して窓の位置をそのデータ位置から実際にシフトさせるものである。これはセンサー窓及び製作品の適正な整列を保持させるものである。このように、このピクセル数は、カメラのレンズ倍率や他の光学的変数に対応した、対象の移動距離を表わす。
x−yオフセツト回路126は、それぞれセンサー窓の水平(X)調製及び垂直(Y)を調製をして製作品のシフトを揃えるピクセル・カラム回路131及びピクセル・ライン・オフセツト回路132に分割される。ピクセル・カラム回路131はデータ・バス41に接続されているxオフセツト・データ・ラツチ133を備えている。xオフセツト・データ・ラツチ133は、物体がそのデータ位置(基準位置)から水平にシフトしたピクセルの位置数を表わす8ビツトの数及び符号を記憶する。この数は以下で説明するライン・ゲージ・センサーから得られる。xオフセツト・データ・ラツチ133は制御バス42を介してアドレス・デコード回路53からカラム選択書き込み信号を入力している。
xオフセツト・データ・ラツチ133の出力の下位4ビツトは、4ビツトの第1カラムの加算器134の1セツトの入力に接続されている。第1カラムの加算器134は映像プロセツサ・アドレス・バス45の下位4ビツト(ビツト0〜3)も入力している。第1カラムの加算器134の出力4ビツトは並列6ビツトのオフセツト出力バス138のビツト線0〜3に接続されており、オフセツト出力バス138は窓メモリ124のアドレス入力に接続されている。第1カラムの加算器134のキヤリー出力(CO)は第2カラムの加算器136のキヤリー入力(CI)に接続されている。第2カラムの加算器136の1セツトの加算入力はxオフセツト・データ・ラツチ133の上位4ビツトに接続されている。他のセツトの加算入力は映像プロセツサ・アドレス・バス45のビツト線4〜7に接続されている。第2カラムの加算器136の出力ラインはオフセツト出力バス138のビツト数に接続されている。
ピクセル・オフセツト回路132はイメージのピクセル線数を表わすイメージ・アドレスの上位8ビツトを有することを除き、ピクセル・カラム回路131と同一である。Yオフセツト・ラツチ140はデータ・バス41に接続され、物体の8ビツトの垂直オフセツトを記憶する。このオフセツトは製作品12がイメージの垂直方向のデータ位置(基準位置)からシフトされたピクセル数を表わす。Yオフセツト・ラツチ140はアドレス・デコード回路53から引き出される制御バス42の線選択導線を介する書き込み信号によりエネーブルされる。Yオフセツト・ラツチ140の出力のうちの下位4ビツトは4ビツトの第1ラインの加算器142の1セツトの入力に接続されている。他のセツトの入力は映像プロセツサ・アドレス・バス45のビツト線8〜11に接続されている。第1ラインの加算器142の4ビツト出力はオフセツト出バス138のビツト線8〜11に接続されている。第1ラインの加算器142のキヤリー出力(CO)は第2ラインの加算器144のキヤリー入力(CI)に接続されている。第2ラインの加算器144はYオフセツト・ラツチ140の出力の上位4ビツトを一方の入力として入力し、また映像プロセツサ・アドレス・バス45のビツト線12〜15を他方の入力として入力している。第2ラインの加算器144の出力はオフセツト出力バス138のビツト線12〜15に接続されている。
第3B図に戻ると、窓メモリ124は、制御バス42に接続され、各アドレス・デコード回路53からの4書き込みエネーブル信号を窓メモリ124に1信号づつ入力している。窓メモリ124からの4出力は、出力バス(146)を介して出力選択スイツチ148の入力に接続されている。グラフイツク・メモリ122の出力は出力選択スイツチ148の入力にも接続されている。出力選択スイツチ148の他の入力は、バツフア・メモリ114から4つの出力線115に接続されている。3ステートの出力選択スイツチ148は、制御バス42を介するアドレス・デコード回路53の信号に応答して、バツフア・メモリ114、グラフイツク・メモリ122又は窓メモリ124の出力をデータ・バス41に接続する。これにより、マイクロプロセツサ44はこれらのメモリの内容を読み出しができる。
映像出力回路すなわち選択スイツチ150はイメージ入力選択回路116、グラフイツク・メモリ122及び窓メモリ124のイメージ出力線から入力される。映像出力回路150は、制御バス42を介してアドレス・デコード回路53から入力される選択信号に応答して、入力線のうちの一つ又はそれらの組合わせを選択する。選択した1又は複数の入力線上のデイジタル・イメージ・データは、アナログ映像信号に変換され、モニター13に出力される。映像出力回路150が同時にイメージ入力選択回路116、グラフイツク・メモリ122及び窓メモリ124からの出力を選択したときは、モニター13に表示されたイメージは3入力イメージの全てを重畳したものからなる。グラフイツク・メモリ122の出力は他の入力イメージ上に設定される。
ピクセル・カウント回路152内の一組のカウンタは、窓メモリ124に記憶されている窓イメージのうちの一つと、イメージ入力選択回路116の4つの2進数イメージのそれぞれとの論理積を取る。第7図はピクセル・カウント回路152内の4カウント段のうちの一つを示す。窓メモリ124の出力線及びイメージ入力選択回路116の出力線はNANDゲート154の入力に接続されている。NANDゲート154の出力は2つの8ビツトカウント段156及び158のカウント・エネーブル端子に接続されている。2つのカウント段156及び158は、第1のカウント段156のキヤリー出力を第2のカウント段158のクロツク端子に接続することにより、カスケード接続されており、16ビツトのカウントを構成している。第1のカウント段156のクロツク端子はクロツク62からのピクセル速度クロツク信号に接続されている。カウント段156及び158はそれぞれアドレス・テコード回路53から個々に出力エネーブル信号と、制御バス42を介して共通のクリア信号を入力している。カウント段156及び158のそれぞれの8ビツト出力はデータ・バス41に接続されている。カウント段156及び158のカウントは、窓メモリ124及びイメージ入力選択回路116のピクセルが共にハイの論理レベルになつたときに、増加される。ピクセル・カウンタは、窓内にあるビデオ・イメージのピクセルをカウントする。
ライト・ペン14は第3B図のライト・ペン位置レジスタ160のエネーブル入力に接続されている。ライト・ペン14をモニター13のスクリーンに対して押したときに、ライト・ペン14が位置するスクリーン上の位置をその陰極線管が走査すると、ライト・ペン14の出力が発生する。ライト・ペン14の出力は、そのスクリーン位置についてのアドレスを映像プロセツサ・アドレス・バス45を介して記憶するためにライト・ペン位置レジスタ160をエネーブルする。同時に、フラク・ビツトがライト・ペン位置レジスタ160にセツトされ、新しいライト・ペン位置が記憶されたことを表示する。CPU部はこのフラグ・ビツトをテストして、ライト・ペン14が付勢されたか否かを判断することができる。ライト・ペン位置レジスタ160はアドレス指定によりライト・ペン14の新しい位置を読み込むことができる。
[機能の説明]
以上で説明したように、VIMの回路はビデオ・イメージの種々の部分に位置する多数のセンサーを用いてビデオ・イメージを処理する。カメラ11(及びカメラ15)により撮像されたイメージは256本の走査線からなり、各走査線は25個の6ピクセルを有する。従つて、256列のピクセルが形成される。これは、イメージ情報を65,536(64K)メモリ位置を有するメモリに記憶するものとなる。モニター13上に表示されたVIMのイメージ例を第2図R>図に示す。実際には、利用可能なビデオ・イメージは垂直帰線期間に発生するラインのために256ラインより少ない。しかし、習慣的に、このようなイメージは256ラインを有するものと呼称されている。製作品12は暗い背景に結像され、製作品12とその背景との間に高レベルのコントラストが得られ、イメージ処理を大いに助ける。モニター13に表示されたイメージには、映像信号を処理する種々のオペレータ指定エンサー位置を表わす標識も含まれている。6つの線形な検知領域(ここではライン・ゲージという。)まで、また4つの二次元検知領域(窓という。)まで定義することができる。定義したこれらの検知領域内のピクセルの種種の特性がテストされ、データがラツク1のプロセツサ・モジユール3に送出される。
これらの窓センサー20〜22は、製作品12の種々の位置に配置された第2図のイメージに示されている。例えば、第1の窓センサー20は、ビデオ・イメージに配置されたときは、製作品13の左上端の開口31上に配置された正方形の領域である。第2の窓センサー21も形状が矩形であり、製作品12の中央部分の三角形開口32上に配置される。最後の窓センサー22は形状が円形であり、製作品12の右下端の開口33上に配置される。VIMの第4の窓はこの実施例では活性ではない。説明を簡単にするために、窓センサー20〜22は矩形又は円形の窓を形成する太線により示す。実際には、各窓が明るい矩形又は円形のイメージとしてモニター13上に表示される。
第3B図の映像プロセツサ部の回路は各窓センサー20〜22に1づつ独立した4つの2進数イメージを発生する。この2進数イメージを発生するために、カメラ11からの映像信号の輝度は2進数イメージ・プロセツサ100により4つのしきい値と比較される。各2進数イメージにおけるピクセルは、映像信号において対応するピクセルの輝度がそれぞれしきい値の上か、下かに従つて白か、黒となる。映像プロセツサ部のピクセル・カウント回路152は、与えられ2進数イメージに対応するセンサー窓内にある白ピクセルをカウンタする。ピクセル・カウント値の範囲は、そのカウントが受け入れ可能な否かを表わすように指定されてもよい。これによつて、VIMは開口31のような特徴の大きさが指定された次元上の許容範囲内にあるか否かを判断することが可能になる。
2つのライン・ゲージ・センサー23及び24はビデオ・イメージ上の縁センサーと呼ばれる。ライン・ゲージ・センサー23及び24はそれぞれ1ピクセル幅及び数ピクセル長(例えば、59ピクセル長)である。第1のライン・ゲージ・センサー23はイメージの垂直方向に伸延し、第2のライン・ゲージ・センサー24は水平方向に伸延している。垂直方向のライン・ゲージ・センサー23は製作品12の水平方向の上端を検出し、水平方向のライン・ゲージ・センサー24は製作品12の左垂直端を検出する。各ライン・ゲージ・センサー23及び24は、第2図のイメージについて画定されているように、白ピクセルから黒ピクセルへの最初の遷移を検出する。ライン・ゲージ・センサー23,24の終端からこの遷移までのピクセル数は、ビデオ・イメージ内の製作品12の位置を表わしている。
第3のライン・ゲージ・センサー25は、製作品12の下端の矩形引込み34上の、ビデオ・イメージの下端近傍に配置されている。第3のライン・ゲージ・センサー25はライン・ゲージ・センサー23及び24のものよりかなり複雑な検知機構となる。例えば、ライン・ゲージ・センサー25に沿う暗いピクセル数は、カウントにより矩形引込み34の長さを決定するものであつてもよい。更に、ライン・ゲージ・センサー25の先頭から製作品12の縁までの白ピクセル数は、カウントにより矩形引込み34の位置を決定するものであつてもよい。VIMにより設定された3つのライン・ゲージ・センサー23,24及び25は、この実施例では使用するためにエネーブルされることはない。
ビデオ・イメージ内でユーザーが定義可能な4領域に加えて、輝度基準プローブ窓の輝度プローブ26がイメージの頂点近傍に配置される。この輝度プローブ26は予め定めた8×8個のピクセルによる正方形からなり、この正方形内でピクセルの輝度を平均して製作品12上の相対輝度レベルを得る。次に、VIMがこの測定を用いて、輝度の変化を補償すると共に、製作品12の他の測定パラメータとして用いられる。
ライン・ゲージ・センサー25、センサー窓及びライン・ゲージに関するデータはEEPROM54に記憶される。このデータのワーキング・コピーもVIM RAM48に記憶される。このデータは、各センサーの位置、大きさ、形状及び測定機能のようなパラメータを指定する。このパラメータのデータは映像プロセツサ分を構成するために用いられる。更に、VIMのソフトウエアはそのビデオ・イメージの処理においてこのデータを使用している。
輝度プローブ26を規定するパラメータは、第8図に示すように、3つの16ビツト・ワードからなる構成データ・ブロツクに記憶される。その第1ワードには輝度プローブ26の左上端のxyイメージ・ピクセル・アドレスが含まれる。これらの座標は最初のワードの個々のバイトに含まれる。構成データ・ブロツクの第2バイトには、輝度検知が付勢されているか否かを表わすその下位バイト(LSB)のエネーブル・ビツトを含む。このビツトはシステム構築中にオペレータによりセツト又はリセツトされる。第2ワードの上位バイト(MSB)にはVIMの設定中に測定された基準輝度プローブ値が含まれる。
構成データ・ブロツクの第3ワードには、VIMのオペレータにより規定される輝度プローブ26の輝度測定として、受け入れ可能な最大値及び最小値が含まれる。輝度プローブ26がエネーブルされたときに、これらの値が許容範囲を定める。測定した輝度がこの範囲外であつたときは、このテストが失敗したことを示すフラグ・ビツトがVIM RAM48の他の個所に設定される。
4つのセンサー窓の構成パラメータは第9図に示すように、VIM RAM48に位置する独立した6ワードのデータ・ブロツクに記憶される。データ・ブロツクの第1ワードは窓のxyピクセル・アドレス座標についての1バイトを有する。矩形窓の場合には、これらの座標が窓の左上端のピクセルのピクセル線及びカラム・バイトのアドレスである。円形窓の場合に、これらの座標は円の中心についてのアドレス・バイトである。次の2ワードはピクセル・カウンタ許容範囲の最大値及び最小値である。第4ワードの上位バイトは、窓がエネーブルされているか否かと、その形状(矩形又は円形)とを表わす一連のフラグ・ビツトである。他の一対のフラグ・ビツトは、製作品12のシフトに対応しており、xy方向に窓がシフト、又は浮動するか否かを表わす。この上位バイトは、この窓内でカウントするのは白ピクセルか、黒ピクセルかを表わすものである。第4ワードの下位バイトには、この窓の2進数イメージを得るためにプロセツサ100が用いる基準しきい値が含まれている。基準しきい値はVIMの設定中に定められる。
窓データ・ブロツクの最後の2ワードは、窓が矩形が、円形であるかに基づいて変化するパラメータを記憶する。矩形窓のときは、第5ワードには矩形の大きさを定義する下右端のxy座標についてのバイトが含まれる。円形窓の場合は、第5バイトの1バイトには円の半径が含まれる。第5ワードンの他のバイトには白黒ピクセル・カウント・フラグが含まれる。第6ワードには窓のピクセル数が含まれ、これによつて窓の大きさが定められる。
最終的のセンサー型式は第10図に示されているEEPROM45の構成データ・ブロツクによつて定められる。その構成データ・ブロツクの第1ワードには、イメージ内の線の部分を定めるライン・ゲージの左端のxy座標が含まれる。次の2ワードに、それぞれライン・ゲージに沿うピクセルについて行なつた2つのテスト結果についての最大及び最小範囲値が含まれる。第4ワードの上位バイトには、ライン・ゲージがエネーブルされているか否か、及びこれが水平か垂直かを表わすフラク・ビツトが含まれる。付加的な2フラグ・ビツトは、ライン・ゲージがxy方向に浮動しているのか、又はこれが製作品12の縁の位置を表わす浮動データ源であるかを表わす。ライン・ゲージが浮動データ源であるときは、イメージにおいてその位置が固定される。更に2フラク・ビツトは、このセンサーが用いるのは4つの2進数イメージのうちのいずれのであるかを表わす。
ライン・ゲージのデータ・ブロツクにおける第4ワードの下位バイトは、ライン・ゲージに沿つてピクセル上に実行されるべき測定機能を表わす。各機能はピクセルについて2つの測定を実際に実行する。基本的な機能は、 白ピクセル及び黒ピクセルのカウント、 最初の白いプロツブの最初の縁位置及び幅、 最初の黒いプロツブの最初の縁位置及び幅、 最後の白いプロツブの最後の縁位置及び幅、 最後の黒いプロツブの最後の縁位置及ひ幅、 白プロツブの数及び縁の数、 黒プロツブの数及び縁の数。
プロツブは1つのピクセル、又は他の色のピクセルの前後で同一の色が連続する1グループのピクセルである。ライン・ゲージはソフトウエアにより実現される。従つて、付加的な機能は、必要なソフトウエア・ルーチンを備えることにより得られる。機能を表わすために用いられるビツト数は、多数のオペレーシヨンの定義を可能にする。
ライン・ゲージのパラメータのデータ・ブロツクの第5ワードには、線の終端についての座標を指定するバイトが含まれる。これは、垂直ライン・ゲージのy座標、又は水平ライン・ゲージのx座標である。このライン・ゲージをx又はy浮動データ源として用いたときは、第5ワードの他のバイトには製作品12の縁のデータ位置(基準位置)が含まれる。例えば、垂直ライン・ゲージをy浮動データ源として用いた場合は、このバイトにはその線の上端から製作品12の端までのピクセル数が含まれる。この数は、y即ち垂直方向に製作品12のデータ位置(基準位置)を設定する。データ位置の値は設定フエーズでこのバイトに記憶される。
センサーの構成データ・ブロツクに含まれるパラメータは、ソフトウエアにより用いられ、第3B図に示す映像プロセツサ部が設定される。この構成データは、以下、VIMの動作を参照して詳細に説明されるが、輝度基準回路68、プロセツサ100、及び窓メモリ124を構成する。
VIM構成 VIMを起動させると、ソフトウエアは第11図のフローチヤートに示す起動ルーチンに入る。第3A図及び第3B図も参照すると、この起動ルーチンはステツプ200で初期化フエーズに入り、マイクロプロセツサ44がVIM部品について診断を実行する。次に、ステツプ読み出し専用メモリ(RPM)46から通信パラメータをバツクプレーン・インタフエース回路52にロードする。
次いで、ステツプ202において、センサーのパラメータのデータ・ブロツクをEEPROM54からVIM RAM48に複写する。このデータはVIMの最終構成を表わす。EEPROM54に構成データが含まれてないときは、VIMを構築するためのフオールト・データを用いるか、又はプログラムがVIMのオペレータ構築の設定モードに直ちに移行する。これに代わって、一組の構成パラメータをバツク・プレーンを介してプロセツサ・モジユール3のメモリからVIM RAM48に転送することもできる。後者の方法は、異なる製作品のいくつかの組のパラメータをプロセツサ・モジユール・メモリに記憶し、また対応する製作品12が処理される際にVIMにロードすることを可能にする。
製作品12の評価結果を記憶するVIM RAM48の領域も定義される。この領域のデータ構成を第29図に示す。最初の16ビツト・ワード171のうちの5ビツトは、輝度プローブの結果及び4つのセンサー窓が受け入れ可能な値の範囲内にあるか否かを表わす。輝度プローブの結果が前記範囲内にあるときは、これらのビツトがローの論理レベルにある。第2ワード172には6つのライン・ゲージ範囲について同様の表示が含まれている。センサー結果が前記範囲内に入るか否かを示す前記ビツトは、「警報」と呼ばれる。
VIM RAM48内の結果データ・ブロツクの残りのワードには、各センサーについて完全な評価結果が含まれる。第3ワード173には輝度プローブ26により測定された平均輝度を表わす0〜255のデイジタル数が含まれる。第4ワードには4つのセンサー窓の白黒ピクセルのカウントが含まれる。これらのカウントは0〜約65535までの範囲にある。以上で説明したように、ライン・ゲージ・センサーのために選択した各解析機能は、ラインに沿つたピクセルについて2つの処理を実行する。例えば、白黒ピクセルをカウントすることができる。第1のライン・ゲージの2つの処理の結果は、結果データ・ブロツクの第8ワード178及び第9ワード179に記憶される。2つの結果は一次及び二次として表わされる。残りのワード180〜189には他の5ライン・ゲージについての一次及び二次ピクセル処理結果が含まれる。
IVM RAM48の結果データ・ブロツクにおける最終のワード190には、種々のIVM部品のステータスを表わすビツトが含まれる。これらは、プロセツサ・モジユール3がVIMに不具合が発生したか否かの判断を可能にする。
結果データメモリ領域を画定した後、VIM RAM48内のセンサー構成パタメータを用いて第3B図に概要的に示す映像プロセツサ部を最初に構築する。アドレス・バス・マルチプレクサ60は構築処理中に、先ず、アドレス・バス43を映像プロセツサ・アドレス・バス45に接続する。第11図のステツプ204において、マイクロプロセツサ44は、輝度プローブ・データ・テーブル(第8図)の第1ワードに記憶され、ビデオ・イメージにおけるプローブの位置を指定する2バイトを逐次読み出す。この2バイトは、データ・バス41を介して輝度基準回路68(第4図R>図)内の輝度プローブ位置レジスタ70に転送される。次に、ステツプ206において、マイクロプロセツサ44は、各センサー窓データ・テーブル(第9図)の各第4ワードからしきい値のバイトを逐次読み出し、これらのしきい値を2進数イメージプロセツサ100のアナログ・デイジタル変換器102のレジスタに記憶する。
ステツプ208において、マイクロプロセツサ44は4つのセンサー窓のそれぞれについてVIM RAM48内のデータ・テーブルから窓の位置、その大きさ及び形状を指定する情報を読み出す(第8図)。マイクロプロセツサ44はこの情報を用いて窓メモリ124のうちの対応する1つ内の窓のマスク・イメージを作成する。これを実行するために、マイクロプロセツサ44は先ずイメージ入力選択回路116をアクセスしてイメージ出力線118に接続する。イメージ出力線18はデータ・バス41の線のうちの一つを窓メモリ124のデータ入力に接続させる。制御バス42のうちの一つはエネーブルされ、選択した窓メモリ124を書き込みモードに設定する。
窓が矩形であるときは、マイクロプロセツサ44は構成データ・テーブルの第1ワードにおけるxy座標を用い、矩形の左上端を画定する。矩形の右下端のxy座標は、構成データ・テーブルの第1ワードに含まれている。マイクロプロセツサ44は、対角線上で反対の端を知ることにより、水平及び垂直方向の矩形片のイメージ・アドレスを決定することができる。マイクロプロセツサ44は、通常のフイル・ルーチン(fill routine)を用いて、適当な窓メモリ124をアドレス指定し、かつ窓センサーのメモリ位置にデイジタル化したものを記憶する。窓が円形であるならば、通常のアルゴリズムにより同様の方法を用いて、その中心アドレス及び半径から円の縁のアドレスを計算する。円の縁のアドレスが決定されると、デイジタル化されたものが円内の各窓メモリ・アドレスにより記憶される。
窓メモリ124のロードが完了すると、これに記憶された各イメージは視覚入力モジユールの4つのセンサー窓のうちの一つの表わす。特に、各メモリは、各メモリ位置に窓が配置されたピクセルに対応するものを記憶している。これが窓メモリ124に窓のマスクを作成する。各窓を独立してイメージ・メモリに記憶するので、窓は重なり合うか、又は一致する。
次に、ステツプ210において、制御信号が映像出力回路150に送出され、これにイメージ入力選択回路116からのイメージ出力線118上の信号と、窓メモリ124のうちの一つからの出力とを選択してモニター13の映像出力信号を発生するように命令する。視覚入力モジユール内の信号の選択は、カメラ11の2進数イメージ及びセンサー窓のうちの一つとを重畳したイメージを作り出す。
先ず、映像プロセツサ部において全ての部品が構築されると、アドレス発生器64は、アドレス・バス・マルチプレクサ60の制御を開始する。これは、映像信号の垂直帰線期間を除いて、アドレス発生器64からのアドレス信号を映像プロセツサ・アドレス・バス45に供給するものである。この垂直帰線期間において、アドレス・バス43はアドレス・バス・マルプレクサ60により映像プロセツサ・アドレス・バス45に接続される。これにより、マイクロプロセツサ44は、VIMがモニター13上にビデオ・イメージを表示させる間に、垂直帰線期間で映像プロセツサ部の部品をアクセスすることができる。
次に、判断ブロツク211において、ステツプの起動ルーチンはバツクプレーン・インタフエース回路52のラツチにおいてプロセツサ・モジユール3が記憶させた2つのフラグ・ビツトをテストする。第1ビツトは、VIMがラインから外されたことにより、センサー領域の設定が可能であることを表わしている。他のビツトは、VIMにイメージの処理を開始させる。設定ビツトがセツトされたと仮定すると、ステツプ212に示すように、グラフイツク・メモリ122をロードしてモニター13上に起動メニユーを表示させる。この起動メニユーは、英数字情報と、視覚入力モジユールを設定モードにするか否かを視覚入力モジユールのオペレータに質問するアイコンとからなる。この表示は、マイクロプロセツサ44により作成され、イメージ入力選択回路116に制御信号を送出して2進数イメージ・プロセツサ100の対応する2進数イメージ出力をイメージ出力の線118に送出するように指令するものである。グラフイツク・メモリ122は書き込みモードに設定され、メニユー・イメージが生成され、グラフイツク・メモリ122に記憶される。
次に、処理ブツク213において、起動ルーチンが第12図に示すライト・ペン入力ルーチンを呼び出す。判断ブロツク220において、マイクロプロセツサ44はライト・ペン位置レジスタ160をアクセスし、ライト・ペン14をオペレータが作動させたか否かを示すラツチ・フラグ・ビツトを読み出す。ライト・ペン14が使用されなかつたときは、プログラムは判断ブロツク220によりループし続け、オペレータがライト・ペン14を使用してVIMの動作モードを指示するのを待つ。このフラグがライト・ペン14の作動を示したときは、ステツプ222によりフラグをリセツトさせる。ステツプ224において、ライト・ペン位置レジスタ160に記憶されているライト・ペン位置がマイクロプロセツサ44により読み出され、ライト・ペン・ルーチンが第11図のフローチヤートに示すライト・ペン・ルーチンの呼び出し点に戻る。
判断ブロツク214において、ライト・ペン14がスクリーンにタツチした位置が表示された設定モードを示すアイコンのアドレス範囲と比較される。ライト・ペン14が2つのアイコン以外の位置で作動されたときは、ステツプ215において、プログラムは設定フラグ・ビツトを調べる。この設定フラグ・ビツトが未だセツトされていれば、プログラムはライト・ペン・ルーチンを再度呼び出すためにループ・バツクする。プロセツサ・モジユール3により設定ビツトがリセツトされていたときは、プログラムはステツプ211に戻し、設定フラグ及びトリガ・フラグをテストする。このVIM動作の説明の都合から、設定モードが選択され、プログラムが処理ブロツク216に進むものと仮定する。
設定モードでは、オペレータがセンサーの1つ又は全部を再規定することができる。例えば、この設定モードは新しい製作品についてVIMを構築するために用いられる。設定フエーズに入る前に、製作品がそのデータ位置でカメラ11の前に正確に配置される。設定モードを選択すると、VIMのプログラムは第13図のフローチヤートに示されている設定ルーチンに行く。映像プロセツサ部の部品へのアクセスを必要とする設定ルーチンのステツプは、カメラ11及びモニター13の映像同期信号の1以上の垂直帰線期間において実行される。最初は、ステツプ230において、窓センサー・ポインタが第1窓を処理するように1に設定される。ステツプ232において、第3B図に示すイメージ入力選択回路116は、マイクロプロセツサ44により構築され、2進数イメージ・プロセツサ100からイメージ出力線118に第1の2進数イメージを転送させる。選択回路116の構成を示すデータは、VIM RAM48に記憶されているので、これが一時的に変更された後でもこれをこの状態に戻すことができ、従つてマイクロプロセツサ44はグラフイツク・メモリ122又は窓メモリ124をアクセスすることが可能である。次に、ステツプ134において、映像出力回路150が設定され、イメージ入力選択回路116、グラフイツク・メモリ122及び窓メモリ124に記憶されている第1窓マスクの出力から重畳イメージを作成する。この重畳イメージはモニター13上に表示される。
次の垂直帰線期間中に、メイン設定メニユーが表示のためにグラフイツク・メモリ122に記憶される。新しいメニユーを表示するために、ステツプ236において、イメージ入力選択回路116はデータ・バス41をイメージ出力線118に接続するように構築される。次に、メニユーのデータが読み出し専用メモリ(ROM)46からメニユーが現われるビデオ・イメージの一部分に対応するグラフイツク・メモリ122のメモリ位置に記憶される。メニユーがグラフイツク・メモリ122に記憶されると、これが次の映像フイールドにおいてモニター13上に表示される。次いで、イメージ入力選択回路116は前の構築に戻される。
第14図を参照すると、メニユーは矩形の枠内の5つのアイコン(icon)286〜290からなる。アイコン285は窓センサーを表わし、アイコン287はライン・センサーを表わし、アイコン288は輝度プローブを表わす。アインコン289は各種機能を表わし、復帰矢印アイコン290は設定処理の完了を表わしている。ステツプ238において、第13図にフローチヤートにより示すプログラムは、ライト・ペン・ルーチンを呼び出してオペレータが5つのアイコンのうちの一つを選択するのを待つ。アインコンのうちの一つが選択されると、判断ブロツク240において、マイクロプロセツサ44はどのアイコンが選択されたかを判断する。設定ルーチンに関連して先に説明したように、このステツプでは、マイクロプロセツサ44がライト・ペン14の操作により選択した位置を各アイコのアドレス指定範囲と比較していずれが選択されたかを判断する。
アイコン286が選択されたと仮定すると、プログラムは第13図に示すルーチンに入り、これによつてオペレータは4つの窓センサー領域のそれぞれを構築する機会が与えられる。次のステツプ244において、第15図に示すメイン窓構成メニユーがモニター13の表示の下部に表示される。これは、先に説明したように、設定メニユーの表示と同一の一般的な方法により達成される。しかし、第15図に示す窓メニユーを作成する際に、マイクロプロセツサ44は窓ポインタにより表わされた窓のデータ・テーブルに記憶された種種の構造フラグを調べる。種々のフラグがアイコン292〜295により表わされた各パラメータのステータスを表わす。次に、各フラグの論理レベルを用いてメニユーについての読み出し専用メモリ(ROM)46から適当なアイコン・イメージを選択する。グラフイツク・メモリ122のそれぞれの位置に、選択した各アイコン・イメージを記憶し、メニユーの表示を形成する。
窓メニユーは7つのアイコンからなる。第1のアイコン291を用いて構築用の4つの窓のうちの一つを選択する。窓の形状は、アイコン292上のライト・ペン14を操作することにより、第15図に示す矩形窓か、又は円形窓を選択して変更することができる。これに代わつて、第3の選択が備えられており、カメラ11の前面に配置されたアートワーク(artwork)により窓を画定し、窓メモリに記憶することもできる。次のアイコン293は選択した窓によりイメージ処理を可能又は不可能にする。アイコン204は、選択した窓により用いられる2進数イメージの輝度しきい値を固定したままにするのか、又は輝度プローブにより選択された輝度変化に従つて変更可能にするのかを選択する。アイコン295は、カウントするのは白ピクセルか、黒ピクセルかを判断する。ピクセル・カウント回路152は白ピクセルのみをカウントするので、黒ピクセルのカウントは、窓内の総ピクセル数から白ピクセル数を引算するソフトウエア・ルーチンにより得られる。アイコン296の選択はプログラムを窓の大きさ及び位置を変更可能な窓調整ルーチンに進める。復帰矢印297は次に高いレベルのルーチンをセツト・アツプ処理、この場合はメイン設定メニユーに戻す。
メイン窓メニユーが表示されると、ステツプ246においてライト・ペン・ルーチンを呼び出す。選択が終わると、判断ブロツク248は7つのアイコンのうちのいずれをが選択されたのかを判断する。窓選択のアイコン286が選択されたときは、ステツプ250においてVIM RAM48内の窓ポインタ・アドレスを次の窓に増加させる。次に、ステツプ252において、マイクロプロセツサ44が制御信号をイメージ入力選択回路116に送出するので、選択した窓に対応する2進数イメージが2進数イメージ・プロセツサ100からイメージ出力線118に供給され、モニター13上に表示される。ステツプ254において、選択した窓イメージをその窓メモリ124からモニター13に供給する制御信号を映像出力回路150に送出する。ステツプ252及び254は、窓メモリ124に記憶されている新しい窓と、グラフイツク・メモリ122に記憶されている新しいセンサー窓及びメニユーとからなり、モニター13上に表示される重畳イメージを作成する。ステツプ254を実行した後、プログラムは、次の窓のメイン窓メニユーを表示する処理ブロツク242に戻る。これは、第1アイコンにおける窓の数が新しい窓を表わしていることを除き、前の窓メニユーと同一である。
ステツプ248において形状アイコン292が選択されたときは、ステツプ256において窓のデータ・テーブルの第4ワードにおける指定した窓の形状フラグ・ビツト(第9図9図)が反転され、次の形状を選択する。ステツプ257において指定した窓メモリ124に新しい形状の窓の位置及び大きさについてのデフオールト値を用い、新しい形状の窓を記憶する。次いで、プログラムはステツプ242に戻り、第15図に示すメイン窓メニユーを窓の形状についての新しいアイコンと共に、再度表示する。エネーブル・アイコン293、輝度しきい値補正アイコン294、又は白/黒ピクセル・カウント・アイコン295を選択したときは、ステツプ258,260又は262において、窓データ・テーブルにおいて対応するフラグ・ビツトが変更される。
OKアイコン296を選択したときは、ステツプ264を第17図に示す窓調整ルーチンを呼び出す。窓調整ルーチンの最初のステツプ270ではモニター13の下端に窓調整ルーチンのメニユーを表示する。第16図に示す窓調整ルーチンのメニユーは、16アイコン320〜325からなる。最初のアイコン320は、オペレータがイメージ内の窓を再配置したいときに選択される。第2のアイコン321は、窓の大きさを変更するのに用いられる。アイコン322は、窓のxy位置がビデオ・イメージ内の製作品12の位置をシフトすることにより浮動可能にするか、又は所定の位置に固定したまま静止させるかを選択する。アイコン324はオペレータが許容ピクセル・カウントの範囲を変更するのを可能にする。また、戻り矢印325は、窓調整ルーチンをステツプ242に戻してメイン窓メニユーを再度表示させる。
窓調整ルーチンが表示されると、ルーチンは第17図のステツプ272に移行し、ライト・ペン・ルーチンを呼び出す。ライト・ペン14の作動を検出すると、プログラムは判断ステツプ274に移行し、選択した特定のアイコンを判断する。
アイコン320を選択し、オペレータがセンサー窓を移動したいことを示しているときは、処理ブロツク276により第18図に示す移動ルーチンが呼び出される。この移動ルーチンの最初のステツプ300において、第19図に示す移動メニユーを表示する。この移動メニユーは、窓を移動する方向を表わす矢印と、再配置を完了したときに用いる基準リターンの矢印とからなる。移動メニユーが表示されると、ステツプ302によりライト・ペン・ルーチンが呼び出される。ライト・ペン14の作動を検出すると、プログラムはステツプ304に移行し、ライト・ペン14の位置を各アイコンのアドレスの範囲と比較することにより、選択したアイコンを判断する。左向きの矢印を選択したときは、ステツプ306によりx−yオフセツト回路126におけるxオフセツト・データ・ラツチ133の内容を増加させる。x及びyオフセツト・データ・ラツチ133及び140に大きさ数を記憶させる結果、窓メモリ124に記憶したイメージをモニター13のスクリーン上で左へシフトさせることになる。これは、この方法は窓の周辺を再計算したときよりも、ずつと速い方法なので、窓を移動させるのにxyオフセツト回路126が用いられ、ライト・ペン14が変化を示す度にフアイルされる。xオフセツトを増加すると、ステツプ308によりこの窓に関する構成データ・ブロツク(第9図)の第1ワードのx位置を減少させる。窓が矩形のときは、右下端のx位置も減少させる。
ライト・ペン14が右向き矢印を選択したときは、ステツプ310によりxオフセツトを減少させ、またステツプ312により構成データ・ブロツクのx位置バイトを増加させる。上向き矢印の場合は、ステツプ314によりyオフセツトを増加させ、ステツプ316によりy位置バイトを減少させる。同様に、下向き矢印を選択したときは、ステツプ318によりyオフセツトを減少させ、処理ブロツク319によりy位置バイトを増加させる。窓を新しい位置に移動したときは、リターンの矢印を選択する。これは、プログラムをステツプ317に進めて、先ず窓メモリ124内の当該窓のイメージ・メモリを0にするものである。次いで、マイクロプロセツサ44は窓の構成データ・ブロツクに含まれている位置パラメータを用い、窓メモリ124を新しい位置に再ロードする。この処理ステツプもx−yオフセツト回路126におけるxオフセツト・データ・ラツチ133及びyオフセツト・ラツチ140を0にする。次いで、移動ルーチンは第17図の窓調整ルーチンに戻り、ステツプ270により窓調整メニユーを再度表示する。
窓調整ルーチンは窓の大きさを第16図の示すメニユーから選択したアイコン321により変更させ、処理ブロツク278において窓調整ルーチンにより第20図のフローチヤートに示す窓の大きさルーチを呼び出す。この窓調整ルーチンの最初のステツプ330において、窓の幾何学的な形状を表わす構成データ・ブロツクのフラク・ビツトを調べて、これが円形であるか否かを判断する。窓が円形でなかつたときは、これは矩形ということであり、プログラムはステツプ332に進み、窓の大きさをグラフイツク・メモリ122に記憶し、かつモニター13に表示する。このメニユーは移動ルーチンのものと同一であり、これを第19図に示す。ライト・ペン・ルーチンはステツプ334により呼び出される。
ライト・ペン14を作動したときは、処理ブロツク336はいずれのアイコンを選択したかを判断する。矢印を選択すると、ステツプ338〜341が矩形の下右端の位置か、又はy位置を変更される。例えば、左向きの矢印はステツプ338が当該窓の構成データ・ブロツクにおける下端のx座標を減少させる。これは1ピクセル位置における窓の右端を実際に移動させる働きがあり、マイクロプロセツサ44は窓メモリ124を0にし、フローチヤートの処理ブロツク342により示す新しい大きさの窓を改めて描く。次いで、プログラムはステツプ334においてライト・ペン・ルーチンを再び呼び出すために戻る。窓の変更を完了したときは、リターンの矢印を選択する。これは、プログラムを窓の大きさサブルーチンから第17図の調整ルーチンのステツプ279に戻すものである。ここで、窓の総ピクセル数をカウントし、結果を窓のデータ・テーブルの第6ワードに記憶する。その後、プログラムはステツプ270に戻り、窓調整メニユーを再度表示する。
第20図の窓の大きさルーチン(ステツプ330)の開始において、窓が円であると判断したときは、異なる窓の大きさメニユーを表示する。この窓の大きさメニユーは、左向きや、右向き矢印がないことを除き、第19図に示すものと同一である。ステツプ352において、ライト・ペン・ルーチンを呼び出し、またライト・ペン14が作動していると判断したときは、プログラムはステツプ354に進む。このステツプ354は、ライト・ペン14がいずれの矢印を選択したかを判断する。窓の大きさを変更するために2つの矢印を必要とするだけなので、半径を増加させるか、又は減少させることにより、変更を行なう。上向き矢印を選択したときは、ステツプ356により窓についての構成データ・ブロツク(第9図)に記憶している半径の値を増加させる。一方、下向き矢印を選択したときは、ステツプ358が記憶している半径の値を減少させる。次いで、ステツプ360において、マイクロプロセツサ44は対応する窓メモリ124を0にし、構成データ・ブロツクに記憶している新しい半径を用い、円形の窓を描画し直す。次に、プログラムはライト・ペン・ルーチンに戻るので、窓の大きさの変更を追加することができる。円形の窓の変更を完了したときは、リターン矢印のアイコンを用いてプログラムを第17図の窓調整ルーチに復帰させ、ステツプ279及び270を実行する。
窓調整ルーチンにおいて、位置浮動アイコン322を選択したときは、ステツプ280により、窓の構成データ・ブロツクにおけるxy浮動フラツク・ビツトを変更し、窓の位置を固定するか、又は製作品12の位置にシフトによる浮動を許容するかを表わす。
最小及び最大範囲の警報値については、第16図のメニユーに基づいて対応するアイコ324を選択することにより、設定することができる。これらの最小及び最大範囲の警報値はピクセル・カウンドの範囲を確立し、製作品12を評価する際にこれを用いて、窓内でカウントされた実際のピクセル数が満足すべきものか否かを判断する。アイコン324を選択すると、第17図のステツプ284が第21図のフローチヤートに示すレンジ・セツト・ルーチンを呼び出す。このルーチンはステツプ370から開始され、第22図に示すレンジ・メニユーが表示される。このメニユーには、復帰矢印アイコン362及び上向き矢印363及び下向き矢印364が含まれている。このメニユーには、更に範囲366の最小値、範囲368の最大値を表示する範囲数字ブロツク365と、範囲368の最大値とピクセル・カウント回路152のピクセル・カウンタが現在カウントしているカウント値367とが含まれる。
第21図のフローチヤートのステツプ372はライト・ペン・ルーチンを呼び出す。ライト・ペン14の作動が検出されると、ステツプ374はいずれのアイコンが選択されたかを判断する。最初、オペレータは最小値範囲制限数366又は最大値範囲制限数368を選択することになる。最大値範囲制限数368を選択したときは、ステツプ376はVIM RAM48において最大値フラグをセツトする。数字ブロツクの範囲366上にライト・ペン14を置いて、最小値範囲を選択すると、ステツプ378は最大値フラグをリセツトする。ステツプ374においてライト・ペン・ルーチンが再び呼び出され、上向き矢印363又は下向き矢印364のうちのいずれをオペレータに選択させる。ライト・ペン14を作動させたときは、判断ブロツク382は2つの矢印のうちのいずれを選択したのかを判断する。上向き矢印363が選択されたときは、判断ブロツク384により最大値フラグがセツトされているか否かを判断する。最大値フラグがセツトされているのが確認されたときは、ステツプ386によりこの窓の構成データ・ブロツク(第9図)に記憶されている最大限界値を増加させる。ステツプ384において最大値フラグがセツトされていなかつたときは、ステツプ388において構成データ・ブロツクの最小限界値を増加させる。ステツプ382により下向き矢印364が指定されたと判断したときは、判断ブロツク390において最大値フラグがセツトされているか否かの判断をする。最大値フラグがセツトされているときは、ステツプ392においてマイクロプロセツサ44が最大限界値を減少させる。最大値フラグがセツトされていないときは、ステツプ394において最小限界値を減少させる。選択した最大限界値又は最小限界値を増加又は減少させた後、ステツプ396において上限又は下限の新しい数値を表示する。また、ステツプ372において、プログラムはステツプ372に戻つてライト・ペン・ルーチンを呼び出し、更に最大限界値又は最小限界値を増減させる。復帰矢印アイコン362を選択すると、プログラムはステツプ372から窓調整ルーチンのステツプ270に戻る(第17図)。窓調整ルーチン上の点272において復帰矢印アイコン362を選択すると、第13図のメイン窓メニユーのフローチヤート上のステツプ242に戻る。
第13図を参照するに、ステツプ238において第13図のライン・ゲージ・アイコンを選択すると、プログラムは判断ブロツク240から第23図のフローチヤートに示されているライン・ゲージ・ルーチンに移行する。先に説明したように、ハードウエアにより主として実現されているセンサー窓と異なり、ソフトウエアによりライン・ゲージを増加させる。その結果、モニター13上にライン・ゲージを表示するために、マイクロプロセツサ44は窓メモリ124のうちの第4のものを用い、表示用にライン・ゲージのイメージを作成する。このために、ステツプ400においてライン・ゲージ・ルーチンは第4窓の窓ポインタをセツトする。ステツプ402において、ライン・ゲージ・ポインタとして表わされたVIM RAM48のメモリ・アドレスは、1にセツトされ、第1ライン・ゲージを表わす。次に、ステツプ406において、映像出力回路150はセツトされ、イメージ入力選択回路116、第4の窓メモリ124及びグラフイツク・メモリ122の出力から複合イメージを作成する。
第3A図、第3B図及び第23図を引き続き参照するに、ステツプ406においてマイクロプロセツサ44は第4の窓メモリ124にライン・ゲージを描く。このために、マイクロプロセツサ44はイメージ入力選択回路116に制御信号を送出し、データ・バス41の線のうちの一つを窓メモリ124に接続されているイメージ出力線118に接続する。次いで、マイクロプロセツサ44は窓メモリ124のうちの第4のものを作動させ、古いイメージ・データを消去することにより新しいデータを第4の窓メモリ124に書き込むことができる。マイクロプロセツサ44はxy位置情報、垂直/水平方向フラグ及びライン・ゲージ・構成データ・ブロツク(第10図)における長さバイトを用いて、第4の窓メモリ124内のラインのイメージを記憶する。特に、ライン・ゲージが配置されイメージのピクセル位置を表わす各メモリ位置には、デイジタル1が記憶されており、他の全ての位置には0が含まれている。これは、モニター13上にライン・ゲージを表わす白いイメージを作成する。
次いで、ステツプ408において、イメージ入力選択回路116はセツトされ、ライン・ゲージ・データ・ブロツクにおいて指定された2進数イメージ・プロセツサ100からイメージ出力線118に接続される。ステツプ410において、マイクロプロセツサ44は第24図に示されているメイン・ライン・ゲージ・メニユーを表示する。これは、前と同じように、イメージ入力選択回路116を変更することにより、イメージ出力線118にデータ・バス41のラインのうちの一つを接続し、これによつてデータをマイクロプロセツサ44からグラフイツク・メモリ122に供給して記憶することができる。次いで、メイン・ライン・ゲージ・メニユーはグラフイツク・メモリ122に記憶され、マイクロプロセツサ44はイメージ入力選択回路116をその前の接続に復帰させる。メニユーは6つのアイコン430〜435からなる。第1のアイコン430は6つのライン・ゲージのうちのいずれか現在構築されているのかを表わす。ライト・ペン14によりこのアイコンを反復して選択することにより、6ゲージによりライン・ゲージの選択をステツプさせる。第2のアイコン431はオペレータに水平ラインか、又は垂直ラインかを選択させる。第3のアイコン432は4つの2進数イメージのうちのいずれかを指定したライン・ゲージに用いるかを示す。アイコン433は指定されたライン・ゲージをエネーブル又はチセーブル(disable)させる。そのOKアイコン434は構築プログラムを大きさ、位置及びライン・ゲージのピクセル機能を選択するライン調整メニユーに移行させる。ステツプ236において、復帰矢印アイコン435はプログラムをライン・ゲージ・ルーチンからメイン設定ルーチンに戻す。
ステツプ412において、ライト・ペン14の作動が検出されたときは、判断ブロツク44においてマイクロプロセツサ44は第24図のアイコンのうちのいずれが選択されたのかを判断する。ライン・ゲージを選択するアイコン430が選択されたときは、ステツプ416によつてライン・ゲージ・ポインタを増加させて、次のライン・ゲージを選択する。最後のライン・ゲージの番号6を前に選択したときは、ステツプ416においてラインの行き先が番号1に変更される。ステツプ414において、水平又は垂直ラインを選択するアイコン431が選択されたときは、プログラムはステツプ418に進み、指定されたライン・ゲージ・データ・テーブルにおける水平/垂直フラグを他のライン方向に反転される。次いで、処理ブロツク419において、デフオールト位置及び長さを用いて窓メモリ124に新しいライン・ゲージを記憶する。ステツプ432を選択したときは、ステツプ420においてマイクロプロセツサ44は2進数イメージの値を増加させてライン・ゲージ・データ・テーブルに記憶し、これに対応して窓ポインタも変更する。エネーブル・アイコン433を選択したときは、ステツプ424において、データ・テーブルにおけるエネーブル・フラグを指定したライン・ゲージに反転させる。OKアイコン434を選択したときは、ステツプ426において第25図に示すライン調整ルーチンを呼び出す。
ライン調整ルーチンはライン・ゲージの位置及び形状を変更すると共に、実行しようとする特定のピクセル評価機能を選択させる。最初のステツプ450は、第26図に示すライン調整メニユーを表示する。このライン調整メニユーは、6つのアイコン433〜442からなる。次いで、ステツプ452においてライト・ペン・ルーチンを呼び出す。ライト・ペン14の作動を検出すると、ステツプ454においていずれのアイコンが選択されたのかを判断する。
最初のアイコン436を選択したときは、ステツプ456はライン移動ルーチンを呼び出す。このライン移動ルーチンは先に説明した窓を移動させるときに用いるルーチンと同じである。アイコン437を選択すると、プログラムはステツプ485においてラインの太さルーチンを呼び出す。このステツプ485も、ラインの長さが当該ルーチンにより変更されることのみを除き、先に説明したも窓の大きさを変更するルーチンと同様である。アイコン438を選択すると、ステツプ460が呼び出され、ライン・ゲージの構成データ・ブロツクにおける浮動機能フラグをセツトする。アイコン435を反復して選択すると、ライン・ゲージ位置を浮動させるか、しないか、又はライン・ゲージの結果を製作品12のx又はy位置の測定源として用いることを指定することによりステツプする。
アイコン440を選択すると、ステツプ464を呼び出す。ステツプ464は機能選択ルーチンを呼び出すものである。この機能選択ルーチンは異なる評価機能に対応する一組の番号により選択アイコンを進めることによつて、ピクセルの評価機能を変更させるメニユーをモニター13上に表示する。更に、受け入れ可能な結果値の範囲をセンサー窓のピクセル・カウント範囲をセツトした方法と同様に変更させてもよい。復帰矢印アイコン442を選択することにより、ライン調整ルーチンは第23図のメイン・ライン・ゲージに戻る。
第13図に戻ると、ステツプ240において、第14図に示す輝度プローブのアイコン288を選択したときは、プログラムは第27図のルーチンに行く。最初のステツプ470は第28図に示す輝度プローブのメニユーを表示する。このメニユーは7つのアイコンからなる。次のステツプ472において、ライト・ペン・ルーチンを呼び出す。ライト・ペン14を作動させると、ステツプ473においてマイクロプロセツサ44は、輝度プローブのメニユーにおける7つのアイコンのいずれを選択したかを判断する。
最初のアイコンを選択すると、ステツプ474においてVIM RAM48内の構成データ・ブロツクの輝度プローブ・エネーブル・フラグを反転させる。第2のアイコン491は、ステツプ475において先に説明したセンサー窓の移動ルーチンと同一の移動ルーチンを呼び出す。範囲選択アイコン492を選択すると、プログラムはステツプ476に行くので、受け入れ可能な輝度値の範囲のセツトが可能になる。アイコン493はストロボ・ライトの使用をエネーブル又はチセーブルさせるものである。これは、ステツプ477においてマイクロプロセツサ44がVIM RAM48内のアドレスによりストローブ・エネーブル・フラグを反転させることにより達成される。次いで、ストロボ・ライトが点灯され、ビデオ・イメージを取り込む。ビデオ・イメージから導出された4つの2進数イメージは、バツフア・メモリ144に記憶される。イメージ入力選択回路116はバツフア・メモリ114の信号をその出力に印加するように変更される。
OKアイコン495を選択すると、プログラムはステツプ482に行き、ステツプ482において2進化しきい値メニユーをマイクロプロセツサ44により表示させる。この2進化しきい値メニユーは2進数イメージ・プロセツサ100の4つのしきい値のうちの一つを選択するアイコンを表示させ、次いで当該のしきい値を増減させる。これは、対応する窓の構成データ・ブロツクの第4ワード内の2進化基準しきい値を変更することにより達成される。その2進化しきい値を変更するために、一つのアイコンを用いて4つの2進数イメージのうちの異なるものを選択する。このアイコンを選択すると、ステツプ478においてマイクロプロセツサ44は窓ポインタを次の窓番号に増加させることになる。次いで、ステツプ479において、マイクロプロセツサ44はイメージ入力選択回路116に制御信号を送出するので、2進数イメージ・プロセツサ100から対応する2進数イメージをイメージ出力線118に供給してモニター13上に表示させる。同様に、マイクロプロセツサ44は映像出力回路150をセツトするので、処理ブロツク480において窓メモリ124に記憶した選択窓を2進数イメージと共に表示することができる。
メニユーにおける上下の矢印は、指定したデータ・ブロツク(第9図)の第4ワードにおける2進化しきい値バイトを増減させることにより、モニター13上に明るい又は暗い画像を生成する。これは、ステツプ483においてライト・ペン・ルーチンを呼び出すことにより達成され、ライト・ペン14によりオペレータが2進数イメージのうちの一つのしきい値を増加又は減少させるアイコンを選択できるようにする。このアイコンを選択したときは、マイクロプロセツサ44はスエツプ485において窓データ・テーブルにおける2進数しきい値を増加させる。一方、下向きアイコンを選択したときは、ステツプ486においてしきい値を減少させる。しきい値を変更する度に、マイクロプロセツサ44は、このしきい値を窓データ・テーブルから2進数イメージ・プロセツサ100に転送し、処理ブロツクにおいて対応するイメージのしきい値レジスタに記憶させる。次いで、プログラムはステツプ483に戻り、再びライト・ペン・ルーチンを呼び出す。2進数イメージのしきい値を適正に調整すると、しきい値セツト・ルーチをメイン・プローブ表示メニユーに戻す復帰矢印アイコンを選択する。
第13図に戻ると、第14図に示すメイン設定メニユーの第4アイコン289は種々の機能を構築させる。これを選択すると、判断ブロツク240はプログラムはこれらのパラメータを構築させるルーチンに移行する。例えば、このようなパラメータの一として、視覚入力モジユールがプロセツサ・モジユール3からのトリガ信号に応答すべきか、又は正面パネルの電気端子17を介して外部信号源からのトリガ信号に応答すべきかのものがある。ユーザーが視覚入力モジユールの構築を完了すると、メイン設定メニユーにおいて復帰矢印アイコン305を選択する。ステツプ241において、マイクロプロセツサ44は全てのセンサーの構成データ・ブロツクと、他のVIM校正パラメータとをEEPROM54に転送する。この転送はEEPROM54に記憶している構築データを更新するので、停電したとき、又はオフにしたときは、現在構成が達成される。プロセツサ・モジユール3も、構成データをプロセツサ・モジユール3に転送してメモリに付加的にバツク・アツプ記憶することを要求することができる。次いで、ステツプ242においてイメージ入力選択回路116は制御信号を送出して第1イメージを2進数イメージ・プロセツサ100からそのイメージ出力線118に送出させる。次に、ステツプ243において、映像出力回路150は、イメージ入力選択回路116及び第1の窓メモリ124からの出力を重畳したイメージを作成するように構築される。この時点で、設定ルーチンは終結し、プログラムは第11図のフローチヤートのステツプ211に戻る。プロセツサ・モジユール3がバツクプレーン・インタフエース回路52のラツチにおける設定ビツトをリセツトするまで、プログラムはその設定分岐を介してループし続ける。これがリセツトされると、プログラムは、ステツプ211において設定ビツトが再びセツトされるか、又は映像処理が信号をトリガするのを待つ。このためのトリガ信号は、プロセツサ・モジユール3がバツクプレーン・インタフエース回路52のラツチにおいてトリガ・ビツトをセツトしたとき、又は外部装置がトリガ電圧を電気端子17のうちの指定した一つに印加したときに、発生する。
イメージ処理 トリガ信号を受け取ると、プログラムはイメージ処理ルーチンに移行する。第30図はイメージ処理ルーチンの概要図である。ステツプ500において、ビデオ・イメージを得ると、輝度プローブ26により測定された輝度を調べる。輝度は受け入れ可能な範囲内になければならない。さもなければ、取り込んだイメージは適正な処理にとつて暗過ぎるか、又は明る過ぎるものとなる。輝度が受け入れ可能なものであるときは、処理はステツプ502に進み、固定した窓のそれぞれのピクセル・カウントを読み込み、VIM RAM48の結果データ・ブロツク内に記憶する。次いで、ステツプ504において、固定したライン・ゲージを調べ、それらの分析の結果をデータ・ブロツクに記憶する。窓又はライン・ゲージが製作品12の位置の変化と共に浮動したものがないときは、処理はステツプ514に移行する。しかし、いくつかのセンサーが浮動したときは、処理はステツプ506及び508に進み、製作品12の位置を測定し、xy位置のオフセツトを決定する。xyオフセツトの計算を完了すると、浮動ライン・ゲージを解析してその結果をステツプ510により記憶する。次いで、ステツプ521において浮動窓を解析してその結果を結果データ・ブロツクに記憶する。次のステツプ514において、輝度プローブの輝度を用いて2進数イメージ・プロセツサ100においてしきい値を調整する。センサー警報ビツトのそれぞれを調べて、マスタ警報ビツトのステータスを判断する。図においてその他の番号は第30図に示す各主要ステツプのフローチヤートを示す。
第31図はビデオ・イメージ取り込み及び輝度プローブ検査ルーチンのフローチヤートであり、以下で第3A図及び第3B図の概要図を参照して説明する。ビデオ・イメージ取り込み及び輝度プローブ検査ルーチンのフローチヤートである。このルーチンは、バツクプレーン・インタフエース回路52の出力ラツチにおけるVIMビジー・ビツトを設定することにより、ルーチンはステツプ520から開始される。このビツトをセツトすると、VIMがイメージを実際に評価し、かつその結果が未だ得られないことをプロセツサ・モジユール3に示すものとなる。次いで、処理ブロツク521においてVIMは、アドレス発生器64から次の映像フレームが開始することを示す垂直同期信号が来るのを待つ。必要ならば、ステツプ522において構成データ・ブロツクにおけるエネーブル・ビツトがセツトされているか、否かに従つてストロボ・ライトを点灯する。
次いで、ステツプ523についてイメージを取り込む。このステツプ523では、既に、イメージ入力選択回路116が2進数イメージ・プロセツサ100からのバス112のうちの4本をピクセル・カウント回路152のカウンタ・バス120に接続するように構築されている。更に、バツフア・メモリ114も2進数イメージ・プロセツサ100からの4つの2進数イメージのそれぞれを記憶するようにエネーブルされている。イメージの取り込みが完了すると、ステツプ524においてVIM RAM48に新しい値を格納すべき、範囲警報及びカウント値の全記憶位置をクリアする。
ステツプ522において、構成データ・ブロツク内の輝度プローブ26のエネーブル・ビツトを調べる。輝度プローブ26(第2図)がエネーブルされていないときは、プログラムはステツプ531に進む。もし、輝度プローブ26がエネーブルされているときは、ステツプ526において輝度基準回路68内のアナロク・デイジタル変換器90(第9図)を制御バス42の信号によりエネーブルする。これは、測定した輝度をデータ・バス41に送出する。ステツプ527においてマイクロプロセツサ44が平均輝度を表わす当該データを読み込む。ステツプ528において、輝度を輝度プローブの構成データ・ブロツク内に記憶している受け入れ可能な輝度の範囲と比較する。この輝度が受け入れ可能な範囲内に存在しないときは、VIM RAM48内のプローブ誤りフラグ、及び第29図に示す結果データ・ブロツク内の輝度プローブ警報フラグをセツトする。ステツプ530において、結果データ・ブロツク内に輝度プローブ26により検知された平均輝度を記憶する。
次いで、マイクロプロセツサ44は輝度プローブ警報フラグを調べて製作品12の輝度が受け入れ可能な範囲にあるか否かを判断する。プローブ警報フラグがセツトされているときは、ビデオ・イメージを取り込む際に製作品12の輝度が満足すべきイメージを生成して処理するためには暗過ぎたか、又は明る過ぎたものである。輝度プローブ警報フラグがセウトされていないときは、第38図の最初のステツプ670へプログラムが移行し、個々のセンサーを分析するステツプを全てバイパスさせる。しかし、輝度プローブ警報フラグがセツトされていないときは、満足すべきイメージを取り込んだことを表わしており、プログラムは進み、第32図に示すルーチンを用いて固定窓を調べる。
この検査ルーチンは、VIM RAM48内のセンサー・インデツクス・カウント値を1にセツトすることにより、ステツプ540から開始する。次いで、プログラムはセンサー窓分析ループに入り、4つのセンサー窓のそれぞれを評価してそれらの位置が固定されているか、否かを判断する。固定されているときは、ピクセル・カウントを読み出す。エンサー窓分析ループは判断ブロツク541から開始され、センサー・インデツクス・カウント値を調べることにより、4つの窓を全て調べたか判断する。4つの窓を全て調べたときは、プログラムは判断ブロツク542に進み、センサー・インデツクス・カウント値により現在指定されている窓の構成データ・ブロツク内のエネーブル・ビツトを調べて、これがエネーブルされているか否かを判断する。もし、窓がエネーブルされていなければ、プログラムはステツプ550に進み、センサー・インデツクス・カウント値を増加させ、次の窓を調べる。しかし、窓がエネーブルされていたときは、固定窓ルーチンはステツプ543に進み、窓の構成データ・ブロツク内の浮動ビツトを調べて窓の位置が固定か、浮動かを判断する。窓の位置が浮動のときは、処理ブロツク551においてセンサー浮動フラグをセツトし、プログラムの実行は直接ステツプ550に進む。
しかし、インデツクスした窓の位置から固定されているときは、ステツプ544においてマイクロプロセツサ44が対応するヒクセル・カウント回路152に記憶されているピクセル・カウントを読み込む。次いで、判断ブロツク545においてカウントするのは窓内の白ピクセルか、黒ピクセルかを表わす構築ビツトを調べる。先に説明したように、ピクセル・カウント回路152はセンサー窓領域内の白ピクセルのみをカウントする。従って、黒ピクセルをカウントするときは、ステツプ546においてマイクロプロセツサ44がセンサー窓内の総ピクセル数から、ピクセル・カウント回路152の白ピクセルのカウントを引算しなければならない。判断ブロツク547において、設定処理の際に当該窓についてオペレータにより定義された受け入れ可能な値内に、ピクセル・カウントの結果があるか否かを判断する。この判断は、マイクロプロセツサ44が窓データ・ブロツクに記憶した範囲の最大及び最小限界値に対して比較することにより行なわれる。ピクセル・カウントが予め定めたこの範囲外であつたときは、ステツプ548においてこの窓のための結果データ・ブロツク警報フラグをセツトする。次いで、ステツプ549において結果データ・ブロツク内にピクセル・カウントをセーブする。ステツプ550においてセンサー・インデツクス・カウントを増加させ、プログラムがステツプ541に戻つて次のセンサー窓の結果を調べる。4つの窓の全てを調べたときは、プログラムの実行はステツプ541から固定ライン・ゲージの結果を調べる処理に移行する。
第33図には固定ライン・ゲージ解析ルーチンが示されている。先ず、ステツプ559において、アドレス・バス・マルチプレクサ60がアドレス・バス43を映像プロセツサ・アドレス・バス45に接続するように構築される。次いで、マイクロプロセツサ44は出力選択スイツチ148を構築するので、バツフア・メモリ114からの出力信号はデータ・バス41に送出される。次いで、ステツプ560においてVIM RAM48のセンサー・インデツクス・カウント値は1にリセツトされ、各ライン・ゲージのそれぞれについての検査ループに入る。検査ループの最初のステツプ561において、センサー・インデツクス・カウント値を調べて6つのライン・ゲージの全てを調べたか否かを判断する。調べくべきライン・ゲージが残つているときは、プログラムは判断ブロツク562に進み、インデツクスしたライン・ゲージの構成データ・ブロツクに含まれているエネーブル・ビツトを調べる。ライン・ゲージがエネーブルされていないときは、プログラムは直接ステツプ575に進み、センサー・インデツクス・カウント値を増加させ、これによつて次のライン・ゲージを調べられるようにする。しかし、ステツプ562においてライン・ゲージがエネーブルされているのを検出すると、ステツプ563においてその構成データ・ブロツク内のライン・ゲージの浮動について検査を行なう。ライン・ゲージが浮動であつたとき、ステツプ564においてセンサー浮動フラグをセツトする。
ライン・ゲージが固定されたままと仮定すると、ステツプ565において、浮動データ発生源でこのライン・ゲージの解析によりxyオフステツト回路126を更新すべくか否かについて判断する。これが浮動データのうちの一つであるときは、ステツプ566においてこの目的のために指定されたVIM RAM48の一部にライン・ゲージの数をセーブし、プログラムはステツプ575に進む。しかし、ステツプ565においてライン・ゲージが浮動データ源ではないと判断したときは、ステツプ567においてライン・ゲージ解析サブルーチンを呼び出す。
第34図に示すライン・ゲージ解析サブルーチンは、最初に、ステツプ580においてライン・ゲージの構成データ・ブロツクをアクセスしてライン方向を表わすデータと、どの色のピクセルを処理すべきかを表わすデータと、選択したピクセル解析機能を表わすデータとを読み出す。次いで、ステツプ581においてアドレス・バス43を映像プロセツサ・アドレス・バス45に接続することを指示する制御信号をアドレス・バス・マルチプレクサ60に送出する。ステツプ582において、このライン・ゲージがバツフア・メモリ114のうちの一つに記憶され、かつ出力選択スイツチ148に指示することによりアクセスされ、バツフア・メモリ114の出力をデータ・バス41に送出される。
ステツプ583において、種々の処理分岐584〜587のうちのいずれのを実行すべきかを選択された機能が判断する。第1の分岐584はライン・ゲージに沿つて白ピクセル及び黒ピクセルをカウントする。マイクロプロセツサ44がライン・ゲージに沿つた当該イメージの各イメージをアドレス指定し、白ピクセル及び黒ピクセルを別個にカウントする。このカウントはVIM RAM48の一次記憶領域に保持される。
第2の分岐585はライン・ゲージに沿つて発生するピクセルのブロツブ数と、それらの縁とをカウントする。ブロツブとは、連続する同一色のピクセルのうちの一つ又はそれらの一グループであると定義される。このルーチンにおいては、マイクロプロセツサ44がバツフア・メモリ114内に記憶された対応のイメージにおける各ピクセルを調べる。白ピクセルから黒ピクセルへ、又は黒ピクセルから白ピクセルへの遷移が検出されると、VIM RAM48内に記憶される対応のカウントを増加させる。この機能解析ルーチンの分岐を用いてライン・ゲージの構成データ・ブロツク内に記憶されている機能数と共に黒ブロツブ上の白点をカウントして、白黒ブロツブをカウントすべきか否かを判断する。
次の分岐586はイメージを左から右へ、又は上から下へ最初の白黒ブロツブの最初の縁又は幅を検出する。ライン・ゲージの構成データ・ブロツクに記憶されている機能数により、検知されたのは白ブロツブか、黒ブロツブかを判断する。各ライン・ゲージ・センサー23及び24について当該のライン・ゲージ解析ルーチンの分岐を用い、これによつて第2図に示すイメージ例における製作品12の縁を検出する。いずれの場合も最初の白ブロツブの縁は製作品12の縁を表わす。水平ライン・ゲージ24の場合では、マイクロプロセツサ44が最初はライン・ケージの左端のあるバツフア・メモリ114内のピクセルをアドレス指定することにより処理が開始される。次いで、マイクロプロセツサ44はバツフア・メモリ114のピクセル・アドレスを増加させ、白ピクセルを検出するまで連続的に各黒ピクセルをカウントする。最初の白ピクセルに対するピクセル位置番号は製作品12の縁の位置を決定する。次いで、次の黒ピクセルを検出するまで、又はライン・ゲージの終端になるまで、白ピクセルをカウントする。カウントした白ピクセル数は最初のブロツブの幅を決定する。同じような方法により、ライン・ゲージ・センサー23及び24を用いて、製作品12の上端の位置を決定する。しかし、この場合には、製作品12の水平端を位置決めするために、マイクロプロセツサ44がピクセルの上位バイトに含まれているピクセル・ライン・カウントを増加させる。
最後の機能解析ルーチン587はライン・ゲージに沿つた最後のブロツブの最終縁及び幅を検出する。例えば、製作品12の右縁に第2図の水平ライン・ゲージ24を配置したとき、又は製作品12の下端にライン・ゲージ・センサー23を配置したときに、この分岐が用いられる。この分岐587におけるイメージの処理は、マイクロプロセツサ44がライン(右端又は下端)に沿つて最後のピクセルのアドレス指定することにより開始することを除き、前の分岐587のものと同一である。次いで、ライン・ゲージがそれぞれ水平又は垂直であるかに従つて、ピクセルのカラム又はピクセルのライン・アドレスを減少させてブロツクの縁を位置決めし、その幅を決定する。
選択した機能分岐584〜587の実行を完了すると、ステツプ588において一次及び二次のライン・ゲージ解析の結果がメイン・プログラムの呼び出し点に戻される。例えば、一次の結果は白ピクセルのカウントであつてもよく、また二次の結果は黒ピクセルのカウントである。次いで、このライン・ゲージ解析サブルーチンは呼び出しをしたメイン・プログラム上の点に戻る。
第33図に示す固定ライン・ゲージ・ルーチンに戻るに、ライン・ゲージ解析ルーチンに戻つたときは、ステツプ568において一次結果を受け入れ可能な値の範囲に対して比較する。一次結果が予め定めた範囲外であつたときは、ステツプ570において、結果判断ブロツク(第29図)にライン・ゲージの警報フラグをセツトする。次いで、ステツプ571において一時機能結果の値を結果判断ブツクに記憶する。次の判断ブロツク572においてライン・ゲージ解析の二次結果を受け入れ可能な値の範囲に対して比較する。この二次結果が予め定めた値外であつたときは、ステツプ573においてライン・ゲージ警報フラグをセツトする。ステツプ574において、結果判断ブロツクにおける二次結果のワードに二次結果の値を記憶する。
次いで、ステツプ575においてセンサー・インデツクス・カウントを増加させ、プログラムがステツプ561に戻り、新しいセンサー・インデンツクス・カウントを評価して全ライン・ゲージを解析したか否かを判断する。全ライン・ゲージを解析したときは、プログラムは判断ブロツク576に行き、ステツプ551又は564においてVIM RAM48にセツトしたセンサー浮動フラグを調べて、浮動するように構築された窓又はライン・ゲージがあるか否かを判断する。どのセンサーも浮動しないときは、プログラムは第38図のフローチヤートのステツプ670にジヤンプする。しかし、センサー浮動フラグがセツトされ、少なくとも一つのセンサーが製作品12の位置のシフトにより浮動するときは、プログラムはxオフセツト計算ルーチンに行く。
第35図に示すxオフセツト計算ルーチンは、浮動データ源として働くライン・ゲージを配置することにより開始される。これは、ステツプ600において、第33図のステツプ566によりVIM RAM48に記憶したx浮動ライン・ゲージのインデツクスを得ることにより達成される。ステツプ566においてx浮動ライン・ゲージが指定されなかつたときは、処理ブロツク601においてプログラムはxオフセツト値を0にセツトする。次いで、ステツプ602においてVIM RAM48内のx浮動ステータス・フラグは真にセツトされ、プログラムは直接ステツプ626に進む。
しかし、ステツプ600においてx浮動データのソース・ライン・ゲージを検出したときは、ステツプ603においてVIM RAM48内のx浮動ステータス・フラグは偽(fulse)にセツトされる。ステツプ604においてライン・ゲージ構築データ・ブロツク内の機能ビツトを調べ、縁位置をライン・ゲージの左側からか、又は右端から測定するのかを判断する。即ち、検出するのは最初の、又は最後のブロツブの縁なのかということである。これらの機能ビツトもブロツブの色を指定する。
第2図のライン・ゲージ24のときのように、センサーの左端から測定をするときは、ステツプ605においてピクセル位置変数XSTART及びYTARTをライン・ゲージの開始のためのピクセル・カラム及びピクセル・ライン・アドレス・バイトと同一にセツトする。判断ブロツク607において、XSTARTの値が水平ライン・ゲージの終端についてのx座標に対して比較される。XSTARTの値がラインの終端を超えていないときは、ステツプ608においてXSTART及びXYTARTにより表わされたアドレスのピクセルがバツフア・メモリ114から読み出される。次いで、判断ブロツク609においてマイクロプロセツサ44は、現在ピクセルの色が検出すべきブロツブの色と同一であるか否かを調べる。ピクセルが正しい色でなく、製作品12の縁に到達していないことを示しているときは、ステツプ613においてXSTARTの値を増加させ、プログラムがステツプ607に戻つて他のピクセルを調べる。しかし、ステツプ609においてピクセルは、製作品12の縁を検出したことを表わしている正しい色であると判断し、処理ブロツク610においてXSTARTの値からライン・ゲージ構築データ・ブロツクにおけるデータ位置バイトを引算することにより、xオフセツト値を計算する。製作品12がx軸にそつてシフトされなかつたときは、計算したオフセツトは、XSTARTがデータ位置と同一値を有するので、比較したオフセツトは0となる。オフセツトの符号はデータ位置(基準位置)からのシフト方向を決定する。次いで、ステツプ611において、XSTARTはライン+1の終端に等しい。また、ステツプ612において、x浮動ステータス・フラグは真にセツトされる。次いで、プログラムはライン終端についての判断ブロツク607に戻り、XSTARTの値がライン終端を超えているので、プログラムは判断ブロツク624に進む。
第35図を引き続いて参照するに、製作品12の縁を水平ライン・ゲージの右端から測定するときは、xオフセツト計算ルーチンの同一部分を実行する。この場合には、プログラムはステツプ604からステツプ615に進み、XSTART及びYSTARTの値をライン・ゲージの終端の値に等しくする。ステツプ616において、マイクロプロセツサ44は、XSTARTの値がライン・ゲージの開始のx座標より小さいか否かを判断する。XSTARTがライン・ゲージの開始のx座標より小さくないときは、ステツプ617においてXSTART及びYSTARTの値を用い、対応するバツフア・メモリ114のピクセルをアドレス指定する。次いで、マイクロプロセツサ44はピクセルの色を評価して、検出すべきブロツブと同一の色か否かを判断する。色が同一でなく、製作品12の縁を検出していないことを表わしているときは、ステツプ622においてXSTARTの値を減少させ、プログラムは次のピクセルを評価するためにステツプ616に戻る。
しかし、ピクセルが正しい色であつたときは、ステツプ619においてXSTARTの値からデータ位置バイトを引算することにより、xオフセツトを計算する。次いで、ステツプ620においてXSTARTをラインの開始−1にセツトし、処理ブロツクにおいてx浮動ステータス・フラグを真にセツトする。次いで、実行を判断ブロツク616に戻る。この時点では、XSTARTの値がラインの開始のx座標より小さいので、プログラムは判断ブロツク624に進む。
次に、x浮動ステータス・フラグを調べる。x浮動ステータス・フラクが偽であり、製作品12の縁を検出していないことを示しているときは、浮動範囲フラグをセツトし、プログラムは第38図のステツプ670に行く。x浮動ステータス・フラグが真であるときは、ステツプ626において計算したxオフセツトの値をxyオフセツト回路126に記憶する。
次いで、プログラムはyオフセツトを計算する第36図のステツプ508により表わすルーチンに行く。ここにルーチンは、測定をライン・ゲージの上から行なうか、又は下から行なうかに従つてXSTARTの代わりにYTARTの値を増減することを除き、xオフセツトの計算について示したものと同一である。yオフセツトの計算を行なつた後、プログラムは浮動ライン・ゲージを調べるためにルーチンの始めのノードHに行く。
浮動ライン・ゲージ解析ルーチンは第36図のフローチヤートのステツプ635から開始され、VIM RAM48においてセンサー・インデツクス・カウントを1にセツトする。前のルーチンのように、このセンサー・インデツクス・カウントを用いて6つのセンサー・インデツクスのそれぞれを逐次評価する。次いで、判断ブロツク636においてこのセンサー・インデツクス・カウントを評価し、6つのライン・ゲージのうちの一つを指定しているか否かを判断する。センサー・インデツクス・カウントの値が未だ6以下であるときは、ステツプ637において指定したライン・ゲージの構築データ・ブロツクを調べ、当該のライン・ゲージがエネーブルされているか否かを判断する。ライン・ゲージがエネーブルされていないときは、プログラムは直接ステツプ646に進み、センサー・インデツクス・カウントを次のライン・ゲージ番号に増加される。しかし、ライン・ゲージがエネーブルされているときは、判断ブロツク638においてその構築データ・ブロツク内の位置浮動フラグを評価する。指定したライン・ゲージが浮動でないときは、プログラムはステツプ647にジヤンプして次のライン・ゲージのセンサー・インデツクス・カウントを増加させる。
センサー・インデツクス・カウントによつて指定されたライン・ゲージが浮動するときは、マイクロプロセツサ44がxyオフセツトの値をライン・ゲージの出発点におけるピクセルのアドレスにおけるピクセル・カラム及びライン・バイトにそれぞれ加算する。ライン・ゲージの終端の座標も調整する。次いで、処理ブロツク640において第36図に示すライン・ゲージ解析ルーチンを呼び出し、このライン・ゲージの構築データ・ブロツクにおいて指定された帰納を実行する。先に説明したように、各ライン・ゲージ解析機能は2つの結果に帰着する。例えば、2つの結果はライン・ゲージの長さに沿つた白黒ピクセルのカウントからなる。
判断ブロツク641において一次結果を評価してこれが受け入れ可能な値内に含まれているか否かを判断する。一次結果が受け入れ可能な値内に含まれていないときは、ステツプ642において指定したライン・ゲージの警報フラグをセツトする。次いで、一次結果をこれらの結果のために指定されたVIM RAM48(第29図)の結果データ・ブロツクの領域内のセーブする。ステツプ644において、二次結果を調べてこれが受け入れ可能な値の予め定めた範囲内にあるか否かを判断する。二次結果がその範囲外であるときは、ステツプ645においてライン・ゲージの警報フラグをセツトする。次いで、ステツプ646において結果判断ブロツクの対応するワードに二次結果を記憶する。二次結果をセーブした後、ステツプ636においてセンサー・インデツクス・カウントを増加させ、プログラムはステツプ636に戻り、次のライン・ゲージを処理する。
センサー・インデツクス・カウントをライン・ゲージの数より大きな数(例えば、6)に増加させたときは、プログラムが判断ブロツク636からステツプ648に分岐する。ステツプ648では、浮動するセンサー窓があるか否かに判断をする。浮動するセンサー窓が存在しないときは、プログラムは、浮動窓の検査ルーチンをバイパスして第38図の示すフローチヤートにおけるステツプ670に行く。しかし、1以上のセンサー窓が浮動するように構築されたときは、プログラムは判断ブロツク648から浮動窓解析ルーチンに進む。
第3A図及び第3B図を参照するに、浮動窓の解析が第37図のステツプ650から開始され、同時にバツフア・メモリ114に記憶した4つの2進数イメージのそれぞれを再度み出しする。応答の最初に、イメージ入力選択回路116に制御信号を送出してバツフア・メモリ114の出力をピクセル・カウント回路152に供給する。アドレス・バス・マルチプレクサ60も動作してアドレス発生器64のアドレス信号を映像プロセツサ・アドレス・バス45に供給する。応答が終了すると、ステツプ651においてVIM RAM48のセンサー・インデツクス・カウントを初期化して1にセツトする。
次いで、浮動する窓のピクセル・カウントについて調べる。これは、ステツプ652においてセンサー・インデツクス・カウントが有効な窓数であるか、否かを最初に調べることにより達成される。センサー・インデツクス・カウントが未だ4つの窓のうちの一つを指示しているときは、ステツプ653において窓がエネーブルされているか、否かに判断を行なう。窓の構築データ・ブロツク内のエネーブル・フラグがセツトされていないときは、プログラムは直接ステツプ661に進み、センサー・インデツクス・カウントを増加させ、次の窓を評価することになる。しかし、当該窓がエネーブルされたときは、ステツプ654において構築データ・ブロツク内の移動浮動フラグ・ビツトが当該窓のためにセツトされたか否かについて判断をする。窓は浮動することを位置浮動フラグ・ビツトが表わしているときは、処理ブロツク655において窓内のピクセルの総数を構築データ・ブロツクから読み出す。
判断ブロツク656において、このセンサー窓についてカウントするのは白ピクセルか、又は黒ピクセルかの判断を行なう。黒ピクセルをカウントするときは、ステツプ657において窓内のピクセル総数からピクセル・カウント回路152内の含まれている白ピクセルの数を引算する。次いで、白黒ピクセルを評価して、白黒ピクセルが受け入れ可能な予め定め値内にあるか否かを判断する。これを達成するために、マイクロプロセツサ44はピクセル・カウントを窓の構築データ・ブロツクに配置している最小及び最大範囲限界と比較する。ピクセル・カウントが最小及び最大範囲外であつたときは、ステツプ660において窓の警報フラグをセツトする。ステツプ661において、結果構築データ・ブロツクにセーブし、またセンサー・インデツクス・カウント値を増加させる。浮動窓解析ルーチンにおいて4つのセンサー窓の全てを評価したときは、ライン・ゲージ及びセンサー窓の全ての評価を完了し、プログラムは判断ブロツク652から第38図に示すしきい値調整及び誤り報告ルーチンに行く。
第38図を参照すると、ステツプ670において、ライン・ゲージ案センサー窓の範囲警報フラグがセツトされたか、否かについて判断をする。セツトされた警報フラグがあれば、バツクプレーン・インタフエース回路52のデータ・ラツチにおいてマスタ・警報フラグ・ビツトと、対応する入出力(I/O)インタフエース回路50のビツトとをセツトして、少なくとも一つのセンサーの結果が予め定めた受け入れ可能な範囲外にあることを表わす。次いで、ステツプ672においてx及びy浮動ステータス・フラグを調べて、これらが共に真であるか否かを判断する。そのいずれもが偽である、対応するライン・ゲージが製作品12の縁を検知できなかつたことを表わしているときは、ステツプ673においてx−y警報フラグをセツトする。
次いで、ステツプ674において輝度プローブ構築テーブル内のエネーブル・フラグを調べる。輝度プローブがデイセーブルされているときは、プログラムはステツプ684に進み、バツクプレーン・インタフエース回路52の出力ラツチにおける種々のフラグをセツトする。次いで、ステツプ685において、VIMはプログラマブル・コントローラのラツクのバツクプレーンにおける制御ラインからビジー・ステータス信号の送出を停止する。
ステツプ674において、輝度プローブがエネーブルされているのを検出したときは、判断ブロツク675において輝度プローブ範囲警報フラグを調べる。輝度プローブ範囲警報フラグがセツトされており、測定した明るさが受け入れ可能な範囲外であることを表わしているときは、プログラムはステツプ684に進み、2進化しきい値の調整をバイパスする。しかし、輝度プローブ26が測定した平均明るさが受け入れ可能な値にあるときは、ステツプ676において、測定した平均明るさをVIM設定の際に輝度プローブ・データ・ブロツクの第2ワードに記憶した明るさ基準値によつて割算することにより、しきい値調整係数を計算する。次いで、このしきい値調整係数を用いて、2進数イメージ・プロセツサ100において各しきい値を再規定する。
ステツプ678において、センサー・インデツクス・カウントを初期化により1にする。次いで、判断ブロツク679においてセンサー・インデツクス・カウントを調べて、これが未だ4つのセンサー窓のうちの一つを指示しているか否かを判断する。4つのセンサー窓のうちの一つが未だセンサー・インデツクスにより指定されているときは、プログラムは判断ブロツク680に進み、指定された窓のしきい値補正フラグを調べる。製作品12の輝度の変化のためにしきい値を補正するときは、ステツプ681において、しき値調整係数を設定する際にセンサー窓の判断ブロツクに記憶した基準しきい値をしき値調整係数により乗算することにより、しきい値を調整する。次いで、対応する2進数イメージ・プロセツサ100のアナログ・デイジタル変換器102(第5図)内に新しいしきい値を記憶する。ステツプ638においてセンサー・インデツクス・カウントを増加させ、これによつて新しいセンサー窓のしきい値を調整することができる。全てのセンサー窓の2進化しきい値を調整したときは、プログラムは判断ブロツク679から先に説明したステツプ684及び685に分岐する。ステツプ684及び685を実行すると、プログラムは第11図のフローチャートのノードAに戻り、プログラムは設定信号又はイメージ・トリガ信号が来るのを待つ。
プロセツサ・モジユール3は周期的に視覚入力モジユール5からのビジー信号を搬送するラツク1のバツクプレーン上の制御ラインを調べる。プロセツサ・モジユール3がビジー信号を停止したのを検出すると、製作品12の評価を終了し、その結果をVIM RAM48に記憶したことを知る。プロセツサ・モジユール3は、バツクプレーン・コネクタ55又は56にVIMを搭載している2つのバツクプレーン・スロツトのうちの一つの制御ラインを介してエネーブル信号を送出することになる。先に説明したように、VIMはバツクプレーン・スロツトのうちの一つによりアクセスされ、バツクプレーン・インタフエース回路52の出力ラツチに記憶したビツトを得ることができる。これを実行することにより、プロセツサ・モジユール3は製作品12の評価の概要を得る。例えば、プロセツサ・モジユール3は、種々のライン・ゲージ及びセンサーの前全結果の値がオペレータによつて定義された範囲内に入ることを表わしているマスタ決定警報を得る。プロセツサ・モジユール3内の制御プログラムが製作品12の評価の詳細な結果を必要とするときは、制御ラインを介して他のラツクのスロツトにエネーブル信号を送出し、これによつて視覚入力モジユール5がバツク・プレーンを介してプロセツサ・モジユール3に全結果のデータ・ブロツクを転送させるように指示する。これを達成すると、プロセツサ・モジユール3はその制御プログラムに従つていずれかの、又は全てのセンサー結果を調べることができる。
【図面の簡単な説明】
第1図は本発明によるプログラマブル・コントローラ・システムを示す図、
第2図は第1図示のシステムによつて生成されたビデオ・イメージを示す図、
第3A図及び第3B図は第1図のプログラマブル・コントローラ・システムにおける視覚入力モジユールの2つの部分の概要ブロツク図、
第4図は第3B図の輝度基準回路のブロツク図、
第5図は第3B図の2進数イメージ・プロセツサの概要ブロツク図、
第6図は第3B図におけるX−Yオフセツト回路の概要ブロツク図、
第7図は第3B図のピクセル・カウンタのうちの一つを示す概要ブロツク図、
第8図は視覚入力モジールの輝度プローブについて構造パラメータのデータ構成を示す図、
第9図は視覚入力モジユールの各センサー窓について構造パラメータのデータ構成を示す図、
第10図は視覚入力モジユールのライン・ゲージについて構造パラメータのデータ構成を示す図、
第11図はシステム起動ソフトウエア・ルーチンの視覚入力モジユール初期化部分のフローチヤート、
第12図は第1図のライト・ペンからの入力を感知するためのソフトウエア・ルーチンのフローチヤート、
第13図はセンサー・セツト・アツプ・ルーチンの開始と、センサー窓設定プロセスの主要部を示すフローチヤート、
第14図、第15図及び第16図はそれぞれメイン設定メニユー、主要窓メニユー及び窓調整メニユーのアイコンを示す図、
第17図は窓調整ソフトウエア・ルーチンのフローチヤート、
第18図はセンサー移動ソフトウエア・ルーチンのフローチヤート、
第19図はセンサー移動ソフトウエア・ルーチン・メニユーのアイコンを示す図、
第20図は窓の大きさ変更ソフトウエア・ルーチンのフローチヤート、
第21図はセンサー合成範囲警報設定のソフトウエア・ルーチンのフローチヤート、
第22図はセンサー合成範囲警報設定のソフトウエア・ルーチンのアイコン・メニユーを示す図、
第23図はライン・ゲージ設定ソフトウエア・ルーチンのフローチヤート、
第24図はライン・ゲージ設定ソフトウエア・ルーチンのフローチヤート、
第25図はライン・ゲージ調整ソフトウエア・ルーチンのフローチヤート、
第26図はライン・ゲージ調整ソフトウエア・ルーチンのアイコン・メニユーを示す図、
第27図は輝度プローブの設定ソフトウエア・ルーチンのフローチヤート、
第28図は輝度プローブの設定ソフトウエア・ルーチンのアイコン・メニユーを示す図、
第29図は映像処理の結果を含む視覚入力モジユールのメモリ内のデータ構成を示す図、
第30図はビデオ・イメージを処理するソフトウエアの概要を示すフローチヤート、
第31図はビデオ・イメージを取り込み、輝度プローブからの出力を解析するプログラムのフローチヤート、
第32図は固定センサー窓の出力を分析するソフトウエア・ルーチンのフローチヤート、
第33図は固定ライン・ゲージの出力を解析するプログラムのフローチヤート、
第34図は各ライン・ゲージにより画定されたイメージの一部を解析するサブルーチンのフローチヤート、
第35図は製作品の水平シフトを補正するためにx方向にセンサーのオフセツトを計算するルーチンのフローチヤート、
第36図は浮動ライン・ゲージにより画定されたビデオ・イメージの一部を分析するプログラムのフローチヤート、
第37図はフローテイング窓センサーにより画定されたビデオ・イメージの一部を分析するプログラムのフローチヤート、
第38図は視覚入力モジユールの2進数化しきい値を調整し、かつてイメージ・プロセツサ中に発生した誤りを報告するルーチンのフローチヤートである。
1……ラツク、
3……プロセツサ・モジユール、
4……入出力モジユール、
5,6……視覚入力モジユール、
11,15……カメラ、
14……ライト・ペン、
41……データ・バス、
68……輝度基準回路、
100……2進数イメージ・プロセツサ、
106〜109……電圧比較器、
124……窓メモリ、
152……ピクセル・カウント回路、
285,286,288,291……アイコン。
〔産業上の利用分野〕
本発明は、ビデオ・イメージに存在する物体を評価する映像信号処理装置に関し、特に自動製造装置と連携させて用いることができる装置に関する。
[従来の技術とその問題点]
自動アツセンブリ装置及びロボツトが益々複雑になるに従つて、これらの装置に視覚能力を付加することが望まれている。これは、このような装置が製造中の物体の位置を定めると共に、部品の存在又は穴のような特定の特徴の適正な位置と、大きさを調べることができる。このために、ビデオ・カメラを用いて後に電子的に解析することができる工作物すなわち製作品のビデオ・イメージを発生していた。
自動アツセンブリ装置が用いる視覚装置において発生する問題のうちの一つとしては、コンベヤ装置又は他の型式の材料取り扱い装置に沿つて製作品が移動するためその位置が変化することが挙げられる。製作品を正しく評価するためには、典型的なものとして、製作品はビデオ・カメラに対して正確に配置させなければならない。
従来の製造装置において適正な位置が問題となるときは、部品装入機械のように、製造装置に対して非常に正確に製作品を配置する設備内に、製作品を配置している。しかし、このような設備は、その製造工程において相当の費用と時間を必要とする。
アツセンブリ・ライン上で作業をしている人間は、その者に対して製作品を正確に揃えることが必要である。人間は、その者の視界内の種々の部品の位置を確認し、また位置のバラツキに対してその者の前に配置された異なる製作品として適応することができる。かくして、人間であるアツセンブリ作業者のこのような特質によるある程度の製作品の不揃いは許容されるような視覚装置を提供することが待望される。
[発明の概要]
本発明による視覚入力モジユールは評価されるべき物体のビデオ・イメージを表わす映像信号を入力する。この視覚入力モジユールは、イメージ・ピクセルの特徴を評価する視覚入力モジユールのいくつかの検知領域を画定する装置を有し、この検知領域内で物体の種々の特徴が評価される。例えば、検知領域において与えられたしきい値を超えた輝度を有するピクセルがカウントされる。ピクセルのカウントは予め定めた最小値及び最大値と比較され、評価した特徴が受け入れ可能な許容範囲に含まれるか否かを判断することができる。
視覚入力モジユールの実施例には、前記物体の実際位置とデータ位置(基準位置)との間の差を判断する手段が備えられる。次に、視覚入力モジユールは所定の位置の差により、物体でデータ位置(基準位置)からシフトされた量と同一のシフト量、かつ同一のシフト方向に検知領域をシフトさせる。これは、検知領域が評価している各物体に対して同様に揃えられることを保証するものである。
そこで、本発明の目的は、通常のプログラマブル・コントローラに関連可能な視覚入力モジユールを提供すること、すなわち、プログラマブル・コントローラからのコマンドに応答して、前記プログラマブル・コントローラに入力されている他の検知データと同一のフオーマツトにより、処理しているイメージについてのデータを出力することのできる視覚入力モジユールを提供することである。これにより、例えば検知したパラメータが与えられた許容範囲にあるか否かの標識がプログラマブル・コントローラに送出されることになる。
他の目的は、全ての映像処理を行ない、処理の結果をプログラマブル・コントローラに報告する視覚入力モジユールを得ることにある。
更に、本発明の他の目的は、ビデオ・イメージ処理装置に1つの機構を組み込むことにより、前記ビデオ・イメージ内の対象物の位置について、その正規の位置からのシフトを補償することにある。
また、他の目的は、並列にビデオ・イメージを2進数化した4つの異なるものを処理する装置を提供することにある。
また本発明の他の目的は、プログラマブル・コントローラに習熟している者にとつて、特定の作業のために構築が容易なプログラマブル・コントローラ用の視覚入力モジユールを提供することにある。それにより、視覚入力モジユールを構築するために複雑なコンピユータ言語やコマンド・セツトそれ自体を学習する必要はなくなり、ひいて視覚入力モジユールの構築はコントロール・エンジニヤにとり慣れ親しんだ考え方に合致したものとなる。
[実施例]
第1図を先ず参照すると、本発明に関連するプログラマブル・コントローラがラツク1に収容されている。ラルク1は種々のモジユール2〜6を収納する一連のスロツトを備えている。これらのモジユール2〜6は、バツク・プレートをなすようにラツク1の背面に沿つて伸延するマザー・ボードに電気的に接続されている。ラツク1の物理的な構造は、米国特許第4,151,580号に開示されている。モジユール2〜6には、電源モジユール2及びプロセツサ・モジユール3とが含まれる。プロセツサ・モジユール3はプログラム端子7にケーブルにより接続されており、プログラム端子7はユーザーがプロセツサ・モジユール3をプログラムすること、又はその動作を監視することが可能なキーボード9を備えている。英数字データは、装置コントロール・プログラムを表わすラダー図と共に、CRT表示装置8上に表示される。プログラム及びデータはデイスク駆動装置10に収容されているフロツピー・デイスクに記憶される。この型式のプログラマブル・コントローラの更に詳細な説明については、米国特許第4,442,504号を参照されたい。
ラツク1内の入出力モジユール4〜4、視覚入力モジユール5,6のうちのいくつかは、プログラマブル・コントローラ装置を被制御装置に接続する入出力(I/O)機能を実行する。例えば、第1図に示す装置は通常的な4つの入出力モジユール4と、新しい2つの視覚入力モジユール5及び6を有する。入出力モジユール4は、種々の形式のもの、例えば直流入出力モジユール、交流入出力モジユール、アナログ入出力モジユール、並びに/又はオープン及びクローズド・ループ位置決めモジユールとを備えている。
各視覚入力モジユール5及び6はラツク1の2スロツクを占有して、各スロツトのバツクプレーン・コネクタに接続している。第1の視覚入力モジユール5は、ケーブルを介して、上方から製作品12に照準を定めているモノクロのカメラ11に接続されている。製作品12はアツセンブリ・ライン・コンベヤ(図示なし)によりカメラ11の下に搬送されるものでよい。第1の視覚入力モジユール5は製作品12の256×256ピクセルのビデオ・イメージを発生し、それを視覚入力モジユール5に接続されているモニター13の陰極線管上に表示する。ライト・ペン14は、以下で説明するように、モニター13上にときどき表示されるシンボルを選択することにより、データを入力するのに用いられる。
第2の視覚入力モジユール6は、製作品12の側面を見るように配置された他のカメラ15が接続されている。第2の視覚入力モジユール6がビデオ・モニターの端子となるが、これには、ライト・ペンが接続されていない。これらの装置は、典型的なものとしては、種々の特徴を検知されるべき様々な特徴、及び、検知を行なうイメージ内の領域が画定される設定段階においてだけ必要なものである。
2つの視覚入力モジユール5及び6はまた、正面パネルにその機能ステータスを表示するための多数の表示ランプ16を備えている。その正面パネルにはいくつかの電気端子17も備えられている。これらの電気端子17は、視覚入力モジユール5及び6に対する外部トリガ入力、カメラ電源、ストロープ・ライト・トリガ出力信号、モジユール・ビジー出力信号、及び、製作品の総合評価が合格が不合格かを示すマスタ評価判定出力信号、をそれぞれ供給する。
視覚入力モジユール(VIN)5及び6はそれぞれカメラ11及びカメラ15からのイメージを処理し、選択した物体の特徴についてのデータを発生する。以下で詳細に説明するが、視覚入力モジユール5及び6はカメラ11及び15からのビデオ・イメージを処理して独立した4つの2進数のイメージを導出する。ビデオ・イメージの各ピクセルの輝度をあるしきい値と比較し、2進数イメージにおいて対応するピクセルを白か黒に設定することにより、2進数イメージが生成される。2進数イメージには中間のグレー・スケールの輝度値がない。
視覚入力モジユール5及び6のオペレータは、2進数イメージに4つの検知領域、即ち窓を画定する。各窓は異なる2進数イメージに関れ付けられる。視覚入力モジユール5及び6は複数の窓内の2進数イメージの白又は黒ピクセルをカウントする。これらのカウントから、種々の製作品12の特徴である大きさ、形状及び位置が決定される。オペレータは各窓の許容し得るピクセル・カウントの範囲も設定することができる。4つの出力警報フラグは、4つのカウントがそれぞれの範囲内にあるか否かを表わしている。マスタ評価判定警報フラグは、全てのカウントがそれらの範囲内に入るか、入らないものがあるかを表わす。
オペレータは最大6つの水平又は垂直ライン・センサーを画定し、かつ4つある2進数イメージにそれぞれ1つを割り付けることができる。水平又は垂直ライン・センサーは、各ラインに沿うピクセルについて異なる評価機能を実行可能なソフトウエアにより、実現されている。例えば、白及び黒ピクセルをカウントすること、又はブロツブ(blob)と呼ばれるピクセルの白黒グループ数をカウントすることができる。窓センサーの観点からカウントした許容し得る結果値の範囲を設定してもよい。
水平又は垂直ライン・センサーの処理結果は、ラルク1のプロセツサ・モジユール3で利用される。プロセツサ・モジユール3は範囲警報フラグか、又は全セツトのセンサー結果を得ることができる。プロセツサ・モジユール3は視覚入力モジユール5及び6からのデータを用いて製作品12の容認可能性を評価し、製作品12について更に実行される製造ステツプを制御する。
視覚入力モジユール(VIM)のハードウエア 視覚入力モジユール5及び6のうちの一つの機能動作を詳細に説明する前に、先ずその回路を理解する必要がある。視覚入力モジユール5は第3A図に示すCPU部と、第3B図に示す映像プロセツサ部とを備えている。CPU部は、データ信号、アドレス信号、制御信号用に3つの共通バスであるデータ・バス41、制御バス42及びアドレス・バス43の周辺にそれぞれ構築されている。実際的なものとして、制御バス42は視覚入力モジユール5の両部分の種々の部品間に設けられている一連の離散的な導線である。データ・バス41は8ビツト幅であり、アドレス・バス43は16ビツト幅である。マイクロプロセツサ44は、3つのバスであるデータ・バス41、制御バス42及びアドレス・バス43に全て接続されており、読み出し専用メモリ(ROM)46に記憶されているプログラムを実行することにより視覚入力モジユール5及び6の動作を制御している。マイクロプロセツサ44は前面パネルの入出力(I/O)インタフエース回路50に直接接続されている。入出力インタフエース回路50は視覚入力モジユール5及び6(第1図)の前面パネルの表示ランプ16及び電気端子17をマイクロプロセツサ44に接続している。
ランダム・アクセス・メモリ(RAM)47はデータ・バス41、制御バス42及びアドレス・バス43に接続され、ラツク1のプロセツサ・モジユール3から転送されるデータ用のメモリであり、かつ製作品の視覚入力モジユール5及び6の評価結果も記憶する。EEPROM54も、コントローラのオペレータにより設定された構造データを記憶する不揮発性メモリを得るために3つのバス、即ちデータ・バス41、制御バス42及びアドレス・バス43にも接続されている。
CPU部には、更に3つの内部バスのデータ・バス41、制御バス42及びアドレス・バス43に接続されているバツクプレーン・インタフエース回路52が配置されている。バツクプレーン・インタフエース回路52は、プログラマブル・コントローラの通常の入出力モジユールに採用されている回路と同じものであり、他のモジユールであるプロセツサ・モジユール3、入出力モジユール4及び視覚入力モジユール6とデータを交換するために視覚入力モジユール5をラツク1をバツク・プレーンに接続している。先に述べたように、視覚入力モジユール5は2スロツトを占有する。2つのスロツト用のバツクプレーン・コネクタ55及び56は、バツクプレーン・インタフエース回路52に接続されている。ラツク1のプロセツサ・モジユール3は所望のデータの型式及びデータ量に基づいてバツクプレーン・コネクタ55又は56を介して視覚入力モジユール5及び6をアクセスすることができる。
バツクプレーン・コネクタ55のうちの一つは、米国テキサス・インスツルメンツ社の74651デバイスのように、商業的に入手可能なバス・インタフエース集積回路に接続されている。このバス・インタフエース集積回路は2つの8ビツト・データ・ラツチを備えており、そのうちの一方が視覚入力モジユール5からのデータ・バイトを記憶し、他方がプロセツサ・モジユール3からのデータ・バイトを記憶するものである。視覚入力モジユール5及びプロセツサ・モジユール3は、これらのデータ・ラツチをアクセスして他のデバイスが記憶したデータを読み出すことができる。各ビツトは次のテーブルに示す機能を有する。
ビツト 送出源 機能0 プロセツサ VIM設定エネーブル1 VIM VIM不良2 VIM 通信不良3 プロセツサ トリガVIM4 VIM VIMビジー5 VIM 輝度プローブ警報6 VIM xy位置警報7 VIM マスタ判定警報 プロセツサ・モジユール3のビツト・セツトはVIMを種々の動作モードに設定し、VIMのビツト・セツトは種々の事象をプロセツサ・モジユール3に知らせるものである。ビツト3はプロセツサ・モジユール3によりセツトされ、VIMをトリガして処理すべきビデオ・フレームを取り込むためのものである。ビツト5は、ビデオ・イメージの輝度が予め定めた範囲外にあることを示す。ビツト6は、製作品を補正するのにVIMのデータ位置からシフトし過ぎたことを示す。ビツト7の値は、イメージ評価の結果が全て満足されているか、又は結果のうちの少なくとも一つが予め定めた範囲の外側であるかを示す。
ラツク1の他のスロツトのコネクタ56はVIMRAM48とプロセツサ・モジユール3との間でデータ・ブロツクを転送する回路に接続されている。この回路は、データ・ブロツクを収集して転送する前述のプログラマブル・コントローラI/Oモジユールに関連されたものと同様である。この転送を実行するために用いられる技術は、「高密度インテリジエント入出力インタフエースを有するプログラマブル・コントローラ」と題する米国特許第4,293,924号に説明されているものと同様のものである。バツクプレーン・インタフエース回路52はデータを双方向に転送することができる。これは、プロセツサ・モジユール3に送出すべきVIMの評価の結果を表わすデータをエネーブルするばかりでなく、プロセツサ・モジユール3がVIM構成データを送受することができるようにする。
アドレス・デコード回路53は、アドレス・バス43に接続されており、マイクロプロセツサ44が送出した各アドレスを受け取り、アドレス指定されたVIM部品のために一組の制御信号を制御バス42上に発生する。マイクロプロセツサ44はアドレス・デコード回路53を介して映像プロセツサ部を種々の動作モードを置くために必要な制御信号を発生する。これに対して、アドレス・デコード回路53は映像プロセツサの一部分でよいことは明らかである。
制御バス42は、データ・バス41及びアドレス・バス43と共に、それぞれ映像プロセツサ部に接続されている。第3B図に示すように、データ・バス41及び制御バス42はCPU部から映像プロセツサ部の全体にわたつて延在している。しかし、アドレス・バス43はアドレス・バス・マルチプレクサ60の入力に接続されている。アドレス・バス・マルチプレクサ60の他の入力はアドレス発生器64の出力に接続されている。選択入力61の信号は、どのアドレス信号源がアドレス・バス・マルチプレクサ60により映像プロセツサ・アドレス・バス45に接続されているか、を決定する。
クロツク62はその周波数がカメラ11からの映像信号のビクセル速度を定めるパルス出力信号を発生する。このパルス出力信号はアドレス発生器64の入力に供給されている。アドレス発生器64はパルス出力信号をカウントして並列16ビツトのアドレス信号を発生している。このアドレス信号は適時アドレス・バス・マルチプレクサ60により映像プロセツサ・アドレス・バス45に接続され、これに接続されているイメージ・メモリをアドレス指定する。アドレス信号の上位ビツト(MSB)は記憶したイメージのピクセル・ライン数を表わし、下位ビツト(LSB)はイメージの水平ラインを介するピクセル・カラム数を表わす。アドレス発生器64はカメラ11用に通常の映像同期信号(sync)も発生している。アドレス発生器64は線64上にカメラ11用に映像同期信号の垂直帰線期間の生起を示す信号を発生する。線65はアドレス・バス・マルチプレクサ60の選択入力61に接続され、これによつてアドレス・バス43が垂直帰線期間に映像プロセツサ・アドレス・バス45に接続される。線65は更に制御バス42を介してマイクロプロセツサ44に接続されている。
カメラ11のビデオ出力信号は映像増幅器66により増幅され、映像増幅器66の映像出力は輝度基準回路68に供給される。輝度基準回路68は8×8のピクセル領域26(ここでは、輝度プローブと呼ぶ。)における輝度を検知して、カメラ11からのビデオ・イメージにおける物体の輝度の変化を補正する。輝度基準回路68の詳細は第4図に示されている。データ・バス41は輝度プローブ位置レジスタ70の入力に接続され、輝度プローブ位置レジスタ70はイメージ内のプローブ位置を記憶する。輝度プローブ位置レジスタ70は8ビツトのメモリ位置を記憶するものであり、データ・バス41からのバイトを書き込むことができる。第1のメモリ位置は上位バイト、即ち輝度プローブ26の位置アドレスのピクセル・ライン番号を記憶し、他のメモリ位置は下位バイト、即ち行番号を記憶する。ピクセル領域26は8×8ピクセルの予め定めた領域であるので、ビデオ・イメージの32×32位置に配置される。その結果、輝度プローブ26の位置をピクセル・ライン数の5上位ビツト及びピクセル・カラム数の5上位ビツトにより指定することができる。
輝度プローブ位置レジスタ70に記憶されている5上位ビツトは、アドレス比較器72の一方の入力に接続されている。アドレス比較器72の他方の入力には、映像プロセツサ・アドレス・バス45が接続されている。アドレス比較器72は映像プロセツサ・アドレス・バス45及び輝度プローブ位置レジスタ70の上位バイトの5上位ビツトと、これらの発生源の下位ビツトの5上位ビツトとを比較する。線74へのアドレス比較器72の出力は、映像プロセツサ・アドレス・バス45を介してアドレス指定されたピクセルが輝度プローブ26の検知領域内にあることを示す。
アドレス比較器72の出力はサンプル・ホールド回路76に接続されている。このサンプル・ホルド回路76は絶縁増幅器78からなり、その入力端は映像増幅器66の出力に接続されている。絶縁増幅器78の出力はトンランスミシヨン・ゲート80を介して接続されている。トランスミシヨン・ゲート80はアドレス比較器72の出力信号により制御されている。トランスミシヨン・ゲート80の出力と接地との間には抵抗84とコンデンサ86とが直列接続されている。コンデンサ8は輝度プローブ領域内のピクセルの平均輝度レベレを表わす電荷を蓄積する。第2のトランスミシヨン・ゲート88はコンデンサ86と並列に接続されており、制御バス42の一つを介してマイクロプロセツサ44から入力されるリセツト信号に応答して、放電する。
出力増幅器82からのサンプル・ホールド回路76の出力はアナロク・デイジタル(A/D)変換器90の入力に接続されている。アナログ・デイジタル変換器90はアドレス・デコード回路53から制御バス42の一つを介して入力される信号によりエネーブルされ、データ・バス41に記憶している平均輝度レベルをデイジタル化したものを供給する。アナロク・デイジタル変換器90の出力は0〜255のデイジタル数であり、データ・バス41に供給される。
第3B図を再び参照すると、映像増幅器66の映像出力は異なる4つの2進数イメージ・プロセツサ100にも供給されている。2進数イメージ・プロセツサ100はカメラ11のアナログ映像信号により異なる4つの2進数ビデオ・イメージを発生する。2進数イメージ・プロセツサ100はデータ・バス41及び制御バス42に接続されており、クロツク62からピクセル速度信号を入力している。2進数イメージ・プロセツサ100の詳細を第5図に示す。データ・バス41は、例えばアナロク・デバイセス社が製造した集積回路AD7226型のような4ビツトのデイジタル・アナロク変換器(D/A)102の入力に接続されている。アナログ・デイジタル変換器102の各入力は、集積回路の個別のデイジタル・データ・ラツチに接続されている。各デイジタル・アナログ変換器102の基準電圧レベルを表わす8ビツトのデイジタル数は、対応するラツチに記憶される。これは、回路選択線104を介してラツチを選択することにより達成される。次に、このデータはマイクロプロセツサ44によりデータ・バス41を介して送出され、一方書き込みエネーブル・パルスがデイジタル・アナログ変換器102に印加される。回路選択線104及び書き込みエネーブル線105は映像プロセツサ・アドレス・バス45の一部をなし、アドレス・デコード回路53から引き出されている。
動作状態において、デイジタル・アナログ変換器102はラツチ内容のアナログ信号を4つの電圧比較器106〜109の反転入力に供給している。電圧比較器106〜109の各反転入力は映像増幅器66(第3B図)に接続されている。4つの電圧比較器106〜109の出力は4ビツトの出力ラツチ110の各入力に供給されている。出力ラツチ110はピクセル・クロツク信号を入力し、出力ラツチ110はこのピクセル・クロツク信号のパルスによつて各電圧比較器106〜109の出力ビツトを記憶する。
出力ラツチ110の出力は、2進数イメーザ・プロセツサ100が発生したビデオ・イメージを2進数化したものを表わしている。2進数化したビデオ・イメージを発生するために、異なる4つの輝度しきい値(各イメージについて一つ)がデイジタル・アナログ変換器102のラツチに記憶される。各しきい値のアナログ信号は基準値として電圧比較器106〜109のうちの一つに印加される。カメラ11からアナログの映像信号は電圧比較器106〜109の印加され、それぞれ映像信号の輝度が基準しきい値より高いか、低いかに対応させた値を有する2進数出力を発生する。この2進数出力は4つの出力ラツチ110により各ピクセル毎にサンプリングされ、2進数イメージを表わす出力信号を発生する。出力ラツチ110の出力は2進数イメージ・プロセツサ100に供給される。
第3B図に示すように、2進数イメージ・プロセツサ100の4つの2進数イメージ出力は、4線のバス112を介してバツフア・メモリ114のデータ入力に接続されている。バツフア・メモリ114は4×64Kのメモリ回路を備えており、各メモリ回路は2進数イメージ・プロセツサ100からの256×256ピクセルの2進数出力イメージのうちの一つを記憶する。バツフア・メモリ114は映像プロセツサ・アドレス・バス45に接続されており、制御バス42から書き込み及び読み出し制御信号を入力している。VIMのある種の機能は、リアル・タイムで実行することができないことは明らかである。その結果、これらの機能はバツフア・メモリ114に記憶されている2進数イメージを評価している。従つて、この評価を映像走査速度で実行する必要はない。
2進数イメージ・プロセツサ100及びバツフア・メモリ114の出力は、独立した入力としてイメージ入力選択回路116に接続されている。イメージ入力選択回路116は、制御バス42を介するアドレス・デコード回路53の信号に応答して、バツフア・メモリ114、2進数イメージ・プロセツサ100又はデータ・バス41のうちの1出力をイメージ出力線118に接続する。イメージ入力選択回路116の他の部分は制御バス42の信号に応答してバツフア・メモリ114又は2進数イメージ・プロセツサ100の4つの出力線にカウンタ・バス120の4線に接続する。
イメージ出力線118上のイメージ出力信号は64Kのグラフイツク・メモリ122のデータ入力端子に接続されている。映像プロセツサ・アドレス・バス45及び種々の制御バス42はグラフイツク・メモリ122に接続されている。グラフイツク・メモリ122は、モニター13上に表示するためにCPU部が発生するアイコン及び英数字のキヤラクタを含む256×256ピクセル・イメージを記憶する。イメージ出力線118のイメージ出力信号は窓メモリ124のデータ入力端子にも接続されている。窓メモリ124は独立した4つの64Kの2進数イメージ・メモリを有する。これは、以下で説明するように、4つのセンサー窓を定義する独立した2進数イメージのためのメモリとなる。窓メモリ124はイメージ入力選択回路116からイメージを出力するイメージ出力線118に共通に接続されている。窓メモリ124のアドレス端子はx−yオフセツト回路126の出力に共通に接続されている。
x−yオフセツト回路126は、第6図に詳細に示されており、ビデオ・イメージのデータ位置(基準位置)から評価をしている製作品位置のシフトについて、補償を行なうものである。x−yオフセツト回路126は、製作品12が水平及び垂直方向にシフトした場合、その製作品12の像のシフト量(移動量)はピクセルの数によって検知でき、このピクセル数がX−Yオフセツト回路126に記憶される。これらの数は、窓メモリ124のアドレスに加算され、製作品12のシフトに対応して窓の位置をそのデータ位置から実際にシフトさせるものである。これはセンサー窓及び製作品の適正な整列を保持させるものである。このように、このピクセル数は、カメラのレンズ倍率や他の光学的変数に対応した、対象の移動距離を表わす。
x−yオフセツト回路126は、それぞれセンサー窓の水平(X)調製及び垂直(Y)を調製をして製作品のシフトを揃えるピクセル・カラム回路131及びピクセル・ライン・オフセツト回路132に分割される。ピクセル・カラム回路131はデータ・バス41に接続されているxオフセツト・データ・ラツチ133を備えている。xオフセツト・データ・ラツチ133は、物体がそのデータ位置(基準位置)から水平にシフトしたピクセルの位置数を表わす8ビツトの数及び符号を記憶する。この数は以下で説明するライン・ゲージ・センサーから得られる。xオフセツト・データ・ラツチ133は制御バス42を介してアドレス・デコード回路53からカラム選択書き込み信号を入力している。
xオフセツト・データ・ラツチ133の出力の下位4ビツトは、4ビツトの第1カラムの加算器134の1セツトの入力に接続されている。第1カラムの加算器134は映像プロセツサ・アドレス・バス45の下位4ビツト(ビツト0〜3)も入力している。第1カラムの加算器134の出力4ビツトは並列6ビツトのオフセツト出力バス138のビツト線0〜3に接続されており、オフセツト出力バス138は窓メモリ124のアドレス入力に接続されている。第1カラムの加算器134のキヤリー出力(CO)は第2カラムの加算器136のキヤリー入力(CI)に接続されている。第2カラムの加算器136の1セツトの加算入力はxオフセツト・データ・ラツチ133の上位4ビツトに接続されている。他のセツトの加算入力は映像プロセツサ・アドレス・バス45のビツト線4〜7に接続されている。第2カラムの加算器136の出力ラインはオフセツト出力バス138のビツト数に接続されている。
ピクセル・オフセツト回路132はイメージのピクセル線数を表わすイメージ・アドレスの上位8ビツトを有することを除き、ピクセル・カラム回路131と同一である。Yオフセツト・ラツチ140はデータ・バス41に接続され、物体の8ビツトの垂直オフセツトを記憶する。このオフセツトは製作品12がイメージの垂直方向のデータ位置(基準位置)からシフトされたピクセル数を表わす。Yオフセツト・ラツチ140はアドレス・デコード回路53から引き出される制御バス42の線選択導線を介する書き込み信号によりエネーブルされる。Yオフセツト・ラツチ140の出力のうちの下位4ビツトは4ビツトの第1ラインの加算器142の1セツトの入力に接続されている。他のセツトの入力は映像プロセツサ・アドレス・バス45のビツト線8〜11に接続されている。第1ラインの加算器142の4ビツト出力はオフセツト出バス138のビツト線8〜11に接続されている。第1ラインの加算器142のキヤリー出力(CO)は第2ラインの加算器144のキヤリー入力(CI)に接続されている。第2ラインの加算器144はYオフセツト・ラツチ140の出力の上位4ビツトを一方の入力として入力し、また映像プロセツサ・アドレス・バス45のビツト線12〜15を他方の入力として入力している。第2ラインの加算器144の出力はオフセツト出力バス138のビツト線12〜15に接続されている。
第3B図に戻ると、窓メモリ124は、制御バス42に接続され、各アドレス・デコード回路53からの4書き込みエネーブル信号を窓メモリ124に1信号づつ入力している。窓メモリ124からの4出力は、出力バス(146)を介して出力選択スイツチ148の入力に接続されている。グラフイツク・メモリ122の出力は出力選択スイツチ148の入力にも接続されている。出力選択スイツチ148の他の入力は、バツフア・メモリ114から4つの出力線115に接続されている。3ステートの出力選択スイツチ148は、制御バス42を介するアドレス・デコード回路53の信号に応答して、バツフア・メモリ114、グラフイツク・メモリ122又は窓メモリ124の出力をデータ・バス41に接続する。これにより、マイクロプロセツサ44はこれらのメモリの内容を読み出しができる。
映像出力回路すなわち選択スイツチ150はイメージ入力選択回路116、グラフイツク・メモリ122及び窓メモリ124のイメージ出力線から入力される。映像出力回路150は、制御バス42を介してアドレス・デコード回路53から入力される選択信号に応答して、入力線のうちの一つ又はそれらの組合わせを選択する。選択した1又は複数の入力線上のデイジタル・イメージ・データは、アナログ映像信号に変換され、モニター13に出力される。映像出力回路150が同時にイメージ入力選択回路116、グラフイツク・メモリ122及び窓メモリ124からの出力を選択したときは、モニター13に表示されたイメージは3入力イメージの全てを重畳したものからなる。グラフイツク・メモリ122の出力は他の入力イメージ上に設定される。
ピクセル・カウント回路152内の一組のカウンタは、窓メモリ124に記憶されている窓イメージのうちの一つと、イメージ入力選択回路116の4つの2進数イメージのそれぞれとの論理積を取る。第7図はピクセル・カウント回路152内の4カウント段のうちの一つを示す。窓メモリ124の出力線及びイメージ入力選択回路116の出力線はNANDゲート154の入力に接続されている。NANDゲート154の出力は2つの8ビツトカウント段156及び158のカウント・エネーブル端子に接続されている。2つのカウント段156及び158は、第1のカウント段156のキヤリー出力を第2のカウント段158のクロツク端子に接続することにより、カスケード接続されており、16ビツトのカウントを構成している。第1のカウント段156のクロツク端子はクロツク62からのピクセル速度クロツク信号に接続されている。カウント段156及び158はそれぞれアドレス・テコード回路53から個々に出力エネーブル信号と、制御バス42を介して共通のクリア信号を入力している。カウント段156及び158のそれぞれの8ビツト出力はデータ・バス41に接続されている。カウント段156及び158のカウントは、窓メモリ124及びイメージ入力選択回路116のピクセルが共にハイの論理レベルになつたときに、増加される。ピクセル・カウンタは、窓内にあるビデオ・イメージのピクセルをカウントする。
ライト・ペン14は第3B図のライト・ペン位置レジスタ160のエネーブル入力に接続されている。ライト・ペン14をモニター13のスクリーンに対して押したときに、ライト・ペン14が位置するスクリーン上の位置をその陰極線管が走査すると、ライト・ペン14の出力が発生する。ライト・ペン14の出力は、そのスクリーン位置についてのアドレスを映像プロセツサ・アドレス・バス45を介して記憶するためにライト・ペン位置レジスタ160をエネーブルする。同時に、フラク・ビツトがライト・ペン位置レジスタ160にセツトされ、新しいライト・ペン位置が記憶されたことを表示する。CPU部はこのフラグ・ビツトをテストして、ライト・ペン14が付勢されたか否かを判断することができる。ライト・ペン位置レジスタ160はアドレス指定によりライト・ペン14の新しい位置を読み込むことができる。
[機能の説明]
以上で説明したように、VIMの回路はビデオ・イメージの種々の部分に位置する多数のセンサーを用いてビデオ・イメージを処理する。カメラ11(及びカメラ15)により撮像されたイメージは256本の走査線からなり、各走査線は25個の6ピクセルを有する。従つて、256列のピクセルが形成される。これは、イメージ情報を65,536(64K)メモリ位置を有するメモリに記憶するものとなる。モニター13上に表示されたVIMのイメージ例を第2図R>図に示す。実際には、利用可能なビデオ・イメージは垂直帰線期間に発生するラインのために256ラインより少ない。しかし、習慣的に、このようなイメージは256ラインを有するものと呼称されている。製作品12は暗い背景に結像され、製作品12とその背景との間に高レベルのコントラストが得られ、イメージ処理を大いに助ける。モニター13に表示されたイメージには、映像信号を処理する種々のオペレータ指定エンサー位置を表わす標識も含まれている。6つの線形な検知領域(ここではライン・ゲージという。)まで、また4つの二次元検知領域(窓という。)まで定義することができる。定義したこれらの検知領域内のピクセルの種種の特性がテストされ、データがラツク1のプロセツサ・モジユール3に送出される。
これらの窓センサー20〜22は、製作品12の種々の位置に配置された第2図のイメージに示されている。例えば、第1の窓センサー20は、ビデオ・イメージに配置されたときは、製作品13の左上端の開口31上に配置された正方形の領域である。第2の窓センサー21も形状が矩形であり、製作品12の中央部分の三角形開口32上に配置される。最後の窓センサー22は形状が円形であり、製作品12の右下端の開口33上に配置される。VIMの第4の窓はこの実施例では活性ではない。説明を簡単にするために、窓センサー20〜22は矩形又は円形の窓を形成する太線により示す。実際には、各窓が明るい矩形又は円形のイメージとしてモニター13上に表示される。
第3B図の映像プロセツサ部の回路は各窓センサー20〜22に1づつ独立した4つの2進数イメージを発生する。この2進数イメージを発生するために、カメラ11からの映像信号の輝度は2進数イメージ・プロセツサ100により4つのしきい値と比較される。各2進数イメージにおけるピクセルは、映像信号において対応するピクセルの輝度がそれぞれしきい値の上か、下かに従つて白か、黒となる。映像プロセツサ部のピクセル・カウント回路152は、与えられ2進数イメージに対応するセンサー窓内にある白ピクセルをカウンタする。ピクセル・カウント値の範囲は、そのカウントが受け入れ可能な否かを表わすように指定されてもよい。これによつて、VIMは開口31のような特徴の大きさが指定された次元上の許容範囲内にあるか否かを判断することが可能になる。
2つのライン・ゲージ・センサー23及び24はビデオ・イメージ上の縁センサーと呼ばれる。ライン・ゲージ・センサー23及び24はそれぞれ1ピクセル幅及び数ピクセル長(例えば、59ピクセル長)である。第1のライン・ゲージ・センサー23はイメージの垂直方向に伸延し、第2のライン・ゲージ・センサー24は水平方向に伸延している。垂直方向のライン・ゲージ・センサー23は製作品12の水平方向の上端を検出し、水平方向のライン・ゲージ・センサー24は製作品12の左垂直端を検出する。各ライン・ゲージ・センサー23及び24は、第2図のイメージについて画定されているように、白ピクセルから黒ピクセルへの最初の遷移を検出する。ライン・ゲージ・センサー23,24の終端からこの遷移までのピクセル数は、ビデオ・イメージ内の製作品12の位置を表わしている。
第3のライン・ゲージ・センサー25は、製作品12の下端の矩形引込み34上の、ビデオ・イメージの下端近傍に配置されている。第3のライン・ゲージ・センサー25はライン・ゲージ・センサー23及び24のものよりかなり複雑な検知機構となる。例えば、ライン・ゲージ・センサー25に沿う暗いピクセル数は、カウントにより矩形引込み34の長さを決定するものであつてもよい。更に、ライン・ゲージ・センサー25の先頭から製作品12の縁までの白ピクセル数は、カウントにより矩形引込み34の位置を決定するものであつてもよい。VIMにより設定された3つのライン・ゲージ・センサー23,24及び25は、この実施例では使用するためにエネーブルされることはない。
ビデオ・イメージ内でユーザーが定義可能な4領域に加えて、輝度基準プローブ窓の輝度プローブ26がイメージの頂点近傍に配置される。この輝度プローブ26は予め定めた8×8個のピクセルによる正方形からなり、この正方形内でピクセルの輝度を平均して製作品12上の相対輝度レベルを得る。次に、VIMがこの測定を用いて、輝度の変化を補償すると共に、製作品12の他の測定パラメータとして用いられる。
ライン・ゲージ・センサー25、センサー窓及びライン・ゲージに関するデータはEEPROM54に記憶される。このデータのワーキング・コピーもVIM RAM48に記憶される。このデータは、各センサーの位置、大きさ、形状及び測定機能のようなパラメータを指定する。このパラメータのデータは映像プロセツサ分を構成するために用いられる。更に、VIMのソフトウエアはそのビデオ・イメージの処理においてこのデータを使用している。
輝度プローブ26を規定するパラメータは、第8図に示すように、3つの16ビツト・ワードからなる構成データ・ブロツクに記憶される。その第1ワードには輝度プローブ26の左上端のxyイメージ・ピクセル・アドレスが含まれる。これらの座標は最初のワードの個々のバイトに含まれる。構成データ・ブロツクの第2バイトには、輝度検知が付勢されているか否かを表わすその下位バイト(LSB)のエネーブル・ビツトを含む。このビツトはシステム構築中にオペレータによりセツト又はリセツトされる。第2ワードの上位バイト(MSB)にはVIMの設定中に測定された基準輝度プローブ値が含まれる。
構成データ・ブロツクの第3ワードには、VIMのオペレータにより規定される輝度プローブ26の輝度測定として、受け入れ可能な最大値及び最小値が含まれる。輝度プローブ26がエネーブルされたときに、これらの値が許容範囲を定める。測定した輝度がこの範囲外であつたときは、このテストが失敗したことを示すフラグ・ビツトがVIM RAM48の他の個所に設定される。
4つのセンサー窓の構成パラメータは第9図に示すように、VIM RAM48に位置する独立した6ワードのデータ・ブロツクに記憶される。データ・ブロツクの第1ワードは窓のxyピクセル・アドレス座標についての1バイトを有する。矩形窓の場合には、これらの座標が窓の左上端のピクセルのピクセル線及びカラム・バイトのアドレスである。円形窓の場合に、これらの座標は円の中心についてのアドレス・バイトである。次の2ワードはピクセル・カウンタ許容範囲の最大値及び最小値である。第4ワードの上位バイトは、窓がエネーブルされているか否かと、その形状(矩形又は円形)とを表わす一連のフラグ・ビツトである。他の一対のフラグ・ビツトは、製作品12のシフトに対応しており、xy方向に窓がシフト、又は浮動するか否かを表わす。この上位バイトは、この窓内でカウントするのは白ピクセルか、黒ピクセルかを表わすものである。第4ワードの下位バイトには、この窓の2進数イメージを得るためにプロセツサ100が用いる基準しきい値が含まれている。基準しきい値はVIMの設定中に定められる。
窓データ・ブロツクの最後の2ワードは、窓が矩形が、円形であるかに基づいて変化するパラメータを記憶する。矩形窓のときは、第5ワードには矩形の大きさを定義する下右端のxy座標についてのバイトが含まれる。円形窓の場合は、第5バイトの1バイトには円の半径が含まれる。第5ワードンの他のバイトには白黒ピクセル・カウント・フラグが含まれる。第6ワードには窓のピクセル数が含まれ、これによつて窓の大きさが定められる。
最終的のセンサー型式は第10図に示されているEEPROM45の構成データ・ブロツクによつて定められる。その構成データ・ブロツクの第1ワードには、イメージ内の線の部分を定めるライン・ゲージの左端のxy座標が含まれる。次の2ワードに、それぞれライン・ゲージに沿うピクセルについて行なつた2つのテスト結果についての最大及び最小範囲値が含まれる。第4ワードの上位バイトには、ライン・ゲージがエネーブルされているか否か、及びこれが水平か垂直かを表わすフラク・ビツトが含まれる。付加的な2フラグ・ビツトは、ライン・ゲージがxy方向に浮動しているのか、又はこれが製作品12の縁の位置を表わす浮動データ源であるかを表わす。ライン・ゲージが浮動データ源であるときは、イメージにおいてその位置が固定される。更に2フラク・ビツトは、このセンサーが用いるのは4つの2進数イメージのうちのいずれのであるかを表わす。
ライン・ゲージのデータ・ブロツクにおける第4ワードの下位バイトは、ライン・ゲージに沿つてピクセル上に実行されるべき測定機能を表わす。各機能はピクセルについて2つの測定を実際に実行する。基本的な機能は、 白ピクセル及び黒ピクセルのカウント、 最初の白いプロツブの最初の縁位置及び幅、 最初の黒いプロツブの最初の縁位置及び幅、 最後の白いプロツブの最後の縁位置及び幅、 最後の黒いプロツブの最後の縁位置及ひ幅、 白プロツブの数及び縁の数、 黒プロツブの数及び縁の数。
プロツブは1つのピクセル、又は他の色のピクセルの前後で同一の色が連続する1グループのピクセルである。ライン・ゲージはソフトウエアにより実現される。従つて、付加的な機能は、必要なソフトウエア・ルーチンを備えることにより得られる。機能を表わすために用いられるビツト数は、多数のオペレーシヨンの定義を可能にする。
ライン・ゲージのパラメータのデータ・ブロツクの第5ワードには、線の終端についての座標を指定するバイトが含まれる。これは、垂直ライン・ゲージのy座標、又は水平ライン・ゲージのx座標である。このライン・ゲージをx又はy浮動データ源として用いたときは、第5ワードの他のバイトには製作品12の縁のデータ位置(基準位置)が含まれる。例えば、垂直ライン・ゲージをy浮動データ源として用いた場合は、このバイトにはその線の上端から製作品12の端までのピクセル数が含まれる。この数は、y即ち垂直方向に製作品12のデータ位置(基準位置)を設定する。データ位置の値は設定フエーズでこのバイトに記憶される。
センサーの構成データ・ブロツクに含まれるパラメータは、ソフトウエアにより用いられ、第3B図に示す映像プロセツサ部が設定される。この構成データは、以下、VIMの動作を参照して詳細に説明されるが、輝度基準回路68、プロセツサ100、及び窓メモリ124を構成する。
VIM構成 VIMを起動させると、ソフトウエアは第11図のフローチヤートに示す起動ルーチンに入る。第3A図及び第3B図も参照すると、この起動ルーチンはステツプ200で初期化フエーズに入り、マイクロプロセツサ44がVIM部品について診断を実行する。次に、ステツプ読み出し専用メモリ(RPM)46から通信パラメータをバツクプレーン・インタフエース回路52にロードする。
次いで、ステツプ202において、センサーのパラメータのデータ・ブロツクをEEPROM54からVIM RAM48に複写する。このデータはVIMの最終構成を表わす。EEPROM54に構成データが含まれてないときは、VIMを構築するためのフオールト・データを用いるか、又はプログラムがVIMのオペレータ構築の設定モードに直ちに移行する。これに代わって、一組の構成パラメータをバツク・プレーンを介してプロセツサ・モジユール3のメモリからVIM RAM48に転送することもできる。後者の方法は、異なる製作品のいくつかの組のパラメータをプロセツサ・モジユール・メモリに記憶し、また対応する製作品12が処理される際にVIMにロードすることを可能にする。
製作品12の評価結果を記憶するVIM RAM48の領域も定義される。この領域のデータ構成を第29図に示す。最初の16ビツト・ワード171のうちの5ビツトは、輝度プローブの結果及び4つのセンサー窓が受け入れ可能な値の範囲内にあるか否かを表わす。輝度プローブの結果が前記範囲内にあるときは、これらのビツトがローの論理レベルにある。第2ワード172には6つのライン・ゲージ範囲について同様の表示が含まれている。センサー結果が前記範囲内に入るか否かを示す前記ビツトは、「警報」と呼ばれる。
VIM RAM48内の結果データ・ブロツクの残りのワードには、各センサーについて完全な評価結果が含まれる。第3ワード173には輝度プローブ26により測定された平均輝度を表わす0〜255のデイジタル数が含まれる。第4ワードには4つのセンサー窓の白黒ピクセルのカウントが含まれる。これらのカウントは0〜約65535までの範囲にある。以上で説明したように、ライン・ゲージ・センサーのために選択した各解析機能は、ラインに沿つたピクセルについて2つの処理を実行する。例えば、白黒ピクセルをカウントすることができる。第1のライン・ゲージの2つの処理の結果は、結果データ・ブロツクの第8ワード178及び第9ワード179に記憶される。2つの結果は一次及び二次として表わされる。残りのワード180〜189には他の5ライン・ゲージについての一次及び二次ピクセル処理結果が含まれる。
IVM RAM48の結果データ・ブロツクにおける最終のワード190には、種々のIVM部品のステータスを表わすビツトが含まれる。これらは、プロセツサ・モジユール3がVIMに不具合が発生したか否かの判断を可能にする。
結果データメモリ領域を画定した後、VIM RAM48内のセンサー構成パタメータを用いて第3B図に概要的に示す映像プロセツサ部を最初に構築する。アドレス・バス・マルチプレクサ60は構築処理中に、先ず、アドレス・バス43を映像プロセツサ・アドレス・バス45に接続する。第11図のステツプ204において、マイクロプロセツサ44は、輝度プローブ・データ・テーブル(第8図)の第1ワードに記憶され、ビデオ・イメージにおけるプローブの位置を指定する2バイトを逐次読み出す。この2バイトは、データ・バス41を介して輝度基準回路68(第4図R>図)内の輝度プローブ位置レジスタ70に転送される。次に、ステツプ206において、マイクロプロセツサ44は、各センサー窓データ・テーブル(第9図)の各第4ワードからしきい値のバイトを逐次読み出し、これらのしきい値を2進数イメージプロセツサ100のアナログ・デイジタル変換器102のレジスタに記憶する。
ステツプ208において、マイクロプロセツサ44は4つのセンサー窓のそれぞれについてVIM RAM48内のデータ・テーブルから窓の位置、その大きさ及び形状を指定する情報を読み出す(第8図)。マイクロプロセツサ44はこの情報を用いて窓メモリ124のうちの対応する1つ内の窓のマスク・イメージを作成する。これを実行するために、マイクロプロセツサ44は先ずイメージ入力選択回路116をアクセスしてイメージ出力線118に接続する。イメージ出力線18はデータ・バス41の線のうちの一つを窓メモリ124のデータ入力に接続させる。制御バス42のうちの一つはエネーブルされ、選択した窓メモリ124を書き込みモードに設定する。
窓が矩形であるときは、マイクロプロセツサ44は構成データ・テーブルの第1ワードにおけるxy座標を用い、矩形の左上端を画定する。矩形の右下端のxy座標は、構成データ・テーブルの第1ワードに含まれている。マイクロプロセツサ44は、対角線上で反対の端を知ることにより、水平及び垂直方向の矩形片のイメージ・アドレスを決定することができる。マイクロプロセツサ44は、通常のフイル・ルーチン(fill routine)を用いて、適当な窓メモリ124をアドレス指定し、かつ窓センサーのメモリ位置にデイジタル化したものを記憶する。窓が円形であるならば、通常のアルゴリズムにより同様の方法を用いて、その中心アドレス及び半径から円の縁のアドレスを計算する。円の縁のアドレスが決定されると、デイジタル化されたものが円内の各窓メモリ・アドレスにより記憶される。
窓メモリ124のロードが完了すると、これに記憶された各イメージは視覚入力モジユールの4つのセンサー窓のうちの一つの表わす。特に、各メモリは、各メモリ位置に窓が配置されたピクセルに対応するものを記憶している。これが窓メモリ124に窓のマスクを作成する。各窓を独立してイメージ・メモリに記憶するので、窓は重なり合うか、又は一致する。
次に、ステツプ210において、制御信号が映像出力回路150に送出され、これにイメージ入力選択回路116からのイメージ出力線118上の信号と、窓メモリ124のうちの一つからの出力とを選択してモニター13の映像出力信号を発生するように命令する。視覚入力モジユール内の信号の選択は、カメラ11の2進数イメージ及びセンサー窓のうちの一つとを重畳したイメージを作り出す。
先ず、映像プロセツサ部において全ての部品が構築されると、アドレス発生器64は、アドレス・バス・マルチプレクサ60の制御を開始する。これは、映像信号の垂直帰線期間を除いて、アドレス発生器64からのアドレス信号を映像プロセツサ・アドレス・バス45に供給するものである。この垂直帰線期間において、アドレス・バス43はアドレス・バス・マルプレクサ60により映像プロセツサ・アドレス・バス45に接続される。これにより、マイクロプロセツサ44は、VIMがモニター13上にビデオ・イメージを表示させる間に、垂直帰線期間で映像プロセツサ部の部品をアクセスすることができる。
次に、判断ブロツク211において、ステツプの起動ルーチンはバツクプレーン・インタフエース回路52のラツチにおいてプロセツサ・モジユール3が記憶させた2つのフラグ・ビツトをテストする。第1ビツトは、VIMがラインから外されたことにより、センサー領域の設定が可能であることを表わしている。他のビツトは、VIMにイメージの処理を開始させる。設定ビツトがセツトされたと仮定すると、ステツプ212に示すように、グラフイツク・メモリ122をロードしてモニター13上に起動メニユーを表示させる。この起動メニユーは、英数字情報と、視覚入力モジユールを設定モードにするか否かを視覚入力モジユールのオペレータに質問するアイコンとからなる。この表示は、マイクロプロセツサ44により作成され、イメージ入力選択回路116に制御信号を送出して2進数イメージ・プロセツサ100の対応する2進数イメージ出力をイメージ出力の線118に送出するように指令するものである。グラフイツク・メモリ122は書き込みモードに設定され、メニユー・イメージが生成され、グラフイツク・メモリ122に記憶される。
次に、処理ブツク213において、起動ルーチンが第12図に示すライト・ペン入力ルーチンを呼び出す。判断ブロツク220において、マイクロプロセツサ44はライト・ペン位置レジスタ160をアクセスし、ライト・ペン14をオペレータが作動させたか否かを示すラツチ・フラグ・ビツトを読み出す。ライト・ペン14が使用されなかつたときは、プログラムは判断ブロツク220によりループし続け、オペレータがライト・ペン14を使用してVIMの動作モードを指示するのを待つ。このフラグがライト・ペン14の作動を示したときは、ステツプ222によりフラグをリセツトさせる。ステツプ224において、ライト・ペン位置レジスタ160に記憶されているライト・ペン位置がマイクロプロセツサ44により読み出され、ライト・ペン・ルーチンが第11図のフローチヤートに示すライト・ペン・ルーチンの呼び出し点に戻る。
判断ブロツク214において、ライト・ペン14がスクリーンにタツチした位置が表示された設定モードを示すアイコンのアドレス範囲と比較される。ライト・ペン14が2つのアイコン以外の位置で作動されたときは、ステツプ215において、プログラムは設定フラグ・ビツトを調べる。この設定フラグ・ビツトが未だセツトされていれば、プログラムはライト・ペン・ルーチンを再度呼び出すためにループ・バツクする。プロセツサ・モジユール3により設定ビツトがリセツトされていたときは、プログラムはステツプ211に戻し、設定フラグ及びトリガ・フラグをテストする。このVIM動作の説明の都合から、設定モードが選択され、プログラムが処理ブロツク216に進むものと仮定する。
設定モードでは、オペレータがセンサーの1つ又は全部を再規定することができる。例えば、この設定モードは新しい製作品についてVIMを構築するために用いられる。設定フエーズに入る前に、製作品がそのデータ位置でカメラ11の前に正確に配置される。設定モードを選択すると、VIMのプログラムは第13図のフローチヤートに示されている設定ルーチンに行く。映像プロセツサ部の部品へのアクセスを必要とする設定ルーチンのステツプは、カメラ11及びモニター13の映像同期信号の1以上の垂直帰線期間において実行される。最初は、ステツプ230において、窓センサー・ポインタが第1窓を処理するように1に設定される。ステツプ232において、第3B図に示すイメージ入力選択回路116は、マイクロプロセツサ44により構築され、2進数イメージ・プロセツサ100からイメージ出力線118に第1の2進数イメージを転送させる。選択回路116の構成を示すデータは、VIM RAM48に記憶されているので、これが一時的に変更された後でもこれをこの状態に戻すことができ、従つてマイクロプロセツサ44はグラフイツク・メモリ122又は窓メモリ124をアクセスすることが可能である。次に、ステツプ134において、映像出力回路150が設定され、イメージ入力選択回路116、グラフイツク・メモリ122及び窓メモリ124に記憶されている第1窓マスクの出力から重畳イメージを作成する。この重畳イメージはモニター13上に表示される。
次の垂直帰線期間中に、メイン設定メニユーが表示のためにグラフイツク・メモリ122に記憶される。新しいメニユーを表示するために、ステツプ236において、イメージ入力選択回路116はデータ・バス41をイメージ出力線118に接続するように構築される。次に、メニユーのデータが読み出し専用メモリ(ROM)46からメニユーが現われるビデオ・イメージの一部分に対応するグラフイツク・メモリ122のメモリ位置に記憶される。メニユーがグラフイツク・メモリ122に記憶されると、これが次の映像フイールドにおいてモニター13上に表示される。次いで、イメージ入力選択回路116は前の構築に戻される。
第14図を参照すると、メニユーは矩形の枠内の5つのアイコン(icon)286〜290からなる。アイコン285は窓センサーを表わし、アイコン287はライン・センサーを表わし、アイコン288は輝度プローブを表わす。アインコン289は各種機能を表わし、復帰矢印アイコン290は設定処理の完了を表わしている。ステツプ238において、第13図にフローチヤートにより示すプログラムは、ライト・ペン・ルーチンを呼び出してオペレータが5つのアイコンのうちの一つを選択するのを待つ。アインコンのうちの一つが選択されると、判断ブロツク240において、マイクロプロセツサ44はどのアイコンが選択されたかを判断する。設定ルーチンに関連して先に説明したように、このステツプでは、マイクロプロセツサ44がライト・ペン14の操作により選択した位置を各アイコのアドレス指定範囲と比較していずれが選択されたかを判断する。
アイコン286が選択されたと仮定すると、プログラムは第13図に示すルーチンに入り、これによつてオペレータは4つの窓センサー領域のそれぞれを構築する機会が与えられる。次のステツプ244において、第15図に示すメイン窓構成メニユーがモニター13の表示の下部に表示される。これは、先に説明したように、設定メニユーの表示と同一の一般的な方法により達成される。しかし、第15図に示す窓メニユーを作成する際に、マイクロプロセツサ44は窓ポインタにより表わされた窓のデータ・テーブルに記憶された種種の構造フラグを調べる。種々のフラグがアイコン292〜295により表わされた各パラメータのステータスを表わす。次に、各フラグの論理レベルを用いてメニユーについての読み出し専用メモリ(ROM)46から適当なアイコン・イメージを選択する。グラフイツク・メモリ122のそれぞれの位置に、選択した各アイコン・イメージを記憶し、メニユーの表示を形成する。
窓メニユーは7つのアイコンからなる。第1のアイコン291を用いて構築用の4つの窓のうちの一つを選択する。窓の形状は、アイコン292上のライト・ペン14を操作することにより、第15図に示す矩形窓か、又は円形窓を選択して変更することができる。これに代わつて、第3の選択が備えられており、カメラ11の前面に配置されたアートワーク(artwork)により窓を画定し、窓メモリに記憶することもできる。次のアイコン293は選択した窓によりイメージ処理を可能又は不可能にする。アイコン204は、選択した窓により用いられる2進数イメージの輝度しきい値を固定したままにするのか、又は輝度プローブにより選択された輝度変化に従つて変更可能にするのかを選択する。アイコン295は、カウントするのは白ピクセルか、黒ピクセルかを判断する。ピクセル・カウント回路152は白ピクセルのみをカウントするので、黒ピクセルのカウントは、窓内の総ピクセル数から白ピクセル数を引算するソフトウエア・ルーチンにより得られる。アイコン296の選択はプログラムを窓の大きさ及び位置を変更可能な窓調整ルーチンに進める。復帰矢印297は次に高いレベルのルーチンをセツト・アツプ処理、この場合はメイン設定メニユーに戻す。
メイン窓メニユーが表示されると、ステツプ246においてライト・ペン・ルーチンを呼び出す。選択が終わると、判断ブロツク248は7つのアイコンのうちのいずれをが選択されたのかを判断する。窓選択のアイコン286が選択されたときは、ステツプ250においてVIM RAM48内の窓ポインタ・アドレスを次の窓に増加させる。次に、ステツプ252において、マイクロプロセツサ44が制御信号をイメージ入力選択回路116に送出するので、選択した窓に対応する2進数イメージが2進数イメージ・プロセツサ100からイメージ出力線118に供給され、モニター13上に表示される。ステツプ254において、選択した窓イメージをその窓メモリ124からモニター13に供給する制御信号を映像出力回路150に送出する。ステツプ252及び254は、窓メモリ124に記憶されている新しい窓と、グラフイツク・メモリ122に記憶されている新しいセンサー窓及びメニユーとからなり、モニター13上に表示される重畳イメージを作成する。ステツプ254を実行した後、プログラムは、次の窓のメイン窓メニユーを表示する処理ブロツク242に戻る。これは、第1アイコンにおける窓の数が新しい窓を表わしていることを除き、前の窓メニユーと同一である。
ステツプ248において形状アイコン292が選択されたときは、ステツプ256において窓のデータ・テーブルの第4ワードにおける指定した窓の形状フラグ・ビツト(第9図9図)が反転され、次の形状を選択する。ステツプ257において指定した窓メモリ124に新しい形状の窓の位置及び大きさについてのデフオールト値を用い、新しい形状の窓を記憶する。次いで、プログラムはステツプ242に戻り、第15図に示すメイン窓メニユーを窓の形状についての新しいアイコンと共に、再度表示する。エネーブル・アイコン293、輝度しきい値補正アイコン294、又は白/黒ピクセル・カウント・アイコン295を選択したときは、ステツプ258,260又は262において、窓データ・テーブルにおいて対応するフラグ・ビツトが変更される。
OKアイコン296を選択したときは、ステツプ264を第17図に示す窓調整ルーチンを呼び出す。窓調整ルーチンの最初のステツプ270ではモニター13の下端に窓調整ルーチンのメニユーを表示する。第16図に示す窓調整ルーチンのメニユーは、16アイコン320〜325からなる。最初のアイコン320は、オペレータがイメージ内の窓を再配置したいときに選択される。第2のアイコン321は、窓の大きさを変更するのに用いられる。アイコン322は、窓のxy位置がビデオ・イメージ内の製作品12の位置をシフトすることにより浮動可能にするか、又は所定の位置に固定したまま静止させるかを選択する。アイコン324はオペレータが許容ピクセル・カウントの範囲を変更するのを可能にする。また、戻り矢印325は、窓調整ルーチンをステツプ242に戻してメイン窓メニユーを再度表示させる。
窓調整ルーチンが表示されると、ルーチンは第17図のステツプ272に移行し、ライト・ペン・ルーチンを呼び出す。ライト・ペン14の作動を検出すると、プログラムは判断ステツプ274に移行し、選択した特定のアイコンを判断する。
アイコン320を選択し、オペレータがセンサー窓を移動したいことを示しているときは、処理ブロツク276により第18図に示す移動ルーチンが呼び出される。この移動ルーチンの最初のステツプ300において、第19図に示す移動メニユーを表示する。この移動メニユーは、窓を移動する方向を表わす矢印と、再配置を完了したときに用いる基準リターンの矢印とからなる。移動メニユーが表示されると、ステツプ302によりライト・ペン・ルーチンが呼び出される。ライト・ペン14の作動を検出すると、プログラムはステツプ304に移行し、ライト・ペン14の位置を各アイコンのアドレスの範囲と比較することにより、選択したアイコンを判断する。左向きの矢印を選択したときは、ステツプ306によりx−yオフセツト回路126におけるxオフセツト・データ・ラツチ133の内容を増加させる。x及びyオフセツト・データ・ラツチ133及び140に大きさ数を記憶させる結果、窓メモリ124に記憶したイメージをモニター13のスクリーン上で左へシフトさせることになる。これは、この方法は窓の周辺を再計算したときよりも、ずつと速い方法なので、窓を移動させるのにxyオフセツト回路126が用いられ、ライト・ペン14が変化を示す度にフアイルされる。xオフセツトを増加すると、ステツプ308によりこの窓に関する構成データ・ブロツク(第9図)の第1ワードのx位置を減少させる。窓が矩形のときは、右下端のx位置も減少させる。
ライト・ペン14が右向き矢印を選択したときは、ステツプ310によりxオフセツトを減少させ、またステツプ312により構成データ・ブロツクのx位置バイトを増加させる。上向き矢印の場合は、ステツプ314によりyオフセツトを増加させ、ステツプ316によりy位置バイトを減少させる。同様に、下向き矢印を選択したときは、ステツプ318によりyオフセツトを減少させ、処理ブロツク319によりy位置バイトを増加させる。窓を新しい位置に移動したときは、リターンの矢印を選択する。これは、プログラムをステツプ317に進めて、先ず窓メモリ124内の当該窓のイメージ・メモリを0にするものである。次いで、マイクロプロセツサ44は窓の構成データ・ブロツクに含まれている位置パラメータを用い、窓メモリ124を新しい位置に再ロードする。この処理ステツプもx−yオフセツト回路126におけるxオフセツト・データ・ラツチ133及びyオフセツト・ラツチ140を0にする。次いで、移動ルーチンは第17図の窓調整ルーチンに戻り、ステツプ270により窓調整メニユーを再度表示する。
窓調整ルーチンは窓の大きさを第16図の示すメニユーから選択したアイコン321により変更させ、処理ブロツク278において窓調整ルーチンにより第20図のフローチヤートに示す窓の大きさルーチを呼び出す。この窓調整ルーチンの最初のステツプ330において、窓の幾何学的な形状を表わす構成データ・ブロツクのフラク・ビツトを調べて、これが円形であるか否かを判断する。窓が円形でなかつたときは、これは矩形ということであり、プログラムはステツプ332に進み、窓の大きさをグラフイツク・メモリ122に記憶し、かつモニター13に表示する。このメニユーは移動ルーチンのものと同一であり、これを第19図に示す。ライト・ペン・ルーチンはステツプ334により呼び出される。
ライト・ペン14を作動したときは、処理ブロツク336はいずれのアイコンを選択したかを判断する。矢印を選択すると、ステツプ338〜341が矩形の下右端の位置か、又はy位置を変更される。例えば、左向きの矢印はステツプ338が当該窓の構成データ・ブロツクにおける下端のx座標を減少させる。これは1ピクセル位置における窓の右端を実際に移動させる働きがあり、マイクロプロセツサ44は窓メモリ124を0にし、フローチヤートの処理ブロツク342により示す新しい大きさの窓を改めて描く。次いで、プログラムはステツプ334においてライト・ペン・ルーチンを再び呼び出すために戻る。窓の変更を完了したときは、リターンの矢印を選択する。これは、プログラムを窓の大きさサブルーチンから第17図の調整ルーチンのステツプ279に戻すものである。ここで、窓の総ピクセル数をカウントし、結果を窓のデータ・テーブルの第6ワードに記憶する。その後、プログラムはステツプ270に戻り、窓調整メニユーを再度表示する。
第20図の窓の大きさルーチン(ステツプ330)の開始において、窓が円であると判断したときは、異なる窓の大きさメニユーを表示する。この窓の大きさメニユーは、左向きや、右向き矢印がないことを除き、第19図に示すものと同一である。ステツプ352において、ライト・ペン・ルーチンを呼び出し、またライト・ペン14が作動していると判断したときは、プログラムはステツプ354に進む。このステツプ354は、ライト・ペン14がいずれの矢印を選択したかを判断する。窓の大きさを変更するために2つの矢印を必要とするだけなので、半径を増加させるか、又は減少させることにより、変更を行なう。上向き矢印を選択したときは、ステツプ356により窓についての構成データ・ブロツク(第9図)に記憶している半径の値を増加させる。一方、下向き矢印を選択したときは、ステツプ358が記憶している半径の値を減少させる。次いで、ステツプ360において、マイクロプロセツサ44は対応する窓メモリ124を0にし、構成データ・ブロツクに記憶している新しい半径を用い、円形の窓を描画し直す。次に、プログラムはライト・ペン・ルーチンに戻るので、窓の大きさの変更を追加することができる。円形の窓の変更を完了したときは、リターン矢印のアイコンを用いてプログラムを第17図の窓調整ルーチに復帰させ、ステツプ279及び270を実行する。
窓調整ルーチンにおいて、位置浮動アイコン322を選択したときは、ステツプ280により、窓の構成データ・ブロツクにおけるxy浮動フラツク・ビツトを変更し、窓の位置を固定するか、又は製作品12の位置にシフトによる浮動を許容するかを表わす。
最小及び最大範囲の警報値については、第16図のメニユーに基づいて対応するアイコ324を選択することにより、設定することができる。これらの最小及び最大範囲の警報値はピクセル・カウンドの範囲を確立し、製作品12を評価する際にこれを用いて、窓内でカウントされた実際のピクセル数が満足すべきものか否かを判断する。アイコン324を選択すると、第17図のステツプ284が第21図のフローチヤートに示すレンジ・セツト・ルーチンを呼び出す。このルーチンはステツプ370から開始され、第22図に示すレンジ・メニユーが表示される。このメニユーには、復帰矢印アイコン362及び上向き矢印363及び下向き矢印364が含まれている。このメニユーには、更に範囲366の最小値、範囲368の最大値を表示する範囲数字ブロツク365と、範囲368の最大値とピクセル・カウント回路152のピクセル・カウンタが現在カウントしているカウント値367とが含まれる。
第21図のフローチヤートのステツプ372はライト・ペン・ルーチンを呼び出す。ライト・ペン14の作動が検出されると、ステツプ374はいずれのアイコンが選択されたかを判断する。最初、オペレータは最小値範囲制限数366又は最大値範囲制限数368を選択することになる。最大値範囲制限数368を選択したときは、ステツプ376はVIM RAM48において最大値フラグをセツトする。数字ブロツクの範囲366上にライト・ペン14を置いて、最小値範囲を選択すると、ステツプ378は最大値フラグをリセツトする。ステツプ374においてライト・ペン・ルーチンが再び呼び出され、上向き矢印363又は下向き矢印364のうちのいずれをオペレータに選択させる。ライト・ペン14を作動させたときは、判断ブロツク382は2つの矢印のうちのいずれを選択したのかを判断する。上向き矢印363が選択されたときは、判断ブロツク384により最大値フラグがセツトされているか否かを判断する。最大値フラグがセツトされているのが確認されたときは、ステツプ386によりこの窓の構成データ・ブロツク(第9図)に記憶されている最大限界値を増加させる。ステツプ384において最大値フラグがセツトされていなかつたときは、ステツプ388において構成データ・ブロツクの最小限界値を増加させる。ステツプ382により下向き矢印364が指定されたと判断したときは、判断ブロツク390において最大値フラグがセツトされているか否かの判断をする。最大値フラグがセツトされているときは、ステツプ392においてマイクロプロセツサ44が最大限界値を減少させる。最大値フラグがセツトされていないときは、ステツプ394において最小限界値を減少させる。選択した最大限界値又は最小限界値を増加又は減少させた後、ステツプ396において上限又は下限の新しい数値を表示する。また、ステツプ372において、プログラムはステツプ372に戻つてライト・ペン・ルーチンを呼び出し、更に最大限界値又は最小限界値を増減させる。復帰矢印アイコン362を選択すると、プログラムはステツプ372から窓調整ルーチンのステツプ270に戻る(第17図)。窓調整ルーチン上の点272において復帰矢印アイコン362を選択すると、第13図のメイン窓メニユーのフローチヤート上のステツプ242に戻る。
第13図を参照するに、ステツプ238において第13図のライン・ゲージ・アイコンを選択すると、プログラムは判断ブロツク240から第23図のフローチヤートに示されているライン・ゲージ・ルーチンに移行する。先に説明したように、ハードウエアにより主として実現されているセンサー窓と異なり、ソフトウエアによりライン・ゲージを増加させる。その結果、モニター13上にライン・ゲージを表示するために、マイクロプロセツサ44は窓メモリ124のうちの第4のものを用い、表示用にライン・ゲージのイメージを作成する。このために、ステツプ400においてライン・ゲージ・ルーチンは第4窓の窓ポインタをセツトする。ステツプ402において、ライン・ゲージ・ポインタとして表わされたVIM RAM48のメモリ・アドレスは、1にセツトされ、第1ライン・ゲージを表わす。次に、ステツプ406において、映像出力回路150はセツトされ、イメージ入力選択回路116、第4の窓メモリ124及びグラフイツク・メモリ122の出力から複合イメージを作成する。
第3A図、第3B図及び第23図を引き続き参照するに、ステツプ406においてマイクロプロセツサ44は第4の窓メモリ124にライン・ゲージを描く。このために、マイクロプロセツサ44はイメージ入力選択回路116に制御信号を送出し、データ・バス41の線のうちの一つを窓メモリ124に接続されているイメージ出力線118に接続する。次いで、マイクロプロセツサ44は窓メモリ124のうちの第4のものを作動させ、古いイメージ・データを消去することにより新しいデータを第4の窓メモリ124に書き込むことができる。マイクロプロセツサ44はxy位置情報、垂直/水平方向フラグ及びライン・ゲージ・構成データ・ブロツク(第10図)における長さバイトを用いて、第4の窓メモリ124内のラインのイメージを記憶する。特に、ライン・ゲージが配置されイメージのピクセル位置を表わす各メモリ位置には、デイジタル1が記憶されており、他の全ての位置には0が含まれている。これは、モニター13上にライン・ゲージを表わす白いイメージを作成する。
次いで、ステツプ408において、イメージ入力選択回路116はセツトされ、ライン・ゲージ・データ・ブロツクにおいて指定された2進数イメージ・プロセツサ100からイメージ出力線118に接続される。ステツプ410において、マイクロプロセツサ44は第24図に示されているメイン・ライン・ゲージ・メニユーを表示する。これは、前と同じように、イメージ入力選択回路116を変更することにより、イメージ出力線118にデータ・バス41のラインのうちの一つを接続し、これによつてデータをマイクロプロセツサ44からグラフイツク・メモリ122に供給して記憶することができる。次いで、メイン・ライン・ゲージ・メニユーはグラフイツク・メモリ122に記憶され、マイクロプロセツサ44はイメージ入力選択回路116をその前の接続に復帰させる。メニユーは6つのアイコン430〜435からなる。第1のアイコン430は6つのライン・ゲージのうちのいずれか現在構築されているのかを表わす。ライト・ペン14によりこのアイコンを反復して選択することにより、6ゲージによりライン・ゲージの選択をステツプさせる。第2のアイコン431はオペレータに水平ラインか、又は垂直ラインかを選択させる。第3のアイコン432は4つの2進数イメージのうちのいずれかを指定したライン・ゲージに用いるかを示す。アイコン433は指定されたライン・ゲージをエネーブル又はチセーブル(disable)させる。そのOKアイコン434は構築プログラムを大きさ、位置及びライン・ゲージのピクセル機能を選択するライン調整メニユーに移行させる。ステツプ236において、復帰矢印アイコン435はプログラムをライン・ゲージ・ルーチンからメイン設定ルーチンに戻す。
ステツプ412において、ライト・ペン14の作動が検出されたときは、判断ブロツク44においてマイクロプロセツサ44は第24図のアイコンのうちのいずれが選択されたのかを判断する。ライン・ゲージを選択するアイコン430が選択されたときは、ステツプ416によつてライン・ゲージ・ポインタを増加させて、次のライン・ゲージを選択する。最後のライン・ゲージの番号6を前に選択したときは、ステツプ416においてラインの行き先が番号1に変更される。ステツプ414において、水平又は垂直ラインを選択するアイコン431が選択されたときは、プログラムはステツプ418に進み、指定されたライン・ゲージ・データ・テーブルにおける水平/垂直フラグを他のライン方向に反転される。次いで、処理ブロツク419において、デフオールト位置及び長さを用いて窓メモリ124に新しいライン・ゲージを記憶する。ステツプ432を選択したときは、ステツプ420においてマイクロプロセツサ44は2進数イメージの値を増加させてライン・ゲージ・データ・テーブルに記憶し、これに対応して窓ポインタも変更する。エネーブル・アイコン433を選択したときは、ステツプ424において、データ・テーブルにおけるエネーブル・フラグを指定したライン・ゲージに反転させる。OKアイコン434を選択したときは、ステツプ426において第25図に示すライン調整ルーチンを呼び出す。
ライン調整ルーチンはライン・ゲージの位置及び形状を変更すると共に、実行しようとする特定のピクセル評価機能を選択させる。最初のステツプ450は、第26図に示すライン調整メニユーを表示する。このライン調整メニユーは、6つのアイコン433〜442からなる。次いで、ステツプ452においてライト・ペン・ルーチンを呼び出す。ライト・ペン14の作動を検出すると、ステツプ454においていずれのアイコンが選択されたのかを判断する。
最初のアイコン436を選択したときは、ステツプ456はライン移動ルーチンを呼び出す。このライン移動ルーチンは先に説明した窓を移動させるときに用いるルーチンと同じである。アイコン437を選択すると、プログラムはステツプ485においてラインの太さルーチンを呼び出す。このステツプ485も、ラインの長さが当該ルーチンにより変更されることのみを除き、先に説明したも窓の大きさを変更するルーチンと同様である。アイコン438を選択すると、ステツプ460が呼び出され、ライン・ゲージの構成データ・ブロツクにおける浮動機能フラグをセツトする。アイコン435を反復して選択すると、ライン・ゲージ位置を浮動させるか、しないか、又はライン・ゲージの結果を製作品12のx又はy位置の測定源として用いることを指定することによりステツプする。
アイコン440を選択すると、ステツプ464を呼び出す。ステツプ464は機能選択ルーチンを呼び出すものである。この機能選択ルーチンは異なる評価機能に対応する一組の番号により選択アイコンを進めることによつて、ピクセルの評価機能を変更させるメニユーをモニター13上に表示する。更に、受け入れ可能な結果値の範囲をセンサー窓のピクセル・カウント範囲をセツトした方法と同様に変更させてもよい。復帰矢印アイコン442を選択することにより、ライン調整ルーチンは第23図のメイン・ライン・ゲージに戻る。
第13図に戻ると、ステツプ240において、第14図に示す輝度プローブのアイコン288を選択したときは、プログラムは第27図のルーチンに行く。最初のステツプ470は第28図に示す輝度プローブのメニユーを表示する。このメニユーは7つのアイコンからなる。次のステツプ472において、ライト・ペン・ルーチンを呼び出す。ライト・ペン14を作動させると、ステツプ473においてマイクロプロセツサ44は、輝度プローブのメニユーにおける7つのアイコンのいずれを選択したかを判断する。
最初のアイコンを選択すると、ステツプ474においてVIM RAM48内の構成データ・ブロツクの輝度プローブ・エネーブル・フラグを反転させる。第2のアイコン491は、ステツプ475において先に説明したセンサー窓の移動ルーチンと同一の移動ルーチンを呼び出す。範囲選択アイコン492を選択すると、プログラムはステツプ476に行くので、受け入れ可能な輝度値の範囲のセツトが可能になる。アイコン493はストロボ・ライトの使用をエネーブル又はチセーブルさせるものである。これは、ステツプ477においてマイクロプロセツサ44がVIM RAM48内のアドレスによりストローブ・エネーブル・フラグを反転させることにより達成される。次いで、ストロボ・ライトが点灯され、ビデオ・イメージを取り込む。ビデオ・イメージから導出された4つの2進数イメージは、バツフア・メモリ144に記憶される。イメージ入力選択回路116はバツフア・メモリ114の信号をその出力に印加するように変更される。
OKアイコン495を選択すると、プログラムはステツプ482に行き、ステツプ482において2進化しきい値メニユーをマイクロプロセツサ44により表示させる。この2進化しきい値メニユーは2進数イメージ・プロセツサ100の4つのしきい値のうちの一つを選択するアイコンを表示させ、次いで当該のしきい値を増減させる。これは、対応する窓の構成データ・ブロツクの第4ワード内の2進化基準しきい値を変更することにより達成される。その2進化しきい値を変更するために、一つのアイコンを用いて4つの2進数イメージのうちの異なるものを選択する。このアイコンを選択すると、ステツプ478においてマイクロプロセツサ44は窓ポインタを次の窓番号に増加させることになる。次いで、ステツプ479において、マイクロプロセツサ44はイメージ入力選択回路116に制御信号を送出するので、2進数イメージ・プロセツサ100から対応する2進数イメージをイメージ出力線118に供給してモニター13上に表示させる。同様に、マイクロプロセツサ44は映像出力回路150をセツトするので、処理ブロツク480において窓メモリ124に記憶した選択窓を2進数イメージと共に表示することができる。
メニユーにおける上下の矢印は、指定したデータ・ブロツク(第9図)の第4ワードにおける2進化しきい値バイトを増減させることにより、モニター13上に明るい又は暗い画像を生成する。これは、ステツプ483においてライト・ペン・ルーチンを呼び出すことにより達成され、ライト・ペン14によりオペレータが2進数イメージのうちの一つのしきい値を増加又は減少させるアイコンを選択できるようにする。このアイコンを選択したときは、マイクロプロセツサ44はスエツプ485において窓データ・テーブルにおける2進数しきい値を増加させる。一方、下向きアイコンを選択したときは、ステツプ486においてしきい値を減少させる。しきい値を変更する度に、マイクロプロセツサ44は、このしきい値を窓データ・テーブルから2進数イメージ・プロセツサ100に転送し、処理ブロツクにおいて対応するイメージのしきい値レジスタに記憶させる。次いで、プログラムはステツプ483に戻り、再びライト・ペン・ルーチンを呼び出す。2進数イメージのしきい値を適正に調整すると、しきい値セツト・ルーチをメイン・プローブ表示メニユーに戻す復帰矢印アイコンを選択する。
第13図に戻ると、第14図に示すメイン設定メニユーの第4アイコン289は種々の機能を構築させる。これを選択すると、判断ブロツク240はプログラムはこれらのパラメータを構築させるルーチンに移行する。例えば、このようなパラメータの一として、視覚入力モジユールがプロセツサ・モジユール3からのトリガ信号に応答すべきか、又は正面パネルの電気端子17を介して外部信号源からのトリガ信号に応答すべきかのものがある。ユーザーが視覚入力モジユールの構築を完了すると、メイン設定メニユーにおいて復帰矢印アイコン305を選択する。ステツプ241において、マイクロプロセツサ44は全てのセンサーの構成データ・ブロツクと、他のVIM校正パラメータとをEEPROM54に転送する。この転送はEEPROM54に記憶している構築データを更新するので、停電したとき、又はオフにしたときは、現在構成が達成される。プロセツサ・モジユール3も、構成データをプロセツサ・モジユール3に転送してメモリに付加的にバツク・アツプ記憶することを要求することができる。次いで、ステツプ242においてイメージ入力選択回路116は制御信号を送出して第1イメージを2進数イメージ・プロセツサ100からそのイメージ出力線118に送出させる。次に、ステツプ243において、映像出力回路150は、イメージ入力選択回路116及び第1の窓メモリ124からの出力を重畳したイメージを作成するように構築される。この時点で、設定ルーチンは終結し、プログラムは第11図のフローチヤートのステツプ211に戻る。プロセツサ・モジユール3がバツクプレーン・インタフエース回路52のラツチにおける設定ビツトをリセツトするまで、プログラムはその設定分岐を介してループし続ける。これがリセツトされると、プログラムは、ステツプ211において設定ビツトが再びセツトされるか、又は映像処理が信号をトリガするのを待つ。このためのトリガ信号は、プロセツサ・モジユール3がバツクプレーン・インタフエース回路52のラツチにおいてトリガ・ビツトをセツトしたとき、又は外部装置がトリガ電圧を電気端子17のうちの指定した一つに印加したときに、発生する。
イメージ処理 トリガ信号を受け取ると、プログラムはイメージ処理ルーチンに移行する。第30図はイメージ処理ルーチンの概要図である。ステツプ500において、ビデオ・イメージを得ると、輝度プローブ26により測定された輝度を調べる。輝度は受け入れ可能な範囲内になければならない。さもなければ、取り込んだイメージは適正な処理にとつて暗過ぎるか、又は明る過ぎるものとなる。輝度が受け入れ可能なものであるときは、処理はステツプ502に進み、固定した窓のそれぞれのピクセル・カウントを読み込み、VIM RAM48の結果データ・ブロツク内に記憶する。次いで、ステツプ504において、固定したライン・ゲージを調べ、それらの分析の結果をデータ・ブロツクに記憶する。窓又はライン・ゲージが製作品12の位置の変化と共に浮動したものがないときは、処理はステツプ514に移行する。しかし、いくつかのセンサーが浮動したときは、処理はステツプ506及び508に進み、製作品12の位置を測定し、xy位置のオフセツトを決定する。xyオフセツトの計算を完了すると、浮動ライン・ゲージを解析してその結果をステツプ510により記憶する。次いで、ステツプ521において浮動窓を解析してその結果を結果データ・ブロツクに記憶する。次のステツプ514において、輝度プローブの輝度を用いて2進数イメージ・プロセツサ100においてしきい値を調整する。センサー警報ビツトのそれぞれを調べて、マスタ警報ビツトのステータスを判断する。図においてその他の番号は第30図に示す各主要ステツプのフローチヤートを示す。
第31図はビデオ・イメージ取り込み及び輝度プローブ検査ルーチンのフローチヤートであり、以下で第3A図及び第3B図の概要図を参照して説明する。ビデオ・イメージ取り込み及び輝度プローブ検査ルーチンのフローチヤートである。このルーチンは、バツクプレーン・インタフエース回路52の出力ラツチにおけるVIMビジー・ビツトを設定することにより、ルーチンはステツプ520から開始される。このビツトをセツトすると、VIMがイメージを実際に評価し、かつその結果が未だ得られないことをプロセツサ・モジユール3に示すものとなる。次いで、処理ブロツク521においてVIMは、アドレス発生器64から次の映像フレームが開始することを示す垂直同期信号が来るのを待つ。必要ならば、ステツプ522において構成データ・ブロツクにおけるエネーブル・ビツトがセツトされているか、否かに従つてストロボ・ライトを点灯する。
次いで、ステツプ523についてイメージを取り込む。このステツプ523では、既に、イメージ入力選択回路116が2進数イメージ・プロセツサ100からのバス112のうちの4本をピクセル・カウント回路152のカウンタ・バス120に接続するように構築されている。更に、バツフア・メモリ114も2進数イメージ・プロセツサ100からの4つの2進数イメージのそれぞれを記憶するようにエネーブルされている。イメージの取り込みが完了すると、ステツプ524においてVIM RAM48に新しい値を格納すべき、範囲警報及びカウント値の全記憶位置をクリアする。
ステツプ522において、構成データ・ブロツク内の輝度プローブ26のエネーブル・ビツトを調べる。輝度プローブ26(第2図)がエネーブルされていないときは、プログラムはステツプ531に進む。もし、輝度プローブ26がエネーブルされているときは、ステツプ526において輝度基準回路68内のアナロク・デイジタル変換器90(第9図)を制御バス42の信号によりエネーブルする。これは、測定した輝度をデータ・バス41に送出する。ステツプ527においてマイクロプロセツサ44が平均輝度を表わす当該データを読み込む。ステツプ528において、輝度を輝度プローブの構成データ・ブロツク内に記憶している受け入れ可能な輝度の範囲と比較する。この輝度が受け入れ可能な範囲内に存在しないときは、VIM RAM48内のプローブ誤りフラグ、及び第29図に示す結果データ・ブロツク内の輝度プローブ警報フラグをセツトする。ステツプ530において、結果データ・ブロツク内に輝度プローブ26により検知された平均輝度を記憶する。
次いで、マイクロプロセツサ44は輝度プローブ警報フラグを調べて製作品12の輝度が受け入れ可能な範囲にあるか否かを判断する。プローブ警報フラグがセツトされているときは、ビデオ・イメージを取り込む際に製作品12の輝度が満足すべきイメージを生成して処理するためには暗過ぎたか、又は明る過ぎたものである。輝度プローブ警報フラグがセウトされていないときは、第38図の最初のステツプ670へプログラムが移行し、個々のセンサーを分析するステツプを全てバイパスさせる。しかし、輝度プローブ警報フラグがセツトされていないときは、満足すべきイメージを取り込んだことを表わしており、プログラムは進み、第32図に示すルーチンを用いて固定窓を調べる。
この検査ルーチンは、VIM RAM48内のセンサー・インデツクス・カウント値を1にセツトすることにより、ステツプ540から開始する。次いで、プログラムはセンサー窓分析ループに入り、4つのセンサー窓のそれぞれを評価してそれらの位置が固定されているか、否かを判断する。固定されているときは、ピクセル・カウントを読み出す。エンサー窓分析ループは判断ブロツク541から開始され、センサー・インデツクス・カウント値を調べることにより、4つの窓を全て調べたか判断する。4つの窓を全て調べたときは、プログラムは判断ブロツク542に進み、センサー・インデツクス・カウント値により現在指定されている窓の構成データ・ブロツク内のエネーブル・ビツトを調べて、これがエネーブルされているか否かを判断する。もし、窓がエネーブルされていなければ、プログラムはステツプ550に進み、センサー・インデツクス・カウント値を増加させ、次の窓を調べる。しかし、窓がエネーブルされていたときは、固定窓ルーチンはステツプ543に進み、窓の構成データ・ブロツク内の浮動ビツトを調べて窓の位置が固定か、浮動かを判断する。窓の位置が浮動のときは、処理ブロツク551においてセンサー浮動フラグをセツトし、プログラムの実行は直接ステツプ550に進む。
しかし、インデツクスした窓の位置から固定されているときは、ステツプ544においてマイクロプロセツサ44が対応するヒクセル・カウント回路152に記憶されているピクセル・カウントを読み込む。次いで、判断ブロツク545においてカウントするのは窓内の白ピクセルか、黒ピクセルかを表わす構築ビツトを調べる。先に説明したように、ピクセル・カウント回路152はセンサー窓領域内の白ピクセルのみをカウントする。従って、黒ピクセルをカウントするときは、ステツプ546においてマイクロプロセツサ44がセンサー窓内の総ピクセル数から、ピクセル・カウント回路152の白ピクセルのカウントを引算しなければならない。判断ブロツク547において、設定処理の際に当該窓についてオペレータにより定義された受け入れ可能な値内に、ピクセル・カウントの結果があるか否かを判断する。この判断は、マイクロプロセツサ44が窓データ・ブロツクに記憶した範囲の最大及び最小限界値に対して比較することにより行なわれる。ピクセル・カウントが予め定めたこの範囲外であつたときは、ステツプ548においてこの窓のための結果データ・ブロツク警報フラグをセツトする。次いで、ステツプ549において結果データ・ブロツク内にピクセル・カウントをセーブする。ステツプ550においてセンサー・インデツクス・カウントを増加させ、プログラムがステツプ541に戻つて次のセンサー窓の結果を調べる。4つの窓の全てを調べたときは、プログラムの実行はステツプ541から固定ライン・ゲージの結果を調べる処理に移行する。
第33図には固定ライン・ゲージ解析ルーチンが示されている。先ず、ステツプ559において、アドレス・バス・マルチプレクサ60がアドレス・バス43を映像プロセツサ・アドレス・バス45に接続するように構築される。次いで、マイクロプロセツサ44は出力選択スイツチ148を構築するので、バツフア・メモリ114からの出力信号はデータ・バス41に送出される。次いで、ステツプ560においてVIM RAM48のセンサー・インデツクス・カウント値は1にリセツトされ、各ライン・ゲージのそれぞれについての検査ループに入る。検査ループの最初のステツプ561において、センサー・インデツクス・カウント値を調べて6つのライン・ゲージの全てを調べたか否かを判断する。調べくべきライン・ゲージが残つているときは、プログラムは判断ブロツク562に進み、インデツクスしたライン・ゲージの構成データ・ブロツクに含まれているエネーブル・ビツトを調べる。ライン・ゲージがエネーブルされていないときは、プログラムは直接ステツプ575に進み、センサー・インデツクス・カウント値を増加させ、これによつて次のライン・ゲージを調べられるようにする。しかし、ステツプ562においてライン・ゲージがエネーブルされているのを検出すると、ステツプ563においてその構成データ・ブロツク内のライン・ゲージの浮動について検査を行なう。ライン・ゲージが浮動であつたとき、ステツプ564においてセンサー浮動フラグをセツトする。
ライン・ゲージが固定されたままと仮定すると、ステツプ565において、浮動データ発生源でこのライン・ゲージの解析によりxyオフステツト回路126を更新すべくか否かについて判断する。これが浮動データのうちの一つであるときは、ステツプ566においてこの目的のために指定されたVIM RAM48の一部にライン・ゲージの数をセーブし、プログラムはステツプ575に進む。しかし、ステツプ565においてライン・ゲージが浮動データ源ではないと判断したときは、ステツプ567においてライン・ゲージ解析サブルーチンを呼び出す。
第34図に示すライン・ゲージ解析サブルーチンは、最初に、ステツプ580においてライン・ゲージの構成データ・ブロツクをアクセスしてライン方向を表わすデータと、どの色のピクセルを処理すべきかを表わすデータと、選択したピクセル解析機能を表わすデータとを読み出す。次いで、ステツプ581においてアドレス・バス43を映像プロセツサ・アドレス・バス45に接続することを指示する制御信号をアドレス・バス・マルチプレクサ60に送出する。ステツプ582において、このライン・ゲージがバツフア・メモリ114のうちの一つに記憶され、かつ出力選択スイツチ148に指示することによりアクセスされ、バツフア・メモリ114の出力をデータ・バス41に送出される。
ステツプ583において、種々の処理分岐584〜587のうちのいずれのを実行すべきかを選択された機能が判断する。第1の分岐584はライン・ゲージに沿つて白ピクセル及び黒ピクセルをカウントする。マイクロプロセツサ44がライン・ゲージに沿つた当該イメージの各イメージをアドレス指定し、白ピクセル及び黒ピクセルを別個にカウントする。このカウントはVIM RAM48の一次記憶領域に保持される。
第2の分岐585はライン・ゲージに沿つて発生するピクセルのブロツブ数と、それらの縁とをカウントする。ブロツブとは、連続する同一色のピクセルのうちの一つ又はそれらの一グループであると定義される。このルーチンにおいては、マイクロプロセツサ44がバツフア・メモリ114内に記憶された対応のイメージにおける各ピクセルを調べる。白ピクセルから黒ピクセルへ、又は黒ピクセルから白ピクセルへの遷移が検出されると、VIM RAM48内に記憶される対応のカウントを増加させる。この機能解析ルーチンの分岐を用いてライン・ゲージの構成データ・ブロツク内に記憶されている機能数と共に黒ブロツブ上の白点をカウントして、白黒ブロツブをカウントすべきか否かを判断する。
次の分岐586はイメージを左から右へ、又は上から下へ最初の白黒ブロツブの最初の縁又は幅を検出する。ライン・ゲージの構成データ・ブロツクに記憶されている機能数により、検知されたのは白ブロツブか、黒ブロツブかを判断する。各ライン・ゲージ・センサー23及び24について当該のライン・ゲージ解析ルーチンの分岐を用い、これによつて第2図に示すイメージ例における製作品12の縁を検出する。いずれの場合も最初の白ブロツブの縁は製作品12の縁を表わす。水平ライン・ゲージ24の場合では、マイクロプロセツサ44が最初はライン・ケージの左端のあるバツフア・メモリ114内のピクセルをアドレス指定することにより処理が開始される。次いで、マイクロプロセツサ44はバツフア・メモリ114のピクセル・アドレスを増加させ、白ピクセルを検出するまで連続的に各黒ピクセルをカウントする。最初の白ピクセルに対するピクセル位置番号は製作品12の縁の位置を決定する。次いで、次の黒ピクセルを検出するまで、又はライン・ゲージの終端になるまで、白ピクセルをカウントする。カウントした白ピクセル数は最初のブロツブの幅を決定する。同じような方法により、ライン・ゲージ・センサー23及び24を用いて、製作品12の上端の位置を決定する。しかし、この場合には、製作品12の水平端を位置決めするために、マイクロプロセツサ44がピクセルの上位バイトに含まれているピクセル・ライン・カウントを増加させる。
最後の機能解析ルーチン587はライン・ゲージに沿つた最後のブロツブの最終縁及び幅を検出する。例えば、製作品12の右縁に第2図の水平ライン・ゲージ24を配置したとき、又は製作品12の下端にライン・ゲージ・センサー23を配置したときに、この分岐が用いられる。この分岐587におけるイメージの処理は、マイクロプロセツサ44がライン(右端又は下端)に沿つて最後のピクセルのアドレス指定することにより開始することを除き、前の分岐587のものと同一である。次いで、ライン・ゲージがそれぞれ水平又は垂直であるかに従つて、ピクセルのカラム又はピクセルのライン・アドレスを減少させてブロツクの縁を位置決めし、その幅を決定する。
選択した機能分岐584〜587の実行を完了すると、ステツプ588において一次及び二次のライン・ゲージ解析の結果がメイン・プログラムの呼び出し点に戻される。例えば、一次の結果は白ピクセルのカウントであつてもよく、また二次の結果は黒ピクセルのカウントである。次いで、このライン・ゲージ解析サブルーチンは呼び出しをしたメイン・プログラム上の点に戻る。
第33図に示す固定ライン・ゲージ・ルーチンに戻るに、ライン・ゲージ解析ルーチンに戻つたときは、ステツプ568において一次結果を受け入れ可能な値の範囲に対して比較する。一次結果が予め定めた範囲外であつたときは、ステツプ570において、結果判断ブロツク(第29図)にライン・ゲージの警報フラグをセツトする。次いで、ステツプ571において一時機能結果の値を結果判断ブツクに記憶する。次の判断ブロツク572においてライン・ゲージ解析の二次結果を受け入れ可能な値の範囲に対して比較する。この二次結果が予め定めた値外であつたときは、ステツプ573においてライン・ゲージ警報フラグをセツトする。ステツプ574において、結果判断ブロツクにおける二次結果のワードに二次結果の値を記憶する。
次いで、ステツプ575においてセンサー・インデツクス・カウントを増加させ、プログラムがステツプ561に戻り、新しいセンサー・インデンツクス・カウントを評価して全ライン・ゲージを解析したか否かを判断する。全ライン・ゲージを解析したときは、プログラムは判断ブロツク576に行き、ステツプ551又は564においてVIM RAM48にセツトしたセンサー浮動フラグを調べて、浮動するように構築された窓又はライン・ゲージがあるか否かを判断する。どのセンサーも浮動しないときは、プログラムは第38図のフローチヤートのステツプ670にジヤンプする。しかし、センサー浮動フラグがセツトされ、少なくとも一つのセンサーが製作品12の位置のシフトにより浮動するときは、プログラムはxオフセツト計算ルーチンに行く。
第35図に示すxオフセツト計算ルーチンは、浮動データ源として働くライン・ゲージを配置することにより開始される。これは、ステツプ600において、第33図のステツプ566によりVIM RAM48に記憶したx浮動ライン・ゲージのインデツクスを得ることにより達成される。ステツプ566においてx浮動ライン・ゲージが指定されなかつたときは、処理ブロツク601においてプログラムはxオフセツト値を0にセツトする。次いで、ステツプ602においてVIM RAM48内のx浮動ステータス・フラグは真にセツトされ、プログラムは直接ステツプ626に進む。
しかし、ステツプ600においてx浮動データのソース・ライン・ゲージを検出したときは、ステツプ603においてVIM RAM48内のx浮動ステータス・フラグは偽(fulse)にセツトされる。ステツプ604においてライン・ゲージ構築データ・ブロツク内の機能ビツトを調べ、縁位置をライン・ゲージの左側からか、又は右端から測定するのかを判断する。即ち、検出するのは最初の、又は最後のブロツブの縁なのかということである。これらの機能ビツトもブロツブの色を指定する。
第2図のライン・ゲージ24のときのように、センサーの左端から測定をするときは、ステツプ605においてピクセル位置変数XSTART及びYTARTをライン・ゲージの開始のためのピクセル・カラム及びピクセル・ライン・アドレス・バイトと同一にセツトする。判断ブロツク607において、XSTARTの値が水平ライン・ゲージの終端についてのx座標に対して比較される。XSTARTの値がラインの終端を超えていないときは、ステツプ608においてXSTART及びXYTARTにより表わされたアドレスのピクセルがバツフア・メモリ114から読み出される。次いで、判断ブロツク609においてマイクロプロセツサ44は、現在ピクセルの色が検出すべきブロツブの色と同一であるか否かを調べる。ピクセルが正しい色でなく、製作品12の縁に到達していないことを示しているときは、ステツプ613においてXSTARTの値を増加させ、プログラムがステツプ607に戻つて他のピクセルを調べる。しかし、ステツプ609においてピクセルは、製作品12の縁を検出したことを表わしている正しい色であると判断し、処理ブロツク610においてXSTARTの値からライン・ゲージ構築データ・ブロツクにおけるデータ位置バイトを引算することにより、xオフセツト値を計算する。製作品12がx軸にそつてシフトされなかつたときは、計算したオフセツトは、XSTARTがデータ位置と同一値を有するので、比較したオフセツトは0となる。オフセツトの符号はデータ位置(基準位置)からのシフト方向を決定する。次いで、ステツプ611において、XSTARTはライン+1の終端に等しい。また、ステツプ612において、x浮動ステータス・フラグは真にセツトされる。次いで、プログラムはライン終端についての判断ブロツク607に戻り、XSTARTの値がライン終端を超えているので、プログラムは判断ブロツク624に進む。
第35図を引き続いて参照するに、製作品12の縁を水平ライン・ゲージの右端から測定するときは、xオフセツト計算ルーチンの同一部分を実行する。この場合には、プログラムはステツプ604からステツプ615に進み、XSTART及びYSTARTの値をライン・ゲージの終端の値に等しくする。ステツプ616において、マイクロプロセツサ44は、XSTARTの値がライン・ゲージの開始のx座標より小さいか否かを判断する。XSTARTがライン・ゲージの開始のx座標より小さくないときは、ステツプ617においてXSTART及びYSTARTの値を用い、対応するバツフア・メモリ114のピクセルをアドレス指定する。次いで、マイクロプロセツサ44はピクセルの色を評価して、検出すべきブロツブと同一の色か否かを判断する。色が同一でなく、製作品12の縁を検出していないことを表わしているときは、ステツプ622においてXSTARTの値を減少させ、プログラムは次のピクセルを評価するためにステツプ616に戻る。
しかし、ピクセルが正しい色であつたときは、ステツプ619においてXSTARTの値からデータ位置バイトを引算することにより、xオフセツトを計算する。次いで、ステツプ620においてXSTARTをラインの開始−1にセツトし、処理ブロツクにおいてx浮動ステータス・フラグを真にセツトする。次いで、実行を判断ブロツク616に戻る。この時点では、XSTARTの値がラインの開始のx座標より小さいので、プログラムは判断ブロツク624に進む。
次に、x浮動ステータス・フラグを調べる。x浮動ステータス・フラクが偽であり、製作品12の縁を検出していないことを示しているときは、浮動範囲フラグをセツトし、プログラムは第38図のステツプ670に行く。x浮動ステータス・フラグが真であるときは、ステツプ626において計算したxオフセツトの値をxyオフセツト回路126に記憶する。
次いで、プログラムはyオフセツトを計算する第36図のステツプ508により表わすルーチンに行く。ここにルーチンは、測定をライン・ゲージの上から行なうか、又は下から行なうかに従つてXSTARTの代わりにYTARTの値を増減することを除き、xオフセツトの計算について示したものと同一である。yオフセツトの計算を行なつた後、プログラムは浮動ライン・ゲージを調べるためにルーチンの始めのノードHに行く。
浮動ライン・ゲージ解析ルーチンは第36図のフローチヤートのステツプ635から開始され、VIM RAM48においてセンサー・インデツクス・カウントを1にセツトする。前のルーチンのように、このセンサー・インデツクス・カウントを用いて6つのセンサー・インデツクスのそれぞれを逐次評価する。次いで、判断ブロツク636においてこのセンサー・インデツクス・カウントを評価し、6つのライン・ゲージのうちの一つを指定しているか否かを判断する。センサー・インデツクス・カウントの値が未だ6以下であるときは、ステツプ637において指定したライン・ゲージの構築データ・ブロツクを調べ、当該のライン・ゲージがエネーブルされているか否かを判断する。ライン・ゲージがエネーブルされていないときは、プログラムは直接ステツプ646に進み、センサー・インデツクス・カウントを次のライン・ゲージ番号に増加される。しかし、ライン・ゲージがエネーブルされているときは、判断ブロツク638においてその構築データ・ブロツク内の位置浮動フラグを評価する。指定したライン・ゲージが浮動でないときは、プログラムはステツプ647にジヤンプして次のライン・ゲージのセンサー・インデツクス・カウントを増加させる。
センサー・インデツクス・カウントによつて指定されたライン・ゲージが浮動するときは、マイクロプロセツサ44がxyオフセツトの値をライン・ゲージの出発点におけるピクセルのアドレスにおけるピクセル・カラム及びライン・バイトにそれぞれ加算する。ライン・ゲージの終端の座標も調整する。次いで、処理ブロツク640において第36図に示すライン・ゲージ解析ルーチンを呼び出し、このライン・ゲージの構築データ・ブロツクにおいて指定された帰納を実行する。先に説明したように、各ライン・ゲージ解析機能は2つの結果に帰着する。例えば、2つの結果はライン・ゲージの長さに沿つた白黒ピクセルのカウントからなる。
判断ブロツク641において一次結果を評価してこれが受け入れ可能な値内に含まれているか否かを判断する。一次結果が受け入れ可能な値内に含まれていないときは、ステツプ642において指定したライン・ゲージの警報フラグをセツトする。次いで、一次結果をこれらの結果のために指定されたVIM RAM48(第29図)の結果データ・ブロツクの領域内のセーブする。ステツプ644において、二次結果を調べてこれが受け入れ可能な値の予め定めた範囲内にあるか否かを判断する。二次結果がその範囲外であるときは、ステツプ645においてライン・ゲージの警報フラグをセツトする。次いで、ステツプ646において結果判断ブロツクの対応するワードに二次結果を記憶する。二次結果をセーブした後、ステツプ636においてセンサー・インデツクス・カウントを増加させ、プログラムはステツプ636に戻り、次のライン・ゲージを処理する。
センサー・インデツクス・カウントをライン・ゲージの数より大きな数(例えば、6)に増加させたときは、プログラムが判断ブロツク636からステツプ648に分岐する。ステツプ648では、浮動するセンサー窓があるか否かに判断をする。浮動するセンサー窓が存在しないときは、プログラムは、浮動窓の検査ルーチンをバイパスして第38図の示すフローチヤートにおけるステツプ670に行く。しかし、1以上のセンサー窓が浮動するように構築されたときは、プログラムは判断ブロツク648から浮動窓解析ルーチンに進む。
第3A図及び第3B図を参照するに、浮動窓の解析が第37図のステツプ650から開始され、同時にバツフア・メモリ114に記憶した4つの2進数イメージのそれぞれを再度み出しする。応答の最初に、イメージ入力選択回路116に制御信号を送出してバツフア・メモリ114の出力をピクセル・カウント回路152に供給する。アドレス・バス・マルチプレクサ60も動作してアドレス発生器64のアドレス信号を映像プロセツサ・アドレス・バス45に供給する。応答が終了すると、ステツプ651においてVIM RAM48のセンサー・インデツクス・カウントを初期化して1にセツトする。
次いで、浮動する窓のピクセル・カウントについて調べる。これは、ステツプ652においてセンサー・インデツクス・カウントが有効な窓数であるか、否かを最初に調べることにより達成される。センサー・インデツクス・カウントが未だ4つの窓のうちの一つを指示しているときは、ステツプ653において窓がエネーブルされているか、否かに判断を行なう。窓の構築データ・ブロツク内のエネーブル・フラグがセツトされていないときは、プログラムは直接ステツプ661に進み、センサー・インデツクス・カウントを増加させ、次の窓を評価することになる。しかし、当該窓がエネーブルされたときは、ステツプ654において構築データ・ブロツク内の移動浮動フラグ・ビツトが当該窓のためにセツトされたか否かについて判断をする。窓は浮動することを位置浮動フラグ・ビツトが表わしているときは、処理ブロツク655において窓内のピクセルの総数を構築データ・ブロツクから読み出す。
判断ブロツク656において、このセンサー窓についてカウントするのは白ピクセルか、又は黒ピクセルかの判断を行なう。黒ピクセルをカウントするときは、ステツプ657において窓内のピクセル総数からピクセル・カウント回路152内の含まれている白ピクセルの数を引算する。次いで、白黒ピクセルを評価して、白黒ピクセルが受け入れ可能な予め定め値内にあるか否かを判断する。これを達成するために、マイクロプロセツサ44はピクセル・カウントを窓の構築データ・ブロツクに配置している最小及び最大範囲限界と比較する。ピクセル・カウントが最小及び最大範囲外であつたときは、ステツプ660において窓の警報フラグをセツトする。ステツプ661において、結果構築データ・ブロツクにセーブし、またセンサー・インデツクス・カウント値を増加させる。浮動窓解析ルーチンにおいて4つのセンサー窓の全てを評価したときは、ライン・ゲージ及びセンサー窓の全ての評価を完了し、プログラムは判断ブロツク652から第38図に示すしきい値調整及び誤り報告ルーチンに行く。
第38図を参照すると、ステツプ670において、ライン・ゲージ案センサー窓の範囲警報フラグがセツトされたか、否かについて判断をする。セツトされた警報フラグがあれば、バツクプレーン・インタフエース回路52のデータ・ラツチにおいてマスタ・警報フラグ・ビツトと、対応する入出力(I/O)インタフエース回路50のビツトとをセツトして、少なくとも一つのセンサーの結果が予め定めた受け入れ可能な範囲外にあることを表わす。次いで、ステツプ672においてx及びy浮動ステータス・フラグを調べて、これらが共に真であるか否かを判断する。そのいずれもが偽である、対応するライン・ゲージが製作品12の縁を検知できなかつたことを表わしているときは、ステツプ673においてx−y警報フラグをセツトする。
次いで、ステツプ674において輝度プローブ構築テーブル内のエネーブル・フラグを調べる。輝度プローブがデイセーブルされているときは、プログラムはステツプ684に進み、バツクプレーン・インタフエース回路52の出力ラツチにおける種々のフラグをセツトする。次いで、ステツプ685において、VIMはプログラマブル・コントローラのラツクのバツクプレーンにおける制御ラインからビジー・ステータス信号の送出を停止する。
ステツプ674において、輝度プローブがエネーブルされているのを検出したときは、判断ブロツク675において輝度プローブ範囲警報フラグを調べる。輝度プローブ範囲警報フラグがセツトされており、測定した明るさが受け入れ可能な範囲外であることを表わしているときは、プログラムはステツプ684に進み、2進化しきい値の調整をバイパスする。しかし、輝度プローブ26が測定した平均明るさが受け入れ可能な値にあるときは、ステツプ676において、測定した平均明るさをVIM設定の際に輝度プローブ・データ・ブロツクの第2ワードに記憶した明るさ基準値によつて割算することにより、しきい値調整係数を計算する。次いで、このしきい値調整係数を用いて、2進数イメージ・プロセツサ100において各しきい値を再規定する。
ステツプ678において、センサー・インデツクス・カウントを初期化により1にする。次いで、判断ブロツク679においてセンサー・インデツクス・カウントを調べて、これが未だ4つのセンサー窓のうちの一つを指示しているか否かを判断する。4つのセンサー窓のうちの一つが未だセンサー・インデツクスにより指定されているときは、プログラムは判断ブロツク680に進み、指定された窓のしきい値補正フラグを調べる。製作品12の輝度の変化のためにしきい値を補正するときは、ステツプ681において、しき値調整係数を設定する際にセンサー窓の判断ブロツクに記憶した基準しきい値をしき値調整係数により乗算することにより、しきい値を調整する。次いで、対応する2進数イメージ・プロセツサ100のアナログ・デイジタル変換器102(第5図)内に新しいしきい値を記憶する。ステツプ638においてセンサー・インデツクス・カウントを増加させ、これによつて新しいセンサー窓のしきい値を調整することができる。全てのセンサー窓の2進化しきい値を調整したときは、プログラムは判断ブロツク679から先に説明したステツプ684及び685に分岐する。ステツプ684及び685を実行すると、プログラムは第11図のフローチャートのノードAに戻り、プログラムは設定信号又はイメージ・トリガ信号が来るのを待つ。
プロセツサ・モジユール3は周期的に視覚入力モジユール5からのビジー信号を搬送するラツク1のバツクプレーン上の制御ラインを調べる。プロセツサ・モジユール3がビジー信号を停止したのを検出すると、製作品12の評価を終了し、その結果をVIM RAM48に記憶したことを知る。プロセツサ・モジユール3は、バツクプレーン・コネクタ55又は56にVIMを搭載している2つのバツクプレーン・スロツトのうちの一つの制御ラインを介してエネーブル信号を送出することになる。先に説明したように、VIMはバツクプレーン・スロツトのうちの一つによりアクセスされ、バツクプレーン・インタフエース回路52の出力ラツチに記憶したビツトを得ることができる。これを実行することにより、プロセツサ・モジユール3は製作品12の評価の概要を得る。例えば、プロセツサ・モジユール3は、種々のライン・ゲージ及びセンサーの前全結果の値がオペレータによつて定義された範囲内に入ることを表わしているマスタ決定警報を得る。プロセツサ・モジユール3内の制御プログラムが製作品12の評価の詳細な結果を必要とするときは、制御ラインを介して他のラツクのスロツトにエネーブル信号を送出し、これによつて視覚入力モジユール5がバツク・プレーンを介してプロセツサ・モジユール3に全結果のデータ・ブロツクを転送させるように指示する。これを達成すると、プロセツサ・モジユール3はその制御プログラムに従つていずれかの、又は全てのセンサー結果を調べることができる。
【図面の簡単な説明】
第1図は本発明によるプログラマブル・コントローラ・システムを示す図、
第2図は第1図示のシステムによつて生成されたビデオ・イメージを示す図、
第3A図及び第3B図は第1図のプログラマブル・コントローラ・システムにおける視覚入力モジユールの2つの部分の概要ブロツク図、
第4図は第3B図の輝度基準回路のブロツク図、
第5図は第3B図の2進数イメージ・プロセツサの概要ブロツク図、
第6図は第3B図におけるX−Yオフセツト回路の概要ブロツク図、
第7図は第3B図のピクセル・カウンタのうちの一つを示す概要ブロツク図、
第8図は視覚入力モジールの輝度プローブについて構造パラメータのデータ構成を示す図、
第9図は視覚入力モジユールの各センサー窓について構造パラメータのデータ構成を示す図、
第10図は視覚入力モジユールのライン・ゲージについて構造パラメータのデータ構成を示す図、
第11図はシステム起動ソフトウエア・ルーチンの視覚入力モジユール初期化部分のフローチヤート、
第12図は第1図のライト・ペンからの入力を感知するためのソフトウエア・ルーチンのフローチヤート、
第13図はセンサー・セツト・アツプ・ルーチンの開始と、センサー窓設定プロセスの主要部を示すフローチヤート、
第14図、第15図及び第16図はそれぞれメイン設定メニユー、主要窓メニユー及び窓調整メニユーのアイコンを示す図、
第17図は窓調整ソフトウエア・ルーチンのフローチヤート、
第18図はセンサー移動ソフトウエア・ルーチンのフローチヤート、
第19図はセンサー移動ソフトウエア・ルーチン・メニユーのアイコンを示す図、
第20図は窓の大きさ変更ソフトウエア・ルーチンのフローチヤート、
第21図はセンサー合成範囲警報設定のソフトウエア・ルーチンのフローチヤート、
第22図はセンサー合成範囲警報設定のソフトウエア・ルーチンのアイコン・メニユーを示す図、
第23図はライン・ゲージ設定ソフトウエア・ルーチンのフローチヤート、
第24図はライン・ゲージ設定ソフトウエア・ルーチンのフローチヤート、
第25図はライン・ゲージ調整ソフトウエア・ルーチンのフローチヤート、
第26図はライン・ゲージ調整ソフトウエア・ルーチンのアイコン・メニユーを示す図、
第27図は輝度プローブの設定ソフトウエア・ルーチンのフローチヤート、
第28図は輝度プローブの設定ソフトウエア・ルーチンのアイコン・メニユーを示す図、
第29図は映像処理の結果を含む視覚入力モジユールのメモリ内のデータ構成を示す図、
第30図はビデオ・イメージを処理するソフトウエアの概要を示すフローチヤート、
第31図はビデオ・イメージを取り込み、輝度プローブからの出力を解析するプログラムのフローチヤート、
第32図は固定センサー窓の出力を分析するソフトウエア・ルーチンのフローチヤート、
第33図は固定ライン・ゲージの出力を解析するプログラムのフローチヤート、
第34図は各ライン・ゲージにより画定されたイメージの一部を解析するサブルーチンのフローチヤート、
第35図は製作品の水平シフトを補正するためにx方向にセンサーのオフセツトを計算するルーチンのフローチヤート、
第36図は浮動ライン・ゲージにより画定されたビデオ・イメージの一部を分析するプログラムのフローチヤート、
第37図はフローテイング窓センサーにより画定されたビデオ・イメージの一部を分析するプログラムのフローチヤート、
第38図は視覚入力モジユールの2進数化しきい値を調整し、かつてイメージ・プロセツサ中に発生した誤りを報告するルーチンのフローチヤートである。
1……ラツク、
3……プロセツサ・モジユール、
4……入出力モジユール、
5,6……視覚入力モジユール、
11,15……カメラ、
14……ライト・ペン、
41……データ・バス、
68……輝度基準回路、
100……2進数イメージ・プロセツサ、
106〜109……電圧比較器、
124……窓メモリ、
152……ピクセル・カウント回路、
285,286,288,291……アイコン。
【特許請求の範囲】
【請求項1】プログラマブル・コントローラに接続される機器を動作させるためのプログラムを実行するためのプログラム・プロセッサと、ビデオ・イメージ・プロセッサとを含む複数のモジュールを収納し、該モジュールを電気的に相互接続するバック・プレーンを備えたラックを具備する前記プログラマブル・コントローラであって、前記ビデオ・イメージ・プロセッサが下記の構成(ア)から(オ)までを具備していることを特徴とするプログラマブル・コントローラ。
(ア)前記ビデオ・イメージ・プロセッサの動作を制御するプログラムを実行するマイクロプロセッサ、(イ)それぞれが輝度を持つ複数のピクセルによって構成されるビデオ・イメージを、トリガ信号を応答にして取り込む手段、(ウ)前記ビデオ・イメージ内において撮影されるべき対象の位置を特定する手段、(エ)前記ビデオ・イメージ内で所定の特性を持つピクセルをカウントし、そのカウントの結果を出力するための、下記の構成(a)から(e)までを備えたカウント手段、及び(a)前記ビデオ・イメージのピクセルの輝度をしきい値と比較する手段、(b)前記ピクセルの輝度が所定の輝度しきい値以下か又は以上かに応じて、前記ビデオ・イメージ内のピクセルを選択する手段、(c)前記ビデオ・イメージ内で領域を定めるデータを保存するメモリと、(d)前記撮影されるべき対象の位置を特定する手段に応答し、前記ビデオ・イメージにおいて前記領域をシフトさせる手段、(e)前記比較手段(a)毎に選択されたピクセルに応答して、及び前記比較手段(a)によって得られた領域のシフトされたピクセルに応答して、選択されたピクセルに対応した前記シフトされた領域のピクセルをカウントするカウンタ、(オ)前記マイクロプロセッサに応答して、前記プログラム・プロセッサへ前記ビデオ・イメージ・プロセッサが前記ビデオ・イメージの処理を完了した旨の信号を伝え、前記カウント手段の出力を前記ラックのバック・プレーンを介して前記プログラム・プロセッサへ転送する手段。
【請求項2】請求項1に記載のプログラマブル・コントローラにおいて、前記ビデオ・イメージを取り込む手段は前記プログラム・プロセッサからのトリガ信号に応答していることを特徴とするプログラマブル・コントローラ。
【請求項3】請求項1に記載のプログラマブル・コントローラであって、前記ビデオ・イメージにおいてある区域の輝度の変化を測定し、該区域の輝度の変化に応答して前記しきい値を変える手段が更に備えられていることを特徴とするプログラマブル・コントローラ。
【請求項4】請求項1に記載のプログラマブル・コントローラであって、前記対象の位置を特定する手段は、前記ビデオ・イメージにおいて前記対象が基準位置から移動した距離を計算することを特徴とするプログラマブル・コントローラ。
【請求項5】請求項4に記載のプログラマブル・コントローラにおいて、前記メモリは前記領域の位置を保存することを特徴とするプログラマブル・コントローラ。
【請求項6】請求項1に記載のプログラマブル・コントローラであって、前記カウント手段の出力がある範囲内にあるか否かを表わす手段が更に含まれていることを特徴とするプログラマブル・コントローラ。
【請求項7】ビデオ・イメージを処理するビデオ・イメージ処理装置であって、1のビデオ信号を複数の2進数イメージに同時に変換する変換手段と、前記各2進数イメージの領域を画定する手段と、前記画定された領域において決められた2進数値を有するピクセルの数を領域毎に個別的にカウントするカウント手段と、が備えられていることを特徴とするビデオ・イメージ処理装置。
【請求項8】請求項7に記載のビデオ・イメージ処理装置であって、前記各2進数イメージを保存するメモリが更に備えられていることを特徴とするビデオ・イメージ処理装置。
【請求項9】請求項7に記載のビデオ・イメージ処理装置において、前記変換手段は、前記各2進数イメージについて固有をしきい値を保存する手段と、前記ビデオ信号を前記しきい値のそれぞれと比較してそれぞれ2進数イメージを形成する手段を含むことを特徴とするビデオ・イメージ処理装置。
【請求項10】請求項7に記載のビデオ・イメージ処理装置において、前記領域を画定する手段は該領域を表わすイメージの保存するメモリを含むことを特徴とするビデオ・イメージ処理装置。
【請求項11】請求項10に記載のビデオ・イメージ処理装置において、前記カウント手段は、前記各2進数イメージと該2進数イメージの中で画定された前記領域を表わすイメージとを比較する個別的な比較手段と、異なる1つの前記比較手段にそれぞれ対応する個別的な複数のカウンタを備えていることを特徴とするビデオ・イメージ処理装置。
【請求項12】請求項10に記載のビデオ・イメージ処理装置であって、前記ビデオ・イメージにおける対象の位置を特定する特定手段と、該特定手段に応答して、領域イメージの少なくとも1つをシフトさせるシフト手段とを更に備えられていることを特徴とするビデオ・イメージ処理装置。
【請求項13】請求項12に記載のビデオ・イメージ処理装置において、前記メモリはアドレス入力を有し、前記シフト手段は、撮影されるべき対象の所定基準位置からのシフト量に比例するオフセット値を前記領域イメージを保存するメモリのアドレスへ加算する回路を備えた前記メモリをアドレスする手段を含んでいることを特徴とするビデオ・イメージ処理装置。
【請求項14】請求項9に記載のビデオ・イメージ処理装置において、前記ビデオ・イメージにおいてある区域の輝度の変化を測定し、該区域の輝度の変化に応答して前記しきい値を変える手段が更に備えられていることを特徴とするビデオ・イメージ処理装置。
【請求項1】プログラマブル・コントローラに接続される機器を動作させるためのプログラムを実行するためのプログラム・プロセッサと、ビデオ・イメージ・プロセッサとを含む複数のモジュールを収納し、該モジュールを電気的に相互接続するバック・プレーンを備えたラックを具備する前記プログラマブル・コントローラであって、前記ビデオ・イメージ・プロセッサが下記の構成(ア)から(オ)までを具備していることを特徴とするプログラマブル・コントローラ。
(ア)前記ビデオ・イメージ・プロセッサの動作を制御するプログラムを実行するマイクロプロセッサ、(イ)それぞれが輝度を持つ複数のピクセルによって構成されるビデオ・イメージを、トリガ信号を応答にして取り込む手段、(ウ)前記ビデオ・イメージ内において撮影されるべき対象の位置を特定する手段、(エ)前記ビデオ・イメージ内で所定の特性を持つピクセルをカウントし、そのカウントの結果を出力するための、下記の構成(a)から(e)までを備えたカウント手段、及び(a)前記ビデオ・イメージのピクセルの輝度をしきい値と比較する手段、(b)前記ピクセルの輝度が所定の輝度しきい値以下か又は以上かに応じて、前記ビデオ・イメージ内のピクセルを選択する手段、(c)前記ビデオ・イメージ内で領域を定めるデータを保存するメモリと、(d)前記撮影されるべき対象の位置を特定する手段に応答し、前記ビデオ・イメージにおいて前記領域をシフトさせる手段、(e)前記比較手段(a)毎に選択されたピクセルに応答して、及び前記比較手段(a)によって得られた領域のシフトされたピクセルに応答して、選択されたピクセルに対応した前記シフトされた領域のピクセルをカウントするカウンタ、(オ)前記マイクロプロセッサに応答して、前記プログラム・プロセッサへ前記ビデオ・イメージ・プロセッサが前記ビデオ・イメージの処理を完了した旨の信号を伝え、前記カウント手段の出力を前記ラックのバック・プレーンを介して前記プログラム・プロセッサへ転送する手段。
【請求項2】請求項1に記載のプログラマブル・コントローラにおいて、前記ビデオ・イメージを取り込む手段は前記プログラム・プロセッサからのトリガ信号に応答していることを特徴とするプログラマブル・コントローラ。
【請求項3】請求項1に記載のプログラマブル・コントローラであって、前記ビデオ・イメージにおいてある区域の輝度の変化を測定し、該区域の輝度の変化に応答して前記しきい値を変える手段が更に備えられていることを特徴とするプログラマブル・コントローラ。
【請求項4】請求項1に記載のプログラマブル・コントローラであって、前記対象の位置を特定する手段は、前記ビデオ・イメージにおいて前記対象が基準位置から移動した距離を計算することを特徴とするプログラマブル・コントローラ。
【請求項5】請求項4に記載のプログラマブル・コントローラにおいて、前記メモリは前記領域の位置を保存することを特徴とするプログラマブル・コントローラ。
【請求項6】請求項1に記載のプログラマブル・コントローラであって、前記カウント手段の出力がある範囲内にあるか否かを表わす手段が更に含まれていることを特徴とするプログラマブル・コントローラ。
【請求項7】ビデオ・イメージを処理するビデオ・イメージ処理装置であって、1のビデオ信号を複数の2進数イメージに同時に変換する変換手段と、前記各2進数イメージの領域を画定する手段と、前記画定された領域において決められた2進数値を有するピクセルの数を領域毎に個別的にカウントするカウント手段と、が備えられていることを特徴とするビデオ・イメージ処理装置。
【請求項8】請求項7に記載のビデオ・イメージ処理装置であって、前記各2進数イメージを保存するメモリが更に備えられていることを特徴とするビデオ・イメージ処理装置。
【請求項9】請求項7に記載のビデオ・イメージ処理装置において、前記変換手段は、前記各2進数イメージについて固有をしきい値を保存する手段と、前記ビデオ信号を前記しきい値のそれぞれと比較してそれぞれ2進数イメージを形成する手段を含むことを特徴とするビデオ・イメージ処理装置。
【請求項10】請求項7に記載のビデオ・イメージ処理装置において、前記領域を画定する手段は該領域を表わすイメージの保存するメモリを含むことを特徴とするビデオ・イメージ処理装置。
【請求項11】請求項10に記載のビデオ・イメージ処理装置において、前記カウント手段は、前記各2進数イメージと該2進数イメージの中で画定された前記領域を表わすイメージとを比較する個別的な比較手段と、異なる1つの前記比較手段にそれぞれ対応する個別的な複数のカウンタを備えていることを特徴とするビデオ・イメージ処理装置。
【請求項12】請求項10に記載のビデオ・イメージ処理装置であって、前記ビデオ・イメージにおける対象の位置を特定する特定手段と、該特定手段に応答して、領域イメージの少なくとも1つをシフトさせるシフト手段とを更に備えられていることを特徴とするビデオ・イメージ処理装置。
【請求項13】請求項12に記載のビデオ・イメージ処理装置において、前記メモリはアドレス入力を有し、前記シフト手段は、撮影されるべき対象の所定基準位置からのシフト量に比例するオフセット値を前記領域イメージを保存するメモリのアドレスへ加算する回路を備えた前記メモリをアドレスする手段を含んでいることを特徴とするビデオ・イメージ処理装置。
【請求項14】請求項9に記載のビデオ・イメージ処理装置において、前記ビデオ・イメージにおいてある区域の輝度の変化を測定し、該区域の輝度の変化に応答して前記しきい値を変える手段が更に備えられていることを特徴とするビデオ・イメージ処理装置。
【第19図】
【第1図】
【第2図】
【第26図】
【第3A図】
【第3B図】
【第4図】
【第5図】
【第6図】
【第7図】
【第8図】
【第9図】
【第10図】
【第14図】
【第15図】
【第11図】
【第12図】
【第22図】
【第24図】
【第28図】
【第13図】
【第16図】
【第17図】
【第18図】
【第20図】
【第21図】
【第23図】
【第25図】
【第27図】
【第29図】
【第30図】
【第31図】
【第32図】
【第33図】
【第34図】
【第35図】
【第36図】
【第37図】
【第38図】
【第1図】
【第2図】
【第26図】
【第3A図】
【第3B図】
【第4図】
【第5図】
【第6図】
【第7図】
【第8図】
【第9図】
【第10図】
【第14図】
【第15図】
【第11図】
【第12図】
【第22図】
【第24図】
【第28図】
【第13図】
【第16図】
【第17図】
【第18図】
【第20図】
【第21図】
【第23図】
【第25図】
【第27図】
【第29図】
【第30図】
【第31図】
【第32図】
【第33図】
【第34図】
【第35図】
【第36図】
【第37図】
【第38図】
【特許番号】第2925119号
【登録日】平成11年(1999)5月7日
【発行日】平成11年(1999)7月28日
【国際特許分類】
【出願番号】特願昭63−135354
【出願日】昭和63年(1988)6月1日
【公開番号】特開平1−65605
【公開日】平成1年(1989)3月10日
【審査請求日】平成1年(1989)9月5日
【審判番号】平6−12672
【審判請求日】平成6年(1994)7月25日
【出願人】(999999999)アレン−ブラッドリィ カンパニー,インコーポレーテッド
【代理人】
【氏名又は名称】 浅村 皓 (外2名)
【合議体】
【参考文献】
【文献】特開 昭57−15378(JP,A)
【文献】特開 昭58−189783(JP,A)
【文献】特開 昭58−129888(JP,A)
【文献】特開 昭58−189781(JP,A)
【登録日】平成11年(1999)5月7日
【発行日】平成11年(1999)7月28日
【国際特許分類】
【出願日】昭和63年(1988)6月1日
【公開番号】特開平1−65605
【公開日】平成1年(1989)3月10日
【審査請求日】平成1年(1989)9月5日
【審判番号】平6−12672
【審判請求日】平成6年(1994)7月25日
【出願人】(999999999)アレン−ブラッドリィ カンパニー,インコーポレーテッド
【代理人】
【氏名又は名称】 浅村 皓 (外2名)
【合議体】
【参考文献】
【文献】特開 昭57−15378(JP,A)
【文献】特開 昭58−189783(JP,A)
【文献】特開 昭58−129888(JP,A)
【文献】特開 昭58−189781(JP,A)
[ Back to top ]