(57)【要約】      （修正有）【課題】二次元コードを印刷装置で生成する際に、黒部の突起部による盛り上がりを解消するため、三直角の頂点をくっきりと表現させる。【解決手段】最小単位の二次元コードに対して，黒三つ，白一つの四つの最小セルからなる正方形のパターンを四つ予め保持してそれらと比較して三直角の頂点を検出し、一致した正方形パターンに含まれない黒の画素を割当ることにより、検出された三直角の頂点に接する四画素のうちの黒画素が二画素以下である、一セルが複数画素からなる二次元コードを生成する生成手段とを有することを特徴とする画像処理装置。【選択図】図６
2014092911.tif 000002
【特許請求の範囲】
【請求項１】
二次元コードから、黒部で三直角を形成する頂点を検出する検出手段と、
検出された三直角の頂点に接する四画素のうちの黒画素が二画素以下である、一セルが複数画素からなる二次元コードを生成する生成手段とを有することを特徴とする画像処理装置。
【請求項２】
前記検出手段は、
最小単位の二次元コードから、三つの黒画素と一つの白画素とからなる２画素×２画素の箇所を探索することで、前記黒部で三直角を形成する頂点を検出することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記検出手段は、
設定サイズの二次元コードから、三つの黒画素と一つの白画素とからなる２画素×２画素の箇所を探索することで、前記黒部で三直角を形成する頂点を検出することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
最小単位の二次元コードから、黒部で三直角を形成する頂点を検出する検出手段と、
前記最小単位の二次元コードの各セルに対して複数画素を割当てることで、一セルが複数画素からなる設定サイズの二次元コードを生成する生成手段とを有し、
前記生成手段は、
検出された三直角の頂点に接する四画素のうち黒画素が二画素以下となるように、前記最小単位の二次元コードの各セルに対して複数画素を割当てることを特徴とする画像処理装置。
【請求項５】
最小単位の二次元コードから、黒部で三直角を形成する頂点を検出する検出手段と、
前記最小単位の二次元コードの各セルに対して所定数の画素を割当てることで、一セルが複数画素からなる設定サイズの二次元コードを生成する生成手段とを有し、
前記生成手段は、
前記最小単位の二次元コードにおける白セルに対しては、前記所定数の白画素を割当て、
前記最小単位の二次元コードにおける、検出された三直角の頂点に接しない黒セルに対しては、前記所定数の黒画素を割当て、
前記最小単位の二次元コードにおける、検出された三直角の頂点に接する黒セルのうちの少なくとも一部の黒セルに対しては、検出された三直角の頂点に接する画素が非黒画素となるように、前記所定数の画素を割当てることを特徴とする画像処理装置。
【請求項６】
二次元コードから、黒部で三直角を形成する頂点を検出する検出工程と、
検出された三直角の頂点に接する四画素のうちの黒画素が二画素以下である、一セルが複数画素からなる二次元コードを生成する生成工程とを有することを特徴とする画像処理方法。
【請求項７】
前記検出工程では、
最小単位の二次元コードから、三つの黒画素と一つの白画素とからなる２画素×２画素の箇所を探索することで、前記黒部で三直角を形成する頂点を検出することを特徴とする請求項６に記載の画像処理方法。
【請求項８】
前記検出工程では、
設定サイズの二次元コードから、三つの黒画素と一つの白画素とからなる２画素×２画素の箇所を探索することで、前記黒部で三直角を形成する頂点を検出することを特徴とする請求項６に記載の画像処理方法。
【請求項９】
最小単位の二次元コードから、黒部で三直角を形成する頂点を検出する検出工程と、
前記最小単位の二次元コードの各セルに対して複数画素を割当てることで、一セルが複数画素からなる設定サイズの二次元コードを生成する生成工程とを有し、
前記生成工程では、
検出された三直角の頂点に接する四画素のうち黒画素が二画素以下となるように、前記最小単位の二次元コードの各セルに対して複数画素を割当てることを特徴とする画像処理方法。
【請求項１０】
最小単位の二次元コードから、黒部で三直角を形成する頂点を検出する検出工程と、
前記最小単位の二次元コードの各セルに対して所定数の画素を割当てることで、一セルが複数画素からなる設定サイズの二次元コードを生成する生成工程とを有し、
前記生成工程では、
前記最小単位の二次元コードにおける白セルに対しては、前記所定数の白画素を割当て、
前記最小単位の二次元コードにおける、検出された三直角の頂点に接しない黒セルに対しては、前記所定数の黒画素を割当て、
前記最小単位の二次元コードにおける、検出された三直角の頂点に接する黒セルのうちの少なくとも一部の黒セルに対しては、検出された三直角の頂点に接する画素が非黒画素となるように、前記所定数の画素を割当てることを特徴とする画像処理方法。
【請求項１１】
請求項６乃至１０の何れか１項に記載の画像処理方法をコンピュータに実行させるためのコンピュータ読取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、三直角の頂点をくっきりと表現するための発明である。
【背景技術】
【０００２】
図１はＱＲコード（登録商標）を示している。ＱＲコード（登録商標）には１１や１２のようなパターンが多数存在している。
【０００３】
図２（Ａ）は、１１のパターンの印刷結果を顕微鏡で観察した結果である。図２（Ｂ）は、１２のパターンの印刷結果を顕微鏡で観察した結果である。何れの観察結果でも三直角の頂点が盛り上がってしまっているのがわかる（２０１、２０２、２０３参照）。なお、三直角とは、三つの黒画素と一つの白画素とからなる２画素×画素の箇所に含まれる２７０度の角という意味である。
【０００４】
発明者は、こうした現象が印刷装置で頻繁に起きることを発見した。例えば、Ｖｅｒｉ  Ｃｏｄｅ（商標）やＰＤＦ４１７のような、三直角を有する他の二次元コードを印刷した時にも、あるいは、品やＥのような、三直角を有する画像を印刷した時にも起きてしまう。
【０００５】
さて、この三直角の頂点の盛り上がり現象が起きる要因であるが、発明者は、印刷装置の精度が関与していると考えている。印刷装置の精度は日々高まってきているものの未だその精度は完ぺきなものではない。例えば、図３（Ａ）に示す黒い画像の印刷をしようとした場合、本来なら図３（Ｂ）における３０４の画素に色材は付加されてはならない。しかし、実際には、３０１の画素に色材（トナーやインク等）を付加する際に少しだけ３０４の画素にも色材が付加されてしまう。同様に、３０２の画素に色材を付加する際にも少しだけ３０４の画素に色材は付加されてしまう。もちろん、３０３の画素に色材を付加する際にも少しだけ３０４の画素に色材は付加されてしまう。問題は、この少しだけの付加が積み重なってしまうことである。少しだけの付加による影響は本来微々たるものではあるが、これが３回も続くと図２（Ａ）や（Ｂ）のような盛り上がり現象へと繋がってしまう。
【０００６】
なお、こうした現象は、電子写真プロセスを採用する印刷装置や、インクジェットプロセスを採用する印刷装置に留まらず、様々な印刷装置で起きてしまう。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許公報５９８７２２１号
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１は、画像から黒の突起部を消失させる、いわゆるノイズ除去の技術を開示している。そのために、特許文献１の装置は、図４の４０１のような黒の突起部を有するパターンを予め保持している。そして、画像からそのパターンを発見すると、図４の４０２のように、黒の突起部を白へと変更する。これにより、突起部を消失させ、画像を滑らかにする。
【０００９】
対する本発明は、画像を滑らかにするのではなく、三直角の頂点をくっきりと表現することを目的としている。
【課題を解決するための手段】
【００１０】
上記課題を解決するため、本発明の画像処理装置は、二次元コードから、黒部で三直角を形成する頂点を検出する検出手段と、検出された三直角の頂点に接する四画素のうちの黒画素が二画素以下である、一セルが複数画素からなる二次元コードを生成する生成手段とを有することを特徴とする。
【発明の効果】
【００１１】
本発明により、三直角の頂点をくっきり表現することができる。
【図面の簡単な説明】
【００１２】
【図１】ＱＲコード（登録商標）を示す図
【図２】（Ａ）ＱＲコード（登録商標）の印刷結果の拡大図１  （Ｂ）ＱＲコード（登録商標）の印刷結果の拡大図２
【図３】（Ａ）ＱＲコード（登録商標）の一部を示す図（Ｂ）三直角の頂点の盛り上がりを説明するための図
【図４】黒の突起部を白へと変更する技術を示す図
【図５】印刷装置のブロック図
【図６】フローチャートを示す図
【図７】（Ａ）最小単位のＱＲコード（登録商標）を示す図（Ｂ）盛り上がりを解消するための置き換え処理を示す図
【図８】制御部５０３に保存される情報を示す図
【図９】生成される所定サイズの二次元コードの一部を示す図
【図１０】置き換え後のパターンを示す図
【発明を実施するための形態】
【００１３】
［実施例１］
図５は、本実施例における印刷装置のブロック図である。この印刷装置は、操作部５０１、取得部５０２、制御部５０３、画像処理部５０４、印刷部５０５から構成されている。このうち、操作部５０１、取得部５０２、制御部５０３、画像処理部５０４を合わせて画像処理装置と呼ぶこともある。
【００１４】
取得部５０２は、画像を取得することができるハードウェアとなっている。この取得部５０２による画像の取得形態は様々考えられる。例えば、公知の通信インターフェースを介して外部の装置から画像を取得する形態。あるいは、スキャンあるいは撮影により画像を取得する形態。どのような取得形態であっても構わない。
【００１５】
操作部５０１は、ユーザからの指示を受けるハードウェアである。キーボード、マウス、タッチパネル、ハードキー、その他、ユーザからの指示を受けることができるハードウェアであれば何でもよい。なお、この操作部５０１から、ユーザは、取得部５０２で取得された画像に二次元コードを合成する指示を行うことができるようになっている。この時もちろんユーザは、どのような情報を二次元コードに含めるか指示を行うことができる。また、二次元コードのサイズも指示できるものとする。指示を受けると、操作部５０１は、その指示内容（二次元コードを合成するか、二次元コードに含める情報は何か、二次元コードのサイズ）を制御部５０３に入力するようになっている。なお、以下では、二次元コードの例としてＱＲコード（登録商標）を取り上げて本実施例の説明を行うが、他の種類の二次元コードであっても良いのは言うまでもない。
【００１６】
制御部５０３は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＡＭ（Ｒａｎｄａｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）から構成されている。この制御部５０３は、図６のＳ１０２−Ｓ１０７の処理を実行することが可能になっている。これは、ＲＯＭにＳ１０２−Ｓ１０７の処理を行うためのプログラムが含まれているためである。ＣＰＵがこのプログラムを適宜、ＲＡＭにロードして実行することにより、Ｓ１０２−Ｓ１０７の処理は実行されることになる。加えて制御部５０３は、ユーザからの指示（二次元コードを合成するか、二次元コードに含める情報は何か、二次元コードのサイズ）が操作部５０１から入力されると、その指示を設定するように構成されている。
【００１７】
画像処理部５０４は、複数の画像の合成処理が行える画像処理専用ハードウェアとなっている。しかし、合成処理を実行することができれば画像処理部５０４は画像処理専用ハードウェアでなくても良く、ＣＰＵ、ＲＡＭ、及びＲＯＭの連携によって合成処理を実行するような構成となっていても良い。
【００１８】
印刷部５０５は、公知の印刷エンジンである。インクジェットプロセスにより画像をシート上に形成するものであっても、電子写真プロセスにより画像をシート上に形成するものであっても、他のプロセスによって画像をシート上に形成するものであっても構わない。
【００１９】
図６は、本実施例における処理フローとなっている。
【００２０】
取得部５０２は、画像を取得すると、取得した画像を制御部５０３に入力する。すると、Ｓ１０２の処理が開始する。
【００２１】
Ｓ１０２では、制御部５０３は、入力された画像に二次元コードを合成するための設定がなされているか判定する。そうした設定がされている場合には制御部５０３はＳ１０３に処理を移行し、されていない場合には、入力された画像を印刷部５０５に入力する。
【００２２】
Ｓ１０３では、制御部５０３は、二次元コードに含める予め設定されている情報をエンコードし、最小単位の二次元コードを生成する。図７（Ａ）は、この最小単位の二次元コードを示している。最小単位の二次元コードは、１セルが１画素で表現された二次元コードである。セルは、二次元コードを構成する最小単位の四角のことである。よく知られているように、二次元コードのセルには黒セル（■）と白セル（□）が存在しており、黒セルは１を白セルは０を表している。この１又は０を示す最小単位の四角のことをセルと呼ぶ。
【００２３】
なお、以下では、１セルが１画素で表現された二次元コードのことを最小単位の二次元コードと呼ぶ一方、制御部５０３に設定されているサイズの二次元コードのことを設定サイズの二次元コードと呼ぶことにする。また、最小単位の二次元コードのセルのことを最小セル、設定サイズの二次元コードのセルのことを設定セルと呼ぶことにする。
【００２４】
Ｓ１０４では、制御部５０３は、生成した最小単位の二次元コードから、黒画素で三直角を形成する頂点を検出する。以下、具体的な検出方法を説明する。
【００２５】
三直角の頂点の検出のために、制御部５０３は、黒三つの最小セル、白一つの最小セルの計四つの最小セルからなる正方形のパターンを計四つ予め保持している。夫々のパターンは図７（Ｂ）の７０１−７０４に示されている通りである。制御部５０３は、これらのパターンの何れかと一致する箇所を最小単位の二次元コードから探索する。そして、探索により見つかった箇所の位置を示す情報と、四つのパターンの何れと一致したかを示す情報とを制御部５０３は保存する。
【００２６】
図８の８０２は、制御部５０３に保存された情報を示す図である。例えば、（１，１）、７０１は、１行１列目の最小セル、１行２列目の最小セル、２行１列目の最小セル、２行２列目の最小セルの計４つの最小セルからなる箇所に７０１のパターンが存在することを示している。また、それら４つの最小セルの中央が、黒部（即ち、黒い部分）で形成される三直角の頂点となっている。また、（１，６）、７０２は、１行６列目の最小セル、１行７列目の最小セル、２行６列目の最小セル、２行７列目の最小セルの計４つの最小セルからなる箇所に７０２のパターンが存在することを示している。また、それら４つの最小セルの中央が、黒部（即ち、黒い部分）で形成される三直角の頂点となっている。
【００２７】
このように本実施例では、黒三つの最小セル、白一つの最小セルの計四つの最小セルからなる正方形のパターンと一致した箇所を探索することで、黒部で三直角を形成する頂点を検出している。
【００２８】
なお、８０１は、最小単位の二次元コードの一部を示す図であり、８０２は、この８０１に対して上記検出方法が適用された場合に制御部５０３に保存される情報を示している。
【００２９】
Ｓ１０５では、制御部５０３は、予め設定されているサイズに基づいて、１設定セルあたりの画素数がＮ画素×Ｎ画素（Ｎは２以上の整数）であるか判定する。Ｎ画素×Ｎ画素（Ｎは２以上の整数）であると判定した場合はＳ１０６に処理を移行し、１画素×１画素であると判定した場合にはＳ１０７に処理を移行する。
【００３０】
例えば、予め設定されているサイズが「１設定セルあたり１０×１０画素」となっている場合にはＮは１０なので、制御部５０３は、処理をＳ１０６に移行することになる。あるいは、予め設定されているサイズが「５ｃｍ」となっている場合には、このＳ１０５で制御部５０３は、そのサイズと、二次元コードに含める情報の量とから１設定セルあたり何画素×何画素の画素数を割当てるべきかを計算する。そしてその画素数がＮ画素×Ｎ画素（Ｎは２以上の整数）であると判定した場合は制御部５０３はＳ１０６に処理を以降し、１画素×１画素であると判定した場合にはＳ１０７に処理を以降する。
【００３１】
Ｓ１０６では、制御部５０３は、１設定セルあたりの画素数と、最小単位の二次元コードと、先のステップで保存された探索により見つかった箇所の位置を示す情報及び何れのパターンと一致したかを示す情報とに基づいて、設定サイズの二次元コードを生成する。
【００３２】
具体的には、制御部５０３は、探索により見つかった箇所（即ち、四つのパターンの何れかと一致した箇所）に含まれない黒の最小セルに対しては、Ｎ画素×Ｎ画素の黒画素を割当てる。これにより、黒の設定セルが生成されることになる。また、探索により見つかった箇所に含まれない白の最小セルに対しては、制御部５０３は、Ｎ画素×Ｎ画素の白画素を割当てる。これにより、白の設定セルが生成されることになる。
【００３３】
一方、探索により見つかった箇所（即ち、四つのパターンの何れかと一致した箇所）に対しては、制御部５０３は、図７（Ｂ）の各矢印に示す置き換え処理を行う。即ち、７０１のパターンと一致した箇所については、その箇所が７０５のパターンとなるように置き換え処理を行う。７０２のパターンと一致した箇所については、その箇所が７０６のパターンとなるように置き換え処理を行う。７０３のパターンと一致した箇所については、その箇所が７０７のパターンとなるように置き換え処理を行う。７０４のパターンと一致した箇所については、その箇所が７０８のパターンとなるように置き換え処理を行う。
【００３４】
なお、７０５−７０８のパターンは、１設定セルあたりの画素数と、７０１−７０４のパターンとに基づいて制御部５０３により事前に生成されている。
【００３５】
例えば、１設定セルあたりの画素数がＮ画素×Ｎ画素（ただし、Ｎは２以上の整数である。）である場合には、７０１のパターンにおける三つの黒最小セルの夫々に対してＮ画素×Ｎ画素の黒画素を割当てることで三つの黒設定セルを生成する。そして、７０１のパターンにおける白最小セルに対して制御部５０３がＮ画素×Ｎ画素の白画素を割当てることで、白設定セルを生成するのは言うまでもない。さらに、白設定セルの対角に位置する黒設定セルから１画素白抜きすることによって、７０５のパターンは生成されている。なお、この時白抜きされる１画素は三直角の頂点に接する画素となっている。
【００３６】
７０６−７０８のパターンも同様に生成されている。即ち、（１）元となるパターン（７０２−７０４）の各黒最小セルにＮ画素×Ｎ画素の黒画素を割当てること（これにより黒設定セルが得られる）。（２）元となるパターンの各白セルにＮ画素×Ｎ画素の白画素を割当てること（これにより白設定セルが得られる）。（３）白設定セルの対角に位置する黒設定セルから１画素白抜きすること。これら三つの処理により、７０６−７０８のパターンは生成されている。
【００３７】
以上の処理により、一部の画素が白抜きされた設定サイズの二次元コードが生成されることになる。図９は、その設定サイズの二次元コードの一部を示す図である。ここで重要なのは、検出された三直角の頂点に接する画素は本来三画素が黒画素であり一画素が白画素であるはずなのに、Ｓ１０６の処理の結果、二画素が黒画素であり同じく二画素が白画素になっていることである。Ｓ１０６では以上の通り三直角の頂点に接する黒画素の一つを白画素へと変えることにより、本実施例では、三直角の盛り上がり現象を解消しようとしている。なお、このように本来黒画素であるべき画素を白画素にすることを、以下では、白抜きと呼ぶことにする。
【００３８】
以上の通り、この実施例では、図１０の１００２のような、白設定セルと対角の位置に存在する黒設定セルのうちの１つの黒画素を白抜きする場合を例に説明を行った。この黒画素を白抜きするのが三直角の盛り上がり解消という意味では一般的に最も効果が大きいが、白抜きするのは必ずしもこの黒画素でなくてもよい。例えば、図１０の１００１や１００３のような形で、三直角の頂点に接する他の黒画素の白抜きを行ってもよい。また、白抜きするのは一画素だけでなくても良く、三直角の頂点に接する三つの黒画素のうちの二つの黒画素、あるいは、三つの黒画素全ての白抜きを行ってもよいのは言うまでも無い。
【００３９】
Ｓ１０７では、制御部５０３は、生成された二次元コードと、入力された画像とを合成する。そして、合成により得られた画像を制御部５０３は印刷部５０５へ入力する。ここで合成の形態は問わない。例えば、入力された画像の各画素の濃度に、生成された二次元コードの各画素の濃度を足すという方式でも構わない。また、入力された画像に二次元コードを上書き合成する（即ち、入力された画像の各画素の濃度を無視して、二次元コードの各画素の濃度を採用する）方式でも構わない。以上でフローチャートの説明を終了する。
【００４０】
その後、印刷部５０５は、入力された画像を印刷する。
【００４１】
（その他の実施例）
三直角の具体的な検出方法は上述の例の通りでなくても良い。例えば、上述のようなパターンマッチング技術を用いるのではなく、三つの黒セルと一つの白セルが存在する２×２セルの箇所を探索してもよい。
【００４２】
また、保存される情報も上述の形態に限られない。例えば、どのパターンと一致したかを示す情報を保存するのではなく、２×２画素中のどこ（左上か、右上か、左下か、右下か）に白画素が存在するかを示す情報を保存してもよい。こうした情報を保存しても、どの画素を白くすべきかが明確だからである。
【００４３】
また、上述の実施例では、三直角を最小単位の二次元コードから検出する方法を説明した。この方法は三直角の検出スピードを高める上で好ましい。しかしながら、もっと大きなサイズの二次元コードから三直角を検出してもよいのは言うまでも無い。例えば、設定サイズの二次元コードを白抜きなしの状態で生成し、その二次元コードから三直角を検出し、その三直角の頂点に接する画素の白抜きを行ってもよい。
【００４４】
また、上述の実施例では、三直角の頂点に接する黒画素を白抜きする処理のみを開示した。しかしながら、白抜きする代わりに、その黒画素の濃度を薄くしても良い。薄くするにあたっては例えば、黒の色材の代わりにグレイの色材を使ったり、一画素よりも小さなサイズの黒色材の塊（インク滴やトナーの塊など）をその黒画素に対応する箇所に付加する方法などが考えられる。ＰＷＭ（Ｐｕｌｓｅ  Ｗｉｄｔｈ  Ｍｏｄｕｌａｔｉｏｎ、パルス幅変調）は、そうした方法の一つである。なお、濃度を薄くされた黒画素はもはや黒画素とは呼ばず、灰色画素と呼ぶことにする。
【００４５】
さて、ここで以上説明してきた、三直角の頂点に接する三つの黒画素に対して行われる様々な形態を要約する。三つの黒画素のうちの一画素は灰色画素か白画素となる。残り二画素は、黒画素、灰色画素、白画素のいずれかとなる。その結果、三直角の頂点に接する三つの黒画素は、多くとも二つ以下の黒画素へと変更されることになる。なお、灰色画素及び白画素は、非黒画素と呼ばれることもある。
【００４６】
また、上述の実施例では、二次元コードのみを対象として説明を行ったが、三直角の頂点が盛り上がってしまう現象が起きるのは、二次元コードに限られない。例えば、文字画像（品やＥ）でも起きてしまう。そのため、三直角の頂点に接する画素の白抜きは二次元コード以外の画像にも適用可能なのは言うまでもない。
【００４７】
また、上述の実施例では、Ｓ１０２からＳ１０７の処理を全て印刷装置内で行うものとして説明したが、これらの処理の一部、もしくは、全部を他の装置（例えば、ホストコンピュータ、サーバ）で実施しても良いことは言うまでも無い。
【００４８】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2014092911.tif 000003
【図３】
2014092911.tif 000004
【図４】
2014092911.tif 000005
【図５】
2014092911.tif 000006
【図６】
2014092911.tif 000007
【図７】
2014092911.tif 000008
【図８】
2014092911.tif 000009
【図９】
2014092911.tif 000010
【図１０】
2014092911.tif 000011
【図２】
2014092911.tif 000012