(57)【要約】【課題】罫線が記載された画像データの罫線位置や罫線方向の検出を行うにあたり、罫線近傍にゴミ画像が形成された場合であっても、罫線位置や罫線方向を精度よく確実に検出する。【解決手段】罫線と略直交する方向に１列に並ぶ画素の列を複数列抽出し、抽出された複数列の画素の列において罫線方向に並ぶ位置にある画素の間で平均濃度を算出し、画素の列の一方の端から順に前記平均濃度と所定の濃度閾値とを比較し、該所定の濃度閾値を超えた最初の画素から最後の画素までの間隔を求め、該間隔が所定の幅閾値内に収まれば、前記最初の画素から前記最後の画素までにゴミ画像が存在しないと判別して前記最初の画素から前記最後の画素までを罫線位置として検出する一方、前記間隔が所定の幅閾値を超えると、前記最初の画素から前記最後の画素までにゴミ画像が存在すると判別する。【選択図】図６
2008257394.tif 000002
【特許請求の範囲】
【請求項１】
所定幅の罫線が記載された画像データの罫線位置を検出する画像処理装置であって、
前記罫線と略直交する方向に１列に並ぶ画素の列を複数列抽出し、抽出された複数列の画素の列において罫線方向に並ぶ位置にある画素の間で平均濃度を算出する平均濃度算出手段と、
画素の列の一方の端から順に前記平均濃度と所定の濃度閾値とを比較し、該所定の濃度閾値を超えた最初の画素から最後の画素までの間隔を求める罫線幅検出手段と、
該間隔が所定の幅閾値内に収まれば、前記最初の画素から前記最後の画素までにゴミ画像が存在しないと判別して前記最初の画素から前記最後の画素までを罫線位置として検出する一方、前記間隔が所定の幅閾値を超えると、前記最初の画素から前記最後の画素までにゴミ画像が存在すると判別するゴミ判別手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記ゴミ判別手段が前記最初の画素から前記最後の画素までにゴミ画像が存在すると判別すると、
前記平均濃度の算出に使用された複数の画素の列を、該複数の画素の列の近傍に位置する画素の列で置き換えて前記平均濃度の再算出を行う請求項１の画像処理装置。
【請求項３】
前記間隔が前記所定の幅閾値を超えると、前記ゴミ判別手段が、前記平均濃度の算出に使用される画素の列の数を増加させて前記平均濃度を再算出する請求項１又は請求項２の画像処理装置。
【請求項４】
前記最初の画素と前記最後の画素の略中間を前記罫線位置とする請求項１〜請求項３の何れか一項に記載の画像処理装置。
【請求項５】
副走査方向の所定範囲で所定色かつ所定濃度となる画像データを、該画像データの主走査方向と副走査方向の何れか又は双方に延びる罫線と共に印刷装置に印刷させる印刷手段と、
該印刷の結果の光学読取画像を光学読取装置から取得する印刷結果取得手段と、
前記罫線検出手段が検出した前記画像データの罫線位置に基づいて光学読取画像の正立回転とトリミングと前記画像データの印刷された位置検出との少なくとも１つから成る画像処理を行う画像処理手段と、
該画像処理手段での画像処理後の光学読取画像から副走査方向の濃度変化を計測し、該濃度変化を解消する補正値を生成して前記印刷装置に設定する補正値設定手段と、
を備える請求項１〜請求項４の何れか一項に記載の画像処理装置。
【請求項６】
所定幅の罫線が記載された画像データの罫線位置を検出する画像処理方法であって、
前記罫線と略直交する方向に１列に並ぶ画素の列を複数列抽出し、抽出された複数列の画素の列において罫線方向に並ぶ位置にある画素の間で平均濃度を算出する平均濃度算出工程と、
画素の列の一方の端から順に前記平均濃度と所定の濃度閾値とを比較し、該所定の濃度閾値を超えた最初の画素から最後の画素までの間隔を求める罫線幅検出工程と、
該間隔が所定の幅閾値内に収まれば、前記最初の画素から前記最後の画素までにゴミ画像が存在しないと判別して前記最初の画素から前記最後の画素までを罫線位置として検出する一方、前記間隔が所定の幅閾値を超えると、前記最初の画素から前記最後の画素までにゴミ画像が存在すると判別するゴミ判別工程と、
を備えることを特徴とする画像処理方法。
【請求項７】
所定幅の罫線が記載された画像データの罫線位置を検出する画像処理プログラムであって、
前記罫線と略直交する方向に１列に並ぶ画素の列を複数列抽出し、抽出された複数列の画素の列において罫線方向に並ぶ位置にある画素の間で平均濃度を算出する平均濃度算出機能と、
画素の列の一方の端から順に前記平均濃度と所定の濃度閾値とを比較し、該所定の濃度閾値を超えた最初の画素から最後の画素までの間隔を求める罫線幅検出機能と、
該間隔が所定の幅閾値内に収まれば、前記最初の画素から前記最後の画素までにゴミ画像が存在しないと判別して前記最初の画素から前記最後の画素までを罫線位置として検出する一方、前記間隔が所定の幅閾値を超えると、前記最初の画素から前記最後の画素までにゴミ画像が存在すると判別するゴミ判別機能と、
をコンピュータに実現させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法及び画像処理プログラムに関し、特に、罫線が含まれる画像から罫線を検出する画像処理装置、画像処理方法及び画像処理プログラムに関する。
【背景技術】
【０００２】
従来、スキャナ等でスキャンされて生成された画像データから文字等の所定の形状を検出し、その形状認識を行う技術としてＯＣＲ（Optical Character Recognition）等が知られている。このような形状認識を行う技術では、スキャン対象となる紙面やスキャナの読み取り面に付着するゴミや汚れに起因して、生成された画像データには、検出対象となる形状の周辺にゴミのイメージ（以下、ゴミ画像と称する）が形成されると、検出精度が低下するという課題が存在していた。
【０００３】
このような課題を解決するために、画像データから１文字分の文字イメージを切り出し、この文字イメージに含まれるセグメント数、各セグメントの面積、文字イメージの線幅の分布、文字辞書と文字イメージとの照合、等に基づいて文字イメージからゴミ画像を消去し、文字認識の精度を向上させる技術が知られている（例えば、特許文献１等）。
【特許文献１】特開平７−１０５３１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、画像データ中から所定形状を検出して利用する技術として、画像データの自動トリミングや自動正立回転等も存在する。罫線等の直線で囲まれた範囲のトリミングを行うには、例えば、まず罫線の検出を行う。この罫線の検出では、所定濃度以上の画素が所定幅で直線状に連続して形成された部位を検出することになる。しかしながら、罫線の近傍にゴミ画像が形成されると、罫線の幅が変化してしまい、罫線検出に失敗したり、罫線検出に成功しても検出された罫線位置や罫線方向の精度に問題があったりすることになる。
【０００５】
また、正立回転では、特許文献１記載の技術のような文字認識を行い、認識された文字から傾きを求め、求めた傾きを補正する回転処理が行われていた。しかしながら、一般に文字はサイズが小さく、文字の傾きから求められる角度では、精度に限界がある。そのため、精確な正立回転を行うためには、画像データ中に罫線等の直線から成る基準線を記載して、この基準線の傾きを補正する正立回転を行った方が好ましい。
【０００６】
このように、自動トリミングや自動正立回転を精度よく行うためには、罫線検出を精確に行う必要があり、そのためにはゴミ画像の影響を低減する必要がある。しかしながら、罫線では、一文字分の文字イメージを切り出したり、切り出した文字イメージをセグメントに分解してゴミ画像を検出したり、といったゴミ除去が出来ないため、前述の特許文献１の技術を適用することは難しい。
【０００７】
本発明は、前記課題に鑑みてなされたもので、罫線が記載された画像データの罫線位置や罫線方向の検出を行うにあたり、罫線近傍にゴミ画像が形成された場合であっても、罫線位置や罫線方向を精度よく確実に検出可能な画像処理装置、画像処理方法及び画像処理プログラムの提供を目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明は、所定幅の罫線が記載された画像データの罫線位置を検出する画像処理装置であって、前記罫線と略直交する方向に１列に並ぶ画素の列を複数列抽出し、抽出された複数列の画素の列において罫線方向に並ぶ位置にある画素の間で平均濃度を算出する平均濃度算出手段と、画素の列の一方の端から順に前記平均濃度と所定の濃度閾値とを比較し、該所定の濃度閾値を超えた最初の画素から最後の画素までの間隔を求める罫線幅検出手段と、該間隔が所定の幅閾値内に収まれば、前記最初の画素から前記最後の画素までにゴミ画像が存在しないと判別して前記最初の画素から前記最後の画素までを罫線位置として検出する一方、前記間隔が所定の幅閾値を超えると、前記最初の画素から前記最後の画素までにゴミ画像が存在すると判別するゴミ判別手段と、を備える構成としてある。
【０００９】
また、上述した画像処理装置は、他の機器に組み込まれた状態で実施されたり他の方法とともに実施されたりする等の各種の態様を含む。さらに、本発明は上記画像装置を備える印刷システム、上述した装置の構成に対応した工程を有する制御方法、上述した装置の構成に対応した機能をコンピュータに実現させるプログラム、該プログラムを記録したコンピュータ読み取り可能な記録媒体、等としても実現可能である。これら印刷システム、画像送信方法、画像送信プログラム、該プログラムを記録した媒体、の発明も、上述した作用、効果を奏する。むろん、請求項２〜５に記載した構成も、前記システムや前記方法や前記プログラムや前記記録媒体に適用可能である。
本発明の他の特徴については、本明細書及び添付図面の記載により明らかにする。
【発明を実施するための最良の形態】
【００１０】
本明細書及び添付図面の記載により、少なくとも、以下の事項が明らかとなる。
前記主たる発明の構成によれば、前記平均濃度算出手段が、前記罫線と略直交する方向に１列に隣接する画素の列を複数列抽出し、抽出された複数列の画素の列において罫線方向に並ぶ位置にある画素の間で平均濃度を算出する。つまり、複数の画素の列の間で、濃度を平均するため、各画素の列に一様に含まれうる罫線を除く画像の濃度は低下する。従って、平均濃度の分布においては罫線の濃度のみが顕在化してゴミ画像と罫線との判別が容易になる。
【００１１】
そして、罫線幅検出手段が、画素の列の一方の端から順に前記平均濃度と所定の濃度閾値とを比較し、該所定の濃度閾値を超えた最初の画素から最後の画素までの間隔を求める。つまり、所定の濃度閾値を設定して、閾値以上の濃度を有する最初の画素と最後の画素との間隔を罫線の幅とする。
【００１２】
そして、ゴミ判別手段が、該間隔が所定の幅閾値内に収まれば、前記最初の画素から前記最後の画素までにゴミ画像が存在しないと判別して前記最初の画素から前記最後の画素までを罫線位置として検出する一方、前記間隔が所定の幅閾値を超えると、前記最初の画素から前記最後の画素までにゴミ画像が存在すると判別する。つまり、予め設定された幅閾値と、前記罫線幅検出手段の検出した罫線の幅とを比較する。そのため、仮にゴミ画像が想定以上に画像データに含まれており、前記平均濃度でもゴミ画像の濃度が罫線濃度と比較して十分に低減されない場合であっても、ゴミ画像を罫線と誤認する恐れがない。
【００１３】
ここで、罫線と略直交する方向に１列に並ぶ画素の列とは、罫線方向が１画素であり、罫線と略直交する方向に複数の画素が並ぶものである。また、複数列の画素の列とは、罫線方向に隣接する位置関係にあるものであっても良いし、各画素の列の間に、抽出されない画素の列が存在するような間隙を有する位置関係にあるものであっても良い。また、前記ゴミ画像とは、前記画像データの作成者の意図に反して形成される画像であり、例えば、ノイズ成分や、光学的に原稿読取を行った際に読取面に付着したゴミに起因して読取画像に形成されるものである。
【００１４】
かかる画像処理装置において、前記ゴミ判別手段が前記最初の画素から前記最後の画素までにゴミ画像が存在すると判別すると、前記平均濃度の算出に使用された複数の画素の列を、該複数の画素の列の近傍に位置する画素の列で置き換えて前記平均濃度の再算出を行うことが望ましい。このような画像処理装置によれば、最初に平均濃度の算出に利用された複数の画素の列に代えて、ゴミ画像の影響の少ない可能性のある画素の列を平均濃度の算出、ひいては罫線の幅の検出に利用することになり、ゴミ画像の影響を排除できる可能性がある。
【００１５】
かかる画像処理装置において、前記間隔が前記所定の幅閾値を超えると、前記ゴミ判別手段が、前記平均濃度の算出に使用される画素の列の数を増加させて前記平均濃度を再算出することが望ましい。このような画像処理装置によれば、特定の画素の列にゴミ画像が含まれていても、平均濃度の算出に利用される標本数が増加されるため、ゴミ画像の影響を減少することが出来る。よって、前記罫線幅検出手段で検出される罫線の幅が、正確になる可能性がある。
【００１６】
かかる画像処理装置において、前記最初の画素と前記最後の画素の略中間を前記罫線位置とすることが望ましい。前記罫線幅検出手段では、所定の濃度閾値を利用して罫線の幅を検出しているため、その両端は罫線の何れの位置に相当するかは明確でない。しかしながら、罫線の濃度は幅方向において中間を挟んで略対称に分布する。従って、検出された罫線の幅の略中間が実際の罫線の中間と略一致することが期待できる。
【００１７】
かかる画像処理装置において、副走査方向の所定範囲で所定色かつ所定濃度となる画像データを、該画像データの主走査方向と副走査方向の何れか又は双方に延びる罫線と共に印刷装置に印刷させる印刷手段と、該印刷の結果の光学読取画像を光学読取装置から取得する印刷結果取得手段と、前記罫線検出手段が検出した前記画像データの罫線位置に基づいて光学読取画像の正立回転とトリミングとの何れか又は双方から成る画像補正を行う画像補正手段と、画像補正後の光学読取画像から副走査方向の濃度変化を計測し、該濃度変化を解消する補正値を生成して前記印刷装置に設定する補正値設定手段と、を備えることが望ましい。このような画像処理装置において、検出された罫線位置を光学読取画像の正立回転やトリミング等の画像補正に利用すると、その精度の向上に寄与する。
【００１８】
以下、下記の順序に従って本発明の実施形態を説明する。
（１）印刷システムの構成：
（２）濃度ムラ補正値設定処理：
（３）罫線検出処理の変形例：
【００１９】
（１）印刷システムの構成： 
図１は、本発明の一実施形態にかかる濃度補正印刷制御装置が適用される印刷システムをブロック図により示している。
同図において、コンピュータ１０は、パーソナルコンピュータなどが該当する。コンピュータ１０は、ハードウェアとしてＣＰＵ、ＲＯＭ、ＲＡＭに加え、図示していないハードディスクなどの外部記憶装置、スキャナ３０（光学読取装置）等を備え、入力機器としてキーボード、マウス等を備え、表示装置としてディスプレイ等を備えている。コンピュータ１０は、ソフトウェアとハードウェアとが有機的に連携して所定の機能を実現する。本実施形態では、ソフトウェア構成として、図１に示すようなプリンタドライバ１０ｃ、アプリケーション１０ｂ、補正値設定プログラム１０ａ、等を備えている。
【００２０】
アプリケーション１０ｂは、ドットマトリクス状の画像データをプリンタドライバ１０ｃに出力する。この画像データは、ＲＧＢの各色成分を２５６階調で階調表現した階調データである（ＲＧＢデータ）。アプリケーション１０ｂからＲＧＢデータを受け取ったプリンタドライバ１０ｃは、このＲＧＢデータに対して解像度変換処理と色変換処理と階調変換処理とラスタライズ処理とを行う。本実施形態においては、解像度変換処理と色変換処理と階調変換処理とをハーフトーン（Ｈ／Ｔ）モジュール１０ｃ１が担当し、ラスタライズ処理をインタレースモジュール１０ｃ２が担当する。
【００２１】
Ｈ／Ｔモジュール１０ｃ１は、ＲＧＢデータを受け取ると、まず解像度変換処理を行う。解像度変換処理では、アプリケーションプログラムが扱っているカラー画像データの解像度をプリンタドライバ１０ｃが扱うことができる解像度に変換する。次に、Ｈ／Ｔモジュール１０ｃ１は色変換処理を行う。色変換処理は、ＲＧＢ階調値をＣＭＹＫ（Ｃ：シアン，Ｍ：マゼンタ，Ｙ：イエロー，Ｋ：ブラック）階調値に変換する処理であり、ＲＧＢで表現された画像データの各ドットデータをＣＭＹＫのドットデータ（ＣＭＹＫデータ）に変換する。その後、Ｈ／Ｔモジュール１０ｃ１は、ＣＭＹＫデータに対して階調変換処理を行う。階調変換処理は、各ドットのＣＭＹＫ階調値を変換してインク滴のドットの分布で表現するためのハーフトーン処理であり、変換後の記録密度でインクを付着させるためのヘッド駆動データを生成する。
【００２２】
インタレースモジュール１０ｃ２は、ヘッド駆動データを受け取ると、ラスタライズ処理を行う。プリンタ２０においてはインク吐出デバイスとして図示しない吐出ノズルアレイが搭載されており、当該ノズルアレイでは副走査方向に複数の吐出ノズルが並設されるため、副走査方向に数ドット分間離れたデータが同時に使用される。そこで、主走査方向に並ぶヘッド駆動データのうち同時に使用されるべきものがプリンタ２０にて同時にバッファリングされるように順番に並べ替えるラスタライズを行う。ここで主走査方向とは印刷ヘッドが往復動する方向であり、これに対し、紙送り方向が副走査方向となる。インタレースモジュール１０ｃ２は、ラスタライズ処理の後、画像の解像度などの所定の情報を付加した印刷データを生成し、Ｉ／Ｆを介してプリンタ２０に出力し、印刷を行わせる。
【００２３】
プリンタ２０は、少なくとも、ＣＰＵやＲＯＭやＲＡＭを備えて主に制御を司る制御部２１と、色インクを吐出する印刷ヘッドユニット２５と、ヘッドユニットを印刷用紙の紙送り方向と直行する主走査方向に往復動させるキャリッジユニット２６と、印刷用紙を紙送り方向である副走査方向に搬送する紙送りユニット２７と、制御部２１の制御に従って各ユニット２５〜２７を駆動するユニット制御回路２４と、コンピュータ１０のＩ／Ｆに接続されたインターフェース（Ｉ／Ｆ）２９と、を備えている。
【００２４】
プリンタ２０は、コンピュータ１０から印刷データを受信すると、制御部２１が各ユニット（印刷ヘッドユニット、キャリッジユニット、紙送りユニット）を制御して印刷データに基づく印刷を行わせる。なお、プリンタ２０はこれらの他にも、プリンタ２０内部の状況（紙位置、インク量、印刷ヘッド位置、等）を監視して検出結果を制御部に出力するセンサ群２８、コンピュータ１０のＩ／Ｆ１５と通信可能に接続されたＩ／Ｆ２９、不揮発性のメモリ２３、等を備えている。
【００２５】
図２は印刷ヘッドのノズル配置を示す図である。印刷ヘッドユニット２５は、複数のノズルから成る印刷ヘッド２５ａを備える。印刷ヘッドユニット２５は、ユニット制御回路２４から印刷データに対応する印加電圧データを入力されて、ピエゾ素子への印加電圧パターンを生成し、ピエゾ素子を駆動して各ノズルのインクチャンバーを圧縮・伸張し、ノズルからインク滴を吐出させる。この印刷ヘッドは各色インクに対応する複数のノズルを備えており、各色インク毎に整列している。各色インクに対応するノズル列は搬送方向に沿って、一定のノズルピッチで整列している。
【００２６】
キャリッジユニット２６は、モータにより印刷ヘッドユニット２５を主走査方向に往復動させるものである。このキャリッジユニット２６は、ユニット制御回路２４の制御により、印刷ヘッドから吐出される色インクのドットが印刷用紙上における主走査方向の所定位置に付着されるように吐出タイミングと同期して往復動する。
【００２７】
紙送りユニット２７は、紙を副走査方向に搬送するものである。この紙送りユニットは搬送ローラを備えており、印刷ヘッドユニットの往復動にタイミングを合わせて所定量の紙送りを行う。
【００２８】
以上説明した本実施形態のプリンタ２０は、ＣＭＹＫ（シアン、マゼンタ、イエロー、ブラック）の各インクを印刷ヘッドから吐出して印刷媒体にインクのドットを形成して印刷するインクジェットプリンタとして記載してあるが、無論、印刷装置には、ＣやＭやＫの淡色、Ｙの濃色、レッド、バイオレット、無着色インク、等も使用する装置、ＣＭＹＫのいずれかを使用しない装置、等も採用可能である。
【００２９】
ところで、プリンタドライバ１０ｃは、主走査方向に濃淡となって発生する濃度ムラを補正する補正モジュール１０ｃ３を備えている。この補正モジュール１０ｃ３は、Ｈ／Ｔモジュール１０ｃ１から画像データを取得して取得し、メモリ１３に記憶された補正値１３ａに従って取得した画像データに対して濃度ムラを補正するための処理を行う。ここで、補正モジュールが実現する濃度ムラの補正について説明する。
【００３０】
図２に示すように、印刷ヘッド２５ａの各ノズルは、色毎に副走査方向に整列している。この印刷ヘッドを主走査方向に走査しつつインク滴を紙面に飛ばすことで、各ノズルがラスタを形成する。しかしながら、各ノズルのインク吐出方向は完全に同一ではなく、インク吐出方向にばらつきが存在する。例えば、インク吐出方向が主走査方向の上流側に向いていたり、主走査方向の下流側に向いていたりする。従って、各ノズルから均等にインク吐出を行うと、インク吐出方向のばらつきのために印刷結果に濃度ムラが表れることになる。
【００３１】
そこで、プリンタ２０で印刷する際、印刷データにおける各ラスタの印刷に使用されるノズルが一意的に決まることを利用して、測定用パターンを印刷させ、印刷結果の濃度ムラを測定し、濃度ムラを解消するような補正値を作成してプリンタに設定する。そして、この補正値に基づいて補正された印刷データで印刷すると、このような濃度ムラの発生を防ぐことが可能となる。このように補正値に基づいて画像データの補正を行う補正モジュール１０ｃ３が画像補正手段を構成する。
【００３２】
この補正値は、以下の濃度ムラ補正値設定処理で作成され、各プリンタに設定される。なお、補正値設定処理は、プリンタの出荷前に工場等で実行されて、プリンタ毎に作成された補正値が設定される。そして、補正値の設定されたプリンタを購入したユーザのもとでプリンタドライバなどのインストール時に、プリンタからコンピュータに読み込まれて保存される。この保存された補正値を利用して、補正モジュールが画像データの補正を行うことになる。
【００３３】
（２）濃度ムラ補正値設定処理： 
以下、濃度ムラを補正する補正値の設定について説明する。この補正値の設定は、プリンタ製造工場の検査工程において、プリンタ２０にテストパターンを印刷させ、テストパターンをスキャナ３０で読み取り、副走査方向におけるテストパターンの濃度変化を計測し、この濃度変化に基づいて補正値をプリンタ２０のメモリ１３に記憶することにより行われる。即ち、プリンタ２０に記憶される補正値は、個々のプリンタ２０における濃度ムラの特性を反映したものになる。
【００３４】
図３は、プリンタ２０の製造後の検査工程で実行される補正値設定プログラムの処理を示すフローチャートである。
まず、検査者は、検査対象となるプリンタ２０をコンピュータ１０に接続して補正値設定プログラムを実行する。このコンピュータ１０には、予め、スキャナ３０も接続されており、プリンタ２０のプリンタドライバ１０ｃと、スキャナ３０を制御するためのスキャナドライバと、スキャナ３０が読み取ったテストパターンの画像データから補正値を算出してプリンタ２０に補正値を設定する補正値設定プログラム１０ａがインストールされている。
【００３５】
処理が開始されるとステップＳ３０で、プリンタ２０にテストパターンの印刷を行わせる。このステップＳ３０でプリンタ２０にテストパターンの印刷を行わせるコンピュータ１０が印刷手段を構成する。
図４は、テストパターンの説明図である。このテストパターンは、例えば７２０×７２０ｄｐｉの印刷解像度で印刷され、左から順にＫ，Ｃ，Ｍ，Ｙの色別に４つの補正用パターンが並べてある。各補正用パターンは、５種類の濃度（階調値）の帯状パターンと、帯状パターンを囲う上罫線と、下罫線と、左罫線と、右罫線とにより構成されている。
【００３６】
帯状パターンは、それぞれ、副走査方向の所定範囲で一定の階調値となり、主走査方向に異なる階調値の帯状パターンが並ぶような画像データとして形成されている。図４においては、左の帯状パターンから順に濃い濃度のパターンになっている。なお、このテストパターンを印刷する際には、前述した補正モジュール１０ｃ３による補正値に基づいた濃度補正処理は行われない。
【００３７】
次に、検査者は、プリンタ２０でテストパターンが印刷された紙を、スキャナ３０の読取位置にセットし、読み取りを行わせる。そして、スキャナドライバを介して、読み取られたテストパターンの画像データ（光学読取画像）をコンピュータ１０が取得する（ステップＳ３２）。
【００３８】
図５は、補正用パターンの読み取り範囲の説明図である。補正用パターンを囲む一点鎖線の範囲が、スキャニングを行う範囲である。この範囲を特定するためのパラメータＳＸ１、ＳＹ１、ＳＷ１及びＳＨ１は、補正値設定プログラムによって予めスキャナドライバに設定されている。この範囲はテストパターンよりも広めに設定されており、この範囲をスキャナ３０に読み取らせれば、テストパターンの印刷された原稿が多少ずれてスキャナ３０にセットされても、補正用パターンの全体を読み取ることができる。この処理により、図中の読み取り範囲の画像が、矩形の画像データとして高解像度で生成されてコンピュータ１０に取り込まれる。
【００３９】
このスキャナドライバを介して光学読取画像を取得するコンピュータ１０が、印刷結果取得手段を構成する。そして、以下のステップＳ３６〜Ｓ４８の処理を実行して、この読取画像から補正用パターンを検出して補正値の算出及び設定を行う。この補正値の算出と設定とを行う補正値設定プログラム１０ａを実行するコンピュータ１０が補正値設定手段を構成する。
【００４０】
次に、補正値設定プログラム１０ａは、切り出された画像に図６の罫線検出処理を行って罫線位置を検出し、読取画像を正立回転させる画像処理（Ｓ３８）を行う。ここで行われる罫線検出処理は、読取画像を正立回転させる処理のみならず、トリミング処理やパターン位置検出処理でも行われる。
【００４１】
図６に示す罫線検出処理においては、まず、罫線に対して略直交する方向に１列に並ぶ画素の列において、所定位置の画素列間の濃度を平均した平均濃度から罫線検出を行う。この罫線検出処理の結果は、テストパターンの範囲を特定し、テストパターンに印刷された各ラスタが何れのノズルで印刷されたかを特定するために利用されるため、高い精度が要求される。
【００４２】
図８は、平均濃度の算出と、この平均濃度を利用した罫線検出の説明図である。無論、罫線検出は、主走査方向に並ぶ（後述のトリミング処理では副走査方向に並ぶ）何れか１列の画素列の濃度分布からでも可能である。しかしながら、読取画像には、ノイズに起因するゴミ画像が含まれていたり、原稿に付着する微細な埃やゴミ等の存在によって所定サイズ以下のゴミ画像が形成されたりする可能性がある。このような場合、図７の（ａ）に示すようなａ１，ａ２，ａｎ−１，ａｎのように、ゴミ画像を含まない画素列であれば正常な罫線検出が可能であるが、画素列ａ３や画素列ａｎ−２のようにゴミ画像が存在する画素列から罫線検出を行ってしまうと、罫線位置にずれが生じ、後述の回転処理やトリミング処理、パターン位置検出処理が正しく行えない。
【００４３】
そこで、これらゴミ画像が各画素列で発生する頻度がランダムであるのに対し、罫線は何れの画素列にも均等に含まれることに着目する。即ち、画素列間で濃度を平均化すると、ランダムに発生するゴミ画像は平均化されて濃度が低下するのに対し、罫線濃度は一定の濃度を保つことを利用する。
【００４４】
図７は、罫線検出処理に使用する画素の列を説明する図である。同図では、読み取り範囲の左上を原点として右方向をｘ方向、下方向をｙ方向としてある。同図に示すように、ＫＸ１〜ＫＸ２列には、それぞれｎ列の画素列が含まれる。ＫＸ３〜ＫＸ４列については図示を省略しているが、ＫＸ１〜ＫＸ２列と同様である。ステップＳ１００ではこれらＫＸ１〜ＫＸ２列とＫＸ３〜ＫＸ４列の画素列を抽出する。そしてステップＳ１０２で、これらＫＸ１〜ＫＸ２列の間、およびＫＸ３〜ＫＸ４列の画素列の間で、罫線方向と略一致する方向に並ぶ画素間（ｙ座標が同一となる画素間）で濃度をそれぞれ平均し、図８（ｂ）のような平均濃度を算出する。
【００４５】
ここで、読取画像の位置（ｘ，ｙ）の画素の濃度（階調値）をＤ（ｘ，ｙ）とすると、ＫＸ１〜ＫＸ列の画素列間の平均濃度Ｄａｖｅは
【数１】
2008257394.tif 000003
となる。同様に、ＫＸ３〜ＫＸ４列の画素列間の平均濃度は
【数２】
2008257394.tif 000004
で表される。ここで、ＫＸ１〜ＫＸ２，ＫＸ３〜ＫＸ４は、縦罫線や帯状パターンと干渉しないように設定されている。
【００４６】
このように算出された平均濃度では、ゴミ画像の濃度が低下されている。しかしながら、完全にゴミ画像の濃度が０になるわけではない。そこで、ゴミ画像の罫線検出に対する影響をさらに低減するために濃度閾値を設定し、ステップＳ１０４でこの濃度閾値を超えた部位を罫線として検出することにする。即ち、濃度閾値内に収まればゴミ画像の濃度であるとして罫線ではないと判断する。この濃度閾値は、ゴミ画像の出現度合い等を考慮して、平均濃度に含まれる得るゴミ画像の濃度以上となるように設定される。
【００４７】
この濃度閾値との比較では、補正値設定プログラムは、画素列の平均濃度を上から順にＫＨまで濃度閾値ｔｈ１と比較していく。そして、濃度閾値を超えた最初の画素ＫＨ１から、濃度閾値を超えた最後の画素ＫＨ２までの間隔ＫＷ１を、罫線の幅と判断する。このように、濃度閾値を適切に設定することにより、より確実にゴミ画像の影響を排除できる。
【００４８】
ところで、ゴミ画像が少ない時や、大きなゴミがない場合は、平均濃度を取って濃度閾値を超えた部位を罫線とすることにより罫線検出に成功する。しかしながら、多くのゴミ画像が含まれた場合に、平均濃度を取ってもゴミ画像の濃度が低下しなかったり、罫線検出に使用される位置（ＫＸ１〜ＫＸ２，ＫＸ３〜ＫＸ４）に罫線に近接して大きなゴミ画像が形成されて罫線の幅にゴミ画像の幅も含まれたりする場合には、罫線の幅ＫＷ１が実際よりも大きくなったりすることが考えられる。
【００４９】
そこで、図９のように予め、罫線幅の上限（幅閾値）ＫＷ０を設定しておき、ステップＳ１０６で罫線の幅ＫＷ１を判定し、幅閾値を超えると、濃度閾値を超えた部位にゴミ画像が存在すると判別する。より具体的には、検出された罫線幅ＫＷ１と幅閾値ＫＷ０とを比較し、罫線幅ＫＷ１が幅閾値ＫＷ０以下であれば罫線検出成功とし、罫線幅Ｋｗ１が幅閾値ＫＷ０を超えた場合は罫線検出失敗として補正値設定プログラムを終了する。
【００５０】
そして、ステップＳ１０８で、検出された罫線幅から罫線位置を決定する。本発明では濃度閾値を超えた部位を罫線幅としている。そのため、濃度閾値の取り方によっては、濃度閾値を超えた最初の位置および濃度閾値を超えた最後の位置は、実際の罫線の両端の位置とは異なってしまう。そこで、検出された罫線の幅の中間を罫線位置とする。これにより、どのような濃度閾値を採用しても、常に同じ位置を罫線位置として認識可能となる。無論、罫線位置の決定方法は、検出された罫線幅の中間に限られるものではなく、例えば、平均濃度に含まれる階調値の重心位置を罫線位置とすることも考えられる。
【００５１】
以上の罫線検出処理で検出された罫線位置に基づき、読取画像に含まれる罫線位置から補正用パターンの傾きθを検出し、読取画像に対してこの傾きθに応じた回転を行って読取画像を正立させる画像処理を行う。具体的には、次式により補正用パターンの傾きθを算出し、算出された傾きθに基づいて、画像データの回転処理を行う。
【数３】
2008257394.tif 000005
この回転処理は罫線検出処理で検出された罫線位置に基づいて行われるため、ゴミ画像の影響を排した正確な罫線位置を利用することにより、正確な回転処理が可能となる。
【００５２】
次に、補正値設定プログラムは、読取画像の中から不要な画素をトリミングする画像処理を行う。
図１０は、トリミングの際の読取画像の説明図である。まず、補正値設定プログラムは、回転処理されて正立された読取画像の中から、ＫＸ１〜ＫＸ２列の画素列であって上からＫＨ個の画素の画素データと、ＫＸ３〜ＫＸ４列の画素列であって上からＫＨ個の画素の画素データと、を取り出す。同様に、補正値設定プログラムは、回転処理されて正立した読取画像の中から、ＫＸ１〜ＫＸ２列の画素列であって下からＫＨ個の画素の画素データと、ＫＸ３〜ＫＸ４列の画素列であって下からＫＨ個の画素の画素データと、を取り出す。そして、前述した罫線検出処理と同様に、各画素列の平均濃度を求めて、濃度閾値および幅閾値にて罫線位置を検出する。
【００５３】
検出された罫線位置に基づいて、上罫線においては検出された罫線位置から罫線幅の１／２だけ上側の位置において、下罫線においては検出された罫線位置から罫線幅の１／２だけ下側の位置において、それぞれ最も近い画素の境界をトリミング位置に決定する。そして、補正値設定プログラムは、上罫線のトリミング位置よりも上側の画素、および下罫線のトリミング位置よりも下側の画素をそれぞれ切り取り、トリミングを行なう。トリミング位置を決定するための罫線幅は、予め補正値設定プログラムに設定されているものとする。
【００５４】
このトリミング処理においても罫線位置に基づいて行われる。よって、罫線検出処理で正確な罫線位置が検出されることにより、印刷データのラスタ位置と読取画像のラスタ位置が正確に対応し、補正モジュールによる補正が正しく行えるようになる。
【００５５】
次に、補正値設定プログラムは、Ｙ方向の画素数が補正用パターンを構成するドット列の数と同数になるように、トリミングされた読取画像を解像度変換する。
図１１は、解像度変換の説明図である。仮に、プリンタ２０が補正用パターンを理想的に形成し、スキャナ３０が補正用パターンを理想的に読み取れば、トリミング後の読取画像のＹ方向の画素数は、所定値になるはずである。しかし、実際には印刷時や読み取り時のズレの影響があって、読取画像のＹ方向の画素数が所定値にならないことがある。
【００５６】
そこで補正値設定プログラムは、この読取画像に対して、［補正用パターンを構成するドット列の数］／［トリミング後の読取画像のＹ方向の画素数］の倍率で解像度変換（縮小処理）を行ない、解像度変換後の読取画像のＹ方向の画素数を所定値にする。
【００５７】
次に、補正値設定プログラムは、各列領域における５種類の帯状パターンのそれぞれの濃度を測定する。以下、１番目の列領域における階調値で形成された左側の帯状パターンの濃度の測定について説明する。なお、他の列領域における測定も同様に行なわれる。また、他の帯状パターンの濃度の測定も同様に行なわれる。
【００５８】
図１２（ａ）は、左罫線の検出の際の読取画像の説明図である。図１２（ｂ）は、左罫線の位置の検出の説明図である。図１２（ｃ）は、１番目の列領域の濃度３０％の帯状パターンの濃度の測定範囲の説明図である。
【００５９】
補正値設定プログラムは、解像度変換された読取画像の中から、上からＨ１〜Ｈ２列の画素列であって、左からＫＸ個の画素の画素データを取り出す。このとき取り出される画素の中に左罫線が含まれるように、パラメータＫＸが予め定められている。そして、補正値設定プログラムは、前述の罫線検出処理と同様の処理を行って罫線位置を求める。
【００６０】
補正用パターンの形状は既定であるため、この罫線位置（左罫線の位置）からＸ２だけ右側に、濃度３０％の帯状パターンが幅Ｗ３に亘って存在している。そこで、補正値設定プログラムは、罫線位置を基準にして、目的の帯状パターン位置に合致する画素データをラスタに対応する領域毎に抽出し、この領域に含まれる画素データの階調値の平均値を測定する。このようにして、補正値設定プログラムは、帯状パターンの濃度をラスタ毎にそれぞれ測定して濃度分布を作成する。
【００６１】
このパターン位置（パターンの印刷された位置）を検出する画像処理においても、罫線位置の正確な検出が重要である。罫線検出処理によって正確な罫線位置が検出されることにより、濃度分布と印刷データのラスタ位置とが正しく対応付けられ、補正値に基づく補正が実効あるものとなる。
【００６２】
このようにして測定された画素データの濃度分布に基づいて、濃度分布のムラを補正する補正値を求め、プリンタ２０のメモリ２３に記憶させる。無論、プリンタ２０に補正値を設定する前に、求めた補正値を適用してテストパターンの印刷を行い、補正値の実効性を確認してもよい。
【００６３】
以上、ステップＳ１００〜Ｓ１０２の罫線検出処理を実行するコンピュータ１０が平均濃度算出手段を構成し、ステップＳ１０４〜１０８の罫線検出処理を実行するコンピュータ１０がゴミ判別手段を構成する。
【００６４】
（３）罫線検出処理の変形例： 
ところで、上述した罫線検出においては、平均濃度算出のための複数画素列の部位で、罫線に近接して大きなゴミ画像が存在すると、罫線検出に失敗する。このとき、平均濃度算出の対象とならなかった画素列に含まれる罫線では、近傍にゴミ画像が存在しないことがあり得る。そこで、平均濃度からの罫線検出に失敗したときは、その近傍の罫線を利用して平均濃度算出の再算出を行ってもよい。
【００６５】
図１３に罫線検出処理の変形例を説明する図を示した。同図には、ＫＸ１〜ＫＸ２列の上端付近を示してある。正立回転処理における罫線検出を例に取ると、ＫＸ１〜ＫＸ２列の画素列の平均濃度からの罫線検出に失敗したときは、この近傍の画素列となるＫ５〜Ｋ１（ＫＸ５＜ＫＸ１）列の画素列及びＫＸ２〜ＫＸ６（ＫＸ２＜ＫＸ６）列の画素列から平均濃度を算出して、再度、罫線検出処理を実行する。無論、ＫＸ５〜ＫＸ１列，ＫＸ２〜ＫＸ６列は、縦罫線や帯状パターンと干渉しないように設定されている。
【００６６】
また、近傍の画素列を利用するのみならず、Ｋ５〜Ｋ１列やＫ２〜〜Ｋ６列の画素列をＫＸ１〜ＫＸ２列の画素列の部位にコピーして置き換えてもよい。即ち、近傍の罫線を罫線検出位置に延長して罫線を補完してもよい。この補完により、ＫＸ１〜ＫＸ２列で罫線近傍に大きなゴミ画像が含まれていたとしても、このゴミ画像は削除される。罫線の補完後、再度、ＫＸ１〜ＫＸ２列の画素列で罫線検出処理を行えば、罫線延長前のゴミ画像の影響を受けない。
【００６７】
また、平均濃度からの罫線検出に失敗したときの近傍の画素列を利用する他の態様として、平均濃度の算出に利用される画素の列の数を増加させて、再度平均濃度の再算出と罫線幅の検出、及びゴミの判別とを行う構成としてもよい。図１３の例であれば、ＫＸ１〜ＫＸ２列の平均濃度からの罫線検出に失敗したときは、ＫＸ５〜ＫＸ６列の平均濃度から罫線検出を試みる。即ち、平均濃度の算出に利用する標本の母体数を増加させることにより、局所的に発生した大きなゴミ画像の濃度を低下させることが出来る。よって、この態様であっても、ゴミ画像に影響されにくい罫線位置の検出が可能となる。
【００６８】
このように、罫線検出処理で罫線検出に失敗したときは、罫線検出に使用された画素列の近傍の画素列を利用して罫線の再検出を行うことにより、局所的に形成されたゴミ画像による罫線検出失敗を回避可能となる。
【００６９】
なお、本発明は上述した実施形態や変形例に限られず、上述した実施形態および変形例の中で開示した各構成を相互に置換したり組み合わせを変更したりした構成、公知技術並びに上述した実施形態および変形例の中で開示した各構成を相互に置換したり組み合わせを変更したりした構成、等も含まれる。 
【図面の簡単な説明】
【００７０】
【図１】画像処理装置としてのコンピュータを含む印刷システムのブロック構成図である。
【図２】印刷ヘッドのノズルを示す図である。
【図３】補正値設定プログラムの処理を示すフローチャートである。
【図４】テストパターンの説明図である。
【図５】補正用パターンの読み取り範囲の説明図である。
【図６】罫線検出処理を示すフローチャートである。
【図７】罫線検出処理に使用する画素の列を説明する図である。
【図８】平均濃度の算出と、この平均濃度を利用した罫線検出の説明図である。
【図９】罫線幅の閾値による罫線判定の説明図である。
【図１０】トリミングの際の読取画像の説明図である。
【図１１】解像度変換の説明図である。
【図１２】左罫線の検出の際の読取画像の説明図である。
【図１３】罫線検出処理の変形例を説明する図である。
【符号の説明】
【００７１】
１０…コンピュータ、１０ａ…補正値設定プログラム、１０ｂ…アプリケーション、１０ｃ…プリンタドライバ、１０ｃ１…ハーフトーン（Ｈ／Ｔ）モジュール、１０ｃ２…インタレースモジュール、１０ｃ３…補正モジュール、１３…メモリ、２０…プリンタ、２１…制御部、２３…メモリ、２４…ユニット制御回路、２５…印刷ヘッドユニット、２５ａ…印刷ヘッド、２６…キャリッジユニット、２７…紙送りユニット、２９…Ｉ／Ｆ、３０…スキャナ
【図２】
2008257394.tif 000006
【図３】
2008257394.tif 000007
【図６】
2008257394.tif 000008
【図８】
2008257394.tif 000009
【図９】
2008257394.tif 000010
【図１】
2008257394.tif 000011
【図４】
2008257394.tif 000012
【図５】
2008257394.tif 000013
【図７】
2008257394.tif 000014
【図１０】
2008257394.tif 000015
【図１１】
2008257394.tif 000016
【図１２】
2008257394.tif 000017
【図１３】
2008257394.tif 000018