(57)【要約】【課題】画像ノイズである孤立点除去を行なう画像処理装置であって、処理時間の高速化と、参照するルックアップテーブルの容量低減を両立し、組み込みシステムに容易に適用可能な画像処理装置、画像処理方法、および画像処理プログラムを提供することを目的とする。【解決手段】画像ノイズである孤立点を除去する孤立点除去部１０９に、２値画像データから複数のデータ列を抽出し、このデータ列に所定のコード変換を施すコード変換部（プロセッサ１１２）と、コード変換を行なう前のデータ列と、コード変換部によってコード変換されたデータ列を入力として論理演算を行ない、その結果を出力する論理演算部（プロセッサ１１２）とを有する。【選択図】図１
2008015858.tif 000002
【特許請求の範囲】
【請求項１】
２値画像データから複数のデータ列を抽出し、このデータ列に所定のコード変換を施すコード変換部と、
コード変換を行なう前の前記データ列と、前記コード変換部によってコード変換されたデータ列を入力として論理演算を行ない、その結果を出力する論理演算部とを有することを特徴とする画像処理装置。
【請求項２】
前記コード変換部をルックアップテーブルで構成したことを特徴とする請求項１記載の画像形成装置。
【請求項３】
前記ルックアップテーブルを前記データ列をアドレスとして用いて参照するように構成したことを特徴とする請求項２記載の画像処理装置。
【請求項４】
前記コード変換部を複数有し、各コード変換部はそれぞれ異なる変換特性を有することを特徴とする請求項１記載の画像処理装置。
【請求項５】
前記論理演算部は前記データ列を構成する複数の２値画像データに対して一括して論理演算を実行し、画像処理済の複数の２値画像データを出力することを特徴とする請求項１記載の画像処理装置。
【請求項６】
前記コード変換および前記論理演算をプロセッサによって実行することを特徴とする請求項１記載の画像処理装置。
【請求項７】
前記コード変換部および前記論理演算部を論理回路によって構成したことを特徴とする請求項１記載の画像処理装置。
【請求項８】
２値画像データから複数のデータ列を抽出し、このデータ列に所定のコード変換を施し、
コード変換を行なう前の前記データ列と、前記コード変換されたデータ列を入力として論理演算を行ない、その結果を出力することを特徴とする画像処理方法。
【請求項９】
２値画像データから複数のデータ列を抽出し、
抽出された各データ列に対して所定の第１のコード変換を施し、
抽出されたデータ列の少なくとも一つに第１のコード変換とは異なる所定の第２のコード変換を施し、
前記第１のコード変換を施されたデータ列と前記第２のコード変換を施されたデータ列と、コード変換を受ける前のデータ列を用いて論理演算を行ない、
その結果を出力することを特徴とする画像処理方法。
【請求項１０】
前記所定のコード変換をルックアップテーブルによって行なうことを特徴とする請求項８または請求項９記載の画像処理方法。
【請求項１１】
前記第１のコード変換によって、前記データ列にＯＮ／ＯＦＦいずれのビットが支配的かを示す特徴量を抽出することを特徴とする請求項９記載の画像処理方法。
【請求項１２】
前記第２のコード変換によって、前記コード変換を受ける前のデータ列に対してＯＮ／ＯＦＦ状態の反転が可能か否かを示す特徴量を抽出することを特徴とする請求項９記載の画像処理方法。
【請求項１３】
請求項１〜請求項７いずれか１項記載の画像処理装置を具備することを特徴とする電子黒板。
【請求項１４】
請求項８〜請求項１２いずれか１項記載の画像処理方法を実行することを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データに対するノイズ除去、特に２値化された画像データから効率的にノイズを除去する画像処理技術、すなわち、画像処理装置、画像処理方法、および画像処理プログラムに関する。
【背景技術】
【０００２】
従来の画像処理技術、特に２値化された画像データに対してノイズ除去を行なう技術として、例えば（特許文献１）、（特許文献２）に開示される技術が知られている。
【０００３】
（特許文献１）には、画像データ内の黒画素の１つを着目点とし、着目点の近傍領域内の黒画素数と、水平方向及び垂直方向の直線判定領域内の黒画素数とをカウントし、近傍領域内の黒画素数が閾値以上でなく、かつ水平方向及び垂直方向の直線判定領域内の黒画素数が共に閾値以上でないときは、着目点の黒画素をノイズと判断して、黒画素を消去して白画素に変更する技術が開示されている。
【０００４】
また（特許文献２）には、縦または横ノイズの入った２値画像の縦または横ノイズ除去方法が開示されている。この方法は、縦または横ノイズと普通の文字とを、行または列に沿って黒画素の数を数えることにより判別してから、複数の画素に対してパターンマッチングを行なって、１画素ずつノイズの部分を除去する方法である。
【０００５】
これらの技術は、いずれもパターンマッチングを応用したものであり、端的に表現すると所定の領域に存する画素、例えば３画素×３列の２値画像データを参照し、中央画素（２列目の中央のデータ）が周囲から孤立して存在していれば除去する技術であると言える（以降、このタイプの孤立点除去技術を「従来の技術１」と呼称する）。
【０００６】
またパターンマッチング技術をノイズ除去に応用した他の例として、例えば８画素×３列の２値画像データを、予め作成しておいたルックアップテーブルを参照して孤立点を除去し、８画素（８個の２値画像データ。即ち１列分のデータ）を一括して出力するような、処理方法も考えられる（以降、このタイプの孤立点除去技術を「従来の技術２」と呼称する）。
【特許文献１】特開２００５−１９６２８２号公報
【特許文献２】特開平８−２７２９５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
（特許文献１）においては１画素ノイズ（孤立点）、そして文字判定処理するために、同じ画素に対して合計３回の参照を行なっている。また（特許文献２）では画像ノイズ除去、文字判定処理するために、水平方向と垂直方向の合計２回、画面をスキャニングする処理を必要とする。基本的に、両者はともに画像ノイズの除去をパターンマッチングによって行なっており、所定の画素領域（例えば３画素×３列）を参照して、その中央が画像ノイズか否かを判定するように構成されている。このように、従来の技術１の構成をとった場合、例えば３×３画素（９個の２値画像データ）を入力とし、１画素（１個の２値画像データ）を出力とすることから、処理回数は必然的に多くなり、画像ノイズの除去に比較的長時間を必要とする。即ち高速性に課題がある。
【０００８】
一方、従来の技術２のように、８画素×３列（８個×３の２値画像データ）、あるいは１６画素×３列（１６個×３の２値画像データ）等を入力とし、８画素あるいは１６画素（８個、または１６個）等を出力とする場合、参照されるルックアップテーブルは、２４ビット入力−８ビット出力、４８ビット入力−１６ビット出力等のフォーマットを持つルックアップテーブルとなる。
【０００９】
ルックアップテーブルの参照は１回で済むため、処理そのものは極めて高速に実行することが可能となるが、ルックアップテーブルの容量はそれぞれ１６Ｍバイト、２８１ＰＢｙｔｅ（１Ｐバイト＝１０００Ｔバイト）等、非常に大容量となり、メモリ空間のデータ領域が高々数Ｇバイト程度である、組み込みシステム上に実装するには大変困難なものとなる。
【００１０】
そこで本発明では、処理時間の高速化を実現すると同時に、参照するルックアップテーブルの容量を、組み込みシステム上に実装可能な容量に抑えると、即ち組み込みシステムとして容易に孤立点除去を実現可能な画像処理装置、画像処理方法、および画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の画像処理装置は上記課題に鑑みてなされたもので、２値画像データから複数のデータ列を抽出し、このデータ列に所定のコード変換を施すコード変換部と、コード変換を行なう前のデータ列と、コード変換部によってコード変換されたデータ列を入力として論理演算を行ない、その結果を出力する論理演算部とを有するものである。
【発明の効果】
【００１２】
本発明の画像処理装置によれば、データ列に対するコード変換部と論理演算部といった小規模なハードウェア資源によって、高速に画像ノイズである孤立点を除去することができる。これによって組み込みシステムといったハードウェア資源に制約を有する機器であっても、低コストで孤立点除去処理を行なうことが可能となる。
【発明を実施するための最良の形態】
【００１３】
本発明の画像処理装置は、２値画像データから複数のデータ列を抽出し、このデータ列に所定のコード変換を施すコード変換部と、コード変換を行なう前のデータ列と、コード変換部によってコード変換されたデータ列を入力として論理演算を行ない、その結果を出力する論理演算部とを有するものである。これによってデータ列に対するコード変換部と論理演算部といった小規模なハードウェア資源によって、高速に画像ノイズである孤立点を除去することが可能となる。
【００１４】
また本発明は、コード変換部をルックアップテーブルで構成したものである。これによって非常に簡易な構成で、画像ノイズである孤立点の除去を行なうことが可能となる。
【００１５】
また本発明は、ルックアップテーブルをデータ列をアドレスとして用いて参照するように構成したものである。これによって２値画像の分布状態に関する特徴量を簡易に抽出することが可能となる。
【００１６】
また本発明は、コード変換部を複数有し、各コード変換部はそれぞれ異なる変換特性を有するようにしたものである。これによって簡易な構成で、データ列が有する複数の特徴量を抽出することが可能となる。
【００１７】
また本発明は、論理演算部はデータ列を構成する複数の２値画像データに対して一括して論理演算を実行し、画像処理済の複数の２値画像データを出力するようにしたものである。これによって一回の論理演算によって複数の２値画像データに対する孤立点除去処理が可能となる。
【００１８】
また本発明は、コード変換および論理演算をプロセッサによって実行するようにしたものである。これによってハードウェア構成を極めて簡易にすることが可能となる。
【００１９】
また本発明は、コード変換部および論理演算部を論理回路によって構成したものである。これによって比較的小規模なハードウェア資源によって極めて高速に孤立点除去処理を行なうことが可能となる。
【００２０】
本発明の画像処理方法は、２値画像データから複数のデータ列を抽出し、このデータ列に所定のコード変換を施し、コード変換を行なう前のデータ列と、コード変換されたデータ列を入力として論理演算を行ない、その結果を出力するものである。これによってデータ列に対するコード変換部と論理演算部といった小規模なハードウェア資源によって、高速に画像ノイズである孤立点を除去することが可能となる。
【００２１】
また本発明は、２値画像データから複数のデータ列を抽出し、抽出された各データ列に対して所定の第１のコード変換を施し、抽出されたデータ列の少なくとも一つに第１のコード変換とは異なる所定の第２のコード変換を施し、第１のコード変換を施されたデータ列と第２のコード変換を施されたデータ列と、コード変換を受ける前のデータ列を用いて論理演算を行ない、その結果を出力するようにしたものである。これによってデータ列に対するコード変換と論理演算といった簡易な手順によって、高速に画像ノイズである孤立点を除去することが可能となる。
【００２２】
また本発明は、各コード変換をルックアップテーブルによって行なうようにしたものである。これによって高速にコード変換処理を行なうことが可能となる。
【００２３】
また本発明は、第１のコード変換によって、データ列にＯＮ／ＯＦＦいずれのビットが支配的かを示す特徴量を抽出するようにしたものである。これによって孤立点除去を行なうにあたって、ＯＮをＯＦＦに反転するのか、ＯＦＦをＯＮに反転するのかを的確に判断することが可能となる。
【００２４】
また本発明は、第２のコード変換によって、コード変換を受ける前のデータ列に対してＯＮ／ＯＦＦ状態の反転が可能か否かを示す特徴量を抽出するようにしたものである。これによって孤立点除去の実行可否を的確に判断することが可能となる。
【００２５】
また本発明は、上述した画像処理装置を具備する電子黒板である。これによって電子黒板の筆記面が汚れたような場合であっても、画像ノイズである孤立点を除去した画像を印刷することが可能となる。
【００２６】
また本発明は、上述した画像処理方法を実行する画像処理プログラムである。これによって、例えば画像読み取り装置で読み取った画像データをパーソナルコンピュータで処理して画像ノイズである孤立点を除去することが可能となる。
【００２７】
（実施の形態１）
図１は本発明の実施の形態１に係る画像処理装置１の全体構成を示すブロック構成図である。
【００２８】
以降、図１を用いて、画像処理装置１の全体構成について説明する。
【００２９】
図１において、１０１はイメージセンサであり、実施の形態１ではＣＩＳ（Ｃｏｎｔａｃｔ  Ｉｍａｇｅ  Ｓｅｎｓｏｒ）を採用している。イメージセンサ１０１は列状に配置された複数の微小な受光素子を有しており（以降、受光素子の配列方向を“主走査方向”、主走査方向と直交する方向を“副走査方向”と呼称する）、図示しない照明用光源によって照射された原稿からの反射光の強弱を電気信号に変換する。１０２はアナログ処理部であり、イメージセンサ１０１から出力された電気信号を増幅した後にＡ／Ｄ変換を行い、多値のデジタル画像信号に変換する。
【００３０】
１０３はシェーディング補正部である。シェーディング補正部１０３では、イメージセンサ１０１で例えば白基準板等を走査して基準とすべき白信号を得、これとは別に例えば図示しない照明用光源を消灯した際に得られた黒信号とを、例えば電源投入直後の画像処理装置１の使用前に取得しておき、図示しない原稿を読み取る際にその数値を使って、多値デジタル画像信号の正規化を行なう。
【００３１】
１０７はγ補正部である。γ補正部１０７はシェーディング後の多値デジタル画像信号に対してγ補正を施す。γ値とは画像の明るさの変化に対する電圧換算値の変化の比である。γ＝１が望ましいが、一般には１．５程度の値とする。γ値は機器に依存するものである。
【００３２】
１０８は２値化部である。２値化部１０８は、所定のスライスレベルに基づいて多値デジタル画像信号を２値化する。２値化部１０８では多値デジタル画像信号と所定のスライスレベルを比較し、デジタル画像信号がスライスレベル以上の数値である場合は白（＝０。以降ＯＦＦと呼称した場合は、この状態を指す）、スライスレベル未満の数値である場合は黒（＝１。以降ＯＮと呼称した場合は、この状態を指す）とする。
【００３３】
１０９は孤立点除去部である。上述のように所定のスライスレベルとの比較によって、単純２値化を行なった場合、多値デジタル画像信号がスライスレベル近辺を推移する場合に、画像ノイズ（特に孤立ドットが砂状に分布するノイズ）を生じ易い。孤立点除去部１０９はこのような画像ノイズを除去する部分であり、黒と白の両方の孤立点を除去するものである。
【００３４】
孤立点除去部１０９で画像ノイズである孤立点を取り除いた後、画像処理装置１はインタフェース１１０を介して外部機器１１１に２値画像データを出力する。インタフェース１１０としては、例えばシリアルインタフェース（ＲＳ−２３２Ｃ、ＵＳＢポート）、パラレルインタフェース（セントロニクス）などが知られているが、本発明ではいずれを採用してもよい。また汎用性のない独自のインタフェースであってもよい。
【００３５】
１０４はＣＰＵ、１０５はＲＯＭ、１０６はＲＡＭであり、ＣＰＵ１０４はＲＯＭ１０５に格納されたプログラムに従って、上述の様々な画像処理の実行シーケンスを管理する。またＲＡＭ１０６は、ＣＰＵ１０４のワーク領域として用いられるとともに、後述するように、孤立点除去部１０９の処理で用いるルックアップテーブルなどが格納されている。
【００３６】
１１２は、孤立点除去部１０９の内部に設けられ、ＣＰＵ１０４によって構成されたプロセッサである。プロセッサ１１２は孤立点除去部１０９の内部に構成された、図示しない記憶手段に格納されたプログラムによって動作する。
【００３７】
実施の形態１では、プロセッサ１１２によって孤立点除去の処理を実行するように構成しているが、プロセッサ１１２はＣＰＵ１０４である必然性はなく、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ゲートアレイ、ロジックセルアレイなど論理演算の実行が可能なものの使用が可能であり、システムの規模や求められる性能などに応じて適宜選択すればよい。
【００３８】
以降、詳細に説明するように、本発明に係る画像処理装置１は、２値画像データから複数のデータ列を抽出し（孤立点除去部１０９に具備されるプロセッサ１１２が実行する。後述する）、このデータ列に所定のコード変換を施すコード変換部（孤立点除去部１０９に具備されるプロセッサ１１２）と、コード変換を行なう前のデータ列と、コード変換部によってコード変換されたデータ列を入力として論理演算を行ない、その結果を出力する論理演算部（孤立点除去部１０９に具備されたプロセッサ１１２）とを有している。
【００３９】
また、本発明に係る画像処理方法は、２値画像データから複数のデータ列を抽出し（プロセッサ１１２が実行）、このデータ列に所定のコード変換を施し（プロセッサ１１２が実行）、コード変換を行なう前のデータ列と、コード変換されたデータ列を入力として論理演算を行ない（プロセッサ１１２が実行）、その結果を出力する。
【００４０】
また、本発明に係る画像処理方法は、２値画像データから複数のデータ列を抽出し（プロセッサ１１２が実行）、抽出された各データ列に対して所定の第１のコード変換処理を行い（プロセッサ１１２が実行）、抽出されたデータ列の少なくとも一つに第１のコード変換処理とは異なる所定の第２のコード変換処理を行い（プロセッサ１１２が実行）、第１のコード変換を施されたデータ列と第２のコード変換処理を施されたデータ列と、コード変換を受ける前のデータ列を用いて論理演算を行ない（プロセッサ１１２が実行）、その結果を出力する。
【００４１】
図２は本発明の実施の形態１の画像処理装置におけるＲＡＭに設けられたルックアップテーブルと、孤立点除去部で取り扱うデータ列との関係を示す説明図である。
【００４２】
以降、図２に図１を併用して、孤立点除去部１０９における処理（より厳密には、孤立点処理部１０９に設けられたプロセッサ１１２による処理）について説明する。
【００４３】
図２に示すように、実施の形態１の画像処理装置１は、ＲＡＭ１０６にコード変換を行なうためのルックアップテーブル２０１（以降、テーブル２０１と呼称する）と、ルックアップテーブル２０２（以降、テーブル２０２と呼称する）の領域を有している。テーブル２０１とテーブル２０２には、それぞれ異なる変換特性（後に詳細に説明する）が格納されており、実施の形態１ではテーブル２０１とテーブル２０２、および論理式Ｇ２１３（後に詳細に説明する）を使用して画像ノイズとしての孤立点の除去を行なう。即ち実施の形態１の画像処理装置１は、コード変換部を複数有し、各コード変換部はそれぞれ異なる変換特性を有している。
【００４４】
２０３は画像入力ワークエリアであり、２値化部１０８（図１参照）で２値化された２値画像データは、図示しないＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラ等のデータ転送手段によって、画像入力ワークエリア２０３に格納される。２０４は画像出力ワークエリアであり、孤立点除去部１０９において孤立点が除去された２値画像データは、一旦ＲＡＭ１０６に設けられた画像出力ワークエリア２０４に格納され、その後インタフェース１１０（ともに図１参照）を介して外部機器１１１に出力される。
【００４５】
なお、実施の形態１では孤立点除去部１０９からＲＡＭ１０６を経由して、インタフェース１１０に孤立点除去を行なった２値画像データを出力するようにしているが、ＲＡＭ１０６を孤立点除去部１０９の内部に設け、孤立点除去部１０９から直接インタフェース１１０に処理済の２値画像データを渡すように構成してもよい。
【００４６】
さて、画像処理装置１に電源が投入されると、ＣＰＵ１０４は予めＲＯＭ１０５に格納されているテーブル２０１とテーブル２０２をＲＡＭ１０６の所定の領域にコピーする。そして画像処理装置１の起動後、既に説明したように図示しないイメージセンサ１０１で走査され、様々な画像処理を施され、２値化部１０８で２値化された画像データは画像入力ワークエリア２０３に蓄積される。画像入力ワークエリア２０３には処理の都合上、少なくとも３ライン分の２値画像データが蓄積される。この３ラインは、イメージセンサ１０１で読み取られた副走査方向に隣接するラインであり、便宜上「前ライン」、「現ライン」（孤立点除去の対象となるライン）、「次ライン」のように呼称する。孤立点除去部１０９に設けられたプロセッサ１１２は、これらのラインから孤立点除去の対象となる、主走査方向に連続した８画素（８ビット）を抽出する。
【００４７】
以降の説明において、「前ライン」に含まれる連続した８画素を前データ列２０５、「現ライン」に含まれる連続した８画素を現データ列Ｘ２０６、「次ライン」に含まれる連続した８画素を次データ列２０７と定義する。なお、前データ列２０５、現データ列Ｘ２０６、次データ列２０７の主走査方向の位置は、いずれも等しく設定されている（後に説明する図３を参照）。
【００４８】
プロセッサ１１２は、このように所定のデータ列を画像入力ワークエリア２０３から抽出し、まず前データ列２０５の内容（即ち８ビットデータ）をアドレスとしてテーブル２０１をアクセスする（厳密には、所定のオフセットアドレスに前データ列２０５の内容を加算して、テーブル２０１にアクセスする）。テーブル２０１のアクセスによってデータ列にはコード変換が図られるが、このように実施の形態１ではルックアップテーブルを、データ列をアドレスとして用いて参照するように構成している。
【００４９】
その結果テーブル２０１の当該アドレスに格納されている要素の値が図２に示すデータ列Ｆ２’（２０８）として取り出される。同様にしてテーブル２０１によって、現データ列Ｘ２０６はデータ列Ｆ１（２０９）に、次データ列２０７はデータ列Ｆ３’（２１０）にそれぞれ変換される。
【００５０】
またプロセッサ１１２は、上述のテーブル２０１による変換に用いた前データ列２０５の内容（即ち８ビットデータ）をアドレスとしてテーブル２０２をアクセスする。その結果テーブル２０２の当該アドレスに格納されている要素の値が、図２に示すデータ列Ｆ２（２１１）として取り出される。同様にして、テーブル２０２によって、次データ列２０７はデータ列Ｆ３（２１２）に変換される。
【００５１】
プロセッサ１１２による以上の処理によって、
テーブル２０１によって変換された前データ列Ｆ２’（２０８）
テーブル２０１によって変換された現データ列Ｆ１（２０９）
テーブル２０１によって変換された次データ列Ｆ３’（２１０）
テーブル２０２によって変換された前データ列Ｆ２（２１１）
テーブル２０２によって変換された次データ列Ｆ３（２１２）
が得られる。これら変換後の各データ列は全て８ビット構成である。
【００５２】
実施の形態１では、これら５つのデータ列および現データ列Ｘ２０６（同じく８ビット構成）を所定の論理式Ｇ２１３に入力し、所定の論理演算を行なうことで、８ビットの孤立点除去されたデータ列Ｚ２１４を一括して生成するものである。画像ノイズである孤立点を除去されたデータ列Ｚ２１４は、図示しないＤＭＡ等の転送手段によって画像出力ワークエリア２０４に転送され、インタフェース１１０を介して外部機器１１１に送出される（共に図１参照）。
【００５３】
なお、テーブル２０１およびテーブル２０２の内容（コード変換の変換規則）、論理式Ｇ２１３については、後に詳細に説明する。
【００５４】
図３は本発明の実施の形態１の画像処理装置における孤立点除去処理を模式的に示した説明図である。
【００５５】
以降、図３に図１と図２を併用して、孤立点除去処理について更に説明を続ける。
【００５６】
なお、以降の説明おいては、処理を行なう主体を特に明示しないが、図２を用いて既に説明したプロセッサ１１２が、その機能を担っている。
【００５７】
図３において、５０１は入力画像データを示す。入力画像データ５０１は図１で説明した２値化部１０８において２値化された画像である。５０３は出力画像データであり、画像ノイズである孤立点が除去された状態の画像を示している。入力画像データ５０１、出力画像データ５０３において太線で囲んだ部分は、例えば８画素×３列の処理領域５０４であり、少なくとも処理領域５０４に含まれる２値画像データが孤立点除去部１０９に渡される。処理領域５０４の２値画像データは、既に説明した画像入力ワークエリア２０３（図２参照）に蓄積される。
【００５８】
図示するように入力された２値画像データは前データ列２０５、現データ列Ｘ２０６、次データ列２０７に分離（抽出）される。既に述べたように、実施の形態１ではこれらのデータ列は８画素、即ち８ビットのデータ列を構成している。
【００５９】
前データ列２０５、現データ列Ｘ２０６、次データ列２０７がテーブル２０１、テーブル２０２によって所定の規則に基づいて変換されることは既に述べたので、ここでの説明は省力する。
【００６０】
テーブル２０１、テーブル２０２によって変換された５つのデータ列（２０８，２０９，２１０，２１１，２１２）および現データ列Ｘ２０６は、所定の論理式Ｇ２１３の入力とされ、論理式Ｇ２１３による演算の結果、孤立点除去された８ビットのデータ列Ｚ２１４が生成される。図３においては、入力画像データ５０１と出力画像データ５０３を対比すれば分かるように、位置Ｐとして示す画素が孤立点として除去されている。
【００６１】
このように、実施の形態１の画像処理装置１は２４ビットの２値画像データを入力し、孤立点除去を行なった８ビットの画像（データ列Ｚ２１４）を一括して出力する。このデータ列Ｚ２１４は、一旦、画像出力ワークエリア２０４（図２参照）に蓄積され、所定の容量に達した段階で、図示しないＤＭＡなどを用いたデータ転送手段によってインタフェース１１０を経由して外部機器１１１に出力される（図１参照）。
【００６２】
以降、実施の形態１の孤立点除去の過程において、重要な役割を果たすルックアップテーブルであるテーブル２０１、テーブル２０２について、特に各テーブルの要素の作成手順、およびこれらのテーブルの変換規則について詳細に説明する。
【００６３】
図４は本発明の実施の形態１におけるテーブルの各要素の作成手順を説明する説明図である。
【００６４】
以降、図４を用いてテーブル２０１の各要素のＭＳＢ（第７ビット目：図４における「Ａ」の位置のビット）の値を決定する過程を説明する。
【００６５】
テーブル２０１は２５６バイトの要素から構成されている。８個の２値画像データで構成されたデータ列（８ビット）のＯＮ／ＯＦＦの状態を数値として取り扱い、この数値をアドレスとしてテーブル２０１をアクセスすることで、テーブルの各アドレスに格納された要素、即ちコード変換後の値を取り出すことができる。
【００６６】
以降の説明では簡単のため、例としてテーブル２０１の相対アドレス＝０ｘ６Ｆ［０１１０１１１１（Ｂ：二進数を示す。以下同じ）］に格納する値を決定する過程について説明する。
【００６７】
まず変数７０１にアドレスと同じ値を格納する。即ち変数７０１の初期値は［０１１０１１１１（Ｂ）］である。
【００６８】
次に変数７０１の上位２ビット（Ａ，Ｂ）を抽出し、これを真理値表（表１）に入力する。
【００６９】
【表１】
2008015858.tif 000003
【００７０】
変数７０１は［０１１０１１１１（Ｂ）］であるから、その上位２ビットである入力（Ａ，Ｂ）＝（０，１）であり、出力Ｆ＝０になる。
【００７１】
そして出力Ｆの値を当該要素７０２のＭＳＢ（第７ビット）とする。
図５は本発明の実施の形態１におけるテーブルの各要素の作成過程を説明する説明図である。
【００７２】
以降、図５を用いてテーブル２０１の各要素の第６ビット目から第１ビット目までの値を決定する過程を説明する。
【００７３】
変数７０１には、当該要素７０２のＭＳＢを決定した場合と同様に、アドレスと同じ値を格納する。即ち変数７０１の初期値は［０１１０１１１１（Ｂ）］である。
【００７４】
まず図５に示すように、変数７０１のＭＳＢから３つ目までのビット（Ａ，Ｂ，Ｃ）を抽出し、これを真理値表（表２）に入力する。
【００７５】
【表２】
2008015858.tif 000004
【００７６】
変数７０１は［０１１０１１１１（Ｂ）］であるから、抽出されたビット（Ａ，Ｂ，Ｃ）＝（０，１，１）であり、真理値表（表２）の出力Ｆ＝１となる。そして、この出力Ｆの値を当該要素７０２の第６ビット目の値とする。
【００７７】
次に、抽出する３つのビット位置を右に１つシフトして、（Ｂ，Ｃ，Ｄ）＝（１，１，０）を取り出し、上述したのと同様に真理値表（表２）を参照することでＦ＝１が定まる。そしてこれを当該要素７０２の第５ビット目の値とする。
【００７８】
更にこの操作を３つのビット位置が（Ｆ，Ｇ，Ｈ）となるまで繰り返し、当該要素７０２の第１ビット目までの値を決定する。
【００７９】
図６は本発明の実施の形態１におけるテーブルの各要素の作成過程を説明する説明図である。
【００８０】
以降、図６を用いてテーブル２０１の各要素のＬＳＢ（第０ビット目）の値を決定する過程を説明する。
【００８１】
変数７０１には、当該要素７０２のＭＳＢを決定した場合と同様に、アドレスと同じ値を格納する。即ち変数７０１の初期値は［０１１０１１１１（Ｂ）］である。
【００８２】
次に変数７０１の下位２ビット（Ｇ，Ｈ）を抽出し、これを真理値表（表３）に入力する。
【００８３】
【表３】
2008015858.tif 000005
【００８４】
変数７０１は［０１１０１１１１（Ｂ）］であるから、その下位２ビットである入力（Ｇ，Ｈ）＝（１，１）であり、出力Ｆ＝１になる。
【００８５】
そして出力Ｆの値を当該要素７０２のＬＳＢ（第０ビット目）とする。
【００８６】
なお、以上の記載においては、簡単のため、変数７０１の初期値を［０１１０１１１１（Ｂ）］として説明したが、テーブル２０１は２５６バイトの容量を有するルックアップテーブルであり、実際は個々のアドレス０ｘ００［００００００００（Ｂ）］〜０ｘＦＦ［１１１１１１１１（Ｂ）］に要素（コード変換後の値）が格納されている。実施の形態１では変数７０１の初期値を０ｘ００〜０ｘＦＦとし、上述した処理手順に基づいて、テーブル２０１の各アドレスに対応した当該要素７０２の値を決定している。
【００８７】
さて、真理値表（表２）に基づく処理は抽出した３つのビット（即ち２値画素データ）のうち、２つ以上がＯＮである場合に出力Ｆ＝１とし、２つ以上がＯＦＦである場合に出力Ｆ＝０とするものである。即ち抽出した３つのビットの中でＯＮ／ＯＦＦのいずれが支配的なのかを示す。
【００８８】
また、真理値表（表１）および真理値表（表３）による処理は、変数７０１として入力された値のＭＳＢ、ＬＳＵによって直接的にテーブル２０１の各要素のＭＳＢ、ＬＳＢを決定するものである。ＭＳＢとＬＳＢについては、注目するビットに対して左右一方しか参照することができず多数決で決定することはできない。よって実施の形態１では変数７０１のＭＳＢ、ＬＳＢの値に倣うこととしている。
【００８９】
以上、説明した処理によって生成された要素を有するルックアップテーブルにアクセスすることで、８個の２値画素データから構成されるデータ列はＯＮ／ＯＦＦのいずれが支配的なのかを示すデータ列に変換される。このテーブル２０１によるコード変換は、結果的に８個の２値画像データから構成されるデータ列に含まれる個々の２値画像データの周辺状態を参照しており、データ列を構成する画素のＯＮ／ＯＦＦの分布に起因する特徴量を抽出していることに他ならない。
【００９０】
このように実施の形態１では、テーブル２０１を用いた第１のコード変換によって、データ列にＯＮ／ＯＦＦいずれのビットが支配的かを示す特徴量を抽出し、これによって孤立点除去を行なうにあたって、注目するビットのＯＮをＯＦＦに反転するのか、あるいはＯＦＦをＯＮに反転するのかを的確に判断することができる。
【００９１】
なお、このようにして生成されたテーブル２０１は、予めＲＯＭ１０５（図１参照）に格納されており、画像処理を実行する際にＲＡＭ１０６（図１、図２参照）の所定領域にコピーされる。
【００９２】
図７は本発明の実施の形態１におけるテーブルの各要素の作成過程を説明する説明図である。
【００９３】
以降、図７を用いてテーブル２０２の各要素のＭＳＢの値を決定する過程を説明する。
テーブル２０２は２５６バイトの要素から構成されている。既に説明したテーブル２０１の作成過程の場合と同様に、８個の２値画像データで構成された画素列（８ビット）のＯＮ／ＯＦＦの状態を数値として取り扱い、この数値をアドレスとしてテーブル２０２をアクセスすることで、テーブルの各アドレスに格納された要素、即ちコード変換後の値を取り出すことができる。
【００９４】
以降の説明では簡単のため、例としてテーブル２０２のアドレス＝０ｘ６Ｆ［０１１０１１１１（Ｂ）］に格納する値を決定する過程について説明する。
【００９５】
まず変数７０１にアドレスと同じ値を格納する。即ち変数７０１の初期値は［０１１０１１１１（Ｂ）］である。
【００９６】
次に変数７０１の上位２ビット（Ａ，Ｂ）を抽出し、これを真理値表（表４）に入力する。
【００９７】
【表４】
2008015858.tif 000006
【００９８】
変数７０１は［０１１０１１１１（Ｂ）］であるから、その上位２ビットである入力（Ａ，Ｂ）＝（０，１）であり、出力Ｆ＝１になる。
【００９９】
そして出力Ｆの値を当該要素７０２のＭＳＢとする。
【０１００】
真理値表（表４）の処理は基本的には変数７０１に格納された値の上位２ビット（Ａ，Ｂ）のＸＯＲ（排他的論理輪）を取って、これを出力Ｆとするものである。
【０１０１】
図８は本発明の実施の形態１におけるテーブルの各要素の作成過程を説明する説明図である。
【０１０２】
以降、図８を用いてテーブル２０２の各要素の第６ビット目から第１ビット目までの値を決定する過程を説明する。
【０１０３】
変数７０１には、当該要素７０２のＭＳＢを決定した場合と同様に、アドレスと同じ値を格納する。即ち変数７０１の初期値は［０１１０１１１１（Ｂ）］である。
【０１０４】
まず図８に示すように、変数７０１のＭＳＢから３つ目までのビット（Ａ，Ｂ，Ｃ）を抽出し、これを真理値表（表５）に入力する。
【０１０５】
【表５】
2008015858.tif 000007
【０１０６】
変数７０１は［０１１０１１１１（Ｂ）］であるから、抽出されたビット（Ａ，Ｂ，Ｃ）＝（０，１，１）であり、真理値表（表５）の出力Ｆ＝１となる。そして、この出力Ｆの値を当該要素７０２の第６ビット目の値とする。
【０１０７】
次に、抽出する３つのビット位置を右に１つシフトして、（Ｂ，Ｃ，Ｄ）＝（１，１，０）を取り出し、上述したのと同様に真理値表（表５）を参照することでＦ＝１が定まる。そしてこれを当該要素７０２の第５ビット目の値とする。
【０１０８】
更にこの操作を３つのビット位置が（Ｆ，Ｇ，Ｈ）となるまで繰り返し、当該要素７０２の第１ビット目までの値を決定する。
【０１０９】
図９は本発明の実施の形態１におけるテーブルの各要素の作成過程を説明する説明図である。
【０１１０】
以降、図１２を用いてテーブル２０２の各要素のＬＳＢ（第０ビット目）の値を決定する過程を説明する。
【０１１１】
変数７０１には、当該要素７０２のＭＳＢを決定した場合と同様に、アドレスと同じ値を格納する。即ち変数７０１の値は［０１１０１１１１（Ｂ）］である。
【０１１２】
次に変数７０１の下位２ビット（Ｇ，Ｈ）を抽出し、これを真理値表（表６）に入力する。
【０１１３】
【表６】
2008015858.tif 000008
【０１１４】
変数７０１は［０１１０１１１１（Ｂ）］であるから、その下位２ビットである入力（Ｇ，Ｈ）＝（１，１）であり、出力Ｆ＝０になる。
【０１１５】
そして出力Ｆの値を当該要素７０２のＬＳＢ（第０ビット目）とする。
【０１１６】
なお、以上の記載においては、簡単のため、変数７０１の初期値を［０１１０１１１１（Ｂ）］として説明したが、テーブル２０２は２５６バイトの容量を有するルックアップテーブルであり、実際は個々のアドレス０ｘ００［００００００００（Ｂ）］〜０ｘＦＦ［１１１１１１１１（Ｂ）］に要素（コード変換後の値）が格納されている。実施の形態１では変数７０１の初期値を０ｘ００〜０ｘＦＦとし、上述した処理手順に基づいて、テーブル２０２の各アドレスに対応した当該要素７０２の値を決定している。
【０１１７】
さて、真理値表（表５）に基づく処理は抽出した３つのビット（即ち２値画像データ）のうち、中央のビット（例えばＢ位置）に注目し、これと隣接するビット（例えばＡ位置とＣ位置）のいずれか一方が注目ビットの値と異なれば、出力をＯＮにするものである。また真理値表（表４）および真理値表（表６）による処理も注目するビットと隣接するビットの値が異なっていれば、その出力をＯＮとするものである。これを言い換えると、全てのビットの状態（ＯＮかＯＦＦか）が同じであれば、その出力はＯＦＦとなる。
【０１１８】
このテーブル２０２によるコード変換は、結果的に８個の２値画像データから構成されるデータ列に含まれる個々の２値画像データの周辺状態を参照しており、データ列を構成する画素のＯＮ／ＯＦＦの分布に起因する、「テーブル２０１による変換とは異なる特徴量」を抽出していることに他ならない。
【０１１９】
このように実施の形態１では、テーブル２０１を用いた第２のコード変換によって、コード変換を受ける前のデータ列に対してＯＮ／ＯＦＦ状態の反転が可能か否かを示す特徴量を抽出するようにしている。
【０１２０】
以上説明した処理によって生成された要素を有するルックアップテーブル（テーブル２０２）にアクセスすることで、８個の２値画素データから構成されるデータ列は孤立点の存在可能性を示すデータ列に変換される、ということができる。
【０１２１】
なおこのようにして生成されたテーブル２は、予めＲＯＭ１０５（図１参照）に格納されており、画像処理を実行する際にＲＡＭ１０６（図１、図２参照）の所定領域にコピーされる。
【０１２２】
以降、図２、図３を併用して説明を続ける。
【０１２３】
さて、テーブル２０２を用いた変換処理は、図２、図３を用いて説明したように現データ列Ｘ２０６を副走査方向に挟む、前データ列２０５と次データ列２０７に対して行なわれる。既に説明したテーブル２０２によって変換された前データ列Ｆ２（２１１）およびテーブル２０２によって変換された次データ列Ｆ３（２１２）の所定位置のビットがＯＦＦとなっている場合、その中間位置にある現データ列Ｘ２０６の対応位置のビットがＯＮであれば、孤立点である可能性が高いと判断することができる。もちろん前データ列２０５と次データ列２０７の対応位置のビットの状態が、互いに逆である場合はその限りではないが、他方のテーブル２０１には「ＯＮ／ＯＦＦのいずれが支配的なのか」という変換規則を持たせているため、これら二つのテーブルによる変換結果を総合的に利用することで正確に孤立点を除去することが可能となる。
【０１２４】
図１０、図１１、図１２、図１３は、それぞれ本発明の実施の形態１におけるテーブルの各要素の作成手順を説明するフローチャートである。
【０１２５】
以降、図１０〜図１３を用いて、テーブル２０１の各要素の作成過程について、更に詳細に説明する。
【０１２６】
なお、実際にテーブル２０１を作成する過程は、図１に示す画像処理装置１の外部で予め行なわれるものであり、結果物であるテーブル２０１は画像処理装置１のＲＯＭ１０５に格納され、例えば画像処理装置１の電源が投入された時点で、ＲＡＭ１０６上にコピーされ、孤立点除去部１０９において参照される。
【０１２７】
図１０のステップ１４０１で、テーブル２０１の入力値、出力値と、テーブル出力値ポインタを初期化する。ステップ１４０２で、テーブル２０１の入力値が２５６でなければ、ステップ１４０３で各値を初期化する。
【０１２８】
次に図１１のステップ１５０１でブロックカウンタがＭＳＢを指す値（取り扱うデータ列が８ビットの場合は７、同１６ビットの場合は１５）の場合は、ステップ１５０２以下の処理を実行し、それ以外の場合は図１２のノード４に処理を移す。
【０１２９】
ステップ１５０２以降の処理は、図４を用いて既に説明した処理内容を更に詳細に示すものである。図４の変数７０１を別の変数Ｔｅｍｐにコピーし、所定のマスク処理を行い（ステップ１５０２）、変数Ｔｅｍｐを所定回数右シフトし（ステップ１５０３）、これを真理値表（表１）の入力として得られた出力（ステップ１５０４）を、ＭＳＢ位置まで左シフトして（ステップ１５０５）、テーブル２０１の当該要素のＭＳＢとして書き込む（ステップ１５０６）。
【０１３０】
ステップ１５０７では、ブロックカウンタ、右シフト値、左シフト値をデクリメントし、マスク値を初期化する。そしてステップ１５０１に戻る。ここではブロックカウンタがＭＳＢを示す値でなくなっているので、図１２のステップ１６０１に処理を移す。
【０１３１】
ステップ１６０１では、ブロックカウンタがＬＳＢを指す値（０）でない場合、ステップ１６０２以下の処理を実行し、ＬＳＢを示す値の場合は図１３のノード７に処理を移す。
【０１３２】
ステップ１６０２以降の処理は、図５を用いて既に説明した処理内容を更に詳細に示すものである。図５の変数７０１を別の変数Ｔｅｍｐにコピーし、所定のマスク処理を行い（ステップ１６０２）、図５に示す抽出された３つのビット位置に応じて所定の回数右シフトを行なう（例えばビット位置がＡ、Ｂ、Ｃの場合は５回）（ステップ１６０３）する。これを真理値表（表２）の入力として得られた出力（ステップ１６０４）を、所定回数左シフトし（ステップ１６０５）、テーブル２０１の当該要素とＯＲを取ることで、処理結果を所定のビットに書き込む（ステップ１６０６）。
【０１３３】
ステップ１６０７では、ブロックカウンタ、右シフト値、左シフト値をデクリメントし、マスク値を更新する。
【０１３４】
そしてステップ１６０１に戻る。上述の処理を図５で説明したビット６からビット１で繰り返し行なった後、図１３に示すステップ１７０１に処理を移す。
【０１３５】
ステップ１７０１ではブロックカウンタがＬＳＢ値をとっているかどうか判定する。ＬＳＢ値であれば、ステップ１７０２に処理を移す。ステップ１７０２以降の処理は、図６を用いて既に説明した処理内容を更に詳細に示すものである。図６の変数７０１を別の変数Ｔｅｍｐにコピーし、所定のマスク処理を行い（ステップ１７０２）、これを真理値表（表３）の入力として得られた出力（ステップ１７０３）を、テーブル２０１の当該要素とＯＲを取ることでＬＳＢとして書き込む（ステップ１７０４）。
【０１３６】
そしてステップ１７０５でブロックカウンタを１デクリメントし、ステップ１７０１に戻る。ここではブロックカウンタはＬＳＢ値でなくなっているので、ステップ１７０６に処理が移る。
【０１３７】
ステップ１７０６では、テーブル２０１の入力値を１インクリメントし、テーブル出力値ポインタをインクリメントする。そして図１０に示すステップ１４０２に戻って、テーブル２０１の次の要素に対して、同様の処理をする。繰り返し回数はテーブル２０１の要素数で決まる。実施の形態１ではテーブル２０１の要素数である２５６回、上述の処理が繰り返される。
【０１３８】
以上、実施の形態１に係るテーブル２０１の作成過程について詳細に説明した。
【０１３９】
テーブル２０２についてはルックアップテーブル作成に使用する真理値表が真理値表（表４）、真理値表（表５）、真理値表（表６）に変わったのみであり、作成手順については、テーブル２０１の場合と全く同じであるので説明を省略する。
【０１４０】
以降、最終的に孤立点が除去されたデータ列Ｚ２１４を、論理演算によって生成する論理式Ｇ２１３（ともに図２参照）について詳細に説明する。
【０１４１】
まず、論理式Ｇ２１３の作成手順について説明する。
【０１４２】
以降、まず図３を用いて説明する。
【０１４３】
既に説明したように真理値表（表１）、真理値表（表２）、真理値表（表３）は、実施の形態１におけるテーブル２０１を作成する過程で使用する真理値表であり、真理値表（表４）、真理値表（表５）、真理値表（表６）は、実施の形態１におけるテーブル２０２を作成する過程で使用する真理値表である。
【０１４４】
以降の説明を容易にするため、ここで再度Ｆ１，Ｆ２’，Ｆ３’，Ｆ２，Ｆ３の値の意味について説明する。
【０１４５】
Ｆ１：現データ列Ｘ２０６において支配的なビット種類（０＝白、１＝黒）
Ｆ２’：前データ列２０５において支配的なビット種類（同上）
Ｆ３’：次データ列２０７において支配的なビット種類（同上）
Ｆ２：前データ列２０５における注目ビットと隣接ビットの同一性
（０：同一（現データ列Ｘ２０６の対応位置のビットは孤立点になりえる））
（１：非同一（現データ列Ｘ２０６の対応位置のビットは孤立点になりえない）
Ｆ３：次データ列２０７における注目ビットと隣接ビットの同一性
（０：同一（現データ列Ｘ２０６の対応位置のビットは孤立点になりえる））
（１：非同一（現データ列Ｘ２０６の対応位置のビットは孤立点になりえない）
このようにＦ１，Ｆ２’，Ｆ３’，Ｆ２，Ｆ３は、各データ列の特徴量というべきものである。
【０１４６】
より平易に表現すれば、Ｆ１，Ｆ２’，Ｆ３’は各データ列に含まれる画素は、ＯＮ／ＯＦＦのいずれが支配的なのかを示し、Ｆ２，Ｆ３は現データ列Ｘ２０６の注目画素が孤立点となりえるか否かを示す。
【０１４７】
即ちテーブル２０１で、各データ列において、ＯＮ／ＯＦＦいずれのビットが支配的なのかをコード変換する。更にテーブル２０２で、現データ列Ｘ２０６の注目画素が孤立点になりえるかどうかをコード変換する（ただし変換されるのは、前データ列２０５と次データ列２０７である）。その上で現データ列Ｘ２０６に存する各ビットの値を参照すれば、当該ビット（画素）の周辺にはＯＮ／ＯＦＦいずれの画素が多くて（テーブル２０１）、孤立点になりえるかどうか（テーブル２０２）が判定できる。
【０１４８】
これらの論理を考慮して真理値表（表７）を作成する。
【０１４９】
【表７】
2008015858.tif 000009
【０１５０】
真理値表（表７）は、実施の形態１においてテーブル２０１による変換結果（Ｆ１，Ｆ２’，Ｆ３’）と、テーブル２０２による変換結果（Ｆ２，Ｆ３）、これに更に現データ列Ｘ２０６の値を入力としたとき、その出力Ｚが「どうあるべきか」を示す真理値表である。なお真理値表（表７）においては、Ｆ１，Ｆ２’，Ｆ３’，Ｆ２，Ｆ３，Ｘは、テーブル２０１またはテーブル２０２で変換された前データ列２０５、現データ列Ｘ２０６、次データ列２０７の夫々における同一位置のビットのＯＮ／ＯＦＦ状態を表している。
【０１５１】
真理値表（表７）の作成は、上述したＦ１，Ｆ２’，Ｆ３’，Ｆ２，Ｆ３が示す概念を理解した上で、これに現データ列Ｘ２０６を構成する各ビットの値を考慮して手作業で行なう。手作業とはいえ、入力は高々６ビットの組み合わせであり、真理値表（表７）に示す６４のケースについて評価すればよい。
【０１５２】
真理値表（表７）に示すように、実施の形態１では次の２つの場合において、現データ列Ｘ２０６のビットの値は反転され（この反転処理が孤立点除去に相当する）、その他のケースでは現データ列Ｘのビットの値はそのまま維持されなければならない。
【０１５３】
ｉ）（表７）におけるケース２（Ｆ１，Ｆ２’，Ｆ３’，Ｆ２，Ｆ３，Ｘ）＝（０，０，０，０，０，１）の場合、現データ列Ｘ＝１（黒）からＺ＝０（白）へ反転ｉｉ）（表７におけるケース５７）
（Ｆ１，Ｆ２’，Ｆ３’，Ｆ２，Ｆ３，Ｘ）＝（１，１，１，０，０，０）の場合、現データ列Ｘ＝０（白）からＺ＝１（黒）へ反転
このようにして作成した真理値表（表７）に基づいて、論理式Ｇ２１３を作成する。
【０１５４】
以降、論理式Ｇ２１３を作成する過程を詳細に説明する。なお、論理式Ｇ２１３は、Ｑｕｉｎｅ−Ｍｃ  Ｃｌｕｓｋｅｙ法を用いて作成する。
【０１５５】
図１４は本発明の実施の形態１におけるＱｕｉｎｅ−Ｍｃ  Ｃｌｕｓｋｅｙ法で用いるＫａｌｎａｕｇｈ図である。
【０１５６】
図１４に示すように、真理値表（表７）で用いた入力Ｆ１，Ｆ２’，Ｆ３’，Ｆ２，Ｆ３，Ｘのビットの状態を８×８＝６４の升目の外枠に配置する。このようにすれば、各升目の位置はＦ１，Ｆ２’，Ｆ３’，Ｆ２，Ｆ３，ＸのＯＮ／ＯＦＦの状態に対して一意に対応する。この対応する升目位置に真理値表（表７）の出力Ｚを記入していく。
【０１５７】
例として（Ｆ１，Ｆ２’，Ｆ３’，Ｆ２，Ｆ３，Ｘ）＝（０，０，０，０，０，０）の場合について説明する。まず、Ｆ１＝０なので図１４の上半分の行が該当する。Ｆ２’＝０なので、図１４の左上半分に限定される。Ｆ３’＝０なので、限定された範囲の、更に左上半分にのみ限定される。Ｆ２＝０なので、一番上の行が該当する。Ｆ３＝０なので、その一番上の行の左２つの範囲になる。Ｘ＝０なので、一番上、一番左の位置が本入力に対応する位置である（図５に示す位置Ｐ１）。ここに真理値表（表７）に従い、出力Ｚ＝０を代入する。
【０１５８】
同様にして真理値表（表７）に示す全ての入力状態に対応する升目位置に、出力Ｚの値を当てはめる。
【０１５９】
この操作によって、図１４に示すようにＺ＝１を示す複数の群が抽出される。この抽出結果に基づいて、論理式Ｇ２１３を構築すればよい。
【０１６０】
以下に論理式Ｇ２１３の構築手順について説明する。なお以下の説明において、演算子「・」は論理積、同「＋」は論理和を示し、「／」は否定（ｎｏｔ）を示す。
【０１６１】
例えば、図１４の下半分のうち、（Ｆ１，Ｘ）＝（１，１）の場合は必ず出力Ｚ＝１である。よって、Ｆ１＝１かつＸ＝１の時に出力Ｚ＝１となるような論理を構成すればよい（（数１）の第６項：「Ｆ１・Ｘ」）。
【０１６２】
【数１】
2008015858.tif 000010
【０１６３】
また、図１４の下半分のうち、一つだけ１が独立して出力Ｚ＝１となる領域がある（位置Ｐ２）。その位置に対応する論理の組み合わせ（Ｆ１，Ｆ２’，Ｆ３‘，Ｆ２，Ｆ３，Ｘ）＝（１，１，１，０，０，０）であるので、Ｆ１＝１かつ、Ｆ２’＝１かつ、Ｆ３’＝１かつ、Ｆ２＝０かつ、Ｆ３＝０かつ、Ｘ＝０のときに出力Ｚ＝１となる論理を構成すればよい（（数１）第１項：「Ｆ１・Ｆ２’・Ｆ３’・（／Ｆ２）・（／Ｆ３）・（／Ｘ）」）。
【０１６４】
同様に、図１４に従ってＺ＝１となる論理を構築し、これらの項の論理和を取ることで、最終的に（数１）に示す論理式Ｇ２１３が完成する。
【０１６５】
なお、図１４にはＫａｌｎａｕｇｈ図上で、Ｚ＝１となる各群が、論理式Ｇ２１３のどの項に対応しているのかを示している。ここで、Ｐ３に示す位置は、論理式Ｇ２１３の第２項及び第３項の両方でＯＮとなる、すなわち論理演算の重複を許している部分である。これは論理式を徒に複雑化しないようにするテクニックとして知られている手法である。
【０１６６】
以上、実施の形態１における孤立点除去部１０９の構成、およびこの内部に設けられたプロセッサ１１２によって実行される画像処理方法について詳細に説明した。
【０１６７】
以降、図３を用いて、より具体的な例を挙げて孤立点除去を行なう過程について説明する。
【０１６８】
入力画像データ５０１を１ブロック（ここでは８画素）を３列にわたって入力する。これが、前データ列２０５、現データ列Ｘ２０６、次データ列２０７である。
【０１６９】
まず、前データ列２０５をテーブル２０１でコード変換してＦ２’（２０８）を得る。
【０１７０】
図３に図示するように、本例における前データ列２０５は（１，０，０，０，０，０，０，０）である。
【０１７１】
さて、既に述べたテーブル２０１の作成手順に従えば、アドレス［１０００００００（Ｂ）］には、要素として［１０００００００（Ｂ）］が格納されており、前データ列２０５の値＝［１０００００００（Ｂ）］をアドレスとしてテーブル２０１を参照することで、前データ列２０５はＦ２’（２０８）＝［１０００００００（Ｂ）］に変換される。
【０１７２】
次に、現データ列Ｘ２０６をテーブル２０１でコード変換してＦ１（２０９）を得る。
【０１７３】
本例における現データ列Ｘ２０６は（０，０，０，１，０，１，０，０）である。
【０１７４】
テーブル２０１の作成手順に従えば、アドレス［０００１０１００（Ｂ）］には、要素として［００００１０００（Ｂ）］が格納されており、現データ列Ｘ２０６の値＝［０００１０１００（Ｂ）］をアドレスとしてテーブル２０１を参照することで、現データ列Ｘ２０６はＦ１（２０９）＝［００００１０００（Ｂ）］に変換される。
【０１７５】
次に、次データ列２０７をテーブル２０１でコード変換してＦ３’（２１０）を得る。
【０１７６】
本例における次データ列２０７は（０，０，０，０，０，１，０，０）である。
【０１７７】
テーブル２０１の作成手順に従えば、アドレス［０００００１００（Ｂ）］には、要素として［００００００００（Ｂ）］が格納されており、次データ列２０７の値＝［０００００１００（Ｂ）］をアドレスとしてテーブル２０１を参照することで、次データ列２０７はＦ３’（２１０）＝［００００００００（Ｂ）］に変換される。
【０１７８】
次に、前データ列２０５をテーブル２０２でコード変換してＦ２（２１１）を得る。
【０１７９】
本例における前データ列２０５は（１，０，０，０，０，０，０，０）である。
【０１８０】
テーブル２０２の作成手順に従えば、アドレス［１０００００００（Ｂ）］には、要素として［１１００００００（Ｂ）］が格納されており、前データ列２０５の値＝［１０００００００（Ｂ）］をアドレスとしてテーブル２０２を参照することで、前データ列２０５はＦ２（２１１）＝［１１００００００（Ｂ）］に変換される。
【０１８１】
次に、次データ列２０７をテーブル２０２でコード変換してＦ３（２１２）を得る。
【０１８２】
本例における次データ列２０７は（０，０，０，０，０，１，０，０）である。
【０１８３】
テーブル２０２の作成手順に従えば、アドレス［０００００１００（Ｂ）］には、要素として［００００１１１０（Ｂ）］が格納されており、次データ列２０７の値＝［０００００１００（Ｂ）］をアドレスとしてテーブル２０２を参照することで、次データ列２０７はＦ３（２１２）＝［００００１１１０（Ｂ）］に変換される。
【０１８４】
以上を整理すると、テーブル２０１、テーブル２０２を用いたコード変換によって次のデータ列が得られる。これに現データ列Ｘ２０６を追加すると、次のデータ列のセットが生成される。
【０１８５】
Ｆ１（２０９）    ＝［００００１０００（Ｂ）］
Ｆ２’（２０８）  ＝［１０００００００（Ｂ）］
Ｆ３’（２１０）  ＝［００００００００（Ｂ）］
Ｆ２（２１１）    ＝［１１００００００（Ｂ）］
Ｆ３（２１２）    ＝［００００１１１０（Ｂ）］
現データ列Ｘ２０６＝［０００１０１００（Ｂ）］
このデータ列Ｆ１（２０９）から現データ列Ｘ２０６について、同一の位置にあるビットについて、真理値表（表７）に従って出力されるデータ列（即ち論理式Ｇ２１３によって出力されるデータ列Ｚ２１４）は、
データ列Ｚ２１４＝［０００００１００（Ｂ）］
となる。
【０１８６】
ここで、現データ列Ｘ２０６と、データ列Ｚ２１４を比較すると、ビット４のみが「１」から「０」に反転していることが分かる（図５の位置Ｐ）。即ち入力されたデータ列に対して、孤立点が除去されたデータ列が生成される。
【０１８７】
論理式Ｇ２１３の処理は上述のプロセッサ１１２が実行する論理演算によって行なわれるが、これは８ビット単位、即ちバイト単位で実行することができる。このように論理式Ｇ２１３による演算では、８画素分の孤立点除去処理が一括して行なっており、即ち論理演算部（プロセッサ１１２）はデータ列を構成する複数の２値画像データに対して一括して論理演算を実行し、画像処理済の複数の２値画像データを出力するのである。
【０１８８】
このように実施の形態１では、既に説明したルックアップテーブルを用いたコード変換および論理演算をプロセッサ１１２によって実行し、画像処理装置１のハードウェア構成を簡略化している。
【０１８９】
一方、より高速性を必要とするシステムでは、これらのコード変換や論理演算を、例えばゲートアレイなどのハードロジック（論理回路）に置き換えることで、一層の高速化を図ることが可能である。この場合でも、ハードウェアの資源が少なくて済むという本発明の特徴により、コストメリットを享受することができる。
【０１９０】
さて、先に述べた従来の技術１では、８画素分の孤立点除去処理を行なう場合、テーブル参照を８回繰り返さないといけなかったが、実施の形態１で説明した画像処理装置１の場合は、テーブル参照が５回で済む。仮に１６画素分の孤立点処理を行なう場合、従来の技術１では１６回、実施の形態１では５回のテーブル参照で済む。
【０１９１】
注目画素あたり、テーブル参照を１回必要とする従来の技術１よりも、実施の形態１の画像処理装置１は、少なくとも１画素あたり５／８＝０．６２５回で処理するため、１．６倍の高速処理が可能である。
【０１９２】
実際にＮＥＣ社製Ｖ８５０アセンブラで従来の技術１、従来の技術２、実施の形態１で説明したアルゴリズムに基づいてプログラムを作成し、ステート数を計数することで、実処理時間に近い時間を算出してみた。
【０１９３】
３×３画素のウィンドウを使って処理する従来の技術１の処理に要する時間を１とすると、従来の技術２で８画素を処理するスピードは９．４３倍、実施の形態１で説明したアルゴリズムでは３．６７倍であった。
【０１９４】
また、従来の技術１で１６画素を処理するのに要する時間を１とすると、従来の技術２では１８．９倍、実施の形態１で説明したアルゴリズムでは７．３３倍の高速処理が可能であった。
【０１９５】
つまり、処理する単位であるブロックサイズを大きくすればするほど、テーブルメモリや画素を参照する回数が減り、それに伴って高速化ができるようになる。
【０１９６】
一方ルックアップテーブルの容量については、従来の技術１では、入力が３×３画素＝９ビット、出力が１ビットなので、５１２バイト。従来の技術２（２４ビット入力、８ビット出力）ではルックアップテーブルのサイズは１６，７７７，２１６バイトとなる。これに対し、実施の形態１のアルゴリズムの場合は、入力が８ビット、出力が８ビットのルックアップテーブルを２つ持つことから、５１２バイトとなる。
【０１９７】
同様に、取り扱うデータ列が１６ビット構成である場合、従来の技術１では５１２バイト、従来の技術２では、２８１，４７４，９７６，７１０，６５５バイト、実施の形態１のアルゴリズムでは、１３１，０７２バイトになる。
【実施例】
【０１９８】
（実施例１）
以降、本発明に係る画像処理装置を具備あるいは画像処理方法を用いるのに好適な装置の例を具体的に説明する。
【０１９９】
図１５は本発明の画像処理装置を応用した実施例１に係る電子黒板の斜視図である。
以降図１５を用いて電子黒板２の構成について説明する。
【０２００】
図１５において３は筐体７に支持された筆記面である。使用者は会議などの場において、筆記面３に黒、赤、緑、青などの特定色のマーカーで文字や図形などの情報を記入する。
【０２０１】
４は光学キャリッジであり、図示しない光源およびイメージセンサを具備している。光学キャリッジ４は、筆記面３に沿って方向Ａ、方向Ｂに移動可能に筐体７に支持されている。図１５に示す電子黒板２では筆記面３が固定されており、光学キャリッジ４が筆記面３に沿って移動する際に、筆記面３を図示しない光源で照射し、筆記面３に記入された画像情報を光学キャリッジ４内に設けたイメージセンサ（図示せず）で読み取るように構成されている。
【０２０２】
以降、図１を併用して説明を続ける。
【０２０３】
光学キャリッジ４で読み取られた画像は、図１を用いて詳細に説明した画像処理装置１に入力され（即ち光学キャリッジ４内に設けたイメージセンサが、図１に示すイメージセンサ１０１に対応する）、既に説明したアナログ処理部１０２、シェーディング補正部１０３などによって処理を施され、２値化部１０８で単純２値化された後に、孤立点除去部１０９によって画像ノイズである孤立点が除去される。
【０２０４】
その後、孤立点が除去された２値画像データはインタフェース１１０を介して外部機器１１１に出力される。この外部機器１１１は実施例１では印字部５に対応しており、孤立点が除去された２値画像データは印字部５に送られ、記録紙６に記録される。
【０２０５】
電子黒板２は長期間使用していると、筆記面３の広い範囲が汚れてくることがあり、このような場合に孤立点除去の効果が発揮され、印字部５によって鮮明な画像記録が行なえるようになる。
【０２０６】
なお、図１では取り扱う画像をモノクロとして説明したが、上述のように、電子黒板２の筆記面３に記入されるマーカーの色は複数の色相成分を有するから、光学キャリッジ４に具備するイメージセンサ１０１はカラーイメージセンサとしてもよい。この場合は、画像処理装置１に含まれる各処理要素は、カラーイメージセンサが出力するＲ，Ｇ，Ｂの３色に併せて３系統を有するように構成される。
【０２０７】
一方、光学キャリッジ４に具備される光源をＲ，Ｇ，Ｂの３色光源とし、いわゆる光源切替えによって、線順次に画像を読み取る構成を採用することも可能である。このような構成とすれば、電子黒板２に図１に示す画像処理装置１の構成をそのまま応用することができ、更に１ライン構成のイメージセンサを採用できるためコストメリットがある。
【０２０８】
画像処理装置１は、入力されるＲ，Ｇ，Ｂの各色の画像信号を色単位に処理を行い、各色について孤立点除去部１０９で孤立点を除去する。この際に２値化部１０８で用いるスライスレベル（２値化閾値）は、Ｒ，Ｇ，Ｂの色毎に変更することが望ましい。また、この２値化閾値を電子黒板２の使用者が変更できるようにしておくことが望ましい。これによって例えば筆記面３に赤色のマーカー主体で画像が記入された場合などであっても、適切な画像濃度を印字部５で再現することが可能となる。
【０２０９】
また、Ｒ，Ｇ，Ｂの各色画像データを一旦輝度（Ｙ成分）、色相（Ｃ１成分，Ｃ２成分）に分離して、このうちのＹ成分に対して孤立点を除去するようにしてもよい。これによってマーカー色に依存せずに孤立点を除去することが可能となるとともに、どのようなマーカー色であっても、印刷部５で十分な記録濃度を得ることができる。
【０２１０】
（実施例２）
図１６は本発明の画像処理方法を応用した実施例２に係るシステムの構成図である。
【０２１１】
以降、図１６を用いて本発明に係る画像処理方法を、画像読み取り装置１０とホスト装置１１からなるシステムによって実行する過程について説明する。
【０２１２】
まず図１６を用いて、一般的な画像読み取り装置の使用形態について説明する。
【０２１３】
図１６に示すように、画像読み取り装置１０は、この画像読み取り装置１０を制御して画像データを受け取るホスト装置（パーソナルコンピュータ）１１とケーブル１２により接続されている。
【０２１４】
画像読み取り装置１０とホスト装置１１との間は、一般にはＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）やＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）といったインタフェース規格を用いて接続されることが多い。
【０２１５】
例えばＳＣＳＩでは、ホスト装置１１は画像読み取り装置１０に対して、主走査並びに副走査方向の読み取り解像度、主走査並びに副走査方向の読み取り開始位置、主走査並びに副走査方向の読み取り長などを指定することができる。
【０２１６】
そして、ホスト装置１１が読み取り開始指令を画像読み取り装置１０に対して発行すると、図示しない光学キャリッジ４が図示しない原稿に沿って所定の方向に移動し、予め指定された主走査並びに副走査方向の読み取り解像度、予め指定された主走査並びに副走査方向の読み取り開始位置、予め指定された主走査並びに副走査方向の読み取り長などの設定パラメータに従って画像を読み取る。
【０２１７】
以降、図１を併用して説明を続ける。
【０２１８】
実施例２では画像読み取り装置１０が、図１に示すイメージセンサ１０１を含んでいる。そして、ホスト装置１１が図１に示す画像処理装置１に対応し、例えばモニタ１３が図１に示す外部機器１１１に対応している。なお、ホスト装置１１に別途プリンターなどが接続されている場合は、これを外部機器１１１とみなしてもよい。
【０２１９】
ただし実施例２では、図１に示すアナログ処理部１０２までの工程は画像読み取り装置１０によって実行され、デジタル変換された多値画像データが画像処理装置１であるホスト装置１１に渡されるよう構成されている。
【０２２０】
ホスト装置１１は例えばパーソナルコンピュータであり、より具体的な態様としては、ホスト装置１１には既に説明した画像処理方法を実行するための画像処理プログラムがインストールされている。
【０２２１】
この画像処理プログラムは、例えばスキャナドライバソフトのような他のアプリケーションソフトを介して、上述のデジタル変換された多値画像データを入手する。一般にスキャナドライバソフトは、例えば「文字・線画」、「写真」といった複数の読み取りモードを有しているが、本発明に係る画像処理方法を実行する画像処理プログラムは、使用者が読み取りモードを「文字・線画」に指定した場合に、例えば原稿に記録された文字の背景濃度が２値化閾値と近接しているような状態において特に有効に機能する。
【０２２２】
さて、ホスト装置１１では、ホスト装置１１に搭載された図示しないＣＰＵと、図示しないメモリによって本発明に係る画像処理方法が実行される。
【０２２３】
孤立点を除去する方法については既に詳細に説明したので、ここでの説明は省略するが、一般にパーソナルコンピュータなどは汎用性を重視する設計となっており、特定の画像処理では、処理速度が大きく低下することが知られている。本発明に係る画像処理方法を実行する画像処理プログラムを用いることで、ホスト装置１１のハードウェア資源を占有することなく、極めて高速に孤立点除去処理を行なうことができる。
【０２２４】
以上、本発明に係る画像処理装置、画像処理方法、画像処理プログラムについて詳細に説明したが、本発明はデータを所定の単位（例えばｎ×ｍ個）として抽出して処理を行なう、例えば画像圧縮、画像認識、音声コーデックなどの様々なデータ処理に応用できることはいうまでもない。
【産業上の利用可能性】
【０２２５】
以上のように本発明に係る画像処理装置、画像処理方法、および画像処理プログラムは、少ないハードウェア資源で高速なノイズ除去処理が可能であることから、例えばスキャナ、電子黒板、複写機、ＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）、ファクシミリ装置、パーソナルコンピュータ上で動作する画像処理プログラムなどへの利用が可能である。
【図面の簡単な説明】
【０２２６】
【図１】本発明の実施の形態１に係る画像処理装置の全体構成を示すブロック構成図
【図２】本発明の実施の形態１の画像処理装置におけるＲＡＭに設けられたルックアップテーブルと、孤立点除去部で取り扱うデータ列との関係を示す説明図
【図３】本発明の実施の形態１の画像処理装置における孤立点除去処理を模式的に示した説明図
【図４】本発明の実施の形態１におけるテーブルの各要素の作成手順を説明する説明図
【図５】本発明の実施の形態１におけるテーブルの各要素の作成過程を説明する説明図
【図６】本発明の実施の形態１におけるテーブルの各要素の作成過程を説明する説明図
【図７】本発明の実施の形態１におけるテーブルの各要素の作成過程を説明する説明図
【図８】本発明の実施の形態１におけるテーブルの各要素の作成過程を説明する説明図
【図９】本発明の実施の形態１におけるテーブルの各要素の作成過程を説明する説明図
【図１０】本発明の実施の形態１におけるテーブルの各要素の作成手順を説明するフローチャート
【図１１】本発明の実施の形態１におけるテーブルの各要素の作成手順を説明するフローチャート
【図１２】本発明の実施の形態１におけるテーブルの各要素の作成手順を説明するフローチャート
【図１３】本発明の実施の形態１におけるテーブルの各要素の作成手順を説明するフローチャート
【図１４】本発明の実施の形態１におけるＱｕｉｎｅ−Ｍｃ  Ｃｌｕｓｋｅｙ法で用いるＫａｌｎａｕｇｈ図
【図１５】本発明の画像処理装置を応用した実施例１に係る電子黒板の斜視図
【図１６】本発明の画像処理方法を応用した実施例２に係るシステムの構成図
【符号の説明】
【０２２７】
１    画像処理装置
２    電子黒板
３    筆記面
４    光学キャリッジ
５    印字部
６    記録紙
７    筐体
１０    画像読み取り装置
１１    ホスト装置
１２    ケーブル
１３    モニタ
１０１    ダメージセンサ
１０２    アナログ処理部
１０３    シェーディング補正部
１０４    ＣＰＵ
１０５    ＲＯＭ
１０６    ＲＡＭ
１０７    γ補正部
１０８    ２値化部
１０９    孤立点除去部
１１０    インタフェース
１１１    外部機器
１１２    プロセッサ
２０１    テーブル
２０２    テーブル
２０３    画像入力ワークエリア
２０４    画像出力ワークエリア
２０５    前データ列
２０６    現データ列Ｘ
２０７    次データ列
２０８    データ列Ｆ２’
２０９    データ列Ｆ１
２１０    データ列Ｆ３’
２１１    データ列Ｆ２
２１２    データ列Ｆ３
２１３    論理式Ｇ
２１４    データ列Ｚ
５０１    入力画像データ
５０３    出力画像データ
７０１    変数
７０２    当該要素
【図１】
2008015858.tif 000011
【図２】
2008015858.tif 000012
【図３】
2008015858.tif 000013
【図４】
2008015858.tif 000014
【図５】
2008015858.tif 000015
【図６】
2008015858.tif 000016
【図７】
2008015858.tif 000017
【図８】
2008015858.tif 000018
【図９】
2008015858.tif 000019
【図１０】
2008015858.tif 000020
【図１１】
2008015858.tif 000021
【図１２】
2008015858.tif 000022
【図１３】
2008015858.tif 000023
【図１４】
2008015858.tif 000024
【図１５】
2008015858.tif 000025
【図１６】
2008015858.tif 000026