装置、方法、プログラム
【課題】本発明の課題は、符号画像パターンの復号処理における復号性能を向上させ、復号処理の負荷を小さくすることができる装置を提供することである。
【解決手段】上記課題を解決するために、本発明に係る装置は、検出用パターンを持つ符号画像パターンを復号化する装置であって、画像から検出用パターンを検出する検出手段と、検出された検出用パターンにより位置の特定される符号画像パターンの濃度を、検出された検出用パターンの濃度に基づいて、補正する補正手段と、濃度を補正した後の符号画像パターンを復号化する復号化手段とを備えることを特徴とする。
【解決手段】上記課題を解決するために、本発明に係る装置は、検出用パターンを持つ符号画像パターンを復号化する装置であって、画像から検出用パターンを検出する検出手段と、検出された検出用パターンにより位置の特定される符号画像パターンの濃度を、検出された検出用パターンの濃度に基づいて、補正する補正手段と、濃度を補正した後の符号画像パターンを復号化する復号化手段とを備えることを特徴とする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、装置、方法、プログラムに関する。
【背景技術】
【0002】
符号画像パターンの印刷された印刷物をコピーするに際して、当該印刷物上の画像のコピーを作成すると共に、当該印刷物上の画像内の符号画像パターンを復号するMFPも出てきている。なお、符号画像パターンとは、例えば、電子透かし画像や二次元バーコード画像(2次元コードと称することもある)やバーコード画像やステガノグラフィーである。
【発明の概要】
【発明が解決しようとする課題】
【0003】
しかしながら、コピーを作成するのに適した画像と、符号画像パターンを復号するのに適した画像は異なる。コピーを作成するのに適した画像は、元の印刷物の画像を的確に表現した画像であり、符号画像パターンを復号するのに適した画像は、符号画像パターンの黒と白の部分が確りと区別された画像である。
【0004】
本発明は、コピーを作成するのに適した画像を用い、高速な(演算量の少ない)方法でその画像における符号画像パターンを復号することを目的とする。
【課題を解決するための手段】
【0005】
上記課題を解決するために、本発明に係る装置は、検出用パターンを持つ符号画像パターンを復号化する装置であって、画像から検出用パターンを検出する検出手段と、検出された検出用パターンにより位置の特定される符号画像パターンの濃度を、検出された検出用パターンの濃度に基づいて、補正する補正手段と、濃度を補正した後の符号画像パターンを復号化する復号化手段とを備えることを特徴とする。
【発明の効果】
【0006】
本発明によれば、符号画像パターンの復号処理における復号性能を向上させ、復号処理の負荷を小さくすることができる。
【図面の簡単な説明】
【0007】
【図1】画像形成システムを示す図である。
【図2】画像形成装置を示す図である。
【図3】タイルデータを概念的に示す図である。
【図4】スキャナ画像処理部のブロック図である。
【図5】プリンタ画像処理部のブロック図である。
【図6】操作部のコピー画面の説明図である。
【図7】2次元コードを示す図である。
【図8】2次元コードの符号化のフローチャートである。
【図9】実施形態1のフローチャートである。
【図10】2次元コードの検出用パターン図である。
【図11】2次元コードの復号化処理のフローチャートである。
【図12】スキャン画像処理後の2次元コードを示す図である。
【図13】検出用パターンの検出処理の前処理後の2次元コードを示す図である。
【図14】符号画像パターンの復号処理の前処理後の2次元コードを示す図である。
【図15】2次元コードのヒストグラムを示す図である。
【図16】実施形態2のフローチャートである。
【図17】検出用パターンを示す図である。
【発明を実施するための形態】
【0008】
以下では、図面を参照して本発明を実施するための最良の形態について説明する。
【0009】
<実施形態1>
実施形態1について図面を参照して詳細に説明する。
【0010】
<印刷システム(図1)>
図1は、本発明の実施形態に係る印刷システムを示すブロック図である。この印刷システムではホストコンピュータ(以下、PCと称する)40及び3台の画像形成装置(10,20,30)がLAN50に接続されているが、本発明における印刷システムにおいては、これらの接続数に限られることはない。また、本実施形態では接続方法としてLANを適用しているが、これに限られることはない。例えば、WAN(公衆回線)などの任意のネットワーク、USBなどのシリアル伝送方式、セントロニクスやSCSIなどのパラレル伝送方式なども適用可能である。
【0011】
PC40は、パーソナルコンピュータの機能を有している。PC40は、LAN50やWANを介してFTPやSMBプロトコルを用いファイルを送受信したり電子メールを送受信したりすることができる。また、PC40から画像形成装置10、20、30に対して、プリンタドライバを介した印字命令を行うことが可能となっている。
【0012】
画像形成装置10、20は、同様の装置である。画像形成装置30は、プリント機能のみの画像形成装置であり、画像形成装置10、20が有するスキャナを有していない。以下では、画像形成装置10、20のうちの画像形成装置10に注目して、詳細に説明する。
【0013】
画像形成装置10は、画像入力デバイスであるスキャナ13と、画像出力デバイスであるプリンタ14と、画像形成装置10全体の動作制御を司るコントローラ11と、ユーザインターフェース(UI)である操作部12とを有する。
【0014】
同様に、画像形成装置20は、画像入力デバイスであるスキャナ23と、画像出力デバイスであるプリンタ24と、画像形成装置20全体の動作制御を司るコントローラ21と、ユーザインターフェース(UI)である操作部22とを有する。
【0015】
同様に、画像形成装置30は、画像出力デバイスであるプリンタ33と、画像形成装置30全体の動作制御を司るコントローラ31と、ユーザインターフェース(UI)である操作部32とを有する。
【0016】
<画像形成装置10>
画像形成装置10のスキャナ13は、複数のCCDを有している。この各CCDの感度が夫々異なっていると、たとえ原稿上の各画素の濃度が同じであったとしても、各画素が夫々違う濃度であると認識されてしまう。そのため、スキャナ13は、最初に白板(一様に白い板)を露光走査し、露光走査して得られた反射光の量を電気信号に変換してコントローラ11に出力する。なお、後述するように、コントローラ11のシェーディング補正部500は、各CCDから得られた電気信号を元に、各CCDの感度の違いを認識している。そして、この認識された感度の違いを利用して、原稿上の画像をスキャンして得られた電気信号の値を補正している。
【0017】
さらに、シェーディング補正部500は、後述するコントローラ11のCPU301からゲイン調整の情報を受取ると、当該情報に応じたゲイン調整を行う。ゲイン調整は、原稿を露光走査して得られた電気信号の値を、どのように0〜255の輝度信号値に割り付けるかを調整するために用いられる。このゲイン調整により、原稿を露光走査して得られた電気信号の値を高い輝度信号値に変換したり、低い輝度信号値に変換したりすることができるようになっている。つまり、このゲイン調整により、読み取り信号のダイナミックレンジの調整が可能である。
【0018】
続いて、この原稿上の画像をスキャンするスキャナについて説明する。
【0019】
スキャナは、原稿上の画像を露光スキャンして得られた反射光をCCDに入力することで画像の情報を電気信号に変換する。さらに電気信号をR,G,B各色からなる輝度信号に変換し、当該輝度信号を画像としてコントローラ11に対して出力する。この際に、原稿をスキャンする解像度は、コントローラ11から指定することが可能である。
【0020】
なお、原稿は、不図示の原稿フィーダのトレイにセットされる。ユーザが操作部12から読み取り開始を指示すると、コントローラ11からスキャナ13に原稿読み取り指示が与えられる。スキャナ13は、この指示を受けると原稿フィーダのトレイから原稿を1枚ずつフィードして、原稿の読み取り動作を行う。なお、原稿の読み取り方法は原稿フィーダによる自動送り方式ではなく、原稿を不図示のガラス面上に載置し露光部を移動させることで原稿の走査を行う方法であってもよい。
【0021】
また、スキャナ13の周波数特性や特性パラメータの情報は、コントローラ11のRAM302に保持しておく。ここで、特性パラメータとは、白レベル基準や輝度と濃度の対応関係である。
【0022】
プリンタ14は、コントローラ11から受取った画像を用紙上に形成する画像形成デバイスである。なお、本実施形態において画像形成方式は感光体ドラムや感光体ベルトを用いた電子写真方式となっているが、本発明はこれに限られることはない。例えば、微少ノズルアレイからインクを吐出して用紙上に印字するインクジェット方式などでも適用可能である。また、プリンタ14には、異なる用紙サイズ又は異なる用紙向きを選択可能とする不図示の複数の用紙カセットが設けられている。また、不図示の排紙トレイには印字後の用紙が排出される。
【0023】
<コントローラ11の詳細説明(図2)>
図2は、画像形成装置10のコントローラ11をより詳細に説明するためのブロック図である。
【0024】
コントローラ11は、スキャナ13やプリンタ14と電気的に接続されており、一方ではLAN50やWAN331を介してPC40や外部の装置などと接続されている。これにより画像やデバイス情報の入出力が可能となっている。
【0025】
CPU301は、ROM303に記憶された制御プログラム等に基づいて接続中の各種デバイスとのアクセスを統括的に制御すると共に、コントローラで行われる各種処理についても統括的に制御する。
【0026】
RAM302は、CPU301が動作するためのシステムワークメモリであり、かつ画像を一時記憶するためのメモリでもある。RAM302は、記憶した内容を電源off後も保持しておく不揮発性RAM及び電源off後には記憶した内容が消去されてしまうDRAMを有する。ROM303には装置のブートプログラムなどが格納されている。
【0027】
HDD304は、ハードディスクドライブであり、システムソフトウェアや画像を格納する。
【0028】
操作部I/F305は、システムバス310と操作部12とを接続するためのインターフェースである。操作部I/F305は、操作部12に表示するための画像をシステムバス310から受取り操作部12に出力すると共に、操作部12から入力された情報をシステムバス310へと出力する。
【0029】
NetworkI/F306は、LAN50及びシステムバス310に接続し、情報の入出力を行う。
【0030】
Modem307は、WAN331及びシステムバス310に接続しており、情報の入出力を行う。
【0031】
2値画像回転部308は、送信前の画像の方向を変換する。
【0032】
2値多値画像圧縮・伸張部309は、送信前の画像の解像度を所定の解像度や相手能力に合わせた解像度に変換する。なお圧縮及び伸張にあたってはJBIG、MMR、MR、MHなどの方式が用いられる。
【0033】
画像バス330は、画像をやり取りするための伝送路であり、PCIバス又はIEEE1394を有する。
【0034】
スキャナ画像処理部312は、スキャナ13からスキャナI/F311を介して受取った画像に対して、補正、加工、及び編集を行う。なお、スキャナ画像処理部312は、受取った画像がカラー原稿か白黒原稿かや、文字原稿か写真原稿かなどを判定する。そして、その判定結果を画像に付随させる。こうした付随情報を属性データと称する。スキャナ画像処理部312で行われる処理の詳細については後述する。
【0035】
圧縮部313は、画像を受取り、この画像を32×32画素のブロック単位に分割する。なお、この32×32画素の画像をタイルデータと称する。
【0036】
図3は、タイルデータを概念的に表している。原稿(読み取り前の紙媒体)において、タイルデータに対応する領域をタイル画像と称する。なおタイルデータには、その32×32画素のブロックにおける平均輝度情報やタイル画像の原稿上の座標位置がヘッダ情報として付加されている。さらに圧縮部313は、複数のタイルデータからなる画像を圧縮する。伸張部316は、複数のタイルデータからなる画像を伸張した後にラスタ展開してプリンタ画像処理部315に送る。
【0037】
プリンタ画像処理部315は、伸張部316から送られた画像を受取り、この画像に付随させられている属性データを参照しながら画像に画像処理を施す。画像処理後の画像は、プリンタI/F314を介してプリンタ14に出力される。この際、一旦、圧縮313で圧縮を行い、伸張部316で伸張してから、画像処理後の画像を、プリンタI/F314を介してプリンタ14に出力してもよい。プリンタ画像処理部315で行われる処理の詳細については後述する。
【0038】
符号画像パターン処理部317は、画像に各種処理を施し、画像に存在する符号画像パターンの復号化の処理(復号処理)を施す。符号画像パターン処理部317が処理する画像は、スキャン画像処理部312またはプリンタ画像処理部315で処理を行ったあとに圧縮部313で圧縮が施された画像である。これらの処理部は、ハードウェアである必要はなく、RAM302上に展開されたプログラムでもよい。符号画像パターン処理部317で行われる処理の詳細については後述する。
【0039】
RIP330は、PC40などから送信されたPDLコードデータを元に生成された中間データを受取り、ビットマップデータ(多値)を生成する。
【0040】
<スキャナ画像処理部312の詳細説明(図4)>
図4は、スキャナ画像処理部312を示す。
【0041】
スキャナ画像処理部312は、RGB各8bitの輝度信号からなる画像を受取る。
【0042】
シェーディング補正部500は、この輝度信号に対してシェーディング補正する。シェーディング補正とは、上述したように、CCDの感度のばらつきによって原稿の明るさが誤認識されてしまうことを防止するための処理である。さらに、上述したように、シェーディング補正部500は、CPU301からの指示によりゲイン調整を行うことができる。
【0043】
続いて、この輝度信号は、マスキング処理部501によりCCDのフィルタ色に依存しない標準的な輝度信号に変換される。この標準的な輝度信号への変換は、一度、1次元ルックアップテーブルでRGB各色ごとの調整を行ったあとに、3次元のルックアップテーブルを用いて実行される。
【0044】
フィルタ処理部502は、受取った画像の空間周波数を任意に補正する。フィルタ処理部502は、受取った画像に対して、例えば7×7のマトリクスを用いた演算処理を行う。
【0045】
ところで、複写機や複合機では、図6における704タブの押し下げによりコピーモードとして文字モードや写真モードや文字/写真モードを選択することができる。ここで、ユーザにより文字モードが選択された場合には、フィルタ処理部502は、文字用のフィルタを画像全体にかける。また、写真モードが選択された場合には、写真用のフィルタを画像全体にかける。また、文字/写真モードが選択された場合には、後述の文字写真判定信号(属性データの一部)に応じて画素ごとに適応的にフィルタを切り替える。
【0046】
つまり、画素ごとに写真用のフィルタをかけるか文字用のフィルタをかけるかが決定される。なお、写真用のフィルタには高周波成分のみ平滑化が行われるような係数が設定されている。これは、画像のざらつきを目立たせないためである。また、文字用のフィルタには強めのエッジ強調を行うような係数が設定されている。これは、文字のシャープさを出すためである。なお、フィルタ処理部502で用いられたフィルタパラメータは、後段の処理で使用する可能性があるため、RAM302に保持される。
【0047】
ヒストグラム生成部503は、受取った画像の各画素の輝度データをサンプリングする。より詳細に説明すると、主走査方向、副走査方向にそれぞれ指定した開始点から終了点で囲まれた矩形領域の輝度データを、主走査方向、副走査方向に一定のピッチでサンプリングする。そして、サンプリング結果を元にヒストグラムデータを生成する。生成されたヒストグラムデータは、下地飛ばし処理を行う際に下地レベルを推測するために用いられる。なお、ヒストグラム生成部503でサンプリングされた結果は、下地飛ばし処理やそのほかの後段での処理で利用する可能性のために、RAM302に保持される。
【0048】
入力側ガンマ補正部504は、入力側ガンマ補正部504に入力された1次元ルックアップテーブルなどを利用して非線形特性を持つ輝度データに変換する。なお、入力側ガンマ補正部504で利用した1次元ルックアップテーブルパラメータなどは、後段の処理で使用する可能性があるため、RAM302に保持される。
【0049】
カラーモノクロ判定部505は、カラーモノクロ判定部505が受取った画像の各画素が有彩色であるか無彩色であるかを判定し、その判定結果をカラーモノクロ判定信号(属性データの一部)として画像に付随させる。
【0050】
文字写真判定部506は、画像の各画素が文字の画素なのか、網点の画素なのか、網点中の文字の画素なのか、ベタ画像の画素なのかを各画素の画素値と各画素の周辺画素の画素値とに基づいて判定する。なお、どれにもあてはまらない画素は、白領域の画素である。そして、その判定結果を文字写真判定信号(属性データの一部)として画像に付随させる。
【0051】
<プリンタ画像処理部315の詳細説明(図5)>
図5は、プリンタ画像処理部315においてなされる処理の流れを示す。
【0052】
下地飛ばし処理部601は、スキャナ画像処理部312で生成されたヒストグラムを用いて画像の下地色を飛ばす(除去する)。
【0053】
モノクロ印刷をする場合には、モノクロ生成部602は、カラーデータをモノクロデータに変換する。
【0054】
Log変換部603は、輝度濃度変換を行う。Log変換部603は、例えば、RGB入力された画像を、CMYの画像に変換する。
【0055】
出力色補正部604は、出力色補正を行う。例えば、CMY入力された画像を、テーブルやマトリックスを用いてCMYKの画像に変換する。
【0056】
出力側ガンマ補正部605は、出力側ガンマ補正部605に入力される信号値と、複写出力後の反射濃度値とが比例するように補正を行う。
【0057】
中間調補正部606は、出力するプリンタの階調数に合わせて中間調処理を行う。例えば、受取った高階調の画像に対し2値化や32値化などを行う。
【0058】
なお、スキャナ画像処理部312やプリンタ画像処理部315における各処理部では、受取った画像に各処理を施さずに出力させることも可能となっている。
【0059】
<符号画像パターン処理部317の詳細説明(図2)>
図2の記載の符号画像パターン処理部317の詳細について説明をする。
【0060】
伸張部318は、伸張部318が受取った画像を伸張する。伸張部318により伸張された画像は、処理部320〜329を任意の順番で利用して処理されることができる。圧縮部319は、圧縮部319が受取った画像を圧縮する。圧縮部319が受け取る画像は、2値データである場合も、多値データである場合もある。
【0061】
多値単純2値部320は、多値単純2値部320が受け取った多値の画像を単純2値化する。単純2値化とは、CPU301が設定する閾値により、画像を2値化するものである。カラー画像は、任意の変換式により、グレースケール画像に変換されたあとに、CPU301が設定する閾値により、2値化される。
【0062】
多値2値部321は、多値2値部321が受け取った多値の画像を2値化する。多値2値部321は、単純2値化ではない各種方法による2値化が可能である。具体的には、多値2値部321は、ヒストグラムを用いて2つのクラスタの分離度が最大になるように閾値を決定したり、ヒストグラムを用いて白画素と黒画素のDUTY比が50%になるような閾値を決定することができる。カラー画像については、任意の変換式により、カラー画像をグレースケール画像に変換したあとに、2値化処理を行う。
【0063】
2値多値部322は、2値化された画像を多値変換する。具体的には、2値多値部322は、2値画像を多値の最小値と最大値を持つ画像に変換したあとに、ガウシアンフィルタなどのフィルタでぼかすことにより2値多値変換を実行する。
【0064】
変倍部323は、画像に変倍処理を施す。具体的には、リニア変倍やキュービック変倍、間引き変倍をすることにより変倍処理を実行する。
【0065】
フィルタ処理部324は、画像にフィルタ処理を施す。CPU301が設定する任意の形状・係数のフィルタを用いたフィルタ処理を施すがことが可能である。
【0066】
線形性調整部325は、1次元LUT(Look Up Table)を用いて、画像の線形性を調整することが可能である。
【0067】
特殊処理部326は、ノイズドットの除去や、太らせ処理、細らせ処理などの特殊処理を行うことが可能である。
【0068】
切りだし部327は、画像の一部を任意の大きさで切り出すことが可能である。
【0069】
検出用パターン検出部328および、符号画像パターン復号部329を説明する前に、本実施形態で使用する符号画像パターンである2次元コードの説明を行う。2次元コードとして、例えば、QRコード(登録商標)を用いることができる。なお、本発明は、2次元コード以外であっても、検出用パターンが存在するすべての符号画像パターンに適用可能である。検出用パターンとは、符号画像パターンを検出するためのパターンであり、検出がし易いような特徴的なパターンとなっている。2次元コードの検出用パターンは、図10に示すパターンである。この検出用パターン以外の符号画像パターン領域については、符号画像パターン本体と呼ぶ。また、符号画像パターンの最小単位の白い領域のことを白セルと呼び、黒い領域のことを黒セルと呼ぶ。
【0070】
2次元コードは、JIS0X0510で規定される符号画像パターンである。本発明では、原稿側には、2次元コードが付加されていることを前提とする。その符号化のフローチャートについて説明する。
【0071】
図8は、複写制限情報等の付加情報を用いて2次元コードを生成する過程を示すフローチャートである。図8のフローチャートは、2次元コードを原稿に付加する装置のCPUで実行されても、2次元コードを原稿に付加する装置に接続されたパソコンのCPUで実行されても良い。
【0072】
まず、ステップS900で、CPUは、符号化する種種の異なる文字を識別するため、付加情報を分析する。また、CPUは、誤り訂正レベルを選択し、付加情報を収容できる2次元コードの最小の型番を選択する。2次元コードの型番とは、2次元コードのサイズを表現する番号であり、1〜40の値をとる。型番1は21セル×21セルのサイズであり、177セル×177セルの大きさとなる。
【0073】
次に、ステップS901で、CPUは、付加情報の符号化を行う。まず、CPUは、付加情報を所定のビット列に変換し、必要に応じて、そのビット列の元データ(付加情報)の種類(数字、英数字、8ビットバイト、漢字等)を表す指示子や、終端パターンを付加する。次に、CPUは、このビット列を、8ビット単位に分割する。この8ビット単位のビット列をデータコード語と呼び、データコード語単位で分割されたビット列をデータコード語列とよぶ。型番および誤り訂正レベルに応じてデータコード語の数は規定されており、それに満たない場合には、CPUは、無意味なデータコード語をデータコード語列に追加する。
【0074】
次に、ステップS902で、CPUは、誤り訂正用の情報を付加するために、ステップS901で得られたデータコード語列を型番および誤り訂正レベルに応じた数の複数のブロックに分割する。そして、CPUは、各ブロック毎に、そのブロックの誤りを訂正することための誤り訂正コード語列を生成し、データコード語列の後に付加する。なお、誤り訂正コード語も8ビット単位のビット列である。このデータコード語および誤り訂正語のことをコード語と呼び、その並びのことをコード語列と呼ぶ。
【0075】
次に、ステップS903で、CPUは、ステップS902で得られた各ブロックのコード語列を8ビットのコード語単位でインターリーブし、型番に応じて、残余ビットを付加する。インターリーブは、コード語列の連続性を低下させることにより、バーストエラーに対する耐性を上げるために行われる。こうしてできた最終的なビットの並びを最終ビット列と呼ぶ。
【0076】
次に、ステップS904で、CPUは、白セルもしくは黒セルが配置されるマトリクスを設定する。マトリクスのサイズは、型番ごと決定される。そのマトリクスに、検出用パターンとともに、符号画像本体の構成要素を配置する。符号画像本体の構成要素は、分離パターン、タイミングパターンおよび位置合わせパターン等と、ステップS903で得られた最終ビット列である。最終ビット列の配置では、CPUは、ビット0に白セルを対応させ、ビット1に黒セルを対応させて、配置していく。配置は、型番に対応する配置規則に基づいて行われる。
【0077】
次に、ステップS905で、CPUは、更に、S904で得られた最終ビット列を並べた領域について、最適なマスクパターンを選択して、排他的論理和(XOR)演算によりマスク処理を施す。XOR演算とは、マスクパターンが0かつ対応するセルが白セルの場合には黒セルに、マスクパターンが1かつ対応するセルが黒セルの場合に白セルに変換する処理である。ここで、最適なマスクパターンについて説明する。白セルと黒セルの理想的な配置パターンには、検出用パターンに類似したパターンが含まらず、かつ、白セルや黒セルが連続しておらず、白セルと黒セルの比率が1対1に近い領域である。マスク処理(排他的論理和)の結果、このようなパターンを得ることができるマスクパターンが、最適なマスクパターンである。なお、マスク処理の結果、検出用パターンに類似したパターンが得られてしまうと、検出用パターンの誤検出につながるため、好ましくない。また、白セル、又は、黒セルの連続した領域では、一つ一つのセルが太りやすくなり、本来あるべきセルの大きさにならない可能性があるため、好ましくない。逆に、マスク処理の結果、白セルと黒セルの比率が1対1に近くなれば(そして、それ程、連続が無ければ)、黒セルの形成に難があっても、白セルの形成の難があっても、平等に対応できるため好ましいパターンとなる。
【0078】
次に、ステップS906で、CPUは、ステップS905で得られたモジュールに形式情報および型番情報を生成して、符号画像パターンを完成する。形式情報には、誤り訂正レベルと使用したマスクパターン情報が含まれる。
【0079】
このように符号化された結果として、2次元コードは図7のような外観の符合画像パターンとなる。
【0080】
2次元コードには、任意の情報を符号化することが可能である。本発明においては、複写条件情報が符号化された2次元コードパターンが、紙原稿上にあり、その紙原稿を画像形成装置10でスキャンすることを前提とする。なお、複写条件情報の他に、その原稿の出力プリンタ・時刻などの各種属性情報について符号化しても構わない。
【0081】
次に、このような2次元コードを前提とし、検出用パターン検出部328および、符号画像パターン復号部329について説明する。
【0082】
検出用パターン検出部328は、符号画像パターンに存在する検出用パターンを画像から検出し、符号画像パターン位置を特定する。検出は、高速化のため、通常、2値化された画像に対して行うが、多値画像に対して、検出を行っても構わない。また、検出効率を向上するために、画像をダウンサンプリングして解像度が低くした画像に対して、検出を行っても構わない。
【0083】
符号画像パターン復号部329では、符号画像パターンの本体の場所が既知の場合に、その符号画像パターン本体に復号処理を施し、情報データを取り出す。
【0084】
図11は、2次元コードを例として、符号画像パターンの復号を説明する図である。(図11のフローチャートにおいて、検出用パターンの位置はすでに特定されており、符号画像パターン本体の位置は既知である。)
まず、ステップS1201で、符号画像パターン復号部329は、検出用パターンに隣接する形式情報を復元し、符号画像パターンに適用された誤り訂正レベルおよびマスクパターン情報を得る。
【0085】
次に、ステップS1202で、符号画像パターン復号部329は、検出用パターンに隣接する型番情報を復元し、符号画像パターンの型番を決定する。
【0086】
次に、ステップS1203で、符号画像パターン復号部329は、形式情報を復元して得られたマスクパターンを使って最終ビット列領域とXOR演算することでマスクを解除する。
【0087】
次に、ステップS1204で、符号画像パターン復号部329は、型番に対応する配置規則に従い、マスクが解除された最終ビット列領域のビットパターンを読み取る。そして、符号画像パターン復号部329は、インターリーブを解除し、コード語列(データコード語列および誤り訂正コード語)を復元する。
【0088】
次に、ステップS1205で、符号画像パターン復号部329は、誤り訂正コード語列を用いて、データの誤りを検出し、誤りがなければ、ステップS1207の処理に進み、誤りがあった場合にはステップS1206の処理に進む。
【0089】
次に、ステップS1206で、符号画像パターン復号部329は、データコード語列の誤りを訂正する。
次に、ステップS1207で、符号画像パターン復号部329は、元データ(付加情報)の種類を示す指示子に基づき、データコード語列を復元して、符号化されていた付加情報を得る。
【0090】
次に、ステップS1208で、符号画像パターン復号部329は、復元された、符号化されていた情報を出力する。
【0091】
ステップS1201からステップS1204の処理においては、黒セルおよび白セルを有する、2次元コードに配置されている黒白のパターンを、適宜1bitのデータ列に変換することにより、処理が行われる。図7のような白黒のパターンの形がはっきりとした符号画像パターンから1bitのデータ列を取り出すことは容易である。しかし、図13のように白黒のパターンが乱れ、白また黒のパターンに太り細りがあるような符号画像パターンから1bitのデータ列を取り出すことは難しい。そのような1bitのデータ列を取り出すことが難しい符号画像パターンについては、処理に失敗することがある。
【0092】
<操作画面の説明>
図6は、画像形成装置10における初期画面である。
【0093】
領域701は、画像形成装置10がコピーできる状態にあるか否かを示し、かつ設定したコピー部数を示す。
【0094】
原稿選択タブ704は、原稿のタイプを選択するためのタブであり、このタブが押し下げられると文字、写真、文字/写真モードの3種類の選択メニューをポップアップ表示される。
【0095】
フィニッシングタブ706は、各種フィニッシングに関わる設定を行うためのタブである。
【0096】
両面設定タブ707は、両面読込み及び両面印刷に関する設定を行うためのタブである。
【0097】
色モードタブ702は、原稿の色モードを選択するためのタブである。このタブが押し下げられるとカラー/ブラック/自動(ACS)の3種類の選択メニューがポップアップ表示される。なお、カラーが選択された場合にはカラーコピーが、ブラックが選択された場合にはモノクロコピーが行われる。また、ACSが選択された場合には、上述したモノクロカラー判定信号によりコピーモードが決定される。
【0098】
本実施形態におけるシステムの説明は以上である。
【0099】
本実施形態のフローチャートを図9に示す。
【0100】
本フローチャートにおける各工程の処理は、CPU301により統括的に制御される。図9に示されているフローチャートは、操作部12でユーザがスキャン処理を伴う処理を選択し、開始ボタンを押した際に実行される。
【0101】
まず、ステップS1001で、CPU301は、操作部12の開始ボタンが押されていることを検知すると、スキャナ13を作動させ、原稿をスキャンする。そして、CPU301は、スキャナ13で読み取られた原稿を、画像としてスキャナI/F311を介してスキャナ画像処理部312に送るように制御する。また、CPU301は、スキャン時のスキャン解像度など設定パラメータやスキャナの特性パラメータについての情報をRAM302に保持しておく。
【0102】
次に、ステップS1002で、スキャナ画像処理部312は、スキャナ画像処理を画像に対して行う。
【0103】
スキャナ画像処理部312は、シェーディング補正部500、マスキング処理部501、フィルタ処理部502、ヒストグラム処理部503、入力側ガンマ補正部504、カラーモノクロ判定部505、文字写真判定部506で画像に対して処理を行う。そして、スキャナ画像処理部312は、処理が済んだ新たな画像と共に属性データを生成し、この属性データを画像に付随させる。そして、スキャナ画像処理部312は、画像を圧縮部313に送り、圧縮画像をRAM302もしくはHDD304に保持する。また、CPU301は、スキャン画像処理時のパラメータについての情報をRAM302に保持しておく。
【0104】
次に、ステップS1003で、CPU301は、ステップS1004の補正処理のパラメータと、ステップS1005の単純2値化処理の閾値パラメータを算出する。その算出の際には、CPU301は、RAM302に保持されているスキャン時の設定パラメータやスキャナの特性パラメータについての情報やスキャン画像処理時のパラメータを利用する。
【0105】
次に、ステップS1004で、CPU301は、主な補正処理として、変倍部323での変倍処理やフィルタ処理部324でのフィルタ処理や線形性調整部325での線形調整処理を実行する。
【0106】
変倍処理のパラメータは、スキャン時のスキャン解像度に関する設定パラメータに基づいて、後段の符号画像パターンの検出に適した解像度となるように決定される。たとえば、スキャン解像度が600×300のように片変倍であり、主副が同じ解像度であることが必要な際には、600×600や300×300などの主副が同じ解像度になるような解像度変換パラメータが決定される。変倍方法は、スキャン画像全面に対して変倍処理を行うため、計算コストを考慮する必要がある。そのため、単純間引きや単純拡大のような計算コストが軽い変倍方法を適用することを優先する。
【0107】
フィルタ処理のパラメータ決定方法について述べる。まず、特性パラメータやスキャン画像処理時のフィルタ処理部502でのフィルタパラメータに基づいて、その時点での画像の符号画像領域の平均輝度と周波数特性を推定する。ここで、特性パラメータとは、例えば、スキャナの周波数特性や白レベル基準である。
【0108】
次に、この推定に基づき、画像が、後段の符号画像パターンの検出に適した平均輝度と周波数特性となるようなパラメータが決定される。理想的な平均輝度とは、符号画像領域の平均輝度が50%の値(画像が8bitであれば127もしくは128)となるようなレベルである。理想的な周波数特性は、対応している符号画像パターンに対応する周波数成分が多く、その他の部分の周波数成分が少ない特性である。
【0109】
線形性調整処理のパラメータ決定方法について述べる。まず、特性パラメータと、スキャン画像処理時のヒストグラム生成部503のサンプリング結果と入力側ガンマ補正部504の1次元LUTパラメータに基づいて、その時点での輝度と濃度の対応関係を推定する。ここで、特性パラメータとは、例えば、スキャナの白レベル基準や、輝度と濃度の対応関係である。次に、この推定に基づき、画像が、後段の符号画像パターンの検出に適した輝度と濃度の対応関係となるような1次元LUTのパラメータが決定される。符号画像パターンの検出に適した輝度と濃度の関係は、検出方法にも依存するが、線形な対応関係が適している。
【0110】
ステップS1005の単純2値化処理の閾値パラメータは、通常、補正処理が正常に行われていれば、50%の値(画像が8bitであれば127もしくは128)で良い。ただし、補正処理の負荷を軽減するために、補正処理が十分に施されていない場合は、その補正処理を施さないことによる、50%の閾値からのずれが計算される。そして、そのずれを反映させた値が閾値とされる。(フィルタ処理などが絡むため、正確なずれ量は計算できない)
次に、ステップS1004で、CPU301は、まず、RAM302もしくはHDD304に保持されている圧縮画像を、符号画像パターン処理部317で処理するために、伸張部318で伸張する。次に、CPU301は、ステップS1003で決定した補正処理パラメータに基づいて、補正処理を行う。すなわち、CPU301は、ステップS1003で決定した補正処理パラメータに基づいて、補正処理を行うにあたっての補正量を決定する。
【0111】
変倍部323は、ステップS1003で決定した変倍処理パラメータに基づいて、変倍処理を行う。フィルタ処理部324は、ステップS1003で決定した変倍処理パラメータに基づいて、フィルタ処理を行う。線形性調整部325は、ステップS1003で決定した線形性調整処理パラメータに基づいて、線形性調整処理を行う。補正処理対象となる画像を、スキャンされた画像の全面としても良い。また、補正処理の負荷を低減するために、補正処理対象となる画像を、スキャンされた画像の一部としても良い。
【0112】
次に、ステップS1005で、CPU301は、ステップS1003で決定した単純2値化処理の閾値パラメータに基づいて、多値単純2値部320で、ステップS1004で補正された画像に対して単純2値化処理を行う。
【0113】
次に、ステップS1006で、CPU301は、ステップS1005で2値化された画像から、検出用パターン検出部328で、符号画像パターンの検出用パターンの検出を行う。検出用パターンは、1つの情報コードにつき、複数存在するため、その位置関係から符号画像パターン本体の位置を特定することができる。よって、検出用パターンが検出された場合には、CPU301は、その検出した検出用パターン情報から、符号画像パターンの位置情報を導きだし、その位置情報をRAM302に保持しておく。
【0114】
次に、ステップS1007で、CPU301は、まず、RAM302もしくはHDD304に保持されている圧縮画像を、符号画像パターン処理部317で処理するために、伸張部318で伸張する。次に、CPU301は、切り出し部327で、S1006で決定されたRAM302に保持されている符号画像パターンの位置情報に基づき、符号画像パターンの復号に用いる画像を切り出す。具体的には、三つの検出用パターンによって形成されている四角形(即ち、三つの検出用パターン全てに外接する四角形)の画像を切り出す。検出用パターンの検出に用いた2値画像は全面の画像に補正処理および2値化処理を施す必要があり、処理の負荷が大きいので、十分な処理を施すことができない。しかし、符号画像パターンの復号に用いる画像は、その全体画像の一部であり、処理の負荷のことを考えずに、後段のステップS1009およびS1010では、より複雑な画像処理を施すことができる。そこで、符号画像パターンの復号のために独自の画像処理を施すために、検出用パターンの検出画像は符号画像パターンの復号には利用しなくても良い。
【0115】
次に、ステップS1008で、CPU301は、ステップS1009の補正処理のパラメータと、ステップS1010の2値化処理のパラメータを算出する。その算出の際には、ステップS1003で利用したRAM302に保持されているスキャン時のパラメータについての情報やスキャン画像処理時のパラメータに加え、切り出した画像自体の情報が利用される。ステップS1003で利用した情報に加えて、切り出した画像自体の情報を利用することにより、より精度の高い補正処理や2値化処理が実現される。
【0116】
次に、ステップS1009で、CPU301は、主な補正処理として、変倍部323による変倍処理、フィルタ処理部324によるフィルタ処理、線形性調整部325による線形調整処理、特殊処理部326による太らせ処理などを実行する。
【0117】
ステップS1009における変倍処理のパラメータの決定方法は、ステップS1003におけるパラメータの決定方法と同様である。ただし、ステップS1009での変倍処理は、部分的な画像に対しての変倍処理である。したがって、ステップS1009での変倍処理の負荷は、ステップS1004の変倍処理の負荷と比べて低い。そのため、ステップS1009では、変倍性能は高いが計算コストが高いキュービック変倍などを適用することができることを考慮して、変倍処理パラメータを決定しても良い。
【0118】
フィルタ処理のパラメータ決定方法について述べる。まず、対象となる切り出し画像を分析し、画像の平均輝度や周波数特性を得る。切り出し画像の分析は、フィルタ処理部324で行う。その値に基づき、後段の符号画像パターンの検出に適した平均輝度と周波数特性となるようなパラメータが決定される。理想的な平均輝度は、50%の値(画像が8bitであれば127もしくは128)と同じ値である。理想的な周波数特性は、対応している符号画像パターンに対応する周波数成分が多く、その他の部分の周波数成分が少ない特性である。ステップS1003では、全面の画像が切り出しの対象としており、画像特性の分析には、莫大な計算コストがかかる。しかし、ステップS1009では、切り出し画像は画像の一部であるため、ステップS1009の計算コストは、ステップS1003の計算コストよりも低い。
【0119】
線形性調整処理のパラメータの決定方法は、ステップS1003における決定方法と同様である。
【0120】
特殊処理のパラメータの決定方法について述べる。通常、2次元コードのような符号画像パターンは、黒セル領域と白セル領域の割合が1対1に近い比率となっている。この性質を利用し、切り出した画像を分析し、画像の黒セル領域と白セル領域の割合が1対1に近づけるような処理を、特殊処理部326で行えば、より符号画像パターンの復号に適した画像となる。たとえば、第1の閾値よりも濃度が濃い領域の画素数と、第2の閾値よりも濃度が薄い領域の画素数を計算し、その比率に基づいて、太らせ処理・細らせ処理パラメータを決定する。
【0121】
ステップS1010の2値化処理の閾値パラメータは、切りだし画像を解析することにより決定する。切り出し画像の分析は、多値2値部321で行う。その解析手法としては、切り出し画像のヒストグラムを利用する方法などが考えられる。たとえば、図15のような切り出し画像のヒトストグラムを取り、2つのクラスタ(白画素に分類されるクラスタと黒画素に分類されるクラスタ)の分離度が最大になるように閾値パラメータを決定する。クラスタの分離度の評価方法としては、クラスタ同士の共分散行列を用いる手法などが考えられる。または、白画素と黒画素に分類される画素数の比を1対1にするように閾値パラメータを決定してもよい。なお、補正処理が正常に行われていれば、50%の値(画像が8bitであれば127もしくは128)を閾値パラメータとしてもかまわない。
【0122】
次に、ステップS1009で、CPU301は、ステップS1008で決定した補正処理パラメータに基づいて、補正処理を行う。すなわち、CPU301は、ステップS1008で決定した補正処理パラメータに基づいて、補正処理を行うにあたっての補正量を決定する。
【0123】
変倍部323は、ステップS1008で決定した変倍処理パラメータに基づいて、変倍処理を行う。フィルタ処理部324は、ステップS1008で決定した変倍処理パラメータに基づいて、フィルタ処理を行う。線形性調整部325は、ステップS1008で決定した線形性調整処理パラメータに基づいて、線形性調整処理を行う。特殊処理部326は、ステップS1008で決定した太らせ処理および細らせ処理用のパラメータに基づいて、特殊処理(太らせ処理・細らせ処理)を行う。
【0124】
補正処理対象となる画像は、スキャンした画像全面から切り出した画像であり、画像全面に補正する場合に比べて、補正処理の計算コストは低い。そのため、すべての補正処理を実施することが望ましいが、一部の補正処理だけを行っても構わない。
【0125】
次に、ステップS1010で、CPU301は、ステップS1008で決定した2値化処理の閾値パラメータに基づいて、多値2値部321で、ステップS1009で補正された画像に対して2値化処理を行う。
【0126】
次に、ステップ1011で、CPU301は、ステップS1010で2値化された画像から、符号画像パターン復号部329で、符号画像パターンの復号を行う。
【0127】
ステップS1002でスキャン画像処理が施された符号画像パターンが図12のようなものであったとき、ステップS1005で2値化された符号画像パターンは図13のようなものとなる。
【0128】
図13に示されている符号画像パターンは、ステップS1006の検出用パターンの検出処理をする上では、検出用パターンがはっきりとしているため、検出に問題がない。しかし、ステップS1011の符合画像パターンの復号処理をする上では、黒セルが細くなりすぎていて、復号に問題が生じる。つまり、ステップS1004やステップS1005で実施される補正処理および2値化処理では、ステップS1006の処理に十分であっても、ステップS1011の処理には不十分な前処理であることになる。
【0129】
ステップS1006で処理する画像サイズとステップS1011で処理する画像サイズは大きく異なる。そのため、ステップS1011の処理のために、計算コストが掛る前処理をしても、全体の計算コストに大きな影響を及ぼさない。そこで、ステップS1009とステップS1010で、ステップS1004とステップS1005に比べて計算コストが掛かる、符合画像パターンの復号処理に適した画像となるような前処理を施す。そうすることにより、図14のような白黒セルの大きさの釣り合いが取れた画像を生成することができる。そして、ステップS1011では、図14のような画像に対して、符号画像パターンの復号処理を行う。このようにして、符号画像パターンの検出用パターンを検出するための画像と、符号画像パターンを復号する画像を別々に処理することにより、計算コストを抑えた形で、符号画像パターンの復号性能を向上させることが可能となる。
【0130】
CPU301は、復号処理が終わったあとに、復号結果を不図示のデータバスを用いてRAM302に保持する。
【0131】
次に、ステップS1012で、CPU301は、RAM302に保持されている復号結果から、スキャン画像のプリントを実行するかどうかの判断を行う。
【0132】
CPU301は、復号結果を解析し、その中にプリント判断に関する情報が含まれており、更に、その情報が複写禁止であった場合(NGの場合)には、プリントの実行を中止する。そして、処理を終了する。
【0133】
NG以外の場合(OKの場合)に、CPU301は、プリントの実行が許可されているとみなし、ステップS1013に進む。なお、符号画像パターンが見つからなかった場合も、プリントの実行が許可されているとみなす。
【0134】
次に、ステップS1013で、CPU301は、ステップS1012の判断をうけて、プリンタ画像処理を実行する。
【0135】
まず、CPU301は、RAM302もしくはHDD304に保持されているステップS1002で生成された圧縮画像を、プリント画像処理部315で処理するために、伸張部316で伸張する。
【0136】
次に、CPU301は、プリンタ画像処理部315において、プリンタ画像処理を伸長された画像に対して行う。プリンタ画像処理部315は、下地飛ばし処理部601、モノクロ生成部602、Log変換部603、出力色補正部604、出力側ガンマ補正部605、中間調補正部606で画像に対して処理を行う。なお、カラー印刷の際には、モノクロ生成部602は動作させない。
【0137】
そして、CPU301は、プリンタ画像処理が施された画像をプリンタIF315に送出する。
【0138】
次に、ステップS1014で、CPU301は、プリンタ14で、プリンタIF314を通して受け取った画像を用紙上に形成する。そして、不図示の排紙トレイに印字後の用紙を排出する。
【0139】
<実施形態2>
次に実施形態2について図面を参照して説明する。なお、実施形態1において説明をした図や、フローチャートに関する説明は省略する。ここでは、実施形態2で説明をするフローチャートである図16を用いて説明を行なう。
【0140】
図16のフローチャートにおける各工程の処理は、CPU301により統括的に制御される。図16に示されているフローチャートは、操作部12でユーザがスキャン処理を伴う処理を選択し、開始ボタンを押した際に実行される。
【0141】
実施形態2のフローチャートである図16のステップS1001〜ステップS1005は、実施形態1のステップS1001〜ステップS1005と同様である。
【0142】
ステップS2006で、CPU301は、ステップS1005で2値化された画像から、検出用パターン検出部328で、符号画像パターンの検出用パターンの検出を行う。検出用パターンは、1つの情報コードにつき、複数存在するため、その位置関係から符号画像パターン本体の位置を特定することができる。よって、検出用パターンが検出された場合には、CPU301は、以下のような処理を行う。すなわち、CPU301は、その検出した検出用パターン情報から、符号画像パターンの位置情報を導きだし、その位置情報をRAM302に保持する。
【0143】
また、検出の際には、検出した検出用パターンの太り細り情報を獲得することができる。2次元コードの検出用パターンは、3×3の黒セルの周りに、幅1セルの白セルの枠があり、さらにその外側に幅1の黒セルがある構造となっている。このため、3×3の黒セルの中心を通る任意の断面は、理想的には、黒領域:白領域:黒領域:白領域:黒領域の比率が、1:1:3:1:1の比率になっている。検出の際には、この比率の理想値からのずれを知ることができる。この理想値からのずれ情報は、2次元コードの白セルや黒セルが太っているかもしくは細っているか、どちらであるかを示すものであり、この太り細り情報をRAM302に保持しておく。太り細りは、指向性がある可能性があるので、縦方向と横方向の2種類の太り細り情報を保持しておいてもよい。
なお、太り細り情報が「太」である場合には、符号画像パターン(ステップS1007の切り出しにより得られた画像)に対して細らせ処理が行われることになる。一方、太り細り情報が「細」である場合には、符号画像パターン(ステップS1007の切り出しにより得られた画像)に対して太らせ処理が行われることになる。
【0144】
実施形態2のフローチャートである図16のステップS1007は、実施形態1のステップS1007と同様である。
【0145】
次に、ステップS2008で、CPU301は、ステップS2009で用いる補正処理のパラメータと、ステップS2010で用いる2値化処理のパラメータを算出する。その算出の際には、ステップS1003で利用したRAM302に保持されているスキャン時のパラメータについての情報やスキャン画像処理時のパラメータに加え、以下のものが利用される。すなわち、RAM302に保持されている太り細り情報又はステップS2006で検出された検出用パターンが利用される。ステップS1003で利用した情報に加えて、これらの情報を利用することにより、より精度の高い補正処理や2値化処理が実現される。
【0146】
次に、ステップS2009で、CPU301は、主な補正処理として、変倍部323による変倍処理、フィルタ処理部324によるフィルタ処理、線形性調整部325による線形調整処理、特殊処理部326による太らせ処理やノイズ画素除去などを実行する。
【0147】
ステップS2009における変倍処理のパラメータの決定方法は、ステップS1003におけるパラメータの決定方法と同様である。ただし、ステップS2009での変倍処理は、部分的な画像に対しての変倍処理である。したがって、ステップS2009での変倍処理の負荷は、S1004の変倍処理の負荷と比べて低い。そのため、ステップS2009では、変倍性能は高いが計算コストが高いキュービック変倍などを適用することができることを考慮して、変倍処理パラメータを決定しても良い。
【0148】
フィルタ処理のパラメータ決定方法は、ステップS1003における決定方法と同様である。
【0149】
線形性調整処理パラメータの決定方法は、ステップS1003における決定方法と同様である。
【0150】
特殊処理のパラメータの決定方法について述べる。ステップS2006で検出された検出用パターンを利用して、黒セルと白セルの太り細りを補正するためのパラメータを算出する。たとえば、検出用パターンの中心を通る断面の黒領域:白領域:黒領域:白領域:黒領域の比率が、1.2:0.8:3.6:0.8:1.2であったとする。この場合は、黒セルを約0.83倍、白セルを1.25倍するような太らせ処理また細らせ処理用を行えば、黒領域:白領域:黒領域:白領域:黒領域の比率が、1:1:3:1:1となる。この理想的な比率に検出用パターンを変形するための太らせ処理・細らせ処理用のパラメータとして決定する。また、特殊処理部326はノイズ画素を除去する能力も持っており、その除去パラメータも算出する。
【0151】
また、他の特殊処理のパラメータの決定方法として以下のような方法も挙げられる。この場合もやはり、ステップS2006で検出された検出用パターンを利用して、黒セルと白セルの太り細りを補正するためのパラメータを算出する。なお、検出用パターンは、ステップS2006で三つ検出されている場合であるが、ここで対象とするのはそのうちの任意の一つである。
【0152】
たとえば、その検出用パターンが図17のような検出用パターンだったとする。この検出用パターンの中心を通る横方向の断面の黒領域:白領域:黒領域:白領域:黒領域の画素数が、a画素:b画素:c画素:d画素:e画素だったとする。このとき、図17に示すように左右の黒領域の中心間のセル数は6セルのはずである。そこで、(a/2+b+c+d+e/2)/6を1セルの画素数として計算し、この1セルの画素数をwとおくこととする。このように、基準となる1セルの画素数を求める。そして、各黒領域(a画素、c/3画素、e画素)が約w画素の幅となるように補正をかけるための太らせ・細らせ処理用のパラメータを決定する(黒領域が約w画素の幅となれば、結果として、白領域も約w画素の幅となる)。
【0153】
なお、基準となる1セルの画素数を求めるにあたって、左の黒領域の左端から右の黒領域の右端までの距離を用いる方法も考えられる。この場合、その距離は7セルとなるはずであるが、黒画素の太り・細りの影響で7セル以上になったり以下になったりと変動が激しい。そこで、基準となる1セルの画素数を求めるにあたっては、太り細りに影響されにくい左右の黒領域の中心間のセル数を用いる上述の方法の方が望ましい。
【0154】
続いて、パラメータ決定方法を具体的に説明する。様々な方法が考えられるが、その一例として考えられるのは、パラメータxh= (a + c + e -5w)/6である。前半部のa + c + e -5wという式で、黒領域が全体として見た時に総計でどれだけ太っているのか(ただし、このa + c + e -5wが−となる場合はどれだけ細っているか)を計算している。そして、このa + c + e -5wを6で割ることによって、各黒領域が平均的に見てどれだけ左右に太っているかを計算している。黒領域は全部で3つあり、太り得る箇所は各黒領域で左右に二箇所あるため、3×2の6を除算値として用いている。
【0155】
このパラメータxh画素の太りを元に戻すためには、-xh画素の太らせ処理(即ち、xh画素の細らせ処理)が必要である。このパラメータを用いた太らせ・細らせ処理としては、下記のような処理が考えられる。なお、本ステップで行われるのはパラメータを求めるまでであり、実際にそのパラメータを使った下記のような太らせ処理・細らせ処理は、特殊処理部326で、以下のように行われる。
【0156】
まず、太らせ処理の場合には、注目画素の濃度値(value(x,y))を、注目画素を含む注目画素近傍の画素の濃度値のうちの最大値(processed_value(x,y))に置き換える処理を行う。(細らせ処理の場合は、最大値ではなく最小値となる。)これを計算式で表すと以下の通りである。
processed_value(x,y) = max_value(value(x-1,y),value(x,y),value(x+1,y))
prcessed_value(x,y) :上記置き換える処理を行った後の注目画素の濃度値
value(x,y) :上記置き換えるの処理を行う前の注目画素の濃度値
max_value(a,b,c) :a,b,c,のうちの最大値を出力する関数
【0157】
具体的には、まず、注目画素をx=1,y=1(左上)に存在する画素に設定し、上記置き換える処理を実行する。そして、その置き換える処理を行った後で注目画素をx=2,y=1となるようにずらす。この注目画素に対して上記置き換える処理を実行して、一つずつ注目画素をずらしながら、上記置き換える処理を全ての画素(ステップS1007の切り出しにより得られた画像における全ての画素)に対して実行していく。
【0158】
なお、近傍の探索範囲は、上記の数式にも現れているように、注目画素を中心とした横方向に3画素の範囲としている。即ち、近傍の画素とは、注目画素の左の画素と注目画素と注目画素の右の画素の3画素を含む。
【0159】
以上の処理を一回実行すると、約1画素の太らせ処理・細らせ処理となる。
【0160】
本実施形態では、このような置き換え処理を「xh」回(「xh」は、xhを四捨五入することで得られた整数値)行う。N回目(Nは「xh」以下で、かつ、2以上の自然数)の置換えを行う際には、N−1回目の置換え処理が行われて得られた全ての画素のprocessed_value(x,y)をvalue(x,y)として設定してから、N回目の置換え処理を行うことになる。
【0161】
なお、縦方向についても、横方向と同じような形で、補正パラメータの算出を行う。縦方向の場合には、太らせ・細らせ処理の近傍探索範囲は注目画素を中心とした縦方向に3画素である。
【0162】
このように、縦方向と横方向の2方向に関して、太らせ・細らせ処理用のパラメータを決定する。そして、これらのパラメータを使って、前述した縦方向と横方向の太らせ・細らせ処理を順次実行する(具体的には、例えば、横方向の太らせ・細らせ処理が終わった後で、縦方向の太らせ・細らせ処理を実行する。即ち、横方向で「xh」回の置換え処理が終わった後で、縦方向で「yh」回の置換え処理を実行する。なお、yhとは、縦方向用のパラメータである)。ここで、縦と横の太らせを同時に行うようにするために、太らせ・細らせ処理の際の近傍探索範囲を、注目画素を中心とした3×3画素としてもよい。
【0163】
また、特殊処理部326はノイズ画素を除去する能力も持っており、その除去パラメータも算出する。太り細り情報からは、復号対応の符合画像パターンのセルサイズを予測することができ、さきほどのw画素が予測されたセルサイズである。予測されたセルサイズに基づいて、ノイズとして除去するべき孤立画素の大きさ(例えば、縦w/2、横v/2)を算出し、それを除去パラメータとする。たとえば、横方向のwが10画素で、縦方向のセルサイズvが12画素であった場合には、半分以下の大きさである横方向5画素×縦方向6画素以下の孤立画素群をノイズ画素とみなす。このようにして、画像(ステップS1007の切り出しにより得られた画素)から除去するようなノイズ除去パラメータが決定される。
【0164】
ステップS2010の2値化処理の閾値パラメータは、通常、補正処理が正常に行われていれば、50%の値(画像が8bitであれば127もしくは128)で構わない。ただし、処理の負荷を低減するために、補正処理が十分に施されていない場合は、施すべきだった補正処理パラメータから、その補正処理を施さないことによる、50%の閾値からのずれを計算する。そして、そのずれを反映させた値を閾値とする。(フィルタ処理などが絡むため、正確なずれ量は計算できない)
【0165】
次に、ステップS2009で、CPU301は、ステップS2008で決定した補正処理パラメータに基づいて、補正処理を行う。すなわち、CPU301は、ステップS2008で決定した補正処理パラメータに基づいて、補正処理を行うにあたっての補正量を決定する。補正処理対象となる画像は、スキャンした画像全面から切り出した画像である。
【0166】
変倍部323は、ステップS2008で決定した変倍処理パラメータに基づいて、変倍処理を行う。フィルタ処理部324は、ステップS2008で決定した変倍処理パラメータに基づいて、フィルタ処理を行う。線形性調整部325は、ステップS2008で決定した線形性調整処理パラメータに基づいて、線形性調整処理を行う。特殊処理部326は、ステップS2008で決定した太らせ処理・細らせ処理用のパラメータに基づいて、特殊処理(太らせ処理・細らせ処理)を行う。この処理については、既に上述した通りである。また、特殊処理部326は、ステップS2008で決定したノイズ除去パラメータに基づいて、特殊処理(ノイズ除去)を行う。
【0167】
補正処理対象となる画像は、スキャンした画像全面から切り出した画像であり、画像全面に補正する場合に比べて、補正処理の計算コストは低い。そのため、すべての補正処理を実行することが望ましいが、一部の補正処理だけを行っても構わない。
【0168】
次に、ステップS2010で、CPU301は、ステップS2008で決定した2値化処理の閾値パラメータに基づいて、多値2値部321で、ステップS2009で補正された画像に対して2値化処理を行う。
【0169】
次に、ステップ2011で、CPU301は、ステップS2010で2値化された画像から、符号画像パターン復号部329で、符号画像パターンの復号を行う。
【0170】
ステップS1002でスキャン画像処理が施された符号画像パターンが図12のようなものであったとき、ステップS1005で2値化された符号画像パターンは図13のようなものとなる。
【0171】
図13に示されている符号画像パターンは、ステップS1006の検出用パターンの検出処理をする上では、検出用パターンがはっきりとしているため、検出に問題がない。しかし、ステップS2011の符合画像パターン復号処理をする上では、黒セルが細くなりすぎていて、復号に問題が生じる。つまり、ステップS1004やステップS1005で実行される補正処理および2値化処理では、ステップS1006の処理に十分であっても、ステップS2011の処理には不十分な前処理であることになる。
【0172】
ステップS1006で処理する画像サイズとステップS2011で処理する画像サイズは大きく異なる。そのため、ステップS2011の処理のために、計算コストが掛る前処理をしても、全体の計算コストに大きな影響を及ぼさない。そこで、ステップS2009とステップS2010で、ステップS1004とステップS1005に比べて計算コストが掛かる、符合画像パターンの復号処理に適した画像となるような前処理を施す。そうすることにより、図14のような白黒セルの大きさの釣り合いが取れた画像を生成することができる。そして、ステップS2011では、図14のような画像に対して符号画像パターンの復号処理を行う。
【0173】
以上説明したように、上記の実施形態によれば、以下のことが可能となる。すなわち、符号画像パターンの検出用パターンを検出するための画像と、符号画像パターンを復号する画像を別々に処理することにより、計算コストを抑えた形で、符号画像パターンの復号性能を向上させることが可能となる。
【0174】
CPU301は、復号処理が終わったあとに、復号結果を不図示のデータバスを用いてRAM302に保持する。
【0175】
実施形態2のフローチャートである図16のステップS1012〜ステップS1014は、実施形態1のステップS1012〜ステップS1014と同様である。
【0176】
<その他の実施形態>
さらに本発明は、複数の機器(例えばコンピュータ、インターフェース機器、リーダ、プリンタなど)を有するシステムに適用することも、一つの機器からなる装置(複合機、プリンタ、ファクシミリ装置など)に適用することも可能である。
【0177】
また本発明の目的は、上述した実施形態で示したフローチャートの手順を実現するプログラムコードを記憶した記憶媒体から、コンピュータがプログラムコードを読出し実行することによっても達成される。この場合、コンピュータで読取り可能な記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになる。そのため、このプログラムコード及びプログラムコードを記憶した記憶媒体も本発明の一つとなる。
【0178】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
【符号の説明】
【0179】
10 画像形成装置
11 コントローラ
12 操作部
13 スキャナ
14 プリンタ
【技術分野】
【0001】
本発明は、装置、方法、プログラムに関する。
【背景技術】
【0002】
符号画像パターンの印刷された印刷物をコピーするに際して、当該印刷物上の画像のコピーを作成すると共に、当該印刷物上の画像内の符号画像パターンを復号するMFPも出てきている。なお、符号画像パターンとは、例えば、電子透かし画像や二次元バーコード画像(2次元コードと称することもある)やバーコード画像やステガノグラフィーである。
【発明の概要】
【発明が解決しようとする課題】
【0003】
しかしながら、コピーを作成するのに適した画像と、符号画像パターンを復号するのに適した画像は異なる。コピーを作成するのに適した画像は、元の印刷物の画像を的確に表現した画像であり、符号画像パターンを復号するのに適した画像は、符号画像パターンの黒と白の部分が確りと区別された画像である。
【0004】
本発明は、コピーを作成するのに適した画像を用い、高速な(演算量の少ない)方法でその画像における符号画像パターンを復号することを目的とする。
【課題を解決するための手段】
【0005】
上記課題を解決するために、本発明に係る装置は、検出用パターンを持つ符号画像パターンを復号化する装置であって、画像から検出用パターンを検出する検出手段と、検出された検出用パターンにより位置の特定される符号画像パターンの濃度を、検出された検出用パターンの濃度に基づいて、補正する補正手段と、濃度を補正した後の符号画像パターンを復号化する復号化手段とを備えることを特徴とする。
【発明の効果】
【0006】
本発明によれば、符号画像パターンの復号処理における復号性能を向上させ、復号処理の負荷を小さくすることができる。
【図面の簡単な説明】
【0007】
【図1】画像形成システムを示す図である。
【図2】画像形成装置を示す図である。
【図3】タイルデータを概念的に示す図である。
【図4】スキャナ画像処理部のブロック図である。
【図5】プリンタ画像処理部のブロック図である。
【図6】操作部のコピー画面の説明図である。
【図7】2次元コードを示す図である。
【図8】2次元コードの符号化のフローチャートである。
【図9】実施形態1のフローチャートである。
【図10】2次元コードの検出用パターン図である。
【図11】2次元コードの復号化処理のフローチャートである。
【図12】スキャン画像処理後の2次元コードを示す図である。
【図13】検出用パターンの検出処理の前処理後の2次元コードを示す図である。
【図14】符号画像パターンの復号処理の前処理後の2次元コードを示す図である。
【図15】2次元コードのヒストグラムを示す図である。
【図16】実施形態2のフローチャートである。
【図17】検出用パターンを示す図である。
【発明を実施するための形態】
【0008】
以下では、図面を参照して本発明を実施するための最良の形態について説明する。
【0009】
<実施形態1>
実施形態1について図面を参照して詳細に説明する。
【0010】
<印刷システム(図1)>
図1は、本発明の実施形態に係る印刷システムを示すブロック図である。この印刷システムではホストコンピュータ(以下、PCと称する)40及び3台の画像形成装置(10,20,30)がLAN50に接続されているが、本発明における印刷システムにおいては、これらの接続数に限られることはない。また、本実施形態では接続方法としてLANを適用しているが、これに限られることはない。例えば、WAN(公衆回線)などの任意のネットワーク、USBなどのシリアル伝送方式、セントロニクスやSCSIなどのパラレル伝送方式なども適用可能である。
【0011】
PC40は、パーソナルコンピュータの機能を有している。PC40は、LAN50やWANを介してFTPやSMBプロトコルを用いファイルを送受信したり電子メールを送受信したりすることができる。また、PC40から画像形成装置10、20、30に対して、プリンタドライバを介した印字命令を行うことが可能となっている。
【0012】
画像形成装置10、20は、同様の装置である。画像形成装置30は、プリント機能のみの画像形成装置であり、画像形成装置10、20が有するスキャナを有していない。以下では、画像形成装置10、20のうちの画像形成装置10に注目して、詳細に説明する。
【0013】
画像形成装置10は、画像入力デバイスであるスキャナ13と、画像出力デバイスであるプリンタ14と、画像形成装置10全体の動作制御を司るコントローラ11と、ユーザインターフェース(UI)である操作部12とを有する。
【0014】
同様に、画像形成装置20は、画像入力デバイスであるスキャナ23と、画像出力デバイスであるプリンタ24と、画像形成装置20全体の動作制御を司るコントローラ21と、ユーザインターフェース(UI)である操作部22とを有する。
【0015】
同様に、画像形成装置30は、画像出力デバイスであるプリンタ33と、画像形成装置30全体の動作制御を司るコントローラ31と、ユーザインターフェース(UI)である操作部32とを有する。
【0016】
<画像形成装置10>
画像形成装置10のスキャナ13は、複数のCCDを有している。この各CCDの感度が夫々異なっていると、たとえ原稿上の各画素の濃度が同じであったとしても、各画素が夫々違う濃度であると認識されてしまう。そのため、スキャナ13は、最初に白板(一様に白い板)を露光走査し、露光走査して得られた反射光の量を電気信号に変換してコントローラ11に出力する。なお、後述するように、コントローラ11のシェーディング補正部500は、各CCDから得られた電気信号を元に、各CCDの感度の違いを認識している。そして、この認識された感度の違いを利用して、原稿上の画像をスキャンして得られた電気信号の値を補正している。
【0017】
さらに、シェーディング補正部500は、後述するコントローラ11のCPU301からゲイン調整の情報を受取ると、当該情報に応じたゲイン調整を行う。ゲイン調整は、原稿を露光走査して得られた電気信号の値を、どのように0〜255の輝度信号値に割り付けるかを調整するために用いられる。このゲイン調整により、原稿を露光走査して得られた電気信号の値を高い輝度信号値に変換したり、低い輝度信号値に変換したりすることができるようになっている。つまり、このゲイン調整により、読み取り信号のダイナミックレンジの調整が可能である。
【0018】
続いて、この原稿上の画像をスキャンするスキャナについて説明する。
【0019】
スキャナは、原稿上の画像を露光スキャンして得られた反射光をCCDに入力することで画像の情報を電気信号に変換する。さらに電気信号をR,G,B各色からなる輝度信号に変換し、当該輝度信号を画像としてコントローラ11に対して出力する。この際に、原稿をスキャンする解像度は、コントローラ11から指定することが可能である。
【0020】
なお、原稿は、不図示の原稿フィーダのトレイにセットされる。ユーザが操作部12から読み取り開始を指示すると、コントローラ11からスキャナ13に原稿読み取り指示が与えられる。スキャナ13は、この指示を受けると原稿フィーダのトレイから原稿を1枚ずつフィードして、原稿の読み取り動作を行う。なお、原稿の読み取り方法は原稿フィーダによる自動送り方式ではなく、原稿を不図示のガラス面上に載置し露光部を移動させることで原稿の走査を行う方法であってもよい。
【0021】
また、スキャナ13の周波数特性や特性パラメータの情報は、コントローラ11のRAM302に保持しておく。ここで、特性パラメータとは、白レベル基準や輝度と濃度の対応関係である。
【0022】
プリンタ14は、コントローラ11から受取った画像を用紙上に形成する画像形成デバイスである。なお、本実施形態において画像形成方式は感光体ドラムや感光体ベルトを用いた電子写真方式となっているが、本発明はこれに限られることはない。例えば、微少ノズルアレイからインクを吐出して用紙上に印字するインクジェット方式などでも適用可能である。また、プリンタ14には、異なる用紙サイズ又は異なる用紙向きを選択可能とする不図示の複数の用紙カセットが設けられている。また、不図示の排紙トレイには印字後の用紙が排出される。
【0023】
<コントローラ11の詳細説明(図2)>
図2は、画像形成装置10のコントローラ11をより詳細に説明するためのブロック図である。
【0024】
コントローラ11は、スキャナ13やプリンタ14と電気的に接続されており、一方ではLAN50やWAN331を介してPC40や外部の装置などと接続されている。これにより画像やデバイス情報の入出力が可能となっている。
【0025】
CPU301は、ROM303に記憶された制御プログラム等に基づいて接続中の各種デバイスとのアクセスを統括的に制御すると共に、コントローラで行われる各種処理についても統括的に制御する。
【0026】
RAM302は、CPU301が動作するためのシステムワークメモリであり、かつ画像を一時記憶するためのメモリでもある。RAM302は、記憶した内容を電源off後も保持しておく不揮発性RAM及び電源off後には記憶した内容が消去されてしまうDRAMを有する。ROM303には装置のブートプログラムなどが格納されている。
【0027】
HDD304は、ハードディスクドライブであり、システムソフトウェアや画像を格納する。
【0028】
操作部I/F305は、システムバス310と操作部12とを接続するためのインターフェースである。操作部I/F305は、操作部12に表示するための画像をシステムバス310から受取り操作部12に出力すると共に、操作部12から入力された情報をシステムバス310へと出力する。
【0029】
NetworkI/F306は、LAN50及びシステムバス310に接続し、情報の入出力を行う。
【0030】
Modem307は、WAN331及びシステムバス310に接続しており、情報の入出力を行う。
【0031】
2値画像回転部308は、送信前の画像の方向を変換する。
【0032】
2値多値画像圧縮・伸張部309は、送信前の画像の解像度を所定の解像度や相手能力に合わせた解像度に変換する。なお圧縮及び伸張にあたってはJBIG、MMR、MR、MHなどの方式が用いられる。
【0033】
画像バス330は、画像をやり取りするための伝送路であり、PCIバス又はIEEE1394を有する。
【0034】
スキャナ画像処理部312は、スキャナ13からスキャナI/F311を介して受取った画像に対して、補正、加工、及び編集を行う。なお、スキャナ画像処理部312は、受取った画像がカラー原稿か白黒原稿かや、文字原稿か写真原稿かなどを判定する。そして、その判定結果を画像に付随させる。こうした付随情報を属性データと称する。スキャナ画像処理部312で行われる処理の詳細については後述する。
【0035】
圧縮部313は、画像を受取り、この画像を32×32画素のブロック単位に分割する。なお、この32×32画素の画像をタイルデータと称する。
【0036】
図3は、タイルデータを概念的に表している。原稿(読み取り前の紙媒体)において、タイルデータに対応する領域をタイル画像と称する。なおタイルデータには、その32×32画素のブロックにおける平均輝度情報やタイル画像の原稿上の座標位置がヘッダ情報として付加されている。さらに圧縮部313は、複数のタイルデータからなる画像を圧縮する。伸張部316は、複数のタイルデータからなる画像を伸張した後にラスタ展開してプリンタ画像処理部315に送る。
【0037】
プリンタ画像処理部315は、伸張部316から送られた画像を受取り、この画像に付随させられている属性データを参照しながら画像に画像処理を施す。画像処理後の画像は、プリンタI/F314を介してプリンタ14に出力される。この際、一旦、圧縮313で圧縮を行い、伸張部316で伸張してから、画像処理後の画像を、プリンタI/F314を介してプリンタ14に出力してもよい。プリンタ画像処理部315で行われる処理の詳細については後述する。
【0038】
符号画像パターン処理部317は、画像に各種処理を施し、画像に存在する符号画像パターンの復号化の処理(復号処理)を施す。符号画像パターン処理部317が処理する画像は、スキャン画像処理部312またはプリンタ画像処理部315で処理を行ったあとに圧縮部313で圧縮が施された画像である。これらの処理部は、ハードウェアである必要はなく、RAM302上に展開されたプログラムでもよい。符号画像パターン処理部317で行われる処理の詳細については後述する。
【0039】
RIP330は、PC40などから送信されたPDLコードデータを元に生成された中間データを受取り、ビットマップデータ(多値)を生成する。
【0040】
<スキャナ画像処理部312の詳細説明(図4)>
図4は、スキャナ画像処理部312を示す。
【0041】
スキャナ画像処理部312は、RGB各8bitの輝度信号からなる画像を受取る。
【0042】
シェーディング補正部500は、この輝度信号に対してシェーディング補正する。シェーディング補正とは、上述したように、CCDの感度のばらつきによって原稿の明るさが誤認識されてしまうことを防止するための処理である。さらに、上述したように、シェーディング補正部500は、CPU301からの指示によりゲイン調整を行うことができる。
【0043】
続いて、この輝度信号は、マスキング処理部501によりCCDのフィルタ色に依存しない標準的な輝度信号に変換される。この標準的な輝度信号への変換は、一度、1次元ルックアップテーブルでRGB各色ごとの調整を行ったあとに、3次元のルックアップテーブルを用いて実行される。
【0044】
フィルタ処理部502は、受取った画像の空間周波数を任意に補正する。フィルタ処理部502は、受取った画像に対して、例えば7×7のマトリクスを用いた演算処理を行う。
【0045】
ところで、複写機や複合機では、図6における704タブの押し下げによりコピーモードとして文字モードや写真モードや文字/写真モードを選択することができる。ここで、ユーザにより文字モードが選択された場合には、フィルタ処理部502は、文字用のフィルタを画像全体にかける。また、写真モードが選択された場合には、写真用のフィルタを画像全体にかける。また、文字/写真モードが選択された場合には、後述の文字写真判定信号(属性データの一部)に応じて画素ごとに適応的にフィルタを切り替える。
【0046】
つまり、画素ごとに写真用のフィルタをかけるか文字用のフィルタをかけるかが決定される。なお、写真用のフィルタには高周波成分のみ平滑化が行われるような係数が設定されている。これは、画像のざらつきを目立たせないためである。また、文字用のフィルタには強めのエッジ強調を行うような係数が設定されている。これは、文字のシャープさを出すためである。なお、フィルタ処理部502で用いられたフィルタパラメータは、後段の処理で使用する可能性があるため、RAM302に保持される。
【0047】
ヒストグラム生成部503は、受取った画像の各画素の輝度データをサンプリングする。より詳細に説明すると、主走査方向、副走査方向にそれぞれ指定した開始点から終了点で囲まれた矩形領域の輝度データを、主走査方向、副走査方向に一定のピッチでサンプリングする。そして、サンプリング結果を元にヒストグラムデータを生成する。生成されたヒストグラムデータは、下地飛ばし処理を行う際に下地レベルを推測するために用いられる。なお、ヒストグラム生成部503でサンプリングされた結果は、下地飛ばし処理やそのほかの後段での処理で利用する可能性のために、RAM302に保持される。
【0048】
入力側ガンマ補正部504は、入力側ガンマ補正部504に入力された1次元ルックアップテーブルなどを利用して非線形特性を持つ輝度データに変換する。なお、入力側ガンマ補正部504で利用した1次元ルックアップテーブルパラメータなどは、後段の処理で使用する可能性があるため、RAM302に保持される。
【0049】
カラーモノクロ判定部505は、カラーモノクロ判定部505が受取った画像の各画素が有彩色であるか無彩色であるかを判定し、その判定結果をカラーモノクロ判定信号(属性データの一部)として画像に付随させる。
【0050】
文字写真判定部506は、画像の各画素が文字の画素なのか、網点の画素なのか、網点中の文字の画素なのか、ベタ画像の画素なのかを各画素の画素値と各画素の周辺画素の画素値とに基づいて判定する。なお、どれにもあてはまらない画素は、白領域の画素である。そして、その判定結果を文字写真判定信号(属性データの一部)として画像に付随させる。
【0051】
<プリンタ画像処理部315の詳細説明(図5)>
図5は、プリンタ画像処理部315においてなされる処理の流れを示す。
【0052】
下地飛ばし処理部601は、スキャナ画像処理部312で生成されたヒストグラムを用いて画像の下地色を飛ばす(除去する)。
【0053】
モノクロ印刷をする場合には、モノクロ生成部602は、カラーデータをモノクロデータに変換する。
【0054】
Log変換部603は、輝度濃度変換を行う。Log変換部603は、例えば、RGB入力された画像を、CMYの画像に変換する。
【0055】
出力色補正部604は、出力色補正を行う。例えば、CMY入力された画像を、テーブルやマトリックスを用いてCMYKの画像に変換する。
【0056】
出力側ガンマ補正部605は、出力側ガンマ補正部605に入力される信号値と、複写出力後の反射濃度値とが比例するように補正を行う。
【0057】
中間調補正部606は、出力するプリンタの階調数に合わせて中間調処理を行う。例えば、受取った高階調の画像に対し2値化や32値化などを行う。
【0058】
なお、スキャナ画像処理部312やプリンタ画像処理部315における各処理部では、受取った画像に各処理を施さずに出力させることも可能となっている。
【0059】
<符号画像パターン処理部317の詳細説明(図2)>
図2の記載の符号画像パターン処理部317の詳細について説明をする。
【0060】
伸張部318は、伸張部318が受取った画像を伸張する。伸張部318により伸張された画像は、処理部320〜329を任意の順番で利用して処理されることができる。圧縮部319は、圧縮部319が受取った画像を圧縮する。圧縮部319が受け取る画像は、2値データである場合も、多値データである場合もある。
【0061】
多値単純2値部320は、多値単純2値部320が受け取った多値の画像を単純2値化する。単純2値化とは、CPU301が設定する閾値により、画像を2値化するものである。カラー画像は、任意の変換式により、グレースケール画像に変換されたあとに、CPU301が設定する閾値により、2値化される。
【0062】
多値2値部321は、多値2値部321が受け取った多値の画像を2値化する。多値2値部321は、単純2値化ではない各種方法による2値化が可能である。具体的には、多値2値部321は、ヒストグラムを用いて2つのクラスタの分離度が最大になるように閾値を決定したり、ヒストグラムを用いて白画素と黒画素のDUTY比が50%になるような閾値を決定することができる。カラー画像については、任意の変換式により、カラー画像をグレースケール画像に変換したあとに、2値化処理を行う。
【0063】
2値多値部322は、2値化された画像を多値変換する。具体的には、2値多値部322は、2値画像を多値の最小値と最大値を持つ画像に変換したあとに、ガウシアンフィルタなどのフィルタでぼかすことにより2値多値変換を実行する。
【0064】
変倍部323は、画像に変倍処理を施す。具体的には、リニア変倍やキュービック変倍、間引き変倍をすることにより変倍処理を実行する。
【0065】
フィルタ処理部324は、画像にフィルタ処理を施す。CPU301が設定する任意の形状・係数のフィルタを用いたフィルタ処理を施すがことが可能である。
【0066】
線形性調整部325は、1次元LUT(Look Up Table)を用いて、画像の線形性を調整することが可能である。
【0067】
特殊処理部326は、ノイズドットの除去や、太らせ処理、細らせ処理などの特殊処理を行うことが可能である。
【0068】
切りだし部327は、画像の一部を任意の大きさで切り出すことが可能である。
【0069】
検出用パターン検出部328および、符号画像パターン復号部329を説明する前に、本実施形態で使用する符号画像パターンである2次元コードの説明を行う。2次元コードとして、例えば、QRコード(登録商標)を用いることができる。なお、本発明は、2次元コード以外であっても、検出用パターンが存在するすべての符号画像パターンに適用可能である。検出用パターンとは、符号画像パターンを検出するためのパターンであり、検出がし易いような特徴的なパターンとなっている。2次元コードの検出用パターンは、図10に示すパターンである。この検出用パターン以外の符号画像パターン領域については、符号画像パターン本体と呼ぶ。また、符号画像パターンの最小単位の白い領域のことを白セルと呼び、黒い領域のことを黒セルと呼ぶ。
【0070】
2次元コードは、JIS0X0510で規定される符号画像パターンである。本発明では、原稿側には、2次元コードが付加されていることを前提とする。その符号化のフローチャートについて説明する。
【0071】
図8は、複写制限情報等の付加情報を用いて2次元コードを生成する過程を示すフローチャートである。図8のフローチャートは、2次元コードを原稿に付加する装置のCPUで実行されても、2次元コードを原稿に付加する装置に接続されたパソコンのCPUで実行されても良い。
【0072】
まず、ステップS900で、CPUは、符号化する種種の異なる文字を識別するため、付加情報を分析する。また、CPUは、誤り訂正レベルを選択し、付加情報を収容できる2次元コードの最小の型番を選択する。2次元コードの型番とは、2次元コードのサイズを表現する番号であり、1〜40の値をとる。型番1は21セル×21セルのサイズであり、177セル×177セルの大きさとなる。
【0073】
次に、ステップS901で、CPUは、付加情報の符号化を行う。まず、CPUは、付加情報を所定のビット列に変換し、必要に応じて、そのビット列の元データ(付加情報)の種類(数字、英数字、8ビットバイト、漢字等)を表す指示子や、終端パターンを付加する。次に、CPUは、このビット列を、8ビット単位に分割する。この8ビット単位のビット列をデータコード語と呼び、データコード語単位で分割されたビット列をデータコード語列とよぶ。型番および誤り訂正レベルに応じてデータコード語の数は規定されており、それに満たない場合には、CPUは、無意味なデータコード語をデータコード語列に追加する。
【0074】
次に、ステップS902で、CPUは、誤り訂正用の情報を付加するために、ステップS901で得られたデータコード語列を型番および誤り訂正レベルに応じた数の複数のブロックに分割する。そして、CPUは、各ブロック毎に、そのブロックの誤りを訂正することための誤り訂正コード語列を生成し、データコード語列の後に付加する。なお、誤り訂正コード語も8ビット単位のビット列である。このデータコード語および誤り訂正語のことをコード語と呼び、その並びのことをコード語列と呼ぶ。
【0075】
次に、ステップS903で、CPUは、ステップS902で得られた各ブロックのコード語列を8ビットのコード語単位でインターリーブし、型番に応じて、残余ビットを付加する。インターリーブは、コード語列の連続性を低下させることにより、バーストエラーに対する耐性を上げるために行われる。こうしてできた最終的なビットの並びを最終ビット列と呼ぶ。
【0076】
次に、ステップS904で、CPUは、白セルもしくは黒セルが配置されるマトリクスを設定する。マトリクスのサイズは、型番ごと決定される。そのマトリクスに、検出用パターンとともに、符号画像本体の構成要素を配置する。符号画像本体の構成要素は、分離パターン、タイミングパターンおよび位置合わせパターン等と、ステップS903で得られた最終ビット列である。最終ビット列の配置では、CPUは、ビット0に白セルを対応させ、ビット1に黒セルを対応させて、配置していく。配置は、型番に対応する配置規則に基づいて行われる。
【0077】
次に、ステップS905で、CPUは、更に、S904で得られた最終ビット列を並べた領域について、最適なマスクパターンを選択して、排他的論理和(XOR)演算によりマスク処理を施す。XOR演算とは、マスクパターンが0かつ対応するセルが白セルの場合には黒セルに、マスクパターンが1かつ対応するセルが黒セルの場合に白セルに変換する処理である。ここで、最適なマスクパターンについて説明する。白セルと黒セルの理想的な配置パターンには、検出用パターンに類似したパターンが含まらず、かつ、白セルや黒セルが連続しておらず、白セルと黒セルの比率が1対1に近い領域である。マスク処理(排他的論理和)の結果、このようなパターンを得ることができるマスクパターンが、最適なマスクパターンである。なお、マスク処理の結果、検出用パターンに類似したパターンが得られてしまうと、検出用パターンの誤検出につながるため、好ましくない。また、白セル、又は、黒セルの連続した領域では、一つ一つのセルが太りやすくなり、本来あるべきセルの大きさにならない可能性があるため、好ましくない。逆に、マスク処理の結果、白セルと黒セルの比率が1対1に近くなれば(そして、それ程、連続が無ければ)、黒セルの形成に難があっても、白セルの形成の難があっても、平等に対応できるため好ましいパターンとなる。
【0078】
次に、ステップS906で、CPUは、ステップS905で得られたモジュールに形式情報および型番情報を生成して、符号画像パターンを完成する。形式情報には、誤り訂正レベルと使用したマスクパターン情報が含まれる。
【0079】
このように符号化された結果として、2次元コードは図7のような外観の符合画像パターンとなる。
【0080】
2次元コードには、任意の情報を符号化することが可能である。本発明においては、複写条件情報が符号化された2次元コードパターンが、紙原稿上にあり、その紙原稿を画像形成装置10でスキャンすることを前提とする。なお、複写条件情報の他に、その原稿の出力プリンタ・時刻などの各種属性情報について符号化しても構わない。
【0081】
次に、このような2次元コードを前提とし、検出用パターン検出部328および、符号画像パターン復号部329について説明する。
【0082】
検出用パターン検出部328は、符号画像パターンに存在する検出用パターンを画像から検出し、符号画像パターン位置を特定する。検出は、高速化のため、通常、2値化された画像に対して行うが、多値画像に対して、検出を行っても構わない。また、検出効率を向上するために、画像をダウンサンプリングして解像度が低くした画像に対して、検出を行っても構わない。
【0083】
符号画像パターン復号部329では、符号画像パターンの本体の場所が既知の場合に、その符号画像パターン本体に復号処理を施し、情報データを取り出す。
【0084】
図11は、2次元コードを例として、符号画像パターンの復号を説明する図である。(図11のフローチャートにおいて、検出用パターンの位置はすでに特定されており、符号画像パターン本体の位置は既知である。)
まず、ステップS1201で、符号画像パターン復号部329は、検出用パターンに隣接する形式情報を復元し、符号画像パターンに適用された誤り訂正レベルおよびマスクパターン情報を得る。
【0085】
次に、ステップS1202で、符号画像パターン復号部329は、検出用パターンに隣接する型番情報を復元し、符号画像パターンの型番を決定する。
【0086】
次に、ステップS1203で、符号画像パターン復号部329は、形式情報を復元して得られたマスクパターンを使って最終ビット列領域とXOR演算することでマスクを解除する。
【0087】
次に、ステップS1204で、符号画像パターン復号部329は、型番に対応する配置規則に従い、マスクが解除された最終ビット列領域のビットパターンを読み取る。そして、符号画像パターン復号部329は、インターリーブを解除し、コード語列(データコード語列および誤り訂正コード語)を復元する。
【0088】
次に、ステップS1205で、符号画像パターン復号部329は、誤り訂正コード語列を用いて、データの誤りを検出し、誤りがなければ、ステップS1207の処理に進み、誤りがあった場合にはステップS1206の処理に進む。
【0089】
次に、ステップS1206で、符号画像パターン復号部329は、データコード語列の誤りを訂正する。
次に、ステップS1207で、符号画像パターン復号部329は、元データ(付加情報)の種類を示す指示子に基づき、データコード語列を復元して、符号化されていた付加情報を得る。
【0090】
次に、ステップS1208で、符号画像パターン復号部329は、復元された、符号化されていた情報を出力する。
【0091】
ステップS1201からステップS1204の処理においては、黒セルおよび白セルを有する、2次元コードに配置されている黒白のパターンを、適宜1bitのデータ列に変換することにより、処理が行われる。図7のような白黒のパターンの形がはっきりとした符号画像パターンから1bitのデータ列を取り出すことは容易である。しかし、図13のように白黒のパターンが乱れ、白また黒のパターンに太り細りがあるような符号画像パターンから1bitのデータ列を取り出すことは難しい。そのような1bitのデータ列を取り出すことが難しい符号画像パターンについては、処理に失敗することがある。
【0092】
<操作画面の説明>
図6は、画像形成装置10における初期画面である。
【0093】
領域701は、画像形成装置10がコピーできる状態にあるか否かを示し、かつ設定したコピー部数を示す。
【0094】
原稿選択タブ704は、原稿のタイプを選択するためのタブであり、このタブが押し下げられると文字、写真、文字/写真モードの3種類の選択メニューをポップアップ表示される。
【0095】
フィニッシングタブ706は、各種フィニッシングに関わる設定を行うためのタブである。
【0096】
両面設定タブ707は、両面読込み及び両面印刷に関する設定を行うためのタブである。
【0097】
色モードタブ702は、原稿の色モードを選択するためのタブである。このタブが押し下げられるとカラー/ブラック/自動(ACS)の3種類の選択メニューがポップアップ表示される。なお、カラーが選択された場合にはカラーコピーが、ブラックが選択された場合にはモノクロコピーが行われる。また、ACSが選択された場合には、上述したモノクロカラー判定信号によりコピーモードが決定される。
【0098】
本実施形態におけるシステムの説明は以上である。
【0099】
本実施形態のフローチャートを図9に示す。
【0100】
本フローチャートにおける各工程の処理は、CPU301により統括的に制御される。図9に示されているフローチャートは、操作部12でユーザがスキャン処理を伴う処理を選択し、開始ボタンを押した際に実行される。
【0101】
まず、ステップS1001で、CPU301は、操作部12の開始ボタンが押されていることを検知すると、スキャナ13を作動させ、原稿をスキャンする。そして、CPU301は、スキャナ13で読み取られた原稿を、画像としてスキャナI/F311を介してスキャナ画像処理部312に送るように制御する。また、CPU301は、スキャン時のスキャン解像度など設定パラメータやスキャナの特性パラメータについての情報をRAM302に保持しておく。
【0102】
次に、ステップS1002で、スキャナ画像処理部312は、スキャナ画像処理を画像に対して行う。
【0103】
スキャナ画像処理部312は、シェーディング補正部500、マスキング処理部501、フィルタ処理部502、ヒストグラム処理部503、入力側ガンマ補正部504、カラーモノクロ判定部505、文字写真判定部506で画像に対して処理を行う。そして、スキャナ画像処理部312は、処理が済んだ新たな画像と共に属性データを生成し、この属性データを画像に付随させる。そして、スキャナ画像処理部312は、画像を圧縮部313に送り、圧縮画像をRAM302もしくはHDD304に保持する。また、CPU301は、スキャン画像処理時のパラメータについての情報をRAM302に保持しておく。
【0104】
次に、ステップS1003で、CPU301は、ステップS1004の補正処理のパラメータと、ステップS1005の単純2値化処理の閾値パラメータを算出する。その算出の際には、CPU301は、RAM302に保持されているスキャン時の設定パラメータやスキャナの特性パラメータについての情報やスキャン画像処理時のパラメータを利用する。
【0105】
次に、ステップS1004で、CPU301は、主な補正処理として、変倍部323での変倍処理やフィルタ処理部324でのフィルタ処理や線形性調整部325での線形調整処理を実行する。
【0106】
変倍処理のパラメータは、スキャン時のスキャン解像度に関する設定パラメータに基づいて、後段の符号画像パターンの検出に適した解像度となるように決定される。たとえば、スキャン解像度が600×300のように片変倍であり、主副が同じ解像度であることが必要な際には、600×600や300×300などの主副が同じ解像度になるような解像度変換パラメータが決定される。変倍方法は、スキャン画像全面に対して変倍処理を行うため、計算コストを考慮する必要がある。そのため、単純間引きや単純拡大のような計算コストが軽い変倍方法を適用することを優先する。
【0107】
フィルタ処理のパラメータ決定方法について述べる。まず、特性パラメータやスキャン画像処理時のフィルタ処理部502でのフィルタパラメータに基づいて、その時点での画像の符号画像領域の平均輝度と周波数特性を推定する。ここで、特性パラメータとは、例えば、スキャナの周波数特性や白レベル基準である。
【0108】
次に、この推定に基づき、画像が、後段の符号画像パターンの検出に適した平均輝度と周波数特性となるようなパラメータが決定される。理想的な平均輝度とは、符号画像領域の平均輝度が50%の値(画像が8bitであれば127もしくは128)となるようなレベルである。理想的な周波数特性は、対応している符号画像パターンに対応する周波数成分が多く、その他の部分の周波数成分が少ない特性である。
【0109】
線形性調整処理のパラメータ決定方法について述べる。まず、特性パラメータと、スキャン画像処理時のヒストグラム生成部503のサンプリング結果と入力側ガンマ補正部504の1次元LUTパラメータに基づいて、その時点での輝度と濃度の対応関係を推定する。ここで、特性パラメータとは、例えば、スキャナの白レベル基準や、輝度と濃度の対応関係である。次に、この推定に基づき、画像が、後段の符号画像パターンの検出に適した輝度と濃度の対応関係となるような1次元LUTのパラメータが決定される。符号画像パターンの検出に適した輝度と濃度の関係は、検出方法にも依存するが、線形な対応関係が適している。
【0110】
ステップS1005の単純2値化処理の閾値パラメータは、通常、補正処理が正常に行われていれば、50%の値(画像が8bitであれば127もしくは128)で良い。ただし、補正処理の負荷を軽減するために、補正処理が十分に施されていない場合は、その補正処理を施さないことによる、50%の閾値からのずれが計算される。そして、そのずれを反映させた値が閾値とされる。(フィルタ処理などが絡むため、正確なずれ量は計算できない)
次に、ステップS1004で、CPU301は、まず、RAM302もしくはHDD304に保持されている圧縮画像を、符号画像パターン処理部317で処理するために、伸張部318で伸張する。次に、CPU301は、ステップS1003で決定した補正処理パラメータに基づいて、補正処理を行う。すなわち、CPU301は、ステップS1003で決定した補正処理パラメータに基づいて、補正処理を行うにあたっての補正量を決定する。
【0111】
変倍部323は、ステップS1003で決定した変倍処理パラメータに基づいて、変倍処理を行う。フィルタ処理部324は、ステップS1003で決定した変倍処理パラメータに基づいて、フィルタ処理を行う。線形性調整部325は、ステップS1003で決定した線形性調整処理パラメータに基づいて、線形性調整処理を行う。補正処理対象となる画像を、スキャンされた画像の全面としても良い。また、補正処理の負荷を低減するために、補正処理対象となる画像を、スキャンされた画像の一部としても良い。
【0112】
次に、ステップS1005で、CPU301は、ステップS1003で決定した単純2値化処理の閾値パラメータに基づいて、多値単純2値部320で、ステップS1004で補正された画像に対して単純2値化処理を行う。
【0113】
次に、ステップS1006で、CPU301は、ステップS1005で2値化された画像から、検出用パターン検出部328で、符号画像パターンの検出用パターンの検出を行う。検出用パターンは、1つの情報コードにつき、複数存在するため、その位置関係から符号画像パターン本体の位置を特定することができる。よって、検出用パターンが検出された場合には、CPU301は、その検出した検出用パターン情報から、符号画像パターンの位置情報を導きだし、その位置情報をRAM302に保持しておく。
【0114】
次に、ステップS1007で、CPU301は、まず、RAM302もしくはHDD304に保持されている圧縮画像を、符号画像パターン処理部317で処理するために、伸張部318で伸張する。次に、CPU301は、切り出し部327で、S1006で決定されたRAM302に保持されている符号画像パターンの位置情報に基づき、符号画像パターンの復号に用いる画像を切り出す。具体的には、三つの検出用パターンによって形成されている四角形(即ち、三つの検出用パターン全てに外接する四角形)の画像を切り出す。検出用パターンの検出に用いた2値画像は全面の画像に補正処理および2値化処理を施す必要があり、処理の負荷が大きいので、十分な処理を施すことができない。しかし、符号画像パターンの復号に用いる画像は、その全体画像の一部であり、処理の負荷のことを考えずに、後段のステップS1009およびS1010では、より複雑な画像処理を施すことができる。そこで、符号画像パターンの復号のために独自の画像処理を施すために、検出用パターンの検出画像は符号画像パターンの復号には利用しなくても良い。
【0115】
次に、ステップS1008で、CPU301は、ステップS1009の補正処理のパラメータと、ステップS1010の2値化処理のパラメータを算出する。その算出の際には、ステップS1003で利用したRAM302に保持されているスキャン時のパラメータについての情報やスキャン画像処理時のパラメータに加え、切り出した画像自体の情報が利用される。ステップS1003で利用した情報に加えて、切り出した画像自体の情報を利用することにより、より精度の高い補正処理や2値化処理が実現される。
【0116】
次に、ステップS1009で、CPU301は、主な補正処理として、変倍部323による変倍処理、フィルタ処理部324によるフィルタ処理、線形性調整部325による線形調整処理、特殊処理部326による太らせ処理などを実行する。
【0117】
ステップS1009における変倍処理のパラメータの決定方法は、ステップS1003におけるパラメータの決定方法と同様である。ただし、ステップS1009での変倍処理は、部分的な画像に対しての変倍処理である。したがって、ステップS1009での変倍処理の負荷は、ステップS1004の変倍処理の負荷と比べて低い。そのため、ステップS1009では、変倍性能は高いが計算コストが高いキュービック変倍などを適用することができることを考慮して、変倍処理パラメータを決定しても良い。
【0118】
フィルタ処理のパラメータ決定方法について述べる。まず、対象となる切り出し画像を分析し、画像の平均輝度や周波数特性を得る。切り出し画像の分析は、フィルタ処理部324で行う。その値に基づき、後段の符号画像パターンの検出に適した平均輝度と周波数特性となるようなパラメータが決定される。理想的な平均輝度は、50%の値(画像が8bitであれば127もしくは128)と同じ値である。理想的な周波数特性は、対応している符号画像パターンに対応する周波数成分が多く、その他の部分の周波数成分が少ない特性である。ステップS1003では、全面の画像が切り出しの対象としており、画像特性の分析には、莫大な計算コストがかかる。しかし、ステップS1009では、切り出し画像は画像の一部であるため、ステップS1009の計算コストは、ステップS1003の計算コストよりも低い。
【0119】
線形性調整処理のパラメータの決定方法は、ステップS1003における決定方法と同様である。
【0120】
特殊処理のパラメータの決定方法について述べる。通常、2次元コードのような符号画像パターンは、黒セル領域と白セル領域の割合が1対1に近い比率となっている。この性質を利用し、切り出した画像を分析し、画像の黒セル領域と白セル領域の割合が1対1に近づけるような処理を、特殊処理部326で行えば、より符号画像パターンの復号に適した画像となる。たとえば、第1の閾値よりも濃度が濃い領域の画素数と、第2の閾値よりも濃度が薄い領域の画素数を計算し、その比率に基づいて、太らせ処理・細らせ処理パラメータを決定する。
【0121】
ステップS1010の2値化処理の閾値パラメータは、切りだし画像を解析することにより決定する。切り出し画像の分析は、多値2値部321で行う。その解析手法としては、切り出し画像のヒストグラムを利用する方法などが考えられる。たとえば、図15のような切り出し画像のヒトストグラムを取り、2つのクラスタ(白画素に分類されるクラスタと黒画素に分類されるクラスタ)の分離度が最大になるように閾値パラメータを決定する。クラスタの分離度の評価方法としては、クラスタ同士の共分散行列を用いる手法などが考えられる。または、白画素と黒画素に分類される画素数の比を1対1にするように閾値パラメータを決定してもよい。なお、補正処理が正常に行われていれば、50%の値(画像が8bitであれば127もしくは128)を閾値パラメータとしてもかまわない。
【0122】
次に、ステップS1009で、CPU301は、ステップS1008で決定した補正処理パラメータに基づいて、補正処理を行う。すなわち、CPU301は、ステップS1008で決定した補正処理パラメータに基づいて、補正処理を行うにあたっての補正量を決定する。
【0123】
変倍部323は、ステップS1008で決定した変倍処理パラメータに基づいて、変倍処理を行う。フィルタ処理部324は、ステップS1008で決定した変倍処理パラメータに基づいて、フィルタ処理を行う。線形性調整部325は、ステップS1008で決定した線形性調整処理パラメータに基づいて、線形性調整処理を行う。特殊処理部326は、ステップS1008で決定した太らせ処理および細らせ処理用のパラメータに基づいて、特殊処理(太らせ処理・細らせ処理)を行う。
【0124】
補正処理対象となる画像は、スキャンした画像全面から切り出した画像であり、画像全面に補正する場合に比べて、補正処理の計算コストは低い。そのため、すべての補正処理を実施することが望ましいが、一部の補正処理だけを行っても構わない。
【0125】
次に、ステップS1010で、CPU301は、ステップS1008で決定した2値化処理の閾値パラメータに基づいて、多値2値部321で、ステップS1009で補正された画像に対して2値化処理を行う。
【0126】
次に、ステップ1011で、CPU301は、ステップS1010で2値化された画像から、符号画像パターン復号部329で、符号画像パターンの復号を行う。
【0127】
ステップS1002でスキャン画像処理が施された符号画像パターンが図12のようなものであったとき、ステップS1005で2値化された符号画像パターンは図13のようなものとなる。
【0128】
図13に示されている符号画像パターンは、ステップS1006の検出用パターンの検出処理をする上では、検出用パターンがはっきりとしているため、検出に問題がない。しかし、ステップS1011の符合画像パターンの復号処理をする上では、黒セルが細くなりすぎていて、復号に問題が生じる。つまり、ステップS1004やステップS1005で実施される補正処理および2値化処理では、ステップS1006の処理に十分であっても、ステップS1011の処理には不十分な前処理であることになる。
【0129】
ステップS1006で処理する画像サイズとステップS1011で処理する画像サイズは大きく異なる。そのため、ステップS1011の処理のために、計算コストが掛る前処理をしても、全体の計算コストに大きな影響を及ぼさない。そこで、ステップS1009とステップS1010で、ステップS1004とステップS1005に比べて計算コストが掛かる、符合画像パターンの復号処理に適した画像となるような前処理を施す。そうすることにより、図14のような白黒セルの大きさの釣り合いが取れた画像を生成することができる。そして、ステップS1011では、図14のような画像に対して、符号画像パターンの復号処理を行う。このようにして、符号画像パターンの検出用パターンを検出するための画像と、符号画像パターンを復号する画像を別々に処理することにより、計算コストを抑えた形で、符号画像パターンの復号性能を向上させることが可能となる。
【0130】
CPU301は、復号処理が終わったあとに、復号結果を不図示のデータバスを用いてRAM302に保持する。
【0131】
次に、ステップS1012で、CPU301は、RAM302に保持されている復号結果から、スキャン画像のプリントを実行するかどうかの判断を行う。
【0132】
CPU301は、復号結果を解析し、その中にプリント判断に関する情報が含まれており、更に、その情報が複写禁止であった場合(NGの場合)には、プリントの実行を中止する。そして、処理を終了する。
【0133】
NG以外の場合(OKの場合)に、CPU301は、プリントの実行が許可されているとみなし、ステップS1013に進む。なお、符号画像パターンが見つからなかった場合も、プリントの実行が許可されているとみなす。
【0134】
次に、ステップS1013で、CPU301は、ステップS1012の判断をうけて、プリンタ画像処理を実行する。
【0135】
まず、CPU301は、RAM302もしくはHDD304に保持されているステップS1002で生成された圧縮画像を、プリント画像処理部315で処理するために、伸張部316で伸張する。
【0136】
次に、CPU301は、プリンタ画像処理部315において、プリンタ画像処理を伸長された画像に対して行う。プリンタ画像処理部315は、下地飛ばし処理部601、モノクロ生成部602、Log変換部603、出力色補正部604、出力側ガンマ補正部605、中間調補正部606で画像に対して処理を行う。なお、カラー印刷の際には、モノクロ生成部602は動作させない。
【0137】
そして、CPU301は、プリンタ画像処理が施された画像をプリンタIF315に送出する。
【0138】
次に、ステップS1014で、CPU301は、プリンタ14で、プリンタIF314を通して受け取った画像を用紙上に形成する。そして、不図示の排紙トレイに印字後の用紙を排出する。
【0139】
<実施形態2>
次に実施形態2について図面を参照して説明する。なお、実施形態1において説明をした図や、フローチャートに関する説明は省略する。ここでは、実施形態2で説明をするフローチャートである図16を用いて説明を行なう。
【0140】
図16のフローチャートにおける各工程の処理は、CPU301により統括的に制御される。図16に示されているフローチャートは、操作部12でユーザがスキャン処理を伴う処理を選択し、開始ボタンを押した際に実行される。
【0141】
実施形態2のフローチャートである図16のステップS1001〜ステップS1005は、実施形態1のステップS1001〜ステップS1005と同様である。
【0142】
ステップS2006で、CPU301は、ステップS1005で2値化された画像から、検出用パターン検出部328で、符号画像パターンの検出用パターンの検出を行う。検出用パターンは、1つの情報コードにつき、複数存在するため、その位置関係から符号画像パターン本体の位置を特定することができる。よって、検出用パターンが検出された場合には、CPU301は、以下のような処理を行う。すなわち、CPU301は、その検出した検出用パターン情報から、符号画像パターンの位置情報を導きだし、その位置情報をRAM302に保持する。
【0143】
また、検出の際には、検出した検出用パターンの太り細り情報を獲得することができる。2次元コードの検出用パターンは、3×3の黒セルの周りに、幅1セルの白セルの枠があり、さらにその外側に幅1の黒セルがある構造となっている。このため、3×3の黒セルの中心を通る任意の断面は、理想的には、黒領域:白領域:黒領域:白領域:黒領域の比率が、1:1:3:1:1の比率になっている。検出の際には、この比率の理想値からのずれを知ることができる。この理想値からのずれ情報は、2次元コードの白セルや黒セルが太っているかもしくは細っているか、どちらであるかを示すものであり、この太り細り情報をRAM302に保持しておく。太り細りは、指向性がある可能性があるので、縦方向と横方向の2種類の太り細り情報を保持しておいてもよい。
なお、太り細り情報が「太」である場合には、符号画像パターン(ステップS1007の切り出しにより得られた画像)に対して細らせ処理が行われることになる。一方、太り細り情報が「細」である場合には、符号画像パターン(ステップS1007の切り出しにより得られた画像)に対して太らせ処理が行われることになる。
【0144】
実施形態2のフローチャートである図16のステップS1007は、実施形態1のステップS1007と同様である。
【0145】
次に、ステップS2008で、CPU301は、ステップS2009で用いる補正処理のパラメータと、ステップS2010で用いる2値化処理のパラメータを算出する。その算出の際には、ステップS1003で利用したRAM302に保持されているスキャン時のパラメータについての情報やスキャン画像処理時のパラメータに加え、以下のものが利用される。すなわち、RAM302に保持されている太り細り情報又はステップS2006で検出された検出用パターンが利用される。ステップS1003で利用した情報に加えて、これらの情報を利用することにより、より精度の高い補正処理や2値化処理が実現される。
【0146】
次に、ステップS2009で、CPU301は、主な補正処理として、変倍部323による変倍処理、フィルタ処理部324によるフィルタ処理、線形性調整部325による線形調整処理、特殊処理部326による太らせ処理やノイズ画素除去などを実行する。
【0147】
ステップS2009における変倍処理のパラメータの決定方法は、ステップS1003におけるパラメータの決定方法と同様である。ただし、ステップS2009での変倍処理は、部分的な画像に対しての変倍処理である。したがって、ステップS2009での変倍処理の負荷は、S1004の変倍処理の負荷と比べて低い。そのため、ステップS2009では、変倍性能は高いが計算コストが高いキュービック変倍などを適用することができることを考慮して、変倍処理パラメータを決定しても良い。
【0148】
フィルタ処理のパラメータ決定方法は、ステップS1003における決定方法と同様である。
【0149】
線形性調整処理パラメータの決定方法は、ステップS1003における決定方法と同様である。
【0150】
特殊処理のパラメータの決定方法について述べる。ステップS2006で検出された検出用パターンを利用して、黒セルと白セルの太り細りを補正するためのパラメータを算出する。たとえば、検出用パターンの中心を通る断面の黒領域:白領域:黒領域:白領域:黒領域の比率が、1.2:0.8:3.6:0.8:1.2であったとする。この場合は、黒セルを約0.83倍、白セルを1.25倍するような太らせ処理また細らせ処理用を行えば、黒領域:白領域:黒領域:白領域:黒領域の比率が、1:1:3:1:1となる。この理想的な比率に検出用パターンを変形するための太らせ処理・細らせ処理用のパラメータとして決定する。また、特殊処理部326はノイズ画素を除去する能力も持っており、その除去パラメータも算出する。
【0151】
また、他の特殊処理のパラメータの決定方法として以下のような方法も挙げられる。この場合もやはり、ステップS2006で検出された検出用パターンを利用して、黒セルと白セルの太り細りを補正するためのパラメータを算出する。なお、検出用パターンは、ステップS2006で三つ検出されている場合であるが、ここで対象とするのはそのうちの任意の一つである。
【0152】
たとえば、その検出用パターンが図17のような検出用パターンだったとする。この検出用パターンの中心を通る横方向の断面の黒領域:白領域:黒領域:白領域:黒領域の画素数が、a画素:b画素:c画素:d画素:e画素だったとする。このとき、図17に示すように左右の黒領域の中心間のセル数は6セルのはずである。そこで、(a/2+b+c+d+e/2)/6を1セルの画素数として計算し、この1セルの画素数をwとおくこととする。このように、基準となる1セルの画素数を求める。そして、各黒領域(a画素、c/3画素、e画素)が約w画素の幅となるように補正をかけるための太らせ・細らせ処理用のパラメータを決定する(黒領域が約w画素の幅となれば、結果として、白領域も約w画素の幅となる)。
【0153】
なお、基準となる1セルの画素数を求めるにあたって、左の黒領域の左端から右の黒領域の右端までの距離を用いる方法も考えられる。この場合、その距離は7セルとなるはずであるが、黒画素の太り・細りの影響で7セル以上になったり以下になったりと変動が激しい。そこで、基準となる1セルの画素数を求めるにあたっては、太り細りに影響されにくい左右の黒領域の中心間のセル数を用いる上述の方法の方が望ましい。
【0154】
続いて、パラメータ決定方法を具体的に説明する。様々な方法が考えられるが、その一例として考えられるのは、パラメータxh= (a + c + e -5w)/6である。前半部のa + c + e -5wという式で、黒領域が全体として見た時に総計でどれだけ太っているのか(ただし、このa + c + e -5wが−となる場合はどれだけ細っているか)を計算している。そして、このa + c + e -5wを6で割ることによって、各黒領域が平均的に見てどれだけ左右に太っているかを計算している。黒領域は全部で3つあり、太り得る箇所は各黒領域で左右に二箇所あるため、3×2の6を除算値として用いている。
【0155】
このパラメータxh画素の太りを元に戻すためには、-xh画素の太らせ処理(即ち、xh画素の細らせ処理)が必要である。このパラメータを用いた太らせ・細らせ処理としては、下記のような処理が考えられる。なお、本ステップで行われるのはパラメータを求めるまでであり、実際にそのパラメータを使った下記のような太らせ処理・細らせ処理は、特殊処理部326で、以下のように行われる。
【0156】
まず、太らせ処理の場合には、注目画素の濃度値(value(x,y))を、注目画素を含む注目画素近傍の画素の濃度値のうちの最大値(processed_value(x,y))に置き換える処理を行う。(細らせ処理の場合は、最大値ではなく最小値となる。)これを計算式で表すと以下の通りである。
processed_value(x,y) = max_value(value(x-1,y),value(x,y),value(x+1,y))
prcessed_value(x,y) :上記置き換える処理を行った後の注目画素の濃度値
value(x,y) :上記置き換えるの処理を行う前の注目画素の濃度値
max_value(a,b,c) :a,b,c,のうちの最大値を出力する関数
【0157】
具体的には、まず、注目画素をx=1,y=1(左上)に存在する画素に設定し、上記置き換える処理を実行する。そして、その置き換える処理を行った後で注目画素をx=2,y=1となるようにずらす。この注目画素に対して上記置き換える処理を実行して、一つずつ注目画素をずらしながら、上記置き換える処理を全ての画素(ステップS1007の切り出しにより得られた画像における全ての画素)に対して実行していく。
【0158】
なお、近傍の探索範囲は、上記の数式にも現れているように、注目画素を中心とした横方向に3画素の範囲としている。即ち、近傍の画素とは、注目画素の左の画素と注目画素と注目画素の右の画素の3画素を含む。
【0159】
以上の処理を一回実行すると、約1画素の太らせ処理・細らせ処理となる。
【0160】
本実施形態では、このような置き換え処理を「xh」回(「xh」は、xhを四捨五入することで得られた整数値)行う。N回目(Nは「xh」以下で、かつ、2以上の自然数)の置換えを行う際には、N−1回目の置換え処理が行われて得られた全ての画素のprocessed_value(x,y)をvalue(x,y)として設定してから、N回目の置換え処理を行うことになる。
【0161】
なお、縦方向についても、横方向と同じような形で、補正パラメータの算出を行う。縦方向の場合には、太らせ・細らせ処理の近傍探索範囲は注目画素を中心とした縦方向に3画素である。
【0162】
このように、縦方向と横方向の2方向に関して、太らせ・細らせ処理用のパラメータを決定する。そして、これらのパラメータを使って、前述した縦方向と横方向の太らせ・細らせ処理を順次実行する(具体的には、例えば、横方向の太らせ・細らせ処理が終わった後で、縦方向の太らせ・細らせ処理を実行する。即ち、横方向で「xh」回の置換え処理が終わった後で、縦方向で「yh」回の置換え処理を実行する。なお、yhとは、縦方向用のパラメータである)。ここで、縦と横の太らせを同時に行うようにするために、太らせ・細らせ処理の際の近傍探索範囲を、注目画素を中心とした3×3画素としてもよい。
【0163】
また、特殊処理部326はノイズ画素を除去する能力も持っており、その除去パラメータも算出する。太り細り情報からは、復号対応の符合画像パターンのセルサイズを予測することができ、さきほどのw画素が予測されたセルサイズである。予測されたセルサイズに基づいて、ノイズとして除去するべき孤立画素の大きさ(例えば、縦w/2、横v/2)を算出し、それを除去パラメータとする。たとえば、横方向のwが10画素で、縦方向のセルサイズvが12画素であった場合には、半分以下の大きさである横方向5画素×縦方向6画素以下の孤立画素群をノイズ画素とみなす。このようにして、画像(ステップS1007の切り出しにより得られた画素)から除去するようなノイズ除去パラメータが決定される。
【0164】
ステップS2010の2値化処理の閾値パラメータは、通常、補正処理が正常に行われていれば、50%の値(画像が8bitであれば127もしくは128)で構わない。ただし、処理の負荷を低減するために、補正処理が十分に施されていない場合は、施すべきだった補正処理パラメータから、その補正処理を施さないことによる、50%の閾値からのずれを計算する。そして、そのずれを反映させた値を閾値とする。(フィルタ処理などが絡むため、正確なずれ量は計算できない)
【0165】
次に、ステップS2009で、CPU301は、ステップS2008で決定した補正処理パラメータに基づいて、補正処理を行う。すなわち、CPU301は、ステップS2008で決定した補正処理パラメータに基づいて、補正処理を行うにあたっての補正量を決定する。補正処理対象となる画像は、スキャンした画像全面から切り出した画像である。
【0166】
変倍部323は、ステップS2008で決定した変倍処理パラメータに基づいて、変倍処理を行う。フィルタ処理部324は、ステップS2008で決定した変倍処理パラメータに基づいて、フィルタ処理を行う。線形性調整部325は、ステップS2008で決定した線形性調整処理パラメータに基づいて、線形性調整処理を行う。特殊処理部326は、ステップS2008で決定した太らせ処理・細らせ処理用のパラメータに基づいて、特殊処理(太らせ処理・細らせ処理)を行う。この処理については、既に上述した通りである。また、特殊処理部326は、ステップS2008で決定したノイズ除去パラメータに基づいて、特殊処理(ノイズ除去)を行う。
【0167】
補正処理対象となる画像は、スキャンした画像全面から切り出した画像であり、画像全面に補正する場合に比べて、補正処理の計算コストは低い。そのため、すべての補正処理を実行することが望ましいが、一部の補正処理だけを行っても構わない。
【0168】
次に、ステップS2010で、CPU301は、ステップS2008で決定した2値化処理の閾値パラメータに基づいて、多値2値部321で、ステップS2009で補正された画像に対して2値化処理を行う。
【0169】
次に、ステップ2011で、CPU301は、ステップS2010で2値化された画像から、符号画像パターン復号部329で、符号画像パターンの復号を行う。
【0170】
ステップS1002でスキャン画像処理が施された符号画像パターンが図12のようなものであったとき、ステップS1005で2値化された符号画像パターンは図13のようなものとなる。
【0171】
図13に示されている符号画像パターンは、ステップS1006の検出用パターンの検出処理をする上では、検出用パターンがはっきりとしているため、検出に問題がない。しかし、ステップS2011の符合画像パターン復号処理をする上では、黒セルが細くなりすぎていて、復号に問題が生じる。つまり、ステップS1004やステップS1005で実行される補正処理および2値化処理では、ステップS1006の処理に十分であっても、ステップS2011の処理には不十分な前処理であることになる。
【0172】
ステップS1006で処理する画像サイズとステップS2011で処理する画像サイズは大きく異なる。そのため、ステップS2011の処理のために、計算コストが掛る前処理をしても、全体の計算コストに大きな影響を及ぼさない。そこで、ステップS2009とステップS2010で、ステップS1004とステップS1005に比べて計算コストが掛かる、符合画像パターンの復号処理に適した画像となるような前処理を施す。そうすることにより、図14のような白黒セルの大きさの釣り合いが取れた画像を生成することができる。そして、ステップS2011では、図14のような画像に対して符号画像パターンの復号処理を行う。
【0173】
以上説明したように、上記の実施形態によれば、以下のことが可能となる。すなわち、符号画像パターンの検出用パターンを検出するための画像と、符号画像パターンを復号する画像を別々に処理することにより、計算コストを抑えた形で、符号画像パターンの復号性能を向上させることが可能となる。
【0174】
CPU301は、復号処理が終わったあとに、復号結果を不図示のデータバスを用いてRAM302に保持する。
【0175】
実施形態2のフローチャートである図16のステップS1012〜ステップS1014は、実施形態1のステップS1012〜ステップS1014と同様である。
【0176】
<その他の実施形態>
さらに本発明は、複数の機器(例えばコンピュータ、インターフェース機器、リーダ、プリンタなど)を有するシステムに適用することも、一つの機器からなる装置(複合機、プリンタ、ファクシミリ装置など)に適用することも可能である。
【0177】
また本発明の目的は、上述した実施形態で示したフローチャートの手順を実現するプログラムコードを記憶した記憶媒体から、コンピュータがプログラムコードを読出し実行することによっても達成される。この場合、コンピュータで読取り可能な記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになる。そのため、このプログラムコード及びプログラムコードを記憶した記憶媒体も本発明の一つとなる。
【0178】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
【符号の説明】
【0179】
10 画像形成装置
11 コントローラ
12 操作部
13 スキャナ
14 プリンタ
【特許請求の範囲】
【請求項1】
検出用パターンを持つ符号画像パターンを復号化する装置であって、
画像から検出用パターンを検出する検出手段と、
前記検出された検出用パターンにより位置の特定される前記符号画像パターンの濃度を、前記検出された検出用パターンの濃度に基づいて、補正する補正手段と、
前記濃度を補正した後の符号画像パターンを復号化する復号化手段とを備えることを特徴とする装置。
【請求項2】
前記補正手段は、前記画像のうち、前記符号画像パターンのみの濃度を補正することを特徴とする請求項1に記載の装置。
【請求項3】
前記画像は、原稿をスキャンし、それにより得られた画像に対して画像処理が行われた後の画像であり、
前記補正手段は、
前記検出された検出用パターンの濃度に加えて、前記スキャン時のパラメータ、前記画像処理のパラメータをも用いて、
前記補正を行うにあたっての補正量を決定することを特徴とする請求項2に記載の装置。
【請求項4】
検出用パターンを持つ符号画像パターンを復号化する方法であって、
画像から検出用パターンを検出する検出ステップと、
前記検出された検出用パターンにより位置の特定される前記符号画像パターンの濃度を、前記検出された検出用パターンの濃度に基づいて、補正する補正ステップと、
前記濃度を補正した後の符号画像パターンを復号化する復号化ステップとを備えることを特徴とする方法。
【請求項5】
前記補正ステップは、前記画像のうち、前記符号画像パターンのみの濃度を補正することを特徴とする請求項4に記載の方法。
【請求項6】
前記画像は、原稿をスキャンし、それにより得られた画像に対して画像処理が行われた後の画像であり、
前記補正ステップは、
前記検出された検出用パターンの濃度に加えて、前記スキャン時のパラメータ、前記画像処理のパラメータをも用いて、
前記補正を行うにあたっての補正量を決定することを特徴とする請求項5に記載の方法。
【請求項7】
請求項4乃至6のいずれかに記載の方法をコンピュータに実行させるためのプログラム。
【請求項1】
検出用パターンを持つ符号画像パターンを復号化する装置であって、
画像から検出用パターンを検出する検出手段と、
前記検出された検出用パターンにより位置の特定される前記符号画像パターンの濃度を、前記検出された検出用パターンの濃度に基づいて、補正する補正手段と、
前記濃度を補正した後の符号画像パターンを復号化する復号化手段とを備えることを特徴とする装置。
【請求項2】
前記補正手段は、前記画像のうち、前記符号画像パターンのみの濃度を補正することを特徴とする請求項1に記載の装置。
【請求項3】
前記画像は、原稿をスキャンし、それにより得られた画像に対して画像処理が行われた後の画像であり、
前記補正手段は、
前記検出された検出用パターンの濃度に加えて、前記スキャン時のパラメータ、前記画像処理のパラメータをも用いて、
前記補正を行うにあたっての補正量を決定することを特徴とする請求項2に記載の装置。
【請求項4】
検出用パターンを持つ符号画像パターンを復号化する方法であって、
画像から検出用パターンを検出する検出ステップと、
前記検出された検出用パターンにより位置の特定される前記符号画像パターンの濃度を、前記検出された検出用パターンの濃度に基づいて、補正する補正ステップと、
前記濃度を補正した後の符号画像パターンを復号化する復号化ステップとを備えることを特徴とする方法。
【請求項5】
前記補正ステップは、前記画像のうち、前記符号画像パターンのみの濃度を補正することを特徴とする請求項4に記載の方法。
【請求項6】
前記画像は、原稿をスキャンし、それにより得られた画像に対して画像処理が行われた後の画像であり、
前記補正ステップは、
前記検出された検出用パターンの濃度に加えて、前記スキャン時のパラメータ、前記画像処理のパラメータをも用いて、
前記補正を行うにあたっての補正量を決定することを特徴とする請求項5に記載の方法。
【請求項7】
請求項4乃至6のいずれかに記載の方法をコンピュータに実行させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【公開番号】特開2010−213257(P2010−213257A)
【公開日】平成22年9月24日(2010.9.24)
【国際特許分類】
【出願番号】特願2009−281957(P2009−281957)
【出願日】平成21年12月11日(2009.12.11)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成22年9月24日(2010.9.24)
【国際特許分類】
【出願日】平成21年12月11日(2009.12.11)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]