JP6645143B2 - 画像解析装置 - Google Patents

画像解析装置 Download PDF

Info

Publication number
JP6645143B2
JP6645143B2 JP2015233432A JP2015233432A JP6645143B2 JP 6645143 B2 JP6645143 B2 JP 6645143B2 JP 2015233432 A JP2015233432 A JP 2015233432A JP 2015233432 A JP2015233432 A JP 2015233432A JP 6645143 B2 JP6645143 B2 JP 6645143B2
Authority
JP
Japan
Prior art keywords
target
image
code
straight line
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.)
Active
Application number
JP2015233432A
Other languages
English (en)
Other versions
JP2017103530A (ja
Inventor
良平 小澤
良平 小澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2015233432A priority Critical patent/JP6645143B2/ja
Priority to US15/364,315 priority patent/US10270921B2/en
Publication of JP2017103530A publication Critical patent/JP2017103530A/ja
Application granted granted Critical
Publication of JP6645143B2 publication Critical patent/JP6645143B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00127Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
    • H04N1/00326Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a data reading, recognizing or recording apparatus, e.g. with a bar-code apparatus
    • H04N1/00328Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a data reading, recognizing or recording apparatus, e.g. with a bar-code apparatus with an apparatus processing optically-read information
    • H04N1/00336Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a data reading, recognizing or recording apparatus, e.g. with a bar-code apparatus with an apparatus processing optically-read information with an apparatus performing pattern recognition, e.g. of a face or a geographic feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/24Aligning, centring, orientation detection or correction of the image
    • G06V10/243Aligning, centring, orientation detection or correction of the image by compensating for image skew or non-uniform image deformations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/32101Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • H04N1/32144Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title embedded in the image data, i.e. enclosed or integrated in the image, e.g. watermark, super-imposed logo or stamp
    • H04N1/32352Controlling detectability or arrangements to facilitate detection or retrieval of the embedded information, e.g. using markers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N2201/3201Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • H04N2201/3269Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of machine readable codes or marks, e.g. bar codes or glyphs

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • General Health & Medical Sciences (AREA)
  • Electromagnetism (AREA)
  • Image Analysis (AREA)
  • Editing Of Facsimile Originals (AREA)

Description

本明細書では、対象画像に含まれるコード画像を解析する画像解析装置を開示する。
特許文献1には、互いに異なる幅を有する複数種類の四角形画像を含むパッチコードを検知するスキャナが開示されている。スキャナは、複数枚の原稿のうちの1枚の原稿にパッチコードが含まれる場合には、当該一枚の原稿を表わすスキャンデータの前後で、複数枚の原稿を表わすスキャンデータを区分けする。一方、スキャナは、複数枚の原稿のいずれにもパッチコードが含まれない場合には、スキャンデータを区分けしない。
特開2002−44318号公報 特開昭62−84391号公報 特開平7−220081号公報
特許文献1の技術では、パッチコードが傾いた状態で印刷されている原稿がスキャンされる状況について、何ら考慮されていない。このような状況では、スキャン画像内でパッチコードが傾いてしまうので、スキャナがパッチコードを正確に検知できない可能性がある。また、特許文献1の技術では、原稿内でパッチコードが傾いていないが、原稿が傾いた状態でスキャンされる状況についても、何ら考慮されていない。このような状況でも、スキャン画像内でパッチコードが傾いてしまうので、スキャナがパッチコードを正確に検知できない可能性がある。
本明細書では、対象画像内で、上記パッチコードに代表されるようなコード画像が傾いていても、コード画像の表現態様を正確に決定することができる技術を提供する。
本明細書によって開示される画像解析装置は、コード画像を含む対象画像を表わす対象画像データを取得する取得部であって、前記コード画像は、第1方向に沿って平行に配置されるN個(前記Nは2以上の整数)のコード要素を含み、前記N個のコード要素のそれぞれは、前記第1方向に直交する第2方向に沿って平行に伸びる2本の第1辺を有する、前記取得部と、前記対象画像データを構成する複数個の対象画素の中から、前記N個のコード要素のそれぞれについて、当該コード要素の輪郭を構成する各輪郭画素を特定する輪郭画素特定部と、前記各輪郭画素を解析して、前記対象画像内での前記N個のコード要素の傾きである対象傾きを特定する傾き特定部と、前記各輪郭画素と前記対象傾きとを利用して、前記N個のコード要素のそれぞれについて、当該コード要素の前記2本の第1辺に相当する2本の対象直線を特定する直線特定部と、前記N個のコード要素について特定されるNセットの前記2本の対象直線のそれぞれについて、当該1セットの2本の対象直線の間の距離を特定することによって、前記N個のコード要素のそれぞれについて、当該コード要素が有する前記2本の第1辺の間の距離を特定する距離特定部と、前記N個のコード要素のそれぞれについて特定される前記距離を利用して、前記コード画像の表現態様を決定する決定部と、を備える。
上記の構成によると、画像解析装置は、対象画像内での各コード要素の傾きである対象傾きを特定し、当該対象傾きを利用して特定されるNセットの2本の対象直線を利用して、各コード要素が有する2本の第1辺の間の距離を特定する。そして、画像解析装置は、各コード要素について特定される各距離を利用して、コード画像の表現態様を決定する。従って、画像解析装置は、対象画像内でコード画像が傾いていても、コード画像の表現態様を正確に決定することができる。
上記の画像解析装置を実現するための制御方法、コンピュータプログラム、及び、当該コンピュータプログラムを格納するコンピュータ読取可能記録媒体も新規で有用である。
通信システムの構成を示す。 6種類のパッチコードを示す。 PCのドライバプログラムの処理のフローチャートを示す。 対象画像及び二値化画像の一例を示す。 極座標変換処理の説明図を示す。 累積ヒストグラムの一例を示す。 傾きヒストグラムの一例を示す。 配置パターンP1が決定される例を示す。 配置パターンP3が決定される例を示す。 原稿が汚れている例を示す。 配置パターンP1が決定される例を示す。
(通信システム2の構成;図1)
図1に示されるように、通信システム2は、PC(Personal Computerの略)100とスキャナ200とを備える。PC100とスキャナ200とは、LAN(Local Area Networkの略)4を介して、相互に通信可能である。
(PC100の構成)
PC100は、操作部110と、表示部112と、ネットワークインターフェース114と、制御部120と、を備える。操作部110は、マウス、キーボード等を含む。ユーザは、操作部110を操作することによって、様々な指示をPC100に入力することができる。表示部112は、様々な情報を表示するためのディスプレイである。ネットワークインターフェース114は、LAN4に接続される。以下では、インターフェースのことを「I/F」と記載する場合がある。
制御部120は、CPU130とメモリ132とを備える。CPU130は、メモリ132に格納されている各種のプログラム(例えば、OS(Operating Systemの略)プログラム(図示省略)、ドライバプログラム134等)に従って、様々な処理(例えば後述の図3の処理)を実行するプロセッサである。ドライバプログラム134は、スキャナ200のベンダによって提供され、スキャナ200に関連する各種の処理を実行するためのプログラムである。ドライバプログラム134は、例えば、スキャナ200と共に出荷されるメディアからPC100にインストールされてもよいし、スキャナ200のベンダによって提供されるインターネット上のサーバからPC100にインストールされてもよい。
メモリ132は、ROM(Read Only Memoryの略)、RAM(Random Access Memoryの略)等によって構成されている。メモリ132は、ドライバプログラム134の他に、長さデータ136とパターンデータ138とを記憶する。長さデータ136は、パッチコードに関する長さを示すデータである。パターンデータ138は、パッチコードを構成する4個の矩形画像の配置パターンP1〜P6(即ち6種類のパッチコード)を示すデータである。メモリ132は、さらに、6種類のパッチコードに対応する6個のフォルダ(図示省略)を格納している。CPU130は、スキャナ200から原稿画像データを取得する場合に、当該6個のフォルダのうちのいずれかのフォルダに原稿画像データを格納することができる。
(スキャナ200の構成)
スキャナ200は、原稿をスキャンして原稿画像データを生成するスキャン機能を実行可能な周辺機器(即ち、PC100の周辺機器)である。例えば、スキャナ200は、原稿画像データをスキャナ200自身のメモリに記憶させることができる。また、スキャナ200は、原稿画像データをPC100に供給して、当該原稿画像データをPC100に格納させたり、当該原稿画像データに対する画像処理をPC100に実行させたりすることができる。
スキャナ200は、LAN4に接続されており、FB(Flat Bedの略)機構及びADF(Auto Document Feederの略)機構(これらは図示省略)を備える。FB機構は、透明板と、一定の方向(以下では「配置方向」と呼ぶ)に沿って並んでいる複数個の光学素子と、を備える。各光学素子は、CCDイメージセンサ(Charge Coupled Device Image Sensor)であってもよいし、CIS(Contact Image Sensor)であってもよい。複数個の光学素子は、上記の配置方向に直交する直交方向に移動可能である。従って、FB機構を利用すれば、透明板に載置された原稿を移動させずに、複数個の光学素子を上記の直交方向に移動させることによって、原稿のスキャンを実行することができる。ADF機構は、上記の直交方向に原稿を移動させることができる。従って、ADF機構を利用すれば、複数個の光学素子を移動させずに、原稿を上記の直交方向に移動させることによって、原稿のスキャンを実行することができる。
(パッチコードの配置パターン;図2)
続いて、図2を参照して、パッチコードについて説明する。パッチコードは、2個の大きな矩形と2個の小さな矩形とによって構成される。以下では、大きな矩形、小さな矩形のことを、それぞれ、「矩形(大)」、「矩形(小)」と呼ぶ。矩形(大)は、比較的長い短辺を有する矩形であり、矩形(小)は、比較的短い短辺を有する矩形である。矩形(大)の長辺の長さは、矩形(小)の長辺の長さに等しい。4個の矩形の並び方に応じて、6種類のパッチコードが存在する。各矩形の輪郭及び内部の色は、単一の色(本実施例では黒色)である。
パッチコードが印刷媒体に印刷されることによって、パッチコードを含む原稿が生成される。当該原稿がスキャナ200によってスキャンされると、原稿画像を表わす原稿画像データが生成される。原稿画像データがPC100によって解析されると、原稿画像に含まれるパッチコード画像の種類が検出される。PC100は、検出済みの種類に応じた処理を実行する。即ち、パッチコードは、パッチコードの種類に応じた処理をPC100に実行させるための画像である。
より具体的には、パッチコードの種類は、原稿画像データが格納されるべきPC100内のフォルダに対応する。ユーザは、PC100内の各フォルダとパッチコードの各種類とが対応付けられているデータをPC100に予め登録しておく。そして、ユーザは、PC100内の特定フォルダに原稿画像データが格納されることを望む場合に、まず、端末機器(例えばPC100等)を利用して、当該特定フォルダに対応する特定種類のパッチコードが付加された画像の印刷を図示省略のプリンタに実行させる。これにより、特定種類のパッチコードを含む原稿が生成される。次いで、ユーザは、PC100のドライバプログラム134を利用して、当該原稿のスキャンをスキャナ200に実行させる。この結果、スキャナ200からPC100に原稿画像データが供給され、PC100は、原稿画像データを解析して、特定種類のパッチコードを検出する。この場合、PC100は、原稿画像データをメモリ132内の特定フォルダに格納する。
図2に示されるように、パッチコードPCは、原稿DCの左側の長辺に沿って配置(即ち印刷)される。パッチコードPCが印刷媒体に印刷されて原稿DCが生成される際に、印刷媒体に対してパッチコードPCが傾いて印刷される可能性がある。この場合、パッチコードPCの長辺が伸びる方向と、原稿DCの長辺が伸びる方向と、が一致しない。即ち、原稿DC内でパッチコードPCが傾いてしまう。本実施例では、PC100は、原稿DC内でパッチコードPCが傾いていても、パッチコードPCの種類を適切に検出することができる。
図2は、パッチコードPCの6個の配置パターンP1〜P6を示す。なお、各パッチコードPCの縦横比は、実際とは異なる縦横比として図示されている。例えば、配置パターンP1は、左側から順に、矩形(大)、矩形(大)、矩形(小)、矩形(小)が出現するパターンである。配置パターンP2は、左側から順に、矩形(大)、矩形(小)、矩形(小)、矩形(大)が出現するパターンである。同様に、他の各配置パターンP3〜P6も定義される。
パッチコードPCでは、4個の矩形が一定の方向に沿って平行に配置されている。以下では、4個の矩形が平行に配置されている方向を「第1方向」と呼ぶ。各矩形は、上記の第1方向に沿って平行に延びる2本の短辺と、第1方向に直交する方向(以下では「第2方向」と呼ぶ)に沿って平行に伸びる2本の長辺と、を有する。矩形(大)の短辺の長さは、4.75mm〜5.25mmである。矩形(小)の短辺の長さは、1.78mm〜2.28mmである。隣接する2個の矩形の間の余白の長さ(以下では「余白長さ」と呼ぶ)は、1.78mm〜2.28mmである。
メモリ132内の長さデータ136(図1参照)は、矩形(大)の短辺の長さと、矩形(小)の短辺の長さと、余白長さと、を示す情報を含む。ただし、長さデータ136は、矩形(大)及び矩形(小)の長辺の長さを示す情報を含まない。長さデータ136では、実際の長さ(即ち「mm」で定義されている長さ)が、所定の解像度(本実施例では300dpi)を有する画像内での画素数に換算されている。具体的には、長さデータ136は、矩形(大)の短辺の長さ、矩形(小)の短辺の長さ、余白長さとして、それぞれ、50〜80画素、15〜35画素、15〜35画素を示す。
(PC100のドライバプログラム134の処理;図3)
続いて、図3を参照して、PC100のCPU130によってドライバプログラム134に従って実行される処理の内容を説明する。
S10では、CPU130は、ネットワークI/F114を介して、パッチコード画像を含む原稿画像を表わす原稿画像データをスキャナ200から取得する。具体的には、まず、ユーザは、スキャナ200のADF機構又はFB機構の透明板に原稿DCを載置する。そして、ユーザは、PC100を利用してドライバプログラム134を起動させ、スキャン実行指示をスキャナ200に供給するための操作を操作部110に実行する。これにより、スキャナ200が原稿DCのスキャンを実行して、原稿画像データがスキャナ200からPC100に供給される。原稿画像データは、複数個の画素データによって構成され、各画素データは、256階調(即ち「0〜255」)の画素値(具体的には、R値、G値、及び、B値)を示す。なお、本実施例では、スキャナ200が利用可能な最低のスキャン解像度が300dpiである。従って、原稿画像データは、300dpi以上の解像度を有する。
ここで、パッチコード画像の長辺が伸びる方向と、原稿画像の長辺が伸びる方向と、が一致しない可能性がある。即ち、原稿画像内でパッチコード画像が傾いている可能性がある。パッチコード画像が傾く原因として、例えば、以下の2個の原因が考えられる。1個目の原因は、上述したように、印刷媒体に対してパッチコードPCが傾いて印刷されることである。2個目の原因は、原稿内でパッチコードが傾いていないが、原稿が傾いた状態でスキャンが実行されることである。具体的には、FB機構の透明板に対して原稿DCが傾いて載置されている状態でスキャンが開始される場合、又は、原稿が傾いた状態でADF機構によって原稿が搬送される場合に、原稿が傾いた状態でスキャンが実行される。
S12では、CPU130は、原稿画像データから、原稿画像のうちの予め決められている一部の領域である対象画像を表わす対象画像データを抽出することによって、対象画像データを取得する。このように、原稿画像データ内の一部の対象画像データが以下の処理の対象になるので、原稿画像データの全てが以下の処理の対象になる構成と比べて、PC200の処理負荷を軽減することができる。ただし、変形例では、原稿画像データの全てを対象画像データとして以下の処理の対象にしてもよい。
図4は、対象画像TIの一例を示す。対象画像TIは、原稿DC内の対象領域TA(図2参照)を表わす画像である。対象領域TAは、原稿DCの左上の頂点を含む矩形領域である。対象画像TIは、パッチコード画像を構成する4個の矩形画像の一部である4個の四角形画像を含む。各四角形画像は黒色のベタ画像であり、各四角形画像の背景画像(即ち原稿の背景色)は白色である。各四角形画像は、第1方向に沿って伸びる1本の短辺を有すると共に、第2方向に沿って平行に伸びる2本の長辺を有する。図4の例では、原稿画像に対してパッチコード画像PCIが傾いているので、各四角形画像の他の1本の辺(即ち、上記の短辺に対向する辺、図4の下辺)は、第1の方向に平行に伸びていない。パッチコード画像PCIは、X軸及びY軸を含む直交座標系(以下では「XY座標系」と呼ぶ)で表現される。X軸は、原稿画像の左右方向に平行に伸びる軸であり、Y軸は、原稿画像の上下方向に平行に伸びる軸である。X座標及びY座標は、パッチコード画像PCI内の各画素の位置を表わす。
図3のS14では、CPU130は、対象画像データの解像度が300dpiよりも高いのか否かを判断する。CPU130は、対象画像データの解像度が300dpiよりも高い場合(S14でYES)に、S16に進み、対象画像データの解像度が300dpi以下である場合に(S14でNO)、S16をスキップして、S20に進む。
S16では、CPU130は、300dpiよりも高い解像度を有する対象画像データを変換(即ちリサイズ)して、300dpiの解像度を有する対象画像データを生成する。当該変換のための手法として、本実施例ではバイリニア(Bilinear)法を採用しているが、変形例では他の手法を採用してもよい。S16のリサイズが実行されるので、対象画像データに対する以下の処理のための処理負荷を軽減することができる。
S20では、CPU130は、対象画像データに対する輝度値変換処理を実行する。具体的には、CPU130は、対象画像データを構成する複数個の画素データのそれぞれについて、当該画素データが示す画素値(即ちR値とG値とB値)をS20内の数式に従って輝度値(即ちY値)に変換して、256階調の輝度値(即ち「0〜255」)を示す新たな画素データを生成する。これにより、輝度値を示す複数個の新たな画素データによって構成される輝度画像データが生成される。
S22では、CPU130は、S20で生成された輝度画像データに対するエッジ強度算出処理を実行する。具体的には、CPU130は、輝度画像データを構成する複数個の画素データのそれぞれについて、Sobelフィルタを利用して、当該画素データが示す輝度値をエッジ強度に変換して、エッジ強度を示す新たな画素データを生成する。これにより、エッジ強度を示す複数個の新たな画素データによって構成されるエッジ画像データが生成される。なお、変形例では、CPU130は、Sobelフィルタに代えて、1次微分フィルタ、2次微分フィルタ、ラプラシアンフィルタ等を利用して、エッジ強度を算出してもよい。
S24では、CPU130は、S22で生成されたエッジ強度画像データに対する二値化処理を実行する。具体的には、CPU130は、エッジ強度画像データを構成する複数個の画素データのそれぞれについて、当該画素データが示すエッジ強度を「1」又は「0」に変換して、「1」又は「0」を示す新たな画素データを生成する。より具体的には、CPU130は、エッジ強度が予め決められている閾値(以下では「エッジ閾値」と呼ぶ)よりも大きい場合には、「1」を示す新たな画素データを生成し、エッジ強度がエッジ閾値以下である場合には、「0」を示す新たな画素データを生成する。これにより、「1」又は「0」を示す複数個の新たな画素データによって構成される二値画像データが生成される。以下では、「1」を示す画素データ、「0」を示す画素データのことを、それぞれ、「ON画素データ」、「OFF画素データ」と呼ぶ。
図4は、二値画像データによって表わされる二値画像BVIの一例を示す。二値画像BVIでは、ON画素データによって表わされるON画素、OFF画素データによって表わされるOFF画素が、それぞれ、黒色、白色で表現されている。各四角形画像の輪郭を構成する各画素がON画素であり、各四角形画像の輪郭を構成しない各画素がOFF画素である。即ち、ON画素は、各四角形画像の輪郭を表わす輪郭画素である。
図3のS30では、CPU130は、S24で生成された二値画像データに対する極座標変換処理を実行して、XY座標系で表現される二値画像BVIを、極座標系で表現される二値画像BVIに変換する。即ち、CPU130は、各ON画素(即ち各輪郭画素)の座標(X,Y)を座標(r,θ)に変換する。r及びθは、数式「X=rcosθ」及び「Y=rsinθ」を満たす値である。
S30では、さらに、CPU130は、極座標で表現される複数本の仮想直線VLを利用して、各仮想直線VL上のON画素の個数を算出する。仮想直線VLは、対象画像TI内に仮想的に配置される直線である。図5の右上の図は、1本の仮想直線VLを示す。仮想直線VLは、数式「rcos(θ−θx)=rx」で表現される。rxは、原点から仮想直線VLまでの距離である。θxは、所定の直線とX軸とがなす角度である。所定の直線は、仮想直線VLに垂直であり、かつ、原点を通過する。CPU130は、仮想直線VL上のON画素の個数(図5の右上の図では2個)を算出し、r軸及びθ軸を含むrθ座標系において、座標Qx(2(即ち算出済みの個数),θx,rx)をプロットする。座標Qxがプロットされている様子は、図5の左上の図に示されている。
CPU130は、他の各仮想直線についても、同様に、当該仮想直線VL上のON画素の個数を算出し、rθ座標系において、座標Qj(n,θj,rj)をプロットする。jは、当該仮想直線を示す番号(例えば1以上の整数)であり、nは、算出済みのON画素の個数であり、θj及びrjは、数式「rcos(θ−θj)=rj」で表現される当該仮想直線を特定するための定数である。図5の下の図は、複数本の仮想直線のうちの10本の仮想直線VLj(jは1〜10の各整数)を示す。各仮想直線VL1〜VL8,VL10は、数式「rcos(θ−θ1)=rj」で表現される。例えば、仮想直線VL10については、1個のON画素が算出される。従って、座標Q10(1,θ1,r10)がプロットされる(図5の左上の図参照)。各仮想直線VL1〜VL8は、四角形画像の長辺に重なる直線である。従って、各仮想直線VL1〜VL8については、多数のON画素が算出される。例えば、仮想直線VL1については、100個のON画素が算出される。従って、座標Q1(100,θ1,r1)がプロットされる(図5の左上の図参照)。同様に、座標Q2〜Q8もプロットされる。また、仮想直線VL9は、数式「rcos(θ−θ2)=r9」で表現される。仮想直線VL9は、四角形画像の短辺に重なる直線である。従って、仮想直線VL9についても、多数のON画素(本実施例では「30個」)が算出される。従って、座標Q9(30,θ2,r9)がプロットされる(図5の左上の図参照)。なお、以下では、仮想直線上のON画素の個数のことを「カウント数」と記載することがある。
図3のS32では、CPU130は、rθ座標系にプロットされた各座標を利用して累積ヒストグラムを作成し、累積ヒストグラムを利用して対象画像内での各四角形画像の傾きである対象傾きを特定する。
具体的には、CPU130は、まず、同じ角度に対応する各カウント値の和(以下では「累積値」と呼ぶ)を算出する。例えば、図5の左上の図では、9個の座標Q1〜Q8,Q10は、同じ角度θ1を有する。従って、CPU32は、同じ角度θ1を対応する各カウント値(即ち、「100」、「95」・・・「85」、「1」)の和である累積値を算出する。そして、図6に示されるように、CPU130は、角度θ1に対応する累積値を示すヒストグラムを生成する。同様に、CPU130は、他の各角度(例えばθ2等)に対応する各累積値を示すヒストグラムを生成する。
次いで、CPU130は、累積ヒストグラムのうちの最大の累積値に対応するθ1を対象傾きとして特定する。θ1は、各四角形画像の長辺に重なる仮想直線の傾きである。このように、本実施例では、対象画像内での各四角形画像の長辺の傾き(即ち対象傾き)を適切に特定することができる。また、上述したように、rθ座標系を利用して対象傾きを特定するので、xy座標系を利用して対象傾きを特定する構成と比べると、仮想直線の本数が少なくて済む。xy座標系において仮想直線を「y=ax+b」で定義すると傾き「a」の値を無限に設定し得るが、rθ座標系では、仮想直線を定義するためのθの値を0〜360°の範囲内で設定することができるからである。従って、本実施例では、対象傾きを特定するための処理負荷が低くて済む。なお、変形例では、rθ座標系を利用せずに、xy座標系を利用して、対象傾きを特定し、さらに、それ以降の処理を実行してもよい。
図3のS34では、CPU130は、rθ座標系にプロットされた複数個の座標(図5の左上の図参照)と、S32で特定された対象傾きと、を利用して、傾きヒストグラムを生成する。具体的には、CPU130は、rθ座標系にプロットされた複数個の座標の中から対象傾きθ1を有する2個以上の座標Q1〜Q8,Q10を特定し、特定済みの各座標を構成するrj及びカウント数(100、95等)を示す傾きヒストグラムを生成する。対象傾きθ1を有する2個以上の座標Q1〜Q8,Q10等を特定するということは、対象傾きθ1を有する2本以上の仮想直線VL1〜VL8,V10等を特定することに等しい。図7の上の図は、傾きヒストグラムの一例を示す。
図3のS40では、CPU130は、S34で生成された傾きヒストグラムを利用して、7個の距離を特定する。具体的には、まず、CPU130は、傾きヒストグラムにおいて、カウント数の最大値(図7の上の図では「100」)を特定し、当該最大値の半分であるカウント閾値(本例では「50」)を算出する。そして、CPU130は、傾きヒストグラムにおいて、カウント閾値以上のカウント数を有するrj(本例では8個のrj(r1〜r8))を特定する。ここで8個のrjを特定するということは、通常、4個の四角形画像のそれぞれについて、当該四角形画像の2本の長辺に相当する2本の直線を特定することに等しい。なお、変形例では、CPU130は、カウント閾値を利用せずに、カウント数が大きい方から順に8個のrjを特定してもよい。
次いで、CPU130は、特定済みの8個のrj(即ちr1〜r8)を利用して、原点からの距離が最も小さいr1と次に小さいr2との間の距離D1(即ち画素数)を算出する。同様に、CPU130は、原点からの距離がk番目(kは2〜7の各整数)に小さいrjと、(k+1)番目に小さいrjと、の間の距離D2〜D7(即ち画素数)を算出する。
図3のS42では、CPU130は、S40で特定された7個の距離D1〜D7のそれぞれについて、矩形(大)、矩形(小)、余白、又は、エラーを決定する。まず、CPU130は、S20で生成された輝度画像データを、モノクロ画像を表わすモノクロ画像データに変換する。具体的には、CPU130は、輝度画像データ内の各画素データについて、当該画素データの輝度値が所定の輝度閾値よりも小さい場合(即ち当該画素データが黒色を示す場合)に、当該画素データを「1」に変換し、当該画素データの輝度値が所定の輝度閾値以上である場合(即ち当該画素データが白色を示す場合)に、当該画素データを「0」に変換する。これにより、「1」又は「0」を示す複数個の画素データによって構成されるモノクロ画像データが生成される。以下では、モノクロ画像データにおいて、「1」を示す画素、「0」を示す画素のことを、それぞれ、「ON画素」、「OFF画素」と呼ぶ。図7の中央の図に示されるように、モノクロ画像MIでは、4個の四角形画像の輪郭及び内部の各画素はON画素であり、4個の四角形画像の外部の各画素はOFF画素である。
次いで、CPU130は、モノクロ画像MI内に3本の判定直線Lx,Ly,Lzを配置する。各判定直線Lx,Ly,LzとX軸とがなす角度は、XY座標系での対象傾きθ1に等しい。判定直線Lx、判定直線Ly、判定直線Lzは、それぞれ、予め決められている異なるY座標を通過する。CPU130は、r1〜r8を利用して、各判定直線Lx,Ly,Lz上の領域(即ち線分)A1〜A7を特定する。領域A1は、判定直線とY軸との交点からの距離がr1〜r2の範囲内の領域である。領域A2は、判定直線とY軸との交点からの距離がr2〜r3の範囲内の領域である。同様に、他の各領域A3〜A7が特定される。
次いで、CPU130は、各判定直線について以下の処理を実行する。即ち、CPU130は、各領域A1〜A7について、当該領域内の全ての画素の個数に対する当該領域内のON画素の個数の割合(以下では「ON画素率」と呼ぶ)が80%以上であるのか否かを判断する。CPU130は、ON画素率が80%以上である領域を黒候補領域として特定する。黒候補領域は、黒色を示す矩形(大)又は矩形(小)に対応する可能性が高い領域である。一方、CPU130は、ON画素率が80%未満である領域を白候補領域として特定する。白候補領域は、余白に対応する可能性が高い領域である。例えば、判定直線Lxについては、いずれの領域A1〜A7も白候補領域として特定される。また、各判定直線Ly,Lzについては、各領域A1,A3,A5,A7が黒候補領域として特定され、各領域A2,A4,A6が白候補領域として特定される。図7の下の図は、各判定直線Lx,Ly,Lzにおける各領域A1〜A7が黒候補領域(即ち「B」)及び白候補領域(即ち「W」)のいずれであるのかを表わすテーブルを示す。
次いで、CPU130は、少なくとも1本の判定直線上で黒候補領域であると特定された各領域A1,A3,A5,A7を黒領域であると判定する。一方、CPU130は、全ての判定直線上で白候補領域であると特定された各領域A2,A4,A6を白領域であると判定する。このように、本実施例では、3本の判定直線Lx,Ly,Lzを利用して、各領域A1〜A7が黒領域及び白領域のいずれであるのかが判定される。例えば、仮に判定直線Lxのみが利用される場合には、いずれの領域A1〜A7も白領域として誤って判定される。本実施例では、3本の判定直線Lx,Ly,Lzが利用されるので、黒領域及び白領域を正確に判定することができる。
上述したように、S40では、各領域A1〜A7に対応する各距離D1〜D7が特定され、S42では、各領域A1〜A7が黒領域であるのか白領域であるのかが特定される。S42では、CPU130は、さらに、長さデータ136を利用して、各領域A1〜A7が、矩形(大)、矩形(小)、余白、及び、エラーのうちのいずれを示すのかを決定する。CPU130は、黒領域と特定され、かつ、50〜80画素である距離が特定された領域について、矩形(大)を決定する。CPU130は、黒領域と特定され、かつ、15〜35画素である距離が特定された領域について、矩形(小)を決定する。CPU130は、白領域と特定され、かつ、15〜35画素である距離が特定された領域について、余白を決定する。CPU130は、上記のいずれにも該当しない領域について、エラーを決定する。図8に示されるように、距離D1,D3が特定された領域A1,A3が矩形(大)を示し、距離D2,D4,D6が特定された領域A2,A4,A6が余白を示し、距離D5,D7が特定された領域A5,A7が矩形(小)を示すことが決定される。
図3のS44では、CPU130は、S42の決定の結果を利用して、各距離D1〜D7が、第1条件及び第2条件を含む所定の条件を満たすのか否かを判断する。第1条件は、7個の距離D1〜D7において、2個の距離が矩形(大)を示し、2個の距離が矩形(小)を示すことである。第2条件は、残りの3個の距離が余白を示すことである。CPU130は、距離D1〜D7が所定の条件を満たす場合(S44でYES)に、S50に進む。一方、CPU130は、距離D1〜D7が所定の条件を満たさない場合(S44でNO)に、S40に戻る。例えば、対象画像TIが、矩形(大)及び矩形(小)とは異なる図形に対応する画像を含む場合には、S42において、7個の距離D1〜D7のうちのある距離についてエラーが決定され得るので、S44でNOと判断され得る。このように、CPU130は、パッチコード画像PCIが規格外の画像である場合(S44でNO)に、配置パターンを決定しない(S50を実行しない)。S40に戻った後に、CPU130は、距離D1〜D7のうち、エラーと決定された距離が除外されるように、新たな7個の距離を特定する。当該処理の詳細については後述する。
S50では、CPU130は、S42の決定の結果を利用して、4個の四角形画像の配置パターン(即ちパッチコードの種類)を決定する。具体的には、CPU130は、距離D1,D3,D5,D7によって示される2個の矩形(大)及び2個の矩形(小)の並び方に基づいて、配置パターンP1〜P6(図2参照)のうちのいずれかを決定する。図8の例では、距離D1,D3,D5,D7がそれぞれ、矩形(大)、矩形(大)、矩形(小)、矩形(小)を示すので、配置パターンP1が決定される。
S60では、CPU130は、S50で決定された配置パターンに応じた処理を実行する。具体的には、CPU130は、S50で決定された配置パターンに対応するメモリ132内のフォルダを特定し、S10で取得された原稿画像データを特定済みのフォルダに格納させる。
パッチコードを構成する4個の四角形画像の傾きを考慮せずに、パッチコードの種類を決定する比較例が想定される。比較例では、図7の中央のモノクロ画像MIにX軸に平行な直線が配置され、当該直線上の原点に近い側(即ち左側)から、ON画素が連続する各領域(以下では「ON領域」と呼ぶ)が順次特定される。これにより、4個のON領域が特定される。そして、4個のON領域のそれぞれについて、当該ON領域を構成する画素数に基づいて、当該ON領域が矩形(大)及び矩形(小)のどちらに対応するのかが特定される。しかしながら、比較例では、4個の四角形画像の傾きを考慮していないので、ON領域を構成する画素数が四角形画像の短辺の長さよりも大きくなってしまう。このために、ON領域が矩形(大)及び矩形(小)のどちらに対応するのかが正確に特定されない可能性がある。
一方、本実施例によると、PC100は、対象画像TI内での各四角形画像の傾きである対象傾きθ1を特定し、対象傾きθ1を利用して特定される4セットの2本の直線(即ちr1〜r8に対応する8本の直線)を利用して、各四角形画像が有する2本の長辺の間の距離D1,D3,D5,D7を特定する(図3のS40、図7の上の図)。そして、PC100は、各四角形画像について特定される各距離D1,D3,D5,D7を利用して、当該四角形画像が矩形(大)及び矩形(小)のうちのいずれの種類であるのかを決定する(図3のS42、図8)。即ち、PC100は、対象画像TI内において各四角形画像が傾いていても、当該四角形画像が矩形(大)及び矩形(小)のうちのいずれの種類であるのかを正確に決定することができ、この結果、パッチコードの種類を正確に決定することができる(図3のS50、図8)。
(配置パターンP3が決定される例;図9)
続いて、図9を参照して、図3のS50で配置パターンP3が決定される例について説明する。図9の上の図は、配置パターンP3を有する4個の四角形画像を含む対象画像TIを示す。図3のS32で対象傾きが特定されるまでの処理の説明は省略する。
図9の中央の図は、図3のS34で生成される傾きヒストグラムを示す。図3のS40において、r11〜r18が特定され、7個の距離D11〜D17が特定される。S42では、距離D11,D15について矩形(大)が決定され、距離D12,D14,D16について余白が決定され、距離D13,D17について矩形(小)が決定される。距離D11〜D17は、所定の条件を満たすので、S44でYESと判断される。距離D11,D13,D15,D17が、それぞれ、矩形(大)、矩形(小)、矩形(大)、矩形(小)を示すので、S50では、配置パターンP3が決定される。このように、PC100は、対象画像TI内において各四角形画像が傾いていても、4個の矩形画像の配置パターンが配置パターンP3であることを正確に決定することができる(図3のS50、図9の下の図)。
(原稿が汚れている例;図10及び図11)
続いて、図10及び図11を参照して、原稿が汚れている例について説明する。本例では、原稿が汚れていることに起因して、図3のS44でNOと判断される。
図10の対象画像TIは、配置パターンP1を有するパッチコード画像PCIと、黒色の汚れを示す汚れ画像DIと、を含む。汚れ画像DIは、第2方向に沿って平行に伸びる2本の長辺を有する。当該2本の長辺の間の距離は、15〜35画素の範囲内である。当該2本の長辺のうち、原点から近い長辺、原点から遠い長辺をそれぞれ、「近位長辺」、「遠位長辺」と呼ぶ。また、汚れ画像DIと、原点に最も近い四角形画像と、の間の距離は、35画素よりも大きい。図3のS32で対象傾きが特定されるまでの処理の説明は省略する。
図10の中央の図は、図3のS34で生成される傾きヒストグラムを示す。カウント閾値である50よりも大きいカウント数を有するrjが10個存在するが、図3のS40において、左側から順に8個のrj(即ちr21〜r28)が特定され、7個の距離D21〜D27が特定される。r21,r22は、それぞれ、原点から近位長辺までの距離、原点から遠位長辺までの距離である。従って、D21は、汚れ画像DIの2本の長辺の間の距離である。D22は、汚れ画像DIと、原点に最も近い四角形画像と、の間の距離である。図3のS42では、D23,D25について矩形(大)が決定され、D24,D26について余白が決定され、D27について矩形(小)が決定される。また、汚れ画像DIの2本の長辺の間の距離は、15〜35画素であるので、D21について短辺(小)が決定される。また、D22は35画素よりも大きいので、D22についてエラーが決定される。D22が余白を示さない(即ち第2条件を満たさない)ので、S44でNOと判断される。そのため、配置パターンが決定されず、S40に戻る。
図11では、図3のS40で7個の距離が再び特定されて、配置パターンP1が決定される様子を示す。2回目のS40では、CPU130は、1回目のS40で特定されたr21〜r28のうちの左側の2個のrj(即ちr21,r22)を除外して、カウント閾値よりも大きいカウント数を有する8個のrj(即ちr31〜r38)を特定し、7個の距離D31〜D37を特定する。この結果、配置パターンP1が決定される。このように、本実施例では、汚れ画像DIが存在する場合でも、パッチコードの種類を正確に特定することができる。
なお、比較例として、図3のS42において、余白の長さを考慮しない構成が考えられる。この場合、図10の例において、D21,D23,D25,D27によって示される2個の矩形(大)及び2個の矩形(小)の並び方に基づいて、配置パターンP4(図2参照)が誤って決定される。本実施例では、余白の長さが考慮されてD22がエラーと決定されるので、配置パターンが誤って特定されるのを抑制することができる。ただし、変形例では、余白の長さを考慮しない上記の比較例の構成が採用されてもよい。
(対応関係)
PC100が、「画像解析装置」の一例である。パッチコード画像、四角形画像、図3のS24のON画素、エッジ閾値、カウント閾値、15〜35画素がそれぞれ、「コード画像」、「コード要素」、「輪郭画素」、「所定のエッジ強度」、「所定数」、「所定の範囲」の一例である。4が「N」の一例である。各四角形画像の長辺、各四角形画像の短辺がそれぞれ、「第1辺」、「第2辺」の一例である。カウント数、累積値がそれぞれ、「第1の個数」、「第2の個数」の一例である。XY座標系、rθ座標系、θ軸がそれぞれ、「第1座標系」、「第2座標系」、「直線の傾きを示す軸」の一例である。図5の仮想直線VL1〜VL8,VL10が、「2本以上の仮想直線」の一例である。配置パターンP1〜P6が、「所定のパターン」の一例である。
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
(変形例1)上記の実施例では、図3のS24の二値画像BVI(図4参照)において、全ての輪郭画素がON画素であるが、変形例では、全ての輪郭画素のうちの一部のみがON画素であってもよい。図3のS32では、四角形画像のいずれか1本の長辺上の少なくとも2個の画素がON画素であれば、対象傾きが特定され得る。また、S40では、各四角形画像について、各長辺上の少なくとも1個の画素がON画素であれば、7個の距離が特定され得る。即ち、少なくとも7個の画素がON画素であればよい。一般的に言うと、N個のコード要素の輪郭を構成する(2N+1)個の「輪郭画素」が特定されていればよい。即ち、「輪郭画素特定部」は、コード要素の輪郭を構成する一部の輪郭画素のみを特定してもよい。
(変形例2)「コード要素」は、四角形状を有さなくてもよいし、「第2辺」を有さなくてもよい。例えば、「コード要素」が有する少なくとも1本の辺は曲線であってもよい。一般的に言うと、「コード要素」は、第2方向に沿って平行に伸びる2本の第1辺を有していればよい。
(変形例3)上記の実施例では、6種類のパッチコードPCが存在するが、これに代えて、例えば、同じ形状を有する4個の矩形によって構成される所定のコードを含む原稿がスキャンされてもよい。この場合、図3のS42〜S50において、原稿が所定のコードを含むのか否かが判断され、S60において、原稿が所定のコードを含む場合には、原稿画像データを第1のフォルダに格納させ、原稿が所定のコードを含まない場合には、原稿画像データを第2のフォルダに格納させてもよい。即ち、「N個のコード要素」は、「2種類以上の四角形画像」を含まなくてもよい。
(変形例4)上記の実施例の技術は、バーコードを含む原稿がスキャンされる場合にも適用可能である。この場合、バーコードを構成する複数個の矩形画像が「N個のコード要素」の一例である。そして、図3のS40〜S50において、各矩形画像が表わす各数字が特定され、S60において、特定済みの各数字の組合せに応じた処理(例えば当該組合せに対応するフォルダへの原稿画像データの格納)が実行されてもよい。
(変形例5)図3のS32では、CPU130は、累積ヒストグラムを生成せずに、対象傾きを特定してもよい。具体的には、CPU130は、複数個のカウント数のうち、最大のカウント数を含む座標(図5の上の図ではQ1)を特定し、当該座標に含まれるθ(本例ではθ1)を特定してもよい。即ち、「傾き特定部」は、第2の個数を算出しなくてもよい。
(変形例6)図3のS32では、CPU130は、最大の累積値に対応するθ(図6ではθ1)に代えて、2番目に大きな累積値に対応するθ(図6ではθ2)を対象傾きとして特定してもよい。そして、CPU130は、S34において傾きヒストグラムを作成する際に、対象傾きから90°が減算された値(図6ではθ1)を利用してもよい。即ち、「対象傾き」は、Nセットの2本の第1辺が有する傾きでなくてもよい。
(変形例7)図3の各処理は、スキャナ200によって実行されてもよく、S60において、原稿画像データがスキャナ200内のフォルダに格納されてもよい。即ち、「画像解析装置」は、スキャナであってもよい。一般的に言うと、「画像解析装置」は、画像の解析を実行可能なあらゆる装置(例えば、多機能機、スマートフォン等)を含む。
(変形例8)上記の実施例では、PC100のCPU130がドライバプログラム134(即ち、ソフトウェア)を実行することによって、図3〜図11の各処理が実現される。これに代えて、図3〜図11の各処理のうちの少なくとも1つの処理は、論理回路等のハードウェアによって実現されてもよい。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
2:通信システム、110:操作部、112:表示部、114:ネットワークインターフェース、120:制御部、130:CPU、132:メモリ、134:ドライバプログラム、136:長さデータ、138:パターンデータ、200:スキャナ、BVI:二値画像、D1〜D37:距離、DC:原稿、DI:汚れ画像、Lx〜Lz:判定直線、MI:モノクロ画像、P1〜P6:配置パターン、PC:パッチコード、PCI:パッチコード画像、TA:対象領域、TI:対象画像、VL1〜VL10:仮想直線

Claims (11)

  1. 画像解析装置であって、
    第1色と前記第1色とは異なる第2色とを有するコード画像を含む対象画像を表わす対象画像データを取得する取得部であって、前記コード画像は、第1方向に沿って平行に配置されるN個(前記Nは2以上の整数)のコード要素を含み、前記N個のコード要素のそれぞれは、前記第1色を有すると共に、前記第1方向に直交する第2方向に沿って平行に伸びる2本の第1辺を有する、前記取得部と、
    前記対象画像データを構成する複数個の対象画素の中から、前記N個のコード要素のそれぞれについて、当該コード要素の輪郭を構成する各輪郭画素を特定する輪郭画素特定部と、
    前記各輪郭画素を解析して、前記対象画像内での前記N個のコード要素の傾きである対象傾きを特定する傾き特定部と、
    前記各輪郭画素と前記対象傾きとを利用して、前記N個のコード要素のそれぞれについて、当該コード要素の前記2本の第1辺に相当する2本の対象直線を特定することによって、(N×2)本の対象直線を特定する直線特定部と、
    前記(N×2)本の対象直線によって画定される(N×2−1)個の領域のそれぞれについて、当該領域を画定する2本の対象直線の間の距離を特定する距離特定部であって前記(N×2−1)個の領域のそれぞれは、前記(N×2)本の対象直線のうちの隣接する2本の対象直線の間の領域である、前記距離特定部と、
    前記(N×2)本の対象直線によって画定される前記(N×2−1)個の領域のそれぞれについて、当該領域が前記第1色を有するのか前記第2色を有するのかを判定する領域判定部と、
    前記(N×2−1)個の領域のうち、前記第1色を有すると判定されたN個の領域について特定されたN個の距離を利用して、前記コード画像の表現態様を決定する決定部と、
    を備える画像解析装置。
  2. 前記N個のコード要素のそれぞれは、四角形状を有し、
    前記N個のコード要素のそれぞれは、さらに、前記第1方向に沿って伸びる少なくとも1本の第2辺を有し、
    前記N個のコード要素は、互い異なる長さの前記第2辺を有する2種類以上の四角形画像を含み、
    前記距離特定部は、前記N個のコード要素のそれぞれについて、当該コード要素が有する前記2本の第1辺の間の前記距離である前記第2辺の長さを特定し、
    前記決定部は、前記N個のコード要素のそれぞれについて、当該コード要素について特定される前記第2辺の長さを利用して、当該コード要素が前記2種類以上の四角形画像のうちのいずれの種類であるのかを決定することによって、前記コード画像の前記表現態様を決定する、請求項1に記載の画像解析装置。
  3. 前記輪郭画素特定部は、
    前記複数個の対象画素に対応する複数個のエッジ強度を算出し、
    前記複数個の対象画素の中から、所定のエッジ強度よりも高いエッジ強度を有する前記各輪郭画素を特定する、請求項1又は2に記載の画像解析装置。
  4. 前記傾き特定部は、
    前記対象画像内に仮想的に配置される複数本の仮想直線のそれぞれについて、当該仮想直線上の前記輪郭画素の個数である第1の個数を算出し、
    前記複数本の仮想直線について算出される複数個の前記第1の個数を利用して、前記複数本の仮想直線が有する2個以上の傾きごとに、当該傾きを有する1本以上の仮想直線上の前記輪郭画素の累積の個数である第2の個数を算出し、
    前記2個以上の傾きのうち、最大の前記第2の個数が算出される傾きを、前記対象傾きとして特定する、請求項1から3のいずれか一項に記載の画像解析装置。
  5. 前記輪郭画素特定部は、直線の傾きを示す軸を含まない第1座標系において、前記各輪郭画素を特定し、
    前記傾き特定部は、前記第1座標系とは異なる第2座標系であって、直線の傾きを示す軸を含む前記第2座標系において、前記第1の個数と前記第2の個数とを算出し、前記対象傾きを特定する、請求項4に記載の画像解析装置。
  6. 前記直線特定部は、
    前記複数本の仮想直線の中から、前記対象傾きを有する2本以上の仮想直線を特定し、
    前記2本以上の仮想直線のうち、所定数以上の前記第1の個数が算出される(N×2)本の仮想直線を、前記(N×2)本の対象直線として特定する、請求項4又は5に記載の画像解析装置。
  7. 前記輪郭画素特定部は、直線の傾きを示す軸を含まない第1座標系において、前記各輪郭画素を特定し、
    前記直線特定部は、前記第1座標系とは異なる第2座標系であって、直線の傾きを示す軸を含む前記第2座標系において、前記2本以上の仮想直線を特定し、前記(N×2)本の対象直線を特定する、請求項6に記載の画像解析装置。
  8. 前記傾き特定部は、前記N個のコード要素が有するNセットの2本の第1辺であって、前記第2方向に沿って平行である前記Nセットの2本の第1辺が有する傾きである前記対象傾きを特定し、
    前記直線特定部は、前記各輪郭画素と前記対象傾きとを利用して、前記N個のコード要素のそれぞれについて、当該コード要素が有する前記2本の第1辺に相当する前記2本の対象直線であって、前記対象傾きを有する前記2本の対象直線を特定する、請求項1から7のいずれか一項に記載の画像解析装置。
  9. 前記画像解析装置は、さらに、
    前記(N×2−1)個の領域のうち、前記第2色を有すると判定された(N−1)個の領域について特定された(N−1)個の距離である(N−1)個の余白長さのそれぞれが所定の範囲内である場合に、前記コード画像について決定される前記表現態様に基づいて、前記N個のコード要素の配置パターンが所定のパターンであると決定し、前記(N−1)個の余白長さのうちの少なくとも1個の余白長さが前記所定の範囲内でない場合に、前記N個のコード要素の配置パターンが前記所定のパターンでないと決定するパターン決定部を備える請求項1からのいずれか一項に記載の画像解析装置。
  10. 前記取得部は、原稿画像を表わす原稿画像データから、前記原稿画像のうちの予め決められている一部の領域である前記対象画像を表わす前記対象画像データを抽出することによって、前記対象画像データを取得する、請求項1からのいずれか一項に記載の画像解析装置。
  11. 画像解析装置のためのコンピュータプログラムであって、
    前記画像解析装置に搭載されるコンピュータに、以下の各処理、即ち、
    第1色と前記第1色とは異なる第2色とを有するコード画像を含む対象画像を表わす対象画像データを取得する取得処理であって、前記コード画像は、第1方向に沿って平行に配置されるN個(前記Nは2以上の整数)のコード要素を含み、前記N個のコード要素のそれぞれは、前記第1色を有すると共に、前記第1方向に直交する第2方向に沿って平行に伸びる2本の第1辺を有する、前記取得処理と、
    前記対象画像データを構成する複数個の対象画素の中から、前記N個のコード要素のそれぞれについて、当該コード要素の輪郭を構成する各輪郭画素を特定する輪郭画素特定処理と、
    前記各輪郭画素を解析して、前記対象画像内での前記N個のコード要素の傾きである対象傾きを特定する傾き特定処理と、
    前記各輪郭画素と前記対象傾きとを利用して、前記N個のコード要素のそれぞれについて、当該コード要素の前記2本の第1辺に相当する2本の対象直線を特定することによって、(N×2)本の対象直線を特定する直線特定処理と、
    前記(N×2)本の対象直線によって画定される(N×2−1)個の領域のそれぞれについて、当該領域を画定する2本の対象直線の間の距離を特定する距離特定処理であって前記(N×2−1)個の領域のそれぞれは、前記(N×2)本の対象直線のうちの隣接する2本の対象直線の間の領域である、前記距離特定処理と、
    前記(N×2)本の対象直線によって画定される前記(N×2−1)個の領域のそれぞれについて、当該領域が前記第1色を有するのか前記第2色を有するのかを判定する領域判定処理と、
    前記(N×2−1)個の領域のうち、前記第1色を有すると判定されたN個の領域について特定されたN個の距離を利用して、前記コード画像の表現態様を決定する決定処理と、
    を実行させるコンピュータプログラム。
JP2015233432A 2015-11-30 2015-11-30 画像解析装置 Active JP6645143B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015233432A JP6645143B2 (ja) 2015-11-30 2015-11-30 画像解析装置
US15/364,315 US10270921B2 (en) 2015-11-30 2016-11-30 Image analyzing apparatus determining representation form of code image using distances of code elements

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015233432A JP6645143B2 (ja) 2015-11-30 2015-11-30 画像解析装置

Publications (2)

Publication Number Publication Date
JP2017103530A JP2017103530A (ja) 2017-06-08
JP6645143B2 true JP6645143B2 (ja) 2020-02-12

Family

ID=58777578

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015233432A Active JP6645143B2 (ja) 2015-11-30 2015-11-30 画像解析装置

Country Status (2)

Country Link
US (1) US10270921B2 (ja)
JP (1) JP6645143B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6284391A (ja) 1985-10-09 1987-04-17 Fujitsu Ltd 細長い矩形抽出方式
JP3058791B2 (ja) 1994-01-31 2000-07-04 東芝テック株式会社 画像認識装置の図形の切出し方法
JP2002044318A (ja) 2000-07-31 2002-02-08 Canon Inc スキャナ装置およびスキャナ装置の制御方法および記憶媒体
JP4254724B2 (ja) * 2005-02-16 2009-04-15 株式会社デンソーウェーブ バーコード読取り方法及びコンピュータプログラム
US8851378B2 (en) * 2009-09-24 2014-10-07 Ebay Inc. System and method for recognizing deformed linear barcodes from a stream of varied-focus video frames

Also Published As

Publication number Publication date
JP2017103530A (ja) 2017-06-08
US10270921B2 (en) 2019-04-23
US20170155779A1 (en) 2017-06-01

Similar Documents

Publication Publication Date Title
US9179035B2 (en) Method of editing static digital combined images comprising images of multiple objects
US8792128B2 (en) Apparatus, system, and method of inspecting image, and recording medium storing image inspection control program
US8634659B2 (en) Image processing apparatus, computer readable medium storing program, and image processing method
US8331670B2 (en) Method of detection document alteration by comparing characters using shape features of characters
JP4574503B2 (ja) 画像処理装置、画像処理方法およびプログラム
US9451126B2 (en) Technique for image processing
US9665770B2 (en) Image processing apparatus with an improved table image detecting unit
US8229214B2 (en) Image processing apparatus and image processing method
US9338310B2 (en) Image processing apparatus and computer-readable medium for determining pixel value of a target area and converting the pixel value to a specified value of a target image data
JP6790601B2 (ja) 画像解析装置
JP5003606B2 (ja) 画像処理装置
US20230062113A1 (en) Information processing apparatus, information processing method and non-transitory storage medium
JP6645143B2 (ja) 画像解析装置
US8260057B2 (en) Image processing apparatus that obtains a ruled line from a multi-value image
JP6970834B2 (ja) 画像処理装置、制御方法及び制御プログラム
JP6950237B2 (ja) コンピュータプログラム及び画像処理装置
US9756200B2 (en) Image processing apparatus with an improved table image detecting unit
JP7205689B2 (ja) 画像処理装置、および、コンピュータプログラム
JP5825142B2 (ja) 画像処理装置、画像処理方法およびコンピュータープログラム
US10375261B2 (en) Image scanning apparatus
JP6841254B2 (ja) 画像処理装置、および、コンピュータプログラム
KR102130815B1 (ko) 가는 선 검출 방법 및 이를 위한 장치
JP6160538B2 (ja) 画像処理装置
JP5337059B2 (ja) 画像処理装置、制御方法、及びプログラム
JP6732428B2 (ja) 画像処理装置、網点判定方法、およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181116

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190927

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191008

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191128

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: 20191210

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191223

R150 Certificate of patent or registration of utility model

Ref document number: 6645143

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150