トップ :: B 処理操作 運輸 :: B41 印刷;線画機;タイプライタ−;スタンプ




【発明の名称】 印刷状態検査方法ならびに文字検査方法、およびこれらの方法を用いた検査装置
【発明者】 【氏名】松竹 治
【住所又は居所】京都府京都市下京区塩小路通堀川東入南不動堂町801番地 オムロン株式会社内

【要約】 【課題】1印刷ライン単位で発生する印刷不良に特化した検査を実施する。

【解決手段】検査対象の文字列の画像から各文字を切り出した後、これらの文字に個別に文字領域Rnを設定する、各文字領域Rnの高さは、文字の高さの最大値Ysizeに統一される。文字領域Rn間の対応する水平ラインの組み合わせH0y,H1y,・・・毎に、これらのライン上の黒画素の累計値P(y)を求める処理を実行する。さらに、これら累計値から極大値を抽出する処理、y軸方向における所定幅毎の累計値P(y)を加算して、その中の最小値を抽出する処理を実行する。抽出された各値および文字領域Rnの高さYsizeをそれぞれ所定のしきい値と比較することにより、ドットの埋まりやドットの抜けの有無を判別する。
【特許請求の範囲】
【請求項1】
複数のノズルを有する印刷ヘッドを用いて印刷された印刷体を撮像し、得られた画像を用いて前記各ノズルの印刷ラインに印刷不良が発生していないかどうかを検査する方法であって、
前記印刷体の画像において、前記印刷ラインの方向および印刷ラインに直交する方向にそれぞれ所定幅の処理範囲を設定する第1のステップと、
前記第1のステップで設定された処理範囲により特定される処理対象領域において、前記印刷ラインの方向に沿って複数の領域を設定する第2のステップと、
前記第2のステップで設定された各領域の前記印刷ラインに直交する方向における位置を、それぞれその領域と画像上の印刷範囲との位置関係に基づき調整するとともに、前記印刷ラインに直交する方向における各領域の長さを、この方向における印刷範囲のうち前記処理対象領域において最大となる範囲に基づき調整された長さに統一する第3のステップと、
前記第3のステップの調整後の各領域間において、前記印刷ラインの方向に沿う各ライン毎の画像データを、前記印刷ラインに直交する方向における相対位置が対応するもの毎に組み合わせ、各組み合わせにかかる画像データを組毎に処理する第4のステップと、
前記第4のステップの各組に対する処理結果を用いて前記各印刷ラインにおける印刷不良の有無を判別する第5のステップとを、実行することを特徴とする印刷状態検査方法。
【請求項2】
前記第1のステップでは、少なくとも前記印刷ラインの方向における処理範囲の設定情報の入力を受け付けて、入力された情報に対応する方向における処理範囲を設定する請求項1に記載された印刷状態検査方法。
【請求項3】
複数のノズルを有する印刷ヘッドを用いて印刷された文字列を撮像し、得られた画像を用いて前記文字列に沿って印刷不良が発生していないかどうかを検査する方法であって、
検査対象の文字列の画像から前記文字列を構成する各文字を個別に切り出す第1のステップと、
前記第1のステップで切り出された各文字に対し、前記文字列に直交する方向における長さが等しく、かつその長さが前記文字列に直交する方向における各文字の長さの中の最大値に基づき調整された領域を個別に設定する第2のステップと、
前記領域内の画像データを前記文字列の方向に沿って投影する処理を領域毎に実行して複数の投影値を得るとともに、前記文字列に直交する方向において領域間で対応関係にあるラインの組み合わせ毎にその組み合わせにかかる投影値を累計する第3のステップと、
前記第3のステップで得た各累計値を用いて前記文字列に沿う印刷不良の有無を判別する第4のステップとを、実行することを特徴とする文字検査方法。
【請求項4】
前記第4のステップでは、各累計値から極大値を抽出する処理と、抽出された極大値を所定のしきい値と比較する処理とを実行し、前記極大値がしきい値より大きいという比較結果を得たときに、前記文字列の方向に沿ってドットの埋まりが生じていると判別する請求項3に記載された文字検査方法。
【請求項5】
前記第4のステップでは、前記文字列に直交する方向に沿う所定範囲毎に、その範囲に対応する累計値を加算する処理と、前記加算処理により得られた加算値の最小値を所定のしきい値と比較する処理とを実行し、前記加算値がしきい値より小さいという比較結果を得たときに、前記文字列の方向に沿ってドットの抜けが生じていると判別する請求項3に記載された文字検査方法。
【請求項6】
請求項3〜6のいずれかに記載された文字検査方法において、
前記第2のステップで設定された各領域の文字列に直交する方向に沿う長さを所定のしきい値と比較し、前記長さがしきい値より小さいという比較結果を得たときに、前記文字列の端縁でドットの抜けが生じていると判別する第5のステップを実行することを特徴とする文字検査方法。
【請求項7】
複数のノズルを有する印刷ヘッドを用いて印刷された印刷体を撮像して得られた画像を入力する画像入力手段と、
前記画像入力手段により入力された画像において、前記各ノズルの印刷ラインの方向および印刷ラインに直交する方向にそれぞれ所定幅の処理範囲を設定する処理範囲設定手段と、
各方向の処理範囲により特定される領域を処理対象領域として設定した後、この処理対象領域において、前記印刷ラインの方向に沿って複数の領域を設定する領域設定手段と、
前記領域設定手段により設定された各領域の前記印刷ラインに直交する方向における位置を、それぞれその領域と画像上の印刷範囲との位置関係に基づき調整するとともに、前記印刷ラインに直交する方向における各領域の長さを、この方向における印刷範囲のうち前記処理対象領域において最大となる範囲に基づき調整された長さに統一する領域調整手段と、
前記領域調整手段による調整後の各領域間において、前記印刷ラインの方向に沿う各ライン毎の画像データを、前記印刷ラインに直交する方向における相対位置が対応するもの毎に組み合わせ、各組み合わせにかかる画像データを組毎に処理する画像処理手段と、
前記画像処理手段の各組に対する処理結果を用いて前記各印刷ラインにおける印刷不良の有無を判別する判別手段と、
前記判別手段による判別結果を出力する出力手段とを具備して成る印刷状態検査装置。
【請求項8】
請求項7に記載された印刷状態検査装置において、
少なくとも前記印刷ラインの方向における処理範囲の設定情報を入力するための入力手段を備え、
前記処理範囲設定手段は、前記入力手段から入力された設定情報を用いて、その情報に対応する方向における処理範囲を設定する印刷状態検査装置。
【請求項9】
複数のノズルを有する印刷ヘッドを用いて印刷された文字列を撮像して得られた画像を入力する画像入力手段と、
前記画像入力手段により入力された画像から前記文字列を構成する各文字を切り出す文字抽出手段と、
前記文字抽出手段により切り出された各文字に対し、前記文字列に直交する方向における長さが等しく、かつその長さが前記文字列に直交する方向における各文字の長さの中の最大値に基づき調整された領域を個別に設定する領域設定手段と、
前記領域設定手段により設定された領域内の画像データを前記文字列の方向に沿って投影する処理を領域毎に実行して複数の投影値を得るとともに、前記文字列に直交する方向において領域間で対応関係にあるラインの組み合わせ毎にその組み合わせにかかる投影値を累計する投影/累計手段と、
前記ラインの組み合わせ毎に得られた累計値を用いて前記文字列に沿う印刷不良の有無を判別する判別手段と、
前記判別手段による判別結果を出力する出力手段とを具備して成る文字検査装置。
【請求項10】
前記判別手段は、前記投影/累計手段により算出された各累計値から極大値を抽出する手段と、抽出された極大値を所定のしきい値と比較する手段とを具備し、前記極大値がしきい値より大きいという比較結果を得たとき、前記文字列の方向に沿ってドットの埋まりが生じていると判別する請求項9に記載された文字検査装置。
【請求項11】
前記判別手段は、前記文字列に直交する方向に沿う所定範囲毎にその範囲に対応する累計値を加算する手段と、前記加算処理により得られた加算値の最小値を所定のしきい値と比較する手段とを具備し、前記加算値がしきい値より小さいという比較結果を得たとき、前記文字列の方向に沿ってドットの抜けが生じていると判別する請求項9に記載された文字検査装置。
【請求項12】
請求項9〜11のいずれかに記載された文字検査装置において、
前記領域設定手段により設定された各領域の前記文字列に直交する方向に沿う長さを所定のしきい値と比較する処理を実行し、前記長さがしきい値より小さいという比較結果を得たとき、文字列の端縁でドットの抜けが生じていると判別する第2の判別手段を具備し、
前記出力手段は、前記第2の判別手段による判別結果を含むデータを出力するように設定されて成る文字検査装置。
【発明の詳細な説明】【技術分野】
【0001】
この発明は、少なくとも1つの文字を含む文字列やマークなどの印刷体を撮像し、得られた画像をコンピュータで処理することにより、前記印刷体に印刷不良がないかどうかを判断する検査を実行する技術分野に属する。特にこの発明は、所定数のノズルが一列に配置された印刷ヘッドを用いて印刷された印刷体を検査対象として、各ノズルの印刷ラインに印刷不良が発生していないかどうかを検査する方法および装置に関する。
【背景技術】
【0002】
加工食品などのパッケージに記される製造年月日、賞味期限、製品コードなどの文字列は、一般にインクジェットプリンタにより印刷される。この種の目的に使用される工業用のインクジェットプリンタは、所定数のノズルが縦一列に配置された印刷ヘッドを具備するもので、印刷対象の文字に応じてインクを噴き出させるノズルを選択しながら印刷動作を行うように設定されている(以下、1つのノズルによりドットが印刷される対象となる帯状領域のことを「印刷ライン」という。)。
【0003】
上記のようにドット印刷された文字列を対象とする従来の検査では、一般に、パターンマッチングの手法を用いた検査を実行するようにしている(特許文献1参照。)。
【0004】
【特許文献1】特開2003−187187号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
インクジェットプリンタにより印刷を行う場合、いずれか1つのノズルに不良が発生すると、そのノズルに対応する印刷ラインに常にドットが打たれる不良(以下、これを「ドットの埋まり」という。)、または前記ノズルに対応する印刷ラインに全くドットが打たれない不良(以下、これを「ドットの抜け」という。)が生じることがある。
【0006】
図17は、上記した印刷不良の例を示す。
図中の左側はドットの埋まりが発生した例を、右側はドットの抜けが発生した例を示すもので、それぞれ文字列の上端、中央、下端に不良が発生した例を示す。いずれの例も、細線枠で囲まれた部分が不良発生部位である。なお、ドットの埋まり、抜けとも、インクが噴出される際に生じるものであるので、文字間の空白部分に印刷不良が生じることはない。
【0007】
ところで、前記特許文献1にも記載されているように、食品のパッケージなどでは、印刷面が完全に平坦ではないことから、印刷される文字列に歪みが生じることが多いが、その多くは読取可能なものである。このような事情に鑑み、現場では、パターンマッチングにおける判定基準値を甘く設定する傾向がある。しかしながら、判定基準値を甘くすると、前記図17に示したような1印刷ラインにわたって不良が生じた文字列に対しても、良判定がなされてしまう、という不具合が生じる。
【0008】
この発明は、上記問題点に着目してなされたもので、1印刷ライン単位で発生する印刷不良に特化した検査を実施できるようにすることを目的とする。
【課題を解決するための手段】
【0009】
この発明にかかる印刷状態検査方法は、複数のノズルを有する印刷ヘッドを用いて印刷された印刷体を撮像し、得られた画像を用いて前記各ノズルの印刷ラインに印刷不良が発生していないかどうかを検査するものである。
この方法では、前記印刷体の画像において、前記印刷ラインの方向および印刷ラインに直交する方向にそれぞれ所定幅の処理範囲を設定する第1のステップ;前記第1のステップで設定された処理範囲により特定される処理対象領域において、前記印刷ラインの方向に沿って複数の領域を設定する第2のステップ;前記第2のステップで設定された各領域の前記印刷ラインに直交する方向における位置を、それぞれその領域と画像上の印刷範囲との位置関係に基づき調整するとともに、前記印刷ラインに直交する方向における各領域の長さを、この方向における印刷範囲のうち前記処理対象領域において最大となる範囲に基づき調整された長さに統一する第3のステップ;前記第3のステップの調整後の各領域において、前記印刷ラインの方向に沿う各ライン毎の画像データを、前記印刷ラインに直交する方向における相対位置が対応するもの毎に組み合わせ、各組み合わせにかかる画像データを組毎に処理する第4のステップ;前記第4のステップの各組に対する処理結果を用いて前記印刷ラインにおける印刷不良の有無を判別する第5のステップ;の各ステップを実行するようにしている。
【0010】
上記において、前記印刷ヘッドの各ノズルは、一列に並べて配置されるのが望ましいが、印刷ラインが重なり合うことがなければ、ノズルの並びに若干のばらつきがあってもよい。これは以下の方法、装置でも同様である。
「印刷ラインの方向」とは、前記した印刷ラインの長さ方向のことであり、各ノズルの並び方向に直交する方向と考えることができる。また、「印刷ラインに直交する方向」は、各ノズルの並び方向に沿う方向に相当すると考えることができる。印刷対象が文字列である場合には、一般に、文字列を構成する各文字が印刷ラインに沿って並ぶように印刷される。ただし、文字列と印刷ラインとの関係は、これに限定されるものではなく、印刷ラインに直交する方向に沿って各文字が並ぶように印刷することもできる。
【0011】
なお、実際の印字ラインには、ワークの形状による歪みが生じる可能性があるが、画像処理の上での印字ラインは直線状であると仮定する。
以下では、各ノズルが縦並びに配置されるものとして、画像上の印刷ラインの方向を水平方向(x軸方向)、印刷ラインに直交する方向を垂直方向(y軸方向)として説明する。各ノズルが横並びに配置される場合には、印刷ラインの方向をy軸方向に、印刷ラインに直交する方向をx軸方向に、置き換えて考えればよい。
【0012】
前記第1のステップでは、x,yの各軸ともに、あらかじめ定めた所定幅の処理範囲を設定することができる。この処理範囲は、印刷範囲全体を含む長さに設定することができるが、これに限らず、印刷範囲の一部を含む長さに設定することもできる。
また、印刷体が文字列である場合には、この文字列に沿う方向に対応する処理範囲の長さを、1文字以上の任意数の文字を含む長さに設定することができる。また、このx軸方向における処理範囲の始端位置は、文字列の先頭に限らず、2番目以後の任意の文字の位置に設定することもできる。一方、文字列の並びに直交する方向(文字の高さ方向または幅方向に対応する。)における処理範囲は、印刷範囲全体が確実に含まれるような大きさに設定するのが望ましい。
なお、印刷範囲とは、印刷体を構成するドットが分布する範囲と考えることができる。
【0013】
第2のステップでは、各方向の処理範囲により特定される処理対象領域において、y軸方向における長さが等しい複数の領域をx軸方向に沿って設定することができる。なお、この設定の際には、y軸方向における印刷範囲が確実に含まれるように、y軸方向における各領域の位置および長さを設定するのが望ましい。たとえば、処理対象領域内の画像データをx軸に沿って投影することにより、前記ドットの最も高い印刷位置および最も低い印刷位置を抽出し、これらの位置を上端および下端とする領域を設定することができる。
ただし、この段階における各領域のy軸方向における長さは、必ずしも統一する必要はなく、それぞれの領域毎に、その領域に対応する印字範囲が含まれる長さを設定することもできる。
【0014】
この発明にかかる検査対象の印刷体では、その印刷がなされるワークの形状によっては、同じノズルに対応するドットが一列に印刷されない可能性がある。このため、前記処理対象領域では、y軸方向に沿うライン毎の印刷範囲にずれが生じる可能性がある。
第3のステップは、このような印刷範囲のずれに応じて各領域の位置や長さを調整するもので、各領域を、それぞれその領域内の印刷範囲のゆらぎに応じた高さ位置に位置合わせするとともに、各領域のy軸方向における長さを処理対象領域における最大の印刷幅に合わせて統一することができる。これにより、領域における各印刷ラインの相対位置関係を領域間で統一のとれたものにすることができる。
なお、各領域を位置合わせする場合には、たとえば領域の上端を印刷範囲の上端に合わせる処理、または領域の下端を印刷範囲の下端に合わせる処理を実行することができる。
【0015】
第4のステップにおいて、「印刷ラインの方向に沿う各ライン毎の画像データ」とは、各領域をそれぞれx軸方向に沿うライン毎に切り分けて得られる画像データと考えることができる。この第4のステップにより、前記第3のステップでの調整を経た各領域における水平ライン毎の画像データを、1ライン目の画像データを1組目、2ライン目の画像データを2組目・・・というように、領域における相対的な高さ位置が同じライン毎に組み合わせることができる。これらの組のうちの隣り合う複数組分の画像データが、1つの印刷ラインに対応すると考えることができる。
【0016】
各組み合わせにかかる画像データの処理では、たとえば、同じ組の各ラインにおける濃度平均値を算出したり、各ライン毎にそのライン上のドットに対応する画素の数を計数した後、同じ組毎に前記計数値の総計を求めるなどの処理を実行することができる。
第5のステップでは、各組の処理結果をあらかじめ求めた基準データと比較するなどして、各ドット埋まり、ドット抜けなどの不良の有無を判別することができる。
【0017】
上記の印刷状態検査方法では、単独の文字または文字列を検査対象とするほか、所定大きさのマークなど、文字以外の印刷体を検査対象とすることができる。この方法によれば、印刷対象のワークの形状により、印刷ラインに歪みが生じている場合でも、ドットの埋まりやドットの抜けのような1印刷ラインに沿って発生した不良を精度良く検出することができる。
【0018】
上記の印刷状態検査方法にかかる好ましい態様では、前記第1のステップにおいて、少なくとも前記印刷ラインの方向(x軸方向)における処理範囲の設定情報の入力を受け付けて、その入力された情報に対応する方向における処理範囲を設定する。この場合の設定情報としては、処理範囲の設定位置(たとえば処理範囲の始端位置)および幅長さを入力するのが望ましい。
【0019】
なお、上記態様においては、検査対象が文字列である場合には、文字列に直交する方向(y軸方向)における処理範囲の設定情報を、あらかじめ定めておいても良い。またx軸方向における処理範囲を設定した後、この範囲におけるy軸方向の画像をサーチして、ドットの印刷範囲を抽出し、その範囲の上端および下端に基づき、処理範囲を設定してもよい。
【0020】
つぎに、この発明にかかる文字検査方法は、複数のノズルを有する印刷ヘッドを用いて印刷された文字列を撮像し、得られた画像を用いて前記文字列に沿って印刷不良が発生していないかどうかを検査するものである。この方法では、検査対象の文字列の画像から前記文字列を構成する各文字を個別に切り出す第1のステップ;前記第1のステップで切り出された各文字に対し、前記文字列に直交する方向における長さが等しく、かつその長さが前記文字列に直交する方向における各文字の長さの中の最大値に基づき調整された領域を個別に設定する第2のステップ;前記領域内の画像データを前記文字列の方向に沿って投影する処理を領域毎に実行して複数の投影値を得るとともに、前記文字列に直交する方向において領域間で対応関係にあるラインの組み合わせ毎にその組み合わせにかかる投影値を累計する第3のステップ;前記第3のステップで得た各累計値を用いて前記文字列に沿う印刷不良の有無を判別する第4のステップ;の各ステップを実行するようにしている。
【0021】
上記において、「文字列の方向」とは、文字列を構成する各文字の並び方向であり、前記各ノズルの印刷方向に対応すると考えることができる。一般に、この種の文字列は横並びに印刷されるので、以下では文字列の方向を水平方向(x軸方向)、文字列に直交する方向を垂直方向(y軸方向)として説明する。ただし、文字列の方向は、x軸方向に限定されるものではなく、前記ノズルが横並びに配列されている場合には、文字列の方向をy軸方向とすることができる。
なお、文字列の方向がx,yのいずれに設定される場合でも、x軸方向における文字の長さは「文字の幅」に、y軸方向における文字の長さは「文字の高さ」に、それぞれ相当すると考えることができる。
【0022】
前記第1のステップでは、処理対象の画像をx軸、y軸の各方向に沿って投影することにより、文字列に含まれる各文字を切り出すことができる。なお、この明細書では、投影処理では、画像上の一水平ラインまたは一垂直ラインに沿う各画素の濃度値を加算する処理が行われるとして、投影結果を示す濃度の加算値を「投影値」と呼ぶ。処理対象の画像が2値画像の場合の投影処理は、一ライン上における黒画素または白画素の数を計数する処理により行うことができる。よって、その画素数の計数値を前記投影値であると考えることができる。一方、濃淡画像を処理する場合には、文字の画像が背景部分よりも高い階調を持つように設定された画像を処理するのが望ましい。
【0023】
この発明の文字検査方法にかかる処理対象の文字列は、その文字列が印刷されるワークの形状によっては、各文字が横一列に揃った状態で印刷されない可能性がある。この場合、まずy軸方向に沿う投影処理により、処理対象の画像(撮像により得られた画像全体に限らず、文字列を確実に含む一部領域の画像でもよい。以下も同じ。)上の各垂直ライン毎の画像データをx軸に投影し、各文字の幅に応じた領域を切り出すことができる。つぎに、x軸上で切り出された領域毎に、その領域の画像データをx軸方向に沿って投影することにより、y軸方向における文字の位置および高さを求めることができる。
【0024】
第2のステップでは、切り出された文字毎に、その文字の位置に合わせて個別に領域を設定するとともに、各領域の高さを、各文字の高さのうちの最大値に基づき調整された値に統一することができる。ここで、各領域の高さは、前記文字の高さの最大値に等しくするのが望ましいが、これに限らず、前記最大値よりも若干大きな値を設定してもよい。
【0025】
なお、第1のステップでは、y軸方向においては、まず処理対象の画像全体をx軸に沿って投影する処理により、文字列全体が含まれる範囲を切り出した後、文字毎に個別の切り出し処理を行ってもよい。この場合、1度目の投影結果に基づき、文字毎の領域を仮設定するようにしてもよい。
【0026】
上記第2のステップの領域設定によれば、文字列中の文字のy軸方向における位置にばらつきがある場合には、領域の位置にも同様のばらつきが生じることになる。一方、文字列の歪みなどにより各文字の高さにばらつきが生じていても、その最大の高さに基づき各領域の高さが統一されるから、各領域における水平ラインの数を同一にすることができる。よって、領域内における水平ラインの相対位置に基づき、各水平ラインを領域間で対応づけることができる。
【0027】
第3のステップでは、領域毎に、その領域内の画像データをx軸方向に沿って投影することにより、各水平ライン毎の投影値を求めることができる。さらに領域間で対応する水平ラインの組毎に、その組にかかる各投影値の累計値を求めることができる。なお、この第3のステップでは、まず領域毎にその領域内の全ての水平ラインについての投影処理を行ってから、領域間で対応する水平ラインを組み合わせて投影値の累計処理を行うことができる。また、一組分の投影処理を行ってから各投影値を累計する処理を、組の数だけ繰り返すようにしてもよい。
前記第2のステップで、各領域の長さを統一しているので、第3のステップでは、各領域のすべての水平ラインを対応づけて、投影値の累計を求めることができる。
【0028】
なお、前記第2のステップの領域設定によれば、高さにばらつきのある文字に同じ高さの領域が設定されることになるから、補正後の領域間でのラインの対応づけは、実際の印刷のずれを正確に反映していない可能性がある。しかしながら、基本的には縦一列に並んだ所定数のノズルによって印刷が行われることから、文字間の高さのばらつきは僅かなものと考えられる。したがって、1つのドットが複数の画素で表されるならば、水平ラインの対応関係が若干ずれたとしても、領域間で対応づけられた水平ラインの組には、同じ印刷ラインにかかる水平ラインが多数含まれていると考えることができる。したがって、対応する水平ラインの組毎に投影値を累計することにより、各印刷ラインの状態を高い確度で反映したデータを得ることができる。
【0029】
第4のステップでは、このような印刷状態を反映した累計値を用いることにより、文字列に沿う印刷不良を精度良く判別することができる。好ましい一態様においては、第4のステップでは、各累計値から極大値を抽出する処理と、抽出された極大値を所定のしきい値と比較する処理とを実行し、前記極大値がしきい値より大きいという比較結果を得たときに、前記文字列の方向に沿ってドットの埋まりが生じていると判別する。
【0030】
上記において、前記所定のしきい値は、ドット埋まりが生じた印刷ラインの画像データから抽出することができる。たとえば、ドット埋まりが生じた文字列の画像上でドット埋まりの部分にかかる水平ラインに沿って投影処理を行い、得られた投影値をしきい値とすることができる。勿論、得られた投影値に対して余裕度を考慮した値をしきい値とすることもできる。
所定の高さ位置でドット埋まりが生じている場合、その不良発生位置に対応する各文字の水平ラインでは、通常よりも高い投影値が得られると考えられる。上記の態様によれば、投影値が高い水平ラインにかかる累計値が極大値として抽出されるから、この累計値に基づきドット埋まりが生じているか否かを精度良く判別することができる。
【0031】
つぎに、他の好ましい態様においては、前記第4のステップでは、前記文字列に直交する方向に沿う所定範囲毎に、その範囲に対応する累計値を加算する処理と、前記加算処理により得られた加算値のうちの最小値を所定のしきい値と比較する処理とを実行し、前記最小値がしきい値より小さいという比較結果を得たときに、前記文字列の方向に沿ってドットの抜けが生じていると判別する。
【0032】
この態様にかかる所定のしきい値も、ドットの抜けが生じた印刷ラインの画像データから抽出することができる。または、1水平ライン上に1〜2個程度のドットが存在する場合の投影値を計算で求め、得られた値をしきい値としてもよい。
【0033】
なお、ドットの抜けを判別する場合に累計値を加算しているのは、印刷ライン間の空白部にかかる水平ラインでの投影値がゼロに近似する値になる可能性を考慮してのことである。たとえば、加算処理の対象範囲の大きさを隣り合う印刷ライン間の距離に応じた値に設定しておけば、前記空白部分のみにかかる累計値がしきい値と比較されることがなくなり、空白部分がドットの抜けとして誤判別されるのを防止することができる。また、前記の加算処理において、加算処理の範囲を1画素ずつずらすようにすれば、判別の精度をより高めることができる。
【0034】
所定の印刷ラインにおいて、ドットの抜けが生じている場合には、その印刷ラインに対応する範囲の水平ラインにかかる投影値は通常よりも小さい値(2値画像の場合は0に近似する。)になると考えられる。この場合、これらの水平ライン毎の累計値の加算値が最小値となり、さらにこの最小値がしきい値より小さいという比較結果が得られるので、ドットの抜けがあることを精度良く判別することができる。
【0035】
なお、第4のステップでは、ドットの埋まりの有無を判別する処理と、ドットの抜けの有無を判別する処理とを、ともに実行するのが望ましい。
また、これらの判別処理では、1水平ラインに最大数のドットが打たれた場合のそのラインの投影値に基づき、比較対象の数値(極大値または加算値の最小値)を正規化し、同様に正規化されたしきい値を比較するようにしてもよい。この場合、正規化後の極大値や加算値の最小値を表示するようにすれば、ユーザーは、ドットの埋まりや抜けの度合を感覚的に判断することができる。
【0036】
さらに好ましい態様では、前記第4のステップに加え、前記第2のステップで設定された各領域の文字列に直交する方向に沿う長さを所定のしきい値と比較し、前記長さがしきい値より小さいという比較結果を得たときに、文字列の端縁でドットの抜けが生じていると判別する第5のステップを実行する。
【0037】
文字列の上端のドットまたは下端のドットが抜けた場合には、第1のステップの文字の切り出し処理では、文字の正確な長さを抽出できなくなる、と考えることができる。上記第5のステップにかかる所定のしきい値は、ドットの印刷ラインが1つ欠けた場合の文字の長さに基づき設定することができる。第2のステップで補正された後の領域の長さは、各文字の長さの最大値に基づくものであるから、この長さと前記しきい値とを比較することにより、上端または下端にドットの抜けが生じていないかどうかを精度良く判別することができる。特定の文字の長さで判断するのではなく、文字の長さの最大値に基づいて判断するのは、たとえば、“.”(ピリオド)のように文字長さが短い記号等によって誤判断が生じるのを防止するためである。
【0038】
つぎに、この発明にかかる印刷状態検査装置は、複数のノズルを有する印刷ヘッドを用いて印刷された文字列を撮像して得られた画像を入力する画像入力手段と、前記画像入力手段により入力された画像において、前記各ノズルの印刷ラインの方向および印刷ラインに直交する方向にそれぞれ所定幅の処理範囲を設定する処理範囲設定手段と、各方向の処理範囲により特定される領域を処理対象領域として設定した後、この処理対象領域において、前記印刷ラインの方向に沿って複数の領域を設定する領域設定手段と、前記領域設定手段により設定された各領域の前記印刷ラインに直交する方向における位置を、それぞれその領域と画像上の印刷範囲との位置関係に基づき調整するとともに、前記印刷ラインに直交する方向における各領域の長さを、この方向における印刷範囲のうち前記処理対象領域において最大となる範囲に基づき調整された長さに統一する領域調整手段と、前記領域調整手段による調整後の各領域間において、前記印刷ラインの方向に沿う各ライン毎の画像データを、前記印刷ラインに直交する方向における相対位置が対応するもの毎に組み合わせ、各組み合わせにかかる画像データを組毎に処理する画像処理手段と、前記画像処理手段の各組に対する処理結果を用いて前記各印刷ラインにおける印刷不良の有無を判別する判別手段と、前記判別手段による判別結果を出力する出力手段とを具備する。
【0039】
上記において、画像入力手段は、前記印刷体の画像データを取り込む入力インターフェースやA/D変換回路などを含むものとすることができる。前記処理範囲設定手段は前記印刷状態検査方法における第1のステップに、領域設定手段は第2のステップに、領域調整手段は第3のステップに、画像処理手段は第4のステップに、判別手段は第5の各ステップに、それぞれ対応する。これらの手段は、対応するステップを実行するためのプログラムが格納されたコンピュータにより構成することができる。
【0040】
出力手段は、前記判別手段による判別結果を外部機器に出力するためのインターフェース回路とすることができる。判別結果は、単に良/不良の判定結果を表す信号としても良いが、これに限らず、不良の種類や不良の発生位置などを示すデータを出力してもよい。
【0041】
なお、上記の印刷状態検査装置には、処理対象の画像を2値化する2値化処理手段を設けることができる。この2値化処理手段は、専用の回路とすることもできるが、2値化しきい値や2値化処理の手順が設定されたコンピュータにより構成することもできる。
【0042】
好ましい態様にかかる印刷状態検査装置は、少なくとも前記印刷ラインの方向における処理範囲の設定情報を入力するための入力手段を具備し、前記処理範囲設定手段が、前記入力手段から入力された設定情報を用いて、その情報に対応する方向における処理範囲を設定するように構成される。
【0043】
つぎに、この発明にかかる文字検査装置は、複数のノズルを有する印刷ヘッドを用いて印刷された文字列を撮像して得られた画像を入力する画像入力手段;前記画像入力手段により入力された画像から前記文字列を構成する各文字を切り出す文字抽出手段;前記文字抽出手段により切り出された各文字に対し、前記文字列に直交する方向における長さが等しく、かつその長さが前記文字列に直交する方向における各文字の長さの中の最大値に基づき調整された領域を個別に設定する領域設定手段;設定された領域内の画像データを前記文字列の方向に沿って投影する処理を領域毎に実行して複数の投影値を得るとともに、前記文字列に直交する方向において領域間で対応関係にあるラインの組み合わせ毎にその組み合わせにかかる投影値を累計する投影/累計手段;前記ラインの組み合わせ毎に得られた累計値を用いて前記文字列に沿う印刷不良の有無を判別する判別手段;前記判別手段による判別結果を出力する出力手段とを具備する。
【0044】
上記において、画像入力手段および出力手段は、前記印刷状態検査装置と同様の構成とすることができる。文字抽出手段は前記文字検査方法における第1のステップに、領域設定手段は第2のステップに、投影/累計手段は第3のステップに、判別手段は第4の各ステップに、それぞれ対応する。これらの手段は、対応するステップを実行するためのプログラムが格納されたコンピュータにより構成することができる。
【0045】
なお、この文字検査装置において、出力手段が判別結果を表示する場合には、前記した投影値の極大値、最小値、領域の高さなどのパラメータを比較対象のしきい値に対応づけたデータを出力してもよい。
【0046】
また、上記の文字検査装置には、処理対象の画像を2値化する2値化処理手段を設けることができる。この場合、画像に対する投影処理は、1ライン上における黒画素数または白画素数を数える処理として行うことができる。
なお、この2値化処理手段も、前記印刷状態検査装置におけるのと同様に、専用の回路とすることもできるが、2値化しきい値や2値化処理の手順が設定されたコンピュータにより構成することもできる。
【0047】
上記文字検査装置の好ましい態様では、前記判別手段は、投影/累計手段により算出された各累計値から極大値を抽出する手段と、抽出された極大値を所定のしきい値と比較する手段とを具備し、前記極大値がしきい値より大きいという比較結果を得たとき、前記文字列の方向に沿ってドットの埋まりが生じていると判別するように構成される。この構成は、前記文字検査方法の1番目の態様に対応するものである。
【0048】
また文字検査装置の他の好ましい態様では、前記判別手段は、前記文字列に直交する方向に沿う所定範囲毎にその範囲に対応する累計値を加算する手段と、前記加算処理により得られた加算値を所定のしきい値と比較する手段とを具備し、前記加算値がしきい値より小さいという比較結果を得たとき、前記文字列の方向に沿ってドットの抜けが生じていると判別するように構成される。この構成は、前記文字検査方法の2番目の態様に対応するものである。
【0049】
さらに文字検査装置の他の好ましい態様では、前記領域設定手段により設定された各領域の前記文字列に直交する方向に沿う長さを所定のしきい値と比較する処理を実行し、前記前記長さがしきい値よりも小さいという比較結果を得たとき、文字列の端縁でドットの欠落が生じていると判別する第2の判別手段が設けられる。また、前記出力手段は、前記第2の判別手段による判別結果を含むデータを出力するように設定される。この構成は、前記文字検査方法の3番目の態様に対応するものである。
【0050】
上記の印刷状態検査装置および文字検査装置は、検査対象を撮像するための撮像手段(カメラ)や、検査結果を表示するための表示手段(モニタ)に接続することができる。そして、ワーク検出用のセンサなどからトリガ信号を受ける都度、撮像手段を作動させ、生成された画像データを取り込んで前記した各検査方法を実行することにより、各ワークについて、ドット埋まりやドット欠けのような1印刷ラインにわたる不良が発生していないかどうかを判別することができる。また、不良品を取り除く処理を行う装置またはその制御装置に出力手段からの出力を与えるようにすれば、印刷不良ありと判別されたワークを速やかに取り除くことができる。また、ドットの埋まりや抜けのようなインクジェットプリンタの不備による不良は、連続発生する可能性が高いが、インクジェットプリンタ側に出力手段からの出力を与えるようにすれば、不良検出に応じて印刷動作を停止させることができる。
【0051】
なお、上記の撮像手段や表示手段などの周辺機器は、検査装置に一体化することもできる。また、上記文字検査装置には、別途、従来のパターンマッチングによる文字検査を実行するための手段を設定することができる。この場合、前記ドット埋まりやドットの抜けに関する検査の結果とパターンマッチングによる検査の結果とを統合して良否判定を行い、その判定結果を出力するように構成することができる。
【発明の効果】
【0052】
この発明によれば、ドットの埋まりやドットの抜けのような1印刷ラインに沿って発生する印刷不良に特化した検査を精度良く行うことができるので、ドット印刷による文字列を従来にない視点から検査することができる。よって、従来のパターンマッチング法による検査では見落とされる可能性のあった印刷不良を精度良く検出することができる。
【発明を実施するための最良の形態】
【0053】
図1は、この発明が適用された文字検査装置1(以下、単に「検査装置1」という。)の設置例を示す。
この検査装置1は、工場において、所定のワーク10にドット印刷された文字列Aを検査対象として、この文字列Aの所定の印刷ラインにドットの埋まりやドットの抜けが生じていないかどうかを検査するためのものである。ワーク10の搬送ライン7の近傍には、前記文字列を撮像するためのCCDカメラ3(以下、単に「カメラ3」という。)や、ワーク検出用のセンサ4(たとえば光電スイッチ)が設けられる。検査装置1は、これらカメラ3やセンサ4のほか、モニタ5、コンソール6などの周辺機器に接続された状態で、所定位置に設置される。なお、カメラ3よりも上流には、前記文字列を印刷するためのインクジェットプリンタ2が、ワーク検出用センサ9に接続された状態で設置される。また、図中の2aは、このインクジェットプリンタ2の印刷ヘッドである。
【0054】
カメラ3よりも下流には、検査装置1により不良と判断されたワーク10を排出するための不良品排出装置11(排出用のコンベアや不良ワークの回収ボックスなどを具備する。)が配備される。検査装置1は、この不良品排出装置11の動作を制御するプログラマブル・ロジック・コントローラ(PLC)12に接続されており、検査対象の文字列Aについて、良または不良を示す判定信号を出力する。PLC12は、「不良」を示す判定信号を入力すると、不良品排出装置11を作動させて、対象となるワーク10を搬送ライン7外に排出させる。
【0055】
図2は、前記検査装置1の電気構成を示す。この検査装置1は、CPU13を制御主体とするもので、ROM14、RAM15のほか、処理対象の濃淡画像データおよび2値画像データを格納するための画像メモリ16を具備する。なお、ROM14には、後記する検査手順を実行するためのプログラムや2値化処理用のプログラムなどが格納される。
【0056】
検査装置1には、上記のほかに、A/D変換部17、D/A変換部18、入力部19、出力部20などが設けられる。A/D変換部17は、前記カメラ3からの画像信号を取り込んでこれをディジタル変換する。D/A変換部18は、ディジタル変換された濃淡画像をアナログの表示用信号に変換してモニタ5に出力する。また入力部19には、前記コンソール6やワーク検知用センサ4に対するインターフェース回路が、出力部20には、前記PLC12に対するインターフェース回路が、それぞれ含められる。
【0057】
図3は、前記検査対象の文字列の画像100の例を示す。この文字列は、ワーク10の表面状態の影響により各文字が横一列に整列せずに、位置がばらついた状態で印刷されている。なお、以下の処理の具体例は、すべてこの画像100を処理対象とする。
【0058】
図4は、1つの文字列にかかる検査の手順を示す。以下では、この図4に示した各ステップ(以下、「STEP」の略の「ST」を使用する場合もある。)について、必要に応じて他の図面を参照しながら、詳細な処理内容を順に説明する。
【0059】
(1)画像入力・2値化(ステップ1)
図4の手順は、前記センサ4からのワーク検知信号の入力に応じて開始される。ステップ1では、前記カメラ3を作動させてワーク10を撮像し、入力された画像データを2値化処理する。以後の処理は、この2値画像に対して行われる。
【0060】
(2)文字の切り出し(ステップ2)
このステップでは、図5(1)に示すように、前記2値画像上に所定の処理対象領域を設定する。この設定はあらかじめ定められた設定データに基づくもので、画像上の文字列全体を十分に含む大きさの処理対象領域101が設定される。つぎに、x軸,y軸のそれぞれについて、前記処理対象領域101内の画像データをその軸方向に沿って投影することにより、文字列に含まれる各文字を切り出す。なお、この投影処理は、1ライン上の黒画素数を計数する処理として行われる。また、x軸、y軸については、図5の左上のように、印刷ラインに沿う方向をx軸、これに直交する方向をy軸として設定されているものとする。これは、以下の例でも同様である。
【0061】
さらに、ステップ2では、前記切り出し処理に基づき、文字毎に個別の処理領域Rn(n=0,1,2,・・・CN−1;以下、これらの領域を「文字領域」という。)を仮設定する。なお、CNは切り出した文字の個数に相当する。図5(2)は、この領域設定結果を示す。x軸方向においては、前記処理対象領域101内の画像データをy軸方向に沿って投影した結果、文字毎にその文字幅に応じた範囲を切り出すことができる。これに対し、y軸方向においては、最も高い位置に印刷された文字の上端位置Yから最も低い位置に印刷された文字の下端位置Yまでの範囲が抽出されるので、いずれの文字領域Rnも、上端の座標はYに、下端の座標はYに、それぞれ揃えられる。なお、各文字領域Rnの設定範囲は、左上の頂点の座標(X(n),Y)と右下の頂点の座標(X(n),Y)とにより表される。
【0062】
(3)黒画素を含む垂直ラインの総数Pmaxの抽出(ステップ3)
図6は、このステップ6における処理の概要を示す。このステップ3では、前記文字領域Rn毎にその領域内に含まれる垂直ラインLn(y軸に沿うラインであり、長さは文字領域Rnの高さに等しい。)に順に着目しつつ、黒画素を含むラインを抽出する。黒画素が1つでも含まれるラインは抽出対象となる。さらに、このステップ3では、文字領域Rn毎に抽出された垂直ラインの総和を求め、これをPmaxとして設定する。なお、このPmaxは、後記するステップ9の正規化処理で使用されることになる。
【0063】
図7は、ステップ3の詳細な手順を示す。
まず、最初のST301では、前記Pmaxおよび着目対象の文字領域を示すカウンタnを、それぞれ0にセットする。つぎに、ST302では、前記文字領域Rnの1ライン目のx座標にあたるX(n)を着目対象に設定し、ST303において、この座標X(n)に対応する垂直ライン上の黒画素数を計数する。ここで、この計数値が0より大きい場合は、ST304からST305に進み、前記Pmaxを、現在値に1を加算した値に更新する。
【0064】
以下、xの値が領域の右端のX(n)になるまでxの値を更新しつつ、各垂直ラインにおける黒画素数を計数し、その計数値が0より大きい場合には、前記Pmaxをインクリメントする。領域内のすべての垂直ラインにかかる処理が終了すると、ST307からST308に進み、nの値を更新する。以下、ST309において、更新後のnが最終の文字領域を示すCN−1以上であると判断されるまでST302に戻って、上記ST302〜307の手順を実行することにより、各文字領域Rnに含まれる垂直ラインの中から黒画素を含むラインのみを抽出し、そのラインの総数Pmaxを算出する。
【0065】
(4)文字領域の補正(ステップ4)
図8は、このステップ4における処理の概要を示す。このステップ4では、前記ステップ2で仮設定された文字領域Rnの上端位置を、それぞれ対応する文字に合わせるとともに、各文字領域Rnの高さ(y軸方向の領域の長さをいう。)が各文字の高さの中の最大値Ysizeになるように、各文字領域Rnの設定位置や高さを補正している。なお、補正後の文字領域の設定位置や大きさは、左上の頂点の座標(X(n),YT(n))、Ysize、および右下の頂点のx座標X(n)により表される。
【0066】
図9,10は、ステップ4の詳細な手順を示す。図9は、主として、前記Ysizeや領域毎の余白を抽出する処理であり、図10は、これらの設定値に基づき、各文字領域Rnの上端位置を示す座標YT(n)を設定する処理を示す。
【0067】
まず、ST401において、着目対象の文字領域を示すカウンタnを初期値の0に設定し、以下、ST402〜407において、nの値を更新しつつ、文字領域Rn毎に、座標y(Y≦y≦Y)の位置にある水平ライン上の黒画素を計数する処理を実行する(すなわち、x軸方向に沿って領域内の画像データを投影することになる。)。この計数値は、前記カウンタn、および処理対象の水平ラインの位置を示す座標yに基づく2次元配列データS(n,y)として、RAM15内に保存される。
【0068】
つぎに、ST408では、nの値をゼロリセットするとともに、前記Ysizeに初期値0をセットする。この後は、nの値を更新しつつ、文字領域Rn毎にST409〜422の処理を実行することになる。
【0069】
以下、文字領域Rn毎の処理の詳細について説明する。
まず、ST409〜411では、着目対象の文字領域Rnを上端から下方に向けてサーチして、前記黒画素数S(n,y)が0より大きくなる最初の水平ラインのy座標を抽出する。このy座標が抽出されると、つぎのST412では、抽出された座標の値yと現在の文字領域Rnの上端を示す座標Yとの差を求め、これを文字領域Rnにおける上余白YZT(n)としてセットする。
【0070】
つぎに、ST413〜415では、前記文字領域Rnを下端から上方に向けてサーチして、黒画素数S(n,y)が0より大きくなる最初の水平ラインのy座標を抽出する。このy座標が抽出されると、つぎのST416では、前記文字領域Rnの下端を示す座標Yと前記抽出された座標yとの差を求め、これを、文字領域Rnにおける下余白YZB(n)としてセットする。
【0071】
つぎのST417では、上記の処理により設定された上余白YZT(n)と下余白YZB(n)とを加算し、これを余白加算値tmpとする。なお、この余白加算値tmpは各文字領域Rn間で共有される変数であり、ST417が実行される都度、値が書き換えられる。
【0072】
続くST418では、現在の文字領域Rnの長さ(Y−Y+1)から前記余白加算値tmpを差し引くことによって、文字の高さH(n)を求める。ST419では、前記文字の高さH(n)を前記Ysizeと比較する。ここでH(n)がYsizeより大きい場合には、ST420において、このH(n)の値によりYsizeを書き換える。
【0073】
最後の文字領域RCN−1に対する処理が完了してST409〜422のループが終了したとき、各文字の高さのうちの最大の値がYsizeとして設定されていることになる。なお、このYsize、および文字領域Rn毎の上余白YZT(n)、下余白YZB(n)、文字の高さH(n)は、つぎの処理のためにRAM15内に保存される。
【0074】
つぎに、図10のST423では、再びnの値をリセットし、文字領域Rn毎に、以下の手順により補正後の文字領域Rnの上端位置を示すy座標の値:YT(n)を決定する。
まず、ST424では、着目中の文字領域Rnの上余白YZT(n)をチェックする。ここでYZT(n)=0、すなわち上余白がない状態であれば、ST426に進む。このST426では、前記YT(n)に現在の上端位置の座標Yをセットする。
【0075】
YZT(n)>0の場合には、ST424からST425に進み、下余白YZB(n)をチェックする。ここでYZB(n)=0、すなわち下余白がない状態であれば、ST427に進む。このST427では、前記Ysizeと処理対象の文字の高さH(n)との差を現在の文字領域Rnの上端位置Ysに加え、その値をYT(n)としてセットする。
【0076】
一方、YZB(n)>0、すなわち、文字領域Rnの上下ともに余白がある場合には、ST425からST428に進む。ST428では、Ys,Ysize,H(n),YZT(n),YZB(n)の各値を下記の(A)式にあてはめることにより、YT(n)を算出する。
【0077】
【数1】


