(57)【要約】【課題】  不定形の線状要素を多数配置してなる画像について、線状要素の密度分布を全体的に違和感が生じないように修正する。【解決手段】  線状要素Ｌ１〜Ｌ５を構成する黒画素と、背景部分を構成する白画素とを有する原画像について、Ｌ５の左方に存在する隙間領域に、既存の線状要素Ｌ１の一部をコピーし、新たに線状要素Ｌ１ｂを追加することにより、密度分布の均一化を図る。そのために、まず、原画像の個々の白画素について、それぞれ最近接黒画素に対する距離を求め、各距離値を画素値としてもつ距離画像を生成しておく。そして、原画像全体を下方向に所定ピッチだけシフトさせたシフト画像を生成し、シフト画像上の黒画素のうち、対応する距離画像上の画素値が所定値を超える画素をコピー対象画素と定め、当該コピー対象画素からなる線状要素Ｌ１ｂを原画像上にコピーすることにより密度分布の修正を行う。【選択図】図６
2008015952.tif 000002
【特許請求の範囲】
【請求項１】
線状要素を多数配置してなる画像について、線状要素の密度分布を修正する装置であって、
線状要素部分を構成する黒画素と背景部分を構成する白画素との集合体からなる二値画像として、修正対象となる原画像を入力する原画像入力部と、
入力した前記原画像を初期画像として格納する修正作業用画像格納部と、
入力した前記原画像を初期画像として格納するシフト画像格納部と、
前記修正作業用画像格納部内の画像について、個々の画素についての最近接黒画素に対する距離を求める距離演算部と、
前記距離演算部で演算された距離を示す値を画素値としてもつ距離画像を格納する距離画像格納部と、
所定のシフト量Δおよび空隙幅Ｗをパラメータとして設定するパラメータ設定部と、
前記シフト画像格納部内の画像を所定方向に前記シフト量Δだけシフトして更新するシフト処理部と、
前記シフト画像格納部内の画像の黒画素のうち、前記距離画像格納部内の画像の対応位置にある画素の画素値が前記空隙幅Ｗを超えている黒画素を、前記修正作業用画像格納部内の画像の対応位置にコピーするコピー処理部と、
を備えることを特徴とする線状要素を有する画像の修正装置。
【請求項２】
請求項１に記載の修正装置において、
コピー処理部が、シフト画像格納部内の画像の個々の黒画素について、距離画像格納部内の画像の対応位置にある画素の画素値をそれぞれの参照画素値として求める処理を行い、この参照画素値が空隙幅Ｗを超えている黒画素が発見されたら、当該黒画素に対応する位置にある修正作業用画像格納部内の画像の白画素を黒画素に置換する処理を行うことを特徴とする線状要素を有する画像の修正装置。
【請求項３】
請求項１に記載の修正装置において、
コピー処理部が、修正作業用画像格納部内の画像の個々の白画素について、「対応する位置にあるシフト画像格納部内の画像の画素が黒画素」かつ「対応する位置にある距離画像格納部内の画像の画素の画素値が空隙幅Ｗを超えている」という条件を満たすかどうかを判定し、前記条件を満たしていた場合には、当該白画素を黒画素に置換する処理を行うことを特徴とする線状要素を有する画像の修正装置。
【請求項４】
線状要素を多数配置してなる画像について、線状要素の密度分布を修正する装置であって、
線状要素部分を構成する黒画素と背景部分を構成する白画素との集合体からなる二値画像として、修正対象となる原画像を入力する原画像入力部と、
入力した前記原画像を初期画像として格納する修正作業用画像格納部と、
入力した前記原画像を初期画像として格納するシフト画像格納部と、
前記修正作業用画像格納部内の画像について、個々の画素についての最近接黒画素に対する距離を求める距離演算部と、
所定のシフト量Δおよび空隙幅Ｗをパラメータとして設定するパラメータ設定部と、
前記シフト画像格納部内の画像を所定方向に前記シフト量Δだけシフトして更新するシフト処理部と、
前記シフト画像格納部内の画像の黒画素のうち、前記修正作業用画像格納部内の画像の対応位置にある画素についての前記距離演算部によって求められた距離が前記空隙幅Ｗを超えている黒画素を、前記修正作業用画像格納部内の画像の前記対応位置にコピーするコピー処理部と、
を備えることを特徴とする線状要素を有する画像の修正装置。
【請求項５】
請求項１〜４のいずれかに記載の修正装置において、
シフト処理部が、シフト処理を複数回だけ繰り返し実行し、
コピー処理部が、各回のシフト処理が行われるごとにそれぞれコピー処理（実質的なコピーが全く行われない空コピー処理も含む）を実行し、
距離演算部が、原画像に対する距離演算処理およびコピー処理後の画像に対する距離演算処理を実行することを特徴とする線状要素を有する画像の修正装置。
【請求項６】
請求項５に記載の修正装置において、
シフト処理部が、距離演算処理により空隙幅Ｗを超える距離が得られる画素の総数が所定の基準値以下になるまで、シフト処理を繰り返し実行することを特徴とする線状要素を有する画像の修正装置。
【請求項７】
請求項５に記載の修正装置において、
シフト処理部が、空コピー処理が所定回数だけ連続して実行されるまで、シフト処理を繰り返し実行することを特徴とする線状要素を有する画像の修正装置。
【請求項８】
請求項１〜７のいずれかに記載の修正装置において、
距離演算部が、２つの画素の中心点間のユークリッド距離もしくは当該ユークリッド距離を所定有効桁でまるめた値を演算値として求めることを特徴とする線状要素を有する画像の修正装置。
【請求項９】
請求項１〜７のいずれかに記載の修正装置において、
距離演算部が、２つの画素の四近傍距離もしくは八近傍距離を演算値として求めることを特徴とする線状要素を有する画像の修正装置。
【請求項１０】
請求項１〜９のいずれかに記載の修正装置において、
シフト処理部が、シフトにより画像の一方から食み出た画素を、シフトにより画像の他方に生じた空白部分に配置するローテーションシフトを行うことを特徴とする線状要素を有する画像の修正装置。
【請求項１１】
請求項１〜１０のいずれかに記載の修正装置において、
パラメータ設定部が、シフト方向をパラメータとして設定する機能を有し、
シフト処理部が、前記シフト方向にシフト処理を実行することを特徴とする線状要素を有する画像の修正装置。
【請求項１２】
請求項１〜１１のいずれかに記載の修正装置としてコンピュータを機能させるためのプログラム。
【請求項１３】
線状要素を多数配置してなる画像について、線状要素の密度分布を修正する方法であって、
線状要素部分を構成する黒画素と背景部分を構成する白画素との集合体からなる二値画像として、修正対象となる原画像をコンピュータに入力し、入力した原画像を初期状態の修正作業用画像および初期状態のシフト画像として設定する原画像入力段階と、
所定のシフト量Δおよび空隙幅Ｗをパラメータとしてコンピュータに対して設定するパラメータ設定段階と、
コンピュータが、初期状態もしくはその後の状態の修正作業用画像の個々の画素についての最近接黒画素に対する距離を求める距離演算段階と、
コンピュータが、初期状態もしくはその後の状態のシフト画像を所定方向に前記シフト量Δだけシフトして更新する画像シフト段階と、
コンピュータが、前記シフト画像の黒画素のうち、前記修正作業用画像の対応位置にある画素について距離演算段階で求められた距離が前記空隙幅Ｗを超えている黒画素を、前記修正作業用画像の前記対応位置にコピーして更新する画像コピー段階と、
コンピュータが、更新後の前記修正作業用画像を修正済画像として出力する修正済画像出力段階と、
を有することを特徴とする線状要素を有する画像の修正方法。
【請求項１４】
請求項１３に記載の修正方法において、
距離演算段階、画像シフト段階、画像コピー段階（実質的なコピーが全く行われない空コピー段階も含む）を、複数回だけ繰り返し実行した後に、修正済画像出力段階を実行することを特徴とする線状要素を有する画像の修正方法。
【請求項１５】
請求項１４に記載の修正方法において、
距離演算段階で、空隙幅Ｗを超える距離が得られる画素の総数が所定の基準値以下となった時点で、修正済画像出力段階を実行することを特徴とする線状要素を有する画像の修正方法。
【請求項１６】
請求項１４に記載の修正方法において、
空コピー段階が所定回数だけ連続して実行された時点で、修正済画像出力段階を実行することを特徴とする線状要素を有する画像の修正方法。
【請求項１７】
請求項１３〜１６のいずれかに記載の修正方法において、
距離演算段階で、２つの画素の中心点間のユークリッド距離もしくは当該ユークリッド距離を所定有効桁でまるめた値を演算値として求めることを特徴とする線状要素を有する画像の修正方法。
【請求項１８】
請求項１３〜１６のいずれかに記載の修正方法において、
距離演算段階で、２つの画素の四近傍距離もしくは八近傍距離を演算値として求めることを特徴とする線状要素を有する画像の修正方法。
【請求項１９】
請求項１３〜１８のいずれかに記載の修正方法において、
画像シフト段階で、シフトにより画像の一方から食み出た画素を、シフトにより画像の他方に生じた空白部分に配置するローテーションシフトを行うことを特徴とする線状要素を有する画像の修正方法。
【請求項２０】
請求項１３〜１９のいずれかに記載の修正方法において、
パラメータ設定段階で、空隙幅Ｗとして、各線状要素の平均的な幅値にほぼ等しい値を設定することを特徴とする線状要素を有する画像の修正方法。
【請求項２１】
請求項１３〜２０のいずれかに記載の修正方法において、
パラメータ設定段階で、シフト量Δとして、空隙幅Ｗの２倍の値を設定することを特徴とする線状要素を有する画像の修正方法。
【請求項２２】
請求項１３〜２１のいずれかに記載の修正方法において、
画像シフト段階で、全線状要素に共通する大まかな長手方向をコンピュータに対して指示し、コンピュータが、前記長手方向に対して直交する方向をシフト方向とするシフト処理を実行することを特徴とする線状要素を有する画像の修正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、線状要素を有する画像の修正装置および修正方法に関し、特に、万線やヘアラインと呼ばれる不定形の線状要素を多数配置してなる画像について、線状要素の密度分布を修正する技術に関する。
【背景技術】
【０００２】
細長い線状要素を多数配置してなる画像は、様々な分野で利用されている。たとえば、
壁紙や床材をはじめとする建材の表面装飾や、家具の表面装飾には、万線やヘアラインと呼ばれる線状要素を多数配置してなる模様が施されることが少なくない。これらの模様は、通常の印刷によってインキ層として表面に形成される場合もあるし、箔押しの方法によって金属光沢をもった層として形成される場合もあるし、エンボス加工により表面の凹凸構造として形成される場合もある。特に、エンボス加工により形成された多数の線状要素からなる模様は、光の反射に方向性をもたせる機能を果たすことができるため、いわゆる「照り」の表現を行う上で有用である。
【０００３】
たとえば、下記の特許文献１には、木材表面の照りの移動を表現するために、木目模様をもった建材表面に万線からなる多数の溝をエンボス加工によって形成する技術が開示されており、特許文献２には、コンピュータを利用して人工的に木目の導管断面パターンを生成する技術が開示されている。また、特許文献３には、天然木材の繊維質の配向性を表現するために、コンピュータを利用して、繊維潜り角の二次元スカラー場を定義し、この二次元スカラー場に基づいて万線パターンからなる画像を生成する方法が開示されている。更に、特許文献４には、任意の立体模様を多数のヘアライン状の溝からなるパターンによって表現する方法が開示されている。
【特許文献１】特開平５−２８９３０２号公報
【特許文献２】特開平９−３２７９６９号公報
【特許文献３】特開２０００−３５１２６３号公報
【特許文献４】特開２００１−１３８７００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
万線やヘアラインと呼ばれる線状要素を多数配置してなる模様としては、同一の幅や長さを有する規格化された線状要素を規則的に配置したものも利用されているが、逆に、それぞれが不規則な不定形形状を有する多数の線状要素を、不規則に配置したものが利用される場合も少なくない。特に、木材や石材などの天然素材の自然な風合いを表現する上では、多数の不定形の線状要素を多数配置してなる模様が好んで用いられる。このような模様をコンピュータで人工的に発生させるための手法として、乱数を用いて個々の線状要素の形状や位置を決定する手法や、フラクタル場を利用して線状要素の形状や位置に自然の揺らぎを加える手法が知られている。
【０００５】
しかしながら、このようにコンピュータを利用した手法で、不定形の線状要素を不規則に配置した画像を作成すると、線状要素の密度分布が一様にならない、という問題が生じる。もちろん、天然木板に現れる木目導管断面パターンなどでも、個々の導管断面（線状要素）の密度分布は一様ではないが、コンピュータを利用した手法で作成した画像の場合、人為的に発生させたパターンであるため、どうしても密度分布に不自然さが残ってしまう。
【０００６】
このような線状要素を有する画像における密度分布の不自然な不均一性は、意匠上の問題にとどまらず、当該画像を建材や包装材の表面装飾に利用するにあたって、製造プロセス上の問題をも生じさせる。たとえば、画像の部分ごとに極端に密度の粗密があると、印刷を行う際のインキ量が部分ごとに異なってくるため、印刷不良が生じやすくなる。また、箔押しの方法によって画像の転写を行う場合であれば、箔層が部分的にはげ落ちてしまうような事態も生じやすくなり、エンボス加工により凹凸を形成する場合であれば、エンボス圧が部分ごとに相違し、正しいエンボス加工ができない事態も生じやすくなる。
【０００７】
そこで本発明は、不定形の線状要素を多数配置してなる画像について、線状要素の密度分布を全体的に違和感が生じないように修正する技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
(1)   本発明の第１の態様は、線状要素を多数配置してなる画像について、線状要素の密度分布を修正する画像の修正装置において、
線状要素部分を構成する黒画素と背景部分を構成する白画素との集合体からなる二値画像として、修正対象となる原画像を入力する原画像入力部と、
入力した原画像を初期画像として格納する修正作業用画像格納部と、
入力した原画像を初期画像として格納するシフト画像格納部と、
修正作業用画像格納部内の画像について、個々の画素についての最近接黒画素に対する距離を求める距離演算部と、
距離演算部で演算された距離を示す値を画素値としてもつ距離画像を格納する距離画像格納部と、
所定のシフト量Δおよび空隙幅Ｗをパラメータとして設定するパラメータ設定部と、
シフト画像格納部内の画像を所定方向にシフト量Δだけシフトして更新するシフト処理部と、
シフト画像格納部内の画像の黒画素のうち、距離画像格納部内の画像の対応位置にある画素の画素値が空隙幅Ｗを超えている黒画素を、修正作業用画像格納部内の画像の対応位置にコピーするコピー処理部と、
を設けるようにしたものである。
【０００９】
(2)   本発明の第２の態様は、上述の第１の態様に係る線状要素を有する画像の修正装置において、
コピー処理部が、シフト画像格納部内の画像の個々の黒画素について、距離画像格納部内の画像の対応位置にある画素の画素値をそれぞれの参照画素値として求める処理を行い、この参照画素値が空隙幅Ｗを超えている黒画素が発見されたら、当該黒画素に対応する位置にある修正作業用画像格納部内の画像の白画素を黒画素に置換する処理を行うようにしたものである。
【００１０】
(3)   本発明の第３の態様は、上述の第１の態様に係る線状要素を有する画像の修正装置において、
コピー処理部が、修正作業用画像格納部内の画像の個々の白画素について、「対応する位置にあるシフト画像格納部内の画像の画素が黒画素」かつ「対応する位置にある距離画像格納部内の画像の画素の画素値が空隙幅Ｗを超えている」という条件を満たすかどうかを判定し、当該条件を満たしていた場合には、当該白画素を黒画素に置換する処理を行うようにしたものである。
【００１１】
(4)   本発明の第４の態様は、線状要素を多数配置してなる画像について、線状要素の密度分布を修正する画像の修正装置において、
線状要素部分を構成する黒画素と背景部分を構成する白画素との集合体からなる二値画像として、修正対象となる原画像を入力する原画像入力部と、
入力した原画像を初期画像として格納する修正作業用画像格納部と、
入力した原画像を初期画像として格納するシフト画像格納部と、
修正作業用画像格納部内の画像について、個々の画素についての最近接黒画素に対する距離を求める距離演算部と、
所定のシフト量Δおよび空隙幅Ｗをパラメータとして設定するパラメータ設定部と、
シフト画像格納部内の画像を所定方向にシフト量Δだけシフトして更新するシフト処理部と、
シフト画像格納部内の画像の黒画素のうち、修正作業用画像格納部内の画像の対応位置にある画素についての距離演算部によって求められた距離が空隙幅Ｗを超えている黒画素を、修正作業用画像格納部内の画像の対応位置にコピーするコピー処理部と、
を設けるようにしたものである。
【００１２】
(5)   本発明の第５の態様は、上述の第１〜第４の態様に係る線状要素を有する画像の修正装置において、
シフト処理部が、シフト処理を複数回だけ繰り返し実行し、
コピー処理部が、各回のシフト処理が行われるごとにそれぞれコピー処理（実質的なコピーが全く行われない空コピー処理も含む）を実行し、
距離演算部が、原画像に対する距離演算処理およびコピー処理後の画像に対する距離演算処理を実行するようにしたものである。
【００１３】
(6)   本発明の第６の態様は、上述の第５の態様に係る線状要素を有する画像の修正装置において、
シフト処理部が、距離演算処理により空隙幅Ｗを超える距離が得られる画素の総数が所定の基準値以下になるまで、シフト処理を繰り返し実行するようにしたものである。
【００１４】
(7)   本発明の第７の態様は、上述の第５の態様に係る線状要素を有する画像の修正装置において、
シフト処理部が、空コピー処理が所定回数だけ連続して実行されるまで、シフト処理を繰り返し実行するようにしたものである。
【００１５】
(8)   本発明の第８の態様は、上述の第１〜第７の態様に係る線状要素を有する画像の修正装置において、
距離演算部が、２つの画素の中心点間のユークリッド距離もしくは当該ユークリッド距離を所定有効桁でまるめた値を演算値として求めるようにしたものである。
【００１６】
(9)   本発明の第９の態様は、上述の第１〜第７の態様に係る線状要素を有する画像の修正装置において、
距離演算部が、２つの画素の四近傍距離もしくは八近傍距離を演算値として求めるようにしたものである。
【００１７】
(10)  本発明の第１０の態様は、上述の第１〜第９の態様に係る線状要素を有する画像の修正装置において、
シフト処理部が、シフトにより画像の一方から食み出た画素を、シフトにより画像の他方に生じた空白部分に配置するローテーションシフトを行うようにしたものである。
【００１８】
(11)  本発明の第１１の態様は、上述の第１〜第１０の態様に係る線状要素を有する画像の修正装置において、
パラメータ設定部が、シフト方向をパラメータとして設定する機能を有し、
シフト処理部が、設定したシフト方向にシフト処理を実行するようにしたものである。
【００１９】
(12)  本発明の第１２の態様は、上述の第１〜第１１の態様に係る線状要素を有する画像の修正装置を、コンピュータに専用のプログラムを組み込むことにより実現したものである。
【００２０】
(13)  本発明の第１３の態様は、線状要素を多数配置してなる画像について、線状要素の密度分布を修正する画像の修正方法において、
線状要素部分を構成する黒画素と背景部分を構成する白画素との集合体からなる二値画像として、修正対象となる原画像をコンピュータに入力し、入力した原画像を初期状態の修正作業用画像および初期状態のシフト画像として設定する原画像入力段階と、
所定のシフト量Δおよび空隙幅Ｗをパラメータとしてコンピュータに対して設定するパラメータ設定段階と、
コンピュータが、初期状態もしくはその後の状態の修正作業用画像の個々の画素についての最近接黒画素に対する距離を求める距離演算段階と、
コンピュータが、初期状態もしくはその後の状態のシフト画像を所定方向にシフト量Δだけシフトして更新する画像シフト段階と、
コンピュータが、シフト画像の黒画素のうち、修正作業用画像の対応位置にある画素について距離演算段階で求められた距離が空隙幅Ｗを超えている黒画素を、修正作業用画像の対応位置にコピーして更新する画像コピー段階と、
コンピュータが、更新後の修正作業用画像を修正済画像として出力する修正済画像出力段階と、
を実行するようにしたものである。
【００２１】
(14)  本発明の第１４の態様は、上述の第１３の態様に係る線状要素を有する画像の修正方法において、
距離演算段階、画像シフト段階、画像コピー段階（実質的なコピーが全く行われない空コピー段階も含む）を、複数回だけ繰り返し実行した後に、修正済画像出力段階を実行するようにしたものである。
【００２２】
(15)  本発明の第１５の態様は、上述の第１４の態様に係る線状要素を有する画像の修正方法において、
距離演算段階で、空隙幅Ｗを超える距離が得られる画素の総数が所定の基準値以下となった時点で、修正済画像出力段階を実行するようにしたものである。
【００２３】
(16)  本発明の第１６の態様は、上述の第１４の態様に係る線状要素を有する画像の修正方法において、
空コピー段階が所定回数だけ連続して実行された時点で、修正済画像出力段階を実行するようにしたものである。
【００２４】
(17)  本発明の第１７の態様は、上述の第１３〜第１６の態様に係る線状要素を有する画像の修正方法において、
距離演算段階で、２つの画素の中心点間のユークリッド距離もしくは当該ユークリッド距離を所定有効桁でまるめた値を演算値として求めるようにしたものである。
【００２５】
(18)  本発明の第１８の態様は、上述の第１３〜第１６の態様に係る線状要素を有する画像の修正方法において、
距離演算段階で、２つの画素の四近傍距離もしくは八近傍距離を演算値として求めるようにしたものである。
【００２６】
(19)  本発明の第１７の態様は、上述の第１３〜第１８の態様に係る線状要素を有する画像の修正方法において、
画像シフト段階で、シフトにより画像の一方から食み出た画素を、シフトにより画像の他方に生じた空白部分に配置するローテーションシフトを行うようにしたものである。
【００２７】
(20)  本発明の第２０の態様は、上述の第１３〜第１９の態様に係る線状要素を有する画像の修正方法において、
パラメータ設定段階で、空隙幅Ｗとして、各線状要素の平均的な幅値にほぼ等しい値を設定するようにしたものである。
【００２８】
(21)  本発明の第２１の態様は、上述の第１３〜第２０の態様に係る線状要素を有する画像の修正方法において、
パラメータ設定段階で、シフト量Δとして、空隙幅Ｗの２倍の値を設定するようにしたものである。
【００２９】
(22)  本発明の第２２の態様は、上述の第１３〜第２１の態様に係る線状要素を有する画像の修正方法において、
画像シフト段階で、全線状要素に共通する大まかな長手方向をコンピュータに対して指示し、コンピュータが、長手方向に対して直交する方向をシフト方向とするシフト処理を実行するようにしたものである。
【発明の効果】
【００３０】
本発明によれば、不定形の線状要素を多数配置してなる画像について、線状要素の分布が粗となる領域に、既存の線状要素の全部もしくは一部をコピーするようにしたため、全体的に違和感のない密度分布の修正が可能になる。
【発明を実施するための最良の形態】
【００３１】
以下、本発明を図示する実施形態に基づいて説明する。
【００３２】
＜＜＜  §１．本発明の基本概念  ＞＞＞
図１は、本発明に係る修正方法による修正前の画像の一例を示す平面図であり、図２は、この図１に示す画像に対して、本発明に係る修正方法を適用することによって得られた修正後の画像の一例を示す平面図である。図１に示す修正前画像は、乱数を用いたアルゴリズムに基づき、コンピュータで人為的に発生させた画像であり、多数の不定形線状要素から構成されている。この修正前画像上の模様は、全体的には、葉脈のようなモチーフとなっており、自然の流れを表現するために、その発生過程において乱数を用いたアルゴリズムが利用されている。
【００３３】
このように、不定形の線状要素を不規則に配置した画像をコンピュータを利用して作成すると、線状要素の密度分布が一様にならないという問題が生じる。たとえば、図１に示す例では、ところどころに空隙領域（白地の背景部分）が目立っており、線状要素の密度分布が不均一となっている。このような線状要素の密度分布の不均一性は、意匠上好ましくなく、また、印刷、箔押し、エンボス加工などの方法で建材や包装材の表面模様として利用した場合にも、製造プロセス上の様々な問題が生じることは、既に述べたとおりである。
【００３４】
この図１に示す修正前画像に対して、本発明に係る修正装置および修正方法を適用して得られた画像が、図２に示す修正後画像である。図１の画像において目立っていた白地の空隙領域が、図２の画像では解消しており、線状要素の密度分布が、より均一化されていることがわかる。しかも、図２に示す結果を見ると、修正を加えた部分が特段不自然に見えるようなこともない。実際、図２の画像を見る限り、どの部分が修正個所であるかを認識することはできず、修正を施すことにより、全体的に違和感は生じていない。
【００３５】
本発明の特徴は、このように、不定形の線状要素を多数配置してなる画像について、線状要素の密度分布を全体的に違和感が生じないように修正することができる点にある。その基本原理は、修正対象となる原画像上の線状要素もしくはその一部分を、空隙部分に平行移動してコピーする、というものである。この基本原理によると、原画像において線状要素が「密」に配置されていた部分に対する修正はできないが、線状要素が「粗」に配置されていた部分には、新たな線状要素が配置されることになり、密度を向上させることができる。
【００３６】
続いて、この基本原理を、図３〜図６の平面図を参照しながら、もう少し詳しく説明しよう。いま、図３に示すような原画像が修正対象として与えられたものとしよう。この原画像は、４本の線状要素Ｌ１〜Ｌ４からなる単純な画像であるが、実際には、多数の画素の集合から構成されている。ここでは、各線状要素Ｌ１〜Ｌ４の部分（ハッチングを施した部分）を構成する画素を「黒画素」と呼び、背景部分（図の白い部分）を構成する画素を「白画素」と呼ぶことにする。「黒画素」と「白画素」とは、画素値によって区別される。たとえば、「黒画素」を画素値「１」、「白画素」を画素値「０」で表わすことにすれば、この原画像は、１ビットの画素値をもつ多数の画素の集合体として表現される。
【００３７】
図３に示す原画像の線状要素Ｌ１とＬ２との間には、空隙領域ＳＰが存在するため、全体的に、線状要素の分布密度にムラが生じている。そこで、この空隙領域ＳＰに、たとえば、図４に示すように既存の線状要素Ｌ１をコピーし、新たな線状要素Ｌ１ａとして追加すれば、空隙領域ＳＰは解消し、線状要素の分布密度はより均一化されることになる。この例の場合、線状要素Ｌ１ａは、元の線状要素Ｌ１と全く同じ形状をした要素であり、元の線状要素Ｌ１を、図に白矢印で示す方向に平行移動してコピーしたものになる。
【００３８】
ただ、実際には、元の線状要素Ｌ１をそっくりコピーするのが好ましくない場合もある。たとえば、図５に示すような原画像に対して修正を行うことを考えてみる。この図５に示す原画像は、図３に示す原画像に線状要素Ｌ５を付加したものであるが、やはり線状要素Ｌ５の左側部分に空隙領域ＳＰが生じてしまっている。ただ、この空隙領域ＳＰを埋めるために、既存の線状要素Ｌ１をそっくりそのままコピーすると、線状要素Ｌ５と干渉してしまうため好ましくない。
【００３９】
このような場合には、図６に示すように、既存の線状要素Ｌ１の一部分のみをコピーし、新たな線状要素Ｌ１ｂとして追加すればよい。すなわち、元の線状要素Ｌ１の左から２／３程の部分のみを、図に白矢印で示す方向に平行移動してコピーし、右から１／３程の部分はコピーしないようにすればよい。
【００４０】
このように、修正対象となる原画像上に既存の線状要素もしくはその一部分を、空隙領域にコピーする、という手法を採れば、コピーされた線状要素の形状は、既存の線状要素の形状に準じたものになるため、全体的に違和感が生じない修正が可能になる。また、コピーする際に、元の線状要素を平行移動する、という手法を採ることにより、コピーされた線状要素の向きも、既存の線状要素の向きに準じたものになるため、やはり全体的に違和感が生じない修正が可能になる。このように、新たに追加する線状要素の向きを、既存の線状要素の向きに合わせる、という手法は、特に、木材の「照り」を表現するための万線など、配向性が重要な機能を果たす線状模様の場合には有効である。
【００４１】
さて、上述したように、修正対象となる原画像上の線状要素もしくはその一部分を、空隙領域に平行移動してコピーする、という基本原理に従った修正を、コンピュータ上で行うためには、何らかのアルゴリズムが必要になる。すなわち、特定の線状要素の特定部分を、空隙領域の特定部分へコピーする、という処理をコンピュータに実行させるためには、具体的なアルゴリズムに基づいてプログラムを作成する必要がある。
【００４２】
そこで、本発明では、次のようなアルゴリズムにより、この修正処理を実行させるようにした。まず、原画像の個々の白画素について、それぞれ空間的に最も近い位置に存在する黒画素（最近接黒画素）に対する距離値を求める。その結果、既存の線状要素から遠い白画素ほど、大きな距離値が与えられることになる。そして、各距離値を画素値としてもつ距離画像を生成する。次に、原画像全体を所定方向に所定ピッチだけシフトさせたシフト画像を生成し、このシフト画像上の黒画素のうち、対応する距離画像上の画素値が所定値を超える画素をコピー対象画素と定め、当該コピー対象画素からなる線状要素を原画像上にコピーすることにより密度分布の修正を行うようにする。以下、このアルゴリズムについて、より具体的な説明を行う。
【００４３】
＜＜＜  §２．本発明に係る修正装置の構成  ＞＞＞
ここでは、上述したアルゴリズムに基づく修正処理を実行することが可能な修正装置の基本構成を図７のブロック図を参照しながら説明する。この修正装置は、図示のとおり、原画像入力部１０、シフト画像格納部２０、修正作業用画像格納部３０、コピー処理部４０、シフト処理部５０、パラメータ設定部６０、距離演算部７０、距離画像格納部８０によって構成されており、線状要素を多数配置してなる原画像Ｐ０について、線状要素の密度分布を修正する処理を行う機能を有している。
【００４４】
もっとも、実際には、この修正装置は、コンピュータに専用のプログラムを組み込むことにより実現されるものであり、上述した各構成要素は、いずれもコンピュータのハードウエアおよびソフトウエアの組合わせによって具現化されることになる。たとえば、シフト画像格納部２０、修正作業用画像格納部３０、距離画像格納部８０は、いずれも画像データを格納する機能をもった構成要素であるが、実際には、コンピュータメモリなどの記憶装置によって構成されることになる。また、原画像入力部１０やパラメータ設定部６０は、外部からのデータや指示を入力するためのコンピュータ用入力機器を利用して構成され、コピー処理部４０、シフト処理部５０、距離演算部７０は、所定の演算処理用プログラムと演算処理装置との組合わせによって実現されることになる。
【００４５】
原画像入力部１０は、修正対象となる原画像Ｐ０を二値画像として入力する構成要素である。前述したように、ここでは、線状要素を含む画像において、線状要素部分を構成する画素を「黒画素」と呼び、背景部分を構成する画素を「白画素」と呼ぶことにする。したがって、原画像入力部１０は、黒画素と白画素との集合体からなる二値画像として、修正対象となる原画像Ｐ０を入力する構成要素ということになる。
【００４６】
なお、本願における「黒画素」，「白画素」という用語は、単に、「線状要素部分を構成する画素」，「背景部分を構成する画素」を意味する用語として用いるものであり、「第１属性の画素」，「第２属性の画素」と同義である。ここで「第１属性の画素」，「第２属性の画素」という語句の代わりに、「黒」や「白」という色を示す語句を敢えて用いているのは、図面を参照しながら実施例の説明を行う上での便宜を図るため（視覚的把握を容易にするため）のものであり、「黒画素」，「白画素」は、画像上の実際の色を示すものではない。
【００４７】
原画像入力部１０によって入力された原画像Ｐ０は、シフト画像格納部２０および修正作業用画像格納部３０にそれぞれ格納される。ここに示す実施形態では、原画像Ｐ０は、Ｉ行Ｊ列の二次元画素配列からなるデータであり、第ｉ行第ｊ列目の位置にある画素をＰ０（ｉ，ｊ）で表わすことにする。上述したとおり、この原画像Ｐ０を構成する画素は、黒画素か白画素かのいずれか一方である。すなわち、原画像Ｐ０は二値画像であり、任意の画素Ｐ０（ｉ，ｊ）は、画素値「１」（黒画素の場合）もしくは画素値「０」（白画素の場合）のいずれか一方の画素値を有している。
【００４８】
シフト画像格納部２０は、Ｉ行Ｊ列の二次元画素配列からなる画像データを格納する機能をもった記憶領域である。ここでは、このシフト画像格納部２０に格納されることになる画像を「シフト画像Ｓｋ」と呼ぶことにし、このシフト画像Ｓｋの第ｉ行第ｊ列目の位置にある画素をＳｋ（ｉ，ｊ）で表わすことにする。ここで、「シフト画像Ｓｋ」や「画素Ｓｋ（ｉ，ｊ）」における添字の「ｋ」は、１，２，３，…という整数である。シフト画像Ｓｋは、元になる原画像Ｐ０を、所定方向に、所定のシフト量だけ、ｋ回だけシフトさせることにより得られる画像である。元になる原画像Ｐ０自身を、シフト画像と呼ばないことにすれば、上述のようにシフト画像Ｓｋの添字の「ｋ」は１から始まることになるが、原画像Ｐ０自身を初期状態のシフト画像（原画像を０回だけシフトさせることにより得られる画像）として把握すれば、添字の「ｋ」は、０から始まることになる。
【００４９】
同様に、修正作業用画像格納部３０も、Ｉ行Ｊ列の二次元画素配列からなる画像データを格納する機能をもった記憶領域である。ここでは、この修正作業用画像格納部３０に格納されることになる画像を「修正作業用画像Ｐｋ」と呼ぶことにし、この修正作業用画像Ｐｋの第ｉ行第ｊ列目の位置にある画素をＰｋ（ｉ，ｊ）で表わすことにする。ここでの添字の「ｋ」は、０，１，２，…という整数である。なお、ここでは、便宜上、元になる原画像Ｐ０自身も、修正作業用画像Ｐｋと呼ぶことにし、修正作業用画像Ｐｋの添字の「ｋ」は０から始まることにする。
【００５０】
結局、原画像入力部１０から入力された原画像Ｐ０は、シフト画像格納部２０内に、シフト画像を生成するための元になる初期画像として格納されるとともに、修正作業用画像格納部３０内に、最初の修正作業用画像として格納されることになる。別言すれば、シフト画像格納部２０内に格納される初期画像と、修正作業用画像格納部３０内に格納される初期画像とは、いずれも原画像Ｐ０に一致する。
【００５１】
パラメータ設定部６０は、所定のシフト量Δおよび空隙幅Ｗをパラメータとして設定する機能を有する。これらのパラメータの値として、常に固定値を用いるのであれば、当該固定値をパラメータ設定部６０に記憶させておけばよい。ただ、後述するように、このパラメータは、修正処理の内容に影響を与えることになるので、実用上は、オペレータが任意の値をパラメータとして自由に設定できるようにしておくのが好ましい。具体的には、キーボードなどから、ΔおよびＷの値をオペレータが直接入力できるようにしておいてもよいし、ディスプレイ画面上に表示されたツマミなどをマウスでドラッグすることにより、数値を増減できるインターフェイスを用意しておき、オペレータがツマミなどを所望の位置に移動させることにより、所望の数値をパラメータとして設定できるようにしておいてもよい。
【００５２】
シフト処理部５０は、シフト画像格納部２０内に格納されている画像を所定方向に、シフト量Δ（パラメータ設定部６０に設定した値）だけシフトして更新する処理を実行する。ここに示す実施形態の場合、シフト画像格納部２０内には、Ｉ行Ｊ列の二次元画素配列からなる画像が格納されているので、この画像を下方向にシフト量Δだけローテーションシフトする処理が行われる。たとえば、シフト量Δ＝１画素に設定した場合、第１行目の画素は第２行目へ移動し、第２行目の画素は第３行目へ移動し、第３行目の画素は第４行目へ移動し、……、第Ｉ行目（最下行）の画素は第１行目（最上行）へ移動することになる。もちろん、「画像をシフトする」と言っても、実際には、個々の配列要素に格納されている画素値を移動させる演算が行われることになる。
【００５３】
距離演算部７０は、修正作業用画像格納部３０内の画像について、個々の画素についての最近接黒画素に対する距離を求める演算を行い、この距離演算部７０で演算された距離を示す値を画素値としてもつ距離画像Ｄｋが、距離画像格納部８０に格納される。この距離画像Ｄｋも、Ｉ行Ｊ列の二次元画素配列からなる画像データであり、この距離画像Ｄｋの第ｉ行第ｊ列目の位置にある画素をＤｋ（ｉ，ｊ）で表わすことにする。したがって、距離画像Ｄｋを格納する機能をもった距離画像格納部８０も、Ｉ行Ｊ列の二次元画素配列からなる画像データを格納する機能をもった記憶領域ということになる。
【００５４】
ここでの添字の「ｋ」は、修正作業用画像Ｐｋの添字「ｋ」に対応するものであり、やはり０，１，２，…という整数になる。たとえば、修正作業用画像格納部３０内には、初期画像として、修正作業用画像Ｐ０（原画像と同一）が格納されているが、この修正作業用画像Ｐ０について距離演算部７０が行った演算により得られた画像は、最初の距離画像Ｄ０として、距離画像格納部８０に格納されることになる。同様に、第ｋ番目の修正作業用画像Ｐｋについて距離演算部７０が行った演算により得られた画像は、第ｋ番目の距離画像Ｄｋとして、距離画像格納部８０に格納されることになる。このように、距離画像格納部８０内の距離画像は、修正作業用画像格納部３０内の画像が更新されるたびに、新たな画像に更新されることになる。
【００５５】
コピー処理部４０は、シフト画像格納部２０内に格納されているシフト画像Ｓｋ内の線状要素もしくはその一部を、修正作業用画像格納部３０に格納されている修正作業用画像Ｐｋの上にコピーする処理を実行する。具体的には、シフト画像格納部２０内の画像の黒画素のうち、距離画像格納部８０内の画像の対応位置にある画素の画素値が空隙幅Ｗ（パラメータ設定部６０に設定した値）を超えている黒画素を、コピー対象画素として決定し、修正作業用画像格納部３０内の画像の対応位置にコピーする処理を実行する。いわば、図４に示す線状要素Ｌ１ａや図６に示す線状要素Ｌ１ｂを新たな線状要素として追加する処理を実行する機能を有している。
【００５６】
＜＜＜  §３．本発明に係る修正方法の手順  ＞＞＞
続いて、図８の流れ図を参照しながら、本発明に係る修正方法の手順を説明する。まず、ステップＳ１において、原画像入力段階が行われる。この段階は、線状要素部分を構成する黒画素と背景部分を構成する白画素との集合体からなる二値画像として、修正対象となる原画像をコンピュータに入力し、入力した原画像を初期状態の修正作業用画像および初期状態のシフト画像として設定する段階である。たとえば、図７に示す例の場合、原画像Ｐ０が、初期状態のシフト画像Ｓ０としてシフト画像格納部２０へ格納されるとともに、初期状態の修正作業用画像Ｐ０として修正作業用画像格納部３０へ格納される。
【００５７】
続くステップＳ２では、所定のシフト量Δおよび空隙幅Ｗをパラメータとしてコンピュータに対して設定する段階が行われる。ここに示す実施形態の場合、シフト量Δ，空隙幅Ｗともに「画素」を単位とする整数値として設定される。以上、ステップＳ１，Ｓ２は、コンピュータに修正処理を実行させるための準備段階というべき処理である。実質的な修正処理の手順は、続くステップＳ３〜Ｓ５によって行われる。
【００５８】
まず、ステップＳ３の距離演算段階では、コンピュータ（距離演算部７０）が、初期状態もしくはその後の状態の修正作業用画像Ｐｋ（修正作業用画像格納部３０に格納されている画像）の個々の画素についての最近接黒画素に対する距離を求める処理が行われ、その結果として得られる距離画像Ｄｋが、距離画像格納部８０に格納される。ステップＳ２に続いて、最初にステップＳ３が実行された場合、修正作業用画像格納部３０内には、原画像Ｐ０が初期状態の修正作業用画像Ｐ０として格納されているので、この原画像Ｐ０についての距離画像Ｄ０が演算によって求められ、距離画像格納部８０内に格納されることになる。
【００５９】
ステップＳ４の画像シフト段階では、コンピュータ（シフト処理部５０）が、初期状態もしくはその後の状態のシフト画像（シフト画像格納部２０に格納されている画像）を所定方向にシフト量Δ（ステップＳ２で設定したパラメータ）だけシフトして更新する処理が行われる。初期状態では、シフト画像格納部２０内には、原画像Ｐ０が格納されているので、この原画像Ｐ０に対してシフト量Δだけローテーションシフトして得られるシフト画像によって、シフト画像格納部２０内の画像が書き換えられることになる。
【００６０】
続くステップＳ５の画像コピー段階では、コンピュータ（コピー処理部４０）が、シフト画像Ｓｋ（シフト画像格納部２０に格納されている画像）の黒画素について、修正作業用画像Ｐｋ（修正作業用画像格納部３０に格納されている画像）の対応位置にある画素について距離演算段階で求められた距離（すなわち、距離画像格納部８０に格納されている距離画像Ｄｋ内の画素値）を調べ、当該距離が空隙幅Ｗ（ステップＳ２で設定したパラメータ）を超えていた場合には、当該黒画素を、修正作業用画像Ｐｋの対応位置にコピーして更新する処理が行われる。
【００６１】
たとえば、シフト画像Ｓｋ内の第ｉ行第ｊ列目の画素Ｓｋ（ｉ，ｊ）が黒画素であったものとしよう。この場合、修正作業用画像Ｐｋの同じ位置の画素Ｐｋ（ｉ，ｊ）についての距離（最近接黒画素に対する距離）は、ステップＳ３の距離演算段階で求められており、距離画像Ｄｋの同じ位置の画素Ｄｋ（ｉ，ｊ）の画素値として記録されている。そこで、この画素Ｄｋ（ｉ，ｊ）の画素値を空隙幅Ｗと比較し、前者が後者を超えていた場合には、黒画素Ｓｋ（ｉ，ｊ）を、修正作業用画像Ｐｋの同じ位置へコピーする処理が行われる。実際には、修正作業用画像Ｐｋの同じ位置の画素Ｐｋ（ｉ，ｊ）の画素値を黒画素を示す画素値「１」に変更する処理が行われることになる。シフト画像Ｓｋ内のすべての黒画素について、同様の処理を行えば、ステップＳ５の画像コピー段階は完了である。
【００６２】
以上のステップＳ３〜Ｓ５の処理段階により、修正作業用画像Ｐｋ内の空隙領域に、シフト画像Ｓｋの適当な箇所から線状要素のコピーが行われることになり、線状要素の密度分布の均一化が進むことになる。ただ、実際には、ステップＳ５において、条件を満たす黒画素（コピー対象となる黒画素）が１つも見つからず、実質的な黒画素のコピーが全く行われないケースもあり得る。この場合、ステップＳ５の画像コピー段階は、単なる「空コピー段階」ということになる。また、ステップＳ５において、実質的なコピーが行われたとしても、それだけでは不十分な場合も少なくない。そこで、実用上は、ステップＳ３の距離演算段階、ステップＳ４の画像シフト段階、ステップＳ５の画像コピー段階（実質的なコピーが全く行われない空コピー段階も含む）を、複数回だけ繰り返し実行するのが好ましい。
【００６３】
そのために、図８の流れ図に示す手順では、ステップＳ６の分岐を経て、再びステップＳ３へと戻るループを形成し、ステップＳ６において「終了」との判断がなされるまで、ステップＳ３〜Ｓ５の処理段階が繰り返し実行されるようにしている。ステップＳ６では、たとえば、繰り返し回数が予め定めた所定の設定値に達したか否か、というような所定の条件（より実用的な条件設定については後述する）を定めておき、ステップＳ３へ戻るか、ステップＳ７へ進むかの判断を行うようにすればよい。
【００６４】
最後のステップＳ７の修正済画像出力段階では、更新後の修正作業用画像Ｐｋ（その時点で、修正作業用画像格納部３０内に格納されている画像）を修正済画像としてコンピュータから出力する処理が行われる。
【００６５】
＜＜＜  §４．具体例に基づく手順説明  ＞＞＞
ここでは、具体的な原画像について、図７に示す修正装置を用いて、図８に示す修正方法の手順を実行した例を詳細に説明する。まず、図８のステップＳ１「原画像入力段階」において、図９に示すような原画像Ｐ０が入力された場合を考えてみる。この図９に示す原画像Ｐ０は、図１に示す実際の原画像に比べるとかなり粗い画像であるが、説明の便宜を考慮して、以下、このような原画像Ｐ０に対する修正処理の手順を述べる。
【００６６】
この原画像Ｐ０は、Ｉ行Ｊ列の二次元画素配列からなる画像であり、図示のとおり、３つの線状要素Ｌ１１，Ｌ１２，Ｌ１３を有している。図にハッチングを施して示す小さな正方形は、個々の黒画素（たとえば、画素値「１」をもつ画素）を示しており、各線状要素Ｌ１１，Ｌ１２，Ｌ１３は、いずれもこの黒画素の集合体によって構成されている。一方、白地の背景として示されている領域は、白画素（たとえば、画素値「０」をもつ画素）の集合体によって構成されている。なお、ここでは、図が繁雑になるのを避けるため、個々の画素の輪郭（小さな正方形の輪郭）は、黒画素についてのみ表示し、白画素の輪郭は図示を省略してある。
【００６７】
図８のステップＳ１「原画像入力段階」では、図７の原画像入力部１０から、図９に示す原画像Ｐ０を入力して、シフト画像格納部２０および修正作業用画像格納部３０内に初期画像として格納する処理が行われる。したがって、この時点では、シフト画像格納部２０に格納されている初期状態のシフト画像Ｓ０と、修正作業用画像格納部３０に格納されている初期状態の修正作業用画像Ｐ０とは、いずれも図９に示す原画像Ｐ０ということになる。
【００６８】
続くステップＳ２「パラメータ設定段階」では、シフト量Δと空隙幅Ｗとが、パラメータとして設定される。ここでは、シフト量Δ＝１画素、空隙幅Ｗ＝２画素、という具体的な数値によってパラメータ設定がなされたものとして、以下の説明を続けることにする。このようなパラメータ設定は、前述したとおり、図７のパラメータ設定部６０に対して行われる。
【００６９】
さて、続いて、ステップＳ３〜Ｓ５の実質的な修正作業に入ることになる。このステップＳ３〜Ｓ５は、前述したとおり、何回か繰り返して実行される手順である。そこで、以下、各繰り返しごとに順を追って説明する。前述したように「ｋ」は、繰り返し回数を示す変数である。
【００７０】
＜第１回目の繰り返し＞
はじめに、ステップＳ３「距離演算段階」が実行される。ここでは、距離演算部７０が、修正作業用画像格納部３０内に格納されている修正作業用画像Ｐｋの各画素について、最近接黒画素に対する距離を求め、求めた距離を示す値を画素値としてもつ距離画像Ｄｋを作成して、距離画像格納部８０に格納する処理が実行される。現時点で修正作業用画像格納部３０内に格納されている画像は、初期段階の修正作業用画像Ｐ０、すなわち、図９に示す原画像Ｐ０である。そこで、この図９に示す原画像Ｐ０について、図１０に示すような距離画像Ｄ０が作成され、距離画像格納部８０に格納されることになる。
【００７１】
図１０に示す距離画像Ｄ０は、やはりＩ行Ｊ列の二次元画素配列からなる画像であり、図９に示す原画像Ｐ０と、全く同一の画素配列を有している。したがって、距離画像Ｄ０内の任意の画素Ｄ０（ｉ，ｊ）は、原画像Ｐ０内の同じ位置にある特定の画素Ｐ０（ｉ，ｊ）に１対１に対応する。そして、距離画像Ｄ０上の画素Ｄ０（ｉ，ｊ）の画素値は、原画像Ｐ０上の対応する画素Ｐ０（ｉ，ｊ）についての「最近接黒画素に対する距離」を示している。なお、図１０に示す距離画像Ｄ０上には、説明の便宜上、図９に示す原画像Ｐ０上の黒画素の輪郭（小さな正方形）を描いてある。これにより、対応する原画像Ｐ０上の黒画素の位置を容易に認識することができる。
【００７２】
図１０において、この小さな正方形の輪郭内に描かれている数値がすべて「０」になっているのは、黒画素についての最近接黒画素は自分自身であるから、「最近接黒画素に対する距離」が「０」であることを示しているからである。これに対して、図１０において「１以上の数値」が描かれている画素は、対応する原画像Ｐ０上に白画素が配置されている画素である。数値は、１〜６と様々であるが、数値が小さいほど、近隣に黒画素が存在していることになる。たとえば、数値「１」が描かれている画素は、数値「０」が描かれている画素に隣接する画素となっており、「最近接黒画素に対する距離」が１であることを示している。
【００７３】
なお、ここで述べる実施形態の場合、「最近接黒画素に対する距離」として、画素の配列ピッチ（縦横等ピッチとする）を単位距離とした場合の２つの画素の中心点間のユークリッド距離（純粋な幾何学上の距離）を用いている。これを図１１の拡大画素図を用いて説明しよう。
【００７４】
図１１は８行７列の二次元画素配列を示しており、ハッチングを施した画素が黒画素、白地の画素が白画素である。また、Ｑ１〜Ｑ９は、個々の画素を示すとともに、その中心点をも示している。ここで、各画素Ｑ１〜Ｑ９の「最近接黒画素に対する距離」を、それぞれＤ（Ｑ１）〜Ｄ（Ｑ９）とした場合、各距離の値は、図１１の下段に示すような数値になる。
【００７５】
たとえば、Ｄ（Ｑ３）＝０となっているが、これは、画素Ｑ３についての最近接黒画素は自分自身であるから、中心点Ｑ３と中心点Ｑ３との間のユークリッド距離が０になるためである。同様に、黒画素Ｑ４，Ｑ６，Ｑ７，Ｑ９についての距離Ｄ（Ｑ４），Ｄ（Ｑ６），Ｄ（Ｑ７），Ｄ（Ｑ９）は、いずれも０である。一方、画素Ｑ１についての距離Ｄ（Ｑ１）＝２となっているのは、画素Ｑ１についての最近接黒画素はＱ３であり、中心点Ｑ１，Ｑ３間のユークリッド距離が２になるためである。同様に、画素Ｑ２についての距離Ｄ（Ｑ２）＝１となっているのは、画素Ｑ２についての最近接黒画素はＱ３であり、中心点Ｑ２，Ｑ３間のユークリッド距離が２になるためである。
【００７６】
また、画素Ｑ５については、黒画素Ｑ６に対する距離（中心点Ｑ５，Ｑ６間の距離）が２であるのに対して、黒画素Ｑ４に対する距離（中心点Ｑ５，Ｑ４間の距離）が√５であるので、最近接黒画素はＱ６ということになり、距離Ｄ（Ｑ５）＝２となっている。これに対して、画素Ｑ８については、黒画素Ｑ７に対する距離（中心点Ｑ８，Ｑ７間の距離）が２であるのに対して、黒画素Ｑ９に対する距離（中心点Ｑ８，Ｑ９間の距離）が√２であるので、最近接黒画素はＱ９ということになり、距離Ｄ（Ｑ８）＝√２となっている。
【００７７】
このように、個々の画素について、それぞれ最近接黒画素に対するユークリッド距離を求める演算は単純な幾何学演算であり、コンピュータ上でこのような演算を行う手法は種々の方法が公知であるため、ここでは詳しい説明は省略する。なお、ここに示す実施形態では、√２や√５など、整数にならない距離値を、距離画像Ｄｋ上にそのまま描くと図が繁雑になるため、距離の値としては、小数点以下を四捨五入してまるめた値を用いた例を示すことにする。もちろん、実用上も、本来のユークリッド距離を所定有効桁でまるめた値を距離の演算値として用いるようにするのが好ましい。
【００７８】
こうしてステップＳ３「距離演算段階」が完了すると、続いて、ステップＳ４「画像シフト段階」が行われる。すなわち、シフト画像格納部２０内に現時点で格納されているシフト画像Ｓ０（図９に示す原画像Ｐ０と同一）に対して、シフト処理部５０がローテーションシフト処理を実行する。図１２は、このようなシフト処理によって得られたシフト画像Ｓ１を示す平面図である。ここに示す例では、シフト方向は下方向、シフト量Δ＝１画素に設定されているため、図１２に示すシフト画像Ｓ１は、図９に示す原画像Ｐ０を１行分だけ下方にローテーションシフトしたものとなっている。シフト画像Ｓ１の第Ｉ行目（最下行）の画素は、旧（Ｉ−１）行目の画素であり、シフト画像Ｓ１の第１行目（最上行）の画素は、旧Ｉ行目（最下行）の画素である。
【００７９】
このようなローテーションシフトを行うには、たとえば、まず、第Ｉ行目の画素の各画素値を一時的なレジスタに退避させておき、第（Ｉ−１）行目の画素の各画素値を、それぞれ第Ｉ行目の画素の各画素値として書き込み、第（Ｉ−２）行目の画素の各画素値を、それぞれ第（Ｉ−１）行目の画素の各画素値として書き込み、……、第１行目の画素の各画素値を、それぞれ第２行目の画素の各画素値として書き込み、最後に、レジスタに退避させていた画素値を、第１行目の画素の各画素値として書き込む、という処理を行えばよい。
【００８０】
最後に、ステップＳ５「画像コピー段階」が実行される。これは、コピー処理部４０が、シフト画像格納部２０内の画像（この例の場合、図１２に示すシフト画像Ｓ１）の黒画素Ｓ１（ｉ，ｊ）のうち、距離画像格納部８０内の画像（この例の場合、図１０に示す距離画像Ｄ０）の対応位置にある画素Ｄ０（ｉ，ｊ）の画素値が、空隙幅Ｗ（この例の場合Ｗ＝２）を超えている黒画素Ｓ１（ｉ，ｊ）を、修正作業用画像格納部３０内の画像（この例の場合、図９に示す原画像Ｐ０）の対応位置にコピーする処理である。
【００８１】
図１３は、このコピー処理において参照されるシフト画像Ｓ１と距離画像Ｄ０との関係図である。図１３に示す個々の数値は、図１０に示す距離画像Ｄ０の画素値を示す数値と全く同一であるが、図１３に示す小さな正方形の輪郭は、図１２に示すシフト画像Ｓ１の黒画素の位置を示すものになっている。別言すれば、図１０と図１３との相違は、図１０に示す小さな正方形の輪郭が原画像Ｐ０の黒画素の位置を示しているのに対して、図１３に示す小さな正方形の輪郭はシフト画像Ｓ１の黒画素の位置を示していることになる。その結果、図１０では、輪郭内の数値はすべて「０」であったのに対し、図１３では、輪郭内の数値は「０」と「１」との混合になっている。
【００８２】
コピー処理部４０は、この図１３において、輪郭内の数値がＷ＝２を超える画素（すなわち、この例では、輪郭内の数値が３以上のもの）を探し、そのような画素があれば、これをコピー対象画素として、修正作業用画像格納部３０内の画像に対してコピーを行って更新する。図１３に示す例の場合、輪郭内の数値は０または１のみであり、３以上の画素は存在しない。したがって、この時点でのステップＳ５「画像コピー段階」は、実質的なコピーが全く行われない空コピー処理ということになるが、ここでは、便宜上、このような空コピー処理により、修正作業用画像格納部３０内に格納されていた修正作業用画像Ｐ０が、修正作業用画像Ｐ１に更新されたものとする。もちろん、修正作業用画像Ｐ１は、修正作業用画像Ｐ０（すなわち原画像Ｐ０）と全く同一の画像であり、実際には、データの書換作業は何ら行われない。
【００８３】
結局、ステップＳ５の処理が完了した時点では、シフト画像格納部２０内には、図１２に示すシフト画像Ｓ１が格納され、修正作業用画像格納部３０内には、図９に示す原画像Ｐ０と全く同一の修正作業用画像Ｐ１が格納され、距離画像格納部８０には、図１０に示す距離画像Ｄ０が格納された状態となっている。
【００８４】
このようなステップＳ３〜Ｓ５の実質的な修正作業が、ステップＳ６を介したループにより、繰り返し実行される。図７のブロック図に示した、シフト画像Ｓｋ，修正作業用画像Ｐｋ，距離画像Ｄｋの添字「ｋ」は、この繰り返し回数に対応するものである。すなわち、シフト画像Ｓｋは、第ｋ回目のシフト処理後に得られるシフト画像を示し、修正作業用画像Ｐｋは、このシフト画像Ｓｋに基づくコピー処理後（実質的なコピーが全く行われない空コピー処理も含む）に得られる修正作業用画像を示し、距離画像Ｄｋは、この修正作業用画像Ｐｋについての距離演算によって得られる距離画像を示している。
【００８５】
結局、ステップＳ３〜Ｓ５の処理は、ステップＳ６を介したループにより、繰り返し実行されることになるが、第ｋ回目の繰り返し実行時には、ステップＳ３の距離演算処理は、修正作業用画像Ｐ（ｋ−１）についての距離演算を行い、その結果として得られる距離画像Ｄ（ｋ−１）を距離画像格納部８０に格納する処理ということになり、ステップＳ４の画像シフト処理は、シフト画像Ｓ（ｋ−１）に対してローテーションシフトを行い、その結果として得られる新たなシフト画像Ｓｋをシフト画像格納部２０に格納する処理ということになり、ステップＳ５のコピー処理は、シフト画像Ｓｋの黒画素のうち、距離画像Ｄ（ｋ−１）の対応位置にある画素の画素値が空隙幅Ｗを超えている黒画素を、修正作業用画像Ｐ（ｋ−１）の対応位置にコピーして、その結果として得られる新たな修正作業用画像Ｐｋを修正作業用画像格納部３０に格納する処理ということになる。
【００８６】
＜第２回目の繰り返し＞
それでは、図８のステップＳ６からステップＳ３へと戻り、第２回目の繰り返しが実行された場合の処理手順を続けて説明する。まず、ステップＳ３「距離演算段階」では、距離演算部７０が、修正作業用画像格納部３０内に格納されている修正作業用画像Ｐ１について距離演算を行い、得られた距離画像Ｄ１を距離画像格納部８０に格納する処理が行われる。もっとも、ここに示す例の場合、前回のコピー処理は空コピー処理であったため、修正作業用画像Ｐ１は、修正作業用画像Ｐ０（すなわち原画像Ｐ０）と全く同一である。したがって、当然ながら、距離画像Ｄ１は距離画像Ｄ０と全く同一であり、新たに距離演算を行う必要はない。そこで、実用上は、前回のコピー処理が空コピー処理であった場合、ステップＳ３「距離演算段階」の実質的な演算処理は省略することができる。
【００８７】
続いて、ステップＳ４「画像シフト段階」が行われる。すなわち、シフト画像格納部２０内に現時点で格納されているシフト画像Ｓ１（図１２）に対して、シフト処理部５０がローテーションシフト処理を実行する。図１４は、このようなシフト処理によって得られたシフト画像Ｓ２を示す平面図である。図示のとおり、下方向に１行ずつローテーションシフトしたため、もとの線状要素Ｌ１３は、３つの線状要素Ｌ１３−１，Ｌ１３−２，Ｌ１３−３に分割されてしまっている。
【００８８】
そして、ステップＳ５「画像コピー段階」が実行される。これは、コピー処理部４０が、シフト画像格納部２０内のシフト画像Ｓ２（図１４）の黒画素Ｓ２（ｉ，ｊ）のうち、距離画像格納部８０内の距離画像Ｄ１（図１０に示す距離画像Ｄ０と同じ）の対応位置にある画素Ｄ１（ｉ，ｊ）の画素値が、空隙幅Ｗ（この例の場合Ｗ＝２）を超えている黒画素Ｓ２（ｉ，ｊ）を、修正作業用画像格納部３０内の修正作業用画像（図９に示す原画像Ｐ０と同じ）の対応位置にコピーする処理である。
【００８９】
図１５は、このコピー処理において参照されるシフト画像Ｓ２と距離画像Ｄ１との関係図である。図１５に示す小さな正方形の輪郭は、図１４に示すシフト画像Ｓ２の黒画素の位置を示すものになっており、この輪郭内の数値は「１」と「２」との混合になっている。
【００９０】
コピー処理部４０は、この図１５において、輪郭内の数値がＷ＝２を超える画素（すなわち、輪郭内の数値が３以上のもの）を探し、そのような画素があれば、これをコピー対象画素として、修正作業用画像格納部３０内の画像に対してコピーを行って更新する。ただ、図１５に示す例の場合も、３以上の画素は存在しないので、やはり空コピー処理が行われることになる。
【００９１】
結局、第２回目の繰り返し手順が完了した時点では、シフト画像格納部２０内には、図１４に示すシフト画像Ｓ２が格納され、修正作業用画像格納部３０内には、図９に示す原画像Ｐ０と全く同一の修正作業用画像Ｐ２が格納され、距離画像格納部８０には、図１５に示す距離画像Ｄ１（図１０の距離画像Ｄ０と同じ）が格納された状態となっている。
【００９２】
＜第３回目の繰り返し＞
次に、図８のステップＳ６からステップＳ３へと戻り、第３回目の繰り返しが実行された場合の処理手順を続けて説明する。まず、ステップＳ３「距離演算段階」では、距離演算部７０が、修正作業用画像格納部３０内に格納されている修正作業用画像Ｐ２について距離演算を行い、得られた距離画像Ｄ２を距離画像格納部８０に格納する処理が行われる。ここに示す例の場合、前回のコピー処理は空コピー処理であったため、修正作業用画像Ｐ２は、修正作業用画像Ｐ１（すなわち原画像Ｐ０）と全く同一であり、実質的な演算処理は省略することができる。
【００９３】
続いて、ステップＳ４「画像シフト段階」が行われる。すなわち、シフト画像格納部２０内に現時点で格納されているシフト画像Ｓ２（図１４）に対して、シフト処理部５０がローテーションシフト処理を実行する。図１６は、このようなシフト処理によって得られたシフト画像Ｓ３を示す平面図である。図示のとおり、原画像Ｐ０では最も下に位置していた線状要素Ｌ１３が、シフト画像Ｓ３では、最も上に位置している。
【００９４】
そして、ステップＳ５「画像コピー段階」が実行される。これは、コピー処理部４０が、シフト画像格納部２０内のシフト画像Ｓ３（図１６）の黒画素Ｓ３（ｉ，ｊ）のうち、距離画像格納部８０内の距離画像Ｄ２（図１０に示す距離画像Ｄ０と同じ）の対応位置にある画素Ｄ２（ｉ，ｊ）の画素値が、空隙幅Ｗ（この例の場合Ｗ＝２）を超えている黒画素Ｓ３（ｉ，ｊ）を、修正作業用画像格納部３０内の修正作業用画像Ｐ２（図９に示す原画像Ｐ０と同じ）の対応位置にコピーする処理である。
【００９５】
図１７は、このコピー処理において参照されるシフト画像Ｓ３と距離画像Ｄ２との関係図である。図１７に示す小さな正方形の輪郭は、図１６に示すシフト画像Ｓ３の黒画素の位置を示すものになっており、この輪郭内の数値は「１」，「２」，「３」の混合になっている。
【００９６】
コピー処理部４０は、この図１７において、輪郭内の数値がＷ＝２を超える画素（すなわち、輪郭内の数値が３以上のもの）を探し、そのような画素があれば、これをコピー対象画素として、修正作業用画像格納部３０内の画像に対してコピーを行って更新する。この例の場合、輪郭内の数値が「３」を示している画素が、コピー対象画素ということになる。図１８は、このコピー対象画素のみを抽出して示す平面図である。ここでは、説明の便宜上、このコピー対象画素については、ドットによるハッチングを施して示している。
【００９７】
図１８に示すとおり、これらのコピー対象画素は、３つの要素Ｌ２１，Ｌ２２，Ｌ２３を形成する。これら３つの要素Ｌ２１，Ｌ２２，Ｌ２３は、コピー対象となった部分線状要素である。すなわち、図１８に示す部分線状要素Ｌ２１，Ｌ２２，Ｌ２３は、図１６に示すシフト画像Ｓ３上の線状要素Ｌ１１の一部分に対応する要素である。ここに示す例で、線状要素Ｌ１１全体がコピー対象とならなかったのは、全体をコピーしてしまうと、他の線状要素に対して接近しすぎてしまう部分（空隙幅Ｗが確保できなくなる部分）が生じるためである。これは、図６において、コピー対象となった線状要素Ｌ１ｂが、元の線状要素Ｌ１全体ではなく、その一部分となっていることと同じ理由である。
【００９８】
結局、コピー処理部４０により、図１８に示す部分線状要素Ｌ２１，Ｌ２２，Ｌ２３を、修正作業用画像格納部３０内の修正作業用画像Ｐ２（図９に示す原画像Ｐ０と同じ）の対応位置にコピーする処理が行われる。図１９は、このようなコピー処理によって得られた修正作業用画像Ｐ３の平面図である。図において、斜線によるハッチングを施して示す線状要素Ｌ１１，Ｌ１２，Ｌ１３は、元の修正作業用画像Ｐ２（原画像Ｐ０）に含まれていた既存の線状要素であり、ドットによるハッチングを施して示す部分線状要素Ｌ２１，Ｌ２２，Ｌ２３は、新たに追加された線状要素である。もちろん、実際には、斜線によるハッチングを施した画素も、ドットによるハッチングを施した画素も、画素値「１」をもった同じ黒画素であり、データ上は何ら区別はない。
【００９９】
なお、実際には、コピ−処理部４０による上述のようなコピー処理は、次の２通りの方法により実行することができる。第１の方法は、シフト画像格納部２０内のシフト画像Ｓ３の個々の黒画素Ｓ３（ｉ，ｊ）について、距離画像格納部８０内の距離画像Ｄ２の対応位置にある画素Ｄ２（ｉ，ｊ）の画素値をそれぞれの参照画素値として求める処理を行い、この参照画素値が空隙幅Ｗを超えている黒画素Ｓ３（ｉ，ｊ）が発見されたら、当該黒画素Ｓ３（ｉ，ｊ）に対応する位置にある修正作業用画像格納部３０内の修正作業用画像Ｐ２の白画素Ｐ２（ｉ，ｊ）を黒画素に置換する処理（画素値「０」を画素値「１」に書き換える処理）を行う方法である。いわば、シフト画像側の黒画素をスキャンする方法ということができる。
【０１００】
第２の方法は、修正作業用画像格納部３０内の修正作業用画像Ｐ２の個々の白画素Ｐ２（ｉ，ｊ）について、「対応する位置にあるシフト画像格納部２０内のシフト画像Ｓ３の画素Ｓ３（ｉ，ｊ）が黒画素（画素値が「１」）」かつ「対応する位置にある距離画像格納部８０内の距離画像Ｄ２の画素Ｄ２（ｉ，ｊ）の画素値が空隙幅Ｗを超えている」という条件を満たすかどうかを判定し、当該条件を満たしていた場合には、当該白画素Ｐ２（ｉ，ｊ）を黒画素に置換する処理（画素値「０」を画素値「１」に書き換える処理）を行う方法である。いわば修正作業用画像側の白画素をスキャンする方法ということができる。
【０１０１】
結局、第３回目の繰り返し手順が完了した時点では、シフト画像格納部２０内には、図１６に示すシフト画像Ｓ３が格納され、修正作業用画像格納部３０内には、図１９に示す修正作業用画像Ｐ３が格納され、距離画像格納部８０には、図１７に示す距離画像Ｄ２（図１０の距離画像Ｄ０と同じ）が格納された状態となっている。
【０１０２】
＜第４回目の繰り返し＞
更に続けて、図８のステップＳ６からステップＳ３へと戻り、第４回目の繰り返しが実行された場合の処理手順を説明する。まず、ステップＳ３「距離演算段階」では、距離演算部７０が、修正作業用画像格納部３０内に格納されている修正作業用画像Ｐ３について距離演算を行い、得られた距離画像Ｄ３を距離画像格納部８０に格納する処理が行われる。修正作業用画像Ｐ３は、図１９に示すように、新たな線状要素Ｌ２１〜Ｌ２３の付加によって修正が施された画像であるから、この修正作業用画像Ｐ３についての演算によって得られた距離画像Ｄ３は、図２０に示すようなものになる。この図２０に示す距離画像Ｄ３を、図１０に示す距離画像Ｄ０と比べてみると、新たな線状要素Ｌ２１〜Ｌ２３が付加された部分近傍の距離の値が低下していることがわかる。このように実質的なコピー処理が実行されて、修正作業用画像に実質的な修正が施されると、コピー処理が行われた部分の距離値が低下することになるので、本発明に係る修正処理手順を順次繰り返してゆくことにより、距離画像の画素値を徐々に減少させてゆくことができる。
【０１０３】
続いて、ステップＳ４「画像シフト段階」が行われる。すなわち、シフト画像格納部２０内に現時点で格納されているシフト画像Ｓ３（図１６）に対して、シフト処理部５０がローテーションシフト処理を実行する。図２１は、このようなシフト処理によって得られたシフト画像Ｓ４を示す平面図である。
【０１０４】
そして、ステップＳ５「画像コピー段階」が実行される。これは、コピー処理部４０が、シフト画像格納部２０内のシフト画像Ｓ４（図２１）の黒画素Ｓ４（ｉ，ｊ）のうち、距離画像格納部８０内の距離画像Ｄ３（図２０）の対応位置にある画素Ｄ３（ｉ，ｊ）の画素値が、空隙幅Ｗ（この例の場合Ｗ＝２）を超えている黒画素Ｓ４（ｉ，ｊ）を、修正作業用画像格納部３０内の修正作業用画像Ｐ３（図１９）の対応位置にコピーする処理である。
【０１０５】
図２２は、このコピー処理において参照されるシフト画像Ｓ４と距離画像Ｄ３との関係図である。図２２に示す小さな正方形の輪郭は、図２１に示すシフト画像Ｓ４の黒画素の位置を示すものになっており、この輪郭内の数値は「０」と「１」との混合になっている。
【０１０６】
コピー処理部４０は、この図２２において、輪郭内の数値がＷ＝２を超える画素（すなわち、輪郭内の数値が３以上のもの）を探し、そのような画素があれば、これをコピー対象画素として、修正作業用画像格納部３０内の画像に対してコピーを行って更新する。ただ、図２２に示す例の場合も、３以上の画素は存在しないので、空コピー処理が行われることになる。
【０１０７】
結局、第４回目の繰り返し手順が完了した時点では、シフト画像格納部２０内には、図２１に示すシフト画像Ｓ４が格納され、修正作業用画像格納部３０内には、図１９に示す修正作業用画像Ｐ３と全く同一の修正作業用画像Ｐ４が格納され、距離画像格納部８０には、図２０に示す距離画像Ｄ３が格納された状態となっている。
【０１０８】
＜第５回目の繰り返し＞
再び、図８のステップＳ６からステップＳ３へと戻り、第５回目の繰り返しが実行される。まず、ステップＳ３「距離演算段階」では、距離演算部７０が、修正作業用画像格納部３０内に格納されている修正作業用画像Ｐ４について距離演算を行い、得られた距離画像Ｄ４を距離画像格納部８０に格納する処理が行われる。この場合、前回のコピー処理が空コピー処理であったため、距離画像Ｄ４は距離画像Ｄ３と全く同一であり、ステップＳ３「距離演算段階」の実質的な演算処理は省略することができる。
【０１０９】
続いて、ステップＳ４「画像シフト段階」が行われる。すなわち、シフト画像格納部２０内に現時点で格納されているシフト画像Ｓ４（図２１）に対して、シフト処理部５０がローテーションシフト処理を実行する。図２３は、このようなシフト処理によって得られたシフト画像Ｓ５を示す平面図である。図示のとおり、下方向に１行ずつローテーションシフトしたため、もとの線状要素Ｌ１２は、２つの線状要素Ｌ１２−１，Ｌ１２−２に分割されてしまっている。
【０１１０】
そして、ステップＳ５「画像コピー段階」が実行される。これは、コピー処理部４０が、シフト画像格納部２０内のシフト画像Ｓ５（図２３）の黒画素Ｓ５（ｉ，ｊ）のうち、距離画像格納部８０内の距離画像Ｄ４（図２０に示す距離画像Ｄ３と同じ）の対応位置にある画素Ｄ４（ｉ，ｊ）の画素値が、空隙幅Ｗ（この例の場合Ｗ＝２）を超えている黒画素Ｓ５（ｉ，ｊ）を、修正作業用画像格納部３０内の修正作業用画像Ｐ４（図１９に示す修正作業用画像Ｐ３と同じ）の対応位置にコピーする処理である。
【０１１１】
図２４は、このコピー処理において参照されるシフト画像Ｓ５と距離画像Ｄ４との関係図である。図２４に示す小さな正方形の輪郭は、図２３に示すシフト画像Ｓ５の黒画素の位置を示すものになっており、この輪郭内の数値は「０」，「１」，「２」の混合になっている。
【０１１２】
コピー処理部４０は、この図２４において、輪郭内の数値がＷ＝２を超える画素（すなわち、輪郭内の数値が３以上のもの）を探し、そのような画素があれば、これをコピー対象画素として、修正作業用画像格納部３０内の画像に対してコピーを行って更新する。ただ、図２４に示す例の場合も、３以上の画素は存在しないので、やはり空コピー処理が行われることになる。
【０１１３】
結局、第５回目の繰り返し手順が完了した時点では、シフト画像格納部２０内には、図２３に示すシフト画像Ｓ５が格納され、修正作業用画像格納部３０内には、図１９に示す修正作業用画像Ｐ３と全く同一の修正作業用画像Ｐ５が格納され、距離画像格納部８０には、図２４に示す距離画像Ｄ４（図２０の距離画像Ｄ３と同じ）が格納された状態となっている。
【０１１４】
＜第６回目の繰り返し＞
もう一度、図８のステップＳ６からステップＳ３へと戻り、第６回目の繰り返しが実行される。まず、ステップＳ３「距離演算段階」では、距離演算部７０が、修正作業用画像格納部３０内に格納されている修正作業用画像Ｐ５について距離演算を行い、得られた距離画像Ｄ５を距離画像格納部８０に格納する処理が行われる。ここに示す例の場合、前回のコピー処理は空コピー処理であったため、実質的な演算処理は省略することができる。
【０１１５】
続いて、ステップＳ４「画像シフト段階」が行われる。すなわち、シフト画像格納部２０内に現時点で格納されているシフト画像Ｓ５（図２３）に対して、シフト処理部５０がローテーションシフト処理を実行する。図２５は、このようなシフト処理によって得られたシフト画像Ｓ６を示す平面図である。図示のとおり、下方向に１行ずつローテーションシフトしたため、もとの線状要素Ｌ１２は、３つの線状要素Ｌ１２−１，Ｌ１２−２，Ｌ１２−３に分割されてしまっている。
【０１１６】
そして、ステップＳ５「画像コピー段階」が実行される。これは、コピー処理部４０が、シフト画像格納部２０内のシフト画像Ｓ６（図２５）の黒画素Ｓ６（ｉ，ｊ）のうち、距離画像格納部８０内の距離画像Ｄ５の対応位置にある画素Ｄ５（ｉ，ｊ）の画素値が、空隙幅Ｗ（この例の場合Ｗ＝２）を超えている黒画素Ｓ６（ｉ，ｊ）を、修正作業用画像格納部３０内の修正作業用画像Ｐ５の対応位置にコピーする処理である。
【０１１７】
図２６は、このコピー処理において参照されるシフト画像Ｓ６と距離画像Ｄ５との関係図である。図２５に示す小さな正方形の輪郭は、図２５に示すシフト画像Ｓ６の黒画素の位置を示すものになっており、この輪郭内の数値は［０］，「１」，「２」，「３」の混合になっている。
【０１１８】
コピー処理部４０は、この図２６において、輪郭内の数値がＷ＝２を超える画素（すなわち、輪郭内の数値が３以上のもの）を探し、そのような画素があれば、これをコピー対象画素として、修正作業用画像格納部３０内の画像に対してコピーを行って更新する。この例の場合、輪郭内の数値が「３」を示している画素が、コピー対象画素ということになる。図２７は、このコピー対象画素のみを抽出して示す平面図である。ここでも、説明の便宜上、このコピー対象画素については、ドットによるハッチングを施して示している。
【０１１９】
図２７に示すとおり、今回のコピー対象画素は、たった１つの画素からなる部分線状要素Ｌ３１である。そこで、コピー処理部４０により、図２７に示す部分線状要素Ｌ３１を、修正作業用画像格納部３０内の修正作業用画像Ｐ５（図１９に示す修正作業用画像Ｐ３と同じ）の対応位置にコピーする処理が行われる。図２８は、このようなコピー処理によって得られた修正作業用画像Ｐ６の平面図である。図において、斜線によるハッチングを施して示す線状要素Ｌ１１，Ｌ１２，Ｌ１３は、原画像Ｐ０に含まれていた既存の線状要素であり、ドットによるハッチングを施して示す部分線状要素Ｌ２１，Ｌ２２，Ｌ２３は、前述した第３回目の繰り返し時点で追加された線状要素であり、ドットによるハッチングを施して示す部分線状要素Ｌ３１が、今回の繰り返し時点で追加された線状要素である。もちろん、実際には、斜線によるハッチングを施した画素も、ドットによるハッチングを施した画素も、画素値「１」をもった同じ黒画素であり、データ上は何ら区別はない。
【０１２０】
結局、第６回目の繰り返し手順が完了した時点では、シフト画像格納部２０内には、図２５に示すシフト画像Ｓ６が格納され、修正作業用画像格納部３０内には、図２８に示す修正作業用画像Ｐ６が格納され、距離画像格納部８０には、図２６に示す距離画像Ｄ５（図２０の距離画像Ｄ３と同じ）が格納された状態となっている。
【０１２１】
＜第７回目の繰り返し＞
更に続けて、図８のステップＳ６からステップＳ３へと戻り、第７回目の繰り返しが実行される。まず、ステップＳ３「距離演算段階」では、距離演算部７０が、修正作業用画像格納部３０内に格納されている修正作業用画像Ｐ６について距離演算を行い、得られた距離画像Ｄ６を距離画像格納部８０に格納する処理が行われる。修正作業用画像Ｐ６は、図２８に示すように、新たな線状要素Ｌ３１の付加によって修正が施された画像であるから、この修正作業用画像Ｐ６についての演算によって得られた距離画像Ｄ６は、図２９に示すようなものになる。この図２９に示す距離画像Ｄ６を、図２０に示す距離画像Ｄ３と比べてみると、新たな線状要素Ｌ３１が付加された部分近傍の距離の値が低下していることがわかる。
【０１２２】
ここで、この図２９の距離画像Ｄ６を観察すると、左右両端を除いた中央部分の画素の画素値は、ほとんど「０」，「１」，「２」の混合になっていることがわかる。すなわち、空隙幅Ｗ＝２を超える画素は、中央部分にはほとんど存在していない状態となっている。この後、ステップＳ４「シフト段階」およびステップＳ５「画像コピー段階」が実行され、ステップＳ６へと到達するが、ここに示す実施形態では、この第７回目の繰り返しが完了した時点で、ステップＳ６からステップＳ７へと進み、繰り返しループから抜け出るものとする。
【０１２３】
その結果、ステップＳ７における修正済画像出力が実行される。すなわち、この時点で修正作業用画像格納部３０内に格納されていた修正作業用画像Ｐ７（図２８に示す修正作業用画像Ｐ６と同一）が、最終的な修正済画像として出力されることになる。結局、図９に示す原画像が、図２８に示すような画像に修正されたことになる。
【０１２４】
なお、図８のステップＳ６において、ステップＳ３へ戻る繰り返しループから抜け出て、ステップＳ７の修正済画像出力段階へと進む判断条件としては、たとえば、「合計１００回だけ繰り返しループを実行し終えたとき」のような条件を設定することもできるが、より実用的な条件としては、次のような条件設定を行うことができる。
【０１２５】
１つの条件設定としては、「距離演算段階Ｓ３で、空隙幅Ｗを超える距離が得られる画素が１つも存在しなくなったとき」のような条件設定を行うことができる。たとえば、上述した具体例の場合、Ｗ＝２という設定を行っていたので、距離演算段階Ｓ３で求めた距離画像Ｄｋのすべての画素値が２以下となったときに、この条件が満たされることになる。
【０１２６】
上述の具体例の場合、図９に示すように、原画像Ｐ０には、左右両端まで延びる線状要素が含まれていない。このため、上述の具体例では、無限にループを繰り返したとしても、画像の左右両端付近には、新たな線状要素が付加されることはなく、距離画像Ｄｋ上において「３」以上の画素値をもった画素が永遠に残ってしまうことになる。しかしながら、実際の原画像（たとえば、図１に示すような原画像）を用いれば、このような状況は稀であり、上述した条件設定は、実用上、十分に機能する。
【０１２７】
もっとも、より柔軟な条件設定を行うには、「距離演算段階Ｓ３で、空隙幅Ｗを超える距離が得られる画素の総数が所定の基準値以下となったとき」のような条件設定を行うのが好ましい。このような条件設定に基づく修正処理を行うのであれば、図７に示すシフト処理部５０に、「距離演算部７０における距離演算処理において、空隙幅Ｗを超える距離が得られる画素の総数が所定の基準値以下になるまで、シフト処理を繰り返し実行する」機能をもたせておけばよい。
【０１２８】
別な条件設定としては、「実質的なコピーが全く行われない空コピー段階が所定回数だけ連続して実行されたとき」のような条件を設定することもできる。上述の具体例の場合、第１回目、第２回目のループでは空コピーが行われたが、第３回目のループでは実質的なコピーが行われ、更に、第４回目、第５回目のループで空コピーが行われ、第６回目のループで実質的なコピーが行われている。この場合、空コピーの連続実行回数は２回である。したがって、「空コピー段階が３回以上連続して実行されたとき」のような条件を設定しておいた場合、少なくとも第８回目のループまでは実行されることになる。そして、第７回目、第８回目のループで空コピーが行われ、更に、第９回目のループでも空コピーが行われた場合には、その時点で繰り返しループから抜け出て、ステップＳ７の修正済画像出力段階へと進むことになる。
【０１２９】
このような条件設定に基づく修正処理を行うのであれば、図７に示すシフト処理部５０に、「空コピー処理が所定回数だけ連続して実行されるまで、シフト処理を繰り返し実行する」機能をもたせておけばよい。もちろん、修正作業用画像格納部３０内の画像をオペレータにモニタさせ、オペレータの指示により、ステップＳ６の判定を行わせるようにしてもよい。
【０１３０】
＜＜＜  §５．パラメータの意味  ＞＞＞
上述の§４では、図９に示す原画像Ｐ０に対して、パラメータとして、シフト量Δ＝１，空隙幅Ｗ＝２という設定を行い、第６回目の繰り返し処理（第６回目に実行されたステップＳ３〜Ｓ５の処理）を行った段階で、図２８に示すような修正作業用画像Ｐ６を得ることができた。ここでは、まず、この図２８の画像Ｐ６において、新たに追加された線状要素Ｌ２１，Ｌ２２，Ｌ２３，Ｌ３１（ドットによるハッチング部分）の形態を考えてみる。
【０１３１】
既に述べたとおり、これらの線状要素のうち、Ｌ２１，Ｌ２２，Ｌ２３は、第３回目の繰り返し処理でコピーされた画素から構成され、Ｌ３１は、第６回目の繰り返し処理でコピーされた画素から構成されている。いずれも、コピー元となったのは、原画像Ｐ０に既存の線状要素Ｌ１１である。
【０１３２】
すなわち、Ｌ２１，Ｌ２２，Ｌ２３は、Ｌ１１を３行分だけ下方向にシフトし、その一部分をコピー対象としてコピーすることにより得られた線状要素である。したがって、Ｌ２１，Ｌ２２，Ｌ２３の形態を全体的に捉えると、コピー元であるＬ１１の特徴を残していることがわかる。すなわち、Ｌ１１は、左端が上方に湾曲し、右端が下方に湾曲している特徴をもった線状要素であるが、Ｌ２１，Ｌ２２，Ｌ２３の形態全体にも、このような特徴がそのまま現れている。また、Ｌ３１は、Ｌ１１を６行分だけ下方向にシフトし、その一部分（左端の１画素のみ）をコピー対象としてコピーすることにより得られた要素である。１画素のみであるため、コピー元であるＬ１１の特徴は明確には現れていないが、原理的には、Ｌ１１の特徴が反映されていることになる。
【０１３３】
このように、本発明の基本原理は、修正対象となる原画像上の線状要素もしくはその一部分を、空隙領域に平行移動してコピーする、というものであるが、このような基本原理に基づく修正を行えば、コピーされた線状要素の形状は、既存の線状要素の形状に準じたものになり、更に、平行移動（前掲の例では、下方向へのシフト）を行った後のコピーであるから、コピーされた線状要素の向きも、既存の線状要素の向きに準じたものになる。このため、全体的に違和感が生じない修正が可能になる。
【０１３４】
ところで、図２８に示す画像Ｐ６において、新たに追加された線状要素Ｌ２１，Ｌ２２，Ｌ２３，Ｌ３１の位置および形状を決定する要因を考えてみると、パラメータとして設定した、シフト量Δおよび空隙幅Ｗが大きく関わっていることが理解できよう。
【０１３５】
まず、新たな線状要素Ｌ２１，Ｌ２２，Ｌ２３と既存の線状要素Ｌ１１との空隙をみると、いずれも空隙部分の幅は２画素分となっていることがわかる。同様に、新たな線状要素Ｌ３１と既存の線状要素Ｌ１２との間の空隙部分の幅も２画素分となっている。これは、パラメータとして空隙幅Ｗ＝２に設定したことが要因である。また、新たな線状要素Ｌ２１とＬ３１との間の空隙幅が２画素分となっているのも、Ｗ＝２に設定したことが要因である。このように、空隙幅Ｗというパラメータは、文字どおり、線状要素間の空隙部分の幅を左右するパラメータということになる。たとえば、空隙幅Ｗ＝１に設定すれば、線状要素Ｌ２１，Ｌ２２，Ｌ２３は１画素分上方にコピーされていたことになるし、空隙幅Ｗ＝３に設定すれば、線状要素Ｌ２１，Ｌ２２は１画素分下方にコピーされていたことになる。
【０１３６】
これに対して、シフト量Δは、新たな線状要素の形状を左右するパラメータである。上述したように、新たな線状要素Ｌ２１，Ｌ２２，Ｌ２３は、既存の線状要素Ｌ１１の一部をコピーすることにより生まれた要素である。この新たな線状要素Ｌ２１，Ｌ２２，Ｌ２３が生まれる過程は、図１７の関係図を参照すれば容易に理解できる。すなわち、図１７において、小さな正方形の輪郭が示された画素（図１６のシフト画像Ｓ３上の黒画素）のうち、画素値（距離を示す値）が３以上の画素が、コピー対象画素となる。その結果、図１８に示すように、線状要素Ｌ２１，Ｌ２２，Ｌ２３がコピー対象として抽出されたわけである。
【０１３７】
ここで、図１６に示すシフト画像Ｓ３上の各線状要素Ｌ１１〜Ｌ１３の位置が、それぞれ１画素分下にずれていた場合を考えてみよう。その場合は、図１７における正方形の輪郭もそれぞれ１画素分下にずれることになるので、中央の輪郭群（Ｌ１１に対応する輪郭群）内の画素値の多くは３以上になることがわかる。その結果、コピー対象として抽出される線状要素は、より太くなる（２画素分の幅をもつ）。
【０１３８】
結局、空隙幅Ｗは、修正後の画像上の各線状要素間の空隙の幅を支配するパラメータとなり、シフト量Δは、修正後の画像上で新たに追加された線状要素の形状を支配するパラメータとなることがわかる。
【０１３９】
このようなパラメータの機能をより明確に示すために、図３０に示すような単純な原画像Ｐ０が与えられた場合を考えてみよう。この図３０に示す原画像Ｐ０上には、線状要素Ｌ５１，Ｌ５２が配置されている。いずれも幅２画素分、長さ１２画素分の矩形からなる線状要素である。この原画像Ｐ０についての距離画像Ｄ０は、図３１に示すようなものになる。なお、図３１では、説明の便宜上、距離画像Ｄ０の一部のみ（Ｌ５１とＬ５２との間の部分のみ）を示すことにする。
【０１４０】
図３２は、図３０に示す原画像Ｐ０に対して、「シフト量Δ＝１画素、空隙幅Ｗ＝２画素」なるパラメータ設定を行い、本発明に係る修正処理を施して得られる修正済画像を示している。ここでも、既存の線状要素に対しては斜線によるハッチングを施し、新たに追加された線状要素に対してはドットによるハッチングを施している。図示のとおり、新たな線状要素Ｌ６１，Ｌ６２，Ｌ６３が追加されている。各線状要素の上下方向の空隙幅は概ね２画素分となっている（Ｌ６３，Ｌ５２間の空隙幅が４画素分となっているのは、この間に新たな線状要素を入れる余裕がなかったためである）。これは、空隙幅Ｗ＝２という設定が反映されたものである。また、線状要素Ｌ６１，Ｌ６２，Ｌ６３の幅が１画素分となっているが、これはシフト量Δ＝１という設定が反映されたものである。
【０１４１】
図３３は、「シフト量Δ＝１画素、空隙幅Ｗ＝３画素」なるパラメータ設定を行った結果である。図示のとおり、新たな線状要素Ｌ６４，Ｌ６５が追加されている。各線状要素の上下方向の空隙幅は概ね３画素分となっているが、これは、空隙幅Ｗ＝３という設定が反映されたものである。また、線状要素Ｌ６４，Ｌ６５の幅が１画素分となっているが、これはシフト量Δ＝１という設定が反映されたものである。
【０１４２】
図３４は、「シフト量Δ＝１画素、空隙幅Ｗ＝４画素」なるパラメータ設定を行った結果である。図示のとおり、新たな線状要素Ｌ６６が追加されている。線状要素Ｌ５１，Ｌ６６の上下方向の空隙幅は４画素分となっているが、これは、空隙幅Ｗ＝４という設定が反映されたものである。一方、線状要素Ｌ６６，Ｌ５２の上下方向の空隙幅は８画素分となっているが、これは、空隙幅Ｗ＝４という設定では、この間に新たな線状要素を入れる余裕がなかったためである。また、線状要素Ｌ６６の幅が１画素分となっているが、これはシフト量Δ＝１という設定が反映されたものである。
【０１４３】
続いて、シフト量Δ＝２という設定を行った場合の例を見てみよう。図３５は、「シフト量Δ＝２画素、空隙幅Ｗ＝２画素」なるパラメータ設定を行った結果である。図示のとおり、新たな線状要素Ｌ７１，Ｌ７２，Ｌ７３が追加されている。各線状要素の上下方向の空隙幅はすべて２画素分となっているが、これは、空隙幅Ｗ＝２という設定が反映されたものである。また、線状要素Ｌ７１，Ｌ７２の幅が２画素分となっているが、これはシフト量Δ＝２という設定が反映されたものである。線状要素Ｌ７３の幅が１画素となっているのは、既存の線状要素Ｌ５２に接近しているためである。
【０１４４】
このように、シフト量Δ＝２にすると、新たに追加される線状要素の幅が２画素分になる理由は、図３１の距離画像Ｄ０を参照すると理解できる。シフト量Δ＝２に設定すると、既存の線状要素Ｌ５１を、下方向へ２行分ずつシフトすることによりシフト画像が生成されることになる。図３１において、線状要素Ｌ５１を２行分シフトすると、シフト後の輪郭内に含まれる距離の値は「１」または「２」であるから、Ｗ＝２という設定の場合、いずれの画素もコピー対象にはならない。ところが、線状要素Ｌ５１をもう１回、２行分シフトすると（原画像に対して、合計４行分シフトすると）、シフト後の輪郭内に含まれる距離の値は「３」または「４」になるので、輪郭内の画素がすべてコピー対象となる。このため、２行分の画素がそっくりコピー対象となり、図３５に示す線状要素Ｌ７１，Ｌ７２のように、幅が２画素分の線状要素が追加されることになるのである。
【０１４５】
結局、シフト量Δの値を大きく設定すると、１回のシフトにより、シフト後の輪郭内に含まれる距離の値が一気に増加することになり、コピー対象となる画素が一気に増え、比較的幅の広い線状要素が新たに追加され易くなる。シフト量Δは、このような点において、修正後の画像上で新たに追加された線状要素の形状を支配するパラメータとして関与するのである。
【０１４６】
図３６は、「シフト量Δ＝２画素、空隙幅Ｗ＝３画素」なるパラメータ設定を行った結果である。図示のとおり、新たな線状要素Ｌ７４，Ｌ７５が追加されている。各線状要素の上下方向の空隙幅は概ね３画素分となっているが、これは、空隙幅Ｗ＝３という設定が反映されたものである。また、シフト量Δ＝２という設定を行っているにもかかわらず、線状要素Ｌ７４，Ｌ７５の幅が１画素分となっているが、これはシフト量Δと空隙幅Ｗとの関係に依拠する結果である。すなわち、シフト量Δ＝２という設定を行った以上、コピー元となる線状要素Ｌ５１は、偶数ピッチでシフトされてゆくことになるが、空隙幅についてはＷ＝３という奇数値を設定しているため、線状要素Ｌ５１の一行分のみがコピー対象として抽出されることになるのである。
【０１４７】
このように、パラメータとして設定したシフト量Δは、必ずしも新たに追加される線状要素の幅を正確に規定するものではなく、実際に追加される線状要素の幅は、コピー元となる線状要素Ｌ５１の幅、シフト量Δ、空隙幅Ｗの相互関連により決まることになる。
【０１４８】
図３７は、「シフト量Δ＝２画素、空隙幅Ｗ＝４画素」なるパラメータ設定を行った結果である。図示のとおり、新たな線状要素Ｌ７６が追加されている。線状要素Ｌ５１，Ｌ７６の上下方向の空隙幅は４画素分となっているが、これは、空隙幅Ｗ＝４という設定が反映されたものである。一方、線状要素Ｌ７６，Ｌ５２の上下方向の空隙幅は７画素分となっているが、これは、空隙幅Ｗ＝４という設定では、この間に新たな線状要素を入れる余裕がなかったためである。また、線状要素Ｌ７６の幅が２画素分となっているが、これはシフト量Δ＝２という設定が反映されたものである。
【０１４９】
今度は、シフト量Δ＝３という設定を行った場合の例を見てみよう。図３８は、「シフト量Δ＝３画素、空隙幅Ｗ＝２画素」なるパラメータ設定を行った結果である。図示のとおり、新たな線状要素Ｌ８１，Ｌ８２，Ｌ８３が追加されている。各線状要素の上下方向の空隙幅は概ね２画素分となっているが、これは、空隙幅Ｗ＝２という設定が反映されたものである。また、線状要素Ｌ８１，Ｌ８２，Ｌ８３の幅が１画素分となっているが、これはコピー元となる線状要素Ｌ５１の幅と、シフト量Δ＝３と空隙幅Ｗ＝２という設定値との相互関連により決まったものである。
【０１５０】
図３９は、「シフト量Δ＝３画素、空隙幅Ｗ＝３画素」なるパラメータ設定を行った結果である。図示のとおり、新たな線状要素Ｌ８４が追加されている。空隙幅Ｗ＝３という設定を行っているにもかかわらず、実際の線状要素Ｌ５１，Ｌ８４の上下方向の空隙幅は４画素分となっているが、これはコピー元となる線状要素Ｌ５１の幅が２画素分しかないのに、シフト量Δ＝３に設定したためである。すなわち、コピー元となる線状要素Ｌ５１の幅よりも大きなシフト量を設定すると、コピー元が存在しない行（図３９の例の場合、第４行目、第７行目、第１０行目、第１３行目）が発生し、そのような行には、画素のコピーが行われないことになる。線状要素Ｌ８４，Ｌ５２の上下方向の空隙幅が７画素分という大きな値になっているのも、第１３行目が、コピー元が存在しない行に該当したためである。
【０１５１】
最後に、シフト量Δ＝４という設定を行った場合の例を見てみよう。図４０は、「シフト量Δ＝４画素、空隙幅Ｗ＝２画素」なるパラメータ設定を行った結果である。図示のとおり、新たな線状要素Ｌ９１，Ｌ９２，Ｌ９３が追加されている。各線状要素の上下方向の空隙幅は概ね２画素分となっているが、これは、空隙幅Ｗ＝２という設定が反映されたものである。また、線状要素Ｌ９１，Ｌ９２，Ｌ９３の幅は、コピー元となる線状要素Ｌ５１の幅と、シフト量Δ＝４と空隙幅Ｗ＝２という設定値との相互関連により決まったものである。
【０１５２】
図４１は、「シフト量Δ＝４画素、空隙幅Ｗ＝３画素」なるパラメータ設定を行った結果である。図示のとおり、新たな線状要素Ｌ９４，Ｌ９５が追加されている。各線状要素の上下方向の空隙幅は概ね３画素分となっているが、これは、空隙幅Ｗ＝３という設定が反映されたものである。また、線状要素Ｌ９４，Ｌ９５の幅は、コピー元となる線状要素Ｌ５１の幅と、シフト量Δ＝４と空隙幅Ｗ＝３という設定値との相互関連により決まったものである。
【０１５３】
以上の例を見てわかるように、パラメータとして設定する空隙幅Ｗは、必ずしも正確ではないが、文字どおり、線状要素間の空隙部分の幅を左右する因子ということになる。これに対して、パラメータとして設定するシフト量Δは、コピー元となる線状要素の幅や空隙幅Ｗとの相互関連により、新たに追加される線状要素の幅を左右する因子ということになる。オペレータは、このような予備知識をもって、任意のパラメータ設定を試行錯誤することにより、所望の修正結果を得ることができる。
【０１５４】
本願発明者が行った種々の試行錯誤によると、パラメータ設定段階で設定するパラメータとしては、空隙幅Ｗとして、各線状要素の平均的な幅値にほぼ等しい値を設定すると好ましい修正結果が得られる傾向にあることが判明した。前掲の例の場合、原画像上の線状要素Ｌ５１，Ｌ５２の幅は２画素であるので、Ｗ＝２という設定を行うと、好ましい結果が得られることになる。たとえば、図４０に示す例では、新たな線状要素Ｌ９１，Ｌ９２，Ｌ９３が、既存の線状要素Ｌ５１，Ｌ５２の間に自然に融合するように付加されていることがわかる。
【０１５５】
また、シフト量Δとしては、空隙幅Ｗの２倍の値を設定すると、好ましい修正結果が得られる傾向にあることも判明した。たとえば、空隙幅Ｗ＝２に設定した場合、シフト量Δ＝４に設定するのが好ましいことになる。具体的には、図４０に示す例が、このような設定を行った例である。図３２〜図４１に示す種々の修正結果を相互に比較すれば、この図４０に示す修正結果が最も自然な結果であることが認識できよう。
【０１５６】
＜＜＜  §６．変形例  ＞＞＞
最後に、本発明のいくつかの変形例に係る実施形態を説明する。
【０１５７】
（１）  距離画像格納部８０を用いない形態
図７にブロック図を示す実施形態では、距離演算部７０による演算結果を、距離画像格納部８０内に距離画像Ｄｋとして格納しておき、コピー処理部４０は、この距離画像格納部８０内の距離画像Ｄｋを参照することにより、特定の画素について求めた距離（最近接黒画素に対する距離）の値を利用していた。しかしながら、この距離画像格納部８０は、本発明を実施する上で、必ずしも必須の構成要素ではない。距離画像格納部８０がない場合、距離演算部７０による演算結果を距離画像Ｄｋという形式で保存しておくことはできなくなるが、コピー処理部４０からの問い合わせを受けて、距離演算部７０がその都度、特定の画素に関する「最近接黒画素に対する距離」を演算する処理を行い、結果をコピー処理部４０に報告するようにすれば、本発明の基本原理に基づく画像修正は実施可能である。
【０１５８】
すなわち、距離演算部７０は、修正作業用画像格納部３０内の画像について、個々の画素についての最近接黒画素に対する距離を求める演算機能を有していれば足り、コピー処理部４０は、シフト画像格納部２０内の画像の黒画素のうち、修正作業用画像格納部３０内の画像の対応位置にある画素についての距離演算部７０によって求められた距離が空隙幅Ｗを超えている黒画素を、修正作業用画像格納部３０内の画像の対応位置にコピーする処理を実行すればよい。
【０１５９】
（２）  図８のステップの順番
本発明に係る画像の修正方法の手順を、図８の流れ図に基づいて説明したが、この流れ図の手順は、必ずしもこのとおりの順番で行う必要はない。たとえば、ステップＳ１の原画像入力段階を行う前に、ステップＳ２のパラメータ設定段階を実行することも可能であるし、ステップＳ３の距離演算段階を行う前に、ステップＳ４の画像シフト段階を行うことも可能である。要するに、本発明の基本原理から逸脱しない限り、この流れ図の各ステップの順序は適宜変更可能である。
【０１６０】
（３）  最近接黒画素に対する距離
距離演算部７０によって、個々の画素について演算される「最近接黒画素に対する距離」として、これまで述べてきた実施形態では、２つの画素の中心点間のユークリッド距離、もしくは当該ユークリッド距離を所定有効桁でまるめた値（前掲の実施例の場合、小数点以下を四捨五入した値）を演算値として用いてきた。しかしながら、「最近接黒画素に対する距離」としては、必ずしもユークリッド距離を用いる必要はない。たとえば、２つの画素の四近傍距離もしくは八近傍距離を代用することも可能である。
【０１６１】
ここで、四近傍距離とは、二次元行列からなる画素配列について、任意の画素間の距離を示す値として利用されているものであり、二次元行列の升目上を縦または横に１ますずつ移動した場合に、何回の移動で相手の画素まで到達できるか、を示す数値として示される距離である。たとえば、図１１に示す例の場合、画素Ｑ５とＱ６との間の四近傍距離は２であるが、画素Ｑ５とＱ４との間の四近傍距離は、３ということになる。これは、画素Ｑ５の升目から画素Ｑ４の升目まで、縦または横に１ますずつ移動して到達するためには、合計３回の移動が必要になるためである。同様に、画素Ｑ８とＱ９との間の四近傍距離は、斜めへの移動はできないので、２ということになる。
【０１６２】
これに対して、八近傍距離とは、更に斜めへの移動も許した場合の移動回数を示す値である。上例の場合、画素Ｑ５とＱ４との間の八近傍距離は、２ということになり、画素Ｑ８とＱ９との間の八近傍距離は、１ということになる。
【０１６３】
本発明で行う修正処理は、原画像上の空隙領域に、既存の線状要素の全部もしくは一部をコピーすることにより、線状要素の密度分布を修正するためのものであるので、距離演算部７０において厳密な距離演算は不要である。したがって、本発明を実施する上で、「最近接黒画素に対する距離」として、上述した四近傍距離や八近傍距離のような便宜的な距離を用いても大きな支障は生じない。
【０１６４】
（４）  ローテーションしないシフト処理
これまでの実施形態では、シフト処理部５０が、原画像もしくはシフト画像に対して、ローテーションシフトを行う例を示した。このローテーションシフトは、結局、シフトにより画像の一方から食み出た画素（前掲の実施例の場合、画像の下端から食み出た１行分の画素）を、シフトにより画像の他方に生じた空白部分（前掲の実施例の場合、画像の上端に生じた１行分の空白部分）に配置するシフトであり、画素を有効利用する上では好ましいシフト形態である。
【０１６５】
しかしながら、本発明におけるシフト処理は、必ずしもローテーションシフトによって行う必要はない。たとえば、画像の一方から食み出た画素については、そのまま廃棄してしまってもかまわない。この場合、画像の他方からは徐々に空白部分が広がることになるが、トータルのシフト量が、画像の大きさに比較して小さい場合には、本発明を実施する上で大きな支障は生じない。
【０１６６】
（５）  シフト方向もパラメータ設定する方法
これまでの実施形態では、シフト方向は下方向と決められていたが、シフト方向をパラメータとして任意に設定できるようにすることも可能である。この場合、パラメータ設定部６０に、シフト方向をパラメータとして設定する機能をもたせておき、シフト処理部５０が、設定されたシフト方向にシフト処理を実行するようにすればよい。斜め方向へのシフトを行ってもかまわない。
【０１６７】
これまでの実施例で示した原画像は、いずれも水平方向に伸びた線状要素を含む画像であったが、垂直方向に伸びた線状要素を含む画像に対しては、シフト方向を右もしくは左方向に設定した方が効果的である。そこで、実用上は、オペレータが入力した原画像上の全線状要素に共通する大まかな長手方向を目視確認し、この大まかな長手方向をコンピュータに対して指示してパラメータ設定部６０にパラメータとして設定し、シフト処理部５０が、当該長手方向に対して直交する方向をシフト方向とするシフト処理を実行するようにするのが好ましい。もっとも、本発明を実施する上で、線状要素の長手方向とシフト方向とを直交させることは必須ではなく、直交していなくても十分修正は可能である。
【図面の簡単な説明】
【０１６８】
【図１】本発明に係る修正方法による修正前の画像の一例を示す平面図である。
【図２】図１に示す画像に対して、本発明に係る修正方法を適用することによって得られた修正後の画像の一例を示す平面図である。
【図３】本発明の基本概念を説明するための単純な原画像を示す平面図である。
【図４】図３に示す原画像に対して、本発明の基本概念に基づく修正を加えた状態を示す平面図である。
【図５】本発明の基本概念を説明するための別な単純な原画像を示す平面図である。
【図６】図５に示す原画像に対して、本発明の基本概念に基づく修正を加えた状態を示す平面図である。
【図７】本発明の一実施形態に係る画像の修正装置の基本構成を示すブロック図である。
【図８】本発明の一実施形態に係る画像の修正方法の基本手順を示す流れ図である。
【図９】本発明に係る画像の修正手順を説明するための原画像Ｐ０を示す平面図である。
【図１０】図９に示す原画像Ｐ０について求められた距離画像Ｄ０を示す平面図である（小さな四角い枠は、原画像Ｐ０の黒画素の位置を示す）。
【図１１】本発明における各画素の距離値の概念を示す拡大画素図である。
【図１２】図９に示す原画像Ｐ０を下方向に１画素分だけローテーションシフトすることにより得られたシフト画像Ｓ１を示す平面図である。
【図１３】図１２に示すシフト画像Ｓ１と図１０に示す距離画像Ｄ０との関係を示す平面図である（小さな四角い枠は、シフト画像Ｓ１の黒画素の位置を示す）。
【図１４】図１２に示すシフト画像Ｓ１を下方向に１画素分だけローテーションシフトすることにより得られたシフト画像Ｓ２を示す平面図である。
【図１５】図１４に示すシフト画像Ｓ２と距離画像Ｄ１（図１０に示す距離画像Ｄ０と同じ）との関係を示す平面図である（小さな四角い枠は、シフト画像Ｓ２の黒画素の位置を示す）。
【図１６】図１４に示すシフト画像Ｓ２を下方向に１画素分だけローテーションシフトすることにより得られたシフト画像Ｓ３を示す平面図である。
【図１７】図１６に示すシフト画像Ｓ３と距離画像Ｄ２（図１０に示す距離画像Ｄ０と同じ）との関係を示す平面図である（小さな四角い枠は、シフト画像Ｓ３の黒画素の位置を示す）。
【図１８】図１６に示すシフト画像Ｓ３を構成する黒画素のうち、コピー対象となる黒画素（部分線状要素Ｌ２１，Ｌ２２，Ｌ２３）を示す平面図である。
【図１９】図１８に示すコピー対象となった黒画素（部分線状要素Ｌ２１，Ｌ２２，Ｌ２３）を、図９に示す原画像上にコピーすることにより得られる修正作業用画像Ｐ３を示す平面図である。
【図２０】図１９に示す修正作業用画像Ｐ３について求められた距離画像Ｄ３を示す平面図である。
【図２１】図１６に示すシフト画像Ｓ３を下方向に１画素分だけローテーションシフトすることにより得られたシフト画像Ｓ４を示す平面図である。
【図２２】図２１に示すシフト画像Ｓ４と図２０に示す距離画像Ｄ３との関係を示す平面図である（小さな四角い枠は、シフト画像Ｓ４の黒画素の位置を示す）。
【図２３】図２１に示すシフト画像Ｓ４を下方向に１画素分だけローテーションシフトすることにより得られたシフト画像Ｓ５を示す平面図である。
【図２４】図２３に示すシフト画像Ｓ５と距離画像Ｄ４（図２０に示す距離画像Ｄ３と同じ）との関係を示す平面図である（小さな四角い枠は、シフト画像Ｓ５の黒画素の位置を示す）。
【図２５】図２３に示すシフト画像Ｓ５を下方向に１画素分だけローテーションシフトすることにより得られたシフト画像Ｓ６を示す平面図である。
【図２６】図２５に示すシフト画像Ｓ６と距離画像Ｄ５（図２０に示す距離画像Ｄ３と同じ）との関係を示す平面図である（小さな四角い枠は、シフト画像Ｓ６の黒画素の位置を示す）。
【図２７】図２５に示すシフト画像Ｓ６を構成する黒画素のうち、コピー対象となる黒画素（部分線状要素Ｌ３１）を示す平面図である。
【図２８】図２７に示すコピー対象となった黒画素（部分線状要素Ｌ３１）を、図１９に示す修正作業用画像Ｐ３上にコピーすることにより得られる修正作業用画像Ｐ６を示す平面図である。
【図２９】図２８に示す修正作業用画像Ｐ６について求められた距離画像Ｄ６を示す平面図である。
【図３０】本発明に係る画像の修正手順におけるパラメータΔおよびＷの意味を説明するための原画像Ｐ０を示す平面図である。
【図３１】図３０に示す原画像Ｐ０について求められた距離画像Ｄ０の一部を示す平面図である（Ｌ５１，Ｌ５２は、原画像Ｐ０上の線状要素をそのまま示し、数字部分が距離画像を示す）。
【図３２】図３０に示す原画像Ｐ０に対して、パラメータΔ＝１，Ｗ＝２なる設定を行うことによって得られる修正済画像Ｐｎを示す平面図である。
【図３３】図３０に示す原画像Ｐ０に対して、パラメータΔ＝１，Ｗ＝３なる設定を行うことによって得られる修正済画像Ｐｎを示す平面図である。
【図３４】図３０に示す原画像Ｐ０に対して、パラメータΔ＝１，Ｗ＝４なる設定を行うことによって得られる修正済画像Ｐｎを示す平面図である。
【図３５】図３０に示す原画像Ｐ０に対して、パラメータΔ＝２，Ｗ＝２なる設定を行うことによって得られる修正済画像Ｐｎを示す平面図である。
【図３６】図３０に示す原画像Ｐ０に対して、パラメータΔ＝２，Ｗ＝３なる設定を行うことによって得られる修正済画像Ｐｎを示す平面図である。
【図３７】図３０に示す原画像Ｐ０に対して、パラメータΔ＝２，Ｗ＝４なる設定を行うことによって得られる修正済画像Ｐｎを示す平面図である。
【図３８】図３０に示す原画像Ｐ０に対して、パラメータΔ＝３，Ｗ＝２なる設定を行うことによって得られる修正済画像Ｐｎを示す平面図である。
【図３９】図３０に示す原画像Ｐ０に対して、パラメータΔ＝３，Ｗ＝３なる設定を行うことによって得られる修正済画像Ｐｎを示す平面図である。
【図４０】図３０に示す原画像Ｐ０に対して、パラメータΔ＝４，Ｗ＝２なる設定を行うことによって得られる修正済画像Ｐｎを示す平面図である。
【図４１】図３０に示す原画像Ｐ０に対して、パラメータΔ＝４，Ｗ＝３なる設定を行うことによって得られる修正済画像Ｐｎを示す平面図である。
【符号の説明】
【０１６９】
１０：原画像入力部
２０：シフト画像格納部
３０：修正作業用画像格納部
４０：コピー処理部
５０：シフト処理部
６０：パラメータ設定部
７０：距離演算部
８０：距離画像格納部
Ｄｋ：距離画像（ｋ＝０，１，２，３，…）
Ｄｋ（ｉ，ｊ）：距離画像を構成する画素
Ｄ（Ｑ１）〜Ｄ（Ｑ９）：各画素の距離値
Ｌ１〜Ｌ５：線状要素
Ｌ１ａ，Ｌ１ｂ：コピー対象となった線状要素
Ｌ１１〜Ｌ１３：線状要素
Ｌ１２−１，Ｌ１２−２，Ｌ１２−３：分割された線状要素
Ｌ１３−１，Ｌ１３−２，Ｌ１３−３：分割された線状要素
Ｌ２１，Ｌ２２，Ｌ２３，Ｌ３１：コピー対象となった部分線状要素
Ｌ５１，Ｌ５２：線状要素
Ｌ６１〜Ｌ６６：コピー対象となった線状要素もしくは部分線状要素
Ｌ７１〜Ｌ７６：コピー対象となった線状要素もしくは部分線状要素
Ｌ８１〜Ｌ８４：コピー対象となった線状要素もしくは部分線状要素
Ｌ９１〜Ｌ９５：コピー対象となった線状要素もしくは部分線状要素
Ｐ０：原画像
Ｐ０（ｉ，ｊ）：原画像を構成する画素
Ｐｋ：修正作業用画像（ｋ＝０，１，２，３，…）
Ｐｋ（ｉ，ｊ）：修正作業用画像を構成する画素
Ｐｎ：修正済画像
Ｑ１〜Ｑ９：画素およびその中心点
Ｓ１〜Ｓ７：流れ図の各ステップ
Ｓｋ：シフト画像（ｋ＝１，２，３，…）
Ｓｋ（ｉ，ｊ）：シフト画像を構成する画素
ＳＰ：空隙領域
Ｗ：空隙幅
Δ：シフト量
【図１】
2008015952.tif 000003
【図２】
2008015952.tif 000004
【図３】
2008015952.tif 000005
【図４】
2008015952.tif 000006
【図５】
2008015952.tif 000007
【図６】
2008015952.tif 000008
【図７】
2008015952.tif 000009
【図８】
2008015952.tif 000010
【図９】
2008015952.tif 000011
【図１０】
2008015952.tif 000012
【図１１】
2008015952.tif 000013
【図１２】
2008015952.tif 000014
【図１３】
2008015952.tif 000015
【図１４】
2008015952.tif 000016
【図１５】
2008015952.tif 000017
【図１６】
2008015952.tif 000018
【図１７】
2008015952.tif 000019
【図１８】
2008015952.tif 000020
【図１９】
2008015952.tif 000021
【図２０】
2008015952.tif 000022
【図２１】
2008015952.tif 000023
【図２２】
2008015952.tif 000024
【図２３】
2008015952.tif 000025
【図２４】
2008015952.tif 000026
【図２５】
2008015952.tif 000027
【図２６】
2008015952.tif 000028
【図２７】
2008015952.tif 000029
【図２８】
2008015952.tif 000030
【図２９】
2008015952.tif 000031
【図３０】
2008015952.tif 000032
【図３１】
2008015952.tif 000033
【図３２】
2008015952.tif 000034
【図３３】
2008015952.tif 000035
【図３４】
2008015952.tif 000036
【図３５】
2008015952.tif 000037
【図３６】
2008015952.tif 000038
【図３７】
2008015952.tif 000039
【図３８】
2008015952.tif 000040
【図３９】
2008015952.tif 000041
【図４０】
2008015952.tif 000042
【図４１】
2008015952.tif 000043