A.第1実施例:
A1.装置構成:
図1は、実施例の複合機200を示す説明図である。複合機200は、制御部205と、印刷部260と、読取部300と、を有している。制御部205は、プロセッサ210と、記憶装置215と、表示部240と、操作部250と、通信インタフェース270と、を有している。これらの要素は、バスを介して互いに接続されている。記憶装置215は、揮発性記憶装置220と、不揮発性記憶装置230と、を含んでいる。
プロセッサ210は、データ処理を行う装置であり、例えば、CPUである。揮発性記憶装置220は、例えば、DRAMであり、不揮発性記憶装置230は、例えば、フラッシュメモリである。
不揮発性記憶装置230は、プログラム232を格納している。プロセッサ210は、プログラム232を実行することによって、複合機200を制御するための種々の機能を実現する(詳細は、後述)。プロセッサ210は、プログラム232の実行に利用される種々の中間データを、記憶装置215(例えば、揮発性記憶装置220、不揮発性記憶装置230のいずれか)に、一時的に格納する。本実施例では、プログラム232は、複合機200の製造者によって、ファームウェアとして、不揮発性記憶装置230に予め格納されている。
表示部240は、液晶ディスプレイ、有機ELディスプレイ、LEDディスプレイなどの、画像を表示する装置である。操作部250は、ボタン、レバー、表示部240上に重ねて配置されたタッチパネルなどの、ユーザによる操作を受け取る装置である。通信インタフェース270は、他の装置と通信するためのインタフェースである(例えば、USBインタフェース、有線LANインタフェース、IEEE802.11の無線インタフェース)。
印刷部260は、所定の方式(例えば、レーザ方式や、インクジェット方式)で、用紙(印刷媒体の一例)上に画像を印刷する装置である。本実施例では、印刷部260は、シアンC、マゼンタM、イエロY、ブラックKの4種類のインクを用いてカラー画像を印刷可能なインクジェット方式の印刷装置である。印刷部260は、印刷用のデータ形式の画像データを用いて、画像を印刷する。また、図示を省略するが、印刷部260は、ディスクメディアのレーベル面に画像を印刷するためにディスクメディアを支持するトレイを備えている。なお、ディスクメディアのレーベル面は、データ記録面とは反対側の面である。データ記録面は、データの読取りに利用される面である。例えば、データ記録面には、データ読み取りのためのレーザ光が照射される。データの読取りに光が用いられる場合、ディスクメディアは、光ディスクとも呼ばれる。ディスクメディアのレーベル面には、ディスクメディアを形成する基板(例えば、透明な樹脂)上に、直接に種々のオブジェクトの画像が記録され得る。例えば、データ記録済の市販されているディスクメディアのレーベル面には、製造者を示すテキストやデータの内容に関連する画像などの種々のオブジェクトの画像が、記録され得る(例えば、印刷)。また、ディスクメディアとしては、レーベル面上に印刷可能な層を備えるものが、用いられ得る。印刷可能な層は、例えば、白色のインク受容層である。印刷部260は、このような印刷可能なレーベル面に、画像を印刷できる。
読取部300は、CCDやCMOSなどの光電変換素子を用いて光学的に原稿等の対象物を読み取る読取装置である。制御部205(具体的には、プロセッサ210)は、読取部300からのデータを用いて、読み取った画像(「読取画像」と呼ぶ)を表す読取データを生成する。例えば、プロセッサ210は、読取部300からのデータの種々の補正処理(例えば、階調補正処理)を実行して、読取データを生成する。読取データは、例えば、カラーの読取画像を表すRGBのビットマップデータである。本実施例では、RGBのそれぞれの値は、0から255までの256階調で表されることとする。
図1の下部には、水平なテーブル(図示せず)に置かれた複合機200の斜視図が示されている。図中の第1方向D1と第2方向D2とは、水平な方向を示し、第3方向D3は、鉛直上方向を示している。第1方向D1と第2方向D2とは、互いに垂直である。また、第3方向D3を、上方向D3とも呼ぶ。以下、方向の符号の前にマイナス記号を付加した符号を、その方向の反対方向を示す符号として用いる。例えば、-D1方向は、第1方向D1の反対の方向である。
複合機200は、筐体290と、筐体290の上方向D3側に開閉可能に取り付けられたカバー292と、を備えている。図1では、カバー292は、上方向D3に向けて開けられている。本実施例では、複合機200の読取部300は、いわゆるフラットベッド式のスキャナである。読取部300は、筐体290の上方向D3側の面に配置された支持台394を備えている。支持台394は、カバー292を上方向D3に向けて開くことによって現れる。支持台394は、第1方向D1に平行な2辺と第2方向D2に平行な2辺とで囲まれる略矩形状の台であり、透明板(例えば、ガラス板)を用いて構成されている。支持台394の第3方向D3側の面は、読取の対象物(例えば、シート)が支持される支持面Usである。図1では、支持面Us上に、ディスクメディア900が配置されている。
また、読取部300は、筐体290の内部に配置されたセンサユニット320と搬送装置330とを備えている。センサユニット320は、支持台394の下側(-D3方向側)に配置されている。本実施例では、センサユニット320は、対象物を光学的に読み取る一次元イメージセンサであり、具体的には、いわゆるCIS(Contact Image Sensor)である。センサユニット320は、対象物を照らす複数の光源321と、対象物からの反射光を受信する複数の読取センサ322(CCDやCMOSなどの光電変換素子)と、を備えている。複数の光源321と複数の読取センサ322とは、第1方向D1に並んで配置されている。センサユニット320は、支持台394上の対象物からの反射光を読み取ることによって、読み取った対象物を示す1次元の画像データを出力する。
搬送装置330は、第2方向D2に平行にセンサユニット320を搬送する装置である。搬送装置330は、動力源(例えば、電気モータ)を含んでいる。搬送装置330は、動力源を用いて、センサユニット320を、第2方向D2と平行な方向に移動させる。センサユニット320は、搬送中に対象物の読み取りを繰り返す。これにより、センサユニット320は、支持台394の支持面Usのおおよそ全体から、対象物を読み取ることができる。そして、センサユニット320と搬送装置330とを備える読取部300は、対象物を表す2次元の画像データを生成する。
なお、図示を省略するが、筐体290内には、制御部205と印刷部260も、収容されている。
A2.画像処理:
図2は、複合機200(図1)によって実行される画像処理の例を示すフローチャートである。この画像処理では、読取部300は、ディスクメディアのレーベル面を読み取り、印刷部260は、読み取られたレーベル面の画像を、別のディスクメディアのレーベル面に印刷する。ユーザは、操作部250に、画像処理の開始指示を入力する。制御部205(具体的には、プロセッサ210)は、指示に応じ、プログラム232に従って、画像処理を開始する。
S110では、プロセッサ210は、読取処理を実行する。図3は、読取処理の例を示すフローチャートである。S210では、図1に示すように、ディスクメディア900が、レーベル面を下に向けて、支持面Us上に配置される。本実施例では、ユーザが、ディスクメディア900を、支持面Us上に配置する。プロセッサ210は、ディスクメディア900の配置が完了したことに応じて、処理を進行する。例えば、ユーザは、ディスクメディア900の配置が完了した後に、進行指示を操作部250に入力してよい。プロセッサ210は、進行指示に応じて、処理を進行してよい。これに代えて、プロセッサ210は、センサユニット320等のセンサを用いて、ディスクメディア900の配置の完了を検知してよい。
図4(A)-図4(E)は、画像処理の概要を示す説明図である。図4(A)は、ディスクメディア900(図1)のレーベル面900Lの例を示している。ディスクメディア900の形状は、略円形状である。中心LCは、ディスクメディア900の中心である。レーベル面900Lは、略半円形状の第1領域L1と、略半円形状の第2領域L2と、を含んでいる。第1領域L1は、透明な部分であり、金属層が透けて見える部分である。この第1領域L1上に、黒色のテキスト(本実施例では、「Label」の文字列)の画像であるテキスト画像TXが印刷されている。第2領域L2上には、模様のオブジェクトの画像である模様画像IPが印刷されている。図4(A)の例では、第2領域L2は透明の部分を含んでおらず、第2領域L2の全体に亘って模様画像IPが印刷されている。
S220(図3)では、プロセッサ210は、読取番号iを「1」に初期化する。S230では、プロセッサ210は、読取部300にディスクメディア900のレーベル面900Lを読み取らせる。そして、プロセッサ210は、読取部300からのデータを用いて、読み取った画像である読取画像を示す読取データを生成する。以下、レーベル面を読み取ることによって生成される読取データを、レーベル読取データとも呼ぶ。読取画像中のレーベル面を示す画像を、レーベル読取画像と呼ぶ。
図4(B)は、読取画像の例を示す説明図である。図中の方向D1、D2は、読取画像によって示される対象物(ここでは、ディスクメディア900のレーベル面900L)の読取時における、対象物に対する複合機200の方向D1、D2を示している。図中において、第1方向D1は下方向であり、第2方向D2は右方向である。後述する他の図においても、同様である。
本実施例では、読取部300を用いて得られる読取画像の形状は、第1方向D1に平行な2辺と第2方向D2に平行な2辺とで囲まれる矩形状である。図中では読取画像のうちのレーベル読取画像IM1のみが示されており、読取画像の縁の図示は省略されている(以下、レーベル読取画像IM1を、第1レーベル読取画像IM1とも呼ぶ)。本実施例では、読取画像は、D1方向とD2方向とに沿って格子状に並ぶ複数の画素によって、表される(図示省略)。
図中のレーベル読取画像IM1は、第1領域L1と第2領域L2とを示している。第1領域L1は、-D2方向側に配置され、第2領域L2は、第2方向D2側に配置されている。第2領域L2の模様画像IPは、レーベル面900L(図4(A))の第2領域L2の模様画像IPと同じである。第1領域L1は、明るい領域である明領域L1aと、暗い領域である暗領域L1bと、を含んでいる。明領域L1aは、オブジェクトの画像を表現可能な領域である。暗領域L1bは、明るさがほぼゼロである領域であり、オブジェクトの画像を表現できない領域である。暗領域L1bでは、画素の色は黒色である。
図4(A)で説明したように、第1領域L1では、金属層が透けて見えているので、第1領域L1では、読取部300による読取時に光の乱反射成分が少ない。従って、読取画像中の第1領域L1を示す部分は、暗領域L1bのような暗い領域を含み得る。また、レーベル面900Lの第1領域L1で反射してセンサユニット320へ光が入射する場合、光の強さは、第1領域L1上の位置に応じて異なり得る。明領域は、種々の縞状のパターンを示し得る。以下、明領域を、縞領域とも呼ぶ。
レーベル読取画像内における縞領域と暗領域とのそれぞれの配置と縞領域のパターン形状とは、センサユニット320の構成(例えば、光源321の配置等)に応じて決まり得る。本実施例では、レーベル読取画像の中心(例えば、レーベル読取画像IM1の中心LC)から見て第2方向D2側と-D2方向側とに、暗領域(例えば、暗領域L1b(図4(B)))が形成され得ることとする。暗領域の形状は、レーベル読取画像の中心を中心とする扇状である。そして、レーベル読取画像の残りの領域には、縞領域が形成され得ることとする。図4(B)の例では、第1領域L1の中央部分に、暗領域L1bが形成され、暗領域L1bの上側と下側とに、縞領域L1aが形成されている。第1領域L1上のテキスト画像TX(図4(A))は、暗領域L1b内に位置している。テキスト画像TXの色が黒色であるので、テキスト画像TXの表現は、暗領域L1b内で失われている。なお、縞領域と暗領域との境界は、現実には、明確ではない場合がある。例えば、縞領域と暗領域との境界では、縞領域から暗領域に向かって明るさが徐々に暗くなり得る。
S240(図3)では、プロセッサ210は、N回の読取りが完了したか否かを判断する。読取りの総数Nは予め決められており、本実施例では、N=2である。i<Nである場合、プロセッサ210は、N回の読取りが完了していないと判断する。N回の読取りが完了していない場合(S240:No)、S250で、ディスクメディア900が、予め決められた調整回転方向に、おおよそ調整角度AG、回転される。調整角度AGは、90/(N-1)度である。本実施例では、N=2であるので、AG=90度である。後述するように、ディスクメディア900のN回の読取りでは、読取り毎に、ディスクメディア900は、同じ調整回転方向に調整角度AG、回転する。この結果、N回の読取りによって、ディスクメディア900は、90度、回転する。また、本実施例では、ユーザが、ディスクメディア900を回転させる。なお、実際の回転角度は、調整角度AGからずれていてもよい。実際の回転角度と調整角度AGとの間の差の絶対値の許容範囲は、例えば、ゼロ度以上、20度以下の範囲であってよい。また、回転後のディスクメディア900の支持面Us上の中心LCの位置が、回転前の中心LCの位置からずれてもよい。
プロセッサ210は、ディスクメディア900の回転が完了したことに応じて、処理を進行する。例えば、ユーザは、ディスクメディア900の回転が完了した後に、進行指示を操作部250に入力してよい。プロセッサ210は、進行指示に応じて、処理を進行してよい。これに代えて、プロセッサ210は、センサユニット320等のセンサを用いて、ディスクメディア900の回転の完了を検知してよい。
S255では、プロセッサ210は、読取番号iに1を加算する。そして、S230へ移行し、レーベル面の読取データを生成する。図4(C)は、2回目の読取りによるレーベル読取画像の例を示す説明図である。この第2レーベル読取画像IM2中では、図4(B)のレーベル読取画像IM1中と比べで、レーベル面900Lは時計回り方向に約90度回転している。この第2レーベル読取画像IM2のうちの-D1方向側(図中の上側)の部分に、第1領域L1が配置されている。図中において、第1領域L1の中央部分に、縞領域L1aが形成され、縞領域L1aの右側と左側とに、暗領域L1bが形成されている。第1領域L1上のテキスト画像TX(図4(A))は、縞領域L1a内に位置している。テキスト画像TXは、縞領域L1a内で表現されている。このように、第2レーベル読取画像IM2の第1領域L1の画像は、第1レーベル読取画像IM1の第1領域L1の画像とは異なっている。
以下、i番目の読取りによって取得される読取データを、第i読取データとも呼ぶ。第i読取データのレーベル読取画像を、第iレーベル読取画像とも呼ぶ。
N回(本実施例では2回)の読取りが完了した場合(S240:Yes)、S260で、プロセッサ210は、N枚のレーベル読取画像の相対角度を特定する。まず、プロセッサ210は、各読取画像を解析し、レーベル読取画像を示す部分と、レーベル読取画像の中心と、を特定する。本実施例では、レーベル面900Lの形状は円形状であり、その大きさは予め決められている。プロセッサ210は、ハフ変換を用いることによって、読取画像中のレーベル読取画像と中心とを特定する。そして、プロセッサ210は、N枚のレーベル読取画像の間の相対的な角度を特定する。上述したように、本実施例では、N個のレーベル読取データは、ディスクメディア900を調整回転方向に調整角度AGずつ回転させることによって、取得される。従って、第1-第Nのレーベル読取画像の方向は、調整回転方向に調整角度AGずつ変化する。第1レーベル読取画像に対する第iレーベル読取画像の角度は、(i-1)×AGとおおよそ同じである。プロセッサ210は、この標準的な角度((i-1)×AG)を中心とする上記の許容範囲内から、第1レーベル読取画像と第iレーベル読取画像とのパターンマッチングによって、相対的な角度を特定する。なお、レーベル読取画像の特定方法は、ハフ変換とは異なる他の種々の方法であってよい(例えば、パターンマッチングなど)。
S263では、プロセッサ210は、N枚のレーベル読取画像の方向が合うように角度を調整する処理を行う。図4(D)は、レーベル読取画像の処理の例を示す説明図である。図中の上部には、角度調整済の2枚のレーベル読取画像IM1、IM2rが示されている。本実施例では、プロセッサ210は、第2から第NのN-1個のレーベル読取データの回転処理を行って、N枚のレーベル読取画像の方向を合わせる。回転角度は、S260で特定された相対的な角度であり、回転の中心は、レーベル読取画像の中心LCである。図4(D)の左上の第1レーベル読取画像IM1は、図4(B)の第1レーベル読取画像IM1と同じである。図4(D)の右上の第2レーベル読取画像IM2rは、図4(C)の第2レーベル読取画像IM2を、中心LCを中心に、反時計回り方向に、調整角度AGだけ回転させて得られる画像である。2枚のレーベル読取画像IM1、IM2rから1個ずつ選択された2個の画素であって、中心LCに対する同じ位置の2個の画素は、レーベル面900L上の同じ部分を示している。すなわち、第1レーベル読取画像IM1中の第1画素の中心LCに対する相対的な位置が、第2レーベル読取画像IM2r中の第2画素の中心LCに対する相対的な位置と同じである場合、第1画素と第2画素とは、レーベル面900L上の同じ部分を示している。
S273(図3)では、プロセッサ210は、レーベル画像のマスク部分を特定する。上述したように、第1レーベル読取画像IM1(図4(D))と第2レーベル読取画像IM2との間では、第1領域L1の画像が異なっている。これらのレーベル読取画像IM1、IM2の第1領域L1の色値を採用することは、適切ではない。本実施例では、N枚のレーベル読取画像の間の色値のばらつきが大きい部分は、マスク部分として特定される。そして、マスク部分の色値は、特定の色値に設定される。具体的には、プロセッサ210は、2枚のレーベル読取画像IM1、IM2に関して、中心LCに対する同じ位置の2個の画素の輝度値の差の絶対値を算出する。プロセッサ210は、公知の計算式を用いて、RGB値から輝度値を算出する(例えば、RGB値とYCbCr色空間の輝度値Yとを対応付ける計算式が用いられる)。算出される輝度値の差の絶対値は、レーベル面900L上で同じ部分を示す2個の画素の2個の輝度値の差の絶対値である。プロセッサ210は、レーベル読取画像の複数の画素のそれぞれに関して、輝度値の差の絶対値を算出する。
図4(D)の左下部には、輝度値の差の絶対値によって表される差分画像IMdが示されている。図中では、差の絶対値が大きい領域は、明るいハッチングで示され、差の絶対値が小さい領域は、暗いハッチングで示されている。第1領域L1では、差の絶対値が大きく、第2領域L2では、差の絶対値がゼロに近い。また、テキスト画像TXを示す部分では、差の絶対値はゼロに近い。
プロセッサ210は、差の絶対値が予め決められた基準値以上である部分を、マスク部分として特定する。図4(D)の右下部には、マスク部分を示すマスク画像IMmが示されている。図中では、マスク部分がハッチングで示されている。図示するように、第1領域L1が、マスク部分として特定されている。テキスト画像TXを示す部分と第2領域L2は、マスク部分から除かれている。
S276(図3)では、プロセッサ210は、レーベル読取画像IM1、IM2rとマスク部分とを用いて、出力画像データを生成する。図4(E)は、出力画像データによって表される出力画像の例を示す説明図である。本実施例では、プロセッサ210は、レーベル画像のうちのマスク部分の画素の色値を白色の色値に設定する(R=G=B=255)。白色の色値は、印刷時に色材が利用されないことを示している。プロセッサ210は、レーベル画像のうちのマスク部分以外の部分の画素の色値を、第1レーベル読取画像IM1の画素の色値に設定する。図4(E)の出力画像IMoでは、第2領域L2の模様画像IPとテキスト画像TXとは、第1レーベル読取画像IM1(図4(B))の第2領域L2の模様画像IPとテキスト画像TXとそれぞれ同じである。第1領域L1は、白色の領域である。また、プロセッサ210は、出力画像データのデータ形式を、印刷用のデータ形式に変換する。例えば、プロセッサ210は、RGB値をインク色成分に対応するCMYK値に変換し、ハーフトーン処理を実行することによって、印刷用の出力画像データを生成する。
S290(図3)では、プロセッサ210は、生成した出力画像データを、記憶装置215(本実施例では、不揮発性記憶装置230)に格納する。そして、プロセッサ210は、図3の処理、ひいては、図2のS110を、終了する。
S120では、プロセッサ210は、出力画像データを、印刷部260に供給する。S130では、印刷部260は、受信した出力画像データに従って、出力画像IMoを、印刷部260のトレイに支持されたディスクメディアのレーベル面に、印刷する。そして、図2の処理が終了する。
以上のように、読取部300(図1)は、対象物を光学的に読み取ることによって対象物の画像データを生成する読取装置の例である。そして、プロセッサ210は、読取部300によって生成される画像データを用いて、出力画像データを生成する画像処理装置の例である。具体的には、図3のS230では、プロセッサ210は、ディスクメディア900(図4(A))のレーベル面900Lの読取りを行う読取部300によって生成される画像データを用いて、レーベル面900Lの画像であるレーベル画像を示すレーベル読取データを取得する。また、S240-S255で説明したように、読取部300は、N回の読取りを行い、プロセッサ210は、N個のレーベル読取データを取得する(本実施例では、N=2)。S250で説明したように、2回の読み取りでは、読取部300に対するディスクメディア900の向きが互いに異なるようにディスクメディア900が読取部300に対して配置される。従って、レーベル面900L上のオブジェクト(テキスト画像TXや模様画像IPなど)は、2枚のレーベル読取画像のうちの少なくとも1枚のレーベル読取画像上で、暗領域L1bではなく縞領域L1a上に配置され得る。なお、読取部300に対するディスクメディア900の向きは、読取部300に対するディスクメディア900の中心LCを中心とする回転方向のディスクメディア900の向きである。
そして、S260、S263、S273では、プロセッサ210は、2個のレーベル読取データを用いることによって、レーベル画像のうちのマスク部分を特定する。本実施例では、マスク部分は、2個のレーベル読取データによって示される2個の輝度値であってレーベル面上の同じ部分を示す2個の輝度値の差の絶対値(すなわち、2個の輝度値の最大値と最小値との間の差)が基準値以上である部分である。従って、プロセッサ210は、レーベル面900Lのうちオブジェクトの画像が記録されていない部分を、適切に、マスク部分として特定できる。
また、S276(図3)では、プロセッサ210は、レーベル面の画像のうちのマスク部分の色値を特定の色値(ここでは、白色の色値)に決定し、レーベル面の画像のうちのマスク部分を除いた残りの部分の色値を第1レーベル読取データを用いて決定することによって、1枚のレーベル画像を示す出力画像データを生成する。上記の通り、適切なマスク部分が特定されるので、プロセッサ210は、適切なレーベル画像を表す出力画像データを生成できる。
また、S120(図2)では、プロセッサ210は、S110で生成した出力画像データを、印刷部260に供給する。また、S276(図3)で説明したように、マスク部分の色値は、白色の色値に設定される。そして、白色の色値は、印刷部260によって色材が使用されない色を示す色値である。従って、出力画像データのレーベル画像が印刷部260によって印刷される場合に、マスク部分では色材が使用されないので、マスク部分に意図しない画像が印刷されることは抑制される。この結果、適切なレーベル画像を印刷できる。
B.第2実施例:
図5(A)-図5(D)、図6(A)-図6(B)は、第2実施例の読取処理の概要を示す説明図である。第1実施例との差異は、読取りの総数Nが3である点である。読取処理は、図3の手順に従って行われる。以下、読取処理のうち第1実施例と異なる部分について説明する。
図5(A)は、第2実施例で用いられるディスクメディア900aのレーベル面900Laを示している。図4(A)のレーベル面900Lとの差異は、テキスト画像TXaが、明るい色(例えば、赤色)のテキストTX1(本実施例では、上段の「Label」の文字列)と黒色のテキストTX2(本実施例では、下段の「Label」の文字列)とを含んでいる点だけである。レーベル面900Laの画像の他の部分の構成は、レーベル面900Lの対応する部分の構成と同じである。
S210-S220は、第1実施例と同じである。S230-S225(図3)の処理では、3回の読取りが行われる。N=3の場合、調整角度AGは、90/(3-1)=90/2=45度である。S250では、ディスクメディア900aは、45度回転される。図5(B)-図5(D)は、3回の読取りで得られる3枚のレーベル読取画像の例を、それぞれ示している。
第1レーベル読取画像IM11(図5(B))に関しては、図中において、第1領域L1は左下側に配置され、第2領域L2は右上側に配置されている。第1レーベル読取画像IM1(図4(B))と同様に、中心LCの-D2方向側に、暗領域L1bが形成されている。そして、暗領域L1bの下側に大きな縞領域L1aが形成され、暗領域L1bの上側に小さな縞領域L1aが形成されている。テキスト画像TXaは、暗領域L1bの下側の縞領域L1a内で表現されている。第2領域L2の模様画像IPは、レーベル面900La(図5(A))の第2領域L2の模様画像IPと同じである。
第2レーベル読取画像IM12(図5(C))中では、図5(B)の第1レーベル読取画像IM11中と比べて、レーベル面900Laは時計回り方向に約45度回転している。この第2レーベル読取画像IM12に関しては、第1領域L1は、-D2方向側に配置され、第2領域L2は、第2方向D2側に配置されている。図中において、第1領域L1の中央部分に、暗領域L1bが形成され、暗領域L1bの上側と下側とに、縞領域L1aが形成されている。テキスト画像TXaは、暗領域L1b内に位置している。黒色のテキストTX2の表現は、暗領域L1b内で失われているが、明るい色のテキストTX1は、暗領域L1b内で表現されている。第2領域L2の模様画像IPは、レーベル面900La(図5(A))の第2領域L2の模様画像IPと同じである。
第3レーベル読取画像IM13(図5(D))中では、図5(C)の第2レーベル読取画像IM12中と比べて、レーベル面900Laは時計回り方向に約45度回転している。この第3レーベル読取画像IM13(図5(D))に関しては、図中において、第1領域L1は左上側に配置され、第2領域L2は右下側に配置されている。第1レーベル読取画像IM11(図5(B))と同様に、中心LCの-D2方向側に、暗領域L1bが形成されている。そして、暗領域L1bの下側に小さな縞領域L1aが形成され、暗領域L1bの上側に大きな縞領域L1aが形成されている。テキスト画像TXaは、暗領域L1bの上側の縞領域L1a内で表現されている。第2領域L2の模様画像IPは、レーベル面900La(図5(A))の第2領域L2の模様画像IPと同じである。
3回の読取りが完了した場合(図3:S240:Yes)、S260で、プロセッサ210は、N枚のレーベル読取画像の相対角度を特定する。相対角度の特定は、第1実施例のS260で説明した方法と同じ方法で、行われる。S263では、プロセッサ210は、3枚のレーベル読取画像の方向を合わせる処理を行う。
図6(A)は、3枚のレーベル読取画像の処理の例を示す説明図である。図中の上部には、調整済の3枚のレーベル読取画像IM11r、IM12、IM13rが示されている。本実施例では、プロセッサ210は、第1レーベル読取画像IM11と第3レーベル読取画像IM13とを第2レーベル読取画像IM12に合うように回転させることによって、回転済の第1レーベル読取画像IM11rと回転済の第3レーベル読取画像IM13rとを生成する。図6(A)の左上の第1レーベル読取画像IM11rは、図5(B)の第1レーベル読取画像IM11を、中心LCを中心に、時計回り方向に、調整角度AG(ここでは、45度)だけ回転させて得られる画像である。図6(A)の右上の第3レーベル読取画像IM13rは、図5(D)の第3レーベル読取画像IM13を、中心LCを中心に、反時計回り方向に、調整角度AG(ここでは、45度)だけ回転させて得られる画像である。
S273(図3)では、プロセッサ210は、レーベル画像のマスク部分を特定する。図6(A)の中部には、2枚の差分画像IMd1、IMd2が示されている。本実施例では、プロセッサ210は、第1レーベル読取画像IM11rと第2レーベル読取画像IM12とから第1差分画像IMd1を生成し、第2レーベル読取画像IM12と第3レーベル読取画像IM13rとから第2差分画像IMd2を生成する。これらの差分画像IMd1、IMd2の生成方法は、図4(D)の差分画像IMdの生成方法と同じである。各差分画像IMd1、IMd2に関して、第1領域L1では、差の絶対値が大きく、第2領域L2では、差の絶対値がゼロに近い。また、テキスト画像TXaを示す部分では、差の絶対値はゼロに近い。
図6(A)の下部の左側には、合成差分画像IMdaが示されている。プロセッサ210は、2枚の差分画像IMd1、IMd2から、合成差分画像IMdaを生成する。本実施例では、プロセッサ210は、2枚の差分画像IMd1、IMd2に関して、中心LCに対する同じ位置の2個の画素の輝度値の差の絶対値の大きい方の値を、合成差分画像IMdaの色値として採用する。合成差分画像IMdaの第1領域L1では、差の絶対値は、3枚の第1レーベル読取画像IM11r、IM12、IM13rから得られる大きな値になる。第2領域L2では、差の絶対値はゼロに近い。また、テキスト画像TXaを示す部分では、差の絶対値はゼロに近い。
プロセッサ210は、合成差分画像IMdaを参照し、差の絶対値が予め決められた基準値以上である部分を、マスク部分として特定する。図6(A)の右下部には、マスク部分を示すマスク画像IMmaが示されている。図示するように、第1領域L1が、マスク部分として特定されている。テキスト画像TXaを示す部分と第2領域L2は、マスク部分から除かれている。マスク部分の特定(図3:S273)に続くS276-S290(図3)は、第1実施例と同じである。
以上のように、本実施例では、3個のレーベル読取データを用いてマスク部分が特定される。従って、第1領域L1の一部がマスク部分から除かれることが抑制される。このように、適切なマスク部分を特定できる。
C.第3実施例:
図7(A)、図7(B)は、第3実施例の読取処理の概要を示す説明図である。第2実施例との差異は、3枚のレーベル読取画像IM11r、IM12、IM13rから、直接に、1枚の差分画像IMdbが生成される点だけである。読取処理の他の部分の構成は、第2実施例の対応する部分の構成と同じである。以下、読取処理のうち第2実施例と異なる部分について説明する。
図7(A)の上部には、3枚のレーベル読取画像IM11r、IM12、IM13rが示されている。これらの画像は、図6(A)の上部のレーベル読取画像IM11r、IM12、IM13rと、それぞれ同じである。S273(図3)では、プロセッサ210は、3枚のレーベル読取画像IM11r、IM12、IM13rに関して、中心LCに対する同じ位置の3個の画素の輝度値を特定し、3個の輝度値の最大値と最小値との間の差(最大値-最小値)を算出する。プロセッサ210は、レーベル読取画像の複数の画素のそれぞれに関して、輝度値の差の絶対値を算出する。
図7(A)の下部には、輝度値の差によって表される差分画像IMdbが示されている。差分画像IMdbの第1領域L1では、差の絶対値は、3枚の第1レーベル読取画像IM11r、IM12、IM13rから得られる大きな値になる。第2領域L2では、差の絶対値はゼロに近い。また、テキスト画像TXaを示す部分では、差の絶対値はゼロに近い。
以上のように、本実施例では、3個のレーベル読取データを用いてマスク部分が特定されるので、第2実施例と同様に、適切なマスク部分を特定できる。また、マスク部分は、3個のレーベル読取データによって示される3個の輝度値を用いて特定される。具体的には、マスク部分は、レーベル面上の同じ部分を示す3個の輝度値の最大値と最小値との間の差が基準値以上である部分である。従って、プロセッサ210は、レーベル面900Laのうちオブジェクトの画像が記録されていない部分を、適切に、マスク部分として特定できる。
D.参考例:
図8は、参考例の読取処理のフローチャートの一部である。図3のフローチャートとの差異は、図3のS273、S276が、図8のS283、S286に置換されている点だけである。読取処理の他の部分は、図3の対応する部分と同じである。
図9(A)-図9(C)は、画像処理の概要を示す説明図である。以下、図4(B)、図4(C)の実施例と同じ2個のレーベル読取データを用いてマスク部分が特定されることとする。図9(A)、図9(B)は、レーベル読取画像IM1、IM2を、それぞれ示している。これらのレーベル読取画像は、図4(B)、図4(C)のレーベル読取画像IM1、IM2と、それぞれ同じである。各図中には、対象範囲Rta、Rtbが示されている。対象範囲Rta、Rtbは、中心LCを中心とする回転方向の一部の範囲である。対象範囲Rta、Rtbは、暗領域L1bを含まずに縞領域L1aのみを含むように、予め実験的に決められている。本実施例では、対象範囲Rta、Rtbは、それぞれ、中心LCを中心とする360度の全範囲を4等分して得られる4個の範囲から選択された範囲である。第1対象範囲Rtaは、中心LCの-D1方向側の範囲であり、第2対象範囲Rtbは、中心LCの第1方向D1側の範囲である。
図9(C)は、レーベル読取画像の処理の例を示す説明図である。図中の上部には、レーベル読取画像IM1、IM2が示されている。これらのレーベル読取画像IM1、IM2では、説明のために、対象範囲Rta、Rtb内の部分である対象部分IM1a、IM1b、IM2a、IM2bが示され、他の部分の図示は省略されている。図9(C)の中部には、角度調整済の第2レーベル読取画像IM2rが示されている。この第2レーベル読取画像IM2rは、図4(D)の第2レーベル読取画像IM2rと同じである。なお、図中では、角度調整済の第2レーベル読取画像IM2r中には、回転された対象部分IM2a、IM2bが、それぞれ示されており、他の部分の図示は省略されている。
S283(図8)では、プロセッサ210は、角度調整済のN枚(ここでは、2枚)のレーベル読取画像のそれぞれの対象部分を特定する。プロセッサ210は、予め決められた対象範囲Rta、Rtb(図9(A)、図9(B))を、S263(図3)の回転角度と同じ角度で回転させることによって、角度調整済のレーベル読取画像に適用すべき対象範囲を特定する。そして、プロセッサ210は、角度調整済のレーベル読取画像のうちの対象範囲内の対象部分を特定する。図9(C)の例では、第1レーベル読取画像IM1からは、第1対象範囲Rta内の第1対象部分IM1aと、第2対象範囲Rtb内の第2対象部分IM1bとが、特定される。角度調整済の第2レーベル読取画像IM2rからは、回転済の第1対象範囲Rta内の第1対象部分IM2aと、回転済の第2対象範囲Rtb内の第2対象部分IM2bとが、特定される。
S286(図8)では、プロセッサ210は、特定された対象部分を合成することによって、1枚のレーベル画像を示す出力画像データを生成する。図9(C)の下部には、出力画像データによって表される出力画像の例が示されている。本参考例では、S283で特定された対象部分IM1a、IM1b、IM2a、IM2bは、全体として、レーベル画像の全体を含んでいる。従って、プロセッサ210は、対象部分IM1a、IM1b、IM2a、IM2bを組み合わせることによって、レーベル画像の全体を示す出力画像データを生成できる。例えば、出力画像IMocのテキスト画像TXを示す画素の色値は、テキスト画像TXを含む第1対象部分IM2aのテキスト画像TXを示す画素の色値に、決定される。このように、出力画像データのレーベル画像の注目部分の画素の色値は、対象部分IM1a、IM1b、IM2a、IM2bのうちの注目部分を含む対象部分の注目部分の画素の色値に決定される。S286の後、処理は、図3のS290へ移行する。
以上のように、本参考例では、上記の各実施例と同様に、S230-S255(図3)が行われる。プロセッサ210は、N回の読取りを、読取部300に行わせることによって、N個のレーベル読取データを取得する(本参考例では、N=2)。S250で説明したように、2回の読み取りでは、読取部300に対するディスクメディア900の向きが互いに異なるようにディスクメディア900が読取部300に対して配置される。そして、S283、S286(図8)では、プロセッサ210は、N個のレーベル読取データのN個のレーベル画像のそれぞれの対象部分を合成することによって、1枚のレーベル画像を示す出力画像データを生成する。図9(A)、図9(B)で説明したように、各対象部分は、読取部300に対するディスクメディア900の中心LCを中心とする回転方向の予め決められた一部の範囲の部分である。従って、N個のレーベル画像のそれぞれの対象部分は、レーベル画像の互いに異なる部分を示している。そして、N個のレーベル画像のそれぞれの対象部分を合成することによって、1枚のレーベル画像を示す出力画像データが生成される。以上により、適切なレーベル画像の出力画像データを生成できる。
なお、読取部300によって生成される画像データを処理するプロセッサ210(ひいては、制御部205)は、より一般的には、以下のように構成されてよい。
[構成]
対象物を光学的に読み取る読取装置によって生成される前記対象物の画像データを処理する画像処理装置であって、
ディスクメディアのレーベル面のN回(Nは2以上の整数)の読み取りを行う読取装置によって生成されるN個の画像データを用いて、前記レーベル面の画像であるレーベル画像を示すN個のレーベル読取データを取得する取得部であって、前記N回の読み取りでは前記読取装置に対する前記ディスクメディアの向きが互いに異なるように前記ディスクメディアが前記読取装置に対して配置される、前記取得部と、
前記N個のレーベル読取データのN個のレーベル画像のそれぞれの対象部分を合成することによって、1枚のレーベル画像を示す出力画像データを生成する生成部であって、前記レーベル画像の前記対象部分は、前記読取装置に対する前記ディスクメディアの中心を中心とする回転方向の予め決められた一部の範囲の部分である、前記生成部と、
を備える画像処理装置。
この構成によれば、N個のレーベル画像のそれぞれの対象部分は、レーベル画像の互いに異なる部分を示しており、N個のレーベル画像のそれぞれの対象部分を合成することによって、1枚のレーベル画像を示す出力画像データが生成されるので、適切なレーベル画像の出力画像データを生成できる。
E.変形例:
(1)図3の処理において、マスク部分としては、N個の輝度値の最大値と最小値との間の差が基準値以上である部分に限らず、N個のレーベル読取データによって示されるN個の色値のばらつきが基準値以上である部分が、採用されてよい(なお、N個の色値は、レーベル面上の同じ部分を示している)。
マスク部分を特定するために利用される色値は、1種類の色成分値であってよい。色値は、例えば、輝度値、RGB色空間の赤R、緑G、青Gのいずれか、HSV色空間の色相H、彩度S、明度Lのいずれか、CIELAB色空間のL*、a*、b*のいずれか、印刷部260で利用可能な各色材の量を示す色材色空間(例えば、CMYK色空間)のいずれかのインク色成分、などの、種々の色成分値であってよい。このように色値として1種類の色成分値が用いられる場合、N個の色値のばらつきは、N個の色成分値のうちの最大値と最小値との差に限らず、分散、標準偏差など、N個の色成分値の散らばりの度合いを示す種々の値であってよい。
また、色値は、K種類(Kは2以上の整数)の色成分値で表されてもよい。色値は、例えば、RGB色空間内の座標(RGB値)、HSV色空間内の座標(HSV値)、CIELAB色空間内の座標(L*a*b*値)、色材色空間内の座標(例えば、CMYK値)、のいずれかであってよい。このように、色値がK種類(Kは2以上の整数)の色成分値で表される場合、N個の色値のばらつきは、2個の色値の間の差分を用いて表される値であってよい。例えば、色値は、CIELAB色空間内の座標であり、N個の色値のばらつきは、2個の色値の間の色差(CIELAB色空間内のユークリッド距離)のうちの最大値であってよい。また、色値が色材色空間内の座標、例えば、CMYK値である場合、色値は、各色材の量を示している。ここで、N個の色値のばらつきは、色材量の差分であってよい。例えば、2個の色値の間の色材量の差分は、Cの差分とMの差分とYの差分とKの差分とのそれぞれの絶対値の和で表される。N個の色値のばらつきは、色材量の差分の最大値であってよい。
(2)出力画像データのレーベル画像中のマスク部分の色値は、白色の色値に代えて、他の種々の色値であってよい。例えば、マスク部分の色値は、透明を示す色値であってよい。出力画像データは、透明度を表す色成分(例えば、アルファチャンネル)を含んでよく、マスク部分では、アルファチャンネルの値が透明を示す値であってよい。出力画像データがレーベル画像の表示に利用される場合、出力画像データは、適切なレーベル画像を表現できる。
また、出力画像データのレーベル画像からマスク部分を除いた残りの部分の色値は、N個のレーベル読取データのうちのP個(Pは1以上N以下の整数)のレーベル読取データを用いて決定されてよい。例えば、色値は、P個の色値の平均の色値であってよい。
(3)図3の処理において、マスク部の特定に用いられるレーベル読取データの総数N(すなわち、レーベル面の読取り回数)は、4以上であってよい。いずれの場合も、N回の読み取りのそれぞれでは、読取部300に対するディスクメディアの向きが互いに異なるように、ディスクメディアが読取部300に対して配置されることが好ましい。通常は、レーベル読取画像内の暗領域の位置と形状とは、読取部300の構成に応じて、予め決まっている。N回の読取りのそれぞれでのディスクメディアの向き(例えば、調整角度AG(図3:S250))は、レーベル読取画像内の暗領域の位置と形状とに応じて予め決定されてよい。例えば、レーベル面上の任意のオブジェクトが、N枚のレーベル読取画像のうちの少なくとも1枚のレーベル読取画像の明領域に配置されるように、調整角度AGが決められることが好ましい。明領域内では、オブジェクトの画像は、適切に表現される。
図4(C)等の実施例では、暗領域L1bは、中心LCを通る直線(具体的には、第2方向D2に平行な直線)に沿って形成されることとしている。この場合、上記各実施例のように、N回の読取りによってディスクメディアが90度回転するように、調整角度AGが決定されてよい。これにより、1枚のレーベル読取画像の暗領域内にオブジェクトの画像が配置される場合、そのオブジェクトの画像は、他のレーベル読取画像上では明領域内に配置され得る。従って、N個のレーベル読取データを用いることによって、レーベル面上のオブジェクトの画像を適切に表現する出力画像データを生成できる。
なお、マスク部分の特定方法は、上記の方法に代えて、他の種々の方法であってよい。例えば、明領域の縞パターンを用いるパターンマッチングによって、マスク部分が特定されてよい。
(4)図8の参考例において、S283でN枚のレーベル読取画像から特定される複数の対象部分は、レーベル画像上の互いに共通な部分を含んでもよい。例えば、出力画像IMoc(図9(C))上で隣接する2個の対象部分IM1a、IM2aは、対象部分IM1a、IM2aを接続する共通部分を含んでよい。共通部分では、一方の対象部分IM1aの画素の色値と他方の対象部分IM2aの画素の色値とを用いて、出力画像IMocの画素の色値が決定されてよい(例えば、平均)。これにより、2個の対象部分の境界が不自然に目立つことを抑制できる。いずれの場合も、各対象部分は、ディスクメディアの中心を中心とする回転方向の一部の範囲の部分であってよい。このような対象部分は、扇状の部分である。また、各対象部分は、レーベル読取画像上の明領域に含まれることが好ましい。明領域内では、オブジェクトの画像が適切に表現されるので、対象部分は、オブジェクトの画像を適切に表現できる。
(5)図8の参考例において、対象部分の特定に用いられるレーベル読取データの総数N(すなわち、レーベル面の読取り回数)は、3以上であってよい。いずれの場合も、N回の読取りのそれぞれでのディスクメディアの向き(例えば、調整角度AG(図3:S250))は、以下のように決定されてよい。通常は、レーベル読取画像内の暗領域の位置と形状とは、読取部300の構成に応じて、予め決まっている。対象部分は、暗領域と重ならない位置に、配置される。ここで、レーベル面上のオブジェクトの画像が、N枚のレーベル読取画像のうちの少なくとも1枚のレーベル読取画像の対象部分に配置されるように、調整角度AGが決められることが好ましい。すなわち、N枚のレーベル読取画像の複数の対象部分は、全体として、レーベル画像の全体を含むように、調整角度AGが決められることが好ましい。この構成によれば、N個のレーベル読取データの複数の対象部分を用いることによって、レーベル面上のオブジェクトの画像を適切に表現する出力画像データを生成できる。例えば、図9(B)等の参考例では、暗領域L1bは、中心LCを通る直線(具体的には、第2方向D2に平行な直線)に沿って形成されることとしている。この場合、上記参考例のように、N回の読取りによってディスクメディアが90度回転するように、調整角度AGが決定されてよい。これにより、N枚のレーベル読取画像の複数の対象部分は、全体として、レーベル画像の全体を含むことができる。
なお、対象部分の特定方法は、図9(C)で説明した方法に代えて、他の種々の方法であってよい。例えば、図8のS283は、図3のS263の前に行われてよい。すなわち、プロセッサ210は、角度調整前のレーベル読取画像から対象部分を特定し、特定した対象部分を回転させてもよい。
(6)読取処理は、上記各実施例と参考例の処理に代えて、他の種々の処理であってよい。例えば、図3のS260では、プロセッサ210は、レーベル読取画像を解析せずに、予め決められた角度を相対角度として採用してよい。また、図3のS230では、プロセッサ210は、読取部300によって生成された画像データを用いてレーベル読取データを生成することによって、レーベル読取データを取得している。これに代えて、読取部300は、データ処理装置(例えば、コンピュータ)を備え、読取部300のデータ処理装置が、レーベル読取データを生成してもよい。この場合、図3のS230では、プロセッサ210は、読取部300からレーベル読取データを取得してよい。読取部300からレーベル読取データを取得する処理も、読取部300によって生成される画像データを用いてレーベル読取データを取得する処理の例である。
(7)読取部300の構成は、図1で説明した構成に代えて、他の種々の構成であってよい。例えば、センサユニット320は、CCD型の装置であってよい。また、読取部300は、読取りの対象のディスクメディアを支持するトレイと、トレイ上のディスクメディアを回転させる回転装置と、を備えてよい。そして、図3のS250では、プロセッサ210は、読取部300の回転装置に、ディスクメディアを回転させてよい。また、複合機200に代えて、2次元のイメージセンサを備える読取装置(例えば、デジタルカメラ)が、読取装置として用いられてもよい。
(8)S110(図2)で生成された出力画像データは、種々の処理で利用されてよい。例えば、S120で、出力画像データは、表示部240に供給されてよい。そして、表示部240は、出力画像データに従って、レーベル画像を表示してよい。また、出力画像データのデータ形式は、任意の形式であってよい。例えば、PNG形式やJPEG形式などのビットマップ形式が採用されてよい。
(8)上記各実施例と参考例では、読取部300を備える複合機200の制御部205が、図2、図3、図8の処理を実行している。これに代えて、複合機200に接続されたデータ処理装置(図示せず。例えば、コンピュータ)が、図2、図3、図8の処理を実行してもよい。また、図2、図3、図8の画像処理は、ネットワークを介して互いに通信可能な複数の装置(例えば、コンピュータ)が、図2、図3、図8の処理の機能を一部ずつ分担して、全体として、画像処理の機能を提供してもよい(これらの装置を備えるシステムが画像処理装置に対応する)。
上記各実施例と参考例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、図3のS273、S276が、専用のハードウェア回路によって実行されてもよい。また、図8のS283、S286が、専用のハードウェア回路によって実行されてもよい。
また、本発明の機能の一部または全部がコンピュータプログラムで実現される場合には、そのプログラムは、コンピュータ読み取り可能な記録媒体(例えば、一時的ではない記録媒体)に格納された形で提供することができる。プログラムは、提供時と同一または異なる記録媒体(コンピュータ読み取り可能な記録媒体)に格納された状態で、使用され得る。「コンピュータ読み取り可能な記録媒体」は、メモリーカードやCD-ROMのような携帯型の記録媒体に限らず、各種ROM等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含み得る。
以上、実施例、参考例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。