JP2001307014A - 二次元コード抽出方法 - Google Patents
二次元コード抽出方法Info
- Publication number
- JP2001307014A JP2001307014A JP2000116429A JP2000116429A JP2001307014A JP 2001307014 A JP2001307014 A JP 2001307014A JP 2000116429 A JP2000116429 A JP 2000116429A JP 2000116429 A JP2000116429 A JP 2000116429A JP 2001307014 A JP2001307014 A JP 2001307014A
- Authority
- JP
- Japan
- Prior art keywords
- dimensional code
- block
- detected
- area
- pixels
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/1439—Methods for optical code recognition including a method step for retrieval of the optical code
- G06K7/1447—Methods for optical code recognition including a method step for retrieval of the optical code extracting optical codes from image or text carrying said optical code
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Electromagnetism (AREA)
- General Health & Medical Sciences (AREA)
- Toxicology (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Character Input (AREA)
Abstract
を抽出する二次元コード抽出方法に関し、文字やその他
の画像が含まれた文書から二次元コードをより確実に抽
出することを目的とする。 【構成】読み取られた画像をM×N(ともに正の整数)
単位で走査して、その領域毎に黒画素分布等を求めて、
二次元コードと思われるブロック(A〜D)を検出す
る。そして、検出されたブロックが連続している領域
(D)を検出し、この領域を二次元コード領域として抽
出する。
Description
に二次元コードが印刷された紙面をスキャナ等の画像入
力装置により読み取った画像データから、二次元コード
の画像を自動的に抽出する二次元コード抽出方法に関す
る。
報を埋め込むことができる二次元コードの開発が進み、
実用化され始めている。二次元コードを利用することに
より、文書や画像データ、音声データなどのあらゆる種
類のバイナリデータを二次元コードとして紙面に印刷す
ることが可能になった。
リで伝送したり印刷物として配布する。受け取り側で
は、紙面の二次元コードをイメージスキャナにより画像
データとして読み取って、各二次元コードの復元に対応
したソフトウェアやハードウェアにより元のデータに復
元することができる。
キャナでの読み取りを可能にするものもあり、専用の読
み取り装置が無くても手持ちのスキャナにより読み取っ
て元のデータを復元することができるため、読み取り手
段の汎用性が高いというメリットがある。
面に印刷するのではなく、文書や図表とともに任意の位
置に任意の大きさの二次元コードを紙面に印刷した場
合、汎用のイメージスキャナを使って二次元コード部分
の読み取りを行うと二次元コードに加えて文字や図表の
一部も画像データとして取り込まれる可能性が非常に高
い。
ていると、二次コード復元ソフトウェアやハードウェア
で正常に復元することができないため、イメージスキャ
ナで読み取った画像データから二次元コード部分だけを
抽出しなければならないという課題があった、
力した画像データをM×N画素(M、Nは正の整数)の
矩形のブロック単位に走査し、走査したブロックから所
定の条件を満たすブロックを検出し、検出されたブロッ
クの位置に基づいて二次元コードの位置を検出して入力
画像から二次元コードの画像を抽出する二次元コード抽
出方法により達成される。
素/背景色と黒画素/文字色の比率が所定の範囲内にな
るブロックを検出するようにしてもよい。
ック内の水平ラインおよび/または垂直ライン内の画素
値の変化点の個数の割合が所定の範囲内になるブロック
を検出する、ブロック内の黒画素の連結の仕方に基づい
てブロックを検出する、あるいはブロック内の各ライン
に含まれる黒画素の水平方向の射影または/および垂直
方向の射影の変化の度合いが所定の範囲内になるブロッ
クを検出するようにしてもよいし、これらを組み合わせ
てブロックを検出してもよい。
された連結領域の中でその領域を構成するブロック数が
最大の領域を選択し、,該領域を囲む矩形領域を二次元
コード領域として検出するようにしてもよい。
ック数が所定の範囲内の領域を選択し、選択されたそれ
ぞれを囲む矩形領域を二次元コード領域として検出する
ようにしてもよい。
コード領域内における任意の位置から垂直上下方向およ
び水平左右方向に所定の大きさの矩形ブロック単位に走
査し、走査した矩形内の黒画素数が所定の値以下になる
位置を各方向について検出して検出位置を囲む矩形領域
を二次元コードとして抽出するようにしてもよい。
幅の空白を付与して抽出するようにしてもよい。
コードの傾きを検出し、傾きを補正しながら二次元コー
ド画像を抽出するようにしてもよい。
または左右端それぞれの境界上における複数箇所の座標
値を直線近似して、二次元コードの傾き角度を検出する
ようにすればよい。
像に補正することによって、入力画像の向きを正しく補
正することが可能となる。
形態を説明する。
を特定のアルゴリズムにより画素パターン変換したもの
であり、文書や図等と異なり画像としての見た目の意味
を持たない。一方、画像レベルで見ると、文書や図表を
構成する画素のパターンと二次元コードを構成する画素
パターンの特徴は異なっている。この相違は見た目にも
明らかであり、文書・図表と二次元コードが混在してい
る画像から二次元コード部分を目視により容易に識別で
きる。
次元コードと文書や図表が混在する文書画像を表してお
り、横M画素、縦N画素(いずれも正の整数、M=Nで
あってもよい)のブロック毎に読み取られた画像を走査
した例が図示されている。図中、走査された画像中のブ
ロックは破線で囲まれた矩形で図示されている。また、
実線で囲まれた矩形は、後に詳細を説明する、本実施形
態により抽出されたブロック(特に二次元コードを構成
すると判別されたブロック)を示している。なお、図1
において二次元コードは画像の右下の矩形の領域に相当
し、また、検出されたブロック以外の文書や図表など
は、特に図中には明示していない。
次元コードを構成する画素を「黒画素」、その背景とな
る画素を「白画素」とする。
ドの画素パターンが相違する点に着目した。まず、画像
をブロック単位に走査してブロックごとに二次元コード
(あるいは二次元コードを構成するブロックと推測され
る部分)か否かを検出し、二次元コードの存在確率が高
い部分を探し出すブロックが二次元コードの一部か否か
を判断するためには、ブロック内の黒画素分布を求め
る。これは、二次元コード部分と文字領域とで相違する
ことを利用したものである。 (1)ブロック内の黒画素率により識別 この方法では、二次元コードの黒画素率がブロック単位
でみるとほぼ一定であることを利用する。この際に、ノ
イズやスキャナの特性による変動を考慮し、二次元コー
ドと判断するべきブロック内の黒画素率範囲を予め定め
ておく。この範囲は、あらかじめ二次元コードを走査し
て、その結果に基づいて設定するようにしてもよい。走
査したブロックの黒画素率がこの設定した黒画素率の範
囲内にあれば、そのブロックが二次元コードを構成する
ブロックであると判断する。二次元コードを構成してい
ないブロックについては、黒画素率が二次元コードを構
成するブロックの範囲には入らないため、上記の方法を
用いることにより、二次元コード以外のブロックの多く
を取り除くことができる。 (2)白画素と黒画素との変化点の割合により識別 この方法では、二次元コードの画素の変化パターンがブ
ロック単位で見るとほぼ一様であることを利用する。ブ
ロック内を水平または垂直に1ライン単位に走査し、各
ライン内の画素の変化点、すなわち黒画素から白画素、
または白画素から黒画素に変化した回数を計数し、ブロ
ック全ラインについて求めた変化点の総数をブロックの
総画素数で割った値を「変化点の割合」とする。二次元
コードブロックの変化点の割合を予め調べておき、ノイ
ズやスキャナ特性による変動を考慮して二次元コードと
判断する変化点の割合の範囲を定める。
範囲内にあれば二次元コードを構成するブロックと判断
する。これにより、二次元コード以外のブロックの多く
が取り除かれる。 (3)ブロック内の黒画素の連結の仕方で識別 二次元コード内の黒画素はブロック内でほぼ一様に分布
するのに対し、文字を含むブロックでは黒画素により文
字が構成されるため、黒画素が局所的にかたまって存在
している。この方法では、上記した画像の特徴を二次元
コード検出に利用する。 (4)ブロック内の黒画素の射影の変動から識別 変化点の場合と同様に、二次元コード内の画素分布がほ
ぼ一様である。ブロックを水平または垂直に1ライン単
位に走査し、各ラインに含まれる黒画素数を計数するこ
とで該ブロックの射影を得る。二次元コードのブロック
の場合には、画素分布がほぼ一様であることからライン
間の射影の変化が小さく、文書や図表の場合には、黒画
素分布が一様でないことからライン間で射影の変化が大
きくなる。
射影の変動の範囲を定めておき、走査したブロックの射
影の変動がこの範囲内であれば二次元コードのブロック
と判断する。これにより、二次元コード以外のブロック
の多くを取り除くことができる。
記(1)〜(4)の中から2つ以上の方法を組み合わせ
ることで、二次元コードブロックの検出精度を大幅に向
上させることができる。
コードを構成するブロックを検出したとしても、二次元
コードとして検出されたブロックの中には、二次元コー
ド以外の画像が含まれる可能性がある。これは、一つの
ブロック単位でみた場合、そのブロックが二次元コード
ではないにもかかわらず、上記の黒画素分布の条件を満
たしてしまうことがあるためである。しかし、これらの
二次元コードを構成していない、言わば誤検出されたブ
ロックは、自分自身の周辺のブロックが二次元コードと
して検出される条件を満たしていない可能性が高いと考
えられる。そのため、このようなブロックに関しては、
二次元コードとして検出されたブロックが他のブロック
から孤立して存在したり(図1A)、数個程度のブロッ
クが隣接して検出される(図1B、C)に過ぎない。
次元コードとして検出されるブロックの数がは二次元コ
ード領域外に比べて多くなるため、検出されたブロック
が図1のDのように多く隣接して繋がりあっている。
ロックのうち、隣接して連結するブロックの個数が最大
となる領域を検出し、その領域の上下左右に所定の幅を
持たせた矩形で囲み、この領域を検出することができ
る。
の幅とすることで、常に二次元コード全体を含んだ領域
が検出される。
の領域を選択することで、同一画像内に複数個の二次元
コードが存在する場合でも抽出することが可能となる。
次元コードの領域を検出することができる。
として検出された、隣接ブロックの個数が最大となる領
域を拡大して示した図である。図2において、一番外側
の実線で示した矩形内(矩形領域1)が検出する二次元
コードの領域、その内側の矩形(矩形領域2)が二次元
コードとして検出されたブロックに外接する矩形領域で
ある。また、一番外側の破線と矩形領域1の間の領域
は、二次元コードと文字や図表を隔てるために設けられ
た、全ての画素が白画素の空白領域である。
る。図2では基準位置を丸印で示しており、検出された
領域の中心に設定された例が図示される。この基準位置
を中心として画像に対して左右の方向、上下方向に向か
って二次元コードの境界を検出する処理を行う。二次元
コードの境界から外側には、所定の幅の空白領域が付与
されるのが一般的である。従って、検出基準位置から二
次元コードの縁に向かってブロック単位に走査して行
き、走査したブロック内の全画素が白画素になった時点
で上記した空白領域に達したことが判り、このブロック
の基準位置側の辺が二次元コードの境界ということにな
る。
領域とみなせるため、二次元コードの境界の検出は、図
2のA〜Dのように矩形領域2の外側から開始すればよ
い。各検出開始位置A〜Dから二次元コードの境界方向
に向かってブロック単位に上記の検出を行えば、その内
側の全画素が白画素になるブロックA’〜B’が検出さ
れる。そして、A’〜B’の検出基準位置側(すなわち
二次元コード側)の辺を通る矩形が二次元コードの矩形
領域として検出される。
抽出する際に、二次元コードを復元するソフトウェアや
ハードウェアが必要とする所定の幅の白画素を二次元コ
ードの周囲に付与することで、正しく復元できる二次元
コードの画像にすることができる。
紙面上の二次元コード部分の読み取りを行った場合、手
動でスキャナを操作するためスキャナが斜めに動き読み
取った画像に傾が生じる場合が考えられる。
に二次元コードの傾き角度も検出し、二次元コード抽出
時に傾きを補正しながら抽出を行うことで、傾きのない
二次元コードを抽出することができる。
元コード上下の辺、すなわち二次元コードの境界線が平
行であることから、二次元コードを検出する際に上下の
境界線上の点を複数箇所検出し、画像内におけるそれら
の座標値からこれらの点を直線近似することで境界線の
傾きを求め、それを二次元コードの傾き角度とすること
ができる。左右の辺についても互いに平行であるため、
同様にして傾き角度を検出することができ、上下左右か
ら傾きを検出することで傾き角度の検出精度が高まる。
読み取る場合、ハンドヘルドスキャナは上下左右いずれ
の方向にもスキャンできることから、読み取った画像が
回転したり鏡像反転して入力される場合がある。二次元
コードの検出処理を始める前に読み取り方向を検出して
正立像に補正しておいたり、二次元コードを検出した後
抽出する際に正立像になるように補正しながら抽出する
ことで、常に正しい向きの二次元コードを抽出すること
ができる。
いて詳細に説明する。
まず、入力画像をブロック単位に走査して、上記した
(1)〜(4)の方法を用いて、所定の条件を満たすブ
ロックを検出する(S101)。次に、検出されたブロ
ックが連結している領域を検出する(S102)。続い
て、S102により検出された領域に基づいて、二次元
コードの領域を検出する(S103)。そして、検出し
た二次元コード領域から二次元コード画像を抽出する
(S104)。最後に、二次元コードの傾き角度を検出
し、必要ならば傾き補正を行なう(S105)。
情報を格納するためのブロック情報テーブルの構成を示
す図である。ブロック番号は二次元コードの一部として
検出されたブロックに、検出した順番につける一連番号
である。検出されたブロックの最後を示すために、テー
ブル最後にEOB(End Of Block table)を格納する。
のX座標とY座標、そのブロックに結合するブロック
数、結合するブロックにより構成される領域の一連番号
が格納される。検出されたi番目のブロックの、ブロッ
ク情報テーブルの各項目の値の表記は、X座標をXi、
Y座標をYi、結合ブロック数をCi、領域番号をRi
で表すこととする。
ルを使用して二次元コードの検出を行なう。
処理フローを示す図であり、図3のS101の処理に対応す
る。図中の記号は、xとyは走査するブロック左上のそ
れぞれX 座標とY 座標、M とN はそれぞれブロックの横
画素数と縦画素数を表す。また、WIDTH とHEIGHTは、そ
れぞれ入力画像の横画素数と縦画素数を表す。iは検出
したブロックの番号を示すための変数である。
わち入力画像の右上の原点をブロックの左上の座標に設
定し、同時に最初のブロックを示すようi=1に設定す
る(S102)。
を(x、y)とする幅M画素、高さN画素の矩形領域に
設定し、このブロックが所定の条件、すなわち黒画素率
や変化点の個数、黒画素の連結状態が所定の値であるか
否かを識別する(S203)。S203において、該ブロックが
所定の条件を満たさないと判断した場合には処理をS206
に移し、条件を満たすと判断した場合には処理をS204に
進める。
の項目を選択し、Xiにx、Yiにyをそれぞれ格納し、次
に検出されるブロックを示すようにブロック番号iに1
を加算する(S205)。
査するブロック左上の座標をX 軸方向にM画素分移動さ
せる。S207では、x+MがWIDTH 以上か否か、すなわち
xを左上のX 座標とする幅M 画素のブロックの右端が、
入力画像の幅を超えていないか否かをチェックする。x
+M がWIDTH 未満の場合にはS 202に処理を戻す。x
+M がWIDTH 以上の場合には、S208でx=0すなわち走
査するブロックのX 座標を入力画像の左端に設定する。
査するブロック左上の座標をY 軸方向にN 画素分移動さ
せる。S210では、x+Y がHEIGHT以上か否か、すなわち
yを左上のY 座標とする高さN 画素のブロックの下端
が、入力画像の高さを超えていないか否かをチェックす
る。y+N がHEIGHT以上の場合にはS211に処理を移す。
S211ではブロック情報テーブルのi番目のブロック番号
にEOB を格納して処理を終了する。
場合にはS202に処理を戻す。
より、入力画像全体をブロック単位に走査して、図7の
太線で囲ったブロック1〜26のように、二次元コード
と識別したブロックを検出し、それら各ブロックのX 座
標およびY 座標が図8のブロック情報テーブル1〜26
に示したように検出される。
さ=32画素の場合の例である。図6は、図3のS101に
より検出したブロックが連結して構成する領域を検出す
る処理フローを示す図であり、図3のS102の処理に対応
する。
内におけるブロック番号を示すための変数、kは検出し
た領域の番号を示すための変数である。
ル(図4)の先頭からEOB までの結合ブロック数と領域
番号を全て0でクリアしておく(S301)。
ロック情報テーブルの先頭を指し示すように設定し、領
域番号をk=1すなわち最初の領域を示す値を設定す
る。
域番号Riが0か否か、すなわちi番目のブロックが既に
何らかの領域に属しているか否かをチェックし、0なら
ば領域に属していないと判断して処理をS304に移し、0
でなければ既に領域に属していると判断してS307に処理
を移す。
法によりブロックiを始点とするブロックにより構成さ
れる領域を検出し、該検出した領域を構成するブロック
の個数P を求める。なお、境界追跡法は一般的に知られ
ている方法であり、例えば「画像処理」(尾崎他著、共
立出版、1993、p187〜188 )や「画像処理工学」(谷口
・編、共立出版、1996、p116〜118 )に記載されてい
る。
し、S301で検出した領域に含まれる全てのブロック数Ci
にP 、領域番号Riにkを設定する。
目を参照するためにiに1を加える。
のブロック番号欄がEOB か否か、すなわちS101で検出し
た全てのブロックについて処理を終えたか否かチェック
する。ブロック番号がEOB でない場合には、処理をS303
に戻し、ブロック番号がEOBである場合には全処理を終
えたと判断して修了する。
ことで、図7の領域1〜4のように二次元コードと識別
されたブロックが連結して構成する領域が検出され、図
8のブロック情報テーブルのように各ブロックについて
結合ブロック数と領域番号が求まる。例えば、ブロック
6の場合には、結合するブロック数が20個の領域に所
属し、領域番号が3となる。
第一の実施例を示す処理フローであり、図3のS103の処
理に対応する。
し、結合ブロック数の最大値を検出してRmaxとする。図
8の例では、Rmax=20 となる。
るブロックの中で、X 座標およびY座標の最小値(Xmi
n、Ymin)と最大値(Xmax、Ymax)を求める。図8の例
では、座標の最小値(Xmin、Ymin)としてブロック6の
座標(X6、Y6)=(192 、352)、座標の最大値(Xma
x、Ymax)としてブロック26の座標(X26 、Y26 )=
(352 、448 )が検出される。
-N)、右下角の座標を(Xmax+2×M、Ymax+2×N )とす
る矩形領域を二次元コード領域として決定する。図7の
例では、図10A の領域3から一ブロック分離れた矩形
領域C が二次元コード領域として検出される。
10B に対して、大きめの領域が二次元コードとして検
出されることになる。
理の第二の実施例を示す処理フローあり、図3のS103の
処理に対応する。
し、結合ブロック数の最大値を検出してRmaxとする。図
8の例では、Rmax=20 となる。
中心を二次元コード領域検出の基準位置に決定する。図
8の例では、図10のように結合ブロック数が最大の領
域として領域3(図10A )が選択され、その中心とし
て図12D が決定される。ここでの中心位置は、領域3
に外接する矩形領域の中心で良い。
ら、上下および左右の方向に矩形のブロック単位に走査
し、該ブロック内の黒画素の個数がQ 個以下になる位置
を検出する。Q は0にしても良いが、ノイズなどの影響
を考慮してある程度の個数を設定しておいても良い。
図である。この例では、それぞれ左側でA、右側でB、
上側でC、下側でDの位置が検出される。Q=0に設定
し、ノイズがない場合には、検出したA付近は図12下
図のようになり、A’の位置すなわちブロックの基準位
置側を検出した位置に決定すればよい。
点から、検出基準位置と反対方向に所定の画素数分はな
れるように矩形を二次元コードの領域として決定する。
図12では、A〜Dの各検出位置からE画素分空けた位
置を通るように設定した矩形(一番外側の矩形)が二次
元コード領域となる。
よび第二の実施例では、二次元コードが傾いている場合
でも、二次元コード全体を含む領域を検出することがで
きる。更に、検出した二次元コードの傾きを検出し、傾
きを補正することでより正しく二次元コードを復元でき
る。
フローであり、図3のS105の処理に対応する。
から、上下左右に所定の間隔でブロック単位に走査し、
ブロック内の黒画素がQ 個以下になる位置を検出する。
ここでの検出方法はS503と同様である。S601の処理によ
り、二次元コード各辺における境界線上の位置が検出さ
れる。
4のように、二次元コード上側の境界線上にA1〜A7、下
側の境界線上にB1〜B7、左側の境界線上にC1〜C5、右側
の境界線上にD1〜D5の位置がそれぞれ検出される。
の検出位置を直線近似し、それぞれの傾き角度a1〜a
4を求める。図14の例では、上側についてはA1〜A7を
通る近似直線A の傾きa1を算出する。下側、左側、右
側に関しても同様にして傾き角度を算出する。
左側と右側の傾き角度が直行することを利用し、a1〜
a4の平均の傾きを計算して二次元コードの傾き角度θ
を次式により決定する。
4−90))÷4 S607では、θを所定の値θmin と比較し、θがθmin よ
り大きい場合にはS608で傾き補正処理を行って終了し、
θがθmin 以下の場合には傾き補正を行なわずに処理を
終了する。これにより、傾き角度が小さく、傾き補正の
必要のない場合には回転処理を行なわないことで、処理
時間を短縮できる。
方法には、公知例として「画像状態検出装置及びそれを
利用した文書画像補正装置」(特許公開平成11年第3
16798号)がある。
理を行って入力画像を正立像に補正しておくことによ
り、S101以降の処理はこの正立像に補正した画像に対し
て行われるため、回転や鏡像反転が補正された二次元コ
ードが抽出される。図15は、二次元コードを構成する
ブロックを検出するためのその他の方法を説明するため
の図面であり、8×8画素のブロックにおいて着目画素
に対する黒画素間距離の求め方を説明するための図であ
る。ここで、図示左上の画素をX1、1 とし、X1、1 の右
側の画素をX2、1 、X1、1 の下側の画素をX2、1 のよう
に添え字を変えて各画素を表す。
4 に対して上下左右それぞれの方向で最も近い黒画素が
X4、3 、X4、8 、X1、4 、X6、4 であった場合、X4、4
についての黒画素間の距離D4、4 は次式で算出する D4、4 =|X4、4 − X4 、3 |+|X4、4 − X4 、8 | +|X4、4 − X1 、4 |+|X4、4 − X6 、4 | ・・・ (1) なお、上下左右のうち、黒画素が存在しない方向があっ
た場合や、着目画素がブロック外縁にあり画素が存在し
ない方向がある場合には、該方向に相当する項はゼロと
する。例えば、X1、4 を含めX4、4 の左側が全て白画素
であった場合には、X4、4 についての黒画素間の距離は
次式のようになる。
より算出する。
画素、b 画素、c 画素、d 画素離れた黒画素との距離を
求めることを意味するため、着目画素Xi、j についての
黒画素間隔はa + b + c + d と表せる。
素間の平均距離D は、ブロック内の黒画素数をN とし
て、次式により算出することができる。
こと、2個目のΣはDi、j をj=1 からN まで加算するこ
とを示す。図16は、文字ブロック(A )と二次元コー
ドブロック(B )それぞれにおける黒画素分布の例であ
る。一般的に、文字ブロックでは黒画素が局所的に集ま
って存在し、二次元コードブロックでは黒画素が比較的
ばらばらな位置に存在している。
クと二次元コードブロックについて、前述した画素間の
距離を算出した例である。太線にて描かれた小さい矩形
は黒画素を表し、矩形内の数値は黒画素について式
(1)により黒画素間を算出した値である。
画素間の合計は63、ブロック内の黒画素数は24個なので
平均黒画素間はD = 2.6(63÷24)となる。一方、二次
元コードブロック(B )の黒画素間の合計は131 、ブロ
ック内の黒画素数は27なので平均黒画素間はD = 4.9
(131 ÷27)となる。二次元コードブロックの平均黒画
素間のほうが文字ブロックよりも大きい。
なように黒画素同士の間隔が大きいほど値が大きくな
る。 図16に示したように、二次元コードブロック
(A )内の黒画素は、文字ブロック(B )に比較してば
らばらな位置に存在しているため、各黒画素の間隔が文
字ブロックよりも大きくなり、従って、二次元コードブ
ロックの平均黒画素間D も文字ブロックよりも大きな値
になる。この黒画素間隔の違いを利用してブロックが文
字の一部なのか二次元コードの一部なのかを識別する。
画素間の閾値Dth は次のように決める。まず、文字のみ
を含む複数個の文書画像をブロックに分割し、全てのブ
ロックについて求めた平均黒画素間の平均D1を求める。
次に、複数個の二次元コード画像をブロック分割し、文
字ブロックの場合と同様に全ブロックの平均黒画素間の
平均D2を求める。こうして求めたD1、D2はそれぞれ文字
および二次元コードブロックの平均的な平均黒画素間を
表すと考えられるので、D1とD2の中点を閾値Dth に決定
する。
文字ブロック、Dth 以上ならば二次元コードブロックと
識別することができる。
ード抽出方法によれば、二次元コードと文字や図表が混
在する画像データの中から二次元コードだけを自動的に
抽出することができる。このため、二次元コードを文書
・図表と共に印刷した紙面において、イメージスキャナ
により二次元コードを含むように読み取りを行なうと、
読み取った画像から二次元コードが自動抽出されるた
め、元のデータに正確に復元することができ、二次元コ
ードの読み取りやすさの向上に寄与するところが大き
い。
と文書/図表が混在する文書画像を模式的に図示した図
面であり、M×Nのブロック単位で走査された状態を示
す。
を拡大した図。
順を説明したフローチャート。
ローチャート。
手順を示すフローチャート。
ート。
図。
ャート。
した図面。
すフローチャート。
素分布を示す図。
ードブロックとの黒画素間距離を算出した結果を示す
図。
Claims (7)
- 【請求項1】入力した画像データをM×N画素(M、N
は正の整数)の矩形ブロック単位に走査し、 前記走査したブロックから所定の条件を満たすブロック
を検出し、 前記検出されたブロックの中で隣接して連結しているブ
ロックにより構成される領域を検出し、 前記連結領域の検出に基づいて二次元コードの領域を検
出し、前記入力画像から二次元コードの画像を抽出する
ことを特徴とする、二次元コード抽出方法。 - 【請求項2】請求項1記載の二次元コード抽出方法にお
いて、 前記ブロックの検出は、ブロック内の白画素と黒画素の
比率が所定の範囲内にあるブロックを、二次元コードを
構成するブロックとして検出することを特徴とする二次
元コード抽出方法。 - 【請求項3】請求項1記載の二次元コード抽出方法にお
いて、 前記ブロックの検出は、ブロック内の総画素数に対する
ブロック内の水平ラインおよび/または垂直ライン内の
画素値の変化点の個数の割合が所定の範囲内になるブロ
ックを、二次元コードを構成するブロックとして検出す
ることを特徴とする二次元コード抽出方法。 - 【請求項4】請求項1記載の二次元コード抽出方法にお
いて、 前記ブロックの検出は、ブロック内の各ラインに含まれ
る黒画素の水平方向の射影または/および垂直方向の射
影の変化の度合いが所定の範囲内になるブロックを検出
することを特徴とする二次元コード抽出方法。 - 【請求項5】請求項1記載の二次元コード抽出方法にお
いて、 前記検出された連結領域の中で当該領域を構成するブロ
ック数が所定の範囲内の領域を選択し、該選択した領域
を囲む領域を二次元コード領域として検出することを特
徴とする二次元コード抽出方法。 - 【請求項6】請求項1記載の二次元コード抽出方法にお
いて、 前記検出された二次元コードの領域内における任意の位
置から、上下方向および左右方向に所定の大きさの矩形
ブロック単位に走査し、 走査した矩形内の黒画素数が所定の値以下になる位置を
各方向について検出し、 検出位置を囲む矩形領域を二次元コードとして抽出する
ことを特徴とする二次元コード抽出方法。 - 【請求項7】請求項1記載の二次元コード抽出方法にお
いて、 前記走査したブロック内に存在する黒画素同士の平均距
離を求め、 前記求められた黒画素間平均距離の値が所定値以上の場
合に、当該ブロックを二次元コードを構成するブロック
として抽出することを特徴とする、二次元コード抽出方
法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000116429A JP4419269B2 (ja) | 2000-04-18 | 2000-04-18 | 二次元コード抽出方法 |
US09/835,625 US7350710B2 (en) | 2000-04-18 | 2001-04-17 | Two-dimensional code extracting method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000116429A JP4419269B2 (ja) | 2000-04-18 | 2000-04-18 | 二次元コード抽出方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001307014A true JP2001307014A (ja) | 2001-11-02 |
JP4419269B2 JP4419269B2 (ja) | 2010-02-24 |
Family
ID=18627896
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000116429A Expired - Fee Related JP4419269B2 (ja) | 2000-04-18 | 2000-04-18 | 二次元コード抽出方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7350710B2 (ja) |
JP (1) | JP4419269B2 (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2004097717A1 (ja) * | 2003-05-02 | 2006-07-13 | 豊 木内 | 2次元コード読取方法、表示方法、および実行プログラム |
WO2006100720A1 (ja) * | 2005-03-18 | 2006-09-28 | Fujitsu Limited | コード画像処理方法 |
JP2007299098A (ja) * | 2006-04-28 | 2007-11-15 | Shachihata Inc | Qrコード読取装置 |
US7636483B2 (en) | 2003-12-05 | 2009-12-22 | Fujitsu Limited | Code type determining method and code boundary detecting method |
KR100962956B1 (ko) | 2002-06-05 | 2010-06-10 | 롱빈 수 | 세계 문자 정보용 이진 운용 코드의 최적 입력 방법과 그정보 처리 시스템 |
JP2019003662A (ja) * | 2005-03-11 | 2019-01-10 | ハンド ヘルド プロダクツ インコーポレーティッド | グローバル電子シャッター制御を持つイメージ読み取り装置 |
US10691907B2 (en) | 2005-06-03 | 2020-06-23 | Hand Held Products, Inc. | Apparatus having hybrid monochrome and color image sensor array |
US10721429B2 (en) | 2005-03-11 | 2020-07-21 | Hand Held Products, Inc. | Image reader comprising CMOS based image sensor array |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4278918B2 (ja) * | 2002-04-19 | 2009-06-17 | 富士通株式会社 | 画像データ処理装置とその方法 |
US7298921B2 (en) * | 2003-01-29 | 2007-11-20 | Colortrac Limited | Document scanning method and document scanner |
WO2004090801A1 (ja) * | 2003-04-08 | 2004-10-21 | Nippon Telegraph And Telephone Corporation | 情報符号化装置、情報復号化装置ならびにその方法及びプログラム |
AU2003227506A1 (en) * | 2003-04-15 | 2004-11-04 | Fujitsu Limited | Code recognizing method and device |
KR100828539B1 (ko) * | 2005-09-20 | 2008-05-13 | 후지제롯쿠스 가부시끼가이샤 | 이차원 코드의 검출 방법, 검출 장치, 및 검출 프로그램을기억한 기억 매체 |
JP4911340B2 (ja) * | 2006-02-10 | 2012-04-04 | 富士ゼロックス株式会社 | 二次元コード検出システムおよび二次元コード検出プログラム |
AU2008226843A1 (en) * | 2007-03-08 | 2008-09-18 | Microscan Systems, Inc. | Detection and segmentation of a two-dimensional code |
JP5111055B2 (ja) * | 2007-10-26 | 2012-12-26 | キヤノン株式会社 | 画像処理装置及び画像処理方法、コンピュータプログラム |
US20100166268A1 (en) * | 2008-12-30 | 2010-07-01 | Ebm Technologies Incorporated | Storage system for storing the sampling data of pathological section and method thereof |
CN111539238B (zh) * | 2020-04-27 | 2023-08-18 | 广州致远电子股份有限公司 | 二维码图像修复方法、装置、计算机设备和存储介质 |
CN113947097B (zh) * | 2020-07-15 | 2024-04-09 | 花瓣云科技有限公司 | 一种二维码识别的方法及电子设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA1329263C (en) * | 1989-03-01 | 1994-05-03 | Mark Krichever | Bar code scanner |
US5296690A (en) * | 1991-03-28 | 1994-03-22 | Omniplanar, Inc. | System for locating and determining the orientation of bar codes in a two-dimensional image |
US5557091A (en) * | 1994-04-15 | 1996-09-17 | Krummel; Larry | Method and system for bar code image processing |
TW434520B (en) * | 1998-06-30 | 2001-05-16 | Sony Corp | Two-dimensional code recognition processing method, device therefor and medium |
EP0984385B1 (en) * | 1998-08-31 | 2013-02-20 | Sony Corporation | Two-dimensional code recognition processing |
US7050631B2 (en) * | 2002-10-30 | 2006-05-23 | Sick Auto Ident, Inc. | Barcode detection system |
-
2000
- 2000-04-18 JP JP2000116429A patent/JP4419269B2/ja not_active Expired - Fee Related
-
2001
- 2001-04-17 US US09/835,625 patent/US7350710B2/en not_active Expired - Fee Related
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100962956B1 (ko) | 2002-06-05 | 2010-06-10 | 롱빈 수 | 세계 문자 정보용 이진 운용 코드의 최적 입력 방법과 그정보 처리 시스템 |
JPWO2004097717A1 (ja) * | 2003-05-02 | 2006-07-13 | 豊 木内 | 2次元コード読取方法、表示方法、および実行プログラム |
JP4708186B2 (ja) * | 2003-05-02 | 2011-06-22 | 豊 木内 | 2次元コード解読プログラム |
US7636483B2 (en) | 2003-12-05 | 2009-12-22 | Fujitsu Limited | Code type determining method and code boundary detecting method |
EP2275968A1 (en) | 2003-12-05 | 2011-01-19 | Fujitsu Limited | Code type determining method and code boundary detecting method |
JP2019003662A (ja) * | 2005-03-11 | 2019-01-10 | ハンド ヘルド プロダクツ インコーポレーティッド | グローバル電子シャッター制御を持つイメージ読み取り装置 |
US11968464B2 (en) | 2005-03-11 | 2024-04-23 | Hand Held Products, Inc. | Image reader comprising CMOS based image sensor array |
US11317050B2 (en) | 2005-03-11 | 2022-04-26 | Hand Held Products, Inc. | Image reader comprising CMOS based image sensor array |
US11863897B2 (en) | 2005-03-11 | 2024-01-02 | Hand Held Products, Inc. | Image reader comprising CMOS based image sensor array |
US10721429B2 (en) | 2005-03-11 | 2020-07-21 | Hand Held Products, Inc. | Image reader comprising CMOS based image sensor array |
US10735684B2 (en) | 2005-03-11 | 2020-08-04 | Hand Held Products, Inc. | Image reader comprising CMOS based image sensor array |
US10958863B2 (en) | 2005-03-11 | 2021-03-23 | Hand Held Products, Inc. | Image reader comprising CMOS based image sensor array |
US11323650B2 (en) | 2005-03-11 | 2022-05-03 | Hand Held Products, Inc. | Image reader comprising CMOS based image sensor array |
US11323649B2 (en) | 2005-03-11 | 2022-05-03 | Hand Held Products, Inc. | Image reader comprising CMOS based image sensor array |
JP4531809B2 (ja) * | 2005-03-18 | 2010-08-25 | 富士通株式会社 | コード画像処理方法 |
JPWO2006100720A1 (ja) * | 2005-03-18 | 2008-08-28 | 富士通株式会社 | コード画像処理方法 |
US8254683B2 (en) | 2005-03-18 | 2012-08-28 | Fujitsu Limited | Code image processing method |
WO2006100720A1 (ja) * | 2005-03-18 | 2006-09-28 | Fujitsu Limited | コード画像処理方法 |
US10949634B2 (en) | 2005-06-03 | 2021-03-16 | Hand Held Products, Inc. | Apparatus having hybrid monochrome and color image sensor array |
US11238252B2 (en) | 2005-06-03 | 2022-02-01 | Hand Held Products, Inc. | Apparatus having hybrid monochrome and color image sensor array |
US11238251B2 (en) | 2005-06-03 | 2022-02-01 | Hand Held Products, Inc. | Apparatus having hybrid monochrome and color image sensor array |
US11604933B2 (en) | 2005-06-03 | 2023-03-14 | Hand Held Products, Inc. | Apparatus having hybrid monochrome and color image sensor array |
US11625550B2 (en) | 2005-06-03 | 2023-04-11 | Hand Held Products, Inc. | Apparatus having hybrid monochrome and color image sensor array |
US10691907B2 (en) | 2005-06-03 | 2020-06-23 | Hand Held Products, Inc. | Apparatus having hybrid monochrome and color image sensor array |
US12001913B2 (en) | 2005-06-03 | 2024-06-04 | Hand Held Products, Inc. | Apparatus having hybrid monochrome and color image sensor array |
US12001914B2 (en) | 2005-06-03 | 2024-06-04 | Hand Held Products, Inc. | Apparatus having hybrid monochrome and color image sensor array |
US12020111B2 (en) | 2005-06-03 | 2024-06-25 | Hand Held Products, Inc. | Apparatus having hybrid monochrome and color image sensor array |
US12026580B2 (en) | 2005-06-03 | 2024-07-02 | Hand Held Products, Inc. | Apparatus having hybrid monochrome and color image sensor array |
JP2007299098A (ja) * | 2006-04-28 | 2007-11-15 | Shachihata Inc | Qrコード読取装置 |
Also Published As
Publication number | Publication date |
---|---|
US20020051573A1 (en) | 2002-05-02 |
JP4419269B2 (ja) | 2010-02-24 |
US7350710B2 (en) | 2008-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4419269B2 (ja) | 二次元コード抽出方法 | |
JP4525787B2 (ja) | 画像抽出装置、及び画像抽出プログラム | |
JPH03201866A (ja) | 圧縮形態のデータを含むデータから画像スキュー角度を決定する方法 | |
KR101215278B1 (ko) | 런 프로파일들을 사용하여 문서 보안 마크들의 검출 | |
JP5834866B2 (ja) | 画像処理装置、画像生成方法、およびコンピュータプログラム | |
JP4594952B2 (ja) | 文字認識装置及び文字認識方法 | |
JP3876531B2 (ja) | 文書画像の傾き補正方法 | |
US6493470B1 (en) | Image processing method and apparatus for detecting the tilt amount of input image data | |
JP3238504B2 (ja) | 書類分類方法 | |
JP2017161969A (ja) | 文字認識装置、方法およびプログラム | |
US7016538B2 (en) | Image processor for detecting specified pattern | |
EP0899679B1 (en) | Line direction deciding device, image inclination detecting device and image inclination correction device | |
JP2018128825A (ja) | 画像処理装置及び画像処理プログラム | |
JP4140519B2 (ja) | 画像処理装置、プログラムおよび記録媒体 | |
JP4893643B2 (ja) | 検出方法および検出装置 | |
US5113267A (en) | Apparatus for and method of reconstructing a document | |
Lehal et al. | A range free skew detection technique for digitized Gurmukhi script documents | |
JP3303246B2 (ja) | 画像処理装置 | |
JP2006235786A (ja) | 画像処理装置、および画像処理方法、並びにコンピュータ・プログラム | |
JP2006229685A (ja) | 帳票歪み判定装置 | |
US8260057B2 (en) | Image processing apparatus that obtains a ruled line from a multi-value image | |
JP4137945B2 (ja) | 画像検出方法 | |
JP4552757B2 (ja) | 画像処理装置、画像処理方法、および画像処理プログラム | |
JP4517667B2 (ja) | 文書画像照合装置、文書画像位置合わせ方法及びプログラム | |
JP7310151B2 (ja) | マーク選定装置および画像処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070322 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090206 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090303 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090424 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20091110 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20091123 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121211 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121211 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131211 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |