JP2020093494A - 画像出力装置、画像出力方法および出力画像データ生産方法 - Google Patents

画像出力装置、画像出力方法および出力画像データ生産方法 Download PDF

Info

Publication number
JP2020093494A
JP2020093494A JP2018234132A JP2018234132A JP2020093494A JP 2020093494 A JP2020093494 A JP 2020093494A JP 2018234132 A JP2018234132 A JP 2018234132A JP 2018234132 A JP2018234132 A JP 2018234132A JP 2020093494 A JP2020093494 A JP 2020093494A
Authority
JP
Japan
Prior art keywords
area
block
barcode
output
image data
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.)
Pending
Application number
JP2018234132A
Other languages
English (en)
Inventor
喜代治 百瀬
Kiyoji Momose
喜代治 百瀬
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2018234132A priority Critical patent/JP2020093494A/ja
Priority to US16/710,631 priority patent/US10872216B2/en
Publication of JP2020093494A publication Critical patent/JP2020093494A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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
    • G06K7/1404Methods for optical code recognition
    • G06K7/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1443Methods for optical code recognition including a method step for retrieval of the optical code locating of the code in an image
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K1/00Methods or arrangements for marking the record carrier in digital fashion
    • G06K1/12Methods or arrangements for marking the record carrier in digital fashion otherwise than by punching
    • G06K1/121Methods or arrangements for marking the record carrier in digital fashion otherwise than by punching by printing code marks
    • 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
    • G06K7/1404Methods for optical code recognition
    • G06K7/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • G06K7/14131D bar codes
    • 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
    • G06K7/1404Methods for optical code recognition
    • G06K7/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1447Methods 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
    • 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
    • G06K7/1404Methods for optical code recognition
    • G06K7/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1452Methods for optical code recognition including a method step for retrieval of the optical code detecting bar code edges
    • 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
    • G06K7/1404Methods for optical code recognition
    • G06K7/1495Methods for optical code recognition the method including an image compression step
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Electromagnetism (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Record Information Processing For Printing (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Image Processing (AREA)

Abstract

【課題】簡易な処理によってバーコードの出力を実現する。【解決手段】原画像を示す原画像データを取得する取得部と、前記原画像がバーコード領域であるか否かをブロック毎に認定し、前記バーコード領域であるか否かを示す領域情報であって前記ブロックのそれぞれに対応づけられた前記領域情報を生成する第1生成部と、前記原画像を出力させるための出力画像データを記憶する記憶部と、前記領域情報が前記バーコード領域であることを示している領域と、前記バーコード領域でないことを示している領域と、で異なる方法によって、前記出力画像データに基づく出力を行う出力部と、を備え、前記出力画像データは、前記ブロック毎に圧縮されたJPEGデータである、画像出力装置を構成する。【選択図】図1

Description

本発明は、画像出力装置、画像出力方法および出力画像データ生産方法に関する。
従来、バーコードを含む画像を出力する技術が知られている。バーコードは当該バーコードが示す情報を読み取るために利用されるため、バーコードを出力する際には、読取装置が正確にバーコードを読み取り可能であることが要求される。特許文献1,2においては、バーコードの品質を維持し、正確な読み取りを可能にするために、各種の画像処理が行われることが開示されている。
特開2008−282339号公報 特開2009−272667号公報
上述した従来技術においては、複雑な処理を行うため、能力の高い装置が必要になる。
本発明は、簡易な処理によってバーコードの出力を実現することを目的とする。
上記目的を達成するための画像出力装置は、原画像を示す原画像データを取得する取得部と、原画像がバーコード領域であるか否かをブロック毎に認定し、バーコード領域であるか否かを示す領域情報であってブロックのそれぞれに対応づけられた領域情報を生成する第1生成部と、原画像を出力させるための出力画像データを記憶する記憶部と、領域情報がバーコード領域であることを示している領域と、バーコード領域でないことを示している領域と、で異なる方法によって、出力画像データに基づく出力を行う出力部と、を備え、出力画像データは、ブロック毎に圧縮されたJPEGデータである。
すなわち、画像出力装置においては、JPEG圧縮に際して利用されるブロックに基づいてバーコード領域であるか否かの認定を行う。従って、JPEG圧縮で実行された処理の一部を流用してバーコード領域の認定を行うことができ、複雑な処理を行わなくても簡易な処理によってバーコードであるか否か認定することができる。そして、当該認定の結果に基づいてバーコードが出力される構成においては、簡易な処理によってバーコードの出力を実現することができる。
また、原画像データをブロックに分割する分割部と、ブロック毎に原画像データを圧縮したJPEGデータを出力画像データとして生成する第2生成部をさらに備える構成であってもよい。この構成によれば、JPEG圧縮を実行する機能を備えた画像出力装置において簡易な処理によってバーコード領域の認定および出力を実現することができる。
さらに、原画像データは、JPEGデータである構成であってもよい。この構成によれば、JPEG圧縮されたデータに基づいてバーコード領域であるか否かの認定を行うことができる。
さらに、出力部は、バーコード領域であることを示している領域を印刷する場合より、バーコード領域でないことを示している領域を印刷する場合の方が、大きいドットを用いて印刷させる構成であってもよい。この構成によれば、バーコード領域に存在するバーコードがにじまないように印刷することができ、ドットの大きさを調整しない場合と比較して読取装置による読み取り精度を向上させることができる。
さらに、出力部は、バーコード領域であることを示している領域を印刷する場合、バーコード領域でないことを示している領域を印刷する場合よりも、同一の濃度の原画像を薄い濃度で印刷させる構成であってもよい。この構成によれば、バーコード領域に存在するバーコードがにじまないように印刷することができ、濃度を調整しない場合と比較して読取装置による読み取り精度を向上させることができる。
さらに、領域情報は、1個のブロックあたりに1ビットの情報である構成であってもよい。この構成によれば、非常に少ない情報量によってバーコード領域であるか否かを表現することができる。
さらに、領域情報は、出力画像データにおけるブロックの内容を示すデータに連続する情報である構成であってもよい。この構成によれば、領域情報を単独で管理する必要がなくなり、情報の管理が容易になる。
画像出力装置のブロック図である。 コピー処理のフローチャートである。 候補ブロックの判断処理のフローチャートである。 読み取られた画像の例を示す図である。 バーコードとブロックの例を示す図である。 バーコード領域の認定処理のフローチャートである。 バーコード領域の認定処理のフローチャートである。 バーコード領域の認定処理のフローチャートである。 バーコード領域の認定例を示す図である。 バーコード領域の認定例を示す図である。
ここでは、下記の順序に従って本発明の実施の形態について説明する。
(1)画像出力装置の構成:
(2)コピー処理:
(3)候補ブロックの判断処理:
(4)バーコード領域の認定処理:
(5)他の実施形態:
(1)画像出力装置の構成:
図1は、本発明の実施形態にかかる画像出力装置1の構成を示すブロック図である。画像出力装置1は、プロセッサー10と、メモリー20と、UI(User Interface)部30と、通信部40と、印刷部50と、読取部60とを備える。
UI部30は、タッチパネル式のディスプレイやキー入力部を含む。ディスプレイは、表示パネルと、表示パネルに重ねられたタッチ検出パネルとを備える。ディスプレイは、プロセッサー10の制御に基づいて様々な情報を表示パネルに表示する。また、ディスプレイはタッチ検出パネルに対するタッチ入力を受け付ける。キー入力部は、電源ボタンやスタートボタン、キャンセルボタン、数字ボタン等のキーに対する入力を受け付ける。タッチパネルやキー入力部において入力が受け付けられると、受け付けられた入力内容を示す情報がプロセッサー10に出力される。
通信部40は、リムーバブルメモリーや、外部の機器と各種の通信プロトコルに従って通信するための通信インターフェース回路を含む。印刷部50は、インクジェット方式で種々の印刷媒体に印刷を実行するためのアクチュエーターやセンサー、駆動回路、機械部品等を備えている。すなわち、印刷部50は、K(黒)インクと有彩色インク(例えば、C(シアン)インク、M(マゼンタ)インク、Y(イエロー)インク等)を印刷媒体に対して吐出し、印刷媒体上にカラー画像やモノクロ画像を形成することが可能である。むろん、インクの色や数は一例であり、他の例、例えば、同系色の濃いインクと薄いインクが使用される例等であってもよい。
なお、本実施形態において印刷部50は、複数のドットサイズのインクをインクノズルから吐出させることが可能である。ドットサイズは、2個以上であれば良く、ここでは、簡単のために大ドットと小ドットの2種類のインクが使用可能である構成を想定する。本実施形態において、印刷部50は、複数のトレイのそれぞれに印刷媒体を蓄積することが可能である。印刷部50は、各トレイに蓄積された印刷媒体を一枚ずつ選び出し、搬送経路内を搬送し、搬送の過程で印刷された印刷媒体を排出する搬送機構を有している。なお、本実施形態においては、各トレイのそれぞれに同一サイズの印刷媒体を蓄積することで異なるサイズの印刷媒体に印刷を行うことができる。
読取部60は、原稿台、光源、センサー、キャリッジ、キャリッジを一定方向に沿って往復移動させるための図示しない搬送機構等を備えている。すなわち、読取部60は、キャリッジを移動させながら原稿台に載置された原稿に光源から光を照射し、原稿からの光をセンサーで読み取り、読み取り結果を示す原画像データを取得するスキャンを実行可能である。
プロセッサー10は、1又は複数のCPU,RAM等を備え、メモリー20に記録された種々のプログラムを実行することによって、画像出力装置1の各機能を実現する。例えば、プロセッサー10は、UI部30から取得した情報に基づいて利用者による入力内容を取得することができ、当該入力内容に対応する処理を実行することができる。また、プロセッサー10は、原稿読み取りの指示に応じて読取部60を制御し、原稿を読み取らせる。さらに、プロセッサー10は、原稿コピーの指示に応じて、読取部60を制御して原稿を読み取らせ、印刷部50を制御して読み取った画像の印刷媒体への印刷を実行させる。むろん、画像出力装置1は、通信部40を介して画像出力装置1に接続された外部の機器(例えば、他のコンピューターや携帯端末等)に制御されても良い。
コピー機能においては、原稿の内容と同等の内容を印刷することを目的としているが、原稿の内容によって適した印刷方法が異なるため、プロセッサー10は読取部60で読み取った原稿の内容を解析し、原稿の内容に応じた方法で印刷を行うように印刷部50を制御する。すなわち、原稿がカラー写真を含む場合、プロセッサー10はCMYKインクのそれぞれが使用され得る状態で印刷部50にカラー写真の印刷を行わせる。原稿が黒色の文字を含む場合、プロセッサー10は文字領域をKインクのみが使用され得る状態として、印刷部50に黒色の文字の印刷を行わせる。
原稿にバーコードが含まれる場合、プロセッサー10は、バーコード領域について、Kインクを使用し、さらに通常の印刷よりもインクの記録密度が少ない状態で印刷部50に印刷を行わせる。バーコード領域以外の部分においては、当該部分が写真領域、文字領域のいずれかであるかに応じてインクを選択して印刷部50に印刷を行わせる。
このように、本実施形態にかかる画像出力装置1は、バーコード領域において通常の印刷よりもインクの記録密度を下げる。これによってインクの滲みを抑え、バーコードが認識されやすくなる。プロセッサー10は、図示しない画像出力プログラムを実行することによってこのような印刷を実現する。画像出力プログラムが実行されると、プロセッサー10は、取得部10a、分割部10b、判断部10c、認定部10d、第1生成部10e、第2生成部10f、出力部10gとして機能する。
取得部10aは、原画像を示す原画像データを取得する機能である。すなわち、利用者は読取部60の原稿台にバーコードを含む原稿をセットする。そして、UI部30に対する操作によって利用者がコピー機能の開始を指示すると、プロセッサー10は、取得部10aの機能によって読取部60を制御し、原稿を読み取らせる。プロセッサー10は、当該読み取りによって取得されたデータを原画像データ20aとしてメモリー20に記録する。本実施形態においては、読み取り結果が原画像データ20aであり、コピーのために読み取られた画像が原画像である。以上のように、本実施形態にかかる画像出力装置1は、プロセッサー10が取得部10aとして機能して読取部60を制御することにより、スキャナーとして機能する。
分割部10bは、原画像データ20aをブロックに分割する機能である。すなわち、プロセッサー10は、メモリー20を参照し、原画像データ20aを取得する。そして、プロセッサー10は、予め決められた大きさのブロック毎の画像データに原画像データ20aを分割する。なお、本実施形態において分割に利用されるブロックは、JPEG圧縮の際に利用されるブロックと同一のブロックである。すなわち、JPEG圧縮においては、多くの場合、8×8画素、16×16画素、16×8画素、8×16画素のいずれかのサイズのブロック毎の画像に画像が分割される。本実施例では、16×16画素のサイズのブロック毎の画像に画像を分割するものとする。分割部10bによる分割は、JPEG圧縮の工程の一部を兼ねているため、プロセッサー10は、分割部10bの機能により、これらのいずれかの大きさのブロック毎の画像に原画像を分割する。分割後の画像データは図示しないRAMに記録される。
判断部10cは、画像を分割して得られる各ブロックが、バーコード領域のブロックの候補である候補ブロックであるか否かを判断する機能である。すなわち、プロセッサー10は、判断部10cの機能により、分割部10bによって分割された各ブロックの中からバーコード領域である可能性があるブロックを特定し、候補ブロックとする。候補ブロックではないブロックは非黒文字領域である。なお、本実施形態において非黒文字領域は、カラー写真またはモノクロ写真であるが、むろん、カラーやモノクロ等の図形等を含む領域であってもよい。
本実施形態において、候補ブロックは、モノクロエッジ(無彩色のエッジ)の数が閾値以上存在するブロック、または、カラーエッジ(有彩色のエッジ)が存在せず隣に候補ブロックが存在するブロックである(詳細は後述)。すなわち、本実施形態におけるバーコードは1次元バーコードであり、当該バーコードは複数の黒い直線によって構成されている。従って、バーコードを含むバーコード領域にはカラーエッジが存在せず、モノクロエッジが比較的多く存在する。そのため、このようなブロックは、バーコード領域の可能性があると推定可能である。しかし、このような特徴は黒文字でも現れるため、バーコードであると断定することはできない。そこで、本実施形態においては、このような特徴のオブジェクトが含まれるブロックを候補ブロックと見なし、さらなる解析によってバーコード、黒文字のいずれであるのかを認定する構成が採用されている。
認定部10dは、候補ブロックが第1方向に第1閾値以上連続し、第1方向に直交する第2方向に第2閾値以上並ぶ領域を、バーコード領域と認定する機能である。すなわち、1次元バーコードは、バーコードを構成する直線に平行な方向に黒い部位が連続しており、バーコードを構成する直線に垂直な方向に直線が離散的に存在する。従って、バーコードを構成する直線と略平行な方向を第1方向とすれば、当該第1方向に候補ブロックが連続している場合に、そのブロックにバーコードを構成する直線が含まれる可能性があると推定することができる。第1閾値は、このような第1方向への連続数がバーコードとして妥当であると見なすことができるような数値として予め設定された値である。
さらに、バーコードを構成する直線と垂直な方向においては、当該直線が幅を有し、本実施形態において直線の幅は候補ブロックの大きさ1個分程度がそれ以上である。さらに、バーコードを構成する直線と垂直な方向において、当該直線は離散的に存在するが、比較的密に存在する。従って、バーコードを構成する直線と垂直な方向において、候補ブロックが連続して存在し、また、候補ブロックの間に少数の候補ブロックではないブロックを挟んだ状態で候補ブロックが連続し得る。このため、バーコードを構成する直線と垂直な方向に候補ブロックが連続している場合に、そのブロックにバーコードを構成する直線が含まれる可能性があると推定することができる。第2閾値は、このような第2方向への連続数がバーコードとして妥当であると見なすことができるような数値として予め設定された値である。
詳細は後述するが、本実施形態においてプロセッサー10は、以上のような処理により、候補ブロックがバーコードを含み得るブロックであると推定される場合に、当該ブロックをバーコード領域であると認定する。一方、候補ブロックがバーコードを含み得るブロックでない場合、プロセッサー10は、当該ブロックを黒文字領域であると認定する。
第1生成部10eは、バーコード領域であるか否かを示す領域情報であってブロックのそれぞれに対応づけられた領域情報を生成する機能である。本実施形態において各ブロックは、非黒文字領域(カラー写真またはモノクロ写真)、黒文字領域、バーコード領域に分類されるため、プロセッサー10は、分類を示す情報を生成する。すなわち、プロセッサー10は、各ブロックが非黒文字領域であるか否か、黒文字領域であるか否かを示す情報を生成し、各ブロックに対応づける。さらに、プロセッサー10は、各ブロックがバーコード領域であるか否かを示す情報を生成し、各ブロックに対応づける。
なお、本実施形態において、各ブロックが非黒文字領域であるか否か、黒文字領域であるか否か、バーコード領域であるか否かを示す情報は1ビットの情報(フラグ)である。本実施形態においては、バーコード領域であるか否かを示す情報を領域情報と呼ぶ。プロセッサー10は、各ブロックに各ブロックが非黒文字領域であるか否かを示す情報、黒文字領域であるか否かを示す情報を対応づけ、その次に領域情報を対応づける。従って、本実施形態において領域情報は、出力画像データにおけるブロックの内容を示すデータ(非黒文字領域であるか否かを示す情報、黒文字領域であるか否かを示す情報)に連続する情報である。この構成により、領域情報を、ブロックに関する他の情報と別個に単独で管理する必要がなくなる。
第2生成部10fは、ブロック毎に原画像データ20aを圧縮したJPEGデータを出力画像データとして生成する機能である。すなわち、本実施形態にかかる画像出力装置1は、読み取った画像をJPEG圧縮された出力画像データ20bとして保存する機能を有している。本実施形態において、プロセッサー10は、第2生成部10fの機能により、バーコード領域であるか否かを判断するための単位となったブロックと同一のブロック毎に圧縮を行う。すなわち、プロセッサー10は、分割部10bの機能によって分割された各ブロックに対して離散コサイン変換を行う。さらに、離散コサイン変換の変換結果を量子化し、ハフマン符号を用いて圧縮する。圧縮されたデータは1ファイルのデータとされ、出力画像データ20bとしてメモリー20に記録される。
出力部10gは、出力画像データに基づく出力を行う機能である。すなわち、プロセッサー10は、出力画像データ20bを参照し、JPEG圧縮データを展開する。さらに、プロセッサー10は、展開された画像データに基づいて、当該画像データが示す画像を印刷部50に印刷させるための制御データを生成する。そして、プロセッサー10は、印刷部50を制御して、当該画像を印刷させる。
本実施形態においては、画像データに基づいて制御データを生成する際に、ブロック毎に異なる方法で印刷させることができる。すなわち、プロセッサー10は、各ブロックに対応づけられた情報(非黒文字領域であるか否かを示す情報、黒文字領域であるか否かを示す情報、バーコード領域であるか否かを示す領域情報)に基づいて、各ブロックの内容を特定する。そして、各ブロックの内容に応じて、内容毎に異なる画像処理を実行する。この結果、各ブロックの内容に応じて異なる方法で印刷が行われる。
具体的には、非黒文字領域である情報が対応づけられたブロックであれば、プロセッサー10は、ブロック内の各ピクセルをインクドットによる表現に変換する際に、CMYKの各インクを使用し得る状態で変換を行う。また、黒文字領域である情報が対応づけられたブロックであれば、プロセッサー10は、ブロック内の各ピクセルをインクドットによる表現に変換する際に、Kインクのみを使用する状態で変換を行う。
さらに、バーコード領域であることを示す情報が対応づけられたブロックであれば、プロセッサー10は、黒文字領域における処理と同様の処理により、Kインクのみが使用される状態でブロック内の各ピクセルをインクドットによる表現に変換する。当該変換に加え、プロセッサー10は、各インクドットを小ドットに変換する。当該変換は黒文字領域で印刷されるドットの方がバーコード領域で印刷されるドットよりも大きくなるように行われればよい。例えば、大ドット、小ドットの2種類のドットを印刷可能である構成であれば、黒文字領域における処理と同様の処理によって大ドットとされたドットを、プロセッサー10が小ドットに変換する構成等であれば良い。むろん、小ドットに変換されるドットはブロック内の全てのドットであってもよいし、一部であってもよい。
以上のようにして制御データが生成されると、プロセッサー10は、印刷部50を制御して出力画像データ20bが示す画像を印刷させる。以上の構成によれば、本実施形態においては、領域情報がバーコード領域であることを示している領域と、バーコード領域でないことを示している領域(非黒文字領域や黒文字領域)とにおいて、異なる方法で印刷が行われる。なお、ここでは、ブロック毎の内容に応じて使用され得るインクの色と印刷されるドットの大きさが変化する構成を説明したが、むろん、他の画像処理が異なっていてもよい。例えば、色変換テーブルやガンマ補正のパラメーター等が異なっていてもよい。
以上のような本実施形態においては、JPEG圧縮に際して利用されるブロックに基づいてバーコード領域であるか否かの認定を行う。従って、JPEG圧縮で実行された処理の結果を流用することができ、複雑な処理を行わなくても簡易な処理によってバーコードであるか否か認定することができる。このため、バーコードであるか否かの認定のために高度なハードウェア資源が必要とされることはない。
また、本実施形態においては、画像を複数のブロックに分割し、ブロック毎にバーコード領域であるか否かを認定する。ブロックはJPEG圧縮に際して利用されるブロックであるため、画像の画素数よりも少数である。従って、少数のブロックについてバーコード領域であるか否か判断することが可能であり、少ない数の判断に基づいてバーコード領域を特定可能である。
また、本実施形態においては、通常の印刷においても実施される黒文字領域であるか否の判断結果を流用して、バーコード領域であるか否かの認定を行う対象の候補ブロックを特定することができる。従って、バーコード領域であるか否かの認定を行うための処理を簡易なものにすることができる。さらに、本実施形態においては、候補ブロックが縦横に並ぶ数に基づいてバーコード領域であるか否かの認定を行うことができる。従って、非常に簡易な処理によってバーコード領域であるか否かの認定を行うことが可能である。
バーコード領域であるか否かを示す領域情報はブロック毎に1ビットの情報で記述される。従って、原画像データ20aの横画素数がPx、縦画素数がPyであり、ブロックの横画素数がBx、縦画素数がByである場合、(Px/Bx)×(Py/By)ビットで領域情報を表現可能である。このため、原画像データ20aと比較して非常に小さい量で領域情報を記述することができ、バーコード領域であるか否かを記録するために必要とされる記憶媒体の容量を抑制することができる。
さらに、本実施形態においては、ドットの大きさを小ドットにするのみでバーコード領域内のバーコードを印刷する制御を行うことができる。従って、極めて簡易な構成によってバーコード領域内の印刷の方法を特定することができる。そして、バーコード領域内の印刷対象が小ドットで印刷される場合、印刷結果が印刷媒体上で他の黒い文字等と比較して薄く見えることはあり得るが、印刷結果がにじむ可能性が低減されるため、バーコードの読取装置での読み取り精度を向上させることができる。すなわち、大ドットで印刷される場合と比較して、小ドットで印刷されたバーコードはバーコードの読取装置による読み取り結果の誤認識率を低減させることができる。
(2)コピー処理:
次に、コピー処理の手順を図2に示すフローチャートに沿って説明する。利用者が原稿台に原稿を載せ、UI部30によってスキャン指示を行うと、プロセッサー10は当該スキャン指示を受け付け、図2に示すコピー処理を開始する。コピー処理が開始されると、プロセッサー10は、取得部10aの機能により、読取部60を制御して原稿の読み取りを行う(ステップS100)。
すなわち、プロセッサー10は、黒基準および白基準に基づいて、黒レベルおよび白レベルを設定し、ゲインを設定する。そして、プロセッサー10は、光源を点灯させ、キャリッジによる走査を行いながらセンサーによる読み取りを行う。読み取りが行われると、プロセッサー10は、取得部10aの機能により、読み取り結果を示す原画像データ20aを取得し、メモリー20に記録する。
次に、プロセッサー10は、分割部10bの機能により、原画像を複数のブロックに分割する(ステップS110)。すなわち、プロセッサー10は、JPEG圧縮のためのブロックサイズとして選択し得る既定のサイズ(例えば8×8画素等)から処理に利用するサイズを選択し、当該サイズによって原画像を分割する。サイズは種々の手法で選択されてよく、予め決められていてもよいし、利用者によって決められてもよいし、原画像のサイズ等によって決められてもよい。
次に、プロセッサー10は、第2生成部10fの機能により、JPEGデータを生成する(ステップS120)。すなわち、プロセッサー10は、分割された画像データのブロックのそれぞれに対して離散コサイン変換を行い、量子化し、ハフマン符号を用いて圧縮する。生成されたJPEGデータは、出力画像データ20bとしてメモリー20に記録される。なお、ステップS120におけるJPEGデータの生成は、領域情報の生成(後述するステップS150)の後であってもよいし、並行して実施されてもよい。
このJPEGデータの生成の詳細については、一般的なJPEGデータの生成方法を使用してもよいが、処理対象ブロックの種類を判別し、ブロック毎にその判別結果に応じた処理を行うようにしても良い。例えば、空白であるか否かを判定して空白ブロックには空白用圧縮処理を行う、ブロック毎にカラーエッジやモノクロエッジの個数によりブロック内の画像データの種類を文字か写真かを含む複数の種類に判定し、種類に応じて画像データの不要成分を特定し、特定した不要成分を抑制または削除する圧縮処理を行って良好な画質を保持しながら圧縮率を高めることなどが行われる。そのようなJPEGデータの生成処理で実行された処理の結果は、候補ブロックの判断(後述するステップS130)にて流用することができ、流用によって簡易な処理とすることが可能である。
次に、プロセッサー10は、判断部10cの機能により、候補ブロックの判断を行う(ステップS130)。すなわち、プロセッサー10は、分割部10bの機能によって得られた各ブロックについて、ブロックが非黒文字領域と判断されれば候補ブロックから除外し、黒文字領域またはバーコード領域であると推定されれば当該ブロックが候補ブロックであると判断する。なお、候補ブロックであると判断されなかったブロックは非黒文字領域であり、プロセッサー10は、当該ブロックに対して非黒文字領域であるか否かを示す情報を対応づけてRAMに記録する。ステップS130の詳細は後述する。
次に、プロセッサー10は、認定部10dの機能により、バーコード領域の認定を行う(ステップS140)。すなわち、プロセッサー10は、ステップS130で候補ブロックとされたブロックのそれぞれがバーコード領域であるか否かを、所定の基準に基づいて認定する。なお、バーコード領域と判断されなかった候補ブロックは黒文字領域であり、プロセッサー10は、当該ブロックに対して黒文字領域であるか否かを示す情報を対応づけてRAMに記録する。また、プロセッサー10は、バーコード領域と判断された候補ブロックに対し、バーコード領域であるか否かを示す情報を対応づけてRAMに記録する。ステップS140の詳細は後述する。
次に、プロセッサー10は、第1生成部10eの機能により、領域情報を生成する(ステップS150)。すなわち、ステップS140において、バーコード領域であると認定されなかった候補ブロックは黒文字領域と見なされ、プロセッサー10は、当該ブロックに対して黒文字領域であるか否かを示す情報を対応づける。ステップS140において、バーコード領域であると認定された候補ブロックに対しては、プロセッサー10が、バーコード領域であるか否かを示す1ビットの領域情報を対応づける。なお、非黒文字領域であるか否かを示す情報と、黒文字領域であるか否かを示す情報と、バーコード領域であるか否かを示す領域情報とは、連続したデータとして記述される。
次に、プロセッサー10は、出力部10gの機能により、出力を行う(ステップS160)。すなわち、プロセッサー10は、出力画像データ20bを参照し、JPEG圧縮データを展開する。さらに、プロセッサー10は、展開された画像データに基づいて、当該画像データが示す画像を印刷部50に印刷させるための制御データを生成する。この際、プロセッサー10は、非黒文字領域であるか否かを示す情報と、黒文字領域であるか否かを示す情報と、バーコード領域であるか否かを示す領域情報とを参照して、画像処理の内容を決定する。
すなわち、ブロックに非黒文字領域であることを示す情報が対応づけられている場合、プロセッサー10は、使用インクをCMYKインクとして色変換を行う。ブロックに黒文字領域であることを示す情報が対応づけられている場合、プロセッサー10は、使用インクをKインクとして色変換を行う。さらに、ブロックにバーコード領域であることを示す情報が対応づけられている場合、プロセッサー10は、使用インクをKインクとして色変換を行い、ドットの大きさを決定する処理を行う。そして、ドットの中に最小のドットよりも大きいドットが含まれる場合、プロセッサー10は、当該ドットを最小のドットに変換する処理を行う。このような画像処理を含む処理が行われると、プロセッサー10は、処理結果に基づいて印刷部50を制御して、出力画像データ20bが示す画像を印刷させる。
(3)候補ブロックの判断処理:
次に、ステップS130における候補ブロックの判断処理の手順を図3に示すフローチャートに沿って説明する。また、ここでは、図4に示すような原稿を適宜参照して説明を行う。図4に示す例において原画像は、矩形の枠の左側に人物の写真P、右側上部にバーコードBc、右側下部に文字Cが含まれた画像である。なお、図4においては、原画像において黒で表現された部分を黒で示し、原画像において有彩色で表現された部分をグレーで示している。従って、図4に示す例において、写真Pは有彩色で表現されたカラー写真であり、比較的大きな黒い部分Pkが含まれている。バーコードBcは黒で表現されている。文字Cには黒で表現された文字と有彩色で表現された文字が含まれる。
図3に示す候補ブロックの判断処理が開始されると、プロセッサー10は、処理対象ブロックを設定する(ステップS200)。すなわち、プロセッサー10は、ステップ110で取得された複数のブロックの中で、候補ブロックの判断が行われていないブロックを一つ選択し、処理対象ブロックに設定する。
次に、プロセッサー10は、処理対象ブロックが空白であるか否かを判断する(ステップS205)。本実施形態においては、白と見なすことができる階調値の範囲が予め決められており、プロセッサー10は、処理対象ブロックに含まれる全ての画素の階調値が当該範囲内に含まれる場合に、処理対象ブロックが空白であると判断する。例えば、処理対象ブロックが図4に示す白地の部分に存在するブロックBwである場合、当該ブロックBwは白であるため、空白であると判断される。写真PやバーコードBcを含むブロックは、少なくとも一部の画素が範囲外となるため、空白であると判断されない。
ステップS205において、処理対象ブロックが空白であると判断された場合、プロセッサー10は、処理対象ブロックを非黒文字領域に設定する(ステップS240)。すなわち、プロセッサー10は、処理対象ブロックに対して非黒文字領域であることを示す情報を対応づけてRAMに記録する。
ステップS205において、処理対象ブロックが空白であると判断されない場合、プロセッサー10は、エッジ検出を行う(ステップS210)。本実施形態においては、カラーエッジとモノクロエッジとを利用して処理対象ブロックがバーコード領域に含まれるか否かの判断を行う。そこで、プロセッサー10は、処理対象ブロックの画素毎の階調値をYUV色空間に変換する(原画像データ20aがRGB色空間でなくYUV色空間で表現されているならば省略可)。そして、Y,U,V成分のそれぞれにエッジ検出フィルタを適用し、エッジ画素を検出する。なお、エッジ検出フィルタは、種々のフィルタであってよく、Laplacianフィルタや、Sobelフィルタ、Prewittフィルタ等のフィルタを使用可能である。むろん、変換後の色空間はYUV色空間に限定されず、YCbCr色空間であってもよいし、YPbPr色空間であってもよい。
次に、プロセッサー10は、処理対象ブロック内のカラーエッジ数が0であるか否かを判断する(ステップS215)。ここで、カラーエッジはU成分のエッジとV成分のエッジであり、カラーエッジ数は両エッジの数の和である。すなわち、YUV色空間においては、U成分およびV成分が非0であり、その大きさが有意な大きさである場合に有彩色であると見なすことができる。従って、U成分およびV成分のエッジは有彩色で表現された部分のエッジを示している。
そこで、プロセッサー10は、両成分のエッジの和をカウントし、両成分のエッジの和が0でなければ処理対象のブロックが有彩色の部分を含むブロックであると見なす。そして、ステップS215において、処理対象ブロック内のカラーエッジ数が0であると判断されない場合、プロセッサー10はステップS240を実行し、処理対象ブロックを非黒文字領域に設定する。例えば、図4に示す、写真Pの有彩色部分では、カラーエッジ数が0にはならないため、写真Pを含む処理対象ブロックは非黒文字領域に設定される。また、写真Pに比較的大きな黒い部分Pkが含まれていたとしても、その周を示す線にはカラーエッジが存在するため、部分Pkの周を示す線を含む処理対象ブロックは非黒文字領域に設定される。
一方、ステップS215において、処理対象ブロック内のカラーエッジ数が0であると判断された場合、プロセッサー10は、モノクロエッジ数が閾値以上であるか否かを判断する(ステップS220)。ここで、モノクロエッジは、Y成分のエッジである。このようなモノクロのエッジは、黒で表現された黒文字の縁と黒で表現されたバーコードの縁に現れる。本実施形態においては、ブロック内に存在するオブジェクトが黒文字やバーコードである場合におけるモノクロエッジ数の下限値が統計的に特定され、閾値として定義されている。従って、モノクロエッジ数が閾値以上である場合、処理対象ブロックが黒文字領域またはバーコード領域であると判断することができる。
図5は、黒い文字およびバーコードをブロックとともに示す図である。同図5において、破線はブロックの境界を示している。また、図5に示す例において、バーコードおよび黒い文字(数字)はブロックの辺に対して僅かに傾いている。図5に示すように、バーコードを構成する黒い直線や黒い文字はブロックより大きく、黒い直線や黒い文字が存在するブロックの多く(例えば、ブロックBb)においては、ブロックの縦方向や横方向の全長に渡って黒い直線や黒い文字が存在する。そこで、このような状態の黒い直線や黒い文字がブロック内で形成するエッジの数の下限値を閾値とすれば、ブロックが黒文字領域またはバーコード領域であるか否か判断することができる。
そこで、ステップS220において、モノクロエッジ数が閾値以上であると判断された場合、プロセッサー10は、処理対象ブロックを候補ブロックに設定する(ステップS230)。すなわち、プロセッサー10は、処理対象ブロックに対して候補ブロックであることを示す情報を対応づけてRAMに記録する。
一方、ステップS220において、モノクロエッジ数が閾値以上であると判断されない場合、プロセッサー10は、処理対象ブロックに候補ブロックが隣接するか否かを判断する(ステップS235)。すなわち、処理対象ブロックにバーコードの端部や黒い文字の端部、黒い文字の句読点等が含まれ、他のオブジェクトが含まれない場合、モノクロエッジ数が閾値よりも少なくなる場合がある。例えば、図5に示すブロックBeにおいては、モノクロエッジ数が閾値以下になり得る。
ただし、この場合であれば、処理対象ブロックに隣接して黒い文字やバーコードを含むブロックが存在するはずである。従って、処理対象ブロックに隣接して候補ブロックが存在するならば、処理対象ブロックにも黒い文字やバーコードが含まれ得ると推定することができる。そこで、ステップS235において、処理対象ブロックに候補ブロックが隣接すると判断された場合、プロセッサー10は、ステップS230において処理対象ブロックを候補ブロックに設定する。
一方、ステップS235において、処理対象ブロックに候補ブロックが隣接すると判断されない場合、プロセッサー10はステップS240を実行し、処理対象ブロックを非黒文字領域に設定する。例えば、図4に示すように、写真Pに比較的大きな黒い部分Pkが含まれている場合、黒い部分Pkの内側のブロック(周を含まないブロック)は、均一な黒であるためモノクロエッジ数が少ない。従って、ステップS220の判断を経てステップS235が実行されるが、当該ブロックの周囲に候補ブロックが存在しないため、ステップS240にて非黒文字領域に設定される。
ステップS230またはステップS240において、処理対象ブロックが候補ブロックまたは非黒文字領域に設定されると、プロセッサー10は、全ブロックについて処理が終了したか否かを判断する(ステップS250)。すなわち、プロセッサー10は、ステップS110で分割されたブロックの全てについてステップS200〜S240の設定が行われた場合に、全ブロックについて処理が終了したと判断する。ステップS250において、全ブロックについて処理が終了したと判断されない場合、プロセッサー10は、ステップS200以降の処理を繰り返す。一方、ステップS250において、全ブロックについて処理が終了したと判断された場合、候補ブロックの判断処理を終了し、図2に示す処理に復帰する。
(4)バーコード領域の認定処理:
次に、ステップS140におけるバーコード領域の認定処理の手順を図6〜図8に示すフローチャートに沿って説明する。バーコード領域の認定処理において、プロセッサー10は、ブロックの配置を示す直交座標系を導入する。当該直交座標系の軸はブロックの辺に平行な軸であり、ここでは、一方が第1方向、第2方向となる。
図5においては当該第1方向および第2方向を示しており、この例において第1方向は上から下に向けて数値が増加する軸であり、第2方向は左から右に向けて数値が増加する軸である。ここでは、第1方向の座標をy座標、第2方向の座標をx座標として表現する。従って、左上のブロックが座標(x,y)=(0,0)のブロックであり、座標(0,0)のブロックからみて一つ下のブロックは座標(0,1)であり、座標(0,0)のブロックからみて一つ右のブロックは座標(1,0)である。
このような座標系において、プロセッサー10は、第2方向の候補ブロックの位置を示す座標値xを0に初期化する(ステップS300)。また、プロセッサー10は、第1方向の候補ブロックの位置を示す座標値yを0に初期化し、第1方向の候補ブロックの連続数をカウントするための変数mを0に初期化する(ステップS305)。
次に、プロセッサー10は、座標(x,y)のブロックが候補ブロックであるか否かを判断する(ステップS310)。すなわち、本実施形態においては、第1方向の座標値yと第2方向の座標値xを変化させながら、候補ブロックの全てを処理対象としていく。このため、プロセッサー10は、現在の座標値(x,y)で示されるブロックが候補ブロックであるか否かを判断する。
図9は、図5に示す例と同一の例において、ステップS130の判断が行われた結果を示す図である。すなわち、図5において候補ブロックと判断されたブロックをグレーに着色して示している。この例において、例えば、処理対象のブロックがブロックB1である場合、ステップS310において、座標(x,y)のブロックが候補ブロックであると判断されない。一方、処理対象のブロックがブロックB2である場合、ステップS310において、座標(x,y)のブロックが候補ブロックであると判断される。
ステップS310において、座標(x,y)のブロックが候補ブロックであると判断された場合、プロセッサー10は、変数mをインクリメントする(ステップS315)。すなわち、プロセッサー10は、第1方向の候補ブロックの連続数を1増加させる。
一方、ステップS310において、座標(x,y)のブロックが候補ブロックであると判断されない場合、プロセッサー10は、変数mが0より大きく第1閾値より小さいか否かを判断する(ステップS320)。すなわち、mが0より大きい場合、候補ブロックが第1方向に1個以上存在する状態であり、mが第1閾値より小さい場合、候補ブロックの連続数が第1閾値に満たない。このため、変数mが0より大きく第1閾値より小さい場合、候補ブロックが第1方向に1個以上存在するが、第1閾値以上連続しておらず、プロセッサー10は、一旦、これらの候補ブロックがバーコードではないと推定する。
このため、ステップS320において、変数mが0より大きく第1閾値より小さいと判断された場合、プロセッサー10は、座標(x,y−m)から座標(x,y−1)のブロックを候補ブロックから除外する(ステップS325)。このような処理において、例えば、第1閾値が5である場合、例えば、ブロック群B3は一旦候補ブロックから除外されるが、ブロック群B4は候補ブロックから除外されない。
一方、変数mが0より大きく第1閾値より小さいと判断されない場合、候補ブロックが第1方向に第1閾値以上連続している。このため、プロセッサー10は、ステップS325をスキップし、第1閾値以上連続している候補ブロックを候補ブロックとして維持する。ステップS325で候補ブロックの除外が行われ、またはステップS325がスキップされた場合、プロセッサー10は、再度カウントを行うため変数mを0に初期化する(ステップS330)。
ステップS315で変数mのインクリメントが行われ、または、ステップS330で変数の初期化が行われると、プロセッサー10は、座標値yをインクリメントする(ステップS335)。次に、プロセッサー10は、座標値yが最大値ymaxを超えたか否か判断する(ステップS340)。すなわち、ステップS110で得られたブロックは、第1方向のブロックの数がymaxであり、プロセッサー10は、第1方向の端部(図9の下端)まで候補ブロックの走査が行われたか否か判断する。
ステップS340で、座標値yが最大値ymaxを超えたと判断されない場合、プロセッサー10は、ステップS310以降の処理を繰り返す。一方、ステップS340で、座標値yが最大値ymaxを超えたと判断された場合、プロセッサー10は、座標値xをインクリメントし(ステップS345)、座標値xが最大値xmaxを超えたか否か判断する(ステップS350)。すなわち、ステップS110で得られたブロックは、第2方向のブロックの数がxmaxであり、プロセッサー10は、第2方向の端部(図9の右端)まで候補ブロックの走査が行われたか否か判断する。ステップS350で、座標値xが最大値xmaxを超えたと判断されない場合、プロセッサー10は、ステップS305以降の処理を繰り返す。すなわち、第2方向に異なる位置について第1方向の上端から再度走査を行う。
ステップS350で、座標値xが最大値xmaxを超えたと判断された場合、プロセッサー10は、図7に示すフローチャートに遷移し、第2方向について候補ブロックが連続するか否かを判断する処理を行う。このため、プロセッサー10は、座標値yを0に初期化する(ステップS400)。また、プロセッサー10は、座標値xを0に初期化し、第2方向の候補ブロックの連続数をカウントするための変数jを0に初期化し、候補ブロックではないブロックの第2方向の連続数をカウントするための変数kを0に初期化する(ステップS405)。
次に、プロセッサー10は、座標(x,y)のブロックが候補ブロックであるか否かを判断する(ステップS410)。すなわち、ここでも、第2方向の座標値xと第1方向の座標値yを変化させながら、候補ブロックの全てを処理対象としていく。このため、プロセッサー10は、現在の座標値(x,y)で示されるブロックが候補ブロックであるか否かを判断する。
ステップS410において、座標(x,y)のブロックが候補ブロックであると判断された場合、プロセッサー10は、変数kを0とし、変数jをインクリメントする(ステップS415)。すなわち、プロセッサー10は、候補ブロックではないブロックの第2方向における連続数を0とし、第2方向の候補ブロックの連続数を1増加させる。
一方、ステップS410において、座標(x,y)のブロックが候補ブロックであると判断されない場合、プロセッサー10は、変数jが0より大きいか否かを判断する(ステップS420)。すなわち、座標(x,y)のブロックに対して第2方向の負方向に隣接するブロックが第2方向に連続する候補ブロックとしてカウントされていた場合、変数jが0より大きくなる。座標(x,y)のブロックに対して第2方向の負方向に隣接するブロックが第2方向に連続する候補ブロックとしてカウントされていなかった場合、変数jは0である。ステップS420において、変数jが0より大きいと判断されない場合、プロセッサー10は、ステップS425〜S445をスキップする。この場合、座標(x,y)のブロックに対する処理は行われないため、座標(x,y)のブロックは候補ブロックでない状態が維持される。
一方、ステップS420において、変数jが0より大きいと判断された場合、すなわち、第2方向に候補ブロックが連続している場合、プロセッサー10は、変数jおよび変数kをインクリメントする(ステップS425)。なお、ステップS425が実行される場合、処理対象のブロックは候補ブロックではないが、本実施形態においては、第2方向の候補ブロックの連続数をカウントするための変数jと、候補ブロックではないブロックの第2方向の連続数をカウントするための変数kとの双方がインクリメントされる。この結果、変数jにおいては、候補ブロックではないブロックが第2方向に並んでいても、候補ブロックではないブロックを含めてその連続数が変数jとしてカウントされる。
このような状況は、例えば、ブロックB5が処理対象である場合に発生する。すなわち、処理対象のブロックがブロックB5である場合、ステップS410において座標(x,y)のブロックは候補ブロックではないと判断される。この場合、直前に処理対象になっていたブロックがブロックB6についてステップS410が行われた際に変数jが1になっているため、ステップS420において0<jであると判断され、ステップS425において変数jが2、変数kが1になる。従って、ブロックB6,B5の並びにおいて、ステップS425が実行されると、変数jは候補ブロックであるブロックB5と候補ブロックではないブロックB6との数を合わせた2とカウントされた状態になる。また、変数kはこれらのブロックの中、候補ブロックではないブロックが連続する数を示すことになる。
次に、プロセッサー10は、変数kが第3閾値より大きいか否か判断する(ステップS430)。ここで、第3閾値は、候補ブロックではないブロックが第2方向に並んでいてもバーコードであると見なし得る上限値である。すなわち、ステップS430において、変数kが第3閾値より大きいと判断されない限り、プロセッサー10は、カウントを継続するためにステップS435〜S445をスキップする。
一方、ステップS430において、変数kが第3閾値より大きいと判断された場合、プロセッサー10は、変数jから変数kを減じた値j−kが第2閾値以上であるか否か判断する(ステップS435)。すなわち、プロセッサー10は、第2方向に候補ブロックではないブロックが並んでいても、これらのブロックを除いた数をj−kによって特定する。
ステップS435において、変数jから変数kを減じた値j−kが第2閾値以上であると判断された場合、プロセッサー10は、座標(x−(j−1),y)から座標(x−k,y)のブロックを候補ブロックに設定する(ステップS440)。すなわち、プロセッサー10は、この範囲に存在するブロックを、候補ブロックではないとされていたブロックも含めて候補ブロックと見なす。
一方、ステップS435において、変数jから変数kを減じた値j−kが第2閾値以上であると判断されない場合、プロセッサー10は、ステップS440をスキップし、候補ブロックではないとされていたブロックを候補ブロックと見なす処理は行わない。ステップS440で候補ブロックの設定が行われ、またはステップS440がスキップされた場合、プロセッサー10は、再度カウントを行うため変数jを0に初期化する(ステップS445)。ステップS410〜S455のループにおいて、変数jの初期化は、ステップS430において変数kが第3閾値より大きい場合にのみ実施される。従って、ループの過程で処理対象ブロックが候補ブロックではないブロックであったとしても、候補ブロックが第2方向に連続して並ぶ数が第3閾値以下である限り、候補ブロック、候補ブロックではないブロックの双方を示す数が変数jとしてカウントされる。この場合、候補ブロックではないブロックを非候補ブロックとも呼ぶ。
ステップS415で変数jのインクリメントが行われ、または、ステップS445で変数の初期化が行われ、または、ステップS420で変数jが0より大きいと判断されず、または、ステップS430で変数kが第3閾値以上であると判断された場合、プロセッサー10は、座標値xをインクリメントする(ステップS450)。次に、プロセッサー10は、座標値xが最大値xmaxを超えたか否か判断する(ステップS455)。すなわち、プロセッサー10は、第2方向の端部(図9の右端)まで候補ブロックの走査が行われたか否か判断する。
ステップS455で、座標値xが最大値xmaxを超えたと判断されない場合、プロセッサー10は、ステップS410以降の処理を繰り返す。一方、ステップS455で、座標値xが最大値xmaxを超えたと判断された場合、プロセッサー10は、座標値yをインクリメントし(ステップS460)、座標値yが最大値ymaxを超えたか否か判断する(ステップS465)。すなわち、プロセッサー10は、第1方向の端部(図9の下端)まで候補ブロックの走査が行われたか否か判断する。ステップS465で、座標値yが最大値ymaxを超えたと判断されない場合、プロセッサー10は、ステップS405以降の処理を繰り返す。すなわち、第1方向に異なる位置について第2方向の左端から再度走査を行う。
ここで、第2閾値が10、第3閾値が3であり、図9におけるブロックB7が処理対象となった場合の一連の判断を説明する。この場合、ステップS410において、座標(x,y)のブロックB7が候補ブロックであると判断され、ステップS415において変数kが0、変数jが1になる。次にステップS450で座標値xがインクリメントされる。この結果、ブロックB7の右隣のブロックでも同様の処理が繰り返されて変数kが0、変数jが2になる。次に、ブロックB8が処理対象ブロックとなった場合、ステップS410において、ブロックB8が候補ブロックではないと判断される。
この場合、変数jは2であるためステップS420においては、変数jが0より大きいと判断され、ステップS420で変数jが3,変数kが1になる。この結果、変数jの値は、ブロックB7からブロックB8までにおいて第2方向に存在するブロックの数である3を示し、変数kの値は、ブロックB7からブロックB8までにおいて連続する候補ブロックではないブロックの数を示す状態となる。
さらに、ステップS430においては、変数kが1であるため、第3閾値である3より小さいと判断され、ステップS435〜S445がスキップされる。この後、処理対象ブロックが順次第2方向の右隣に切り替えられて同様の処理が繰り返される。なお、繰り返しの過程で、処理対象ブロックが候補ブロックである場合には、変数kが0に初期化される。
ステップS430の判断により、このような処理は、候補ブロックではないブロックが第2方向に第3閾値以上並ぶまで繰り返される。従って、この例においては、ブロックB9が処理対象ブロックとなり、ステップS425において変数kが4になるまで繰り返される。この場合、プロセッサー10は、ステップS430の判断を経てステップS435を実行する。
この段階において、変数jの値は、ブロックB7からブロックB9までにおいて第2方向に存在するブロックの数である22を示し、変数kの値は、ブロックB7からブロックB9までにおいてループの最終段階でする候補ブロックではないブロックの数である4を示している。すなわち、変数kの値は、ブロックB11〜B9において候補ブロックではないブロックが連続している数である4を示している。従って、j−kは18であり、第2閾値である10以上であると判断される。この結果、ステップS440においては、座標(x−(22−1),y)のブロックB7から座標(x−4,y)のブロックB10までのブロック群B12が候補ブロックに設定される。すなわち、ブロック群B12に含まれる、元々候補ブロックであったブロック(ブロックB7等)と非候補ブロックであったブロック(ブロックB8等)とがバーコード領域と認定され得る候補ブロックとなる。
ステップS465で、座標値yが最大値ymaxを超えたと判断された場合、プロセッサー10は、図8に示すフローチャートに遷移し、候補ブロックが2次元的に広がっているか否かを判断する処理を行う。このため、プロセッサー10は、座標値xを0に初期化する(ステップS500)。また、プロセッサー10は、座標値yを0に初期化する(ステップS505)。
次に、プロセッサー10は、左上の頂点が座標(x,y)であり、幅Wx、高さHyの矩形領域内にある候補ブロックの数nを取得する(ステップS510)。そして、プロセッサー10は、数nが第4閾値以上であるか否かを判断する(ステップS515)。図10は、図9に示す例においてステップS465までの処理によって候補ブロックとなっているブロックをグレーで示した図である。当該図10には、幅Wx、高さHyの矩形領域Rtが例示されている。すなわち、図10においては、左上の頂点がブロックB13である場合の矩形領域Rtの位置が例示されている。この場合、プロセッサー10は、グレーで示された候補ブロックの数nを12と取得する。
ステップS515において、数nが第4閾値以上であると判断された場合、プロセッサー10は、矩形領域を拡張数だけ外側に向けて拡張した領域をバーコード領域と認定する(ステップS520)。すなわち、本実施形態においては、バーコード領域が2次元的に連続的な領域であると見なしており、矩形領域の多くが候補ブロックで満たされている場合、プロセッサー10は、当該矩形領域が全てバーコード領域であると見なす。このため、第4閾値は、矩形領域の多くが候補ブロックで満たされており、矩形領域全体がバーコード領域であると見なすことができるような値として設定される。
本実施形態において、第4閾値は矩形領域のブロック数−1であるが、他の値、例えば、矩形領域と同数や矩形領域のブロック数−2などの値であってもよい。なお、第4閾値は、矩形領域内のブロック数の95%以上であることが好ましい。第4閾値が矩形領域のブロック数−1である場合、例えば図10に示す矩形領域Rt1であれば、矩形領域Rt1内の候補ブロックの数nが第4閾値以上であると判断される。一方、矩形領域Rt2は、矩形領域Rt2内の候補ブロックの数nが第4閾値以上であると判断されない。
本実施形態においては、さらに、候補ブロックの選定に際して見落としがある場合も考慮して、矩形領域を拡張数だけ外側に向けて拡張した領域をバーコード領域と認定する。図10においては、拡張数が1である場合に矩形領域Rtを拡張した後の領域Rbが破線によって示されている。以上の処理によれば、図10のように傾いたバーコードであっても、バーコードの上下左右の端部が欠けることなくバーコード領域と認定される。
ステップS520でバーコード領域の認定が行われた場合、または、ステップS515で数nが第4閾値以上であると判断されなかった場合、プロセッサー10は、座標値yをインクリメントする(ステップS530)。次に、プロセッサー10は、座標値y+矩形領域の高さHy−1が最大値ymaxを超えたか否か判断する(ステップS535)。すなわち、プロセッサー10は、矩形領域の下端が第1方向の端部(図10の下端)を超えたか否かを判断する。
ステップS535で、座標値y+矩形領域の高さHy−1が最大値ymaxを超えたと判断されない場合、プロセッサー10は、ステップS510以降の処理を繰り返す。一方、ステップS535で、座標値y+矩形領域の高さHy−1が最大値ymaxを超えたと判断された場合、プロセッサー10は、座標値xをインクリメントし(ステップS540)、座標値x+矩形領域の幅Wx−1が最大値xmaxを超えたか否か判断する(ステップS545)。すなわち、プロセッサー10は、矩形領域の右端が第2方向の端部(図10の右端)を超えたか否かを判断する。ステップS545で、座標値x+矩形領域の幅Wx−1が最大値xmaxを超えたと判断されない場合、プロセッサー10は、ステップS505以降の処理を繰り返す。すなわち、第2方向に異なる位置について第1方向の上端から再度走査を行う。
ステップS545で、座標値x+矩形領域の幅Wx−1が最大値xmaxを超えたと判断された場合、プロセッサー10は、バーコード領域の認定処理を終了し、図2に示す処理に復帰する。以上の処理により、2次元的に広がる候補ブロックに基づいて2次元的に広がるバーコード領域を認定することができる。なお、図10においては、以上の処理により、認定されるバーコード領域Zbを一点鎖線によって示している。
(5)他の実施形態:
以上の実施形態は本発明を実施するための一例であり、他にも種々の実施形態を採用可能である。例えば、本発明の一実施形態にかかる画像出力装置は、スキャン以外の方法で原画像データを取得し、バーコードを含む画像を印刷する印刷装置であっても良い。さらに、印刷部50における印刷方式はインクジェット方式に限定されず、電子写真方式などの他の方式であってもよい。この場合、バーコード領域は、他の領域(例えば、黒文字領域)よりも滲みにくい印刷、例えばインクの濃度が薄い状態で印刷されることが好ましく、例えば、電子写真方式であればトナーの記録量を制御する光量を通常の光量よりも弱くするなどの構成によって実現可能である。
さらに、以上の実施形態のようにブロック毎にバーコード領域であるか否か判定する手法は、プログラムの発明、方法の発明や出力画像データ生成方法の発明としても実現可能である。
さらに、プロセッサー10の少なくとも1部における処理を、画像出力装置1に接続されたコンピューターのドライバプログラム又はアプリケーションプログラムに実施させてもよい。この場合、コンピューターを画像出力装置の一部とみなすことができる。
さらに、上述の実施形態は一例であり、一部の構成が省略されたり、他の構成が追加されたりする実施形態が採用され得る。例えば、ステップS500〜S545が省略され、この段階で残存している候補ブロックがバーコード領域であると認定される構成等が採用されてもよい。
取得部は、原画像を示す原画像データを取得することができればよい。すなわち、出力される画像であって、出力のための処理が行われていない画像が原画像であり、取得部は、当該原画像を示す原画像データを取得することができればよい。原画像データを取得する態様は、種々の態様であってよい。すなわち、取得部は、スキャナーであってもよいし、他の装置(例えば、他のコンピュータや記憶媒体等)から通信によって原画像データを取得してもよい。なお、原画像、出力画像の双方ともに画像であり、両者を区別する必要がない場合には両者を指して画像と呼ぶこともある。
第1生成部は、原画像がバーコード領域であるか否かをブロック毎に認定し、バーコード領域であるか否かを示す領域情報であってブロックのそれぞれに対応づけられた領域情報を生成することができればよい。すなわち、バーコード領域であるか否かをブロック毎に特定可能な情報が領域情報として定義されればよい。
ブロックはJPEG圧縮を行う単位であるが、複数画素からなるブロックが定義されていれば、当該ブロックがJPEG圧縮を行う単位でなかったとしても、バーコードであるか否かを示す領域情報を少ない情報量で表現可能である。
なお、ブロックがJPEG圧縮を行う単位であれば、JPEG圧縮を行う際に利用されたブロックをバーコード領域であるか否かの定義に流用することができる。さらに、JPEG圧縮を利用する際にブロック単位で実施する処理が存在し、バーコード領域の認定に流用できる処理があれば流用することが好ましい。
バーコード領域であるか否かの認定は、上述のような第1閾値〜第4閾値を利用した認定以外にも種々の手法が採用されてよい。例えば、機械学習されたモデルに基づいてバーコード領域であるか否か認定されてもよいし、パターンマッチング等によってバーコード領域であるか否か認定されてもよい。
バーコード領域は、バーコードである可能性が高いオブジェクトが含まれている領域であれば良く、バーコードであると推定されたブロック以外のブロック、例えば、バーコードであると推定されたブロックの周囲に隣接するブロックがバーコード領域に含まれていてもよい。
領域情報は、各ブロックがバーコード領域であるか否かを示していればよく、1個のブロックあたりに1ビットの情報(すなわち、1ビットのフラグ)であることが好ましいが、より詳細な解析を行うためにより情報量が多くてもよい。例えば、バーコード領域内のオブジェクトがバーコードである可能性や、バーコード以外のオブジェクトが含まれる可能性を示す値であってもよい。また、領域情報は、印刷開始指示後に生成される構成であってもよいし、印刷開始指示の有無に関わらず予め生成され、記録媒体に記録されていてもよい。
記憶部は、原画像を出力させるための出力画像データを記憶することができればよく、領域情報が記憶されてもよい。むろん、領域情報は、出力画像データの一部であってもよいし、上述の実施形態のように別のデータ(ブロック内のオブジェクトの種類を示す情報)に連続して記録されていてもよい。記憶部は、この出力画像データを印刷された後まで長期的に記憶するものでも良いし、所謂バッファのように短期的に記憶するものでもよい。出力画像データは、出力される原画像を示していればよく、JPEGデータであることが好ましいが、他の態様であってもよい。むろん、印刷に際しては、JPEGデータがさらに他のデータ(例えば、ポストスクリプトデータ)等とされてもよい。
出力部は、領域情報がバーコード領域であることを示している領域と、バーコード領域でないことを示している領域と、で異なる方法によって、出力画像データに基づく出力を行うことができればよい。これは出力を行う回路に至る前に行われる画像処理の方法を変えることで実現しても良いし、出力を行う回路の動作方法を変えることで実現してもよい。すなわち、出力部は、領域内のオブジェクト毎に出力を行う方法を切り替えることができ、バーコード領域であるか否かに応じて出力の方法を切り替える。バーコード領域については、バーコードの読み取りが容易になる方法で出力されることが好ましく、バーコードを記録する記録材の密度や濃度を他のオブジェクトよりも大きく、または小さくする構成以外にも、種々の構成を採用可能である。密度や濃度をどのように調整するのかは、出力対象(ディスプレイ、プロジェクター、電子ペーパー等)によって選択されてよい。
分割部は、原画像データをブロックに分割することができればよい。出力画像データがJPEGデータである場合、JPEG圧縮の際に原画像データがブロックに分割される。従って、当該JPEG圧縮で利用されるブロックを、バーコード領域の認定のために流用可能である。ブロックの大きさは限定されず、種々の大きさとすることができるが、処理の容易のために複数のブロックの大きさは、画像の端部を除き同一であり、正方形または長方形であることが好ましい。JPEG圧縮は、公知の手法であってよい。
なお、原画像データがJPEGデータである構成が採用されてもよい。この場合、原画像データがブロック毎に圧縮されているため、当該ブロックをバーコード領域の認定のために流用すればよい。従って、バーコード領域の認定のためのブロックを原画像から分割する分割部を省略することが可能である。
バーコード領域において通常の印刷よりもインクの記録密度が少ない状態で印刷を行う手法は、インクドットの大きさを調整する構成以外にも種々の構成を採用可能である。例えば、出力部は、バーコード領域であることを示している領域を印刷する場合、バーコード領域でないことを示している領域を印刷する場合よりも、同一の濃度の原画像を薄い濃度で印刷させる構成であってもよい。濃度の調整は種々の手法で実現可能であり、例えば、印刷されるドットの数を通常の印刷よりも少なくすれば、濃度を薄くすることが可能である。
出力画像データにおけるブロックの内容を示すデータは、上述の実施形態のように各ブロックが黒文字領域であるか否かを示す情報に限定されず、ブロック毎の画像データやブロック毎の圧縮データ等であってもよい。
判断部は、画像を分割して得られる各ブロックが、バーコード領域のブロックの候補である候補ブロックであるか否かを判断することができればよい。従って、上述のように黒文字領域またはバーコード領域である可能性があるブロックが候補ブロックになる構成以外にも、種々の構成が採用されてよい。例えば、黒と白の画素が既定数以上含まれるブロックや、黒い直線を構成する画素が既定数以上含まれるブロック、黒い部分が近接して存在するブロック等が候補ブロックになってもよい。所定の色成分について上述の実施例のように判断をすることで、当該色のカラーバーコードに対応させてもよい。
認定部は、候補ブロックが第1方向に第1閾値以上連続し、第1方向に直交する第2方向に第2閾値以上並ぶ領域を、バーコード領域と認定することができればよい。すなわち、直交する2方向に候補ブロックが既定数以上並んでいる場合に、これらの候補ブロックがバーコード領域であると認定することができればよい。第1閾値、第2閾値は、これら以上の数だけ候補ブロックが連続している場合にバーコード領域であるとの推定が合理的であるように予め設定されていればよい。
第1閾値や第2閾値は、固定値であってもよいし、可変値であってもよい。可変値である場合、第1閾値および第2閾値の少なくとも一方は、スキャナーの読み取り解像度に応じた値であってもよい。すなわち、解像度が変化すれば、候補ブロックが連続し得る数が変化すると見なし、解像度に依存させて第1閾値や第2閾値を変化させてもよい。むろん、第3閾値や第4閾値も同様であり、固定値、可変値のいずれであってもよく、可変値の場合、例えば、これらの閾値の少なくとも一方がスキャナーの読み取り解像度に応じた値であってもよい。さらに、第1閾値〜第4閾値の少なくとも一つが他の要素に応じて変化してもよい。例えば、ブロックの大きさに応じて変化してもよい。
なお、解像度やブロックの大きさに応じて閾値を変化させる場合、解像度やブロックの大きさに比例または反比例させて変化させる構成等が挙げられる。例えば、閾値が解像度に比例し、ブロックの大きさに反比例する構成を採用可能である。より具体的には、基準の解像度で閾値の値が特定の値である場合に、解像度が2倍、ブロックの大きさが同一であるならば、閾値も2倍にする構成が好ましい。解像度が同一、ブロックの大きさが2倍であるならば、閾値は1/2倍にする構成が好ましい。
閾値は、一般的なバーコードの大きさや比較的小さい大きさのバーコードを想定して決定されても良い。例えば、比較的小さい大きさのバーコードとして、バーコードを構成する直線の長さが3mm程度以上であるものを想定する。この場合において、スキャナーの読み取り解像度が300dpiでブロックの大きさが8×8画素である場合、第1閾値としては4以上であることが好ましい。すなわち、この場合のブロックの大きさは、一辺が0.677mm(=25.4mm×8/300)であり、3mmはブロックが4.4個に相当するからである。
上述の想定の場合、さらに、第2閾値は、10以上の値とすることが好ましい。比較的小さい大きさのバーコードにおいては、幅が7mm程度以上のものが多く、一辺が0.677mmのブロックに換算すると10.3となるためである。上述の想定の場合、第3閾値は、5以下の値とすることが好ましい。比較的小さい大きさのバーコードにおいて、直線間の間隙は3mm程度であり、4.4個程度のブロックが間隙となり得る。このため、間隙を評価するための値としては5以下程度の数が好ましい。
上述の想定の場合、矩形領域の高さHyは、第1閾値程度、または第1閾値より僅かに小さい値が好ましい。また、矩形領域の幅Wxは第2閾値程度、または第2閾値より僅かに小さい値が好ましい。僅かに小さい値を用いると、バーコードが第1方向または第2方向に対して傾いていても検出漏れが発生しにくくなる。
上述の想定の場合、第4閾値は、上述のように95%以上であることが好ましく、100%を僅かに下回る値であることが好ましい。100%を僅かに下回る値とすれば、バーコードや読み取りの傾きやノイズによって読み取り欠陥等が生じた場合であっても、検出漏れが発生しにくくなる。
矩形領域の拡張数は、読み取り解像度やブロックの画素数によらず、1または2程度の値としてもよい。当該拡張数は、バーコードが傾いている場合に等に、領域判定の過程で上下左右の端が途切れないようにするために設定されるが、拡張数が1または2程度で充分に途切れを防止可能である。
さらに、認定部は、直交する2方向のそれぞれを第1方向としてバーコード領域の認定を行ってもよい。すなわち、原画像の座標軸の一方に平行な方向を第1方向として上述の図6〜図8に示すフローチャートを実行し、この後に第1方向を90度回転させて再度、図6〜図8に示すフローチャートを実行してもよい。むろん、2回目の処理は、1回目の処理において充分に広いバーコード領域が認定されなかった場合に実行されてもよいし、利用者の指示に応じて実行されてもよい。以上の構成によれば、原稿の縦横方向のいずれに対してバーコードの直線が平行になっていても、バーコード領域を認定することができる。むろん、より多数の方向にバーコードが配向し得る場合には、3以上の方向を第1方向としてもよい。つまり、バーコードが配向している可能性がある方向をそれぞれ第1方向とした処理を実行することが望ましい。
さらに本発明は、コンピューターが実行するプログラムや、方法としても適用可能である。また、以上のようなプログラム、方法は、単独の装置として実現される場合もあれば、複数の装置が備える部品を利用して実現される場合もあり、各種の態様を含むものである。また、一部がソフトウェアであり一部がハードウェアであったりするなど、適宜、変更可能である。さらに、プログラムの記録媒体としても発明は成立する。むろん、そのプログラムの記録媒体は、磁気記録媒体であってもよいし半導体メモリーであってもよいし、今後開発されるいかなる記録媒体においても全く同様に考えることができる。
1…画像出力装置、10…プロセッサー、10a…取得部、10b…分割部、10c…判断部、10d…認定部、10e…第1生成部、10f…第2生成部、10g…出力部、20…メモリー、20a…原画像データ、20b…出力画像データ、30…UI部、40…通信部、50…印刷部、60…読取部

Claims (9)

  1. 原画像を示す原画像データを取得する取得部と、
    前記原画像がバーコード領域であるか否かをブロック毎に認定し、前記バーコード領域であるか否かを示す領域情報であって前記ブロックのそれぞれに対応づけられた前記領域情報を生成する第1生成部と、
    前記原画像を出力させるための出力画像データを記憶する記憶部と、
    前記領域情報が前記バーコード領域であることを示している領域と、前記バーコード領域でないことを示している領域と、で異なる方法によって、前記出力画像データに基づく出力を行う出力部と、を備え、
    前記出力画像データは、前記ブロック毎に圧縮されたJPEGデータである、
    画像出力装置。
  2. 前記原画像データを前記ブロックに分割する分割部と、
    前記ブロック毎に前記原画像データを圧縮したJPEGデータを前記出力画像データとして生成する第2生成部をさらに備える、
    請求項1に記載の画像出力装置。
  3. 前記原画像データは、JPEGデータである、
    請求項1または請求項2に記載の画像出力装置。
  4. 前記出力部は、前記バーコード領域であることを示している領域を印刷する場合より、前記バーコード領域でないことを示している領域を印刷する場合の方が、大きいドットを用いて印刷させる、
    請求項1〜請求項3のいずれかに記載の画像出力装置。
  5. 前記出力部は、前記バーコード領域であることを示している領域を印刷する場合、前記バーコード領域でないことを示している領域を印刷する場合よりも、同一の濃度の前記原画像を薄い濃度で印刷させる、
    請求項1〜請求項4のいずれかに記載の画像出力装置。
  6. 前記領域情報は、
    1個の前記ブロックあたりに1ビットの情報である、
    請求項1〜請求項5のいずれかに記載の画像出力装置。
  7. 前記領域情報は、前記出力画像データにおける前記ブロックの内容を示すデータに連続する情報である、
    請求項1〜請求項6のいずれかに記載の画像出力装置。
  8. 原画像を示す原画像データを取得し、
    前記原画像がバーコード領域であるか否かをブロック毎に認定し、前記バーコード領域であるか否かを示す領域情報であって前記ブロックのそれぞれに対応づけられた前記領域情報を生成し、
    前記領域情報が前記バーコード領域であることを示している領域と、前記バーコード領域でないことを示している領域と、で異なる方法で、前記原画像を出力させるための出力画像データに基づく出力を行う出力部と、を備え、
    前記出力画像データは、前記ブロック毎に圧縮されたJPEGデータである、
    画像出力方法。
  9. 原画像を示す原画像データを取得し、
    前記原画像がバーコード領域であるか否かをブロック毎に認定し、前記バーコード領域であるか否かを示す領域情報であって前記ブロックのそれぞれに対応づけられた前記領域情報を生成し、
    前記領域情報が前記バーコード領域であることを示している領域と、前記バーコード領域でないことを示している領域と、で異なる方法で、前記原画像を出力させるための出力画像データを生産する、
    出力画像データ生産方法。
JP2018234132A 2018-12-14 2018-12-14 画像出力装置、画像出力方法および出力画像データ生産方法 Pending JP2020093494A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018234132A JP2020093494A (ja) 2018-12-14 2018-12-14 画像出力装置、画像出力方法および出力画像データ生産方法
US16/710,631 US10872216B2 (en) 2018-12-14 2019-12-11 Image output device, image output method, and output image data production method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018234132A JP2020093494A (ja) 2018-12-14 2018-12-14 画像出力装置、画像出力方法および出力画像データ生産方法

Publications (1)

Publication Number Publication Date
JP2020093494A true JP2020093494A (ja) 2020-06-18

Family

ID=71072634

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018234132A Pending JP2020093494A (ja) 2018-12-14 2018-12-14 画像出力装置、画像出力方法および出力画像データ生産方法

Country Status (2)

Country Link
US (1) US10872216B2 (ja)
JP (1) JP2020093494A (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8172144B2 (en) * 2007-05-14 2012-05-08 Konica Minolta Business Technologies, Inc. Media storing code detecting program, code detecting method, and image forming apparatus
JP4465723B2 (ja) 2007-05-14 2010-05-19 コニカミノルタビジネステクノロジーズ株式会社 コード検出プログラム及びコード検出方法並びに画像形成装置
JP5146085B2 (ja) 2008-04-30 2013-02-20 富士ゼロックス株式会社 画像処理装置およびプログラム

Also Published As

Publication number Publication date
US20200193113A1 (en) 2020-06-18
US10872216B2 (en) 2020-12-22

Similar Documents

Publication Publication Date Title
JP4118749B2 (ja) 画像処理装置、画像処理プログラムおよび記憶媒体
US8384964B2 (en) Image processing apparatus and image processing method
JP4683654B2 (ja) 画像処理装置、画像処理装置の制御方法及びプログラム
JP5132517B2 (ja) 画像処理装置および画像処理方法
US7667711B2 (en) Image processing system, a method thereof, and a recording medium thereof
JP4176114B2 (ja) 画像圧縮装置およびそれを備えた画像読取装置、画像圧縮装置を備えた画像処理装置並びにそれを備えた画像形成装置、画像圧縮処理方法
JP4574457B2 (ja) 画像処理装置およびその方法
JP6234098B2 (ja) 画像処理装置、画像処理方法およびプログラム
US8363946B2 (en) Decoding two-dimensional code using multiple binarization thresholds
US20110013202A1 (en) Image processing apparatus, image processing method, and program for executing the image processing method
JP5146085B2 (ja) 画像処理装置およびプログラム
US8395820B2 (en) Image processing apparatus for printing in black coloring material based on attribute information
JP2007053749A (ja) スキャナによって獲得されるデジタル画像を変換する変換方法、装置、およびコンピュータプログラム
MXPA04006233A (es) Arquitectura de trayectoria de imagen de barrido.
US8014030B2 (en) Image processing and formation with line thininng by reducing intensity of target pixel based on extracted contour pixel and area connectedness information
JP2010057017A (ja) 画像処理装置および画像処理方法
JP6882043B2 (ja) 画像処理装置、プログラム及び画像処理方法
JP4792835B2 (ja) 画像処理装置
US10872216B2 (en) Image output device, image output method, and output image data production method
JP2020096307A (ja) 画像出力装置、画像出力方法および画像出力プログラム
JP4169674B2 (ja) 画像処理装置、画像処理プログラムおよび記憶媒体
JP7077925B2 (ja) 画像処理装置、画像処理方法、およびプログラム
JP7185451B2 (ja) 画像処理装置と画像処理方法、及びプログラム
JP6834639B2 (ja) 画像処理装置、および、コンピュータプログラム
JP6957912B2 (ja) 画像処理装置、および、コンピュータプログラム

Legal Events

Date Code Title Description
RD07 Notification of extinguishment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7427

Effective date: 20200811