装置、方法、プログラムおよび記憶媒体
【課題】本発明の課題は、2次元コードを再印刷する処理において、処理時間の低減し、印刷画像を見栄えよくすることである。
【解決手段】上記課題を解決するために、本発明に係る画像形成装置は、正対していない2次元コードに接する外接矩形領域の座標を算出する算出手段と、算出手段で算出された外接矩形領域の座標により指定される外接矩形領域内に、正対していない2次元コードの代わりに、正対した2次元コードを配置する配置手段とを備えたことを特徴とする。
【解決手段】上記課題を解決するために、本発明に係る画像形成装置は、正対していない2次元コードに接する外接矩形領域の座標を算出する算出手段と、算出手段で算出された外接矩形領域の座標により指定される外接矩形領域内に、正対していない2次元コードの代わりに、正対した2次元コードを配置する配置手段とを備えたことを特徴とする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、2次元コードを取り扱うことができる画像形成装置、画像形成方法、プログラムおよび記憶媒体に関する。
【背景技術】
【0002】
従来、特定の情報をQRコード(登録商標)に代表される2次元コードに符号化して用紙に印刷する画像形成装置がある。そのような画像形成装置においては、2次元コードが印刷されている原稿を画像形成装置のスキャナで読み取り、2次元コードを復号化して情報を抽出することができる。
【0003】
さらに、抽出して得られた情報を変更して再び2次元コード化して用紙に再印刷することができる。再印刷する際の印刷位置に関して、従来技術では、原稿中の2次元コードと同じ位置(座標、角度)に印刷することが知られている。
【0004】
例えば、スキャナで読取る原稿中の画像が図5のような画像であり、その画像中の2次元コード501が回転している場合には、その画像を、従来技術を用いて、複写する場合には、複写物上でもやはり図5のような画像が得られる。この場合、複写物上でも、図5に示されているように、2次元コード501が回転したままである。
【0005】
例えば、特許文献1の技術では、原稿中の2次元コードの検知時に、2次元コードの回転角を記憶装置に格納する。そして、再印刷する際に、2次元コードを、2次元コードの検知時に記憶装置に格納された回転角度で回転させて、原稿中の2次元コードと同じ座標に印刷することができる。2次元コードを回転させて再印刷すると、再印刷する2次元コードを原稿中の2次元コードに重ねることができるので2次元コードが印刷された用紙の見栄えがよくなるという効果がある。
【0006】
また、従来の画像形成装置は、コピー機能やネットワーク印刷機能、FAX送信機能のような複数の機能を有しており、かつ、それらの機能を平行処理することができる。そして、各機能でビットマップ画像の回転処理をソフトウェアもしくはハードウェアで行うことができる。
【0007】
【特許文献1】特開2006−203667号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかしながら、再印刷する2次元コードを回転させると、次のような問題がある。すなわち、回転処理を行う場合、2次元コードを印刷する処理時間が増加する。
【0009】
本発明は、上記課題を解決するためになされたものであり、2次元コードを再印刷する処理において、処理時間を低減し、印刷画像を見栄えよくすることができる画像形成装置、画像形成方法、プログラム及び記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記課題を解決するために、本発明に係る画像形成装置は、正対していない2次元コードに接する外接矩形領域の座標を算出する算出手段と、算出手段で算出された外接矩形領域の座標により指定される外接矩形領域内に、正対していない2次元コードの代わりに、正対した2次元コードを配置する配置手段とを備えたことを特徴とする。
【発明の効果】
【0011】
本発明によれば、2次元コードを再印刷する処理において、処理時間の低減し、印刷画像を見栄えよくすることができる。
【発明を実施するための最良の形態】
【0012】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【0013】
(第1の実施形態)
図1は、本発明の実施形態に係るシステムの一例を示すブロック図である。図1のシステムでは、ホストコンピュータ(以下、PCと称する)40及び3台の画像形成装置10、20、30がLAN50に接続されている。
【0014】
本発明の実施形態に係るシステムにおいては、LAN50へのPCや画像形成装置の接続台数は、図1に示されている数に限られることはない。また、本実施形態では、接続方法としてLANを用いているが、これに限られることはない。例えば、本実施形態において、接続方法として、WAN(公衆回線)のような任意のネットワーク、USBのようなシリアル伝送方式、セントロニクスやSCSIのようなパラレル伝送方式を用いても良い。
【0015】
PC40は、パーソナルコンピュータの機能を有している。PC40は、LAN50やWANを介してFTPやSMBプロトコルを用いファイルを送受信したり電子メールを送受信したりすることができる。また、PC40から画像形成装置10、20、30に対して、プリンタドライバを介した印刷命令を行うことができる。
【0016】
画像形成装置10と画像形成装置20は、同じ構成を有する装置である。画像形成装置30は、印刷機能のみの画像形成装置であり、画像形成装置10や20が有するスキャナ部を有していない。以下では、説明の簡単のために、画像形成装置10、20のうちの画像形成装置10に注目して、その構成を詳細に説明する。
【0017】
画像形成装置10は、画像入力デバイスであるスキャナ部13、画像出力デバイスであるプリンタ部14、画像形成装置10全体の動作制御を司るコントローラユニット11、ユーザインターフェース(UI)である操作部12を有する。
【0018】
画像形成装置20は、画像入力デバイスであるスキャナ部23、画像出力デバイスであるプリンタ部24、画像形成装置20全体の動作制御を司るコントローラユニット21、ユーザインターフェース(UI)である操作部22を有する。
【0019】
画像形成装置30は、画像出力デバイスであるプリンタ部33、画像形成装置30全体の動作制御を司るコントローラユニット31、ユーザインターフェース(UI)である操作部32を有する。
【0020】
図2は、画像形成装置10の外観を示す図である。スキャナ部13は、原稿上の画像を露光走査して得られた反射光をCCDに入力することで画像の情報を電気信号に変換する。スキャナ部13は、さらに電気信号をR,G,B各色からなる輝度信号に変換し、輝度信号を画像データとしてコントローラユニット11に対して出力する。
【0021】
なお、原稿は原稿フィーダ201のトレイ202にセットされる。ユーザが操作部12から読み取り開始を指示すると、コントローラユニット11からスキャナ部13に原稿読み取り指示が与えられる。スキャナ部13は、コントローラユニット11から指示を受けると、原稿フィーダ201のトレイ202から原稿を1枚ずつフィードして、原稿の読み取り動作を行う。なお、原稿の読み取り方法は、原稿フィーダ201による自動送り方式ではなく、原稿を不図示のガラス面上に載置し露光部を移動させることで原稿の走査を行う方法であってもよい。
【0022】
プリンタ部14は、コントローラユニット11から受取った画像データを用紙上に形成する画像形成デバイスである。なお、本実施形態において、画像形成方式は感光体ドラムや感光体ベルトを用いた電子写真方式となっているが、本発明はこれに限られることはない。例えば、微少ノズルアレイからインクを吐出して用紙上に印刷するインクジェット方式を適用できる。また、プリンタ部14には、異なる用紙サイズ又は異なる用紙向きを選択可能とする複数の用紙カセット203、204、205が設けられている。排紙トレイ206には後処理を行わない印刷後の用紙が排出される。後処理部207は、後処理を行う印刷後の用紙が排出される。後処理として、排出された用紙に対してステイプル止めやパンチ穴開け、裁断を行う。
【0023】
図3は、画像形成装置10のコントローラユニット11をより詳細に説明するためのブロック図である。
【0024】
コントローラユニット11は、スキャナ部13やプリンタ部14と電気的に接続されており、一方ではLAN50やWAN331を介してPC40のような外部の装置と接続されている。これにより、コントローラユニット11への画像データやデバイス情報の入出力が可能となっている。
【0025】
CPU301は、ROM303に格納された制御プログラムに基づいて接続中のデバイスとのアクセスを統括的に制御すると共に、コントローラユニット11の内部で行われる各種処理についても統括的に制御する。
【0026】
RAM302は、CPU301が動作するためのシステムワークメモリであり、かつ画像データを一時的に格納するためのメモリでもある。RAM302は、格納された内容を電源off後も保持しておくSRAM及び電源off後には格納された内容が消去されてしまうDRAMにより構成されている。ROM303には装置のブートプログラムが格納されている。HDD304は、ハードディスクドライブであり、システムソフトウェアや画像データを格納することができる。
【0027】
操作部I/F305は、システムバス310と操作部12とを接続するためのインターフェース部である。操作部I/F305は、操作部12に表示するための画像データをシステムバス310から受取り操作部12に出力すると共に、操作部12から入力された情報をシステムバス310へと出力する。
【0028】
ネットワークI/F306は、LAN50及びシステムバス310に接続し、情報の入出力を行う。モデム307は、WAN331及びシステムバス310に接続しており、情報の入出力を行う。2値画像回転部308は、送信前の画像データの方向を変換する。2値多値圧縮・伸張部309は、送信前の画像データの解像度を所定の解像度や相手能力に合わせた解像度に変換する。なお、圧縮及び伸張にあたってはJBIG、MMR、MR、MHのような方式が用いられる。画像バス330は、画像データをやり取りするための伝送路であり、PCIバス又はIEEE1394で構成されている。
【0029】
スキャナ画像処理部312は、スキャナ部13からスキャナI/F311を介して受取った画像データに対して、補正、加工、及び編集を行う。なお、スキャナ画像処理部312は、受取った画像データがカラー原稿か白黒原稿か、文字原稿か写真原稿かを判定する。そして、スキャナ画像処理部312は、判定結果を画像データに付随させる。こうした付随情報を属性データと称する。
【0030】
圧縮部313は、画像データを受取り、画像データを圧縮する。伸張部316は、画像データを伸張した後にラスタ展開してプリンタ画像処理部315に送る。
【0031】
プリンタ画像処理部315は、伸張部316から送られた画像データを受取り、この画像データに付随させられている属性データを参照しながら画像データに画像処理を施す。画像処理後の画像データは、プリンタI/F314を介してプリンタ部14に出力される。
【0032】
画像変換部317は、画像データに対して所定の変換処理を施す。画像処理部317は、以下に示すような処理部318〜327により構成される。
【0033】
伸張部318は、受取った画像データを伸張する。圧縮部319は、受取った画像データを圧縮する。回転部320は、受取った画像データを回転する。変倍部321は、受取った画像データに対し解像度変換処理(例えば600dpiから200dpi)を行う。色空間変換部322は、受取った画像データの色空間を変換する。色空間変換部322は、マトリクス又はテーブルを用いて公知の下地飛ばし処理を行ったり、公知のLOG変換処理(RGB→CMY)を行ったり、公知の出力色補正処理(CMY→CMYK)を行ったりすることができる。2値多値変換部323は、受取った2階調の画像データを256階調の画像データに変換する。逆に、多値2値変換部324は、受取った256階調の画像データを誤差拡散処理のような手法により2階調の画像データに変換する。
【0034】
合成部327は、受取った2つの画像データを合成し1枚の画像データを生成する。なお、2つの画像データを合成する際には、合成対象の画素同士が持つ輝度値の平均値を合成輝度値とする方法や、輝度レベルで明るい方の画素の輝度値を合成後の画素の輝度値とする方法が適用される。また、暗い方を合成後の画素とする方法の利用も可能である。さらに合成対象の画素同士の論理和演算、論理積演算、排他的論理和演算で合成後の輝度値を決定する方法も適用可能である。これらの合成方法はいずれも周知の手法である。間引き部326は受取った画像データの画素を間引くことで解像度変換を行い、1/2,1/4,1/8の画像データを生成する。移動部325は、受取った画像データに余白部分をつけたり余白部分を削除したりする。
【0035】
RIP328は、PC40から送信されたPDLコードデータを元に生成された中間データを受取り、ビットマップデータ(多値)を生成する。
【0036】
図4は、本実施形態における2次元コードに関わる処理のフローチャートである。本実施形態において、図5に示すような画像データ500中の2次元コード501が用いられているとして説明する。2次元コードは、文字や数字のような情報を図形パターンとして符号化したものである。
【0037】
まず、S1601にて、CPU301は、スキャナ部からスキャナI/F311を介して読み取った原稿の画像データを圧縮部313で圧縮してRAM302に格納する。
【0038】
次に、S1602にて、CPU301は、伸張部318で伸張した画像データ内に2次元コードが有るか否かを判定することにより、2次元コードを検知する。本実施形態で用いる2次元コードの検出方法は公知のものを利用可能である。すなわち、CPU301は、画像データを走査して図6(図5の2次元コード501のみを拡大)中の3つの切り出しシンボル502を特定することで検知できる。切り出しシンボル502は、黒い領域と白い領域の比がどの方向から走査しても1(黒):1(白):3(黒):1(白):1(黒)となっている。
【0039】
S1602で、2次元コードが有ると判定された場合は、S1603に処理が進む。S1602で、2次元コードが無いと判定された場合は、S1611に処理が進む。
【0040】
S1603では、CPU301は、3つの切り出しシンボルの位置から2次元コードの領域(図8の領域801)を算出して、2次元コードの位置をRAM302に格納する。ここで、2次元コードの領域(図8の領域801)には、切出しパターンと情報が入った本体の部分と、その周囲の余白部分とが含まれている。
【0041】
また、S1603で、CPU301は、2次元コードの回転角を算出してその回転角をRAM302に格納する。ここで、前述の回転角は、S1602で得た画像データの向き(即ち、S1601によって読み取られた原稿のスキャン走査方向)に対して、検知した(即ち、更新前の)2次元コードが時計回りに何度回転しているかを意味するものである。さらに、S1603で、CPU301は、2次元コードの縦横の長さを算出してRAM302に格納する。なお、縦横の長さとは、2次元コードにおける各辺の長さのことである。
【0042】
次に、S1604にて、CPU301は、2次元コードを復号化する。
【0043】
次に、S1605で、CPU301は、S1604で2次元コードを復号化して得られた情報をRAM302に格納する。なお、2次元コードを復号化して得られた情報には、例えば、2次元コードを含む原稿を作成したユーザの情報と、2次元コードを含む原稿の作成日時(複写日時)と、2次元コードを含む原稿を作成した画像形成装置の識別情報とが含まれている。
【0044】
次に、S1606で、CPU301は、S1605でRAM302に格納した情報を用いて、2次元コードに符号化してRAM302に格納する。即ち、CPU301は、S1605でRAM302に格納した情報を用いて、新しい正対した2次元コードを作成してRAM302に格納する。これにより、CPU301は、S1605でRAM302に格納した情報を更新して、2次元コードに符号化し、RAM302に格納する。
【0045】
ここで、正対とは、S1602で得た画像データの向き(即ち、S1601によって読み取られた原稿のスキャン走査方向(主走査方向又は副走査方向))に対して、図6に示されている2次元コードの中線601が平行に位置するという意味である。
【0046】
なお、S1606で、CPU301が作成した、正対した2次元コードを、更新後の2次元コードと称する。また、S1606の処理のように、S1601で検出された2次元コードの代わりとなる新しい正対した2次元コードを作成する処理のことを、2次元コードの更新と称する。
【0047】
なお、S1606で、CPU301は、RAM302に格納した情報をそのまま符号化せず、一部の情報を削除したり、新たな情報を付加したり、変更したりした上で符号化しても良い。
【0048】
例えば、変更する情報の例として次のようなものがある。更新前の2次元コード内のユーザ情報(原稿を作成したユーザの情報、又はユーザを一意に特定する情報)を、操作部12から入力されたユーザ情報へ変更する。更新前の2次元コード内の原稿作成日時を複写日時に変更する。更新前の2次元コード内の画像形成装置の識別情報(原稿を作成した画像形成装置の識別情報)を、複写する画像形成装置の識別情報に変更する。
【0049】
また、本画像形成装置の解像度が低いが故に正対した2次元コードに符号化できる情報の量が少ない場合には、一部の情報が削除されることになる。この場合、優先順位の低い情報(例:原稿作成日時)から順に情報が削除されることになる。
【0050】
また、本画像形成装置内で追加すべく設定されている情報(例えば、画像形成装置を管理する管理者ユーザの情報)がある場合には、そうした情報が付加されることになる。
【0051】
次に、S1607にて、CPU301は、更新前の2次元コードの回転角をRAM302から読み出す。また、CPU301は、後述の回転角閾値(θ)を計算する。そして、CPU301は、2次元コードの回転角が回転角閾値より大きいかどうかを判定する。2次元コードの回転角が、回転角閾値以下の場合はS1608に進み、2次元コードの回転角が、回転角閾値より大きい場合はS1610に進む。
【0052】
S1608にて、CPU301は、画像データから図7に示すような正対していない2次元コードに接する外接矩形領域503の座標を算出し、座標をRAM302に格納する。ここで、例えば、外接矩形領域503の座標を、外接矩形領域503の4点505〜508の座標として算出することができる。
【0053】
次に、S1609にて、CPU301は、外接矩形領域503に対してS1606で更新した2次元コードを合成部327で、印刷画像に合成する。S1609の合成の詳細については後述する。S1609は、S1608で算出された外接矩形領域の座標により指定される外接矩形領域内に、正対していない2次元コードの代わりに、正対した2次元コードを配置するための処理である。なお、S1609と同様の処理により、S1608で算出された外接矩形領域の座標に基づく領域内に、正対していない2次元コードの代わりに、正対した2次元コードを配置することもできる。ここで、「外接矩形領域の座標に基づく領域」は、外接矩形領域よりも縦および横共に所定画素(例えば、1画素)ずつ広い領域や、外接矩形領域そのものを含む。
【0054】
S1609で、CPU301は、合成後の画像データを圧縮部319で圧縮されRAM302に格納する。
【0055】
S1610では、CPU301は、S1606で更新した2次元コードを、RAM302から読み出した回転角分だけ回転して、更新前の2次元コードと同じ座標に合成部327で合成する。
【0056】
ここで、前述の回転角閾値には、外接矩形領域の辺の長さが更新後の正対した2次元コード領域の辺の長さより所定の長さ(2mm)以下となる回転角が予め設定される。2mm以内であれば更新後の正対した2次元コードを回転させずに合成しても外観がほとんど変化しないという経験的推測によるものである。ただし、2mmという値は主観によるものであるので必ず2mmに固定するものではない。
【0057】
本実施形態では、更新前の2次元コードの一辺の長さを A[mm]とすると(本実施形態で扱う2次元コードは正方形である)、外接矩形領域の一辺の長さは、Asinθ+Acosθ[mm]となる。更新後の2次元コードの一辺の長さをA[mm]とし、所定の長さを Z[mm]とする。回転角閾値(θ)はA(sinθ+cosθ−1)≦Z を満たす値となる。なお、上述のように、CPU301は、2次元コードの一辺の長さを、S1603でRAM302に格納している。また、回転角閾値θは、上述の通り、S1607で計算されることになる。
【0058】
S1611では、CPU301は、新規に正対した2次元コードを作成する。すなわち、CPU301は、操作部12から入力されたユーザ情報や複写日時、複写した画像形成装置の識別情報を符号化し、RAM302に格納する。
【0059】
S1612では、CPU301は、S1611でRAM302に格納した2次元コードを伸張部318で伸張した画像データに合成部327を用いて合成する。合成位置は例えば画像データの右上や左下のような固定の位置でもよいし、操作部12から入力される位置であってもよい。CPU301は、合成後の画像データを圧縮部319で圧縮されRAM302に格納する。
【0060】
S1613では、CPU301は、S1609もしくはS1610、S1612にて2次元コードが合成された画像データをRAM302から読み出す。そして、CPU301は、伸張部316で伸張した画像データをプリンタ画像処理部315、プリンタI/F314を介してプリンタ部14に送り、プリンタ部14で印刷する。
【0061】
次に、S1609の詳細について図を用いて、以下で説明する。
【0062】
まず、図8は、更新後の2次元コード504を、更新前の2次元コード501に中心座標が同じで回転せずに合成した場合の外接矩形領域503を示している。4つの符合505で指定される領域は、2次元コード504で上書きされない2次元コード501の一部である。以下では、この領域505をはみ出し領域と称する。
【0063】
はみ出し領域505は、更新前の2次元コードには含まれていた領域であって、かつ、更新後の2次元コードには含まれていない領域である。そして、図8に示されているように、はみ出し領域は、外接矩形領域503に含まれる。
【0064】
S1609では、CPU301は、4つのはみ出し領域505が、元の原稿の時のまま用紙に印刷されて、印刷画像の見栄えが悪くならないようが制御する。具体的には、CPU301は、はみ出し領域505を含む外接矩形領域の各画素をほかの色に置き換える。これにより、CPU301は、印刷後に、4つのはみ出し領域505が印刷画像の見栄えが悪くするのを防ぐことができる。
【0065】
図9は、第1の実施形態におけるS1609の処理のフローチャートを示す図である。
【0066】
S1701にて、CPU301は、外接矩形領域503内の全画素を他の色の画素(本実施形態では、白画素であるものとして説明を行う)に置換する。この置換により、外設矩形領域503の中に存在していた更新前の2次元コードは削除されることになる。
【0067】
次に、S1702にて、CPU301は、S1606で更新した2次元コード504を、外接矩形領域503の中心座標に、2次元コードの中心座標を合わせて合成部327で合成する。
S1609(S1701、S1702)の処理により、2次元コードの外接矩形領域内の画素の一部もしくは全てを画像データ内の対応する画素とは異なる画素で置換し、2次元コードの外接矩形領域の中心座標に2次元コードを回転させずに合成することができる。
【0068】
図10(503)は、S1702の処理の結果得られる2次元コードの外接矩形領域内を示す図であり、図11は、S1702の処理の結果得られる画像を示す図である。図10と図11に示されているように、本実施形態によれば、更新前の2次元コード501を除去し、更新後の2次元コード504を画像データの見栄えを損なわずに合成することができる。また、本実施形態によれば、更新後の2次元コードを回転せずに合成するので、処理速度を向上することもできる。
【0069】
(第2の実施形態)
第2の実施形態と、第1の実施形態との違いは、2次元コードの合成処理手段にある。
【0070】
第1の実施形態のように、外接矩形領域のうちの2次元コード以外の領域を全て白画素にしてしまうと、外接矩形領域のうちの更新後の2次元コード以外の領域が、外接矩形領域の周囲の領域と大きく色が異なってしまい、美観を損ねる可能性がある。
【0071】
そこで、本実施形態では、外設矩形領域の周囲の領域と、外接矩形領域のうちの更新後の2次元コード以外の領域の色を似たものとするための処理を行う。
【0072】
具体的には、元画像データ(S1602で伸張された画像データ)中の「外接矩形領域のうちの更新前の2次元コード以外の領域」の平均的な色を求め、その平均的な色を、「外接矩形領域のうちの更新後の2次元コード以外の領域」の色として用いる。
【0073】
これにより、更新後の2次元コードを含む画像データ(S1611で得られた画像データ)の色が、更新前の2次元コードを含む画像データの色が全体的に似たものになる。
【0074】
図12は、第2の実施形態におけるS1609のフローチャートを示す図である。
【0075】
S1801にて、CPU301は、外接矩形領域503に含まれる、更新前の正対していない2次元コード以外の領域の各画素の画素値と、更新前の正対していない2次元コード以外の領域の各画素の画素値の平均値とを算出する。
【0076】
次に、S1802にて、CPU301は、外接矩形領域503内の各画素の画素値(例:輝度値)を上記の平均値に置換する。この置換により、外設矩形領域503の中に存在していた更新前の2次元コードは削除される。なお、S1802において、CPU301は、外接矩形領域503内の正対した2次元コード以外の領域における各画素の画素値を所定の値で置換しても良い。
【0077】
次に、S1803にて、CPU301は、S1606で更新した2次元コード504を外接矩形領域503の中心座標に2次元コードの中心座標を合わせて合成部327で合成する。
【0078】
図13は、S1803の処理の結果得られる2次元コードの外接矩形領域内を示す図であり、図14は、S1803の処理の結果得られる画像を示す図である。図13と図14に示されているように、本実施形態によれば、更新前の2次元コード501を除去し、更新後の2次元コード504を画像データの見栄えを損なわずに合成することができる。また、本実施形態によれば、第1の実施形態におけるS1609の合成処理と比べると、区外接矩形領域内で2次元コード504以外の領域の見た目をより元画像データに近くすることができる。また、本実施形態によれば、更新後の2次元コードを回転せずに合成するので、処理速度を向上することもできる。
【0079】
また、上記の実施形態により、再印刷する2次元コードを回転せずに原稿中の2次元コードと同じ座標で用紙に印刷した場合に、原稿中の2次元コードの一部が用紙に印刷されてしまい見栄えが低下するという問題を解決することができる。
【0080】
(第3の実施形態)
第3の実施形態と、第1および第2の実施形態との違いは、2次元コードの合成処理手段にある。
【0081】
第2の実施形態では、「外接矩形領域のうちの更新前の2次元コード以外の領域」の平均的な色(平均輝度値)を求め、その平均的な色を、「外接矩形領域のうちの更新後の2次元コード以外の領域」の色として用いる。一方、本実施形態では、外接矩形領域全体に注目するのではなくて、はみ出し領域にだけ注目して処理を行う。具体的には、はみ出し領域の色を、元の画像データ(S1602で伸張された画像データ)中のはみ出し領域に近い領域の色と似たものとするための処理を行う。
【0082】
具体的には、元の画像データ(S1602で伸張された画像データ)中の「外接矩形領域」中の「はみ出し領域に対応する領域」だけの平均的な色を求め、その平均的な色を、「はみ出し領域」の色として用いる。
【0083】
これにより、更新後の2次元コードを含む画像データ(S1611で得られた画像データ)の色が、更新前の2次元コードを含む画像データの色が一層全体的に似たものになる。
【0084】
図15は、第3の実施形態におけるS1609の処理のフローチャートを示す図である。
【0085】
S1901にて、CPU301は、はみ出し領域504に接しており、かつ、更新前の2次元コード領域外にある全画素の画素値(例:輝度値)の平均値を算出する。ここで、CPU301は、2次元コード501およびはみ出し領域504の領域をそれぞれの切り出しシンボルの座標および回転角から算出する。そして、CPU301は、はみ出し領域を更新前の2次元コード領域内501で更新後の2次元コード領域504で上書きされない領域として算出する。
【0086】
次に、S1902にて、CPU301は、はみ出し領域504内の全画素の画素値を、S1901で算出された平均値に置換する。この置換により、外設矩形領域503の中に存在していた更新前の2次元コードは削除されることになる。
【0087】
上記のようにして、S1902では、外接矩形領域に含まれるはみ出し領域(更新前の2次元コード領域のうち、更新後の2次元コードが合成されない領域)に対して、はみ出し領域の近傍画素を合成する。
【0088】
次に、S1903にて、CPU301は、S1606で更新した2次元コード504を外接矩形領域503の中心座標に2次元コードの中心座標を合わせて合成部327で合成する。
【0089】
図16は、S1903の処理の結果得られる2次元コードの外接矩形領域内を示す図であり、図17は、S1903の処理の結果得られる画像を示す図である。図16と図17に示されているように、更新前の2次元コード501を除去し、更新後の2次元コード504を画像データの見栄えを損なわずに合成することができる。また、本実施形態によれば、第1および第2の実施形態におけるS1609の合成処理と比べると、はみ出し領域の画素のみ置換しているので、区外接矩形領域内で2次元コード504以外の領域の見た目をさらに元画像データに近くすることができる。また、本実施形態によれば、更新後の2次元コードを回転せずに合成するので、処理速度を向上することもできる。
【0090】
なお、本発明では、複数の2次元コードを区別するために、「第1の2次元コード」、「第2の2次元コード」と呼んでも良い。
【0091】
第1〜3の実施形態において、画像形成装置10は、CPU301,ROM303,RAM302,HDD304を有する。そして、例えば、CPU301は、HDD304に格納されたプログラムをRAM302に読み出して実行することにより、第1〜3の実施形態の処理を実現するものである。
【0092】
(上記以外の実施形態)
本発明の目的は、上記実施形態で示した処理の手順を実現するプログラムコードを記憶した記憶媒体から、コンピュータが、そのプログラムコードを読出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになる。そのため、このプログラムコードやプログラムコードを記憶した記憶媒体も本発明を構成することができる。
【0093】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
【図面の簡単な説明】
【0094】
【図1】本発明の実施形態に係るシステムの一例を示すブロック図である。
【図2】画像形成装置の外観を示す図である。
【図3】画像形成装置のコントローラユニットを示すブロック図である。
【図4】2次元コードに関わる処理のフローチャートである。
【図5】2次元コードを含む画像を示す図である。
【図6】図5の画像に含まれる2次元コードを拡大したものを示す図である。
【図7】2次元コードの外接矩形領域を示す図である。
【図8】2次元コードのはみ出し領域を示す図である。
【図9】第1の実施形態におけるS1609の処理のフローチャートである。
【図10】第1の実施形態におけるS1702の処理の結果得られる2次元コードの外接矩形領域内を示す図である。
【図11】第1の実施形態におけるS1702の処理の結果得られる画像を示す図である。
【図12】第2の実施形態におけるS1609の処理のフローチャートである。
【図13】第2の実施形態におけるS1803の処理の結果得られる2次元コードの外接矩形領域内を示す図である。
【図14】第2の実施形態におけるS1803の処理の結果得られる画像を示す図である。
【図15】第3の実施形態におけるS1609の処理のフローチャートである。
【図16】第3の実施形態におけるS1903の処理の結果得られる2次元コードの外接矩形領域内を示す図である。
【図17】第3の実施形態におけるS1903の処理の結果得られる画像を示す図である。
【符号の説明】
【0095】
10 画像形成装置
11 コントローラユニット
12 操作部
13 スキャナ部
14 プリンタ部
【技術分野】
【0001】
本発明は、2次元コードを取り扱うことができる画像形成装置、画像形成方法、プログラムおよび記憶媒体に関する。
【背景技術】
【0002】
従来、特定の情報をQRコード(登録商標)に代表される2次元コードに符号化して用紙に印刷する画像形成装置がある。そのような画像形成装置においては、2次元コードが印刷されている原稿を画像形成装置のスキャナで読み取り、2次元コードを復号化して情報を抽出することができる。
【0003】
さらに、抽出して得られた情報を変更して再び2次元コード化して用紙に再印刷することができる。再印刷する際の印刷位置に関して、従来技術では、原稿中の2次元コードと同じ位置(座標、角度)に印刷することが知られている。
【0004】
例えば、スキャナで読取る原稿中の画像が図5のような画像であり、その画像中の2次元コード501が回転している場合には、その画像を、従来技術を用いて、複写する場合には、複写物上でもやはり図5のような画像が得られる。この場合、複写物上でも、図5に示されているように、2次元コード501が回転したままである。
【0005】
例えば、特許文献1の技術では、原稿中の2次元コードの検知時に、2次元コードの回転角を記憶装置に格納する。そして、再印刷する際に、2次元コードを、2次元コードの検知時に記憶装置に格納された回転角度で回転させて、原稿中の2次元コードと同じ座標に印刷することができる。2次元コードを回転させて再印刷すると、再印刷する2次元コードを原稿中の2次元コードに重ねることができるので2次元コードが印刷された用紙の見栄えがよくなるという効果がある。
【0006】
また、従来の画像形成装置は、コピー機能やネットワーク印刷機能、FAX送信機能のような複数の機能を有しており、かつ、それらの機能を平行処理することができる。そして、各機能でビットマップ画像の回転処理をソフトウェアもしくはハードウェアで行うことができる。
【0007】
【特許文献1】特開2006−203667号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかしながら、再印刷する2次元コードを回転させると、次のような問題がある。すなわち、回転処理を行う場合、2次元コードを印刷する処理時間が増加する。
【0009】
本発明は、上記課題を解決するためになされたものであり、2次元コードを再印刷する処理において、処理時間を低減し、印刷画像を見栄えよくすることができる画像形成装置、画像形成方法、プログラム及び記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記課題を解決するために、本発明に係る画像形成装置は、正対していない2次元コードに接する外接矩形領域の座標を算出する算出手段と、算出手段で算出された外接矩形領域の座標により指定される外接矩形領域内に、正対していない2次元コードの代わりに、正対した2次元コードを配置する配置手段とを備えたことを特徴とする。
【発明の効果】
【0011】
本発明によれば、2次元コードを再印刷する処理において、処理時間の低減し、印刷画像を見栄えよくすることができる。
【発明を実施するための最良の形態】
【0012】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【0013】
(第1の実施形態)
図1は、本発明の実施形態に係るシステムの一例を示すブロック図である。図1のシステムでは、ホストコンピュータ(以下、PCと称する)40及び3台の画像形成装置10、20、30がLAN50に接続されている。
【0014】
本発明の実施形態に係るシステムにおいては、LAN50へのPCや画像形成装置の接続台数は、図1に示されている数に限られることはない。また、本実施形態では、接続方法としてLANを用いているが、これに限られることはない。例えば、本実施形態において、接続方法として、WAN(公衆回線)のような任意のネットワーク、USBのようなシリアル伝送方式、セントロニクスやSCSIのようなパラレル伝送方式を用いても良い。
【0015】
PC40は、パーソナルコンピュータの機能を有している。PC40は、LAN50やWANを介してFTPやSMBプロトコルを用いファイルを送受信したり電子メールを送受信したりすることができる。また、PC40から画像形成装置10、20、30に対して、プリンタドライバを介した印刷命令を行うことができる。
【0016】
画像形成装置10と画像形成装置20は、同じ構成を有する装置である。画像形成装置30は、印刷機能のみの画像形成装置であり、画像形成装置10や20が有するスキャナ部を有していない。以下では、説明の簡単のために、画像形成装置10、20のうちの画像形成装置10に注目して、その構成を詳細に説明する。
【0017】
画像形成装置10は、画像入力デバイスであるスキャナ部13、画像出力デバイスであるプリンタ部14、画像形成装置10全体の動作制御を司るコントローラユニット11、ユーザインターフェース(UI)である操作部12を有する。
【0018】
画像形成装置20は、画像入力デバイスであるスキャナ部23、画像出力デバイスであるプリンタ部24、画像形成装置20全体の動作制御を司るコントローラユニット21、ユーザインターフェース(UI)である操作部22を有する。
【0019】
画像形成装置30は、画像出力デバイスであるプリンタ部33、画像形成装置30全体の動作制御を司るコントローラユニット31、ユーザインターフェース(UI)である操作部32を有する。
【0020】
図2は、画像形成装置10の外観を示す図である。スキャナ部13は、原稿上の画像を露光走査して得られた反射光をCCDに入力することで画像の情報を電気信号に変換する。スキャナ部13は、さらに電気信号をR,G,B各色からなる輝度信号に変換し、輝度信号を画像データとしてコントローラユニット11に対して出力する。
【0021】
なお、原稿は原稿フィーダ201のトレイ202にセットされる。ユーザが操作部12から読み取り開始を指示すると、コントローラユニット11からスキャナ部13に原稿読み取り指示が与えられる。スキャナ部13は、コントローラユニット11から指示を受けると、原稿フィーダ201のトレイ202から原稿を1枚ずつフィードして、原稿の読み取り動作を行う。なお、原稿の読み取り方法は、原稿フィーダ201による自動送り方式ではなく、原稿を不図示のガラス面上に載置し露光部を移動させることで原稿の走査を行う方法であってもよい。
【0022】
プリンタ部14は、コントローラユニット11から受取った画像データを用紙上に形成する画像形成デバイスである。なお、本実施形態において、画像形成方式は感光体ドラムや感光体ベルトを用いた電子写真方式となっているが、本発明はこれに限られることはない。例えば、微少ノズルアレイからインクを吐出して用紙上に印刷するインクジェット方式を適用できる。また、プリンタ部14には、異なる用紙サイズ又は異なる用紙向きを選択可能とする複数の用紙カセット203、204、205が設けられている。排紙トレイ206には後処理を行わない印刷後の用紙が排出される。後処理部207は、後処理を行う印刷後の用紙が排出される。後処理として、排出された用紙に対してステイプル止めやパンチ穴開け、裁断を行う。
【0023】
図3は、画像形成装置10のコントローラユニット11をより詳細に説明するためのブロック図である。
【0024】
コントローラユニット11は、スキャナ部13やプリンタ部14と電気的に接続されており、一方ではLAN50やWAN331を介してPC40のような外部の装置と接続されている。これにより、コントローラユニット11への画像データやデバイス情報の入出力が可能となっている。
【0025】
CPU301は、ROM303に格納された制御プログラムに基づいて接続中のデバイスとのアクセスを統括的に制御すると共に、コントローラユニット11の内部で行われる各種処理についても統括的に制御する。
【0026】
RAM302は、CPU301が動作するためのシステムワークメモリであり、かつ画像データを一時的に格納するためのメモリでもある。RAM302は、格納された内容を電源off後も保持しておくSRAM及び電源off後には格納された内容が消去されてしまうDRAMにより構成されている。ROM303には装置のブートプログラムが格納されている。HDD304は、ハードディスクドライブであり、システムソフトウェアや画像データを格納することができる。
【0027】
操作部I/F305は、システムバス310と操作部12とを接続するためのインターフェース部である。操作部I/F305は、操作部12に表示するための画像データをシステムバス310から受取り操作部12に出力すると共に、操作部12から入力された情報をシステムバス310へと出力する。
【0028】
ネットワークI/F306は、LAN50及びシステムバス310に接続し、情報の入出力を行う。モデム307は、WAN331及びシステムバス310に接続しており、情報の入出力を行う。2値画像回転部308は、送信前の画像データの方向を変換する。2値多値圧縮・伸張部309は、送信前の画像データの解像度を所定の解像度や相手能力に合わせた解像度に変換する。なお、圧縮及び伸張にあたってはJBIG、MMR、MR、MHのような方式が用いられる。画像バス330は、画像データをやり取りするための伝送路であり、PCIバス又はIEEE1394で構成されている。
【0029】
スキャナ画像処理部312は、スキャナ部13からスキャナI/F311を介して受取った画像データに対して、補正、加工、及び編集を行う。なお、スキャナ画像処理部312は、受取った画像データがカラー原稿か白黒原稿か、文字原稿か写真原稿かを判定する。そして、スキャナ画像処理部312は、判定結果を画像データに付随させる。こうした付随情報を属性データと称する。
【0030】
圧縮部313は、画像データを受取り、画像データを圧縮する。伸張部316は、画像データを伸張した後にラスタ展開してプリンタ画像処理部315に送る。
【0031】
プリンタ画像処理部315は、伸張部316から送られた画像データを受取り、この画像データに付随させられている属性データを参照しながら画像データに画像処理を施す。画像処理後の画像データは、プリンタI/F314を介してプリンタ部14に出力される。
【0032】
画像変換部317は、画像データに対して所定の変換処理を施す。画像処理部317は、以下に示すような処理部318〜327により構成される。
【0033】
伸張部318は、受取った画像データを伸張する。圧縮部319は、受取った画像データを圧縮する。回転部320は、受取った画像データを回転する。変倍部321は、受取った画像データに対し解像度変換処理(例えば600dpiから200dpi)を行う。色空間変換部322は、受取った画像データの色空間を変換する。色空間変換部322は、マトリクス又はテーブルを用いて公知の下地飛ばし処理を行ったり、公知のLOG変換処理(RGB→CMY)を行ったり、公知の出力色補正処理(CMY→CMYK)を行ったりすることができる。2値多値変換部323は、受取った2階調の画像データを256階調の画像データに変換する。逆に、多値2値変換部324は、受取った256階調の画像データを誤差拡散処理のような手法により2階調の画像データに変換する。
【0034】
合成部327は、受取った2つの画像データを合成し1枚の画像データを生成する。なお、2つの画像データを合成する際には、合成対象の画素同士が持つ輝度値の平均値を合成輝度値とする方法や、輝度レベルで明るい方の画素の輝度値を合成後の画素の輝度値とする方法が適用される。また、暗い方を合成後の画素とする方法の利用も可能である。さらに合成対象の画素同士の論理和演算、論理積演算、排他的論理和演算で合成後の輝度値を決定する方法も適用可能である。これらの合成方法はいずれも周知の手法である。間引き部326は受取った画像データの画素を間引くことで解像度変換を行い、1/2,1/4,1/8の画像データを生成する。移動部325は、受取った画像データに余白部分をつけたり余白部分を削除したりする。
【0035】
RIP328は、PC40から送信されたPDLコードデータを元に生成された中間データを受取り、ビットマップデータ(多値)を生成する。
【0036】
図4は、本実施形態における2次元コードに関わる処理のフローチャートである。本実施形態において、図5に示すような画像データ500中の2次元コード501が用いられているとして説明する。2次元コードは、文字や数字のような情報を図形パターンとして符号化したものである。
【0037】
まず、S1601にて、CPU301は、スキャナ部からスキャナI/F311を介して読み取った原稿の画像データを圧縮部313で圧縮してRAM302に格納する。
【0038】
次に、S1602にて、CPU301は、伸張部318で伸張した画像データ内に2次元コードが有るか否かを判定することにより、2次元コードを検知する。本実施形態で用いる2次元コードの検出方法は公知のものを利用可能である。すなわち、CPU301は、画像データを走査して図6(図5の2次元コード501のみを拡大)中の3つの切り出しシンボル502を特定することで検知できる。切り出しシンボル502は、黒い領域と白い領域の比がどの方向から走査しても1(黒):1(白):3(黒):1(白):1(黒)となっている。
【0039】
S1602で、2次元コードが有ると判定された場合は、S1603に処理が進む。S1602で、2次元コードが無いと判定された場合は、S1611に処理が進む。
【0040】
S1603では、CPU301は、3つの切り出しシンボルの位置から2次元コードの領域(図8の領域801)を算出して、2次元コードの位置をRAM302に格納する。ここで、2次元コードの領域(図8の領域801)には、切出しパターンと情報が入った本体の部分と、その周囲の余白部分とが含まれている。
【0041】
また、S1603で、CPU301は、2次元コードの回転角を算出してその回転角をRAM302に格納する。ここで、前述の回転角は、S1602で得た画像データの向き(即ち、S1601によって読み取られた原稿のスキャン走査方向)に対して、検知した(即ち、更新前の)2次元コードが時計回りに何度回転しているかを意味するものである。さらに、S1603で、CPU301は、2次元コードの縦横の長さを算出してRAM302に格納する。なお、縦横の長さとは、2次元コードにおける各辺の長さのことである。
【0042】
次に、S1604にて、CPU301は、2次元コードを復号化する。
【0043】
次に、S1605で、CPU301は、S1604で2次元コードを復号化して得られた情報をRAM302に格納する。なお、2次元コードを復号化して得られた情報には、例えば、2次元コードを含む原稿を作成したユーザの情報と、2次元コードを含む原稿の作成日時(複写日時)と、2次元コードを含む原稿を作成した画像形成装置の識別情報とが含まれている。
【0044】
次に、S1606で、CPU301は、S1605でRAM302に格納した情報を用いて、2次元コードに符号化してRAM302に格納する。即ち、CPU301は、S1605でRAM302に格納した情報を用いて、新しい正対した2次元コードを作成してRAM302に格納する。これにより、CPU301は、S1605でRAM302に格納した情報を更新して、2次元コードに符号化し、RAM302に格納する。
【0045】
ここで、正対とは、S1602で得た画像データの向き(即ち、S1601によって読み取られた原稿のスキャン走査方向(主走査方向又は副走査方向))に対して、図6に示されている2次元コードの中線601が平行に位置するという意味である。
【0046】
なお、S1606で、CPU301が作成した、正対した2次元コードを、更新後の2次元コードと称する。また、S1606の処理のように、S1601で検出された2次元コードの代わりとなる新しい正対した2次元コードを作成する処理のことを、2次元コードの更新と称する。
【0047】
なお、S1606で、CPU301は、RAM302に格納した情報をそのまま符号化せず、一部の情報を削除したり、新たな情報を付加したり、変更したりした上で符号化しても良い。
【0048】
例えば、変更する情報の例として次のようなものがある。更新前の2次元コード内のユーザ情報(原稿を作成したユーザの情報、又はユーザを一意に特定する情報)を、操作部12から入力されたユーザ情報へ変更する。更新前の2次元コード内の原稿作成日時を複写日時に変更する。更新前の2次元コード内の画像形成装置の識別情報(原稿を作成した画像形成装置の識別情報)を、複写する画像形成装置の識別情報に変更する。
【0049】
また、本画像形成装置の解像度が低いが故に正対した2次元コードに符号化できる情報の量が少ない場合には、一部の情報が削除されることになる。この場合、優先順位の低い情報(例:原稿作成日時)から順に情報が削除されることになる。
【0050】
また、本画像形成装置内で追加すべく設定されている情報(例えば、画像形成装置を管理する管理者ユーザの情報)がある場合には、そうした情報が付加されることになる。
【0051】
次に、S1607にて、CPU301は、更新前の2次元コードの回転角をRAM302から読み出す。また、CPU301は、後述の回転角閾値(θ)を計算する。そして、CPU301は、2次元コードの回転角が回転角閾値より大きいかどうかを判定する。2次元コードの回転角が、回転角閾値以下の場合はS1608に進み、2次元コードの回転角が、回転角閾値より大きい場合はS1610に進む。
【0052】
S1608にて、CPU301は、画像データから図7に示すような正対していない2次元コードに接する外接矩形領域503の座標を算出し、座標をRAM302に格納する。ここで、例えば、外接矩形領域503の座標を、外接矩形領域503の4点505〜508の座標として算出することができる。
【0053】
次に、S1609にて、CPU301は、外接矩形領域503に対してS1606で更新した2次元コードを合成部327で、印刷画像に合成する。S1609の合成の詳細については後述する。S1609は、S1608で算出された外接矩形領域の座標により指定される外接矩形領域内に、正対していない2次元コードの代わりに、正対した2次元コードを配置するための処理である。なお、S1609と同様の処理により、S1608で算出された外接矩形領域の座標に基づく領域内に、正対していない2次元コードの代わりに、正対した2次元コードを配置することもできる。ここで、「外接矩形領域の座標に基づく領域」は、外接矩形領域よりも縦および横共に所定画素(例えば、1画素)ずつ広い領域や、外接矩形領域そのものを含む。
【0054】
S1609で、CPU301は、合成後の画像データを圧縮部319で圧縮されRAM302に格納する。
【0055】
S1610では、CPU301は、S1606で更新した2次元コードを、RAM302から読み出した回転角分だけ回転して、更新前の2次元コードと同じ座標に合成部327で合成する。
【0056】
ここで、前述の回転角閾値には、外接矩形領域の辺の長さが更新後の正対した2次元コード領域の辺の長さより所定の長さ(2mm)以下となる回転角が予め設定される。2mm以内であれば更新後の正対した2次元コードを回転させずに合成しても外観がほとんど変化しないという経験的推測によるものである。ただし、2mmという値は主観によるものであるので必ず2mmに固定するものではない。
【0057】
本実施形態では、更新前の2次元コードの一辺の長さを A[mm]とすると(本実施形態で扱う2次元コードは正方形である)、外接矩形領域の一辺の長さは、Asinθ+Acosθ[mm]となる。更新後の2次元コードの一辺の長さをA[mm]とし、所定の長さを Z[mm]とする。回転角閾値(θ)はA(sinθ+cosθ−1)≦Z を満たす値となる。なお、上述のように、CPU301は、2次元コードの一辺の長さを、S1603でRAM302に格納している。また、回転角閾値θは、上述の通り、S1607で計算されることになる。
【0058】
S1611では、CPU301は、新規に正対した2次元コードを作成する。すなわち、CPU301は、操作部12から入力されたユーザ情報や複写日時、複写した画像形成装置の識別情報を符号化し、RAM302に格納する。
【0059】
S1612では、CPU301は、S1611でRAM302に格納した2次元コードを伸張部318で伸張した画像データに合成部327を用いて合成する。合成位置は例えば画像データの右上や左下のような固定の位置でもよいし、操作部12から入力される位置であってもよい。CPU301は、合成後の画像データを圧縮部319で圧縮されRAM302に格納する。
【0060】
S1613では、CPU301は、S1609もしくはS1610、S1612にて2次元コードが合成された画像データをRAM302から読み出す。そして、CPU301は、伸張部316で伸張した画像データをプリンタ画像処理部315、プリンタI/F314を介してプリンタ部14に送り、プリンタ部14で印刷する。
【0061】
次に、S1609の詳細について図を用いて、以下で説明する。
【0062】
まず、図8は、更新後の2次元コード504を、更新前の2次元コード501に中心座標が同じで回転せずに合成した場合の外接矩形領域503を示している。4つの符合505で指定される領域は、2次元コード504で上書きされない2次元コード501の一部である。以下では、この領域505をはみ出し領域と称する。
【0063】
はみ出し領域505は、更新前の2次元コードには含まれていた領域であって、かつ、更新後の2次元コードには含まれていない領域である。そして、図8に示されているように、はみ出し領域は、外接矩形領域503に含まれる。
【0064】
S1609では、CPU301は、4つのはみ出し領域505が、元の原稿の時のまま用紙に印刷されて、印刷画像の見栄えが悪くならないようが制御する。具体的には、CPU301は、はみ出し領域505を含む外接矩形領域の各画素をほかの色に置き換える。これにより、CPU301は、印刷後に、4つのはみ出し領域505が印刷画像の見栄えが悪くするのを防ぐことができる。
【0065】
図9は、第1の実施形態におけるS1609の処理のフローチャートを示す図である。
【0066】
S1701にて、CPU301は、外接矩形領域503内の全画素を他の色の画素(本実施形態では、白画素であるものとして説明を行う)に置換する。この置換により、外設矩形領域503の中に存在していた更新前の2次元コードは削除されることになる。
【0067】
次に、S1702にて、CPU301は、S1606で更新した2次元コード504を、外接矩形領域503の中心座標に、2次元コードの中心座標を合わせて合成部327で合成する。
S1609(S1701、S1702)の処理により、2次元コードの外接矩形領域内の画素の一部もしくは全てを画像データ内の対応する画素とは異なる画素で置換し、2次元コードの外接矩形領域の中心座標に2次元コードを回転させずに合成することができる。
【0068】
図10(503)は、S1702の処理の結果得られる2次元コードの外接矩形領域内を示す図であり、図11は、S1702の処理の結果得られる画像を示す図である。図10と図11に示されているように、本実施形態によれば、更新前の2次元コード501を除去し、更新後の2次元コード504を画像データの見栄えを損なわずに合成することができる。また、本実施形態によれば、更新後の2次元コードを回転せずに合成するので、処理速度を向上することもできる。
【0069】
(第2の実施形態)
第2の実施形態と、第1の実施形態との違いは、2次元コードの合成処理手段にある。
【0070】
第1の実施形態のように、外接矩形領域のうちの2次元コード以外の領域を全て白画素にしてしまうと、外接矩形領域のうちの更新後の2次元コード以外の領域が、外接矩形領域の周囲の領域と大きく色が異なってしまい、美観を損ねる可能性がある。
【0071】
そこで、本実施形態では、外設矩形領域の周囲の領域と、外接矩形領域のうちの更新後の2次元コード以外の領域の色を似たものとするための処理を行う。
【0072】
具体的には、元画像データ(S1602で伸張された画像データ)中の「外接矩形領域のうちの更新前の2次元コード以外の領域」の平均的な色を求め、その平均的な色を、「外接矩形領域のうちの更新後の2次元コード以外の領域」の色として用いる。
【0073】
これにより、更新後の2次元コードを含む画像データ(S1611で得られた画像データ)の色が、更新前の2次元コードを含む画像データの色が全体的に似たものになる。
【0074】
図12は、第2の実施形態におけるS1609のフローチャートを示す図である。
【0075】
S1801にて、CPU301は、外接矩形領域503に含まれる、更新前の正対していない2次元コード以外の領域の各画素の画素値と、更新前の正対していない2次元コード以外の領域の各画素の画素値の平均値とを算出する。
【0076】
次に、S1802にて、CPU301は、外接矩形領域503内の各画素の画素値(例:輝度値)を上記の平均値に置換する。この置換により、外設矩形領域503の中に存在していた更新前の2次元コードは削除される。なお、S1802において、CPU301は、外接矩形領域503内の正対した2次元コード以外の領域における各画素の画素値を所定の値で置換しても良い。
【0077】
次に、S1803にて、CPU301は、S1606で更新した2次元コード504を外接矩形領域503の中心座標に2次元コードの中心座標を合わせて合成部327で合成する。
【0078】
図13は、S1803の処理の結果得られる2次元コードの外接矩形領域内を示す図であり、図14は、S1803の処理の結果得られる画像を示す図である。図13と図14に示されているように、本実施形態によれば、更新前の2次元コード501を除去し、更新後の2次元コード504を画像データの見栄えを損なわずに合成することができる。また、本実施形態によれば、第1の実施形態におけるS1609の合成処理と比べると、区外接矩形領域内で2次元コード504以外の領域の見た目をより元画像データに近くすることができる。また、本実施形態によれば、更新後の2次元コードを回転せずに合成するので、処理速度を向上することもできる。
【0079】
また、上記の実施形態により、再印刷する2次元コードを回転せずに原稿中の2次元コードと同じ座標で用紙に印刷した場合に、原稿中の2次元コードの一部が用紙に印刷されてしまい見栄えが低下するという問題を解決することができる。
【0080】
(第3の実施形態)
第3の実施形態と、第1および第2の実施形態との違いは、2次元コードの合成処理手段にある。
【0081】
第2の実施形態では、「外接矩形領域のうちの更新前の2次元コード以外の領域」の平均的な色(平均輝度値)を求め、その平均的な色を、「外接矩形領域のうちの更新後の2次元コード以外の領域」の色として用いる。一方、本実施形態では、外接矩形領域全体に注目するのではなくて、はみ出し領域にだけ注目して処理を行う。具体的には、はみ出し領域の色を、元の画像データ(S1602で伸張された画像データ)中のはみ出し領域に近い領域の色と似たものとするための処理を行う。
【0082】
具体的には、元の画像データ(S1602で伸張された画像データ)中の「外接矩形領域」中の「はみ出し領域に対応する領域」だけの平均的な色を求め、その平均的な色を、「はみ出し領域」の色として用いる。
【0083】
これにより、更新後の2次元コードを含む画像データ(S1611で得られた画像データ)の色が、更新前の2次元コードを含む画像データの色が一層全体的に似たものになる。
【0084】
図15は、第3の実施形態におけるS1609の処理のフローチャートを示す図である。
【0085】
S1901にて、CPU301は、はみ出し領域504に接しており、かつ、更新前の2次元コード領域外にある全画素の画素値(例:輝度値)の平均値を算出する。ここで、CPU301は、2次元コード501およびはみ出し領域504の領域をそれぞれの切り出しシンボルの座標および回転角から算出する。そして、CPU301は、はみ出し領域を更新前の2次元コード領域内501で更新後の2次元コード領域504で上書きされない領域として算出する。
【0086】
次に、S1902にて、CPU301は、はみ出し領域504内の全画素の画素値を、S1901で算出された平均値に置換する。この置換により、外設矩形領域503の中に存在していた更新前の2次元コードは削除されることになる。
【0087】
上記のようにして、S1902では、外接矩形領域に含まれるはみ出し領域(更新前の2次元コード領域のうち、更新後の2次元コードが合成されない領域)に対して、はみ出し領域の近傍画素を合成する。
【0088】
次に、S1903にて、CPU301は、S1606で更新した2次元コード504を外接矩形領域503の中心座標に2次元コードの中心座標を合わせて合成部327で合成する。
【0089】
図16は、S1903の処理の結果得られる2次元コードの外接矩形領域内を示す図であり、図17は、S1903の処理の結果得られる画像を示す図である。図16と図17に示されているように、更新前の2次元コード501を除去し、更新後の2次元コード504を画像データの見栄えを損なわずに合成することができる。また、本実施形態によれば、第1および第2の実施形態におけるS1609の合成処理と比べると、はみ出し領域の画素のみ置換しているので、区外接矩形領域内で2次元コード504以外の領域の見た目をさらに元画像データに近くすることができる。また、本実施形態によれば、更新後の2次元コードを回転せずに合成するので、処理速度を向上することもできる。
【0090】
なお、本発明では、複数の2次元コードを区別するために、「第1の2次元コード」、「第2の2次元コード」と呼んでも良い。
【0091】
第1〜3の実施形態において、画像形成装置10は、CPU301,ROM303,RAM302,HDD304を有する。そして、例えば、CPU301は、HDD304に格納されたプログラムをRAM302に読み出して実行することにより、第1〜3の実施形態の処理を実現するものである。
【0092】
(上記以外の実施形態)
本発明の目的は、上記実施形態で示した処理の手順を実現するプログラムコードを記憶した記憶媒体から、コンピュータが、そのプログラムコードを読出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになる。そのため、このプログラムコードやプログラムコードを記憶した記憶媒体も本発明を構成することができる。
【0093】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
【図面の簡単な説明】
【0094】
【図1】本発明の実施形態に係るシステムの一例を示すブロック図である。
【図2】画像形成装置の外観を示す図である。
【図3】画像形成装置のコントローラユニットを示すブロック図である。
【図4】2次元コードに関わる処理のフローチャートである。
【図5】2次元コードを含む画像を示す図である。
【図6】図5の画像に含まれる2次元コードを拡大したものを示す図である。
【図7】2次元コードの外接矩形領域を示す図である。
【図8】2次元コードのはみ出し領域を示す図である。
【図9】第1の実施形態におけるS1609の処理のフローチャートである。
【図10】第1の実施形態におけるS1702の処理の結果得られる2次元コードの外接矩形領域内を示す図である。
【図11】第1の実施形態におけるS1702の処理の結果得られる画像を示す図である。
【図12】第2の実施形態におけるS1609の処理のフローチャートである。
【図13】第2の実施形態におけるS1803の処理の結果得られる2次元コードの外接矩形領域内を示す図である。
【図14】第2の実施形態におけるS1803の処理の結果得られる画像を示す図である。
【図15】第3の実施形態におけるS1609の処理のフローチャートである。
【図16】第3の実施形態におけるS1903の処理の結果得られる2次元コードの外接矩形領域内を示す図である。
【図17】第3の実施形態におけるS1903の処理の結果得られる画像を示す図である。
【符号の説明】
【0095】
10 画像形成装置
11 コントローラユニット
12 操作部
13 スキャナ部
14 プリンタ部
【特許請求の範囲】
【請求項1】
正対していない2次元コードに接する外接矩形領域の座標を算出する算出手段と、
前記算出手段で算出された外接矩形領域の座標により指定される外接矩形領域内に、前記正対していない2次元コードの代わりに、正対した2次元コードを配置する配置手段とを備えたことを特徴とする画像形成装置。
【請求項2】
正対していない2次元コードに接する外接矩形領域の座標を算出する算出手段と、
前記算出手段で算出された外接矩形領域の座標に基づく領域内に、前記正対していない2次元コードの代わりに、正対した2次元コードを配置する配置手段とを備えたことを特徴とする画像形成装置。
【請求項3】
前記配置手段は、前記外接矩形領域内の前記正対した2次元コード以外の領域における各画素の画素値を決めるにあたって、外接矩形領域内の前記正対していない2次元コード以外の領域における各画素の画素値を算出することを特徴とする請求項1に記載の画像形成装置。
【請求項4】
画像データ内の第1の2次元コードを検知する検知手段と、
前記第1の2次元コードを復号化する復号化手段と、
前記復号化手段で得られた情報を用いて第2の2次元コードに符号化する符号化手段と、
前記第2の2次元コードを印刷画像に合成する合成手段とを備え、
前記合成手段は、前記第1の2次元コードの外接矩形領域内の画素の一部もしくは全てを前記画像データ内の対応する画素とは異なる画素で置換し、前記第1の2次元コードの外接矩形領域の中心座標に第2の2次元コードを回転させずに合成することを特徴とする画像形成装置。
【請求項5】
前記合成手段は、前記第1の2次元コードの外接矩形領域を白画素に置換し、前記外接矩形領域の中心座標に前記第2の2次元コードを合成することを特徴とする請求項4に記載の画像形成装置。
【請求項6】
前記合成手段は、前記第1の2次元コードの外接矩形領域内の画素の画素値を、前記画素値を平均した値で置換し、前記外接矩形領域の中心座標に前記第2の2次元コードを合成することを特徴とする請求項4に記載の画像形成装置。
【請求項7】
前記合成手段は、前記第1の2次元コードの外接矩形領域の中心座標に前記第2の2次元コードを合成し、前記外接矩形領域に含まれる前記第1の2次元コードの領域のうち前記第2の2次元コードが合成されない領域に対して、前記第1の2次元コードの前記合成されない領域の近傍画素を合成することを特徴とする請求項4に記載の画像形成装置。
【請求項8】
前記合成手段は、前記第1の2次元コードの回転角が予め設定した閾値より大きいかどうかを判定し、前記第1の2次元コードの回転角が予め設定した回転角閾値より大きい場合に、前記第2の2次元コードを前記回転角だけ回転して前記外接矩形領域の中心座標に合成し、前記回転角閾値以下の場合に、前記第2の2次元コードを回転せずに前記外接矩形領域の中心座標に合成することを特徴とする請求項4に記載の画像形成装置。
【請求項9】
正対していない2次元コードに接する外接矩形領域の座標を算出する算出ステップと、
前記算出ステップで算出された外接矩形領域の座標により指定される外接矩形領域内に、前記正対していない2次元コードの代わりに、正対した2次元コードを配置する配置ステップとを備えたことを特徴とする画像形成方法。
【請求項10】
正対していない2次元コードに接する外接矩形領域の座標を算出する算出ステップと、
前記算出ステップで算出された外接矩形領域の座標に基づく領域内に、前記正対していない2次元コードの代わりに、正対した2次元コードを配置する配置ステップとを備えたことを特徴とする画像形成方法。
【請求項11】
前記配置ステップは、前記外接矩形領域内の前記正対した2次元コード以外の領域における各画素の画素値を決めるにあたって、外接矩形領域内の前記正対していない2次元コード以外の領域における各画素の画素値を算出することを特徴とする請求項9に記載の画像形成方法。
【請求項12】
画像データ内の第1の2次元コードを検知する検知ステップと、
前記第1の2次元コードを復号化する復号化ステップと、
前記復号化ステップで得られた情報を用いて第2の2次元コードに符号化する符号化ステップと、
前記第2の2次元コードを印刷画像に合成する合成ステップとを備え、
前記合成ステップは、前記第1の2次元コードの外接矩形領域内の画素の一部もしくは全てを前記画像データ内の対応する画素とは異なる画素で置換し、前記第1の2次元コードの外接矩形領域の中心座標に第2の2次元コードを回転させずに合成することを特徴とする画像形成方法。
【請求項13】
前記合成ステップは、前記第1の2次元コードの外接矩形領域を白画素に置換し、前記外接矩形領域の中心座標に前記第2の2次元コードを合成することを特徴とする請求項12に記載の画像形成方法。
【請求項14】
前記合成ステップは、前記第1の2次元コードの外接矩形領域内の画素の画素値を、前記画素値を平均した値で置換し、前記外接矩形領域の中心座標に前記第2の2次元コードを合成することを特徴とする請求項12に記載の画像形成方法。
【請求項15】
前記合成ステップは、前記第1の2次元コードの外接矩形領域の中心座標に前記第2の2次元コードを合成し、前記外接矩形領域に含まれる前記第1の2次元コードの領域のうち前記第2の2次元コードが合成されない領域に対して、前記第1の2次元コードの前記合成されない領域の近傍画素を合成することを特徴とする請求項12に記載の画像形成方法。
【請求項16】
前記合成ステップは、前記第1の2次元コードの回転角が予め設定した閾値より大きいかどうかを判定し、前記第1の2次元コードの回転角が予め設定した回転角閾値より大きい場合に、前記第2の2次元コードを前記回転角だけ回転して前記外接矩形領域の中心座標に合成し、前記回転角閾値以下の場合に、前記第2の2次元コードを回転せずに前記外接矩形領域の中心座標に合成することを特徴とする請求項12に記載の画像形成方法。
【請求項17】
請求項9乃至16のいずれかに記載の画像形成方法をコンピュータに実行させるためのプログラム。
【請求項18】
請求項17に記載のプログラムを記憶したコンピュータで読み取り可能な記憶媒体。
【請求項1】
正対していない2次元コードに接する外接矩形領域の座標を算出する算出手段と、
前記算出手段で算出された外接矩形領域の座標により指定される外接矩形領域内に、前記正対していない2次元コードの代わりに、正対した2次元コードを配置する配置手段とを備えたことを特徴とする画像形成装置。
【請求項2】
正対していない2次元コードに接する外接矩形領域の座標を算出する算出手段と、
前記算出手段で算出された外接矩形領域の座標に基づく領域内に、前記正対していない2次元コードの代わりに、正対した2次元コードを配置する配置手段とを備えたことを特徴とする画像形成装置。
【請求項3】
前記配置手段は、前記外接矩形領域内の前記正対した2次元コード以外の領域における各画素の画素値を決めるにあたって、外接矩形領域内の前記正対していない2次元コード以外の領域における各画素の画素値を算出することを特徴とする請求項1に記載の画像形成装置。
【請求項4】
画像データ内の第1の2次元コードを検知する検知手段と、
前記第1の2次元コードを復号化する復号化手段と、
前記復号化手段で得られた情報を用いて第2の2次元コードに符号化する符号化手段と、
前記第2の2次元コードを印刷画像に合成する合成手段とを備え、
前記合成手段は、前記第1の2次元コードの外接矩形領域内の画素の一部もしくは全てを前記画像データ内の対応する画素とは異なる画素で置換し、前記第1の2次元コードの外接矩形領域の中心座標に第2の2次元コードを回転させずに合成することを特徴とする画像形成装置。
【請求項5】
前記合成手段は、前記第1の2次元コードの外接矩形領域を白画素に置換し、前記外接矩形領域の中心座標に前記第2の2次元コードを合成することを特徴とする請求項4に記載の画像形成装置。
【請求項6】
前記合成手段は、前記第1の2次元コードの外接矩形領域内の画素の画素値を、前記画素値を平均した値で置換し、前記外接矩形領域の中心座標に前記第2の2次元コードを合成することを特徴とする請求項4に記載の画像形成装置。
【請求項7】
前記合成手段は、前記第1の2次元コードの外接矩形領域の中心座標に前記第2の2次元コードを合成し、前記外接矩形領域に含まれる前記第1の2次元コードの領域のうち前記第2の2次元コードが合成されない領域に対して、前記第1の2次元コードの前記合成されない領域の近傍画素を合成することを特徴とする請求項4に記載の画像形成装置。
【請求項8】
前記合成手段は、前記第1の2次元コードの回転角が予め設定した閾値より大きいかどうかを判定し、前記第1の2次元コードの回転角が予め設定した回転角閾値より大きい場合に、前記第2の2次元コードを前記回転角だけ回転して前記外接矩形領域の中心座標に合成し、前記回転角閾値以下の場合に、前記第2の2次元コードを回転せずに前記外接矩形領域の中心座標に合成することを特徴とする請求項4に記載の画像形成装置。
【請求項9】
正対していない2次元コードに接する外接矩形領域の座標を算出する算出ステップと、
前記算出ステップで算出された外接矩形領域の座標により指定される外接矩形領域内に、前記正対していない2次元コードの代わりに、正対した2次元コードを配置する配置ステップとを備えたことを特徴とする画像形成方法。
【請求項10】
正対していない2次元コードに接する外接矩形領域の座標を算出する算出ステップと、
前記算出ステップで算出された外接矩形領域の座標に基づく領域内に、前記正対していない2次元コードの代わりに、正対した2次元コードを配置する配置ステップとを備えたことを特徴とする画像形成方法。
【請求項11】
前記配置ステップは、前記外接矩形領域内の前記正対した2次元コード以外の領域における各画素の画素値を決めるにあたって、外接矩形領域内の前記正対していない2次元コード以外の領域における各画素の画素値を算出することを特徴とする請求項9に記載の画像形成方法。
【請求項12】
画像データ内の第1の2次元コードを検知する検知ステップと、
前記第1の2次元コードを復号化する復号化ステップと、
前記復号化ステップで得られた情報を用いて第2の2次元コードに符号化する符号化ステップと、
前記第2の2次元コードを印刷画像に合成する合成ステップとを備え、
前記合成ステップは、前記第1の2次元コードの外接矩形領域内の画素の一部もしくは全てを前記画像データ内の対応する画素とは異なる画素で置換し、前記第1の2次元コードの外接矩形領域の中心座標に第2の2次元コードを回転させずに合成することを特徴とする画像形成方法。
【請求項13】
前記合成ステップは、前記第1の2次元コードの外接矩形領域を白画素に置換し、前記外接矩形領域の中心座標に前記第2の2次元コードを合成することを特徴とする請求項12に記載の画像形成方法。
【請求項14】
前記合成ステップは、前記第1の2次元コードの外接矩形領域内の画素の画素値を、前記画素値を平均した値で置換し、前記外接矩形領域の中心座標に前記第2の2次元コードを合成することを特徴とする請求項12に記載の画像形成方法。
【請求項15】
前記合成ステップは、前記第1の2次元コードの外接矩形領域の中心座標に前記第2の2次元コードを合成し、前記外接矩形領域に含まれる前記第1の2次元コードの領域のうち前記第2の2次元コードが合成されない領域に対して、前記第1の2次元コードの前記合成されない領域の近傍画素を合成することを特徴とする請求項12に記載の画像形成方法。
【請求項16】
前記合成ステップは、前記第1の2次元コードの回転角が予め設定した閾値より大きいかどうかを判定し、前記第1の2次元コードの回転角が予め設定した回転角閾値より大きい場合に、前記第2の2次元コードを前記回転角だけ回転して前記外接矩形領域の中心座標に合成し、前記回転角閾値以下の場合に、前記第2の2次元コードを回転せずに前記外接矩形領域の中心座標に合成することを特徴とする請求項12に記載の画像形成方法。
【請求項17】
請求項9乃至16のいずれかに記載の画像形成方法をコンピュータに実行させるためのプログラム。
【請求項18】
請求項17に記載のプログラムを記憶したコンピュータで読み取り可能な記憶媒体。
【図1】
【図2】
【図3】
【図4】
【図6】
【図9】
【図10】
【図12】
【図15】
【図5】
【図7】
【図8】
【図11】
【図13】
【図14】
【図16】
【図17】
【図2】
【図3】
【図4】
【図6】
【図9】
【図10】
【図12】
【図15】
【図5】
【図7】
【図8】
【図11】
【図13】
【図14】
【図16】
【図17】
【公開番号】特開2010−28309(P2010−28309A)
【公開日】平成22年2月4日(2010.2.4)
【国際特許分類】
【出願番号】特願2008−185112(P2008−185112)
【出願日】平成20年7月16日(2008.7.16)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成22年2月4日(2010.2.4)
【国際特許分類】
【出願日】平成20年7月16日(2008.7.16)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]