(57)【特許請求の範囲】
【請求項１】
二次元コードを含む画像を撮像し、撮像した画像の二次元コードから情報を読み取る二次元コード読み取り装置であって、
前記画像において前記二次元コードが撮像されている部分を含む領域から、ラベリング処理を行なって連結成分を抽出する抽出手段と、
前記抽出手段で抽出した連結成分の形態の特徴を表している形態特徴値を算出する形態特徴値算出手段と、
前記形態特徴値算出手段で算出した形態特徴値に基づいて、撮像した二次元コードが、ドットコードであるか否かを判定する判定手段と、
前記判定手段が、撮像した二次元コードがドットコードであると判定した場合、ドットコード専用の読み取り処理を実行する読み取り手段とを含み、
前記形態特徴値算出手段は、前記抽出手段が抽出した連結成分の周長を算出し、算出した周長の統計特徴値を前記形態特徴値として算出し、
前記判定手段は、前記統計特徴値と、その統計特徴値に対して予め設定された統計閾値との比較に基づいて、撮像した二次元コードがドットコードであるか否かを判定することを特徴とする二次元コード読み取り装置。
【請求項２】
請求項１において、
前記判定手段は、統計特徴値と前記統計閾値との比較に加え、前記連結成分の数と連結成分の数に対して予め設定された成分数閾値との比較も行い、連結成分数が前記成分数閾値よりも少ない場合には、撮像した二次元コードはドットコードではないと判定することを特徴とする二次元コード読み取り装置。
【請求項３】
請求項１または２において、
前記抽出手段は、大きさの異なる複数のラベリング領域を抽出し、各ラベリング領域に対してそれぞれ前記ラベリング処理を行い、複数のラベリング領域毎に連結成分を抽出し、
前記形態特徴値算出手段は、複数のラベリング領域毎に前記統計特徴値を算出し、
前記判定手段は、いずれか少なくとも一つのラベリング領域に対する統計特徴値がドットコードであるとの判定条件を満たした場合、撮像した二次元コードがドットコードであると判定することを特徴とする二次元コード読み取り装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、二次元コードに関し、特に、二次元コードがドットで印字されたものであるかどうかを判定する技術に関する。
【背景技術】
【０００２】
二次元コードは様々な場面で利用されており、様々な材質、形状のものに直接印字するダイレクトパーツマーキング（ＤＰＭ）により印字されたコードが、品質管理や流通管理のために利用される機会が多くなっている。
【０００３】
ＤＰＭにおいては、金属や基板等の部材に直接印字することから、レーザーによる彫刻など、部材に合わせた様々な方法を用いる。その中でも一般的な方法として、ドットピーニングによる印字方法がある。
【０００４】
また、二次元コードの読み取り方法においては、一般に、二次元コードに含まれている特徴パターンを検出することで、各セルの位置決め等のその後の処理を行なう。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−２２２５１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ドットピーニングにより印字された二次元コード（以下、ドットコード）では、円形のドットを直線状に並べることにより直線が表現される。つまり、ドットコードでは、直線といっても、直線を形成している各ドットは、隣接するドットと接しておらず、ドットとしての形状を保持している。
【０００７】
ドットコードでは、直線部分における隣接ドット間は、ピーニングされていない部分であり、また、明セルもピーニングされていない部分である。よって、ドットコードでは、ピーニングされていない部分として、互いに隣接するドットの間と明セルとが存在するという特徴がある。
【０００８】
上記特徴があるため、ドットコードに対して通常のコード（各セル形状が正方形のコード）と同じ読み取り方法を用いると、特徴パターンが検出できないとか、明セルとドット間とを間違える等の問題が生じて読み取りが困難となる場合がある。そこで、ドットコード専用の読み取りアルゴリズムを用いてコードの読み取りを行なう。
【０００９】
しかし、ドットコードと通常のコードとが混在する使用環境も考えられ、この場合には、ドットコードかそうでないかにより使用するアルゴリズムを変更して読み取りを行なう必要がある。仮に、ドットコードであるのに、通常のコード用のアルゴリズムを用いてしまうと、読み取りに失敗する可能性が高くなる。
【００１０】
本発明は、この事情に基づいて成されたものであり、その目的とするところは、ドットコードの読み取りに失敗することを抑制できる二次元コード読み取り装置を提供することにある。
【課題を解決するための手段】
【００１１】
その目的を達成するための本発明は、二次元コードを含む画像を撮像し、撮像した画像の二次元コードから情報を読み取る二次元コード読み取り装置であって、前記画像において前記二次元コードが撮像されている部分を含む領域から、ラベリング処理を行なって連結成分を抽出する抽出手段と、前記抽出手段で抽出した連結成分の形態の特徴を表している形態特徴値を算出する形態特徴値算出手段と、前記形態特徴値算出手段で算出した形態特徴値に基づいて、撮像した二次元コードが、ドットコードであるか否かを判定する判定手段と、前記判定手段が、撮像した二次元コードがドットコードであると判定した場合、ドットコード専用の読み取り処理を実行する読み取り手段とを含み、
前記形態特徴値算出手段は、前記抽出手段が抽出した連結成分の周長を算出し、算出した周長の統計特徴値を前記形態特徴値として算出し、前記判定手段は、前記統計特徴値と、その統計特徴値に対して予め設定された統計閾値との比較に基づいて、撮像した二次元コードがドットコードであるか否かを判定することを特徴とする。
【００１２】
ドットコードは、前述したように、直線を形成している各ドットも、ドットとしての形状を保持しているという特徴がある。よって、ドットコードの場合には、ラベリング処理により抽出できる連結成分は、ほとんどがドットであり、その結果、連結成分に対して算出する形態特徴値も、ドットであることを示す値となる。判定手段では、この形態特徴値に基づいて、撮像した二次元コードがドットコードであるか否かを判定することから、精度よくドットコードか否かの判定を行なうことができる。そして、読み取り手段は、判定手段が、撮像した二次元コードがドットコードであると判定した場合には、ドットコード専用の読み取り処理を行なうことから、ドットコードの読み取りに失敗することを抑制できる。
【００１６】
また、この発明では、周長を形態としており、形態の特徴値として、周長の統計特徴値を算出している。ドットコードであれば、連結成分は、ほとんどがドットであることから、複数の連結成分についての周長も、ドット一つの周長と想定されるある一つの長さが多くなるはずである。よって、判定手段において、周長の統計特徴値と、その統計特徴値に対して予め設定された統計閾値との比較に基づいて、撮像した二次元コードがドットコードであるか否かを判定することができる。
【００１７】
なお、統計特徴値としては、周長を所定の階級毎（たとえば１画素毎）に区分し、連結成分の周長を階級別に分類したときの、最大数となった階級における連結成分数や、周長の分散などがある。
【００１８】
請求項２記載の発明では、前記判定手段は、統計特徴値と前記統計閾値との比較に加え、前記連結成分の数と連結成分の数に対して予め設定された成分数閾値との比較も行い、連結成分数が前記成分数閾値よりも少ない場合には、撮像した二次元コードはドットコードではないと判定する。
【００１９】
統計特徴値と統計閾値との比較は、統計数が少なすぎると信頼性に欠けることになる。そこで、この発明では、連結成分数と成分数閾値との比較も行う。連結成分数が成分数閾値よりも少ない場合には、統計特徴値の信頼性が低いため、この比較に基づいてドットコードであると判定したとしても、判定の信頼性は低い。そこで、連結成分数が成分数閾値よりも少ない場合には、撮像した二次元コードはドットコードではないと判定する。これにより、ドットコードであるとの判定結果の信頼性の低下を抑制できる。
【００２０】
請求項３記載の発明では、前記抽出手段は、大きさの異なる複数のラベリング領域を抽出し、各ラベリング領域に対してそれぞれ前記ラベリング処理を行い、複数のラベリング領域毎に連結成分を抽出し、前記形態特徴値算出手段は、複数のラベリング領域毎に前記統計特徴値を算出し、前記判定手段は、いずれか少なくとも一つのラベリング領域に対する統計特徴値がドットコードであるとの判定条件を満たした場合、撮像した二次元コードがドットコードであると判定する。
【００２１】
判定手段によりドットコードか否かの判定を行なう前の段階では、セルサイズも不明であるため、ラベリング領域をある一つの大きさに決めてしまうと、ラベリング領域の大きさがセルサイズに対して大きすぎたり、小さすぎたりする可能性がある。ラベリング領域が小さすぎる場合、ラベリング領域に含まれるセル（ドット）の数が少なくなりすぎて、統計の信頼性に欠けることになる。その一方で、ラベリング領域が大きくても、不要な部分が含まれてしまい、ドットコードであるにもかかわらず、統計特徴値がドットコードの特徴を示す値とならない恐れもある。
【００２２】
そこで、本発明では、大きさの異なる複数のラベリング領域を抽出し、複数のラベリング領域毎に統計特徴値を算出する。そして、いずれか少なくとも一つのラベリング領域に対する統計特徴値がドットコードであるとの判定条件を満たした場合、撮像した二次元コードがドットコードであると判定する。これにより、ドットコードを撮像した場合、いずれかの大きさのラベリング領域における統計特徴値がドットコードであるとの判定条件を満たす可能性が高くなるので、高い精度でドットコードであるか否かの判定ができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施形態となる二次元コード読み取り装置１０の機械的構成を示すブロック図である。
【図２】コード読み取り処理の概要を示すフローチャートである。
【図３】図２のステップＳ３で抽出した連結成分を例示する図であって、ドットコードの例である。
【図４】図２のステップＳ３で抽出した連結成分を例示する図であって、通常コードの例である。
【図５】図３に示すドットコードの画像から求めた周長を統計処理したグラフである。
【図６】図４に示す通常コードの画像から求めた周長を統計処理したグラフである。
【図７】ラベリング領域が小さすぎる場合、この領域に含まれる暗セルの数が少なくなることを説明する図である。
【図８】図７の領域における周長の分布を示すグラフである。
【図９】第２実施形態におけるコード読み取り処理において、第１実施形態と相違する部分を示すフローチャートである。
【発明を実施するための形態】
【００２４】
（第１実施形態）
以下、本発明の実施形態を図面に基づいて説明する。図１は、本発明の実施形態となる二次元コード読み取り装置１０の機械的構成を示すブロック図である。機械的構成は、従来周知の二次元コード読み取り装置と同じである。
【００２５】
図１に示す回路部２０は、図示しないハウジング内に収容されている。この回路部２０は、主に、光学系とコンピュータ系と電源系とから構成されている。光学系は、マーカ光投射器６０、発光ダイオード２１、エリアセンサ２３、結像レンズ２７等から構成されている。
【００２６】
発光ダイオード２１は、ハウジング本体の読取口（図示せず）を介して読み取り面Ｒに向けて照明光Ｌｆを照射可能に構成されている。この読み取り面Ｒには二次元コードなどが記録されている。なお、記録形態としては、印刷、刻印等がある。
【００２７】
エリアセンサ２３は、読み取り面Ｒに照射されて反射した反射光Ｌｒを受光可能に構成されるもので、例えば、Ｃ−ＭＯＳやＣＣＤ等の固体撮像素子である受光素子を数１０万から数１００万個オーダでｍ行ｎ列の２次元に配列して構成されている。受光素子は、受光した光を電気信号に変換して出力する。
【００２８】
このエリアセンサ２３の受光面２３ａは、ハウジング本体外から上述の読取口を介して外観可能に位置しており、エリアセンサ２３は、結像レンズ２７を介して入射する入射光をこの受光面２３ａで受光可能に配置されている。
【００２９】
結像レンズ２７は、外部から読取口を介して入射する入射光を集光してエリアセンサ２３の受光面２３ａに像を結像可能な結像光学系として機能するもので、例えば、鏡筒とこの鏡筒内に収容される複数の集光レンズとにより構成されている。発光ダイオード２１から照射された照明光Ｌｆが二次元コードに反射して読取口に入射する反射光Ｌｒは、結像レンズ２７により集光され、これにより、エリアセンサ２３の受光面２３ａにコード像が結像する。マーカ光投射器６０は、二次元コードの読み取り範囲を示すマーカ光Ｍを読み取り面Ｒに投射する。
【００３０】
次に、コンピュータ系の構成概要を説明する。コンピュータ系は、増幅回路３１、Ａ／Ｄ変換回路３３、メモリ３５、アドレス発生回路３６、同期信号発生回路３８、制御回路４０、操作スイッチ４２、ＬＥＤ４３、ブザー４４、液晶表示器４６、通信インタフェース４８等から構成されている。このコンピュータ系は、前述した光学系によって撮像されたコード像の画像信号をハードウェア的およびソフトウェア的に信号処理し得るものである。また制御回路４０は、二次元コード読み取り装置１０の全体システムに関する制御も行っている。
【００３１】
光学系のエリアセンサ２３から出力される画像信号（アナログ信号）は、増幅回路３１に入力されることで所定ゲインで増幅された後、Ａ／Ｄ変換回路３３に入力されると、アナログ信号からディジタル信号に変換される。そして、ディジタル化された画像信号、つまり画像データ（画像情報）は、メモリ３５に入力されて蓄積される。なお、同期信号発生回路３８は、エリアセンサ２３およびアドレス発生回路３６に対する同期信号を発生可能に構成されており、またアドレス発生回路３６は、この同期信号発生回路３８から供給される同期信号に基づいて、メモリ３５に格納される画像データの格納アドレスを発生可能に構成されている。
【００３２】
メモリ３５は、半導体メモリ装置で、例えばＲＡＭ（ＤＲＡＭ、ＳＲＡＭ等）やＲＯＭ（ＥＰＲＯＭ、ＥＥＰＲＯＭ等）がこれに相当する。またＲＯＭには、画像処理プログラムの他、マーカ光投射器６０、発光ダイオード２１、エリアセンサ２３等の各ハードウェアを制御可能なシステムプログラム等が予め格納されている。
【００３３】
制御回路４０は、二次元コード読み取り装置１０全体を制御可能なコンピュータで、ＣＰＵ、システムバス、入出力インタフェース等からなる。この制御回路４０は、内蔵された入出力インタフェースを介して種々の入出力装置（周辺装置）と接続可能に構成されており、電源スイッチ４１、操作スイッチ４２、ＬＥＤ４３、ブザー４４、液晶表示器４６、通信インタフェース４８、マーカ光投射器６０等が接続されている。
【００３４】
これにより、例えば、コードの読み取り処理、電源スイッチ４１や操作スイッチ４２の監視や管理、またインジケータとして機能するＬＥＤ４３の点灯・消灯、ビープ音やアラーム音を発生可能なブザー４４の鳴動のオンオフ、さらには読み取った二次元コードによるコード内容を画面表示可能な液晶表示器４６の画面制御や外部機器との通信を可能にする通信インタフェース４８の通信制御、マーカ光投射器６０からのマーカ光Ｍの投射制御等を可能にしている。
【００３５】
電源系は、電源スイッチ４１、電池４９等により構成されており、制御回路４０により管理される電源スイッチ４１のオンオフによって、上述した各装置や各回路に、電池４９から供給される駆動電圧の導通や遮断が制御されている。
【００３６】
次に、制御回路４０の読み取り処理について説明する。読み取り処理は、撮像したコード像から文字コードを読み取る処理である。本実施形態の読み取り処理においては、二次元コードが、ドットコードであるかどうかの判定を行ない、判定結果に応じ、その後に用いるアルゴリズムを異ならせる。
【００３７】
図２は、コード読み取り処理の概要を示すフローチャートである。この図２を用いてコード読み取り処理をさらに詳細に説明する。図２の処理は、ユーザ操作によりコードを含む画像が撮像されたことにより開始する。
【００３８】
まず、ステップＳ１では、メモリ３５から撮像データを取得し、従来周知の方法により、撮像した画像から、コード領域を抽出する。このステップＳ１で抽出する領域は、ドットコードか通常コードかを判定する目的であり、コードの正確な境界を抽出する必要はない。たとえば、このステップＳ１では、画像を予め設定した複数の領域に分割し、分割領域毎に、白黒密度を決定する。なお、白黒密度は平均輝度値で表す。この白黒密度が、黒が多いことを示す所定範囲内の密度となっている分割領域を、コード領域として抽出する。
【００３９】
続くステップＳ２では、上記ステップＳ１で抽出したコード領域から、さらにラベンリング領域を抽出する。このラベンリング領域は、次のステップＳ３において、ラベリング処理を行なう領域である。また、本実施形態では、大きさの異なる複数のラベリング領域を抽出する。ある大きさのラベリング領域に対して、抽出する領域の候補が複数存在する場合には、暗セルが多い領域とする。暗セルが多いことの判断は、領域の平均輝度値により行う。また、ラベリング領域の大きさは、予め設定しておくことになる。たとえば、１辺が所定画素数の正方形を１ブロックとして、４ブロック、９ブロック、２５ブロックを、大きさの異なるラベリング領域として抽出する。
【００４０】
大きさの異なる複数のラベリング領域を抽出するのは次の理由による。このステップＳ２を実行する時点では、コードのバージョンやセルサイズの情報が得られておらず、領域内に占めるセルの割合も不明である。コードには、明セル部分も存在し、コードに対して、抽出するラベリング領域が小さい場合には、そのラベリング領域に含まれる暗セルの数が少なくなる可能性がある。その場合、その後の処理の信頼性に欠けることになる。そこで、セルサイズ（ドットサイズ）の大小に対応するため、ラベリング領域も、異なる複数の大きさの領域を抽出するのである。なお、大きいラベリング領域は、大きいセルサイズに対応するためであり、細かな情報は不要である。そこで、サイズの大きい予め定めたラベリング領域に対しては、間引き処理を行なったデータを用いて、ステップＳ３〜Ｓ５を行なう。これにより、処理時間を短くすることができる。
【００４１】
ステップＳ３〜Ｓ５は、ステップＳ２で抽出した各ラベンリング領域に対して行う。まず、特許請求の範囲の抽出手段に相当するステップＳ３では、公知のラベリング処理を行なって連結成分を抽出する。ラベリング処理は公知であるので詳細な説明は省略し、概要のみ説明する。ラベリング処理は、二値化処理した画像において、白の部分（または黒の部分）が連続した画素に同じ番号を割り振る処理である。
【００４２】
図３、４は、このステップＳ３で抽出した連結成分を例示する図であり、図３はドットコードの例、図４は通常コードの例である。
【００４３】
図３に示すように、ドットコードの場合には、各セル（ドット）が分離しているため、それぞれのセル（ドット）が１つの連結成分となる。これに対して、通常セルは矩形であり、互いに隣接する暗セルは接しているため、図４の（１）、（４）、（５）に示すように複数のセルが結合して１つの連結成分となる場合がある。
【００４４】
続くステップＳ４では、ステップＳ３で抽出した各連結成分に対して、輪郭追跡を行なって、周長を求める。続くステップＳ５では、ステップＳ４で求めた周長の統計処理を行う。本実施形態では、これらステップＳ４、Ｓ５が、特許請求の範囲の形態特徴値算出手段に相当する。
【００４５】
ステップＳ６では、ステップＳ５における周長の統計処理結果を用いてセル形状がドットかどうかを判定する。図５は、図３に示すドットコードの画像から求めた周長を統計処理したグラフであり、図６は、図４に示す通常コードの画像から求めた周長を統計処理したグラフである。図５、図６とも、横軸の周長の単位は画素であって、１目盛りは１である。つまり、周長は、１画素を最小単位として求めている。換言すれば、１画素を１階級として周長を区分している。
【００４６】
ドットコードの場合には、図５に示すように、周長は、ドット一つの周長と想定される、ある一つの長さに集中する傾向がある。一方、通常コードの場合には、図６に示すように、周長が、様々な長さに分散する。
【００４７】
よって、ステップＳ６では、図５のような傾向が見られる場合にはドットコードであると判断する。具体的には、ピークにおける連結成分の数、あるいは、分散により判断を行なう。ただし、ラベリング領域が小さすぎる場合、ドットコードであっても、図７に示すように、ラベリング領域に含まれる暗セルの数が少なくなる。ラベリング領域に含まれるセル数が少ないと、図７の上側に示すドットのように、ラベリング領域の境界により一部切り取られてしまったドットの影響が大きくなる。
【００４８】
図８は、図７に示すラベリング領域に対して、連結成分毎に求めた周長の分布を示すグラフである。連結成分数が少なすぎると、この図８に示すように、ドットコードであっても、周長がある一つの長さに集中しない。そこで、セル形状の判定条件には、連結成分数も含ませる。
【００４９】
よって、セル形状の判定条件は、たとえば、下記（１）、（２）の条件とすることができる。下記（１）、（２）のいずれか一方を判定条件としてもよいし、両方を判定条件としてもよい。
判定条件（１）  連結成分数が成分数閾値以上、且つ、周長の分布グラフの最大ピークにおける連結成分の数が所定閾値以上
判定条件（２）  連結成分数が成分数閾値以上、且つ、周長の分散Ｖが所定閾値以下
設定した判定条件が成立する場合には、セル形状がドットであると判定する。なお、上記（１）、（２）のように、２つの判定条件を設定した場合には、いずれか一方が成立した場合に、セル形状がドットであると判定する。また、ステップＳ３〜Ｓ５は、各ラベリング領域に対して行なっており、ステップＳ６における判定も、各ラベリング領域に対して行なう。
【００５０】
各ラベリング領域に対して判定を行ない、全てのラベリング領域に対して判定条件が成立しなかった場合には、通常セルであると判定する。
【００５１】
ステップＳ７では、ステップＳ６において、セル形状をドットと判定したか否かの判断を行なう。ドットと判定していた場合には（Ｓ７：ＹＥＳ）、ステップＳ８へ進み、ドット用の読み取りアルゴリズムを実行するドット用読み取り処理を行なう。一方、通常セルと判定していた場合には（Ｓ７：ＮＯ）、ステップＳ９へ進み、通常セル用読み取り処理を行なう。
【００５２】
以上、説明した本実施形態によれば、ドットコードは、直線を形成している各ドットも、ドットとしての形状を保持しているという特徴を利用してドットコードか否かの判定を行なっている。
【００５３】
具体的には、本実施形態では、ラベリング処理により連結成分を抽出しており（Ｓ３）、この連結成分の周長を統計処理して、周長の分布グラフの最大ピークにおける連結成分数や、周長の分散Ｖを算出している（Ｓ４、Ｓ５）。ドットコードの場合には、ラベリング処理により抽出できる連結成分は、ほとんどがドットであることから、上記最大ピークにおける連結成分数や、周長の分散Ｖも、ドットであることを示す値となる。
【００５４】
セル形状判定（Ｓ６）では、上記最大ピークにおける連結成分数や、周長の分散Ｖに基づいて、撮像した二次元コードがドットコードであるか否かを判定することから、精度よくドットコードか否かの判定を行なうことができる。そして、撮像した二次元コードがドットコードであると判定した場合には（Ｓ７：ＹＥＳ）、ドットコード専用の読み取り処理を行なう（Ｓ８）ことから、ドットコードの読み取りに失敗することを抑制できる。
【００５５】
また、本実施形態では、判定条件（１）、（２）に、「連結成分数が成分数閾値以上」という条件も含ませており、この条件が成立しない場合には、撮像した二次元コードはドットコードではないと判定している（Ｓ６）。これにより、ドットコードであるとの判定結果の信頼性の低下を抑制できる。
【００５６】
また、大きさの異なる複数のラベリング領域を抽出しており（Ｓ２）、複数のラベリング領域毎に周長の統計処理を行なっている（Ｓ４、Ｓ５）。そして、いずれか少なくとも一つのラベリング領域に対して判定条件が成立した場合、撮像した二次元コードがドットコードであると判定している（Ｓ６）。これにより、ドットコードを撮像した場合、いずれかの大きさのラベリング領域に対する統計処理結果がドットコードであるとの判定条件を満たす可能性が高くなるので、高い精度でドットコードであるか否かの判定ができる。
【００５７】
（第２実施形態）
次に、第２実施形態を説明する。第２実施形態は、機械的構成は第１実施形態と同じであり、コード読み取り処理において第１実施形態と相違する。ただし、そのコード読み取り処理も、第１実施形態と類似している。
【００５８】
図９は、第２実施形態におけるコード読み取り処理において、第１実施形態と相違する部分を示すフローチャートである。第２実施形態では、ステップＳ５に続き、ステップＳ５−１を実行する点、および、ステップＳ６に代えて、ステップＳ６−１を実行する点が第１実施形態と相違する。以下、第１実施形態と相違する部分のみ説明する。
【００５９】
ステップＳ５−１では、連結成分の円形度を算出する。連結成分はステップＳ３において複数を抽出しているが、このステップＳ５−１では、複数抽出した連結成分のうち、ステップＳ５で周長の統計処理を行なった結果の最小ピークを対象として円形度を算出する。なお、連結成分の数が１であるものはピークとしないで最小ピークを決定する。連結成分の数が１であるものを除外して決定した最小ピークは、単セル成分であると考えることができる。
【００６０】
この最小ピークに含まれている連結成分に対して、下記式１に示す周知の円形度の式を用いて、円形度を算出する。なお、第２実施形態では、ステップＳ５、Ｓ５−１が、特許請求の範囲の形態特徴値算出手段に相当する。
【００６１】
（式１）  円形度＝（４π×面積）／（周長×周長）
ステップＳ６−１では、ステップＳ５−１で決定した円形度に基づいて、セル形状の判定を行う。具体的には、ステップＳ５−１で算出した円形度が、円形とみなすことができる範囲として予め設定された円形判定範囲内か否かでセル形状の判定を行なう。なお、円形判定範囲は１を挟む範囲であり、実験に基づいて予め設定される。
【００６２】
図３に示した例の場合、円形度が１．０５と、１に近い円形度となる。よって、セル形状はドットであると判定する。一方、図４に示した例では、円形度は０．７８となる。０．７８の場合、円形に近いとは言えず、円形判定範囲から外れることになる。よって、セル形状は、通常セルと判定する。このステップＳ６−１を実行後は、第１実施形態と同じステップＳ７へ進む。
【００６３】
コードによっては、セル形状がドットであっても、打刻ずれや撮像状態等でセルが一部結合してしまう場合もある。セルの一部が結合すると周長が長くなることから、周長の統計処理（第１実施形態のステップＳ５）は、セルの一部が結合してしまうことの影響を受ける。その結果、前述の判定条件（１）、（２）の後半部分の変数となっている「最大ピークにおける連結成分の数」、「周長の分散Ｖ」も、この影響を受けることになる。
【００６４】
これに対して、第２実施形態における円形度は、単セル成分を抽出し、その単セル成分に対して算出している。つまり、もともと、結合しているセルは除外している。そのため、ドット形状のセルの一部が互いに結合してしまっていても、第２実施形態ではその影響は受けない。よって、第２実施形態の方法は、ドット形状のセルの一部が互いに結合してしまっていても、精度よくセル形状がドットかどうかを判定することができる。
【００６５】
以上、本発明の実施形態を説明したが、本発明は上述の実施形態に限定されるものではなく、次の実施形態も本発明の技術的範囲に含まれ、さらに、下記以外にも要旨を逸脱しない範囲内で種々変更して実施することができる。
【００６６】
たとえば、前述の実施形態では、ラベリング領域として、大きさの異なる複数の領域を抽出していたが、ラベリング領域は一つでもよい。また、ラベリング領域の大きさは、ステップＳ１で抽出したコード領域全体でもよいし、そのコード領域の一部分でもよい。
【符号の説明】
【００６７】
１０：二次元コード読み取り装置、      ２０：回路部、      ２１：発光ダイオード、      ２３：エリアセンサ、      ２７：結像レンズ、      ３１：増幅回路、      ３３：Ａ／Ｄ変換回路、      ３５：メモリ、      ３６：アドレス発生回路、      ３８：同期信号発生回路、      ４０：制御回路、      ４１：電源スイッチ、      ４２：操作スイッチ、      ４３：ＬＥＤ、      ４４：ブザー、      ４６：液晶表示器、      ４８：通信インタフェース、      ４９：電池、      ６０：マーカ光投射器
Ｓ３：抽出手段、      Ｓ４、Ｓ５：形態特徴値算出手段、      Ｓ５、Ｓ５−１：形態特徴値算出手段、      Ｓ６：判定手段、      Ｓ７〜Ｓ９：読み取り手段
【図１】
0005810997.tif 000002
【図２】
0005810997.tif 000003
【図３】
0005810997.tif 000004
【図４】
0005810997.tif 000005
【図５】
0005810997.tif 000006
【図６】
0005810997.tif 000007
【図７】
0005810997.tif 000008
【図８】
0005810997.tif 000009
【図９】
0005810997.tif 000010