【0078】
上記の手順により、文字領域Rnの上端位置の座標は、文字の高さや余白の状態に応じて調整された値YT(n)に更新されることになる。なお、いずれの文字領域Rnについても、その高さはYsizeに統一されるから、前記ST426が実行された文字領域Rnでは、文字の下方に(Ysize−H(n))の大きさの余白が設定されることになる。また、ST427を実行された文字領域Rnでは、文字の上方に(Ysize−H(n))の大きさの余白が設定されることになる。さらに、ST428が実行された文字領域Rnでは、文字の上下ともに余白が設定されるが、これら余白の合計値が(Ysize−H(n))に等しくなる。また、H(n)=Ysizeとなる文字領域Rnでは、上下の余白はいずれも0となる。
【0079】
(5)対応する水平ライン上の黒画素数P(y)の累計処理(ステップ5)
このステップ5の処理は、前記補正後の文字領域Rnに対して実行されるもので、図11に、その処理の概要を示している。このステップ5では、文字領域Rn間で対応関係にある水平ラインHny(領域の上端からの距離が同一の位置にある水平ライン;yの範囲は0≦y≦Ysize−1となる。)に順に着目し、これらライン毎の投影処理によりライン上の黒画素数S0y,S1y,・・・S(CN−1)yを求める。さらに、これらライン毎の黒画素数を累計し、その累計値をP(y)としてRAM15内に格納する。
【0080】
(6)極大値PTmax,PMmax,PBmaxの抽出(ステップ6)
前記ステップ5で求められた累計値P(y)は、図12に示すように、y軸に沿うヒストグラムとして表すことができる。ステップ6では、このようなP(y)の配列を走査することにより、3個の極大値PTmax,PMmax,PBmaxを抽出する。極大値PTmaxは、前記ヒストグラムを上方から走査した場合に1番目に抽出される極大値である。反対に、極大値PBmaxは、前記ヒストグラムを下方から走査した場合に1番目に抽出される極大値である。また、極大値PMmaxは、極大値PTmaxとPBmaxとの間に存在する極大値となる。なお、図12のヒストグラムにおいて、累計値P(y)の値がゼロに近いものは、印刷ライン間の空白部分を反映していると考えることができる。
【0081】
図13,14は、前記極大値PTmax,PMmax,PBmaxの抽出処理にかかる詳細な手順を示す。この手順では、まず最初に、極大値PTmaxを見つけるために、yの値を0とする(ST601)。そして、ST602〜604において、yの値を1ずつ増やしながら、P(y)とP(y+1)とを比較する。ここでP(y)>P(y+1)となったとき、その時点の着目位置yにおける値P(y)は、1つ下の位置における値P(y+1)より大きくなると同時に、1つ上の位置における値P(y−1)に対しても大きくなる。y−1は、このループを前回実行したときのyに相当し、また、このとき現在のyはy+1であり、両者の比較によりST602が「NO」となっているからである(後記するST612〜614でも、これと同様の考えにより極大値PBmaxを抽出する。)。よって、ST602が「YES」となった時点でループを抜けてST605に進み、現在のP(y)の値を極大値PTmaxとして設定する。
【0082】
極大値PTmaxが設定されると、つぎのST606〜608では、この極大値PTaxが得られた位置より下方を走査しつつ、P(y)とP(y+1)との比較を続ける。ここでP(y+1)>P(y)となると、ST609に進み、その時点のP(y+1)を極大値PMmaxとして設定する。ただし、この時点の極大値PMmaxは仮のものである。つぎのST610では、後で極大値PMmaxを確定する処理のために、極大値PMmaxより1つ下方の位置(y+2)を変数ysに保存する。
【0083】
つぎに、ST611では、yの値を最大の(Ysize−1)に設定する。続くST612〜614では、yの値を1つずつ小さくしながら、P(y)とP(y−1)とを比較する。このループにおいて、P(y)>P(y−1)と判断されると、ST612からST615に進み、その時点でのP(y)の値を極大値PBmaxとして設定する。
【0084】
極大値PBmaxが設定されると、つぎのST616〜618では、この極大値PBaxより上方において、引き続きP(y)とP(y−1)とを比較する。ここでP(y−1)>P(y)となると、ループを抜けてST619に進み、その時点での(y−1)の値を変数yeにセットする。以下、ST620〜624では、yの値を前記ysからyeまでの範囲で動かしながら、この範囲におけるP(y)の最大値を抽出し、その値を極大値PMmaxとする。
【0085】
なお、ST602〜604、ST606〜608、ST612〜614、ST616〜618の各ループにおいて、着目可能な範囲内に極大値が見つからなかった場合には、図示しないエラー処理に進む。
【0086】
(7)P(y)の加算処理(ステップ7)
ステップ7でも、前記累計値P(y)を処理対象とする。このステップ7の処理は、前記ヒストグラムのy軸において所定幅wの範囲に含まれる各累計値P(y)を加算する処理に相当する。この加算処理は、yの値を0から順に1つずつ動かしながら実行されるもので、各yの値について求められた加算値は、配列AP(y)に格納される。
【0087】
(8)最小値APminの抽出(ステップ8)
図15は、前記ステップ7で求められた加算値AP(y)を、前記図12と同様のy軸に沿うヒストグラムとして示したものである(ただし、x軸方向におけるスケールは縮小している。)。ステップ8では、この加算値AP(y)を順に比較し、最小値APminを求める。
【0088】
(9)正規化処理(ステップ9)
ステップ9では、ここまでの処理により求められた極大値PTmax,PMmax,PBmax,加算値の最小値APminの各値を、前記ST3で求めたPmaxを用いて正規化する。なお、極大値PTmax,PMmax,PBmaxの正規化では、現在の値を前記Pmaxで除算する。また加算値の最小値APminの正規化では、現在の値を(Pmax×w)により除算する。wは、前記加算値AP(y)の算出の範囲を示すのに使用されたものである。
【0089】
前記Pmaxは、各文字領域Rnにおいてドットに対応する黒画素が少なくとも1つ出現した垂直ラインの総数である。したがって、上記正規化後の各値は、1水平ライン上に出現し得る黒画素の最大値に対して、実際の黒画素がどの程度の割合で現れているかを示すと考えることができるから、ドットの印刷の程度をわかりやすく示すことができる。
【0090】
(10)判定処理(ステップ10)
このステップ10では、前記極大値PTmax,PMmax,PBmax、および加算値の最小値APminについての正規化後の値をそれぞれ所定のしきい値と比較する。各極大値に対応するしきい値は、ドット埋まりが生じた印刷ラインにかかる黒画素数を反映させたもので、いずれかの極大値がしきい値よりも大きくなると、その極大値に対応する位置でドット埋まりが生じているものと判断される。
【0091】
加算値の最小値APminに対応するしきい値は、1〜2個程度のドットが打たれた1印刷ラインにかかる水平ラインの黒画素数を反映させたものとなる。正規化後のAPmiの値がこのしきい値を下回った場合、APminに対応する位置でドット抜けが生じている、と判断されることになる。
【0092】
なお、上記APminは、複数のドット印刷ラインのうち、上下端のライン以外の印刷ラインにおけるドット抜けを抽出するためのものである。ST10では、上下端のラインのドット抜けを判別するために、別途、補正後の文字領域Rnの高さYsizeを用いた判別処理を実行している。
【0093】
前記したように、Ysizeは文字列中の各文字の高さの最大値であるから、上端または下端のいずれかの印刷ラインにドット抜けが発生した場合には、このYsizeは本来の文字の高さよりも低くなると考えられる。
よって、この実施例では、印刷ラインが1つ欠落した場合の文字の高さに基づくしきい値を設定し、このしきい値とYsizeと比較する。ここでYsizeがしきい値より小さい場合には、上端または下端の印刷ラインにおいてドット抜けが発生していると判断されることになる。
【0094】
(11)判定結果出力(ステップ11)
前記ステップ10において、いずれかの位置において、ドット埋まり、またはドット抜けが生じていると判断された場合、ステップ11では、前記PLC12に対し、「不良あり」を示す判定信号を出力する。このほか、このステップ11では、図16のような判定結果表示画面をモニタ5に表示させるようにしている。
【0095】
図16において、上埋まり判定上限値、中埋まり判定上限値、下埋まり判定上限値は、それぞれ前記極大値PTmax,PMmax,PBmaxに対応するものである。また中抜け判定下限値は前記加算値AP(y)の最小値APminに対応し、最下段の上下抜け判定下限値は、前記Ysizeに対応する。
【0096】
図示例では、これら5種類のパラメータについて、それぞれ上記した手順により求めた計測値と判別処理に使用したしきい値とを対応づけて表示している。なお、PTmax,PMmax,PBmax,APminにかかる各数値は、前記正規化後の数値を百分率の単位で表したもので、Ysizeにかかる数値は画素数である。
【0097】
以上、説明した処理によれば、文字列中の各文字に対する文字領域Rnを、y軸上のその文字の位置に合わせて調整するとともに、各文字領域Rnの高さを最大の文字の高さYsizeに合わせるので、各領域Rn間の水平ラインHnyの対応づけを支障なく行うことができ、Ysize個の累計値P(y)を得ることができる。
【0098】
勿論、文字間の高さにばらつきがあり、高さが小さい文字には余白が設定されるため、文字領域Rn間で組み合わせられる水平ラインは、実際の対応関係を忠実に示しているとは言えない。しかしながら、画像上の1つのドットは数画素分の大きさを持つので、印刷ラインについては、同じ印刷ラインにかかる水平ラインを多数含む組み合わせが設定され、また印刷ライン間の空白部分についても、同じ空白部分にかかる水平ラインを多数含む組み合わせが設定されると考えることができる。したがって、前記累計値P(y)によれば、各印刷ラインの印刷状態について、十分に信頼度の高いデータを得ることができ、そのうちの極大値や最小値に基づき、ドットの埋まりやドットの抜けの有無を精度良く判別することができる。
【0099】
また、ドットの抜けについては、所定幅wの範囲に対応する累計値P(y)を加算した値の最小値APminを用いた判別処理を行うので、印刷ライン間の空白部がドットの抜けとして誤抽出するのを防止することができる。加えて、この実施例では、各文字領域の補正のために抽出されたYsizeを用いた判別処理を行うので、上下端のドットの抜けを精度良く判別することができる。
【0100】
なお、前記幅wについては、あらかじめ、印刷不良のないモデルの文字列を撮像して得た画像を用いて求めることができる。この場合、各文字について、前記図4のステップ1〜4と同様の処理を実行してYsizeの値を求め、このYsizeを印刷ラインの数で割った値に基づきwを設定することができる。また、この場合には、一度、設定された値に基づいて図4の検査手順を実行し、前記最小値APminの値によって、wの値を調整するのが望ましい。たとえば、印刷ライン間の空白部が小さい場合には、最小値APminの値が大きくなると考えられるが、この場合には、wの値を小さくなる方向に調整することで対応することができる。また、印刷ライン間の空白部が大きい場合には、最小値APminの値が小さくなると考えられるが、この場合には、wの値を大きくなる方向に調整することで対応することができる。
【0101】
また、図16のように、1水平ラインにおける最大の黒画素数に対する割合により、ドット埋まりやドット抜けの状態を示す場合には、印刷状態と数値との関係を容易に把握することができる。したがって、ST10の判定処理のためのしきい値をユーザー側に数値入力させることも可能である。
【0102】
なお、この実施例の検査装置1では2値画像を処理するようにしたが、これに限らず、ディジタル変換後の濃淡画像を処理してもよい。この場合、前記ST2、ST303、ST403などでの黒画素数を計数する処理は、ライン上の各画素の濃度値を加算する処理に置き換えられることになる。また、ST3では、文字の画像に対応する濃度を有する画素を含む垂直ラインを抽出することになる。
また、濃淡画像についても、前記濃度値の加算に代えて、文字の画像に対応する濃度値を有する画素の数を計数する方法をとれば、2値画像における投影値と同様のデータを得ることができる。
【0103】
また、この実施例の検査装置1では、別途、従来のパターンマッチングによる文字検査も行うことができる。このように複数とおりの方法による検査を行えば、各種の要因による印刷不良を検出することができ、検査の精度を大幅に向上することができる。
【0104】
ところで、上記の実施例では、文字列中の個々の文字が歪む場合までは説明していないが、印刷面の傾きによっては、一文字分の幅範囲においても、印刷ラインに歪みが生じる場合がある。このような場合には、前記文字列の並びに沿う領域を、一文字の幅よりも小さい単位に細分化して、同様の処理を行えばよい。またこの場合には、各領域の幅を処理対象の文字の歪み度合に合わせて設定するようにするのが望ましい。
また、上記の実施例では、文字列を検査対象としたが、マークなどの文字以外の印刷体を検査対象とする場合にも、同様の手法による検査を実施することができる。
【図面の簡単な説明】
【0105】
【図1】この発明にかかる文字検査装置の適用例を示す図である。
【図2】文字検査装置の電気構成を示す図である。
【図3】検査対象の文字列の画像の例を示す図である。
【図4】一連の検査手順を示すフローチャートである。
【図5】文字の切り出し処理と文字領域を仮設定する処理との概要を示す図である。
【図6】黒画素を含む垂直ラインの総数を抽出する処理の概要を示す図である。
【図7】図6の処理の詳細な手順を示すフローチャートである。
【図8】文字領域の補正処理の概要を示す図である。
【図9】図8の処理の詳細な手順を示すフローチャートである。
【図10】図9の続きのフローチャートである。
【図11】対応する水平ライン上の黒画素数を累計する処理の概要を示す図である。
【図12】黒画素数の累計結果を極大値とともに示すヒストグラムである。
【図13】極大値の抽出にかかる手順を示すフローチャートである。
【図14】図13の続きのフローチャートである。
【図15】累計値の加算値をその最小値とともに示すヒストグラムである。
【図16】判定結果の表示画面を示す図である。
【図17】ドットの埋まり、ドットの抜けの不良の例を示す図である。
【符号の説明】
【0106】
A 文字列
Rn 文字領域
1 文字検査装置
2 インクジェットプリンタ
3 カメラ
13 CPU
14 ROM
15 RAM
16 画像メモリ
20 出力部
【出願人】 【識別番号】000002945
【氏名又は名称】オムロン株式会社
【住所又は居所】京都市下京区塩小路通堀川東入南不動堂町801番地
【出願日】 平成16年10月12日(2004.10.12)
【代理人】 【識別番号】100078916
【弁理士】
【氏名又は名称】鈴木 由充

【公開番号】 特開2005−145055(P2005−145055A)
【公開日】 平成17年6月9日(2005.6.9)
【出願番号】 特願2004−297699(P2004−297699)