画像処理装置、及びプログラム
【課題】符号列の付加による画像の劣化を抑制する。
【解決手段】配置部20は、付加対象ビット列の各ビット値を、文書画像中の、該ビット値のビット位置に対応する領域に配置する。制限部22は、第1ビット列と、第2ビット列と、が予め定められた位置関係で付加対象ビット列中に存在し、且つ、復号可能条件が満足される場合に、付加対象ビット列中に存在する第2ビット列の各ビット値の配置を制限する。
【解決手段】配置部20は、付加対象ビット列の各ビット値を、文書画像中の、該ビット値のビット位置に対応する領域に配置する。制限部22は、第1ビット列と、第2ビット列と、が予め定められた位置関係で付加対象ビット列中に存在し、且つ、復号可能条件が満足される場合に、付加対象ビット列中に存在する第2ビット列の各ビット値の配置を制限する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、及びプログラムに関する。
【背景技術】
【0002】
情報を画像として付加する技術がある。例えば、符号列の符号の画像を、処理対象画像に付加しておき、処理対象画像に付加された画像から、上記符号列を復号して抽出する技術が知られている。
【0003】
なお、下記特許文献1には、情報を圧縮してから符号化する技術が開示されている。
【特許文献1】特開2007−49588号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
本発明の目的は、符号列の付加による画像の劣化を抑制する画像処理装置、及びプログラムを提供することである。
【課題を解決するための手段】
【0005】
上記課題を解決するために、請求項1の画像処理装置は、処理対象符号列の符号の画像を、処理対象画像中の、該符号の位置に対応する領域に配置する配置手段と、第1符号列と、該第1符号列に対応する第2符号列と、が予め定められた位置関係で前記処理対象符号列中に存在し、且つ、前記処理対象符号列中に存在する第1符号列の符号の画像が前記配置手段によって配置された後の画像から該符号が符号復号装置により復号可能であるか否かに関する条件が満足される場合に、前記処理対象符号列中に存在する第2符号列の符号の画像の前記配置手段による配置を制限する制限手段と、を含むことを特徴とする。
【0006】
上記課題を解決するために、請求項2の画像処理装置は、請求項1の画像処理装置において、符号付き画像中の各領域の画像を解析する画像解析手段と、処理対象符号列の各符号を、該符号の位置に対応する前記領域の画像の解析結果に基づいて復号する第1復号手段と、前記第1復号手段が復号できなかった符号が存在し、且つ、前記第1復号手段により復号された符号列中に前記第1符号列が存在している場合において、前記第1復号手段が復号できなかった符号と、前記第1復号手段により復号された符号列中に存在する前記第1符号列と、が予め定められた位置関係を有している場合に、前記第1復号手段が復号できなかった符号を、前記第2符号列の符号に基づいて復号する第2復号手段と、を含むことを特徴とする。
【0007】
また、請求項3のプログラムは、処理対象符号列の符号の画像を、処理対象画像中の、該符号の位置に対応する領域に配置する配置手段、第1符号列と、該第1符号列に対応する第2符号列と、が予め定められた位置関係で前記処理対象符号列中に存在し、且つ、前記処理対象符号列中に存在する第1符号列の符号の画像が前記配置手段によって配置された後の画像から該符号が符号復号装置により復号可能であるか否かに関する条件が満足される場合に、前記処理対象符号列中に存在する第2符号列の符号の画像の前記配置手段による配置を制限する制限手段、としてコンピュータを機能させることを特徴とする。
【0008】
また、請求項4のプログラムは、処理対象画像中の各領域の画像を解析する画像解析手段、処理対象符号列の各符号を、該符号の位置に対応する前記領域の画像の解析結果に基づいて復号する第1復号手段、前記第1復号手段が復号できなかった符号が存在し、且つ、前記第1復号手段により復号された符号列中に第1符号列が存在している場合において、前記第1復号手段が復号できなかった符号と、前記第1復号手段により復号された符号列中に存在する第1符号列と、が予め定められた位置関係を有している場合に、前記第1復号手段が復号できなかった符号を、前記第1符号列に対応する第2符号列の符号に基づいて復号する第2復号手段、としてコンピュータを機能させることを特徴とする。
【0009】
なお、上記プログラムは、インターネットなどの通信ネットワークを介して提供されてもよいし、フレキシブルディスク、CD−ROM、DVD−ROMなどのコンピュータ読み取り可能な各種情報記録媒体に格納されて提供されてもよい。
【0010】
また、上記プログラムは、コンピュータ読み取り可能な情報記録媒体に記憶されてもよい。情報記録媒体としては、例えば、磁気テープ、フレキシブルディスク、ハードディスク、CD−ROM、MO、MD、DVD−ROM、ICカードなどを用いることができる。
【発明の効果】
【0011】
請求項1,3の発明では、符号列の付加による画像の劣化が抑制される。
【0012】
請求項2の発明では、画像に付加された符号列の復号精度が維持されつつ、符号列の付加による画像の劣化が抑制される。
【0013】
請求項4の発明では、画像に付加された符号列の復号精度が維持される。
【発明を実施するための最良の形態】
【0014】
[1.ハードウェア構成]
本発明の実施形態について図面を参照しながら説明する。図1は、本発明の実施形態に係る画像処理装置2のハードウェア構成を示す図である。図1に示すように、画像処理装置2は、制御部4と、主記憶部6と、補助記憶部8と、操作部10と、画像形成部12と、画像読取部14と、を含む公知のコンピュータシステムである。各部は、バス16によりデータ授受可能に接続される。また、画像処理装置2は、図示しないディスプレイや通信インタフェース等も含む。
【0015】
制御部4は例えばマイクロプロセッサである。制御部4は、主記憶部6に記憶されるプログラムに従って情報処理を実行する。
【0016】
主記憶部6は、例えばRAMである。主記憶部6には上記プログラムが格納される。また主記憶部6には情報処理の過程で必要となる各種データが格納される。
【0017】
本実施形態の場合、主記憶部6には、図2に示すテーブルが格納される。図2は、このテーブルの一例を示す。同図に示すように、第1ビット列フィールドと、第2ビット列フィールドと、を含む。第1ビット列フィールドには、第1ビット列(第1符号列)が格納され、第2ビット列フィールドには、第2ビット列(第2符号列)が格納される。第1ビット列と、第2ビット列と、は関連づけられている。また、第1ビット列及び第2ビット列は、“0”又は“1”のビット値の列である。
【0018】
補助記憶部8は例えばハードディスクである。補助記憶部8には各種データが格納される。例えば、文書や、ユーザに関するユーザ情報(社員番号など)などが格納される。
【0019】
操作部10は、ユーザが操作入力を行うためのユーザインタフェースである。操作部10は、例えばキーボードやマウスである。
【0020】
画像形成部12は、例えばプリンタである。画像形成部12は、ユーザの指示を受けて、補助記憶部8に記憶される文書を紙媒体に印刷する。
【0021】
画像読取部14は、例えばスキャナである。画像読取部14は、文書をスキャンして該文書の画像(ビットマップデータ)を取得する。
【0022】
この画像処理装置2では、ユーザの印刷指示操作を受け付けると、補助記憶部8に記憶される文書の画像(文書画像)が媒体に印刷される。この画像処理装置2では、媒体に文書画像が印刷される際にユーザ情報がビット列(図3(a)参照)に変換され、各ビット値を表すビット画像も媒体に印刷される。
【0023】
図4は、文書画像が印刷された媒体の一例の示す図である。同図に示すように、媒体には、文書画像に加え、ビット値“1”に対応するビット画像「/」や、ビット値“0”に対応するビット画像「\」も、印刷されている。
【0024】
以下、ビット画像による文書画像の劣化を抑制するための技術について説明する。
【0025】
[2.画像処理装置で実行される処理1]
図5は、画像処理装置2で実行される処理の一例を示す図である。この処理は、制御部4が、主記憶部6に記憶される上記プログラムに従って動作することにより実行される。本実施形態の場合、この処理は、上記印刷指示操作が行われた場合に実行される。
【0026】
制御部4は、印刷指示操作を行ったユーザのユーザ情報を符号化し、該ユーザ情報を表すビット列(図3(a)参照)を生成する(S101)。以下、S101のステップで生成されるビット列を「付加対象ビット列」と呼ぶ。
【0027】
なお、図3(a)において各ビット値の上に付された番号(以下、「ビット番号」と記載する)は、そのビット値のビット位置を表している。以下、ビット番号が「i」のビット位置のことを、ビット位置Piと記載する。例えば、P1は、ビット番号が「1」のビット位置のことを表す。また、ビット位置Piのビット値のことを、ビット値Biと記載する。
【0028】
また、制御部4は、印刷対象となる文書の文書画像(例えば、ビットマップデータ)を生成する(S102)。文書画像が、「処理対象画像」に相当する。
【0029】
そして、制御部4は、図6に示すようにして、付加対象ビット列の各ビット値Biを表すビット画像を文書画像に配置する(S103)。以下、「ビット値Biを表すビット画像を文書画像に配置すること」を、「ビット値Biを文書画像に配置する」と記載する。各ビットBiを文書画像に配置することにより、制御部4は、「符号付き文書画像」を生成する。
【0030】
なお、画像処理装置2では、各ビット値Biの配置される文書画像の領域(以下、「ブロック領域」と記載する)が予め設定されている。図7は、各ブロック領域を示す図である。点線で囲まれたマスの一つ一つがブロック領域を示す。マスの中の番号は、各ブロック領域の番号(以下、「領域番号」と記載する)を示す。以下、領域番号が「i」のブロック領域のことを、ブロック領域Aiと記載する。各ビット値Biは、ブロック領域Aiに配置されることとなる。
【0031】
図6について説明する。まず、制御部4は、ビット位置PiにフラグXが設定されているか否かを判定する(S201)。最初は、ビット位置P1にフラグXが設定されているか否かを判定する。
【0032】
ビット位置PiにフラグXが設定されていない場合(S201のN)、制御部4(配置手段)は、ビット値Biをブロック領域Aiに配置する(S202)。
【0033】
そして、制御部4は、ビット値Biが、ビット値Beであるか否かを判定する(S203)。すなわち、ビット値Biが、付加対象ビット列の最後列のビット値であるか否かを判定する。「e」は、付加対象ビット列の最後列のビット値の番号を示す。
【0034】
ビット値Biが、ビット値Beである場合(S203のY)、処理が終了される。すなわち、制御部4は、S104のステップに進む。
【0035】
一方、ビット値Biが、ビット値Beでない場合(S203のN)、制御部4は、ビット値Biからビット値Biを含むN(例えば、N=3)個前のビット値Bi−N+1からビット値Biまでのビット列が第1ビット列に等しいか否かを判定する(S204)。
【0036】
ビット値Bi−N+1からビット値Biまでのビット列がいずれかの第1ビット列に等しい場合(S204のY)、復号可能条件が満足されるか否かを判定する(S205)。そして、復号可能条件が満足される場合(S205のY)、制御部4は、S206のステップに進む。以下、ビット値Bi−N+1からビット値Biまでのビット列に等しい第1ビット列を、「注目第1ビット列」と記載する。
【0037】
ここで、復号可能条件とは、注目第1ビット列に含まれるいずれのビット値Bxもブロック領域Axに配置された後の画像(以下、符号付きブロック画像)からビット値Bxを復号できる可能性が高い場合に満足する条件である。復号可能条件が満足されるか否かの判定は、以下のようにして行う。
【0038】
例えば、ブロック領域Axに含まれる文字画像と、ビット値Bxのビット画像と、が重なっている度合いを示す重なり度Lを算出する。例えば、「ビット値Bxのビット画像の二値画像における有意画素の数N1」を、「ブロック領域Axの二値画像における有意画素の数(文字部分の画素の数)N2と、N1と、の和(=N1+N2)」と、「符号付きブロック画像の二値画像における有意画素の数N3」と、の差N4(=N1+N2−N3)で除算した値(N1/N4)を重なり度Lとして算出する。そして、重なり度Lが小さい場合、すなわち、重なり度Lが予め定められた値TH(例えば、1.5)以下である場合、制御部4は、S205のステップに進む。この場合、重なり度LがTH以下である場合に、復号可能条件が満足されることとなる。
【0039】
また、例えば、制御部4は、符号付きブロック画像を実際に解析し、符号付きブロック画像からビット画像の検出を試みる。そして、符号付きブロック画像からビット値Bxのビット画像が実際に検出できた場合に、制御部4は、S205のステップに進む。この場合、符号付きブロック画像からビット値Bxのビット画像が検出できた場合に、復号可能条件が満足されることとなる。なお、制御部4は、符号付きブロック画像を解析する前に、符号付きブロック画像に対して予め定められた画像処理を行っておいてもよい。例えば、符号付きブロック画像に対してぼかし処理を行っておくようにしてもよい。また、例えば、符号付きブロック画像をフィルタリングして、符号付きブロック画像にノイズを追加しておくようにしてもよい。
【0040】
S206のステップでは、制御部4は、付加対象ビット列を参照し、注目第1ビット列の位置と所定関係を有する位置に、注目第1ビット列に関連づけられた第2ビット列(以下、「注目第2ビット列」と記載する)が存在しているか否かを判定する(S206)。注目第1ビット列の位置と所定関係を有する位置に注目第2ビット列が存在している場合(S206のY)、制御部4は、S207のステップに進む。
【0041】
本実施形態の場合、制御部4は、注目第1ビット列よりも後ろに注目第2ビット列が存在するか否かを判定する。より正確には、制御部4は、注目第1ビット列の最後列のビット位置(この場合、ビット位置Pi)から所定距離離れた位置に注目第2ビット列が存在するか否かを判定する。
【0042】
具体的には、制御部4は、ビット値Bi+1からビット値Bi+Mまでのビット列中に注目第2ビット列が存在するか否かを判定する。ここで、Mは、予め定められた1以上の整数(例えば、「3」)である。そして、ビット値Bi+1からビット値Bi+Mまでのビット列中に注目第2ビット列が存在する場合(S206のY)、制御部4は、S207のステップに進む。例えば、図3(b)によれば、「M=N=3」である場合、S204のステップで第1ビット列「101」がビット値B2からビット値B4までのビット列に等しいと判定され、その後、S206のステップでは、ビット値B5からビット値B8までのビット列中に注目第2ビット列「10」が存在しているか否かが判定されることとなる。図3(b)では、ビット値B5からビット値B8までのビット列「100・・・」中に注目第2ビット列「10」が存在している。そのため、制御部4は、S207に進むこととなる。なお、ビット値Bi+1からビット値Bi+Mまでのビット列中に注目第2ビット列が複数存在する場合、最初に注目第2ビット列を検出した時点でS207に進む。
【0043】
S207のステップでは、制御部4は、注目第2ビット列が位置するビット位置にフラグXを設定する。そして、制御部4は、S208のステップで、「i」を「1」だけインクリメントし、S201以降のステップを繰り返す。
【0044】
なお、ビット位置PiにフラグXが設定されている場合(S201のY)、ビット値Bi−N+1からビット値Biまでのビット列中にいずれの第1ビット列も存在しない場合(S204のN)、復号可能条件が満足されない場合(S205のN)、及び、ビット値Bi+1からビット値Bi+Mまでのビット列中に注目第2ビット列が存在していない場合も(S206のN)、制御部4は、S208のステップに進み、S201以降のステップを繰り返す。図6の処理によれば、例えば、図3(b)の場合、ビット値B5のビット画像と、ビット値B6のビット画像と、はそれぞれ、領域A5、領域A6に配置されないこととなる。つまり、領域A5と領域A6にはビット画像が配置されないこととなる。
【0045】
こうして、図4に示す符号付き文書画像が生成される。
【0046】
符号付き文書画像を生成すると、制御部4は、符号付き文書画像を出力する(S104)。本実施形態の場合、制御部4は、符号付き文書画像を媒体に印刷する。
【0047】
以上のように、画像処理装置2では、付加対象ビット列中に、いずれかの第1ビット列と、その第1ビット列に関連づけられた第2ビット列と、が所定の位置関係で存在していれば、その第2ビット列のビット値が文書画像に配置されなくなる。そのため、第2ビット列の各ビット値の配置による文書画像の劣化が抑制される。
【0048】
[3.画像処理装置で実行される処理2]
図8は、画像処理装置2で実行される他の処理の一例を示す図である。この処理は、制御部4が、主記憶部6に記憶される上記プログラムに従って動作することにより実行される。本実施形態の場合、この処理は、符号付き文書画像が印刷された媒体の読取指示が行われた場合に実行される。
【0049】
本実施形態の場合、制御部4は、画像読取部14に媒体をスキャンさせた上で、スキャンの結果に基づいて、符号付き文書画像を取得する(S301)。
【0050】
そして、S302〜S305に示す処理を、全ブロック領域について実行する。
【0051】
すなわち、制御部4は、ブロック領域Aiの画像を解析する(S302)。
【0052】
そして、制御部4は、S303〜S305のステップで、S302のステップでの解析結果に基づき、ビット位置Piのビット値Biを復号する。
【0053】
すなわち、制御部4は、S302での解析結果に基づき、ブロック領域Aiにいずれかのビット画像が配置されているか否かを判定する(S303)。言い換えれば、制御部4は、S302の解析結果に基づき、ビット画像の検出を試みる。
【0054】
そして、制御部4は、ブロック領域Aiにいずれかのビット画像が配置されていると判定した場合(S303のY)、すなわち、ビット画像を検出できた場合、ブロック領域Aiに配置されていると判定したビット画像が表すビット値を復号し(S304)、このビット値をビット値Biとして設定する。ブロック領域Aiにいずれかのビット画像が配置されていると判定した場合(S303のY)、制御部4は、S302の解析結果からビット値Biを復号できたということになる。
【0055】
一方、制御部4は、ブロック領域Aiにいずれのビット画像も配置されていないと判定した場合(S303のN)、ビット位置PiにフラグZを設定する(S305)。ブロック領域Aiにいずれのビット画像も配置されていないと判定した場合(S303のN)、結果的に制御部4は、S302の解析結果からはビット値Biが復号できなかったということになる。
【0056】
S302〜S305に示す処理により、図3(c)に示すビット列Xが生成される。なお、図3(c)に示すビット列Xは、ブロック領域A5とA6にビット画像が配置されていない場合のビット列Xを示す。
【0057】
[4.画像処理装置で実行される処理3]
図9は、ビット列Xが生成された場合に画像処理装置2で実行される処理の一例を示す図である。この処理は、制御部4が、主記憶部6に記憶される上記プログラムに従って動作することにより実行される。
【0058】
制御部4は、ビット位置Piが最後列のビット位置PEであるか否かを判定する(S401)。最初は、制御部4は、ビット位置P1がビット位置PEであるか否かを判定する。
【0059】
ビット位置Piがビット位置PEである場合(S401のY)、制御部4は処理を終了する。ビット位置Piがビット位置PEでない場合(S401のN)、制御部4は、S402のステップに進む。
【0060】
S402のステップでは、制御部4は、ビット列Xを参照し、ビット位置Pi以前にいずれかの第1ビット列が存在するか否かを判定する。本実施形態の場合、制御部4は、第1ビット列ごとに、該第1ビット列がビット位置Pi以前に存在するか否かを判定することにより、いずれかの第1ビット列がビット位置Pi以前に存在するか否かを判定する。
【0061】
例えば、ある第1ビット列Yがビット位置Pi以前に存在するか否かを判定する場合、ビット値Bi−N+1からビット値BiまでのNビットのビット列が第1ビット列Yと等しいか否かを判定する。ビット値Bi−N+1からビット値BiまでのNビットのビット列が第1ビット列Yと等しい場合、第1ビット列Yがビット位置Pi以前に存在するということになる。
【0062】
ビット位置Pi以前にいずれの第1ビット列も存在しない場合(S402のN)、制御部4は、「i」を1だけインクリメントして(S406)、S401のステップに戻る。
【0063】
一方、ビット位置Pi以前にいずれかの第1ビット列が存在する場合(S402のY)、制御部4は、ビット位置Pi以前に存在する第1ビット列(以下、注目第1ビット列)と予め定められた位置関係を有するビット位置に、フラグZが設定されているか否かを判定する。本実施形態の場合、制御部4は、ビット位置Pi+1からビット位置Pi+Mまでの各ビット位置についてフラグZが設定されているか否かを判定することにより、ビット位置Pi+1からビット位置Pi+Mまでのビット列のうちからフラグZが連続して設定されているビット列を特定する(S403)。
【0064】
そして、制御部4は、S403のステップで特定されたビット列のビット長が、注目第1ビット列に関連付けて記憶される第2ビット列(以下、注目第2ビット列)のビット長に等しいか否かを判定する(S404)。
【0065】
S403のステップで特定されたビット列のビット長が、注目第2ビット列のビット長と等しくない場合(S404のN)、制御部4は、「i」を1だけインクリメントして(S406)、S401のステップに戻る。
【0066】
一方、S403のステップで特定されたビット列のビット長が、注目第2ビット列のビット長に等しい場合(S404のY)、制御部4は、S403のステップで特定されたビット列の各ビット値を、注目第2ビット列の各ビット値に基づいて復号する(S405)。すなわち、制御部4は、S403のステップで特定されたビット列の各ビット値として、注目第2ビット列の各ビット値を設定する。こうして、制御部4は、付加対象ビット列を復元する。
【0067】
例えば、「i=4」の場合、制御部4は、S402のステップで、ビット位置P4以前に注目第1ビット列「101」が存在していると判定することとなる。また、制御部4は、S403のステップで、ビット位置P5とビット位置P6とを含むビット列を特定することとなる。この場合、S403のステップで特定されたビット列のビット長と、注目第2ビット列「10」のビット長と、は共に「2」であるので、制御部4は、S405のステップで、ビット位置P5とビット位置P6の各々のビット値を、注目第2ビット列の各ビットに基づいて復号することとなる。その結果、図3(c)に示すビット列Xから、図3(a)に示す付加対象ビット列が復元される。
【0068】
なお、S405のステップの後、制御部4は、S406のステップに進む。
【0069】
以上のように、この画像処理装置2では、故意にビット値が文書画像に配置されなくても、そのビット値が復号されることとなる。そのため、付加対象符号列の復号の精度が維持される。
【0070】
[5.機能ブロック1]
図10は、画像処理装置2で実現される機能のうち、注目第2ビット列の配置の制限に関する機能を示す機能ブロック図である。同図に示すように、画像処理装置2では、配置部20と、制限部22と、を含む。制限部22は、第1判定部24と、第2判定部26と、第3判定部28と、を含む。これらの機能は、制御部4が上記プログラムに従って動作することにより実現される。
【0071】
[配置部]
配置部20は、制御部4を主として実現される。配置部20は、付加対象ビット列のビット値Biのビット画像を、文書画像中の、該ビット値Biのビット位置Piに対応するブロック領域Aiに配置する(図6のS202)。
【0072】
[制限部]
制限部22は、制御部4を主として実現される。制限部22は、いずれかの第1ビット列と、該第1ビット列に関連付けられた第2ビット列と、が予め定められた位置関係で付加対象ビット列中に存在し、且つ、上記復号可能条件が満足される場合に、付加対象ビット列中に存在する第2ビット列(注目第2ビット列)の各ビット値のビット画像の配置部20による配置を制限する(図6のS204乃至S207、S201)。
【0073】
[第1判定部]
すなわち、まず、第1判定部24が、付加対象ビット列中にいずれかの第1ビット列が存在するか否かを判定する(図6のS204)。
【0074】
[第2判定部]
付加対象ビット列中にいずれかの第1ビット列が存在すると第1判定部24が判定した場合、第2判定部26が、上記復号可能条件が満足されるか否かを判定する(図6のS205)。
【0075】
[第3判定部]
また、付加対象ビット列中にいずれかの第1ビット列が存在すると第1判定部24が判定した場合、第3判定部28が、付加対象ビット列中に存在すると判定された第1ビット列(以下、注目第1ビット列)に関連付けられた第2ビット列(以下、注目第2ビット列)が、注目第1ビット列の位置と予め定められた関係を有する位置に存在しているか否かを判定する(図6のS206)。
【0076】
そして、上記復号可能条件が満足されると第2判定部26が判定し、注目第2ビット列が注目第1ビット列の位置と予め定められた関係を有する位置に存在していると第3判定部28が判定した場合に、制限部22は、注目第2ビット列の各ビット値のビット画像の配置部20による配置を制限する(図6のS207及びS201)。
【0077】
ところで、以上では、第1判定部24が付加対象ビット列中に存在するいずれかの第1ビット列(すなわち、注目第1ビット列)を先に見つけた後で、第3判定部28が、注目第1ビット列に関連付けられた第2ビット列(すなわち、注目第2ビット列)が、注目第1ビット列の位置と予め定められた関係を有する位置に存在するか否かを判定するようにしている。
【0078】
しかしながら、第3判定部28がいずれかの第2ビット列が付加対象ビット列中に存在するか否かを先に判定するようにしてもよい。こうした上で、いずれかの第2ビット列が付加対象ビット列中に存在すると第3判定部28により判定された場合に、第1判定部24が、付加対象ビット列中に存在すると第3判定部28により判定された第2ビット列(すなわち、注目第2ビット列)に関連付けられた第1ビット列(すなわち、注目第1ビット列)が、注目第2ビット列の位置と予め定められた関係を有する位置に存在するか否かを判定するようにしてもよい。
【0079】
[6.機能ブロック2]
図11は、画像処理装置2で実現される機能のうち、符号つき文書画像からの付加対象ビット列の復号に関する機能を示す機能ブロック図である。同図に示すように、画像処理装置2では、画像解析部30と、第1復号部32と、第2復号部34と、を含む。第2復号部34は、第1判定部36と、第2判定部38と、を含む。これらの機能は、制御部4が上記プログラムに従って動作することにより実現される。
【0080】
[画像解析部]
画像解析部30は、制御部4を主として実現される。画像解析部30は、符号付き文書画像中の各ブロック領域の画像を解析する(図8のS302)。
【0081】
[第1復号部]
第1復号部32は、制御部4を主として実現される。第1復号部32は、付加対象ビット列の各ビット値Biを、該ビット値Biのビット位置Piに対応するブロック領域Aiの画像の解析結果に基づいて復号する。
【0082】
本実施形態の場合、第1復号部32は、あるビット位置Pxのビット値Bxを復号する場合、ブロック領域Axの画像の解析結果に基づき、ブロック領域Aiにいずれかのビット画像が配置されているか否かを判定する(図8のS303)。
【0083】
第1復号部32は、ブロック領域Aiにいずれかのビット画像が配置されていると判定した場合、ブロック領域Aiに配置されているビット画像が表すビット値を、ビット値Bxとして設定する(図8のS304)。こうして、第1復号部32は、ビット位置Pxのビット値Bxを復号する。なお、この場合、第1復号部32は、ビット位置Pxのビット値Bxを復号できたということになる。
【0084】
一方、第1復号部32は、ブロック領域Aiにいずれのビット画像も配置されていないと判定した場合、ビット位置PxにフラグZを設定する(図8のS305)。この場合、第1復号部32は、制御部4は、ブロック領域Axの画像の解析結果から、ビット値Bxが復号できなかったということになる。
【0085】
[第2復号部]
第2復号部34は、制御部4を主として実現される。第2復号部34は、第1復号部32が復号できなかったビット値が存在し、且つ、第1復号部32により復号されたビット列中にいずれかの第1ビット列が存在している場合において、第1復号部32が復号できなかったビット値と、第1復号部32により復号されたビット列中に存在する第1ビット列(すなわち、注目第1ビット列)と、が予め定められた位置関係を有している場合に、第1復号部32が復号できなかったビット値を、注目第1ビット列に関連づけられた第2ビット列(すなわち、注目第2ビット列)の符号に基づいて復号する(図9参照)。
【0086】
[第1判定部]
すなわち、まず、第1判定部36が、第1復号部32により復号されたビット列中に、いずれかの第1ビット列が存在するか否かを判定する(図9のS402)。
【0087】
[第2判定部]
第2判定部38は、第1復号部32により復号されたビット列中にいずれかの第1ビット列が存在すると第1判定部36が判定した場合、第1復号部32により復号されたビット列中に存在する第1ビット列(以下、注目第1ビット列)と予め定められた位置関係を有する位置に、第1復号部32が復号できなかったビット値Bxが存在するか否かを判定する(図9のS403)。
【0088】
そして、注目第1ビット列と予め定められた位置関係を有する位置に第1復号部32が復号できなかったビット値Bxが存在すると第2判定部38が判定した場合、第2復号部34は、注目第1ビット列に関連づけられた第2ビット列(すなわち、注目第2ビット列)のビット値に基づいて、ビット値Bxを復号することとなる(図9のS405)。
【0089】
ところで、以上では、第1判定部36が、第1復号部32により復号されたビット列中に存在する第1ビット列(以下、注目第1ビット列)を先に見つけた後で、第2判定部38が、注目第1ビット列と予め定められた位置関係を有する位置に、第1復号部32が復号できなかったビット値Bxが存在するか否かを判定するようにしている。
【0090】
しかしながら、第2判定部38が、第1復号部32が復号できなかったビット値Bxが存在するか否かを先に判定するようにしてもよい。こうした上で、第1復号部32が復号できなかったビット値Bxが存在すると第2判定部38が判定した場合に、第1判定部36が、第1復号部32により復号されたビット列であって、ビット値Bxと予め定められた位置関係を有するビット列中にいずれかの第1ビット列が存在するか否かを判定するようにしてもよい。この場合、第2復号部34は、第1復号部32により復号されたビット列であって、ビット値Bxと予め定められた位置関係を有するビット列中にいずれかの第1ビット列が存在すると第1判定部36が判定した場合に、該ビット列中に存在する第1ビット列(すなわち、注目第1ビット列)に関連付けられた第2ビット列(すなわち、注目第2ビット列)の各ビット値に基づいて、ビット値Bxを復号することとなる。
【0091】
[7.その他]
なお、本発明は、以上に説明した実施形態に限定されるものではない。
【0092】
例えば、ビット画像は、図4に示す「/」や「\」だけに限らない。例えば、ビット画像は、図12に示すような、ドットコードの画像であってもよい。
【図面の簡単な説明】
【0093】
【図1】本発明の実施形態に係る画像処理装置のハードウェア構成を示す図である。
【図2】テーブルの一例を示す図である。
【図3】ビット列の一例を示す図である。
【図4】符号付き文書画像の一例を示す図である。
【図5】本発明の実施形態に係る画像処理装置で実行される処理を示すフローチャート図である。
【図6】本発明の実施形態に係る画像処理装置で実行される処理を示すフローチャート図である。
【図7】ブロック領域を説明するための図である。
【図8】本発明の実施形態に係る画像処理装置で実行される処理を示すフローチャート図である。
【図9】本発明の実施形態に係る画像処理装置で実行される処理を示すフローチャート図である。
【図10】本発明の実施形態に係る画像処理装置で実現される機能ブロック図である。
【図11】本発明の実施形態に係る画像処理装置で実現される機能ブロック図である。
【図12】ビット画像の一例を示す図である。
【符号の説明】
【0094】
2 画像処理装置、4 制御部、6 主記憶部、8 補助記憶部、10 操作部、12 画像形成部、14 画像読取部、16 バス、20 配置部、22 制限部、24,36 第1判定部、26,38 第2判定部、28 第3判定部、30 画像解析部、32 第1復号部、34 第2復号部。
【技術分野】
【0001】
本発明は、画像処理装置、及びプログラムに関する。
【背景技術】
【0002】
情報を画像として付加する技術がある。例えば、符号列の符号の画像を、処理対象画像に付加しておき、処理対象画像に付加された画像から、上記符号列を復号して抽出する技術が知られている。
【0003】
なお、下記特許文献1には、情報を圧縮してから符号化する技術が開示されている。
【特許文献1】特開2007−49588号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
本発明の目的は、符号列の付加による画像の劣化を抑制する画像処理装置、及びプログラムを提供することである。
【課題を解決するための手段】
【0005】
上記課題を解決するために、請求項1の画像処理装置は、処理対象符号列の符号の画像を、処理対象画像中の、該符号の位置に対応する領域に配置する配置手段と、第1符号列と、該第1符号列に対応する第2符号列と、が予め定められた位置関係で前記処理対象符号列中に存在し、且つ、前記処理対象符号列中に存在する第1符号列の符号の画像が前記配置手段によって配置された後の画像から該符号が符号復号装置により復号可能であるか否かに関する条件が満足される場合に、前記処理対象符号列中に存在する第2符号列の符号の画像の前記配置手段による配置を制限する制限手段と、を含むことを特徴とする。
【0006】
上記課題を解決するために、請求項2の画像処理装置は、請求項1の画像処理装置において、符号付き画像中の各領域の画像を解析する画像解析手段と、処理対象符号列の各符号を、該符号の位置に対応する前記領域の画像の解析結果に基づいて復号する第1復号手段と、前記第1復号手段が復号できなかった符号が存在し、且つ、前記第1復号手段により復号された符号列中に前記第1符号列が存在している場合において、前記第1復号手段が復号できなかった符号と、前記第1復号手段により復号された符号列中に存在する前記第1符号列と、が予め定められた位置関係を有している場合に、前記第1復号手段が復号できなかった符号を、前記第2符号列の符号に基づいて復号する第2復号手段と、を含むことを特徴とする。
【0007】
また、請求項3のプログラムは、処理対象符号列の符号の画像を、処理対象画像中の、該符号の位置に対応する領域に配置する配置手段、第1符号列と、該第1符号列に対応する第2符号列と、が予め定められた位置関係で前記処理対象符号列中に存在し、且つ、前記処理対象符号列中に存在する第1符号列の符号の画像が前記配置手段によって配置された後の画像から該符号が符号復号装置により復号可能であるか否かに関する条件が満足される場合に、前記処理対象符号列中に存在する第2符号列の符号の画像の前記配置手段による配置を制限する制限手段、としてコンピュータを機能させることを特徴とする。
【0008】
また、請求項4のプログラムは、処理対象画像中の各領域の画像を解析する画像解析手段、処理対象符号列の各符号を、該符号の位置に対応する前記領域の画像の解析結果に基づいて復号する第1復号手段、前記第1復号手段が復号できなかった符号が存在し、且つ、前記第1復号手段により復号された符号列中に第1符号列が存在している場合において、前記第1復号手段が復号できなかった符号と、前記第1復号手段により復号された符号列中に存在する第1符号列と、が予め定められた位置関係を有している場合に、前記第1復号手段が復号できなかった符号を、前記第1符号列に対応する第2符号列の符号に基づいて復号する第2復号手段、としてコンピュータを機能させることを特徴とする。
【0009】
なお、上記プログラムは、インターネットなどの通信ネットワークを介して提供されてもよいし、フレキシブルディスク、CD−ROM、DVD−ROMなどのコンピュータ読み取り可能な各種情報記録媒体に格納されて提供されてもよい。
【0010】
また、上記プログラムは、コンピュータ読み取り可能な情報記録媒体に記憶されてもよい。情報記録媒体としては、例えば、磁気テープ、フレキシブルディスク、ハードディスク、CD−ROM、MO、MD、DVD−ROM、ICカードなどを用いることができる。
【発明の効果】
【0011】
請求項1,3の発明では、符号列の付加による画像の劣化が抑制される。
【0012】
請求項2の発明では、画像に付加された符号列の復号精度が維持されつつ、符号列の付加による画像の劣化が抑制される。
【0013】
請求項4の発明では、画像に付加された符号列の復号精度が維持される。
【発明を実施するための最良の形態】
【0014】
[1.ハードウェア構成]
本発明の実施形態について図面を参照しながら説明する。図1は、本発明の実施形態に係る画像処理装置2のハードウェア構成を示す図である。図1に示すように、画像処理装置2は、制御部4と、主記憶部6と、補助記憶部8と、操作部10と、画像形成部12と、画像読取部14と、を含む公知のコンピュータシステムである。各部は、バス16によりデータ授受可能に接続される。また、画像処理装置2は、図示しないディスプレイや通信インタフェース等も含む。
【0015】
制御部4は例えばマイクロプロセッサである。制御部4は、主記憶部6に記憶されるプログラムに従って情報処理を実行する。
【0016】
主記憶部6は、例えばRAMである。主記憶部6には上記プログラムが格納される。また主記憶部6には情報処理の過程で必要となる各種データが格納される。
【0017】
本実施形態の場合、主記憶部6には、図2に示すテーブルが格納される。図2は、このテーブルの一例を示す。同図に示すように、第1ビット列フィールドと、第2ビット列フィールドと、を含む。第1ビット列フィールドには、第1ビット列(第1符号列)が格納され、第2ビット列フィールドには、第2ビット列(第2符号列)が格納される。第1ビット列と、第2ビット列と、は関連づけられている。また、第1ビット列及び第2ビット列は、“0”又は“1”のビット値の列である。
【0018】
補助記憶部8は例えばハードディスクである。補助記憶部8には各種データが格納される。例えば、文書や、ユーザに関するユーザ情報(社員番号など)などが格納される。
【0019】
操作部10は、ユーザが操作入力を行うためのユーザインタフェースである。操作部10は、例えばキーボードやマウスである。
【0020】
画像形成部12は、例えばプリンタである。画像形成部12は、ユーザの指示を受けて、補助記憶部8に記憶される文書を紙媒体に印刷する。
【0021】
画像読取部14は、例えばスキャナである。画像読取部14は、文書をスキャンして該文書の画像(ビットマップデータ)を取得する。
【0022】
この画像処理装置2では、ユーザの印刷指示操作を受け付けると、補助記憶部8に記憶される文書の画像(文書画像)が媒体に印刷される。この画像処理装置2では、媒体に文書画像が印刷される際にユーザ情報がビット列(図3(a)参照)に変換され、各ビット値を表すビット画像も媒体に印刷される。
【0023】
図4は、文書画像が印刷された媒体の一例の示す図である。同図に示すように、媒体には、文書画像に加え、ビット値“1”に対応するビット画像「/」や、ビット値“0”に対応するビット画像「\」も、印刷されている。
【0024】
以下、ビット画像による文書画像の劣化を抑制するための技術について説明する。
【0025】
[2.画像処理装置で実行される処理1]
図5は、画像処理装置2で実行される処理の一例を示す図である。この処理は、制御部4が、主記憶部6に記憶される上記プログラムに従って動作することにより実行される。本実施形態の場合、この処理は、上記印刷指示操作が行われた場合に実行される。
【0026】
制御部4は、印刷指示操作を行ったユーザのユーザ情報を符号化し、該ユーザ情報を表すビット列(図3(a)参照)を生成する(S101)。以下、S101のステップで生成されるビット列を「付加対象ビット列」と呼ぶ。
【0027】
なお、図3(a)において各ビット値の上に付された番号(以下、「ビット番号」と記載する)は、そのビット値のビット位置を表している。以下、ビット番号が「i」のビット位置のことを、ビット位置Piと記載する。例えば、P1は、ビット番号が「1」のビット位置のことを表す。また、ビット位置Piのビット値のことを、ビット値Biと記載する。
【0028】
また、制御部4は、印刷対象となる文書の文書画像(例えば、ビットマップデータ)を生成する(S102)。文書画像が、「処理対象画像」に相当する。
【0029】
そして、制御部4は、図6に示すようにして、付加対象ビット列の各ビット値Biを表すビット画像を文書画像に配置する(S103)。以下、「ビット値Biを表すビット画像を文書画像に配置すること」を、「ビット値Biを文書画像に配置する」と記載する。各ビットBiを文書画像に配置することにより、制御部4は、「符号付き文書画像」を生成する。
【0030】
なお、画像処理装置2では、各ビット値Biの配置される文書画像の領域(以下、「ブロック領域」と記載する)が予め設定されている。図7は、各ブロック領域を示す図である。点線で囲まれたマスの一つ一つがブロック領域を示す。マスの中の番号は、各ブロック領域の番号(以下、「領域番号」と記載する)を示す。以下、領域番号が「i」のブロック領域のことを、ブロック領域Aiと記載する。各ビット値Biは、ブロック領域Aiに配置されることとなる。
【0031】
図6について説明する。まず、制御部4は、ビット位置PiにフラグXが設定されているか否かを判定する(S201)。最初は、ビット位置P1にフラグXが設定されているか否かを判定する。
【0032】
ビット位置PiにフラグXが設定されていない場合(S201のN)、制御部4(配置手段)は、ビット値Biをブロック領域Aiに配置する(S202)。
【0033】
そして、制御部4は、ビット値Biが、ビット値Beであるか否かを判定する(S203)。すなわち、ビット値Biが、付加対象ビット列の最後列のビット値であるか否かを判定する。「e」は、付加対象ビット列の最後列のビット値の番号を示す。
【0034】
ビット値Biが、ビット値Beである場合(S203のY)、処理が終了される。すなわち、制御部4は、S104のステップに進む。
【0035】
一方、ビット値Biが、ビット値Beでない場合(S203のN)、制御部4は、ビット値Biからビット値Biを含むN(例えば、N=3)個前のビット値Bi−N+1からビット値Biまでのビット列が第1ビット列に等しいか否かを判定する(S204)。
【0036】
ビット値Bi−N+1からビット値Biまでのビット列がいずれかの第1ビット列に等しい場合(S204のY)、復号可能条件が満足されるか否かを判定する(S205)。そして、復号可能条件が満足される場合(S205のY)、制御部4は、S206のステップに進む。以下、ビット値Bi−N+1からビット値Biまでのビット列に等しい第1ビット列を、「注目第1ビット列」と記載する。
【0037】
ここで、復号可能条件とは、注目第1ビット列に含まれるいずれのビット値Bxもブロック領域Axに配置された後の画像(以下、符号付きブロック画像)からビット値Bxを復号できる可能性が高い場合に満足する条件である。復号可能条件が満足されるか否かの判定は、以下のようにして行う。
【0038】
例えば、ブロック領域Axに含まれる文字画像と、ビット値Bxのビット画像と、が重なっている度合いを示す重なり度Lを算出する。例えば、「ビット値Bxのビット画像の二値画像における有意画素の数N1」を、「ブロック領域Axの二値画像における有意画素の数(文字部分の画素の数)N2と、N1と、の和(=N1+N2)」と、「符号付きブロック画像の二値画像における有意画素の数N3」と、の差N4(=N1+N2−N3)で除算した値(N1/N4)を重なり度Lとして算出する。そして、重なり度Lが小さい場合、すなわち、重なり度Lが予め定められた値TH(例えば、1.5)以下である場合、制御部4は、S205のステップに進む。この場合、重なり度LがTH以下である場合に、復号可能条件が満足されることとなる。
【0039】
また、例えば、制御部4は、符号付きブロック画像を実際に解析し、符号付きブロック画像からビット画像の検出を試みる。そして、符号付きブロック画像からビット値Bxのビット画像が実際に検出できた場合に、制御部4は、S205のステップに進む。この場合、符号付きブロック画像からビット値Bxのビット画像が検出できた場合に、復号可能条件が満足されることとなる。なお、制御部4は、符号付きブロック画像を解析する前に、符号付きブロック画像に対して予め定められた画像処理を行っておいてもよい。例えば、符号付きブロック画像に対してぼかし処理を行っておくようにしてもよい。また、例えば、符号付きブロック画像をフィルタリングして、符号付きブロック画像にノイズを追加しておくようにしてもよい。
【0040】
S206のステップでは、制御部4は、付加対象ビット列を参照し、注目第1ビット列の位置と所定関係を有する位置に、注目第1ビット列に関連づけられた第2ビット列(以下、「注目第2ビット列」と記載する)が存在しているか否かを判定する(S206)。注目第1ビット列の位置と所定関係を有する位置に注目第2ビット列が存在している場合(S206のY)、制御部4は、S207のステップに進む。
【0041】
本実施形態の場合、制御部4は、注目第1ビット列よりも後ろに注目第2ビット列が存在するか否かを判定する。より正確には、制御部4は、注目第1ビット列の最後列のビット位置(この場合、ビット位置Pi)から所定距離離れた位置に注目第2ビット列が存在するか否かを判定する。
【0042】
具体的には、制御部4は、ビット値Bi+1からビット値Bi+Mまでのビット列中に注目第2ビット列が存在するか否かを判定する。ここで、Mは、予め定められた1以上の整数(例えば、「3」)である。そして、ビット値Bi+1からビット値Bi+Mまでのビット列中に注目第2ビット列が存在する場合(S206のY)、制御部4は、S207のステップに進む。例えば、図3(b)によれば、「M=N=3」である場合、S204のステップで第1ビット列「101」がビット値B2からビット値B4までのビット列に等しいと判定され、その後、S206のステップでは、ビット値B5からビット値B8までのビット列中に注目第2ビット列「10」が存在しているか否かが判定されることとなる。図3(b)では、ビット値B5からビット値B8までのビット列「100・・・」中に注目第2ビット列「10」が存在している。そのため、制御部4は、S207に進むこととなる。なお、ビット値Bi+1からビット値Bi+Mまでのビット列中に注目第2ビット列が複数存在する場合、最初に注目第2ビット列を検出した時点でS207に進む。
【0043】
S207のステップでは、制御部4は、注目第2ビット列が位置するビット位置にフラグXを設定する。そして、制御部4は、S208のステップで、「i」を「1」だけインクリメントし、S201以降のステップを繰り返す。
【0044】
なお、ビット位置PiにフラグXが設定されている場合(S201のY)、ビット値Bi−N+1からビット値Biまでのビット列中にいずれの第1ビット列も存在しない場合(S204のN)、復号可能条件が満足されない場合(S205のN)、及び、ビット値Bi+1からビット値Bi+Mまでのビット列中に注目第2ビット列が存在していない場合も(S206のN)、制御部4は、S208のステップに進み、S201以降のステップを繰り返す。図6の処理によれば、例えば、図3(b)の場合、ビット値B5のビット画像と、ビット値B6のビット画像と、はそれぞれ、領域A5、領域A6に配置されないこととなる。つまり、領域A5と領域A6にはビット画像が配置されないこととなる。
【0045】
こうして、図4に示す符号付き文書画像が生成される。
【0046】
符号付き文書画像を生成すると、制御部4は、符号付き文書画像を出力する(S104)。本実施形態の場合、制御部4は、符号付き文書画像を媒体に印刷する。
【0047】
以上のように、画像処理装置2では、付加対象ビット列中に、いずれかの第1ビット列と、その第1ビット列に関連づけられた第2ビット列と、が所定の位置関係で存在していれば、その第2ビット列のビット値が文書画像に配置されなくなる。そのため、第2ビット列の各ビット値の配置による文書画像の劣化が抑制される。
【0048】
[3.画像処理装置で実行される処理2]
図8は、画像処理装置2で実行される他の処理の一例を示す図である。この処理は、制御部4が、主記憶部6に記憶される上記プログラムに従って動作することにより実行される。本実施形態の場合、この処理は、符号付き文書画像が印刷された媒体の読取指示が行われた場合に実行される。
【0049】
本実施形態の場合、制御部4は、画像読取部14に媒体をスキャンさせた上で、スキャンの結果に基づいて、符号付き文書画像を取得する(S301)。
【0050】
そして、S302〜S305に示す処理を、全ブロック領域について実行する。
【0051】
すなわち、制御部4は、ブロック領域Aiの画像を解析する(S302)。
【0052】
そして、制御部4は、S303〜S305のステップで、S302のステップでの解析結果に基づき、ビット位置Piのビット値Biを復号する。
【0053】
すなわち、制御部4は、S302での解析結果に基づき、ブロック領域Aiにいずれかのビット画像が配置されているか否かを判定する(S303)。言い換えれば、制御部4は、S302の解析結果に基づき、ビット画像の検出を試みる。
【0054】
そして、制御部4は、ブロック領域Aiにいずれかのビット画像が配置されていると判定した場合(S303のY)、すなわち、ビット画像を検出できた場合、ブロック領域Aiに配置されていると判定したビット画像が表すビット値を復号し(S304)、このビット値をビット値Biとして設定する。ブロック領域Aiにいずれかのビット画像が配置されていると判定した場合(S303のY)、制御部4は、S302の解析結果からビット値Biを復号できたということになる。
【0055】
一方、制御部4は、ブロック領域Aiにいずれのビット画像も配置されていないと判定した場合(S303のN)、ビット位置PiにフラグZを設定する(S305)。ブロック領域Aiにいずれのビット画像も配置されていないと判定した場合(S303のN)、結果的に制御部4は、S302の解析結果からはビット値Biが復号できなかったということになる。
【0056】
S302〜S305に示す処理により、図3(c)に示すビット列Xが生成される。なお、図3(c)に示すビット列Xは、ブロック領域A5とA6にビット画像が配置されていない場合のビット列Xを示す。
【0057】
[4.画像処理装置で実行される処理3]
図9は、ビット列Xが生成された場合に画像処理装置2で実行される処理の一例を示す図である。この処理は、制御部4が、主記憶部6に記憶される上記プログラムに従って動作することにより実行される。
【0058】
制御部4は、ビット位置Piが最後列のビット位置PEであるか否かを判定する(S401)。最初は、制御部4は、ビット位置P1がビット位置PEであるか否かを判定する。
【0059】
ビット位置Piがビット位置PEである場合(S401のY)、制御部4は処理を終了する。ビット位置Piがビット位置PEでない場合(S401のN)、制御部4は、S402のステップに進む。
【0060】
S402のステップでは、制御部4は、ビット列Xを参照し、ビット位置Pi以前にいずれかの第1ビット列が存在するか否かを判定する。本実施形態の場合、制御部4は、第1ビット列ごとに、該第1ビット列がビット位置Pi以前に存在するか否かを判定することにより、いずれかの第1ビット列がビット位置Pi以前に存在するか否かを判定する。
【0061】
例えば、ある第1ビット列Yがビット位置Pi以前に存在するか否かを判定する場合、ビット値Bi−N+1からビット値BiまでのNビットのビット列が第1ビット列Yと等しいか否かを判定する。ビット値Bi−N+1からビット値BiまでのNビットのビット列が第1ビット列Yと等しい場合、第1ビット列Yがビット位置Pi以前に存在するということになる。
【0062】
ビット位置Pi以前にいずれの第1ビット列も存在しない場合(S402のN)、制御部4は、「i」を1だけインクリメントして(S406)、S401のステップに戻る。
【0063】
一方、ビット位置Pi以前にいずれかの第1ビット列が存在する場合(S402のY)、制御部4は、ビット位置Pi以前に存在する第1ビット列(以下、注目第1ビット列)と予め定められた位置関係を有するビット位置に、フラグZが設定されているか否かを判定する。本実施形態の場合、制御部4は、ビット位置Pi+1からビット位置Pi+Mまでの各ビット位置についてフラグZが設定されているか否かを判定することにより、ビット位置Pi+1からビット位置Pi+Mまでのビット列のうちからフラグZが連続して設定されているビット列を特定する(S403)。
【0064】
そして、制御部4は、S403のステップで特定されたビット列のビット長が、注目第1ビット列に関連付けて記憶される第2ビット列(以下、注目第2ビット列)のビット長に等しいか否かを判定する(S404)。
【0065】
S403のステップで特定されたビット列のビット長が、注目第2ビット列のビット長と等しくない場合(S404のN)、制御部4は、「i」を1だけインクリメントして(S406)、S401のステップに戻る。
【0066】
一方、S403のステップで特定されたビット列のビット長が、注目第2ビット列のビット長に等しい場合(S404のY)、制御部4は、S403のステップで特定されたビット列の各ビット値を、注目第2ビット列の各ビット値に基づいて復号する(S405)。すなわち、制御部4は、S403のステップで特定されたビット列の各ビット値として、注目第2ビット列の各ビット値を設定する。こうして、制御部4は、付加対象ビット列を復元する。
【0067】
例えば、「i=4」の場合、制御部4は、S402のステップで、ビット位置P4以前に注目第1ビット列「101」が存在していると判定することとなる。また、制御部4は、S403のステップで、ビット位置P5とビット位置P6とを含むビット列を特定することとなる。この場合、S403のステップで特定されたビット列のビット長と、注目第2ビット列「10」のビット長と、は共に「2」であるので、制御部4は、S405のステップで、ビット位置P5とビット位置P6の各々のビット値を、注目第2ビット列の各ビットに基づいて復号することとなる。その結果、図3(c)に示すビット列Xから、図3(a)に示す付加対象ビット列が復元される。
【0068】
なお、S405のステップの後、制御部4は、S406のステップに進む。
【0069】
以上のように、この画像処理装置2では、故意にビット値が文書画像に配置されなくても、そのビット値が復号されることとなる。そのため、付加対象符号列の復号の精度が維持される。
【0070】
[5.機能ブロック1]
図10は、画像処理装置2で実現される機能のうち、注目第2ビット列の配置の制限に関する機能を示す機能ブロック図である。同図に示すように、画像処理装置2では、配置部20と、制限部22と、を含む。制限部22は、第1判定部24と、第2判定部26と、第3判定部28と、を含む。これらの機能は、制御部4が上記プログラムに従って動作することにより実現される。
【0071】
[配置部]
配置部20は、制御部4を主として実現される。配置部20は、付加対象ビット列のビット値Biのビット画像を、文書画像中の、該ビット値Biのビット位置Piに対応するブロック領域Aiに配置する(図6のS202)。
【0072】
[制限部]
制限部22は、制御部4を主として実現される。制限部22は、いずれかの第1ビット列と、該第1ビット列に関連付けられた第2ビット列と、が予め定められた位置関係で付加対象ビット列中に存在し、且つ、上記復号可能条件が満足される場合に、付加対象ビット列中に存在する第2ビット列(注目第2ビット列)の各ビット値のビット画像の配置部20による配置を制限する(図6のS204乃至S207、S201)。
【0073】
[第1判定部]
すなわち、まず、第1判定部24が、付加対象ビット列中にいずれかの第1ビット列が存在するか否かを判定する(図6のS204)。
【0074】
[第2判定部]
付加対象ビット列中にいずれかの第1ビット列が存在すると第1判定部24が判定した場合、第2判定部26が、上記復号可能条件が満足されるか否かを判定する(図6のS205)。
【0075】
[第3判定部]
また、付加対象ビット列中にいずれかの第1ビット列が存在すると第1判定部24が判定した場合、第3判定部28が、付加対象ビット列中に存在すると判定された第1ビット列(以下、注目第1ビット列)に関連付けられた第2ビット列(以下、注目第2ビット列)が、注目第1ビット列の位置と予め定められた関係を有する位置に存在しているか否かを判定する(図6のS206)。
【0076】
そして、上記復号可能条件が満足されると第2判定部26が判定し、注目第2ビット列が注目第1ビット列の位置と予め定められた関係を有する位置に存在していると第3判定部28が判定した場合に、制限部22は、注目第2ビット列の各ビット値のビット画像の配置部20による配置を制限する(図6のS207及びS201)。
【0077】
ところで、以上では、第1判定部24が付加対象ビット列中に存在するいずれかの第1ビット列(すなわち、注目第1ビット列)を先に見つけた後で、第3判定部28が、注目第1ビット列に関連付けられた第2ビット列(すなわち、注目第2ビット列)が、注目第1ビット列の位置と予め定められた関係を有する位置に存在するか否かを判定するようにしている。
【0078】
しかしながら、第3判定部28がいずれかの第2ビット列が付加対象ビット列中に存在するか否かを先に判定するようにしてもよい。こうした上で、いずれかの第2ビット列が付加対象ビット列中に存在すると第3判定部28により判定された場合に、第1判定部24が、付加対象ビット列中に存在すると第3判定部28により判定された第2ビット列(すなわち、注目第2ビット列)に関連付けられた第1ビット列(すなわち、注目第1ビット列)が、注目第2ビット列の位置と予め定められた関係を有する位置に存在するか否かを判定するようにしてもよい。
【0079】
[6.機能ブロック2]
図11は、画像処理装置2で実現される機能のうち、符号つき文書画像からの付加対象ビット列の復号に関する機能を示す機能ブロック図である。同図に示すように、画像処理装置2では、画像解析部30と、第1復号部32と、第2復号部34と、を含む。第2復号部34は、第1判定部36と、第2判定部38と、を含む。これらの機能は、制御部4が上記プログラムに従って動作することにより実現される。
【0080】
[画像解析部]
画像解析部30は、制御部4を主として実現される。画像解析部30は、符号付き文書画像中の各ブロック領域の画像を解析する(図8のS302)。
【0081】
[第1復号部]
第1復号部32は、制御部4を主として実現される。第1復号部32は、付加対象ビット列の各ビット値Biを、該ビット値Biのビット位置Piに対応するブロック領域Aiの画像の解析結果に基づいて復号する。
【0082】
本実施形態の場合、第1復号部32は、あるビット位置Pxのビット値Bxを復号する場合、ブロック領域Axの画像の解析結果に基づき、ブロック領域Aiにいずれかのビット画像が配置されているか否かを判定する(図8のS303)。
【0083】
第1復号部32は、ブロック領域Aiにいずれかのビット画像が配置されていると判定した場合、ブロック領域Aiに配置されているビット画像が表すビット値を、ビット値Bxとして設定する(図8のS304)。こうして、第1復号部32は、ビット位置Pxのビット値Bxを復号する。なお、この場合、第1復号部32は、ビット位置Pxのビット値Bxを復号できたということになる。
【0084】
一方、第1復号部32は、ブロック領域Aiにいずれのビット画像も配置されていないと判定した場合、ビット位置PxにフラグZを設定する(図8のS305)。この場合、第1復号部32は、制御部4は、ブロック領域Axの画像の解析結果から、ビット値Bxが復号できなかったということになる。
【0085】
[第2復号部]
第2復号部34は、制御部4を主として実現される。第2復号部34は、第1復号部32が復号できなかったビット値が存在し、且つ、第1復号部32により復号されたビット列中にいずれかの第1ビット列が存在している場合において、第1復号部32が復号できなかったビット値と、第1復号部32により復号されたビット列中に存在する第1ビット列(すなわち、注目第1ビット列)と、が予め定められた位置関係を有している場合に、第1復号部32が復号できなかったビット値を、注目第1ビット列に関連づけられた第2ビット列(すなわち、注目第2ビット列)の符号に基づいて復号する(図9参照)。
【0086】
[第1判定部]
すなわち、まず、第1判定部36が、第1復号部32により復号されたビット列中に、いずれかの第1ビット列が存在するか否かを判定する(図9のS402)。
【0087】
[第2判定部]
第2判定部38は、第1復号部32により復号されたビット列中にいずれかの第1ビット列が存在すると第1判定部36が判定した場合、第1復号部32により復号されたビット列中に存在する第1ビット列(以下、注目第1ビット列)と予め定められた位置関係を有する位置に、第1復号部32が復号できなかったビット値Bxが存在するか否かを判定する(図9のS403)。
【0088】
そして、注目第1ビット列と予め定められた位置関係を有する位置に第1復号部32が復号できなかったビット値Bxが存在すると第2判定部38が判定した場合、第2復号部34は、注目第1ビット列に関連づけられた第2ビット列(すなわち、注目第2ビット列)のビット値に基づいて、ビット値Bxを復号することとなる(図9のS405)。
【0089】
ところで、以上では、第1判定部36が、第1復号部32により復号されたビット列中に存在する第1ビット列(以下、注目第1ビット列)を先に見つけた後で、第2判定部38が、注目第1ビット列と予め定められた位置関係を有する位置に、第1復号部32が復号できなかったビット値Bxが存在するか否かを判定するようにしている。
【0090】
しかしながら、第2判定部38が、第1復号部32が復号できなかったビット値Bxが存在するか否かを先に判定するようにしてもよい。こうした上で、第1復号部32が復号できなかったビット値Bxが存在すると第2判定部38が判定した場合に、第1判定部36が、第1復号部32により復号されたビット列であって、ビット値Bxと予め定められた位置関係を有するビット列中にいずれかの第1ビット列が存在するか否かを判定するようにしてもよい。この場合、第2復号部34は、第1復号部32により復号されたビット列であって、ビット値Bxと予め定められた位置関係を有するビット列中にいずれかの第1ビット列が存在すると第1判定部36が判定した場合に、該ビット列中に存在する第1ビット列(すなわち、注目第1ビット列)に関連付けられた第2ビット列(すなわち、注目第2ビット列)の各ビット値に基づいて、ビット値Bxを復号することとなる。
【0091】
[7.その他]
なお、本発明は、以上に説明した実施形態に限定されるものではない。
【0092】
例えば、ビット画像は、図4に示す「/」や「\」だけに限らない。例えば、ビット画像は、図12に示すような、ドットコードの画像であってもよい。
【図面の簡単な説明】
【0093】
【図1】本発明の実施形態に係る画像処理装置のハードウェア構成を示す図である。
【図2】テーブルの一例を示す図である。
【図3】ビット列の一例を示す図である。
【図4】符号付き文書画像の一例を示す図である。
【図5】本発明の実施形態に係る画像処理装置で実行される処理を示すフローチャート図である。
【図6】本発明の実施形態に係る画像処理装置で実行される処理を示すフローチャート図である。
【図7】ブロック領域を説明するための図である。
【図8】本発明の実施形態に係る画像処理装置で実行される処理を示すフローチャート図である。
【図9】本発明の実施形態に係る画像処理装置で実行される処理を示すフローチャート図である。
【図10】本発明の実施形態に係る画像処理装置で実現される機能ブロック図である。
【図11】本発明の実施形態に係る画像処理装置で実現される機能ブロック図である。
【図12】ビット画像の一例を示す図である。
【符号の説明】
【0094】
2 画像処理装置、4 制御部、6 主記憶部、8 補助記憶部、10 操作部、12 画像形成部、14 画像読取部、16 バス、20 配置部、22 制限部、24,36 第1判定部、26,38 第2判定部、28 第3判定部、30 画像解析部、32 第1復号部、34 第2復号部。
【特許請求の範囲】
【請求項1】
処理対象符号列の符号の画像を、処理対象画像中の、該符号の位置に対応する領域に配置する配置手段と、
第1符号列と、該第1符号列に対応する第2符号列と、が予め定められた位置関係で前記処理対象符号列中に存在し、且つ、前記処理対象符号列中に存在する第1符号列の符号の画像が前記配置手段によって配置された後の画像から該符号が符号復号装置により復号可能であるか否かに関する条件が満足される場合に、前記処理対象符号列中に存在する第2符号列の符号の画像の前記配置手段による配置を制限する制限手段と、
を含むことを特徴とする画像処理装置。
【請求項2】
符号付き画像中の各領域の画像を解析する画像解析手段と、
処理対象符号列の各符号を、該符号の位置に対応する前記領域の画像の解析結果に基づいて復号する第1復号手段と、
前記第1復号手段が復号できなかった符号が存在し、且つ、前記第1復号手段により復号された符号列中に前記第1符号列が存在している場合において、前記第1復号手段が復号できなかった符号と、前記第1復号手段により復号された符号列中に存在する前記第1符号列と、が予め定められた位置関係を有している場合に、前記第1復号手段が復号できなかった符号を、前記第2符号列の符号に基づいて復号する第2復号手段と、
を含むことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
処理対象符号列の符号の画像を、処理対象画像中の、該符号の位置に対応する領域に配置する配置手段、
第1符号列と、該第1符号列に対応する第2符号列と、が予め定められた位置関係で前記処理対象符号列中に存在し、且つ、前記処理対象符号列中に存在する第1符号列の符号の画像が前記配置手段によって配置された後の画像から該符号が符号復号装置により復号可能であるか否かに関する条件が満足される場合に、前記処理対象符号列中に存在する第2符号列の符号の画像の前記配置手段による配置を制限する制限手段、
としてコンピュータを機能させるプログラム。
【請求項4】
処理対象画像中の各領域の画像を解析する画像解析手段、
処理対象符号列の各符号を、該符号の位置に対応する前記領域の画像の解析結果に基づいて復号する第1復号手段、
前記第1復号手段が復号できなかった符号が存在し、且つ、前記第1復号手段により復号された符号列中に第1符号列が存在している場合において、前記第1復号手段が復号できなかった符号と、前記第1復号手段により復号された符号列中に存在する第1符号列と、が予め定められた位置関係を有している場合に、前記第1復号手段が復号できなかった符号を、前記第1符号列に対応する第2符号列の符号に基づいて復号する第2復号手段、
としてコンピュータを機能させるプログラム。
【請求項1】
処理対象符号列の符号の画像を、処理対象画像中の、該符号の位置に対応する領域に配置する配置手段と、
第1符号列と、該第1符号列に対応する第2符号列と、が予め定められた位置関係で前記処理対象符号列中に存在し、且つ、前記処理対象符号列中に存在する第1符号列の符号の画像が前記配置手段によって配置された後の画像から該符号が符号復号装置により復号可能であるか否かに関する条件が満足される場合に、前記処理対象符号列中に存在する第2符号列の符号の画像の前記配置手段による配置を制限する制限手段と、
を含むことを特徴とする画像処理装置。
【請求項2】
符号付き画像中の各領域の画像を解析する画像解析手段と、
処理対象符号列の各符号を、該符号の位置に対応する前記領域の画像の解析結果に基づいて復号する第1復号手段と、
前記第1復号手段が復号できなかった符号が存在し、且つ、前記第1復号手段により復号された符号列中に前記第1符号列が存在している場合において、前記第1復号手段が復号できなかった符号と、前記第1復号手段により復号された符号列中に存在する前記第1符号列と、が予め定められた位置関係を有している場合に、前記第1復号手段が復号できなかった符号を、前記第2符号列の符号に基づいて復号する第2復号手段と、
を含むことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
処理対象符号列の符号の画像を、処理対象画像中の、該符号の位置に対応する領域に配置する配置手段、
第1符号列と、該第1符号列に対応する第2符号列と、が予め定められた位置関係で前記処理対象符号列中に存在し、且つ、前記処理対象符号列中に存在する第1符号列の符号の画像が前記配置手段によって配置された後の画像から該符号が符号復号装置により復号可能であるか否かに関する条件が満足される場合に、前記処理対象符号列中に存在する第2符号列の符号の画像の前記配置手段による配置を制限する制限手段、
としてコンピュータを機能させるプログラム。
【請求項4】
処理対象画像中の各領域の画像を解析する画像解析手段、
処理対象符号列の各符号を、該符号の位置に対応する前記領域の画像の解析結果に基づいて復号する第1復号手段、
前記第1復号手段が復号できなかった符号が存在し、且つ、前記第1復号手段により復号された符号列中に第1符号列が存在している場合において、前記第1復号手段が復号できなかった符号と、前記第1復号手段により復号された符号列中に存在する第1符号列と、が予め定められた位置関係を有している場合に、前記第1復号手段が復号できなかった符号を、前記第1符号列に対応する第2符号列の符号に基づいて復号する第2復号手段、
としてコンピュータを機能させるプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2010−154084(P2010−154084A)
【公開日】平成22年7月8日(2010.7.8)
【国際特許分類】
【出願番号】特願2008−328307(P2008−328307)
【出願日】平成20年12月24日(2008.12.24)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】
【公開日】平成22年7月8日(2010.7.8)
【国際特許分類】
【出願日】平成20年12月24日(2008.12.24)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】
[ Back to top ]