(57)【特許請求の範囲】
【請求項１】
画像読取装置が文書から読み取った画像から所定の形状を有する複数の特定画像を検出する検出手段と、
前記検出手段により検出された前記複数の特定画像のうちの一の特定画像の回転角度を、当該一の特定画像に対する予め決められた位置における当該一の特定画像以外の他の特定画像の有無に基づく第１の方法で判定する第１の角度判定手段と、
前記一の特定画像の回転角度をパターンマッチングに基づく第２の方法で判定する第２の角度判定手段と、
前記第１の角度判定手段により判定された回転角度と、前記第２の角度判定手段により判定された回転角度との近似度に基づいて、前記一の特定画像を処理対象にするかどうかを判定する処理対象判定手段と、
前記処理対象判定手段により処理対象にすると判定された特定画像のパターンを特定し、特定されたパターンごとの当該特定画像の個数に基づいて、前記文書が複製禁止文書であるかどうかを判定する禁止文書判定手段と
を備えたことを特徴とする画像処理装置。
【請求項２】
前記第１の角度判定手段は、前記一の特定画像を中心とする円周上の当該円周を略四等分する４つの位置の少なくとも１つに前記他の特定画像が存在する場合に、当該一の特定画像から当該４つの位置への方向に応じた角度を、当該一の特定画像の回転角度と判定することを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記第１の角度判定手段は、前記４つの位置の少なくとも２つに画像が存在する場合、前記４つの位置の少なくとも３つに画像が存在する場合、前記４つの位置の全てに画像が存在する場合の何れかにおいて、前記一の特定画像から当該４つの位置への方向に応じた角度を、当該一の特定画像の回転角度と判定することを特徴とする請求項２記載の画像処理装置。
【請求項４】
所定の形状を有する複数の特定画像を含む画像が印刷された媒体から当該画像を読み取る読取手段と、
前記読取手段により読み取られた前記画像の他の媒体への印刷を制限する制限手段と、
前記読取手段により読み取られた前記画像から前記複数の特定画像を検出する検出手段と、
前記検出手段により検出された前記複数の特定画像のうちの一の特定画像の回転角度を、当該一の特定画像に対する予め決められた位置における当該一の特定画像以外の他の特定画像の有無に基づく第１の方法で判定する第１の角度判定手段と、
前記一の特定画像の回転角度をパターンマッチングに基づく第２の方法で判定する第２の角度判定手段と、
前記第１の角度判定手段により判定された回転角度と、前記第２の角度判定手段により判定された回転角度との近似度に基づいて、前記制限手段による前記画像の印刷の制限を決定するために前記一の特定画像を用いるかどうかを判定する処理対象判定手段と
を備えたことを特徴とする画像形成装置。
【請求項５】
コンピュータに、
画像読取装置が文書から読み取った画像から所定の形状を有する複数の特定画像を検出する検出機能と、
検出された前記複数の特定画像のうちの一の特定画像の回転角度を、当該一の特定画像に対する予め決められた位置における当該一の特定画像以外の他の特定画像の有無に基づく第１の方法で判定する第１の角度判定機能と、
前記一の特定画像の回転角度をパターンマッチングに基づく第２の方法で判定する第２の角度判定機能と、
前記第１の角度判定機能で判定された回転角度と、前記第２の角度判定機能で判定された回転角度との近似度に基づいて、前記一の特定画像を処理対象にするかどうかを判定する処理対象判定機能と、
処理対象にすると判定された特定画像のパターンを特定し、特定されたパターンごとの当該特定画像の個数に基づいて、前記文書が複製禁止文書であるかどうかを判定する禁止文書判定機能と
を実現させるためのプログラム。
【請求項６】
前記第１の角度判定機能では、前記一の特定画像を中心とする円周上の当該円周を略四等分する４つの位置の少なくとも１つに前記他の特定画像が存在する場合に、当該一の特定画像から当該４つの位置への方向に応じた角度を、当該一の特定画像の回転角度と判定することを特徴とする請求項５記載のプログラム。
【請求項７】
前記第１の角度判定機能では、前記４つの位置の少なくとも２つに画像が存在する場合、前記４つの位置の少なくとも３つに画像が存在する場合、前記４つの位置の全てに画像が存在する場合の何れかにおいて、前記一の特定画像から当該４つの位置への方向に応じた角度を、当該一の特定画像の回転角度と判定することを特徴とする請求項６記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像形成装置、プログラムに関する。
【背景技術】
【０００２】
原稿画像を複製装置により読み取る際に無断複製を防止可能にする技術が知られている（例えば、特許文献１参照）。
この特許文献１では、複製を禁止するコードを割り当てた禁複製コード配列等を２次元状に繰り返し配置し、各コードに対応するパターン画像を参照して禁複製パターン画像領域等が２次元状に繰り返し配置された背景画像を生成し、これを文書画像に重ね合わせて用紙上に印刷出力する。そして、原稿画像の読取り時には、禁複製コードに対応するパターン画像が含まれていれば、複製禁止文書であると判断し、コピー動作を中止している。
【０００３】
【特許文献１】特開２００３−２８３７９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ここで、一般に、読取画像の特定領域に、所定の処理に用いる特定画像に加えてそれ以外の網点画像や周期性のある画像が含まれている場合には、特定領域や特定画像をその処理の対象にするかどうかを判定することが困難であった。
本発明の目的は、読取画像の特定領域又はその特定領域内の特定画像を所定の処理の対象にするかどうかを、特定画像以外の網点画像や周期性のある画像に紛らわされることなく判定することにある。
【課題を解決するための手段】
【０００５】
請求項１に記載の発明は、画像読取装置が文書から読み取った画像から所定の形状を有する複数の特定画像を検出する検出手段と、前記検出手段により検出された前記複数の特定画像のうちの一の特定画像の回転角度を、当該一の特定画像に対する予め決められた位置における当該一の特定画像以外の他の特定画像の有無に基づく第１の方法で判定する第１の角度判定手段と、前記一の特定画像の回転角度をパターンマッチングに基づく第２の方法で判定する第２の角度判定手段と、前記第１の角度判定手段により判定された回転角度と、前記第２の角度判定手段により判定された回転角度との近似度に基づいて、前記一の特定画像を処理対象にするかどうかを判定する処理対象判定手段と、前記処理対象判定手段により処理対象にすると判定された特定画像のパターンを特定し、特定されたパターンごとの当該特定画像の個数に基づいて、前記文書が複製禁止文書であるかどうかを判定する禁止文書判定手段とを備えたことを特徴とする画像処理装置である。
請求項２に記載の発明は、前記第１の角度判定手段は、前記一の特定画像を中心とする円周上の当該円周を略四等分する４つの位置の少なくとも１つに前記他の特定画像が存在する場合に、当該一の特定画像から当該４つの位置への方向に応じた角度を、当該一の特定画像の回転角度と判定することを特徴とする請求項１記載の画像処理装置である。
請求項３に記載の発明は、前記第１の角度判定手段は、前記４つの位置の少なくとも２つに画像が存在する場合、前記４つの位置の少なくとも３つに画像が存在する場合、前記４つの位置の全てに画像が存在する場合の何れかにおいて、前記一の特定画像から当該４つの位置への方向に応じた角度を、当該一の特定画像の回転角度と判定することを特徴とする請求項２記載の画像処理装置である。
請求項４に記載の発明は、所定の形状を有する複数の特定画像を含む画像が印刷された媒体から当該画像を読み取る読取手段と、前記読取手段により読み取られた前記画像の他の媒体への印刷を制限する制限手段と、前記読取手段により読み取られた前記画像から前記複数の特定画像を検出する検出手段と、前記検出手段により検出された前記複数の特定画像のうちの一の特定画像の回転角度を、当該一の特定画像に対する予め決められた位置における当該一の特定画像以外の他の特定画像の有無に基づく第１の方法で判定する第１の角度判定手段と、前記一の特定画像の回転角度をパターンマッチングに基づく第２の方法で判定する第２の角度判定手段と、前記第１の角度判定手段により判定された回転角度と、前記第２の角度判定手段により判定された回転角度との近似度に基づいて、前記制限手段による前記画像の印刷の制限を決定するために前記一の特定画像を用いるかどうかを判定する処理対象判定手段とを備えたことを特徴とする画像形成装置である。
請求項５に記載の発明は、コンピュータに、画像読取装置が文書から読み取った画像から所定の形状を有する複数の特定画像を検出する検出機能と、検出された前記複数の特定画像のうちの一の特定画像の回転角度を、当該一の特定画像に対する予め決められた位置における当該一の特定画像以外の他の特定画像の有無に基づく第１の方法で判定する第１の角度判定機能と、前記一の特定画像の回転角度をパターンマッチングに基づく第２の方法で判定する第２の角度判定機能と、前記第１の角度判定機能で判定された回転角度と、前記第２の角度判定機能で判定された回転角度との近似度に基づいて、前記一の特定画像を処理対象にするかどうかを判定する処理対象判定機能と、処理対象にすると判定された特定画像のパターンを特定し、特定されたパターンごとの当該特定画像の個数に基づいて、前記文書が複製禁止文書であるかどうかを判定する禁止文書判定機能とを実現させるためのプログラムである。
請求項６に記載の発明は、前記第１の角度判定機能では、前記一の特定画像を中心とする円周上の当該円周を略四等分する４つの位置の少なくとも１つに前記他の特定画像が存在する場合に、当該一の特定画像から当該４つの位置への方向に応じた角度を、当該一の特定画像の回転角度と判定することを特徴とする請求項５記載のプログラムである。
請求項７に記載の発明は、前記第１の角度判定機能では、前記４つの位置の少なくとも２つに画像が存在する場合、前記４つの位置の少なくとも３つに画像が存在する場合、前記４つの位置の全てに画像が存在する場合の何れかにおいて、前記一の特定画像から当該４つの位置への方向に応じた角度を、当該一の特定画像の回転角度と判定することを特徴とする請求項６記載のプログラムである。
【発明の効果】
【０００６】
請求項１の発明によれば、読取画像内の特定画像を複製禁止のための処理対象にするかどうかを、特定画像以外の網点画像や周期性のある画像に紛らわされることなく判定することができる。
請求項２の発明によれば、特定画像が他の画像に塗り潰されていたとしても各特定画像の回転角度を求め、それを用いてそのような判定を行うことができる。
請求項３の発明によれば、本構成を有していない場合に比較して、各特定画像の回転角度を精度よく求め、それを用いてそのような判定を行うことができる。
請求項４の発明によれば、読取画像内の特定画像を読取画像の印刷の制限のために用いるかどうかを、特定画像以外の網点画像や周期性のある画像に紛らわされることなく判定することができる。
請求項５の発明によれば、読取画像内の特定画像を複製禁止のための処理対象にするかどうかを、特定画像以外の網点画像や周期性のある画像に紛らわされることなく判定することができる。
請求項６の発明によれば、特定画像が他の画像に塗り潰されていたとしても各特定画像の回転角度を求め、それを用いてそのような判定を行うことができる。
請求項７の発明によれば、本構成を有していない場合に比較して、各特定画像の回転角度を精度よく求め、それを用いてそのような判定を行うことができる。
【発明を実施するための最良の形態】
【０００７】
以下、添付図面を参照して、本発明を実施するための最良の形態（以下、「実施の形態」という）について詳細に説明する。
まず、本実施の形態で文書画像に重ね合わせて紙等の媒体に印刷される埋め込み画像について説明する。
図１は、このような埋め込み画像の一部を拡大して示したものである。
図示するように、埋め込み画像は、右下がり斜線パターン及び右上がり斜線パターンの何れかのパターン画像から構成されている。本実施の形態では、右下がり斜線パターンがビット“０”を表し、右上がり斜線パターンがビット“１”を表す。また、個々のパターン画像のサイズは、主走査方向、副走査方向の何れにおいても、１２画素以内に収まるようになっている。
尚、本明細書において、媒体というときは、画像を印刷可能なものであれば如何なるものでもよく、その材質は問わない。代表例は紙であるが、ＯＨＰシートや金属板、布等であっても構わない。
【０００８】
ここで、（ａ）〜（ｃ）に示す各画像について説明する。
まず、（ａ）は、禁止コード配列０を表す画像を示している。ここで、禁止コード配列０とは、ビット“０”のみからなるコード配列である。本実施の形態では、右下がり斜線パターンでビット“０”を表すので、禁止コード配列０を表す画像は、右下がり斜線パターンのみを含む。そして、所定の処理を禁止するための禁止情報をこの禁止コード配列０により埋め込む。尚、所定の処理の一例として原稿の複製を考えた場合、禁止情報は、原稿の複製を禁止するための情報となる。
【０００９】
また、（ｂ）は、禁止コード配列１を表す画像を示している。ここで、禁止コード配列１とは、ビット“１”のみからなるコード配列である。本実施の形態では、右上がり斜線パターンでビット“１”を表すので、禁止コード配列１を表す画像は、右上がり斜線パターンのみを含む。そして、所定の処理を禁止するための禁止情報をこの禁止コード配列１により埋め込む。尚、所定の処理の一例として原稿の複製を考えた場合、禁止情報は、原稿の複製を禁止するための情報となる。
【００１０】
一方、（ｃ）は、条件コード配列を表す画像を示している。ここで、条件コード配列は、ビット“０”とビット“１”とからなる。本実施の形態では、右下がり斜線パターンでビット“０”を表し、右上がり斜線パターンでビット“１”を表すので、条件コード配列を表す画像は、右下がり斜線パターン及び右上がり斜線パターンの両方を含む。そして、この条件コード配列に、所定の処理の禁止を解除する条件を示す条件情報を埋め込む。尚、所定の処理の一例として原稿の複製を考えた場合、条件情報は、原稿の複製の禁止を解除する条件を示す情報となる。この場合、条件情報としては、暗証番号、ユーザＩＤ、日時、複写機の番号等が例示される。
尚、以下では、禁止情報及び条件情報を総称して「制御情報」と呼ぶこともある。
【００１１】
また、図２は、埋め込み画像のレイアウトの一例を示した図である。
図において、斜線ハッチングされた矩形が図１（ａ）の禁止コード配列０が埋め込まれた領域（以下、「禁止領域０」という）を示し、縦線ハッチングされた矩形が図１（ｂ）の禁止コード配列１が埋め込まれた領域（以下、「禁止領域１」という）を示し、ドットハッチングされた矩形が図１（ｃ）の条件コード配列が埋め込まれた領域（以下、「条件領域」という）を示している。尚、以下では、禁止領域０、禁止領域１、条件領域を総称して「制御領域」と呼ぶこともある。
このレイアウトにおいて、各制御領域には、例えば、主走査方向に２０個、副走査方向に２０個のパターン画像が配置されるものとする。
ここで、埋め込み画像のレイアウトは、図２に示したものには限られない。例えば、禁止領域０と禁止領域１が主走査方向、副走査方向の何れにおいても交互に現れ、条件領域が存在しないようなレイアウトであってもよい。
【００１２】
ところで、本実施の形態では、図１に示したように、微細な画素塊を周期的に配置することにより、制御情報を埋め込み画像に埋め込んでいる。一方で、埋め込み画像と重ねて印刷される文書画像の中にも、網点のような微細な画素塊として検出される画像が、制御情報の画素塊と近い周期で含まれる場合がある。このような場合、文書画像における画素塊を制御情報の画素塊と誤検出し、読み取った原稿が複製を禁止していないにも関わらず、複製を禁止する動作を行う可能性がある。
【００１３】
ここで、制御情報を表すパターン画像（以下、「コード画像」という）は、図１に示したように規則正しく配置されているはずであるが、網点等の画素塊は一般にそのような規則には従っていない。
そこで、本実施の形態では、このような配置の規則の違いに着目し、パターン画像として検出される画素塊が一定の規則に従っていない場合は、その画素塊をコード画像として扱わないようにする。以下、着目した配置の規則ごとに実施の形態を分けて説明する。
【００１４】
［第１の実施の形態］
第１の実施の形態では、２つ以上のコード画像の相対位置に基づいて求めた回転角度は所定の領域内で一定になるはずであることに着目する。
図３は、第１の実施の形態における複写装置１０の構成例を示したブロック図である。
図示するように、複写装置１０は、画像読取部１１と、画像処理部１２と、禁止コード検知部１４と、条件コード検知部１５と、制御部１６と、画像マスク部１７と、画像形成部１８とを備える。また、角度判定部２１と、角度０カウンタ２２ａと、角度１カウンタ２２ｂと、角度２カウンタ２２ｃと、角度３カウンタ２２ｄと、禁止ブロック判定部２３とを備える。
【００１５】
画像読取部１１は、例えば原稿に印刷された画像を読み取ることにより、画像データを取得する。ここで、画像読取部１１は、例えばスキャナであり、光源から原稿に照射した光に対する反射光をレンズで縮小してＣＣＤ(Charge Coupled Devices)で受光するＣＣＤ方式や、ＬＥＤ光源から原稿に順に照射した光に対する反射光をＣＩＳ(Contact Image Sensor)で受光するＣＩＳ方式のものを用いるとよい。本実施の形態では、画像を読み取る読取手段の一例として、画像読取部１１を設けている。
画像処理部１２は、画像読取部１１から入力される画像データに対して所定の画像処理を施す。
【００１６】
禁止コード検知部１４は、画像読取部１１から入力される画像データが表すコード配列をブロックに分割し、それらのブロックのうち、禁止コード検出の対象と判定されたブロックから禁止コードを検知する。本実施の形態では、特定画像を検出する検出手段の一例として、禁止コード検知部１４を設けている。
条件コード検知部１５は、画像読取部１１から入力される画像データが表すコード配列をブロックに分割し、それらのブロックから条件コードを検知する。
【００１７】
制御部１６は、禁止コード検知部１４及び条件コード検知部１５からの出力に基づいて画像マスク部１７に対して例えば画像の塗り潰しを指示する信号を出力する。本実施の形態では、画像の他の媒体への印刷を制限する制限手段の一例として、制御部１６を設けている。
画像マスク部１７は、制御部１６から画像の塗り潰しを指示する信号が出力されると、画像処理部１２により画像処理が施された画像の塗り潰し処理を行う。
画像形成部１８は、紙等の記録媒体に画像を形成する。ここで、画像形成部１８は、例えばプリンタであり、感光体に付着させたトナーを記録媒体に転写して像を形成する電子写真方式や、インクを記録媒体上に吐出して像を形成するインクジェット方式のものを用いるとよい。
【００１８】
角度判定部２１は、画像読取部１１から入力される画像データからパターン画像を検出し、その回転角度を判定する。ここで、回転角度は、２つ以上のコード画像の相対位置に基づいて判定する。また、回転角度としては、９０°を４分割して得られる角度０〜４のうちの何れかを出力する。本実施の形態では、特定画像の回転角度を判定する角度判定手段の一例として、角度判定部２１を設けている。
角度０カウンタ２２ａは、角度判定部２１から角度０が出力された回数をカウントするためのカウンタである。
角度１カウンタ２２ｂは、角度判定部２１から角度１が出力された回数をカウントするためのカウンタである。
角度２カウンタ２２ｃは、角度判定部２１から角度２が出力された回数をカウントするためのカウンタである。
角度３カウンタ２２ｄは、角度判定部２１から角度３が出力された回数をカウントするためのカウンタである。
禁止ブロック判定部２３は、角度０カウンタ２２ａ、角度１カウンタ２２ｂ、角度２カウンタ２２ｃ、角度３カウンタ２２ｄのカウント値に基づいて、ブロックを禁止コード検出の対象とするかどうかを判定する。本実施の形態では、特定領域を検出の対象にするかどうかを判定する判定手段の一例として、また、特定領域を所定の処理の対象にするかどうかを判定する処理対象判定手段の一例として、禁止ブロック判定部２３を設けている。
【００１９】
尚、本実施の形態では、ブロックを禁止コード検出の対象とするかどうかを判定することを前提に説明するが、これには限らない。即ち、ブロックを条件コード検出の対象とするかどうかを判定するものであってもよい。この場合は、角度判定部２１、角度０カウンタ２２ａ、角度１カウンタ２２ｂ、角度２カウンタ２２ｃ、角度３カウンタ２２ｄ、禁止ブロック判定部２３を、条件コード検知部１５の前段に設けるとよい。
【００２０】
次いで、複写装置１０の動作について説明する。
複写装置１０では、まず、画像読取部１１が原稿画像を読み取って得られた画像データを、画像処理部１２、角度判定部２１、禁止コード検知部１４、条件コード検知部１５に出力する。
これにより、画像処理部１２は、画像読取部１１から出力された画像データに対して所定の画像処理を施し、画像マスク部１７に出力する。
また、角度判定部２１は、画像読取部１１から出力された画像データに含まれるパターン画像の回転角度を判定し、その結果を角度０カウンタ２２ａ、角度１カウンタ２２ｂ、角度２カウンタ２２ｃ、角度３カウンタ２２ｄに格納する。そして、禁止ブロック判定部２３が、これらのカウンタに格納されたカウント値に基づいて、ブロックが禁止コード検出対象かどうかを示す情報を禁止コード検知部１４に出力する。尚、この禁止ブロック判定処理の詳細については後述する。
【００２１】
更に、禁止コード検知部１４は、画像読取部１１から出力された画像データから禁止コードを検出する。
ここで、禁止コード検知部１４の動作について説明する。
図４は、禁止コード検知部１４の動作例を示したフローチャートである。
禁止コード検知部１４は、まず、画像読取部１１から入力された画像データを“０”又は“１”の２値データに変換する（ステップ１０１）。そして、２値データに含まれるノイズ成分を除去する（ステップ１０２）。ここでは、例えば、黒画素が連結している画素塊を求め、その画素塊の大きさが所定の範囲にない画素塊の各画素を白画素に置き換える。所定の範囲としては、斜線パターンは削除されず、例えば、孤立ドットパターンが削除されるような範囲を設定するとよい。
【００２２】
次に、禁止コード検知部１４は、ノイズ除去後の画像から、図１に示した２種類のパターン画像を検出し、各パターン画像をビット“０”又はビット“１”に置き換えて、コード配列を求める（ステップ１０３）。例えば、２値データで表された画像中の各画素の位置で、基準となる右下がり斜線パターン及び右上がり斜線パターンを順次当てはめて、テンプレートマッチングによってパターン画像を検出する。そして、図１のパターン画像を用いたとすると、右下がり斜線パターンを検出した場合にはビット“０”を出力し、右上がり斜線パターンを検出した場合にはビット“１”を出力する。尚、テンプレートマッチングを利用したパターン画像の検出手法は公知の技術であるので、詳細な説明は省略する。
【００２３】
その後、禁止コード検知部１４は、ビット“０”又はビット“１”からなるコード配列を、所定サイズの小領域（ブロック）に分割する（ステップ１０４）。例えば、ブロックのサイズを、制御領域のサイズの半分よりも小さいサイズとし、各制御領域の中に１個以上のブロックが完全に含まれるようなサイズに設定する。
【００２４】
このようにしてコード配列は複数のブロックに分割されるが、本実施の形態では、禁止ブロック判定部２３が、後述する処理により、各ブロックが禁止コード検出対象かどうかを判定し、その結果を禁止コード検知部１４に出力している。そこで、禁止コード検知部１４は、この判定結果を受けて、各ブロックが禁止コード検出対象かどうかを示す情報を保持する（ステップ１０５）。
【００２５】
また、禁止コード検知部１４は、ステップ１０５で禁止コード検出対象と判定されたブロックについて、その属性を決定する（ステップ１０６）。ここで、ブロックの属性とは、そのブロックが、ビット“０”を多く含む禁止ブロック０であるか、ビット“１”を多く含む禁止ブロック１であるか、ビット“０”及びビット“１”を含む条件ブロックであるか、を意味する。従って、まず、禁止コード検出対象のブロックについて、その中に存在するビット“０”及びビット“１”の個数をそれぞれ算出し、その個数の合計値も算出する。そして、ビット“０”の個数と合計値とから求めたビット“０”の比率に基づいて、ブロックの属性を判定する。
【００２６】
ここで、注目するブロックが、禁止領域０の内部に位置している場合、ブロックの内部には所定個数以上のビット“０”が検出され、かつ、ビット“１”は殆ど検出されないため、ビット“０”の比率が高く、比率１００％〜０％を１．０〜０．０と表現すると殆ど１．０に近いはずである。
また、注目するブロックが、禁止領域１の内部に位置している場合、ブロックの内部には所定個数以上のビット“１”が検出され、かつ、ビット“０”は殆ど検出されないため、ビット“０”の比率は低く、殆ど０．０に近いはずである。
更に、注目するブロックが、条件領域の内部に位置している場合、ブロックの内部には複数のビット“０”及び複数のビット“１”が検出されるため、ビット“０”の比率は１．０よりもかなり低く、０．０よりもかなり高くなるはずである。
また、画像読取部１１から出力された画像データが、制御情報が埋め込まれた原稿画像に対応するものである場合、ブロックの内部にはビット“０”とビット“１”とがそれぞれが複数個埋め込まれているはずである。
【００２７】
禁止コード検知部１４は、このような特性を利用し、ブロックの属性を以下のように決定する。即ち、
１）パターン画像の合計個数＞閾値Ｔｈ１、かつ、ビット“０”の比率＞閾値Ｔｈ２の場合、ブロックは禁止領域０に属する、
２）パターン画像の合計個数＞閾値Ｔｈ１、かつ、（１−ビット“０”の比率）＞閾値Ｔｈ２の場合、ブロックは禁止領域１に属する、
３）１）及び２）の何れでもない場合、ブロックは禁止領域には属していない、
と判定する。
【００２８】
ここで、閾値Ｔｈ１は、ブロックのサイズと制御領域のサイズとからブロックに理論上含まれるパターン画像の個数を求め、これにマージンを加味して設定するとよい。また、閾値Ｔｈ２は、１．０に近い値を設定する（一例として、閾値Ｔｈ２＝０．９５）。
【００２９】
次に、禁止コード検知部１４は、禁止ブロック０の数、及び、禁止ブロック１の数をそれぞれ別にカウントする（ステップ１０７）。そして、このカウントされた値と閾値Ｔｈ３とを比較する（ステップ１０８）。ここで、閾値Ｔｈ３は、禁止コードの種類数に応じて適宜調整するとよい。
【００３０】
その結果、禁止ブロック０の数が閾値Ｔｈ３以上となり、かつ、禁止ブロック１の数が閾値Ｔｈ３以上となった場合、その画像を複製禁止文書と判定し（ステップ１０９）、それ以外は複製禁止文書に該当しないと判定する（ステップ１１０）。そして、各判定結果を制御部１６へ出力する（ステップ１１１）。
【００３１】
一方、条件コード検知部１５は、画像読取部１１から出力された画像データから条件コードを検出する。
尚、条件コードの検出処理は、以下の点を除き、禁止コードの検出処理と同様である。
第一に、条件コードを検出する際には、原稿読取り時のスキュー角度を考慮する必要があるという点である。原稿が９０度回転していた場合、ビット“０”に対応する右下がり斜線パターンは、ビット“１”に対応する右上がり斜線パターンとして検出され、ビット“１”に対応する右上がり斜線パターンは、ビット“０”に対応する右下がり斜線パターンとして検出される。このようにビット“０”とビット“１”の逆転が起こっても、複製禁止文書かどうかの判定には影響しない。しかしながら、条件コードを検出する場合は、各パターン画像がビット“０”を表すのかビット“１”を表すのかを正確に判断しないと、誤った情報を抽出することになるからである。
第二に、条件コードについては、誤った情報を抽出することによる誤動作を避けるため、誤り訂正符号化が行われる。従って、条件コードの検出においては、誤り訂正の復号処理を行う必要がある。
【００３２】
以上により、制御部１６は、禁止コード検知部１４からの出力に応じて、原稿が複製禁止文書であるときには、画像を塗り潰すことを指示する信号を、原稿が複製禁止文書でないときには、画像を塗り潰さずに通常の複製を行うように指示する信号を、画像マスク部１７に対して出力する。尚、制御部１６は、原稿が複製禁止文書であるときには、画像形成部１８に対してコピー動作の中止を指示する信号を出力してもよい。また、制御部１６は、条件コード検知部１５からの出力に応じて、所定の条件が満足されれば複製を行うように指示する信号を出力するようにしてもよい。
【００３３】
次に、角度判定部２１及び禁止ブロック判定部２３による禁止ブロック判定処理について説明する。
図５は、禁止ブロック判定時の動作例を示したフローチャートである。尚、この動作例に先立ち、角度判定部２１は、画像読取部１１が出力した画像データからパターン画像の中心を検出し、パターン中心データとして保持しているものとする。例えば、白画素で囲まれた所定サイズの領域をパターン画像の領域として認識し、その領域を二等分する垂直方向の直線とその領域を二等分する水平方向の直線との交点をパターン画像の中心とすればよい。即ち、本実施の形態では、特定画像を検出する検出手段の一例として、角度判定部２１を設けている。
【００３４】
動作を開始すると、まず、角度判定部２１が、パターン画像の回転角度を判定する角度判定処理を行う（ステップ２０１）。尚、この角度判定処理の詳細は後述する。
そして、角度判定部２１は、回転角度が角度０であるかどうかを判定し（ステップ２０２）、角度０であれば、角度０カウンタ２２ａに１を加算する（ステップ２０３）。回転角度が角度０でなければ、角度１であるかどうかを判定し（ステップ２０４）、角度１であれば、角度１カウンタ２２ｂに１を加算する（ステップ２０５）。また、回転角度が角度１でなければ、角度２であるかどうかを判定し（ステップ２０６）、角度２であれば、角度２カウンタ２２ｃに１を加算する（ステップ２０７）更に、回転角度が角度２でなければ、角度３であるかどうかを判定し（ステップ２０８）、角度３であれば、角度３カウンタ２２ｄに１を加算する（ステップ２０９）。一方、回転角度が角度３でなければ、どのカウンタにも１を加算せずに、ステップ２１０へ進む。
【００３５】
その後、角度判定部２１は、ブロック内の全てのパターン画像の回転角度を算出したかどうかを判定する（ステップ２１０）。ここで、全てのパターン画像の回転角度を算出していないと判定された場合は、ステップ２０１に戻り、次のパターン画像について同様の処理を繰り返す。一方、全てのパターン画像の回転角度を算出したと判定された場合は、禁止ブロックの判定処理に移る。
【００３６】
禁止ブロックの判定処理において、禁止ブロック判定部２３は、まず、角度０カウンタ２２ａ、角度１カウンタ２２ｂ、角度２カウンタ２２ｃ、角度３カウンタ２２ｄのうち、カウント値＞閾値ＴＨ＿ｈｉｇｈ１となるカウンタが１つであるかどうかを判定する（ステップ２１１）。
【００３７】
その結果、カウント値＞閾値ＴＨ＿ｈｉｇｈ１となるカウンタが１つであると判定された場合は、次に、カウント値＜閾値ＴＨ＿ｌｏｗ１となるカウンタが３つであるかどうかを判定する（ステップ２１２）。そして、カウント値＜閾値ＴＨ＿ｌｏｗ１となるカウンタが３つでないと判定された場合は、着目しているブロックにおける回転角度Ａｎｇを角度４に設定する（ステップ２１３）。ここで、角度４とは、ブロック内にコード画像以外の画素塊が存在するため、ブロックにおける回転角度として一定の角度を特定できなかったことを示す情報である。また、カウント値＜閾値ＴＨ＿ｌｏｗ１となるカウンタが３つであると判定された場合は、Ａｎｇを特定の角度に設定することなく処理を終了する。
【００３８】
一方、カウント値＞閾値ＴＨ＿ｈｉｇｈ１となるカウンタが１つでないと判定された場合は、次に、カウント値＞閾値ＴＨ＿ｈｉｇｈ２となるカウンタが隣接する２つの角度に対応するカウンタであるかどうかを判定する（ステップ２１４）。ここで、「角度が隣接する」とは、原則として、角度の番号の差が１である場合を言うが、角度０と角度３も隣接する角度であるとする。そして、カウント値＞閾値ＴＨ＿ｈｉｇｈ２となるカウンタが隣接する２つの角度に対応するカウンタでないと判定された場合は、着目しているブロックにおける回転角度Ａｎｇを角度４に設定する（ステップ２１６）。ここで、角度４とは、前述の通り、ブロックにおける回転角度として一定の角度を特定できなかったことを示す情報である。また、カウント値＞閾値ＴＨ＿ｈｉｇｈ２となるカウンタが隣接する２つであると判定された場合は、カウント値＜閾値ＴＨ＿ｌｏｗ２となるカウンタが２つであるかどうかを判定する（ステップ２１５）。そして、カウント値＜閾値ＴＨ＿ｌｏｗ２となるカウンタが２つでないと判定された場合は、着目しているブロックにおける回転角度Ａｎｇを角度４に設定する（ステップ２１６）。また、カウント値＜閾値ＴＨ＿ｌｏｗ２となるカウンタが２つであると判定された場合は、Ａｎｇを特定の角度に設定することなく処理を終了する。
【００３９】
ここで、図５のステップ２０１における角度判定処理について詳細に説明する。
図６（ａ）は、この角度判定処理で用いる角度０判定ウィンドウであり、同図（ｂ）は、角度判定部２１の動作例を示したフローチャートである。
まず、（ａ）の角度０判定ウィンドウについて説明する。
この角度０判定ウィンドウは、画像読取部１１で画像が読み取られた際のスキュー角度が０°であって、コード画像の中心がウィンドウの中心位置に存在する場合に、隣接するコード画像が存在するはずの位置を、領域０、領域１、領域２、領域３として示したものである。
【００４０】
次に、（ｂ）の動作例について説明する。
動作を開始すると、まず、角度判定部２１は、パターン中心データの任意の位置に角度０判定ウィンドウを重ね、角度０判定ウィンドウの中心位置にパターン画像が存在するかどうかを判定する（ステップ２２１）。ここで、中心位置にパターン画像が存在すれば、領域０〜３のうち、パターン画像を含む領域が１つ以上存在するかどうかを判定する（ステップ２２２）。また、パターン画像を含む領域が１つ以上存在すれば、領域０〜３のうち、画像を含む領域が３つ以上存在するかどうかを判定する（ステップ２２３）。ここで、画像とは、コード画像に限らず、文字や線等の通常の画像を意味する。即ち、角度判定部２１は、画像読取部１１から入力された画像データの同じ位置にも角度０判定ウィンドウを重ねて、このような判定を行う。その結果、画像を含む領域が３つ以上存在すれば、角度０フラグをＯＮに設定する（ステップ２２４）。
【００４１】
一方、ステップ２２１で中心位置にパターン画像が存在しないと判定された場合、ステップ２２２でパターン画像を含む領域が１つ以上存在しないと判定された場合、ステップ２２３で画像を含む領域が３つ以上存在しないと判定された場合は、角度０フラグをＯＦＦに設定する（ステップ２２５）。
【００４２】
尚、媒体の端部においては領域０〜３のうちの２つにしかコード画像が存在しないことも考えられるので、ステップ２２３では、画像を含む領域が２つ以上存在するかどうかを判定するようにしてもよい。或いは、逆に条件を厳しくして、画像を含む領域が４つ以上存在するかどうかを判定するようにしてもよい。
【００４３】
また、ここで述べた角度判定処理は、角度０に対するものであったが、角度１〜３についても同様の処理を行う。即ち、角度１については、角度１判定ウィンドウ（図７参照）を用いて、角度１フラグをＯＮ又はＯＦＦに設定する。また、角度２については、角度２判定ウィンドウ（図７参照）を用いて、角度２フラグをＯＮ又はＯＦＦに設定する。更に、角度３については、角度３判定ウィンドウ（図７参照）を用いて、角度３フラグをＯＮ又はＯＦＦに設定する。
【００４４】
次に、このようにＯＮ又はＯＦＦに設定された角度ごとのフラグから、角度を決定する方法について説明する。
図７は、このときの角度の決定方法を模式的に示した図である。
図示するように、角度０フラグのみがＯＮに設定されている場合に、角度０を出力し、角度１フラグのみがＯＮに設定されている場合に、角度１を出力する。また、角度２フラグのみがＯＮに設定されている場合に、角度２を出力し、角度３フラグのみがＯＮに設定されている場合に、角度３を出力する。一方、これら以外の場合には、角度４を出力する。
【００４５】
尚、図７では、角度０判定ウィンドウ、角度１判定ウィンドウ、角度２判定ウィンドウ、角度３判定ウィンドウの間で、領域０〜３は互いに重なりを持たないように描いている。しかしながら、領域０〜３は、異なる判定ウィンドウ間で一部が重なっていてもよい。例えば、角度０判定ウィンドウと角度１判定ウィンドウにおいて、領域０〜３の一部が同じ範囲を占めていてもよい。
また、本実施の形態では、角度は４種類としたが、少なくとも２種類あればよい。逆に、４種類以上に細かく分割してもよい。
【００４６】
次いで、角度０カウンタ２２ａ、角度１カウンタ２２ｂ、角度２カウンタ２２ｃ、角度３カウンタ２２ｄのカウンタ値から、禁止ブロックを判定する方法について説明する。
図８は、このときの禁止ブロックの判定方法を模式的に示した図である。
図示するように、角度０カウンタ２２ａ、角度１カウンタ２２ｂ、角度２カウンタ２２ｃ、角度３カウンタ２２ｄのカウント値をヒストグラム化し、その分布状況に基づいて、ブロックにおけるパターン画像の回転角度を判定する。
例えば、上から１、３、５、７番目のヒストグラムのように、１つの角度のカウント値が閾値ＴＨ＿ｈｉｇｈ１より大きく、他の３つの角度のカウント値が閾値ＴＨ＿ｌｏｗ１より小さい場合は、ブロックにおける回転角度として、上記１つの角度を採用する。また、上から２、４、６、８番目のヒストグラムのように、２つの隣接する角度のカウント値が閾値ＴＨ＿ｈｉｇｈ２より大きく、他の２つの角度のカウント値が閾値ＴＨ＿ｌｏｗ２より小さい場合は、ブロックにおける回転角度として、上記２つの隣接する角度の何れかを採用する。ここでは、隣接する２つの角度のうち角度の番号が小さい方（角度０と角度３の場合は、角度３）を採用している。尚、これらの場合、回転角度Ａｎｇは如何なる角度にも設定されない。
一方、これら以外の場合、回転角度Ａｎｇは角度４に設定される。
【００４７】
その後、ブロックにおける回転角度が角度０〜角度３で、Ａｎｇに何も設定されていない場合は、注目しているブロックを、コード画像を含むブロックであると判定する。この場合、禁止ブロック判定部２３はＯＮを出力し、禁止コード検知部１４において、ブロック内の情報が利用されることになる。
一方、ブロックにおける回転角度Ａｎｇが角度４の場合は、注目しているブロックを、コード画像を含むブロックでないと判定する。この場合、禁止ブロック判定部２３はＯＦＦを出力し、禁止コード検知部１４において、ブロック内の情報が検知対象から除外される。
【００４８】
ここで、禁止ブロックの判定の対象となるブロックの選択方法について説明しておく。
図９は、ブロックの選択方法について説明するための図である。
図示するように、まず、主走査方向に任意のサイズのブロックに区切り、各ブロックに対してこれまで述べた処理を行う。このようにして、個々のブロックについて、禁止ブロックであるかどうかの判定が行われることになる。
【００４９】
［第２の実施の形態］
第２の実施の形態では、２つ以上のコード画像の相対位置に基づく方法で求めた回転角度は別の方法で求めた回転角度と一致するはずであることに着目する。
図１０は、第２の実施の形態における複写装置１０の構成例を示したブロック図である。
図示するように、複写装置１０は、画像読取部１１と、画像処理部１２と、禁止コード検知部１４と、条件コード検知部１５と、制御部１６と、画像マスク部１７と、画像形成部１８とを備える。また、第１角度判定部３１ａと、第２角度判定部３１ｂと、角度比較部３２と、一致カウンタ３３と、不一致カウンタ３４と、禁止ブロック判定部３５とを備える。
このうち、画像読取部１１、画像処理部１２、禁止コード検知部１４、条件コード検知部１５、制御部１６、画像マスク部１７、画像形成部１８については、第１の実施の形態で説明したので、ここでの詳細な説明は省略する。
【００５０】
第１角度判定部３１ａは、画像読取部１１から入力される画像データからパターン画像を検出し、その回転角度を第１の方法で判定する。ここで、第１の方法としては、２つ以上のコード画像の相対位置に基づく判定方法を用いる。例えば、第１の実施の形態で述べたように、角度判定ウィンドウを用いた判定方法を採用するとよい。本実施の形態では、特定画像の回転角度を第１の方法で判定する第１の角度判定手段の一例として、第１角度判定部３１ａを設けている。
第２角度判定部３１ｂは、画像読取部１１から入力される画像データからパターン画像を検出し、その回転角度を第２の方法で判定する。ここで、第２の方法としては、例えば、パターンマッチングによる方法を採用するとよい。このパターンマッチングにより回転角度を判定する方法は公知の技術であるので、詳細な説明は省略する。また、第２の方法として、これ以外の方法を用いてもよい。特に、第１角度判定部３１ａで採用したのと同様にコード画像の相対位置に基づく判定方法であって、第１角度判定部３１ａで採用したものとは異なる方法を採用してもよい。本実施の形態では、特定画像の回転角度を第２の方法で判定する第２の角度判定手段の一例として、第２角度判定部３１ｂを設けている。
【００５１】
角度比較部３２は、第１角度判定部３１ａにより判定された回転角度と、第２角度判定部３１ｂにより判定された回転角度とが一致するかどうかを判定し、その結果を出力する。
一致カウンタ３３は、角度比較部３２から２つの回転角度が一致する旨が出力された回数をカウントするためのカウンタである。
不一致カウンタ３４は、角度比較部３２から２つの回転角度が一致しない旨が出力された回数をカウントするためのカウンタである。
禁止ブロック判定部３５は、一致カウンタ３３及び不一致カウンタ３４のカウント値に基づいて、ブロックを禁止コード検出の対象とするかどうかを判定する。本実施の形態では、特定領域を検出の対象にするかどうかを判定する判定手段の一例として、また、特定領域を所定の処理の対象にするかどうかを判定する処理対象判定手段の一例として、禁止ブロック判定部３５を設けている。
【００５２】
尚、本実施の形態では、ブロックを禁止コード検出の対象とするかどうかを判定することを前提に説明するが、これには限らない。即ち、ブロックを条件コード検出の対象とするかどうかを判定するものであってもよい。この場合は、第１角度判定部３１ａ、第２角度判定部３１ｂ、角度比較部３２、一致カウンタ３３、不一致カウンタ３４、禁止ブロック判定部３５を、条件コード検知部１５の前段に設けるとよい。
【００５３】
次いで、複写装置１０の動作について説明する。尚、画像読取部１１、画像処理部１２、禁止コード検知部１４、条件コード検知部１５、制御部１６、画像マスク部１７、画像形成部１８に関する動作は、第１の実施の形態で説明したので、ここでは、第１角度判定部３１ａ、第２角度判定部３１ｂ、角度比較部３２、禁止ブロック判定部３５による禁止ブロック判定処理について説明する。
図１１は、禁止ブロック判定時の動作例を示したフローチャートである。尚、この動作例に先立ち、第１角度判定部３１ａ及び第２角度判定部３１ｂは、画像読取部１１が出力した画像データからパターン画像の中心を検出し、パターン中心データとして保持しているものとする。例えば、白画素で囲まれた所定サイズの領域をパターン画像の領域として認識し、その領域を二等分する垂直方向の直線とその領域を二等分する水平方向の直線との交点をパターン画像の中心とすればよい。即ち、本実施の形態では、特定画像を検出する検出手段の一例として、第１角度判定部３１ａ及び第２角度判定部３１ｂを設けている。
【００５４】
動作を開始すると、まず、第１角度判定部３１ａが、パターン画像の回転角度を判定する角度判定処理を行う（ステップ３０１）。尚、この角度判定処理の詳細は、第１の実施の形態で述べたので、説明を省略する。次に、第２角度判定部３１ｂが、例えばパターンマッチングによりパターン画像の回転角度を判定する（ステップ３０２）。尚、ここでは、説明の都合上、第１角度判定部３１ａ、第２角度判定部３１ｂの順に判定するようにしたが、第２角度判定部３１ｂ、第１角度判定部３１ａの順に判定するようにしてもよいし、並列処理で略同時に判定するようにしてもよい。
尚、ここで求められる回転角度は、９０°を少なくとも２分割して得た角度を単位としたものであればよい。また、第１角度判定部３１ａが求める回転角度と、第２角度判定部３１ｂが求める回転角度とで、角度の分割数（９０°を幾つに分割して得た角度を用いるか）は異なっていてもよい。
【００５５】
次に、角度比較部３２は、これら２つの方法で判定された回転角度が一致するかどうかを判定する（ステップ３０３）。ここで、回転角度が一致すれば、一致カウンタ３３に１を加算し（ステップ３０４）、回転角度が一致しなければ、不一致カウンタ３４に１を加算する（ステップ３０５）。尚、ここでは便宜上「一致」と表現したが、「一致」と判定する角度にある程度の幅を持たせてもよい。つまり、完全に一致しなくても、ある程度近似する範囲であれば「一致」に含めるようにしてよい。例えば、隣接する角度の場合に「一致する」と判定してもよい。
【００５６】
その後、角度比較部３２は、ブロック内の全てのパターン画像の回転角度について比較したかを判定する（ステップ３０６）。ここで、全てのパターン画像の回転角度について比較していないと判定された場合は、ステップ３０１に戻り、次のパターン画像について同様の処理を繰り返す。一方、全てのパターン画像の回転角度について比較したと判定された場合は、禁止ブロックの判定処理に移る。
【００５７】
禁止ブロックの判定処理において、禁止ブロック判定部３５は、まず、一致カウンタ３３のカウント値である一致カウント値について、一致カウント値＞閾値ＴＨ＿ｈｉｇｈが成り立つかどうかを判定する（ステップ３０７）。
その結果、一致カウント値＞閾値ＴＨ＿ｈｉｇｈが成り立たないと判定された場合は、そのブロックを禁止コード検知対象から除外する（ステップ３０９）。
一方、一致カウント値＞閾値ＴＨ＿ｈｉｇｈが成り立つと判定された場合は、次に、不一致カウンタ３４のカウント値である不一致カウント値について、不一致カウント値＜閾値ＴＨ＿ｌｏｗが成り立つかどうかを判定する（ステップ３０８）。
【００５８】
その結果、不一致カウント値＜閾値ＴＨ＿ｌｏｗが成り立たないと判定された場合は、そのブロックを禁止コード検知対象から除外する（ステップ３０９）。
一方、不一致カウント値＜閾値ＴＨ＿ｌｏｗが成り立つと判定された場合は、何もせずに処理を終了する。本実施の形態では、注目しているブロックを禁止コード対象から除外する旨の情報を禁止コード検知部１４に出力しない限り、各ブロックは禁止コード検知対象として扱われるためである。
【００５９】
［第３の実施の形態］
第３の実施の形態でも、２つ以上のコード画像の相対位置に基づく方法で求めた回転角度は別の方法で求めた回転角度と一致するはずであることに着目する。
図１２は、第３の実施の形態における複写装置１０の構成例を示したブロック図である。
図示するように、複写装置１０は、画像読取部１１と、画像処理部１２と、禁止コード検知部１４と、条件コード検知部１５と、制御部１６と、画像マスク部１７と、画像形成部１８とを備える。また、第１角度判定部４１と、第１角度０カウンタ４２ａと、第１角度１カウンタ４２ｂと、第１角度２カウンタ４２ｃと、第１角度３カウンタ４２ｄと、第２角度判定部４３と、第２角度０カウンタ４４ａと、第２角度１カウンタ４４ｂと、第２角度２カウンタ４４ｃと、第２角度３カウンタ４４ｄと、禁止ブロック判定部４５とを備える。
このうち、画像読取部１１、画像処理部１２、禁止コード検知部１４、条件コード検知部１５、制御部１６、画像マスク部１７、画像形成部１８については、第１の実施の形態で説明したので、ここでの詳細な説明は省略する。
【００６０】
第１角度判定部４１は、画像読取部１１から入力される画像データからパターン画像を検出し、その回転角度を第１の方法で判定する。ここで、第１の方法としては、２つ以上のコード画像の相対位置に基づく判定方法を用いる。例えば、第１の実施の形態で述べたように、角度判定ウィンドウを用いた判定方法を採用するとよい。また、回転角度としては、９０°を４分割して得られる角度０〜４のうちの何れかを出力する。本実施の形態では、特定画像の回転角度を判定する角度判定手段の一例として、第１角度判定部４１を設けている。
第１角度０カウンタ４２ａは、第１角度判定部４１から角度０が出力された回数をカウントするためのカウンタである。
第１角度１カウンタ４２ｂは、第１角度判定部４１から角度１が出力された回数をカウントするためのカウンタである。
第１角度２カウンタ４２ｃは、第１角度判定部４１から角度２が出力された回数をカウントするためのカウンタである。
第１角度３カウンタ４２ｄは、第１角度判定部４１から角度３が出力された回数をカウントするためのカウンタである。
【００６１】
第２角度判定部４３は、画像読取部１１から入力される画像データからパターン画像を検出し、その回転角度を第２の方法で判定する。ここで、第２の方法としては、例えば、パターンマッチングによる方法を採用するとよい。このパターンマッチングにより回転角度を判定する方法は公知の技術であるので、詳細な説明は省略する。また、第２の方法として、これ以外の方法を用いてもよい。特に、第１角度判定部４１で採用したのと同様にコード画像の相対位置に基づく判定方法であって、第１角度判定部４１で採用したものとは異なる方法を採用してもよい。また、回転角度としては、９０°を４分割して得られる角度０〜４のうちの何れかを出力する。
第２角度０カウンタ４４ａは、第２角度判定部４３から角度０が出力された回数をカウントするためのカウンタである。
第２角度１カウンタ４４ｂは、第２角度判定部４３から角度１が出力された回数をカウントするためのカウンタである。
第２角度２カウンタ４４ｃは、第２角度判定部４３から角度２が出力された回数をカウントするためのカウンタである。
第２角度３カウンタ４４ｄは、第２角度判定部４３から角度３が出力された回数をカウントするためのカウンタである。
禁止ブロック判定部４５は、第１角度０カウンタ４２ａ、第１角度１カウンタ４２ｂ、第１角度２カウンタ４２ｃ、第１角度３カウンタ４２ｄ、第２角度０カウンタ４４ａ、第２角度１カウンタ４４ｂ、第２角度２カウンタ４４ｃ、第２角度３カウンタ４４ｄのカウント値に基づいて、ブロックを禁止コード検出の対象とするかどうかを判定する。本実施の形態では、特定領域を検出の対象にするかどうかを判定する判定手段の一例として、また、特定領域を所定の処理の対象にするかどうかを判定する処理対象判定手段の一例として、禁止ブロック判定部４５を設けている。
【００６２】
尚、本実施の形態では、ブロックを禁止コード検出の対象とするかどうかを判定することを前提に説明するが、これには限らない。即ち、ブロックを条件コード検出の対象とするかどうかを判定するものであってもよい。この場合は、第１角度判定部４１、第１角度０カウンタ４２ａ、第１角度１カウンタ４２ｂ、第１角度２カウンタ４２ｃ、第１角度３カウンタ４２ｄ、第２角度判定部４３、第２角度０カウンタ４４ａ、第２角度１カウンタ４４ｂ、第２角度２カウンタ４４ｃ、第２角度３カウンタ４４ｄ、禁止ブロック判定部４５を、条件コード検知部１５の前段に設けるとよい。
【００６３】
次いで、複写装置１０の動作について説明する。尚、画像読取部１１、画像処理部１２、禁止コード検知部１４、条件コード検知部１５、制御部１６、画像マスク部１７、画像形成部１８に関する動作は、第１の実施の形態で説明したので、ここでは、第１角度判定部４１、第２角度判定部４３、禁止ブロック判定部４５による禁止ブロック判定処理について説明する。
図１３は、禁止ブロック判定時の動作例を示したフローチャートである。尚、この動作例に先立ち、第１角度判定部４１及び第２角度判定部４３は、画像読取部１１が出力した画像データからパターン画像の中心を検出し、パターン中心データとして保持しているものとする。例えば、白画素で囲まれた所定サイズの領域をパターン画像の領域として認識し、その領域を二等分する垂直方向の直線とその領域を二等分する水平方向の直線との交点をパターン画像の中心とすればよい。即ち、本実施の形態では、特定画像を検出する検出手段の一例として、第１角度判定部４１及び第２角度判定部４３を設けている。
【００６４】
動作を開始すると、まず、第１角度判定部４１が、パターン画像の回転角度を判定する角度判定処理を行う（ステップ４０１）。尚、この角度判定処理の詳細は、第１の実施の形態で述べたので、説明を省略する。
次に、第２角度判定部４３が、例えばパターンマッチングによりパターン画像の回転角度を判定する（ステップ４０２）。
尚、ここで求められる回転角度は、９０°を少なくとも２分割して得た角度を単位としたものであればよい。また、第１角度判定部４１が求める回転角度と、第２角度判定部４３が求める回転角度とで、角度の分割数（９０°を幾つに分割して得た角度を用いるか）は異なっていてもよい。
【００６５】
このとき、第１角度判定部４１は、ブロック内のパターン画像ごとに、回転角度が角度０であれば、第１角度０カウンタ４２ａに１を加算し、回転角度が角度１であれば、第１角度１カウンタ４２ｂに１を加算し、回転角度が角度２であれば、第１角度２カウンタ４２ｃに１を加算し、回転角度が角度３であれば、第１角度３カウンタ４２ｄに１を加算する。また、第２角度判定部４３は、ブロック内のパターン画像ごとに、回転角度が角度０であれば、第２角度０カウンタ４４ａに１を加算し、回転角度が角度１であれば、第２角度１カウンタ４４ｂに１を加算し、回転角度が角度２であれば、第２角度２カウンタ４４ｃに１を加算し、回転角度が角度３であれば、第２角度３カウンタ４４ｄに１を加算する。
【００６６】
そして、禁止ブロック判定部４５は、第１角度０カウンタ４２ａ、第１角度１カウンタ４２ｂ、第１角度２カウンタ４２ｃ、第１角度３カウンタ４２ｄのカウント値の分布状況を第１の実施の形態と同様に解析し、ブロックにおける回転角度Ａｎｇ１を判定する（ステップ４０３）。また、第２角度０カウンタ４４ａ、第２角度１カウンタ４４ｂ、第２角度２カウンタ４４ｃ、第２角度３カウンタ４４ｄのカウント値の分布状況を第１の実施の形態と同様に解析し、ブロックにおける回転角度Ａｎｇ２を判定する（ステップ４０４）。尚、ここでは、説明の都合上、第１角度判定部４１、第２角度判定部４３の順に判定するようにしたが、第２角度判定部４３、第１角度判定部４１の順に判定するようにしてもよいし、並列処理で略同時に判定するようにしてもよい。また、Ａｎｇ１、Ａｎｇ２についても、この順に判定するようにしたが、Ａｎｇ２、Ａｎｇ１の順に判定するようにしてもよいし、並列処理で略同時に判定するようにしてもよい。
【００６７】
次に、禁止ブロック判定部４５は、これら２つの方法で判定されたＡｎｇ１とＡｎｇ２が一致するかどうかを判定する（ステップ４０５）。尚、ここでは便宜上「一致」と表現したが、「一致」と判定する角度にある程度の幅を持たせてもよい。つまり、完全に一致しなくても、ある程度近似する範囲であれば「一致」に含めるようにしてよい。例えば、隣接する角度の場合に「一致する」と判定してもよい。
その結果、Ａｎｇ１とＡｎｇ２が一致しないと判定された場合は、そのブロックを禁止コード検知対象から除外する（ステップ４０７）。
一方、Ａｎｇ１とＡｎｇ２が一致すると判定された場合は、Ａｎｇ１が角度４でないかどうかを判定する（ステップ４０６）。つまり、図８に示したように、回転角度のヒストグラムが、１つの回転角度のカウント値が突出したものであるか、又は、隣接する２つの回転角度のカウント値が突出したものであるかを判定する。
【００６８】
その結果、Ａｎｇ１が角度４であると判定された場合は、そのブロックを禁止コード検知対象から除外する（ステップ４０７）。
一方、Ａｎｇ１が角度４でないと判定された場合は、何もせずに処理を終了する。本実施の形態では、注目しているブロックを禁止コード対象から除外する旨の情報を禁止コード検知部１４に出力しない限り、各ブロックは禁止コード検知対象として扱われるためである。
【００６９】
［第４の実施の形態］
第４の実施の形態では、第２の実施の形態と同様、２つ以上のコード画像の相対位置に基づく方法で求めた回転角度は別の方法で求めた回転角度と一致するはずであることに着目する。但し、ブロックを禁止コード検出の対象とするかどうかを判定する第２の実施の形態とは異なり、規則に従わないパターン画像をコード画像ではないとしてマスクする。
図１４は、第４の実施の形態における複写装置１０の構成例を示したブロック図である。
図示するように、複写装置１０は、画像読取部１１と、画像処理部１２と、禁止コード検知部１４と、条件コード検知部１５と、制御部１６と、画像マスク部１７と、画像形成部１８とを備える。また、第１角度判定部３６ａと、第２角度判定部３６ｂと、角度比較部３７と、パターン画像マスク部３８とを備える。
このうち、画像読取部１１、画像処理部１２、禁止コード検知部１４、条件コード検知部１５、制御部１６、画像マスク部１７、画像形成部１８については、第１の実施の形態で説明したので、ここでの詳細な説明は省略する。
【００７０】
第１角度判定部３６ａは、画像読取部１１から入力される画像データからパターン画像を検出し、その回転角度を第１の方法で判定する。ここで、第１の方法としては、２つ以上のコード画像の相対位置に基づく判定方法を用いる。例えば、第１の実施の形態で述べたように、角度判定ウィンドウを用いた判定方法を採用するとよい。本実施の形態では、特定画像の回転角度を第１の方法で判定する第１の角度判定手段の一例として、第１角度判定部３６ａを設けている。
第２角度判定部３６ｂは、画像読取部１１から入力される画像データからパターン画像を検出し、その回転角度を第２の方法で判定する。ここで、第２の方法としては、例えば、パターンマッチングによる方法を採用するとよい。このパターンマッチングにより回転角度を判定する方法は公知の技術であるので、詳細な説明は省略する。また、第２の方法として、これ以外の方法を用いてもよい。特に、第１角度判定部３６ａで採用したのと同様にコード画像の相対位置に基づく判定方法であって、第１角度判定部３６ａで採用したものとは異なる方法を採用してもよい。本実施の形態では、特定画像の回転角度を第２の方法で判定する第２の角度判定手段の一例として、第２角度判定部３６ｂを設けている。
【００７１】
角度比較部３７は、第１角度判定部３６ａにより判定された回転角度と、第２角度判定部３６ｂにより判定された回転角度とが一致するかどうかを判定し、その結果を出力する。
パターン画像マスク部３８は、角度比較部３７による回転角度の比較結果に基づいて、禁止コード検出対象から除外するパターン画像を決定し、そのパターン画像をマスクする。本実施の形態では、特定画像を検出の対象にするかどうかを判定する判定手段の一例として、また、一の特定画像を所定の処理の対象にするかどうかを判定する処理対象判定手段の一例として、パターン画像マスク部３８を設けている。
【００７２】
尚、本実施の形態では、パターン画像を禁止コード検出の対象から除外してマスクすることを前提に説明するが、これには限らない。即ち、パターン画像を条件コード検出の対象から除外してマスクするものであってもよい。この場合は、第１角度判定部３６ａ、第２角度判定部３６ｂ、角度比較部３７、パターン画像マスク部３８を、条件コード検知部１５の前段に設けるとよい。
【００７３】
次いで、複写装置１０の動作について説明する。尚、画像読取部１１、画像処理部１２、禁止コード検知部１４、条件コード検知部１５、制御部１６、画像マスク部１７、画像形成部１８に関する動作は、第１の実施の形態で説明したので、ここでは、第１角度判定部３６ａ、第２角度判定部３６ｂ、角度比較部３７、パターン画像マスク部３８によるパターン画像マスク処理について説明する。
図１５は、パターン画像マスク時の動作例を示したフローチャートである。尚、この動作例に先立ち、第１角度判定部３６ａ及び第２角度判定部３６ｂは、画像読取部１１が出力した画像データからパターン画像の中心を検出し、パターン中心データとして保持しているものとする。例えば、白画素で囲まれた所定サイズの領域をパターン画像の領域として認識し、その領域を二等分する垂直方向の直線とその領域を二等分する水平方向の直線との交点をパターン画像の中心とすればよい。即ち、本実施の形態では、特定画像を検出する検出手段の一例として、第１角度判定部３６ａ及び第２角度判定部３６ｂを設けている。
【００７４】
動作を開始すると、まず、第１角度判定部３６ａが、パターン画像の回転角度を判定する角度判定処理を行う（ステップ３５１）。尚、この角度判定処理の詳細は、第１の実施の形態で述べたので、説明を省略する。次に、第２角度判定部３６ｂが、例えばパターンマッチングによりパターン画像の回転角度を判定する（ステップ３５２）。尚、ここでは、説明の都合上、第１角度判定部３６ａ、第２角度判定部３６ｂの順に判定するようにしたが、第２角度判定部３６ｂ、第１角度判定部３６ａの順に判定するようにしてもよいし、並列処理で略同時に判定するようにしてもよい。
尚、ここで求められる回転角度は、９０°を少なくとも２分割して得た角度を単位としたものであればよい。また、第１角度判定部３６ａが求める回転角度と、第２角度判定部３６ｂが求める回転角度とで、角度の分割数（９０°を幾つに分割して得た角度を用いるか）は異なっていてもよい。
【００７５】
次に、角度比較部３７は、ステップ３５１で判定された回転角度が角度４でないかどうかを判定する（ステップ３５３）。ここで、角度４とは、図７を参照して説明したように、角度０フラグ、角度１フラグ、角度２フラグ、角度３フラグのうち、ＯＮに設定されているフラグが１つだけではない場合に、判定結果として出力される角度である。
その結果、ステップ３５１で判定された回転角度が角度４であると判定された場合は、そのパターン画像を禁止コード検知対象から除外し、マスクする（ステップ３５５）。
一方、ステップ３５１で判定された回転角度が角度４でないと判定された場合は、これら２つの方法で判定された回転角度が一致するかどうかを判定する（ステップ３５４）。
【００７６】
その結果、回転角度が一致しないと判定された場合は、そのパターン画像を禁止コード検知対象から除外し、マスクする（ステップ３５５）。
一方、回転角度が一致すると判定された場合は、何もせずに処理を終了する。本実施の形態では、注目しているパターン画像を禁止コード対象から除外する旨の情報を禁止コード検知部１４に出力しない限り、各パターン画像は禁止コード検知対象として扱われるためである。
尚、ここでは便宜上「一致」と表現したが、「一致」と判定する角度にある程度の幅を持たせてもよい。つまり、完全に一致しなくても、ある程度近似する範囲であれば「一致」に含めるようにしてよい。例えば、隣接する角度の場合に「一致する」と判定してもよい。
【００７７】
［第５の実施の形態］
第５の実施の形態では、２つのコード画像の間隔が予め決められた間隔になるはずであることに着目する。
図１６は、第５の実施の形態における複写装置１０の構成例を示したブロック図である。
図示するように、複写装置１０は、画像読取部１１と、画像処理部１２と、禁止コード検知部１４と、条件コード検知部１５と、制御部１６と、画像マスク部１７と、画像形成部１８とを備える。また、間隔判定部５１と、コードカウンタ５２と、非コードカウンタ５３と、禁止ブロック判定部５４とを備える。
このうち、画像読取部１１、画像処理部１２、禁止コード検知部１４、条件コード検知部１５、制御部１６、画像マスク部１７、画像形成部１８については、第１の実施の形態で説明したので、ここでの詳細な説明は省略する。
【００７８】
間隔判定部５１は、画像読取部１１から入力される画像データからパターン画像を検出し、それがコード画像であるかどうかを判定し、その結果を出力する。ここで、コード画像であるかどうかは、注目するパターン画像からコード画像間の間隔だけ離れた位置に他のパターン画像が存在するかどうかに基づいて判定する。本実施の形態では、特定画像の有無を判定する第１の判定手段の一例として、間隔判定部５１を設けている。
コードカウンタ５２は、間隔判定部５１からコード画像である旨が出力された回数をカウントするためのカウンタである。
非コードカウンタ５３は、間隔判定部５１からコード画像でない旨が出力された回数をカウントするためのカウンタである。
禁止ブロック判定部５４は、コードカウンタ５２及び非コードカウンタ５３のカウント値に基づいて、ブロックを禁止コード検出の対象とするかどうかを判定する。本実施の形態では、特定領域を検出の対象にするかどうかを判定する判定手段の一例として、また、特定領域を所定の処理の対象にするかどうかを判定する第２の判定手段の一例として、禁止ブロック判定部５４を設けている。
【００７９】
尚、本実施の形態では、ブロックを禁止コード検出の対象とするかどうかを判定することを前提に説明するが、これには限らない。即ち、ブロックを条件コード検出の対象とするかどうかを判定するものであってもよい。この場合は、間隔判定部５１、コードカウンタ５２、非コードカウンタ５３、禁止ブロック判定部５４を、条件コード検知部１５の前段に設けるとよい。
【００８０】
次いで、複写装置１０の動作について説明する。尚、画像読取部１１、画像処理部１２、禁止コード検知部１４、条件コード検知部１５、制御部１６、画像マスク部１７、画像形成部１８に関する動作は、第１の実施の形態で説明したので、ここでは、間隔判定部５１及び禁止ブロック判定部５４による禁止ブロック判定処理について説明する。
図１７は、禁止ブロック判定時の動作例を示したフローチャートである。尚、この動作例に先立ち、間隔判定部５１は、画像読取部１１が出力した画像データからパターン画像の中心を検出し、パターン中心データとして保持しているものとする。例えば、白画素で囲まれた所定サイズの領域をパターン画像の領域として認識し、その領域を二等分する垂直方向の直線とその領域を二等分する水平方向の直線との交点をパターン画像の中心とすればよい。即ち、本実施の形態では、特定画像を検出する検出手段の一例として、間隔判定部５１を設けている。
【００８１】
動作を開始すると、まず、間隔判定部５１がパターン画像の間隔が正常かどうかを判定する間隔判定処理を実行する（ステップ５０１）。尚、この間隔判定処理の詳細は後述する。
そして、間隔判定部５１は、パターン画像の間隔が正常であるかどうかを判定し（ステップ５０２）、正常であれば、コードカウンタ５２に１を加算し（ステップ５０３）、正常でなければ、非コードカウンタ５３に１を加算する（ステップ５０４）。ここで、「パターン画像の間隔が正常」とは、パターン画像の間隔が、予め決められたコード画像間の間隔に等しいことをいう。
【００８２】
その後、間隔判定部５１は、ブロック内の全てのパターン画像について間隔を評価したか判定する（ステップ５０５）。ここで、全てのパターン画像について間隔を評価していないと判定された場合は、ステップ５０１に戻り、次のパターン画像について同様の処理を繰り返す。一方、全てのパターン画像について間隔を評価したと判定された場合は、禁止ブロックの判定処理に移る。
【００８３】
禁止ブロックの判定処理において、禁止ブロック判定部５４は、まず、コードカウンタ５２のカウント値であるコードカウント値について、コードカウント値＞閾値ＴＨ＿ｈｉｇｈが成り立つかどうかを判定する（ステップ５０６）。
その結果、コードカウント値＞閾値ＴＨ＿ｈｉｇｈが成り立たないと判定された場合は、そのブロックを禁止コード検知対象から除外する（ステップ５０８）。
一方、コードカウント値＞閾値ＴＨ＿ｈｉｇｈが成り立つと判定された場合は、次に、非コードカウンタ５３のカウント値である非コードカウント値について、非コードカウント値＜閾値ＴＨ＿ｌｏｗが成り立つかどうかを判定する（ステップ５０７）。
【００８４】
その結果、非コードカウント値＜閾値ＴＨ＿ｌｏｗが成り立たないと判定された場合は、そのブロックを禁止コード検知対象から除外する（ステップ５０８）。
一方、非コードカウント値＜閾値ＴＨ＿ｌｏｗが成り立つと判定された場合は、何もせずに処理を終了する。本実施の形態では、注目しているブロックを禁止コード対象から除外する旨の情報を禁止コード検知部１４に出力しない限り、各ブロックは禁止コード検知対象として扱われるためである。
【００８５】
ここで、図１７のステップ５０１における間隔判定処理について詳細に説明する。
図１８（ａ），（ｂ）は、それぞれ、この間隔判定処理で用いる第１間隔判定ウィンドウ、第２間隔判定ウィンドウであり、同図（ｃ）は、間隔判定部５１の動作例を示したフローチャートである。
まず、（ａ）の第１間隔判定ウィンドウについて説明する。
この第１間隔判定ウィンドウは、注目するパターン画像に重ねる位置を中心位置とし、その周囲に、コード画像間の間隔よりも小さな半径の円内の領域である判定領域１を設けたものである。
また、（ｂ）の第２間隔判定ウィンドウについて説明する。
この第２間隔判定ウィンドウは、注目するパターン画像に重ねる位置を中心位置とし、その周囲に、コード画像間の間隔と同じ半径の円周の領域である判定領域２を設けたものである。
【００８６】
次に、（ｃ）の動作例について説明する。
動作を開始すると、まず、間隔判定部５１は、パターン中心データの任意の位置に第１間隔判定ウィンドウ及び第２間隔判定ウィンドウを重ね、これらのウィンドウの中心位置にパターン画像が存在するかどうかを判定する（ステップ５２１）。ここで、中心位置にパターン画像が存在すれば、第１間隔判定ウィンドウの判定領域１にパターン画像が存在しないかどうかを判定する（ステップ５２２）。また、判定領域１にパターン画像が存在しなければ、第２間隔判定ウィンドウの判定領域２に、パターン画像が存在するかどうかを判定する（ステップ５２３）。その結果、判定領域２にパターン画像が存在すれば、コードカウンタ５２に１を加算するためのＯＮ信号を出力する（ステップ５２４）。
【００８７】
一方、ステップ５２１で中心位置にパターン画像が存在しないと判定された場合、ステップ５２２で判定領域１にパターン画像が存在すると判定された場合、ステップ５２３で判定領域２にパターン画像が存在しないと判定された場合は、非コードカウンタ５３に１を加算するためのＯＦＦ信号を出力する（ステップ５２５）。
【００８８】
尚、上記動作例では、ステップ５２２で判定領域１にパターン画像が存在しないことを判定し、かつ、ステップ５２３で判定領域２にパターン画像存在することを判定したが、これには限らない。例えば、ステップ５２２での判定と、ステップ５２３での判定の何れか一方のみを行うようにしてもよい。
【００８９】
［第６の実施の形態］
第６の実施の形態でも、第５の実施の形態と同様、２つのコード画像の間隔が予め決められた間隔になるはずであることに着目する。但し、ブロックを禁止コード検出の対象とするかどうかを判定する第５の実施の形態とは異なり、規則に従わないパターン画像をコード画像ではないとしてマスクする。
図１９は、第６の実施の形態における複写装置１０の構成例を示したブロック図である。
図示するように、複写装置１０は、画像読取部１１と、画像処理部１２と、禁止コード検知部１４と、条件コード検知部１５と、制御部１６と、画像マスク部１７と、画像形成部１８とを備える。また、間隔判定部５６と、パターン画像マスク部５７とを備える。
このうち、画像読取部１１、画像処理部１２、禁止コード検知部１４、条件コード検知部１５、制御部１６、画像マスク部１７、画像形成部１８については、第１の実施の形態で説明したので、ここでの詳細な説明は省略する。
【００９０】
間隔判定部５６は、画像読取部１１から入力される画像データからパターン画像を検出し、それがコード画像であるかどうかを判定し、その結果を出力する。ここで、コード画像であるかどうかは、注目するパターン画像からコード画像間の間隔だけ離れた位置に他のパターン画像が存在するかどうかに基づいて判定する。本実施の形態では、特定画像の有無を判定する第１の判定手段の一例として、間隔判定部５６を設けている。
パターン画像マスク部５７は、間隔判定部５６から出力されたコード画像かどうかを示す情報に基づいて、禁止コード検出対象から除外するパターン画像を決定し、そのパターン画像をマスクする。本実施の形態では、特定画像を検出の対象にするかどうかを判定する判定手段の一例として、また、一の特定画像を所定の処理の対象にするかどうかを判定する第２の判定手段の一例として、パターン画像マスク部５７を設けている。
【００９１】
尚、本実施の形態では、パターン画像を禁止コード検出の対象から除外してマスクすることを前提に説明するが、これには限らない。即ち、パターン画像を条件コード検出の対象から除外してマスクするものであってもよい。この場合は、間隔判定部５６、パターン画像マスク部５７を、条件コード検知部１５の前段に設けるとよい。
【００９２】
次いで、複写装置１０の動作について説明する。尚、画像読取部１１、画像処理部１２、禁止コード検知部１４、条件コード検知部１５、制御部１６、画像マスク部１７、画像形成部１８に関する動作は、第１の実施の形態で説明したので、ここでは、間隔判定部５６及びパターン画像マスク部５７によるパターン画像マスク処理について説明する。
図２０は、パターン画像マスク時の動作例を示したフローチャートである。尚、この動作例に先立ち、間隔判定部５６は、画像読取部１１が出力した画像データからパターン画像の中心を検出し、パターン中心データとして保持しているものとする。例えば、白画素で囲まれた所定サイズの領域をパターン画像の領域として認識し、その領域を二等分する垂直方向の直線とその領域を二等分する水平方向の直線との交点をパターン画像の中心とすればよい。即ち、本実施の形態では、特定画像を検出する検出手段の一例として、間隔判定部５６を設けている。
【００９３】
動作を開始すると、まず、間隔判定部５６がパターン画像の間隔が正常かどうかを判定する間隔判定処理を実行する（ステップ５５１）。尚、この間隔判定処理の詳細は、第５の実施の形態で述べたので、説明を省略する。
そして、間隔判定部５６は、パターン画像の間隔が正常であるかどうかを判定する（ステップ５５２）。
その結果、パターン画像の間隔が正常でないと判定された場合は、そのパターン画像を禁止コード検知対象から除外し、マスクする（ステップ５５３）。
一方、パターン画像の間隔が正常であると判定された場合は、何もせずに処理を終了する。本実施の形態では、注目しているパターン画像を禁止コード対象から除外する旨の情報を禁止コード検知部１４に出力しない限り、各パターン画像は禁止コード検知対象として扱われるためである。
【００９４】
［第７の実施の形態］
第７の実施の形態では、２つ以上のコード画像の配置が予め決められた配置になるはずであることに着目する。
図２１は、第７の実施の形態における複写装置１０の構成例を示したブロック図である。
図示するように、複写装置１０は、画像読取部１１と、画像処理部１２と、禁止コード検知部１４と、条件コード検知部１５と、制御部１６と、画像マスク部１７と、画像形成部１８とを備える。また、配置判定部６１と、コードカウンタ６２と、非コードカウンタ６３と、禁止ブロック判定部６４とを備える。
このうち、画像読取部１１、画像処理部１２、禁止コード検知部１４、条件コード検知部１５、制御部１６、画像マスク部１７、画像形成部１８については、第１の実施の形態で説明したので、ここでの詳細な説明は省略する。
【００９５】
配置判定部６１は、画像読取部１１から入力される画像データからパターン画像を検出し、それがコード画像であるかどうかを判定し、その結果を出力する。ここで、コード画像であるかどうかは、注目するパターン画像がコード画像であると仮定した場合にコード画像が存在すると考えられる位置に他のパターン画像が存在するかどうかに基づいて判定する。本実施の形態では、特定画像の有無を判定する第１の判定手段の一例として、配置判定部６１を設けている。
コードカウンタ６２は、配置判定部６１からコード画像である旨が出力された回数をカウントするためのカウンタである。
非コードカウンタ６３は、配置判定部６１からコード画像でない旨が出力された回数をカウントするためのカウンタである。
禁止ブロック判定部６４は、コードカウンタ６２及び非コードカウンタ６３のカウント値に基づいて、ブロックを禁止コード検出の対象とするかどうかを判定する。本実施の形態では、特定領域を検出の対象にするかどうかを判定する判定手段の一例として、また、特定領域を所定の処理の対象にするかどうかを判定する第２の判定手段の一例として、禁止ブロック判定部６４を設けている。
【００９６】
尚、本実施の形態では、ブロックを禁止コード検出の対象とするかどうかを判定することを前提に説明するが、これには限らない。即ち、ブロックを条件コード検出の対象とするかどうかを判定するものであってもよい。この場合は、配置判定部６１、コードカウンタ６２、非コードカウンタ６３、禁止ブロック判定部６４を、条件コード検知部１５の前段に設けるとよい。
【００９７】
次いで、複写装置１０の動作について説明する。尚、画像読取部１１、画像処理部１２、禁止コード検知部１４、条件コード検知部１５、制御部１６、画像マスク部１７、画像形成部１８に関する動作は、第１の実施の形態で説明したので、ここでは、配置判定部６１及び禁止ブロック判定部６４による禁止ブロック判定処理について説明する。
図２２は、禁止ブロック判定時の動作例を示したフローチャートである。尚、この動作例に先立ち、配置判定部６１は、画像読取部１１が出力した画像データからパターン画像の中心を検出し、パターン中心データとして保持しているものとする。例えば、白画素で囲まれた所定サイズの領域をパターン画像の領域として認識し、その領域を二等分する垂直方向の直線とその領域を二等分する水平方向の直線との交点をパターン画像の中心とすればよい。即ち、本実施の形態では、特定画像を検出する検出手段の一例として、配置判定部６１を設けている。
【００９８】
動作を開始すると、まず、配置判定部６１がパターン画像の配置が正常かどうかを判定する配置判定処理を実行する（ステップ６０１）。尚、この配置判定処理の詳細は後述する。
そして、配置判定部６１は、パターン画像の配置が正常であるかどうかを判定し（ステップ６０２）、正常であれば、コードカウンタ６２に１を加算し（ステップ６０３）、正常でなければ、非コードカウンタ６３に１を加算する（ステップ６０４）。ここで、「パターン画像の配置が正常」とは、パターン画像の配置が、予め決められたコード画像の配置の規則に従っていることをいう。
【００９９】
その後、配置判定部６１は、ブロック内の全てのパターン画像について配置を評価したか判定する（ステップ６０５）。ここで、全てのパターン画像について配置を評価していないと判定された場合は、ステップ６０１に戻り、次のパターン画像について同様の処理を繰り返す。一方、全てのパターン画像について配置を評価したと判定された場合は、禁止ブロックの判定処理に移る。
【０１００】
禁止ブロックの判定処理において、禁止ブロック判定部６４は、まず、コードカウンタ６２のカウント値であるコードカウント値について、コードカウント値＞閾値ＴＨ＿ｈｉｇｈが成り立つかどうかを判定する（ステップ６０６）。
その結果、コードカウント値＞閾値ＴＨ＿ｈｉｇｈが成り立たないと判定された場合は、そのブロックを禁止コード検知対象から除外する（ステップ６０８）。
一方、コードカウント値＞閾値ＴＨ＿ｈｉｇｈが成り立つと判定された場合は、次に、非コードカウンタ６３のカウント値である非コードカウント値について、非コードカウント値＜閾値ＴＨ＿ｌｏｗが成り立つかどうかを判定する（ステップ６０７）。
【０１０１】
その結果、非コードカウント値＜閾値ＴＨ＿ｌｏｗが成り立たないと判定された場合は、そのブロックを禁止コード検知対象から除外する（ステップ６０８）。
一方、非コードカウント値＜閾値ＴＨ＿ｌｏｗが成り立つと判定された場合は、何もせずに処理を終了する。本実施の形態では、注目しているブロックを禁止コード対象から除外する旨の情報を禁止コード検知部１４に出力しない限り、各ブロックは禁止コード検知対象として扱われるためである。
【０１０２】
ここで、図２２のステップ６０１における配置判定処理について詳細に説明する。
図２３（ａ）は、この配置判定処理で用いる配置１判定ウィンドウであり、同図（ｂ）は、配置判定部６１の動作例を示したフローチャートである。
まず、（ａ）の配置１判定ウィンドウについて説明する。
この配置１判定ウィンドウは、画像読取部１１で画像が読み取られた際のスキュー角度が０°であって、コード画像の中心がウィンドウの中心位置に存在する場合に、隣接するコード画像が存在するはずの位置を、領域０、領域１、領域２、領域３として示し、隣接するコード画像が存在しないはずの位置を灰色領域で示したものである。
【０１０３】
次に、（ｂ）の動作例について説明する。
動作を開始すると、まず、配置判定部６１は、パターン中心データの任意の位置に配置０判定ウィンドウを重ね、配置０判定ウィンドウの中心位置にパターン画像が存在するかどうかを判定する（ステップ６２１）。ここで、中心位置にパターン画像が存在すれば、領域０〜３のうち、パターン画像を含む領域が１つ以上存在するかどうかを判定する（ステップ６２２）。また、パターン画像を含む領域が１つ以上存在すれば、領域０〜３のうち、画像を含む領域が３つ以上存在するかどうかを判定する（ステップ６２３）。ここで、画像とは、コード画像に限らず、文字や線等の通常の画像を意味する。即ち、配置判定部６１は、画像読取部１１から入力された画像データの同じ位置にも配置１判定ウィンドウを重ねて、このような判定を行う。そして、更に、画像を含む領域が３つ以上存在すれば、灰色領域内のパターン画像が０個であるかどうかを判定する（ステップ６２４）。その結果、灰色領域内のパターン画像が０個であれば、配置１フラグをＯＮに設定する（ステップ６２５）。
【０１０４】
一方、ステップ６２１で中心位置にパターン画像が存在しないと判定された場合、ステップ６２２でパターン画像を含む領域が１つ以上存在しないと判定された場合、ステップ６２３で画像を含む領域が３つ以上存在しないと判定された場合、ステップ６２４で灰色領域内のパターン画像が０個でないと判定された場合は、配置１フラグをＯＦＦに設定する（ステップ６２６）。
【０１０５】
尚、媒体の端部においては領域０〜３のうちの２つにしかコード画像が存在しないことも考えられるので、ステップ６２３では、画像を含む領域が２つ以上存在するかどうかを判定するようにしてもよい。或いは、逆に条件を厳しくして、画像を含む領域が４つ以上存在するかどうかを判定するようにしてもよい。
【０１０６】
また、ここで述べた配置判定処理は、配置１（角度０に対応する配置）に対するものであったが、配置２〜４についても同様の処理を行う。即ち、配置２（角度１に対応する配置）については、配置２判定ウィンドウ（図２４参照）を用いて、配置２フラグをＯＮ又はＯＦＦに設定する。また、配置３（角度２に対応する配置）については、配置３判定ウィンドウ（図２４参照）を用いて、配置３フラグをＯＮ又はＯＦＦに設定する。更に、配置４（角度３に対応する配置）については、配置４判定ウィンドウ（図２４参照）を用いて、配置４フラグをＯＮ又はＯＦＦに設定する。
【０１０７】
次に、このようにＯＮ又はＯＦＦに設定された配置ごとのフラグから、配置が正常であるかどうかを決定する方法について説明する。
図２４は、このときの決定方法を模式的に示した図である。
図示するように、配置１フラグ、配置２フラグ、配置３フラグ、配置４フラグのうち、１つのみがＯＮに設定されている場合に、配置が正常であることを示すＯＮ信号を出力し、それ以外の場合には、配置が正常でないことを示すＯＦＦ信号を出力する。
【０１０８】
尚、図２４では、配置１判定ウィンドウ、配置２判定ウィンドウ、配置３判定ウィンドウ、配置４判定ウィンドウの間で、領域０〜３は互いに重なりを持たないように描いている。しかしながら、領域０〜３は、異なる判定ウィンドウ間で一部が重なっていてもよい。例えば、配置１判定ウィンドウと配置２判定ウィンドウにおいて、領域０〜３の一部が同じ範囲を占めていてもよい。
また、本実施の形態では、角度は４種類としたが、少なくとも２種類あればよい。逆に、４種類以上に細かく分割してもよい。
【０１０９】
［第８の実施の形態］
第８の実施の形態でも、第７の実施の形態と同様、２つ以上のコード画像の配置が予め決められた配置になるはずであることに着目する。但し、ブロックを禁止コード検出の対象とするかどうかを判定する第７の実施の形態とは異なり、規則に従わないパターン画像をコード画像ではないとしてマスクする。
図２５は、第８の実施の形態における複写装置１０の構成例を示したブロック図である。
図示するように、複写装置１０は、画像読取部１１と、画像処理部１２と、禁止コード検知部１４と、条件コード検知部１５と、制御部１６と、画像マスク部１７と、画像形成部１８とを備える。また、配置判定部６６と、パターン画像マスク部６７とを備える。
このうち、画像読取部１１、画像処理部１２、禁止コード検知部１４、条件コード検知部１５、制御部１６、画像マスク部１７、画像形成部１８については、第１の実施の形態で説明したので、ここでの詳細な説明は省略する。
【０１１０】
配置判定部６６は、画像読取部１１から入力される画像データからパターン画像を検出し、それがコード画像であるかどうかを判定し、その結果を出力する。ここで、コード画像であるかどうかは、注目するパターン画像がコード画像であると仮定した場合にコード画像が存在すると考えられる位置に他のパターン画像が存在するかどうかに基づいて判定する。本実施の形態では、特定画像の有無を判定する第１の判定手段の一例として、配置判定部６６を設けている。
パターン画像マスク部６７は、配置判定部６６から出力されたコード画像かどうかを示す情報に基づいて、禁止コード検出対象から除外するパターン画像を決定し、そのパターン画像をマスクする。本実施の形態では、特定画像を検出の対象にするかどうかを判定する判定手段の一例として、また、一の特定画像を所定の処理の対象にするかどうかを判定する第２の判定手段の一例として、パターン画像マスク部６７を設けている。
【０１１１】
尚、本実施の形態では、パターン画像を禁止コード検出の対象から除外してマスクすることを前提に説明するが、これには限らない。即ち、パターン画像を条件コード検出の対象から除外してマスクするものであってもよい。この場合は、配置判定部６６、パターン画像マスク部６７を、条件コード検知部１５の前段に設けるとよい。
【０１１２】
次いで、複写装置１０の動作について説明する。尚、画像読取部１１、画像処理部１２、禁止コード検知部１４、条件コード検知部１５、制御部１６、画像マスク部１７、画像形成部１８に関する動作は、第１の実施の形態で説明したので、ここでは、配置判定部６６及びパターン画像マスク部６７によるパターン画像マスク処理について説明する。
図２６は、パターン画像マスク時の動作例を示したフローチャートである。尚、この動作例に先立ち、配置判定部６６は、画像読取部１１が出力した画像データからパターン画像の中心を検出し、パターン中心データとして保持しているものとする。例えば、白画素で囲まれた所定サイズの領域をパターン画像の領域として認識し、その領域を二等分する垂直方向の直線とその領域を二等分する水平方向の直線との交点をパターン画像の中心とすればよい。即ち、本実施の形態では、特定画像を検出する検出手段の一例として、配置判定部６６を設けている。
【０１１３】
動作を開始すると、まず、配置判定部６６がパターン画像の配置が正常かどうかを判定する配置判定処理を実行する（ステップ６５１）。尚、この配置判定処理の詳細は、第７の実施の形態で述べたので、説明を省略する。
そして、配置判定部６６は、パターン画像の配置が正常であるかどうかを判定する（ステップ６５２）。
その結果、パターン画像の配置が正常でないと判定された場合は、そのパターン画像を禁止コード検知対象から除外し、マスクする（ステップ６５３）。
一方、パターン画像の配置が正常であると判定された場合は、何もせずに処理を終了する。本実施の形態では、注目しているパターン画像を禁止コード対象から除外する旨の情報を禁止コード検知部１４に出力しない限り、各パターン画像は禁止コード検知対象として扱われるためである。
【０１１４】
ところで、これまでは上記処理を複写装置１０内で行うようにしたが、本実施の形態はこれに限られるものではない。例えば、汎用のコンピュータ９０にて上記処理を実行してもよい。
図２７は、コンピュータ９０のハードウェア構成を示した図である。
図示するように、コンピュータ９０は、演算手段であるＣＰＵ（Central Processing Unit）９１と、記憶手段であるメインメモリ９２及び磁気ディスク装置（ＨＤＤ：Hard Disk Drive）９３とを備える。ここで、ＣＰＵ９１は、ＯＳ（Operating System）やアプリケーション等の各種ソフトウェアを実行し、上述した各機能を実現する。また、メインメモリ９２は、各種ソフトウェアやその実行に用いるデータ等を記憶する記憶領域であり、磁気ディスク装置９３は、各種ソフトウェアに対する入力データや各種ソフトウェアからの出力データ等を記憶する記憶領域である。
更に、コンピュータ９０は、外部との通信を行うための通信Ｉ/Ｆ９４と、ビデオメモリやディスプレイ等からなる表示機構９５と、キーボードやマウス等の入力デバイス９６とを備える。
【０１１５】
尚、本実施の形態を実現するプログラムは、通信手段により提供することはもちろん、ＣＤ−ＲＯＭ等の記録媒体に格納して提供するようにしてもよい。
【図面の簡単な説明】
【０１１６】
【図１】本発明の実施の形態で印刷される埋め込み画像を構成する画像の例を示した図である。
【図２】本発明の実施の形態で印刷される埋め込み画像のレイアウトの例を示した図である。
【図３】本発明の第１の実施の形態における複写装置の機能構成例を示したブロック図である。
【図４】本発明の実施の形態における禁止コード検知部の動作例を示したフローチャートである。
【図５】本発明の第１の実施の形態における禁止ブロック判定時の動作例を示したフローチャートである。
【図６】本発明の第１の実施の形態における角度判定部の動作例について説明するための図である。
【図７】本発明の第１の実施の形態における角度判定部の動作例について説明するための図である。
【図８】本発明の第１の実施の形態における禁止ブロック判定部の動作例について説明するための図である。
【図９】本発明の実施の形態におけるブロックの走査について説明するための図である。
【図１０】本発明の第２の実施の形態における複写装置の機能構成例を示したブロック図である。
【図１１】本発明の第２の実施の形態における禁止ブロック判定時の動作例を示したフローチャートである。
【図１２】本発明の第３の実施の形態における複写装置の機能構成例を示したブロック図である。
【図１３】本発明の第３の実施の形態における禁止ブロック判定時の動作例を示したフローチャートである。
【図１４】本発明の第４の実施の形態における複写装置の機能構成例を示したブロック図である。
【図１５】本発明の第４の実施の形態におけるパターン画像マスク時の動作例を示したフローチャートである。
【図１６】本発明の第５の実施の形態における複写装置の機能構成例を示したブロック図である。
【図１７】本発明の第５の実施の形態における禁止ブロック判定時の動作例を示したフローチャートである。
【図１８】本発明の第５の実施の形態における間隔判定部の動作例について説明するための図である。
【図１９】本発明の第６の実施の形態における複写装置の機能構成例を示したブロック図である。
【図２０】本発明の第６の実施の形態におけるパターン画像マスク時の動作例を示したフローチャートである。
【図２１】本発明の第７の実施の形態における複写装置の機能構成例を示したブロック図である。
【図２２】本発明の第７の実施の形態における禁止ブロック判定時の動作例を示したフローチャートである。
【図２３】本発明の第７の実施の形態における配置判定部の動作例について説明するための図である。
【図２４】本発明の第７の実施の形態における配置判定部の動作例について説明するための図である。
【図２５】本発明の第８の実施の形態における複写装置の機能構成例を示したブロック図である。
【図２６】本発明の第８の実施の形態におけるパターン画像マスク時の動作例を示したフローチャートである。
【図２７】本発明の実施の形態を適用可能なコンピュータのハードウェア構成図である。
【符号の説明】
【０１１７】
１０…複写装置、１１…画像読取部、１２…画像処理部、１４…禁止コード検知部、１５…条件コード検知部、１６…制御部、１７…画像マスク部、１８…画像形成部、２１…角度判定部、３１ａ，３６ａ，４１…第１角度判定部、３１ｂ，３６ｂ，４２…第２角度判定部、３２，３７…角度比較部、５１，５６…間隔判定部、６１，６６…配置判定部、２３，３５，４５，５４，６４…禁止ブロック判定部、３８，５７，６７…パターン画像マスク部
【図１】
0004483932.tif 000002
【図２】
0004483932.tif 000003
【図３】
0004483932.tif 000004
【図４】
0004483932.tif 000005
【図５】
0004483932.tif 000006
【図６】
0004483932.tif 000007
【図７】
0004483932.tif 000008
【図８】
0004483932.tif 000009
【図９】
0004483932.tif 000010
【図１０】
0004483932.tif 000011
【図１１】
0004483932.tif 000012
【図１２】
0004483932.tif 000013
【図１３】
0004483932.tif 000014
【図１４】
0004483932.tif 000015
【図１５】
0004483932.tif 000016
【図１６】
0004483932.tif 000017
【図１７】
0004483932.tif 000018
【図１８】
0004483932.tif 000019
【図１９】
0004483932.tif 000020
【図２０】
0004483932.tif 000021
【図２１】
0004483932.tif 000022
【図２２】
0004483932.tif 000023
【図２３】
0004483932.tif 000024
【図２４】
0004483932.tif 000025
【図２５】
0004483932.tif 000026
【図２６】
0004483932.tif 000027
【図２７】
0004483932.tif 000028