説明

画像処理方法、プログラム及び画像処理装置

【課題】欠陥画像を含む画像の画質を向上させる画像処理を提供する。
【解決手段】まず、注目画素を決定した後に、前記注目画素の周囲にある周囲画素に対してフィルタ処理を行って、前記周囲画素の階調値を変更する。そして、前記フィルタ処理後の前記周囲画素に基づいて、前記注目画素の階調値を変更する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理方法、プログラム及び画像処理装置に関する。
【背景技術】
【0002】
原稿にホコリが付着していると、スキャナによって読み取られたディジタル画像に、ホコリの画像が含まれてしまう。このため、原稿上のホコリは、読み取る前に、ブロアーなどで取り除くことが望ましい。しかし、ホコリを完全に取り除くことは困難である。
このため、ディジタル画像の中のホコリ画像を検出し、除去する手段が提案されている。
【特許文献1】英国特許出願公開第1547811号明細書
【特許文献2】特開2003−101732号公報
【特許文献3】特開平10−232915号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
特許文献1によれば、赤外光を用いて原稿上のホコリを検出する装置が開示されている。しかし、赤外光源等のハードウェアを付加しなければならず、装置が高額になる。
特許文献2によれば、二値画像にラベリング処理を施して個別の画像塊を矩形枠で囲い、所定条件の矩形枠内の画像塊をホコリ画像成分としている。しかし、二値画像の生成過程が不明であり、どのような画像でも適用可能なのか否かが不明である。
また、ホコリ画像のような欠陥画像(ホコリ画像・ノイズ等を含む)を除去する方法として、移動平均処理やメディアンフィルタ処理などが知られている。しかし、移動平均処理では、画像がぼけてしまい、かえって画質が劣化するおそれがある。また、メディアンフィルタ処理は、ランダムノイズを除去するには適しているが、欠陥画像が大きい場合、欠陥画素を欠陥画素で置換するおそれがある。
【0004】
そこで、本件発明では、欠陥画像を含む画像の画質を向上させる画像処理を提供することを目的とする。
【課題を解決するための手段】
【0005】
上記目的を達成するための主たる発明は、注目画素を決定した後に、前記注目画素の周囲にある周囲画素に対してフィルタ処理を行って、前記周囲画素の階調値を変更し、前記フィルタ処理後の前記周囲画素に基づいて、前記注目画素の階調値を変更することを特徴とする。
【0006】
本発明の他の特徴については、本明細書及び添付図面の記載により明らかにする。
【発明を実施するための最良の形態】
【0007】
本明細書及び添付図面の記載により、少なくとも、以下の事項が明らかとなる。
【0008】
注目画素を決定した後に、前記注目画素の周囲にある周囲画素に対してフィルタ処理を行って、前記周囲画素の階調値を変更し、
前記フィルタ処理後の前記周囲画素に基づいて、前記注目画素の階調値を変更する
ことを特徴とする画像処理方法。
このような画像処理方法によれば、画像処理後の画質が向上する。
【0009】
かかる画像処理方法であって、前記注目画素の階調値を変更する際に、前記注目画素に対してメディアンフィルタ処理を行うことが望ましい。当初に注目画素の周囲に欠陥画素があったとしても、注目画素に対するメディアンフィルタ処理を行う際に、欠陥画素を欠陥画素で置換する可能性を低くできる。
【0010】
かかる画像処理方法であって、複数の前記周囲画素に対して前記フィルタ処理を行う際に、所定の優先順序に従って、各周囲画素に対してフィルタ処理を行うことが望ましい。また、前記優先順序は、前記注目画素を決定する際の検索順序に対応して、設定されていることが好ましい。また、前記注目画素の周囲に第1周囲画素及び第2周囲画素があり、前記第1周囲画素に対して前記フィルタ処理を行う際に前記第2周囲画素が用いられ、前記第2周囲画素に対して前記フィルタ処理を行う際に前記第1周囲画素が用いられる場合であって、前記検索順序が前記第1周囲画素の方が前記第2周囲画素よりも早い場合、前記第1周囲画素に対してフィルタ処理を行って前記第1周囲画素の階調値を変更した後に、前記第2周囲画素に対してフィルタ処理を行って前記第2周囲画素の階調値を変更し、フィルタ処理後の前記第1周囲画素及び前記第2周囲画素に基づいて前記注目画素の階調値を変更することが良い。これにより、注目画素に対するメディアンフィルタ処理を行う際に、欠陥画素を欠陥画素で置換する可能性を低くできる。
【0011】
かかる画像処理方法であって、前記フィルタ処理の際に、前記周囲画素の周囲の欠陥画素以外の画素に基づいて、前記周囲画素の階調値を変更することが望ましい。これにより、注目画素に対するメディアンフィルタ処理を行う際に、欠陥画素を欠陥画素で置換する可能性を低くできる。
【0012】
また、前記注目画素を決定する前に、元画像に対してエッジ処理を行ってエッジ画像を取得し、前記エッジ画像に対して膨張処理を行った後に侵食処理を行った加工画像の中から、所定の大きさ以下の孤立点を検出し、前記孤立点に基づいて前記元画像における欠陥画素の位置を検出し、前記注目画素を決定する際に、前記欠陥画素の位置に基づいて、前記元画像から前記注目画素を決定することが好ましい。これにより、空間周波数の低い領域にある欠陥画素を検出し、除去することができる。
【0013】
画像処理装置に、
注目画素を決定させた後に、前記注目画素の周囲にある周囲画素に対してフィルタ処理を行わせて、前記周囲画素の階調値を変更させ、
前記フィルタ処理後の前記周囲画素に基づいて、前記注目画素の階調値を変更させる
ことを特徴とするプログラム。
このようなプログラムによれば、画像処理後の画質が向上するように、画像処理装置に画像処理させることができる。
【0014】
演算処理部と記憶部とを備えた画像処理装置であって、
前記演算処理部は、前記記憶部に記憶されたディジタル画像から注目画素を決定した後に、前記注目画素の周囲にある周囲画素に対してフィルタ処理を行って、前記周囲画素の階調値を変更し、
前記演算処理部は、前記フィルタ処理後の前記周囲画素に基づいて、前記注目画素の階調値を変更する
ことを特徴とする画像処理装置。
このような画像処理装置によれば、画像処理後の画質が向上する。
【0015】
===複合装置の概要===
図1は、複合装置の全体斜視図である。図2は、複合装置の構成のブロック図である。複合装置1は、原稿から画像を読み取るためのスキャナ機能と、外部のコンピュータ3からの印刷データに基づいて画像を紙に印刷するプリンタ機能と、原稿から読み取った画像を紙に印刷するコピー機能と、を有する。
【0016】
この複合装置1は、スキャナ部10と、プリンタ部20と、カードリーダ部30と、パネル部40と、コントローラ60と、SDRAM90とを有する。スキャナ部10の主な構成要素は、複合装置1の上部収容部1Aに設けられている。プリンタ部20の主な構成要素は、複合装置1の下部収容部1Bに設けられている。カードリーダ部30は、ユーザがメモリカードをセットし易いように、下部収容部1Bの前面に設けられている。パネル部40は、ユーザが操作し易いように、上部収容部1Aの前面に設けられている。コントローラ60は、下部収容部1Bの内部の基板に設けられている。
【0017】
なお、外部のコンピュータ3には、ディスプレイ等の表示装置6や、キーボードやマウス等の入力装置7が接続されている。後述するように、コンピュータ3には、複合装置1のためのドライバが予めインストールされている。このドライバには、プリンタドライバやスキャナドライバなどが含まれている。このドライバは、コンピュータ3に複合装置1を制御させるためのプログラムであり、各種処理を行うためのコードから構成されている。コンピュータ3は、CPU等の演算処理部や、データを記憶するメモリ等のハードウェアを備えている。
【0018】
図3は、プリンタ部の説明図である。この図は、複合装置1の上部収容部1Aが持上げられてプリンタ部20を露出させたときの様子を示している。
プリンタ部20は、紙を搬送する搬送ユニット(不図示)と、インクを吐出するヘッドを移動させるキャリッジ21とを有する。そして、プリンタ部20は、搬送ユニットにより紙を搬送する搬送動作と、移動するヘッドからインクを吐出して紙にドットを形成するドット形成動作とを交互に繰り返して、紙に画像を印刷する。不図示の搬送ユニットは、複合装置1の背面の背面給紙口22又は複合装置1の前面の前面給紙口23にセットされた紙を給紙し、複合装置1の前面の排紙トレイ24へ印刷された紙を排紙する。
【0019】
下部収容部1Bの前面の左右には、インクカートリッジカバー25が設けられている。インクカートリッジ26の取り付け時又は交換時、ユーザは、このインクカートリッジカバー25を開き、インクカートリッジ26を取り付け又は交換する。取り付け後又は交換後にユーザがインクカートリッジカバー25を閉じることにより、インクカートリッジ26のセットが完了する。このインクカートリッジ26にはインクが収容されており、このインクはヘッドに供給されてヘッドから吐出される。
【0020】
図4は、スキャナ部の説明図である。この図は、複合装置1の上蓋11を開いたときの様子を示している。
スキャナ部10は、上蓋11と、原稿台ガラス12とを有する。上蓋11には、白色の原稿マット112が取り付けられている。原稿台ガラス12に原稿が置かれた状態で上蓋11が閉じられると、原稿が原稿マット112と原稿台ガラス12との間で平らにセットされる。原稿台ガラス12の下には、読取キャリッジ等のスキャナ部10の他の構成要素がある。
【0021】
図5は、パネル部の説明図である。
パネル部40は、液晶ディスプレイ41と、各種のボタンを有する。ボタンの種類としては、例えば、電源ボタン42、設定ボタン43、ストップボタン44、モード選択ボタン45、カーソル操作ボタン群46、スタートボタン47等がある。電源ボタン42は、複合装置1の電源をオン/オフする。設定ボタン43は、ヘッドクリーニング、ノズルチェック、インク残量等の設定や確認を行う。ストップボタン44は、動作中の機能を中止する。モード選択ボタン45は、複合装置1の機能の選択を行う。カーソル操作ボタン群46は、液晶ディスプレイ41に表示される項目の設定等を行う。スタートボタン47は、カラーボタン47C及びモノクロボタン47Bを有し、カラー印刷又はモノクロ印刷の開始に用いられる。
液晶ディスプレイ41には、図示するような各種の設定画面だけでなく、カードリーダ部30によって読み取られたメモリカードの画像データも表示される。
【0022】
===複合装置の各種機能の概要===
次に、図2を参照しながら、複合装置1の各種機能について説明する。以下に説明するように、複合装置1は、主な機能として、プリンタ機能、スキャナ機能、コピー機能を有する。
【0023】
<プリンタ機能>
コンピュータ3には、複合装置1のプリンタドライバが予めインストールされている。そして、プリンタドライバは、コンピュータ3に、アプリケーションプログラム等で作成された画像データを印刷データに変換させる。この印刷データには、コマンドデータと画素データとが含まれている。コマンドデータは、複合装置1のプリンタ部20を制御するためのデータである。画素データは、印刷画像を構成するドットの有無・色・階調に関するデータであり、CMYK色空間の4階調のデータ(CMYK2ビットデータ)である。そして、プリンタドライバは、コンピュータ3に、印刷データを複合装置1へ送信させる。
【0024】
コントローラ60は、コンピュータ3からの印刷データを、コマンドデータと画素データとに分離して、SDRAM90にバッファする。そして、コントローラ60は、受信したコマンドデータに基づいてプリンタ部20を制御し、画素データに基づいてヘッドからインクを吐出させ、印刷を行う。具体的には、CMYK2ビットデータに基づいてヘッドからインクが吐出され、紙上の各画素に大ドット・中ドット・小ドットが形成される。
このような処理を複合装置1が行うことによって、複合装置1はプリンタとして機能する。
【0025】
<スキャナ機能>
コンピュータ3には、複合装置1のスキャナドライバが予めインストールされている。ユーザは、コンピュータ3上でスキャナドライバの設定を行い、例えば読取解像度や読み取り範囲等の設定を行う。ユーザは、スキャナ部10に原稿をセットした後、コンピュータ上でスキャナドライバによりスキャン開始を指示すると、スキャナドライバは、コンピュータ3に、ユーザの設定内容に応じた制御データを複合装置1へ送信させる。
【0026】
コントローラ60は、コンピュータ3からの制御データに基づいてスキャナ部10を制御し、スキャナ部10から原稿の画像データを取得する。具体的には、RGB色空間の256階調のデータ(RGB8ビットデータ)の画素データから構成される画像データを取得する。そして、コントローラ60は、取得した画像データをコンピュータ3へ送信する。
このような処理を複合装置1が行うことによって、複合装置1はスキャナとして機能する。
【0027】
なお、ユーザは、スキャナ部10に原稿をセットした後、スタートボタン47を押しても良い。スタートボタン47が押されると、コンピュータ3上のスキャナドライバが自動的に起動され、スキャナ部10から取得した画像データがコントローラ60によってコンピュータ3のスキャナドライバへ自動的に送信される。
【0028】
<コピー機能>
ユーザは、パネル部40を操作して設定を行い、例えば紙の大きさ、原稿の大きさ、倍率、コピーモード(はやい/きれい)等の設定を行う。スキャナ部10に原稿をセットした後、ユーザがパネル部40のスタートボタン47を押すと、コピー開始を指示する開始信号がパネル部40からコントローラ60へ送られる。コントローラ60は、ユーザの設定内容に応じた制御データをスキャナ部10へ送信し、スキャナ部10は、制御データに基づいて原稿を読み取り、RGB8ビットデータの画素データから構成される画像データをコントローラ60へ送信する。コントローラ60は、スキャナ部10からの画像データをSDRAM90にバッファする。
【0029】
次に、コントローラ60は、スキャナ部10から取得した画像データを、印刷データに変換する。スキャナ部10からの画像データはRGB8ビットデータの画素データから構成されており、コントローラ60は、このRGB8ビットデータを、色変換処理し、ハーフトーン処理し、インターレース処理し、生成された印刷データをSDRAM90へバッファする。そして、コントローラ60は、SDRAM90にバッファされた印刷データに応じてプリンタ部20を制御して、印刷を行う。
このような処理を複合装置1が行うことによって、複合装置1はコピー機として機能する。
【0030】
===フィルムスキャナ機能===
<フィルムスキャン>
複合装置1のスキャナ部10は、紙の原稿から画像を読み取るだけでなく、例えば35mmフィルムのようなフィルムから写真画像を読み取ることもできる。
図6は、フィルムホルダの格納場所の説明図である。図7は、フィルムを読み取るためにセットする様子の説明図である。
上蓋11には、原稿マット112の他に、フィルムホルダ114と、透過原稿用光源116が設けられている。ユーザは、上蓋11から原稿マット112を外すと、上蓋11からフィルムホルダ114を取り出すことができる。読み取り対象となるフィルムをセットする際、ユーザは、フィルムホルダ114にフィルムをセットし、フィルムホルダ114を原稿台ガラス12上にセットし、上蓋11を閉じる。このとき、フィルムホルダ114に保持されたフィルムと透過原稿用光源116とが対向し、フィルムから画像を読み取ることが可能な状態になる。
この後の処理は、原稿が紙の場合と同様である。
【0031】
<スキャナドライバ>
図8は、スキャナドライバのユーザインターフェイスの説明図である。コンピュータ3のスキャナドライバが起動されると、表示装置6にユーザインターフェイスが表示される。ユーザは、コンピュータ3に接続された入力装置7を用いて、ユーザインターフェイスを介してスキャナドライバの各種設定を行うことができる。
このユーザインターフェイスは、設定保存部と、原稿設定部と、出力設定部と、調整部と、プレビューボタンと、スキャンボタンとから構成される。
【0032】
設定保存部は、名称を付けて設定内容を保存するときに用いられる。また、既に保存されている設定内容をプルダウンメニューから選択するときにも設定保存部が用いられる。
【0033】
原稿設定部は、原稿の種類等を設定するときに用いられる。フィルムから画像を読み取る場合、ユーザは、「原稿種」のプルダウンメニューから「フィルム」を選択する。「原稿種」で「フィルム」が選択された場合、「フィルムタイプ」のプルダウンメニューから「カラーネガフィルム」、「ポジフィルム」又は「白黒ネガフィルム」が選択可能になり、ユーザは、原稿台ガラス12にセットされたフィルムに応じて「フィルムタイプ」の設定を行う。
【0034】
出力設定部は、読取条件を設定するときに用いられる。ユーザは、カラー写真のフィルムから画像を読み取る場合、「イメージタイプ」のプルダウンメニューから「24bitカラー」又は「48bitカラー」を選択する。また、ユーザは、モノクロ写真のフィルムから画像を読み取る場合、「イメージタイプ」のプルダウンメニューから「16bitグレー」又は「8bitグレー」を選択する。また、ユーザは、プルダウンメニューから「解像度」を設定することができる。解像度とは、原稿から画像を読み取る点の密度を示す単位である。例えば「解像度」が「4800dpi」に設定されると、1インチ当たり4800箇所の読み取りが行われ、1インチ四方当たり4800×4800箇所の読み取りが行われる。原稿設定部の「原稿種」が「フィルム」の場合、読み取り対象の面積が小さいため、「解像度」を高い解像度に設定する必要がある。
【0035】
調整部は、原稿から読み取られた画像を調整するときに用いられる。ユーザは、調整部のチェックボックスにチェックを付けることによって、調整部の設定を行う。スキャナドライバは、調整部の設定にしたがって、複合装置1から取得した画像データに対して画像処理を施す。ここでは「ホコリ除去」のチェックボックスにチェックが付いているため、スキャナドライバは、画像データに対してホコリ除去のための画像処理を施すことになる。このホコリ除去のための画像処理については後述する。
【0036】
プレビューボタンが押されると、スキャナドライバは、スキャナ部10に低解像度で原稿を読み取らせ、複合装置1から取得した画像データをプレビュー画面(不図示)として表示装置6に表示させる。ユーザは、プレビュー画面で読み取り範囲を設定することが可能である。なお、プレビューボタンが押された場合、プレビュー画面をすばやく表示するため、スキャナドライバは、調整部で設定された画像処理を行わずに、複合装置1から取得した画像データを表示装置6に表示する。
【0037】
スキャンボタンが押されると、スキャナドライバは、設定された条件でスキャナ部10に原稿を読み取らせ、複合装置1から取得した画像データをハードディスク等に保存する。調整部の設定により画像データに対して画像処理を行う場合、スキャナドライバは、画像処理を施した画像データを保存する。
【0038】
ところで、原稿にホコリが付着していると、スキャナ部10によって読み取られた画像に、ホコリの画像(ホコリ画像)が含まれてしまう。このため、原稿上のホコリは、読み取る前に、ブロアーなどで取り除くことが望ましい。しかし、ホコリを完全に取り除くことは困難であり、微細なホコリは原稿に付着している。但し、低い解像度で原稿が読み取られる場合、微細なホコリの影響はほとんどない。
【0039】
一方、フィルムを読み取る場合、出力設定部の「解像度」が比較的高い解像度に設定されているため、微細なホコリがフィルムに付着していても、読み取られた画像にホコリ画像が含まれてしまう。このため、フィルムを読み取る場合、ユーザは、「ホコリ除去」のチェックボックスにチェックを付けることが望ましい。
【0040】
ホコリ除去のチェックボックスにチェックが付いている場合、スキャンボタンが押されると、スキャナドライバは、複合装置1から取得した画像データに対して、ホコリ検出処理を行い、ホコリ除去処理行う。以下、ホコリ検出処理とホコリ除去処理について、説明を行なう。
【0041】
===ホコリ検出処理===
ホコリ検出処理は、複合装置1から取得した画像データ(元画像データ)の示す画像(元画像)の中からホコリ画像を検出する処理である。
まず、処理対象となる画像データについて説明し、その後にホコリ検出処理について説明する。
【0042】
<画像データ>
図9は、M×N画素からなる画像の説明図である。画素とは、画像を構成する最小構成要素であり、画像は、2次元マトリクス状に配置された画素によって構成される。図に示された画像は、x方向(水平方向又は横方向)にM画素、y方向(垂直方向又は縦方向)にN画素で配置された画素から構成される。画素位置がx方向i番目・y方向j番目の画素(図中の斜線で示す画素)は、「画素(j,i)」と呼ばれる。なお、画素(j,i)に対応する画素データは、「画素データ(j,i)」と呼ばれる。また、画素データ(j,i)のことをPjiと表記することもある。
【0043】
複合装置1から取得した画像データ(元画像データ)は、複数の画素データから構成されている。元画像データの示す画像(元画像)も、2次元マトリクス状に配置された画素によって構成される。各画素にはそれぞれ画素データが対応しており、各画素は、画素データに応じた階調を示す。
【0044】
画素データは、RGB色空間のデータであり、「RGBデータ」とも呼ぶ。各画素データは、R(赤)の階調値を示すRデータと、G(緑)の階調値を示すGデータと、B(ブルー)の階調値を示すBデータとから構成される。Rデータ、Gデータ及びBデータは、それぞれ8ビットデータであり、それぞれの色の階調を256段階で表現できる。
【0045】
スキャナドライバは、このような画像データに対して、以下に説明するホコリ検出処理を行う。
【0046】
<ホコリ検出処理の概要>
図10は、元画像データの示す元画像の一例である。この元画像データは、ヨットハーバーの写真を示している。
【0047】
図11は、一様領域と非一様領域の説明図である。
一様領域とは、空間周波数の低い画像の領域である。例えば、この画像の左上側の空の画像の領域は、空間周波数の低くなるため、一様領域になる。この一様領域では、被写体の輪郭があまり存在しない。また、一様領域では、隣接する画素の画素データが連続的に変化している。
非一様領域とは、空間周波数の高い画像の領域である。例えば、この画像の下半分の多数のヨットの画像や建物の画像などの領域は、空間周波数が高くなるため、非一様領域になる。この非一様領域では、被写体の輪郭が多数存在する。また、非一様領域では、隣接する画素の画素データが不連続に変化している。
一様領域と非一様領域は、明確に区分けされるわけではない。例えば、空の画像の領域に、ヨットのマストの画像や、ヨットのステー(マストの頂部から張られたワイヤロープ)の画像などが入り込んだりしている。なお、また、元画像に含まれる被写体(ヨット、山、建物、マスト、ステー等)の画像やホコリの画像のことを「オブジェクト画像」とも呼ぶ。
【0048】
ところで、一様領域にホコリ画像がある場合、ホコリ画像は目立ち易い。一方、非一様領域にホコリ画像がある場合、ホコリ画像は目立ち難い。加えて、非一様領域のホコリ画像を除去しようとする場合、被写体の画像が破壊されやすく、むしろ画質が劣化すると考えられる。
そこで、本実施形態では、非一様領域のホコリ画像は検出せず、一様領域のホコリ画像だけを検出している。
【0049】
また、ホコリを判別するときに、ホコリの形状に応じて判別方法を変える必要がある。もし仮に、ホコリ画像を囲む矩形領域の大きさに基づいてホコリか否かの判別を行うとすると、点状のホコリの大きさに合わせて矩形領域の大きさを設定する場合には、線状のホコリを判別できないおそれが生じ、線状のホコリの大きさに合わせて矩形領域の大きさを設定する場合には、矩形領域を大きく設定する必要があり、この結果、ホコリではない被写体の画像をホコリとして判別するおそれが生じる。
そこで、本実施形態では、ホコリが点状なのか線状なのかに応じて、ホコリの判別方法を変えている。
【0050】
図12は、ホコリ検出処理のフロー図である。このホコリ検出処理は、スキャナドライバがコンピュータ3に画像データを画像処理させることによって、行われる。つまり、スキャナドライバは、図中の各処理をコンピュータ3に実行させるためのプログラムコードを有する。以下、各処理の説明を行なう。
【0051】
<色変換処理(S101)>
色変換処理では、コンピュータ3は、RGB色空間の元画像データを、YUV色空間の画像データに変換する。言い換えると、色変換処理では、コンピュータ3は、RGB色空間の画素データを、YUV色空間の画素データに変換する。更に言い換えると、色変換処理では、コンピュータ3は、RGB色空間の元画像を、YUV色空間の画像に変換する。
【0052】
色変換後の画素データのことを、YUV色空間のデータであるため、「YUVデータ」とも呼ぶ。YUVデータは、Y(輝度)の階調値を示すYデータと、U(色差)の階調値を示すUデータと、V(色差)の階調値を示すVデータとから構成される。すなわち、色変換処理では、コンピュータ3は、各画素のRGBデータをYUVデータに変換する。
【0053】
RGBデータをYUVデータに変換する際には、以下の式が用いられる。
Y = 0.299R +0.587G +0.114B
U =−0.147R −0.289G +0.437B
V = 0.615R −0.515G −0.100B
【0054】
なお、色差の階調を示すUデータ及びVデータは、算出しなくても良い。また、YUV色空間ではなく、YIQ色空間になるようにRGBデータを変換しても良い。要するに、Yデータが得られれば良い。
【0055】
この色変換処理により、コンピュータ3は、輝度の画像データを得ることができる。なお、輝度の画像データのことを「輝度画像データ」と呼び、輝度画像データの示す画像のことを「輝度画像」と呼ぶ。
【0056】
<エッジ処理(S102)>
エッジ処理では、コンピュータ3は、輝度画像データに基づいて、オブジェクト画像の輪郭を示すエッジ画像データを算出する。言い換えると、エッジ処理では、コンピュータ3は、Yデータに基づいて、オブジェクト画像の輪郭に対応する画素(エッジ画素)を算出する。更に言い換えると、エッジ処理では、コンピュータ3は、輝度画像に基づいて、エッジ画像を算出する。
【0057】
図13は、エッジ処理のフロー図である。図14Aは、x方向の勾配の算出に用いられるソーベルフィルタの説明図である。図14Bは、y方向の勾配の算出に用いられるソーベルフィルタの説明図である。
【0058】
まず、コンピュータ3は、Yデータに対してx方向のソーベルフィルタを適用することにより、x方向の勾配を算出する(S121)。ソーベルフィルタは、3×3の9要素からなるフィルタである。なお、画素(j,i)に対応するx方向の勾配データのことを「勾配データGx(j,i)」と呼ぶ。勾配データ(j,i)は、画素(j,i)を中心とする3×3画素の各Yデータとソーベルフィルタの各要素との積の和として算出される。具体的には、勾配データGx(j,i)は、以下のように算出される。
Gx(j,i)={Y(j-1,i+1)+2×Y(j,i+1)+Y(j+1,i+1)}
−{Y(j-1,i-1)+2×Y(j,i-1)+Y(j+1,i-1)}
【0059】
同様に、コンピュータ3は、Yデータに対してy方向のソーベルフィルタを適用することにより、y方向の勾配データGy(j,i)を算出する(S122)。
【0060】
なお、x方向の勾配データは、x方向に隣接する画素同士の輝度差が大きいとき、大きな値を示す。同様に、y方向の勾配データは、y方向に隣接する画素同士の輝度差が大きいとき、大きな値を示す。
【0061】
次に、コンピュータ3は、x方向の勾配データGx及びy方向の勾配データGyに基づいて、各画素の勾配の強度を示す強度データGを算出する。強度データGは、以下のように算出される。
G(j,i)=√({Gx(j,i)}^2+{Gy(j,i)}^2)
【0062】
最後に、コンピュータ3は、強度データGに対して2値化処理を行う。全画素における強度データGの最大値をGmaxとしたとき、G(j,i)/Gmaxが閾値以上ならば画素(j,i)に[1]を割り当て、G(j,i)/Gmaxが閾値よりも小さければ画素(j,i)に[0]を割り当てることにより、2値化処理を行う。この2値化処理後の画素(j,i)に対応する2値データのことを、「エッジ画素データE(j,i)」又は単に「画素データ(j,i)」と呼ぶ。また、エッジ画素データにより構成される画像データのことを「エッジ画像データ」と呼び、エッジ画像データの示す画像のことを「エッジ画像」と呼ぶ。このエッジ画像は、2値画像になる。
【0063】
図15A〜図15Cは、輝度画像と、エッジ画像との関係の説明図である。図中の升目は画素を示している。
【0064】
図中の左側の画像は、12×12画素の輝度画像の例である。ここでは説明の簡略化のため、輝度画像の各Yデータは[0]又は[255]のいずれかである。また、Yデータが[0]の画素を黒で示し、Yデータが[255]の画素を白で示している。
また、図中の右側の画像は、12×12画素のエッジ画像の例である。ここでは、エッジ画素データが[0]の画素を黒で示し、エッジ画素データが[1]の画素を白で示している。
図中の輝度画像とエッジ画像とを比較すると、輝度画像において白画素及び黒画素の境界と接する画素が、すなわち隣接する画素との輝度差の大きい画素が、エッジ画像において白画素になっていることが分かる。言い換えると、輝度画像のオブジェクト画像の輪郭となる画素が、エッジ画像において白画素になっている。このため、エッジ画素データが[1]の画素(エッジ画像の白画素)は、「エッジ画素」とも呼ばれる。
【0065】
例えば、輝度画像に1画素分の幅の細線(オブジェクト画像)がある場合(図15A左側参照)、この線を挟むような2本の線がエッジ画像に現れる(図15A右側参照)。また、輝度画像に塊状の画像(オブジェクト画像)がある場合(図15B及び図15C左側参照)、リング状の画像がエッジ画像に現れる(図15B及び図15C右側参照)。
【0066】
このように、輝度画像に対してエッジ処理が行われると、輝度画像のオブジェクト画像の輪郭を示すエッジ画像が得られる。言い換えると、輝度画像データに対してエッジ処理が行われると、エッジ画像データが得られる。
【0067】
図16は、図10の画像のエッジ画像である。
一様領域では、被写体の輪郭があまり存在しないため、各画素の勾配の強度は低くなるので、エッジ画素データが[0]になる黒画素が多数存在する。この結果、一様領域では、エッジ画像は主に黒画像になる。
また、非一様領域では、被写体の輪郭が多数存在するため、エッジ画素データが[1]になる白画素が多数存在する。この結果、非一様領域では、エッジ画像は白と黒が入り混じった画像になる。
なお、ヨットのマストやステー(ワイヤロープ)の領域では、エッジ処理によって線状の画像が現れる。但し、元画像におけるヨットのマストやステーのオブジェクト画像は細線のため、かすれやすく、エッジ処理によって現れた線状の画像は、一部で断線している。
【0068】
仮に図10の画像にホコリ画像がある場合、色変換処理(S101)及びエッジ処理(S102)の結果、ホコリ画像の輪郭がエッジ画素になる。このため、一様領域においてホコリ画像がある場合、黒画像の中に白画像が入り込む状態になり、ホコリ画像の輪郭を示す白画像が孤立した状態になる。一方、非一様領域においてホコリ画像がある場合、白と黒が入り混じった画像の中に、ホコリの輪郭を示す白画像が紛れ込む状態になる。
【0069】
<膨張処理(S103)>
膨張処理では、コンピュータ3は、エッジ画像における白画素(画素データが[1]の画素)の領域を所定画素分だけ大きくする。言い換えると、膨張処理では、コンピュータ3は、エッジ画像における白画素の示す画像(白画像)を膨張させる。
具体的には、コンピュータ3は、注目画素を中心とするn×n画素(この範囲を「近傍範囲」と呼ぶ)のいずれかの画素の画素データ(エッジ画素データ)が[1]の場合、その注目画素の画素データを[1]にする。言い換えると、コンピュータ3は、注目画素の近傍範囲にエッジ画素が1つでもある場合、その注目画素の画素データを[1]にする。
【0070】
図17A〜図17Cは、膨張処理前の画像と、膨張処理後の画像との関係の説明図である。図中の左側の画像が膨張処理前の画像であり、図中の右側の画像が膨張処理後の画像である。ここでは、説明の簡略化のため、近傍範囲を3×3画素にしている。
例えば、近接した2本の白線がエッジ画像にある場合(図17A左側参照)、膨張処理の結果、5画素分の太い白線の画像が現れる(図17A右側参照)。また、小さい穴のリング状の白画像がエッジ画像にある場合(図17B左側参照)、膨張処理の結果、穴の埋まった塊状の白画像が現れる(図17B右側参照)。一方、大きい穴のリング状の白画像がエッジ画像にある場合(図17C左側参照)、膨張処理の結果、穴の小さい幅の太いリング状の白画像が現れる(図17C右側参照)。
【0071】
このように、膨張処理を行えば、白画像の外郭が拡張する。また、膨張処理を行えば、白画像が太くなるだけでなく、離れた白画素同士・白画像同士がくっついたり、小さい穴が埋まったりする。なお、膨張処理前の白画像に狭い窪みのようなものがある場合には、膨張処理により窪みが埋まった白画像になる。
【0072】
なお、ここでは、説明の簡略化のため、近傍範囲を3×3画素にしているが、実際には、近傍範囲は7×7画素になる。このため、図17A〜図17Cと比べると、実際には白画像がもっと太くなり、図17Cに示す程度の穴ならば膨張処理により埋まることになる。
【0073】
<侵食処理(S104)>
侵食処理では、コンピュータ3は、白画素(画素データが[1]の画素)の領域を所定画素分だけ小さくする。言い換えると、侵食処理では、コンピュータ3は、膨張処理後の白画像を侵食させる。
具体的には、コンピュータ3は、注目画素の近傍範囲のいずれかの画素の画素データが[0]の場合、その注目画素に対応する画素データを[0]にする。言い換えると、コンピュータ3は、近傍範囲にエッジ画素以外の画素が1つでもある場合、その注目画素の画素データを[0]にする。
【0074】
侵食処理の近傍範囲は、前述の膨張処理の近傍範囲と同じになる。つまり、膨張処理の近傍範囲が3×3画素ならば、侵食処理の近傍範囲は3×3画素になり、膨張処理の近傍範囲が7×7画素ならば、侵食処理の近傍範囲は7×7画素になる。
【0075】
図18A〜図18Cは、侵食処理前の画像と、侵食処理後の画像との関係の説明図である。図中の左側の画像が侵食処理前の画像であり、図中の右側の画像が侵食処理後の画像である。ここでは、図17A〜図17Cに示す膨張処理と同様に、近傍範囲を3×3画素にしている。
【0076】
例えば、侵食処理前の画像に太い白線がある場合(図18A左側参照)、侵食処理の結果、細い白線の画像が現れる(図18A右側参照)。また、侵食処理前の画像に塊状の白画像がある場合、侵食処理の結果、小さな塊状の白画像が現れる。また、侵食前の白画像に穴がある場合、侵食処理の結果、その穴は広がる。
このように、侵食処理を行えば、白画像の外郭が縮小する。
【0077】
図19A〜図19Cは、エッジ画像と、侵食処理後の画像との関係の説明図である。図中の左側の画像はエッジ画像である。図中の右側の画像は侵食処理後の画像である。つまり、図中の右側の画像は、左側の画像に対して膨張処理と侵食処理を行った後の画像である。
【0078】
近接した2本の白線がエッジ画像にある場合(図19A左側参照)、膨張処理の後に侵食処理を行う結果、2本の白線の間が埋まり、1本の白線の画像が現れる(図19A右側参照)。また、リング状の白画像がエッジ画像にある場合(図19B・図19C左側参照)、穴が小さければ、膨張処理の後に侵食処理によってその穴が埋まり(図19B右側参照)、穴が大きければ、膨張処理の後に侵食処理によっても穴は埋まらない(図19C右側参照)。
【0079】
このように、膨張処理の後に侵食処理を行っても、白画像の外郭には変化はない。しかし、処理前の画像に小さな穴や窪みなどがあれば、膨張処理の後に侵食処理を行うことによって、その穴や窪みを埋めることができる。また、処理前のエッジ画像に白画素・白画像が狭い間隔で入り混じっていれば、膨張処理の後に侵食処理を行うことによって、それらの白画素同士・白画像同士が結合する。
【0080】
図20A〜図20Cは、侵食処理後の画像と、輝度画像との関係の説明図である。侵食処理後の画素データが[0]の画素を黒で示し、侵食処理後の画素データが[1]の画素を白で示している。また、輝度画像におけるオブジェクト画像を構成する白画素に、丸印を付している。
【0081】
輝度画像に線又は小さな塊の画像(オブジェクト画像)がある場合(図20A及び図20B参照)、侵食処理後の白画像の領域には、輝度画像のオブジェクト画像が含まれることになる。言い換えると、侵食処理後の白画像が所定の大きさ以下であれば、その白画像の領域に、輝度画像のオブジェクト画像の領域が含まれることになる。つまり、侵食処理後の白画像の領域が所定の大きさ以下であれば、その白画像の領域は、輝度画像におけるオブジェクト画像の位置を示すことになる。但し、輝度画像のオブジェクト画像が所定の大きさ以上の場合(図20C参照)、侵食処理後の白画像の領域は、必ずしも輝度画像におけるオブジェクト画像の位置を示すものにはならない。
【0082】
なお、エッジ画像に対して膨張処理し更に侵食処理した画像のことを「加工画像」と呼ぶ。また、この加工画像を示す画像データのことを「加工画像データ」と呼ぶ。
【0083】
図21は、図16のエッジ画像に対して膨張処理し更に侵食処理した結果の加工画像である。上記の説明では膨張処理及び侵食処理の近傍範囲を3×3画素にしていたが、ここでは近傍範囲を7×7画素にしている。
【0084】
エッジ画像の一様領域は、主に黒画像である。このため、加工画像の一様領域も、主に黒画像になる。また、エッジ画像の一様領域にホコリの輪郭を示す白画像がある場合、この白画像は疎らに存在している。このため、加工画像の一様領域では、ホコリの輪郭を示す白画素同士が結合することはほとんどなく、白画像がそのまま疎らに存在する。
【0085】
また、エッジ画像の非一様領域では、白画像が密集している。このため、加工画像の非一様領域では、ほとんどの白画素が結合する。この結果、非一様領域では、白画像の領域が所定の大きさ以上になる。なお、元画像の非一様領域にホコリ画像があったとしても、エッジ画像に対する膨張処理と侵食処理の結果、ホコリの輪郭を示す白画素と、非一様領域の被写体の輪郭を示す白画素が結合されて、一体になる。
【0086】
また、エッジ画像では、ヨットのマストやステー(ワイヤロープ)の線状の白画像は、一部が断線しているが、膨張処理の後に侵食処理を行うことによって、加工画像では、断線していた線が結合する。この結果、侵食処理後のこのような線状の白画像の領域も所定の大きさ以上になる。
【0087】
つまり、加工画像における所定の大きさ以下の白画像は、ホコリ画像に関連していると考えられる。また、加工画像における所定の大きさ以下の白画像の位置は、元画像における一様領域のホコリ画像の位置を示していると考えられる。
【0088】
ところで、コンピュータ3は、膨張処理や侵食処理の近傍範囲の大きさを、原稿の読み取り解像度に応じて変更している。例えば、上記説明では、解像度が「4800dpi」に設定され、近傍範囲は7×7画素である。これに対し、解像度が「2400dpi」に低く設定された場合には、コンピュータ3は、近傍範囲を5×5画素に狭くする。なぜならば、読み取り解像度が低く設定されると、元画像において被写体の輪郭を示す画素の画素間隔が短くなり、膨張処理や侵食処理の近傍範囲が狭くても、白画素同士が十分結合するからである。逆に、読み取り解像度が高く設定されると、元画像において被写体の輪郭を示す画素の間隔が長くなり、膨張処理や侵食処理の近傍範囲が広くなければ、白画素同士が十分結合しなくなる。
【0089】
<ラベリング処理(S105)>
ラベリング処理では、コンピュータ3は、各白画素にラベルを付加することによって、白画素のグループ分けを行う。言い換えると、ラベリング処理では、コンピュータ3は、個々の白画像に対してラベルを付加し、個々の白画像を別々に処理可能な状態にする。
【0090】
図22は、ラベリング処理の説明図である。図中の左側の画像は加工画像を示し、図中の右側はラベリング処理の結果を示している。図中の右側において、各白画素内に描かれた数字は、その白画素に付加されたラベルを示している。
ラベリング処理では、コンピュータ3は、各白画素にラベル(番号)を属性として付加し、連結している白画素に同じラベルを付加することによってグループ分けを行う。具体的には、まず、コンピュータ3は、ラベルの付いていない白画素を検索する。そして、ラベルの付いていない白画素が見つかれば、新しいラベルを付加する。そして、この白画素の4方向に連結している白画素に同じラベルを付加する。更に、同じラベルが付加された白画素の4方向に連結している白画素にも同じラベルを付加する。このような同じラベルを付加する処理を繰り返し、同じラベルを付加できる画素がなくなれば、別のラベルの付いていない白画素を検索し、ラベルの付いていない白画素が見つかれば、新しいラベルを付加し、同様の処理を繰り返す。
【0091】
<孤立点抽出処理(S106)>
孤立点抽出処理では、コンピュータ3は、所定の大きさ以下の白画素の領域を孤立点として抽出する。
【0092】
図23は、孤立点の抽出のフロー図である。図24は、白画素及びこの白画素を囲む矩形領域の説明図である。
まず、コンピュータ3は、同じラベルの付加された白画素を全て抽出する(S161)。そして、コンピュータ3は、白画像を囲む矩形領域を決定する(S162)。具体的には、S161で抽出された全ての白画素のうちのx方向の位置の最大値・最小値及びy方向の位置の最大値・最小値を求め、これらの値に基づいて矩形領域を決定する。
【0093】
次に、コンピュータ3は、矩形領域が所定の大きさ以下か否かを判断する(S163)。矩形領域が所定の大きさ以下であれば、S161で抽出された白画像がホコリ画像と関連するかもしれないので、S164以降の処理を行う。なお、矩形領域が所定の大きさよりも大きければ、S161で抽出された白画像はホコリ画像と無関係であると考えられる。例えば、図21において、一様領域に疎らに存在する白画像に対しては、コンピュータ3はS163でYESと判断する。また、図21において、非一様領域にある白画像に対しては、コンピュータ3はS163でNOと判断する。
【0094】
矩形領域が所定の大きさ以下であれば(S163でYES)、コンピュータ3は、矩形領域の長辺(この場合はb)の2乗に対する白画素の数(S)の割合(R=S/(b×b))を算出する(S164)。つまり、矩形領域の長辺を一辺とする正方形の面積に対する白画素の数の割合を算出する。白画像が点状の場合、割合Rは大きな値になりやすい。一方、白画像が線状の場合、割合Rは小さい値になりやすい。なお、ホコリ画像が点状の場合には割合Rが大きな値になりやすく、ホコリ画像が線状の場合には割合Rが小さな値になりやすい。
【0095】
このS164の処理は、白画像の形状(点状・線状)を区別するための処理であるので、この目的を達せられるのであれば、割合Rの算出に必ずしも矩形領域の長辺の2乗を用いなくても良い。但し、単に矩形領域の面積(a×b)に対する白画素の数(S)の割合(S/(a×b))に基づいて白画像の形状が判定されると、線状の白画像がx方向又はy方向に沿うような場合に誤判定が起こりやすくなる。
【0096】
次に、コンピュータ3は、割合Rと閾値C0とを比較する(S165)。閾値C0は、予め設定された値である。割合Rが閾値C0よりも大きければ(S165でYES)、白画像は点状であると考えられる。また、割合Rが閾値C0よりも小さければ(S165でNO)、白画像は線状であると考えられる。
【0097】
白画像が点状の場合、すなわち割合Rが閾値C0よりも大きい場合(S165でYES)、コンピュータ3は、白画素の数Sと閾値C1とを比較する(S166)。閾値C1も、予め設定された値である。白画素の数Sが閾値C1よりも小さければ(S166でYES)、白画像は、ホコリ画像と関連していると考えられる。一方、白画素の数Sが閾値C1よりも大きければ(S166でNO)、白画像は、ホコリ画像よりも大きい画像であるため、被写体と関連していると考えられる。
【0098】
白画像が線状の場合、すなわち割合Rが閾値C0よりも小さい場合(S165でNO)、コンピュータ3は、白画素の数Sと閾値C2とを比較する(S167)。閾値C2も、予め設定された値である。白画素の数Sが閾値C2よりも小さければ(S167でYES)、白画像は、ホコリ画像と関連していると考えられる。一方、白画素の数Sが閾値C2よりも大きければ(S167でNO)、白画像は、ホコリ画像よりも大きい画像であるため、被写体と関連していると考えられる。
【0099】
白画像がホコリ画像と関連している場合、すなわちS166又はS167でYESの場合、コンピュータ3は、S161で抽出した白画素の位置を記憶する(S168)。この位置は、元画像におけるホコリ画像の位置を示すことになる。
そして、S168の処理の後、又はS166又はS167でNOの場合、又はS163でNOの場合、コンピュータ3は、S161で抽出した白画素に対する処理を終了し、他のラベルの白画素があるか否かを判断する(S169)。もし他のラベルの白画素があれば(S169でYES)、コンピュータ3は、そのラベルの白画素に対して、同様にS161〜S168の処理を行う。また、他のラベルの白画素がなければ(S169でNO)、孤立点抽出処理(図12のS106)を終了する。
【0100】
この孤立点抽出処理(S106)によって、コンピュータ3は、ホコリ画像に関連する白画像の加工画像における位置を取得することができる。そして、加工画素における孤立点(ホコリ画像に関連する白画像)の位置は、元画像におけるホコリ画像の位置と対応している(図20A及び図20B参照)。
【0101】
図25は、図21の加工画像から孤立点を抽出した画像である。この図における位置は、元画像におけるホコリ画像の位置と対応している。すなわち、元画像におけるこの図の白画像の位置に、ホコリ画像が存在している。
【0102】
ところで、本実施形態では、S166の閾値C1とS167の閾値C2が異なる値になっており、閾値C2の方が閾値C1よりも大きい値になっている。すなわち、本実施形態では、コンピュータ3は、白画像の形状(点状・線状)に応じて、ホコリ画像との関連性の有無の判別方法を変えている。この理由について以下に説明する。
【0103】
図26は、S161において抽出される白画像の説明図である。第1白画像W1は、比較的小さい点状画像である。第2白画像W2は、線状画像である。第3白画像W3は、比較的大きい点状画像である。なお、図中に矩形状の点線は、各白画像を囲む矩形領域を示すためのものであり、白画像ではない。
【0104】
元画像に点状のホコリ画像がある場合、加工画像には第1白画像W1のような比較的小さい点状画像が現れる。また、元画像に線状のホコリ画像がある場合、加工画像には第2白画像W2のような線状画像が現れる。一方、元画像の一様領域に被写体の画像が入り込んだ場合、加工画像には第3白画像W3のような比較的大きい点状画像が現れる。
つまり、第1白画像W1のような比較的小さい点状画像はホコリ画像と関連しており、第2白画像W2のような線状画像もホコリ画像と関連している。しかし、第3白画像W3は、第2白画像W2と矩形領域の大きさがあまり変わらないが、ホコリ画像と無関係である。
【0105】
仮に、白画像の形状に関わらず、矩形領域の大きさだけに基づいてホコリ画像と関連するか否かを判別しようとすると(例えば、S163でYESの場合にS168に処理が進むとすると)、第2白画像W2がホコリ画像に関連すると判別されるようになると、第3白画像W3までがホコリ画像に関連すると判別されてしまう。逆に、第3白画像W3がホコリ画像と無関係であると判別されるようになると、第2白画像までがホコリ画像と無関係であると判別されてしまう。つまり、白画像の形状に関わらず、矩形領域の大きさだけに基づいてホコリ画像との関連性を判別すると、誤検出が多発するおそれがある。
【0106】
そこで、本実施形態では、コンピュータ3は、S164及びS165において白画像の形状を判別し、白画像の形状に応じて閾値を変更することによって、白画像の形状(点状・線状)に応じてホコリ画像との関連性の有無の判別方法を変えている。これにより、コンピュータ3は、第2白画像W2がホコリ画像と関連すると判別できるとともに、第3白画像W3はホコリ画像と無関係であると判別できる。
【0107】
図27は、本実施形態のホコリ検出処理により検出されたホコリ画像の位置の説明図である。図28Aは、図27で示した領域の拡大画像である。図28Aの中央には、マストの画像がある。また、図28Aの下部には、建物の画像がある。図28Aの左上から斜め下に、ステー(ワイヤロープ)の画像がある。そして、マストの画像の左右に、2つの点状のホコリ画像がある。
【0108】
===ホコリ除去処理===
ホコリ除去処理は、ホコリ検出処理の結果に基づいて、元画像のホコリ画像を除去する処理である。言い換えると、元画像のホコリ画像を構成する画素データを、他の画素データに変換する処理である。
【0109】
<ボカシ処理>
ホコリ画像などの欠陥画像を除去するための処理としてボカシ処理が知られている。ボカシ処理では、欠陥画像をぼかすことによって、欠陥画像を目立たなくさせることができる。
しかし、ボカシ処理では欠陥画像以外の画像にも、ボカシ処理の効果が及んでしまう。つまり、ボカシ処理では、被写体の画像を破壊してしまう。
図28Bは、図28Aのホコリ画像に対してボカシ処理を行った結果の画像である。ボカシ処理の効果により、ホコリ画像は目立たなくなっている。しかし、中央のマストの画像が薄くなり、左上から斜め下にあるステーの画像が破断し、右下の建物の窓の画像が薄くなってしまっている。
【0110】
<メディアンフィルタ>
ホコリ画像を除去するために、メディアンフィルタ処理を利用することができる。メディアンフィルタ処理では、コンピュータ3は、注目画素を中心とするn×n画素の範囲(近傍範囲)の画素データの中央値(メディアン)を、注目画素の画素データにする。以下、この処理について説明する。
【0111】
図29は、メディアンフィルタ処理を利用したホコリ除去処理のフロー図である。このホコリ除去処理は、スキャナドライバがコンピュータ3にホコリ検出処理後に画像処理させることによって、行われる。つまり、スキャナドライバは、図中の各処理をコンピュータ3に実行させるためのプログラムコードを有する。
【0112】
また、図30は、メディアンフィルタを利用したホコリ除去処理の様子の説明図である。図中の升目は画素を表し、斜線でハッチングされた升目は、ホコリ画像と判別された画素を表す。また、画素を示す升目内には、その画素に対応する画素データを示している。ここではスペースの都合上、画素(j,i)の画素データを「Pji」と表記している。また、図中において、注目画素を太実線で示し、近傍範囲を太点線で示している。ここでは近傍範囲は、説明の簡略化のため注目画素を中心とする3×3画素の範囲としているが、実際には、注目画素を中心とする7×7画素の範囲になる。なお、後で中央値を求めるため、近傍範囲の画素数は奇数になるように設定される。
【0113】
まずコンピュータ3は、ホコリ画素の検索を行う(S201)。検索すべきホコリ画素の位置は、前述のS168において保存された白画素の位置である。まず、左上の画素から右へ順に検索が行われ、左から右への検索が上から順に行われる。つまり、コンピュータ3は、画素(1,1)→画素(1,2)→・・・→画素(1,6)→画素(2,1)→画素(2,2)→・・・の順に、ホコリ画素の検索を行う。ここでは最初に、画素(3,3)がホコリ画素として検索される(図30左上図参照)。
【0114】
次に、コンピュータ3は、注目画素の画素データを、近傍範囲の画素データの中央値に置換する(S202)。ここでは、画素(3,3)が注目画素になるので、コンピュータ3は、P22、P23、P24、P32、P33、P34、P42、P43及びP44の9個の画素データのそれぞれの輝度データ(Yデータ)を求め、9個の輝度データの中央値を求め、中央値となる画素の画素データを画素(3,3)の画素データにする。この近傍範囲の9個の画素のうちの6個はホコリ画素ではないので、中央値となる画素は、ホコリ画素ではない画素になる可能性が高い。つまり、ホコリ画素であった画素(3,3)の画素データは、メディアンフィルタを適用された結果、ホコリ画素以外の画素の画素データに置換される。なお、画素(3,3)の新しい画素データを「N33」とする(図30右上図参照)。
【0115】
コンピュータ3は、全てのホコリ画素の処理を終了したか否かを判断し(S203)、未処理のホコリ画素があれば、上記の処理S201及びS202を繰り返す。ここでは、未処理のホコリ画素が3つあるので、S203の判断はNOになる。
【0116】
次に、S201において画素(3,4)がホコリ画素として検出される(図30左下図参照)。画素(3,4)が注目画素になるので、コンピュータ3は、P23、P24、P25、N33、P34、P35、P43、P44、P45の9個の画素データのそれぞれの輝度データを求め、9個の輝度データの中央値を求め、中央値となる画素の画素データを画素(3,4)の画素データにする。このように、近傍範囲の画素の画素データが新しい画素データになっている場合には、その新しい画素データ(例えば、画素(3,3)のN33)を用いて中央値を求める。なお、画素(3,4)の新しい画素データを「N34」とする(図30右下図参照)。
【0117】
コンピュータ3は、このような処理を繰り返し、残りの画素(4,4)及び画素(4,5)の画素データを変換する。そして、全てのホコリ画素の処理が終了すれば(S203でYES)、コンピュータは、ホコリ除去処理を終了する。
【0118】
ランダムフィルタは、ランダムなノイズの除去に有効であることが知られている。一方、ホコリ画像は一様領域にあるため、ホコリ画像は周囲の画像の性質と無関係なランダムなノイズに近い状態になっている。このため、ランダムフィルタを利用してホコリ除去処理を行えば、周囲の画像の破壊を抑えつつ、有効にホコリ画像を除去できる。
【0119】
しかし、この方法では、ホコリ除去後の画像において、ホコリ画像の部分で画像の変化が急激になる確立が高く、不自然な画像になるおそれもある。また、この方法では、ホコリ画素が大きな塊状になっている場合、ホコリ画素の画素データでホコリ画素の画素データを置換するおそれがあるため、ホコリ画素を除去できないおそれがある。
【0120】
例えば図31に示すようにホコリ画素が大きな塊状になっている場合、画素(3,3)に対してメディアンフィルタを適用するとき、この近傍範囲の9個の画素のうちの5個がホコリ画素であるため、中央値になる画素がホコリ画素になる可能性が高い。このような場合、新しい画素データN33がホコリ画素の画素データになるおそれがある。
【0121】
そこで、本実施形態では、以下のホコリ除去処理を行っている。
【0122】
<本実施形態のホコリ除去処理>
図32は、本実施形態のホコリ除去処理のフロー図である。このホコリ除去処理は、スキャナドライバがコンピュータ3にホコリ検出処理後に画像処理させることによって、行われる。つまり、スキャナドライバは、図中の各処理をコンピュータ3に実行させるためのプログラムコードを有する。また、図33A〜図33Cは、本実施形態のホコリ除去処理の様子の説明図である。図34は、近傍画素にフィルタ処理を適用する順序の説明図である。
【0123】
まずコンピュータ3は、ホコリ画素の検索を行う(S301)。検索すべきホコリ画素の位置は、前述のS168において保存された白画素の位置である。まず、左上の画素から右へ順に検索が行われ、左から右への検索が上から順に行われる。つまり、コンピュータ3は、画素(1,1)→画素(1,2)→・・・→画素(1,6)→画素(2,1)→画素(2,2)→・・・の順に、ホコリ画素の検索を行う。ここでは最初に、画素(3,3)がホコリ画素として検索される(図33A左上図参照)。
【0124】
次に、コンピュータ3は、注目画素の画素データではなく、近傍画素の画素データを、近傍画素の近傍範囲のホコリ画素以外の画素データの中央値に置換する(S302)。すなわち、コンピュータ3は、注目画素に対してではなく、まず近傍範囲の画素に対して、メディアンフィルタ処理に類似したフィルタ処理をそれぞれ行う(S302)。なお、近傍画素の近傍範囲のホコリ画素以外の画素の数が偶数の場合、中央値となる画素は2つになり、この2つの画素の画素データの平均値を、近傍画素の近傍範囲のホコリ画素以外の画素データの中央値とする。また、ホコリ画素以外の画素データに基づいて中央値を求めているが、既にホコリ画素の画素データがホコリ画素以外の画素データに置換されている場合には、置換後の画素データを中央値算出に用いる。
【0125】
以下、S302の処理について詳述する。
まず、コンピュータ3は、図34において1番目の画素に対応する画素(2,2)の画素データを、画素(2,2)の近傍範囲のホコリ画素以外の画素データの中央値に置換する(図33A左上図及び右上図)。コンピュータ3は、P11、P12、P13、P21、P22、P23、P31及びP32の8個の画素データのそれぞれの輝度データ(Yデータ)を求め、8個の輝度データの中央値を求め、中央値となる画素の画素データを画素(2,2)の画素データにする。ここでは、画素(2,2)の近傍範囲のホコリ画素以外の画素の数が8個であり偶数であるため、中央値となる画素は2つになる。このため、2つの画素の画素データの平均値を画素(2,2)の画素データにする。画素(2,2)の新しい画素データを「N22」とする(図33A右上図参照)。
【0126】
次に、コンピュータ3は、図34において2番目の画素に対応する画素(2,3)の画素データを、画素(2,3)の近傍範囲のホコリ画素以外の画素データの中央値に置換する(図33A左中央図及び右中央図)。コンピュータ3は、P12、P13、P14、N22、P23、P24及びP32の7個の画素データのそれぞれの輝度データ(Yデータ)を求め、7個の輝度データの中央値を求め、中央値となる画素の画素データを画素(2,3)の画素データにする。画素(2,3)の新しい画素データを「N23」とする(図33A右中央図参照)。
【0127】
同様に、コンピュータ3は、図34において3番目及び4番目に対応する画素(画素(3,2)及び画素(2,4))に対しても、同じようなフィルタ処理を行う。画素(3,2)の新しい画素データを「N32」とし、画素(2,4)の新しい画素データを「N24」とする。
【0128】
次に、コンピュータ3は、図34において5番目の画素に対応する画素(4,2)の画素データを、画素(2,2)の近傍範囲のホコリ画素以外の画素データの中央値に置換する(図33A左中央図及び右中央図)。コンピュータ3は、P31、N32、P41及びP51の4個の画素データのそれぞれの輝度データ(Yデータ)を求め、4個の輝度データの中央値を求め、中央値となる画素の画素データを画素(4,2)の画素データにする。これにより、ホコリ画素であった画素(4,2)の画素データは、ホコリ画素以外の画素の画素データに置換される。画素(4,2)の新しい画素データを「N42」とする(図33A右下図参照)。
【0129】
同様に、コンピュータ3は、図34において6番目に対応する画素(3,4)に対しても、同じようなフィルタ処理を行う(図33B左上図及び右上図)。これにより、ホコリ画素であった画素(3,4)の画素データは、フィルタ処理された結果、ホコリ画素以外の画素の画素データに置換される。画素(3,4)の新しい画素データを「N34」とする(図33B右上図参照)。
【0130】
次に、コンピュータ3は、図34において7番目に対応する画素(4,3)に対しても、同じようなフィルタ処理を行う(図33B左中央図及び右中央図)。このとき、ホコリ画素であった画素(4,2)及び画素(3,4)の画素データは、既にホコリ画素以外の画素データに置換されている。このため、画素(4,3)の近傍範囲には、初めはホコリ画素以外の画素は1つだけ(画素(3,2)だけ)であったが、この段階ではホコリ画素以外の画素が3つ存在している。コンピュータ3は、N32、N34及びN42の3個の画素データのそれぞれの輝度データ(Yデータ)を求め、3個の輝度データの中央値を求め、中央値となる画素の画素データを画素(4,3)の画素データにする。これにより、ホコリ画素であった画素(4,3)の画素データは、ホコリ画素以外の画素の画素データに置換される。画素(4,3)の新しい画素データを「N43」とする(図33B右中央図参照)。
【0131】
最後に、コンピュータ3は、図34において8番目に対応する画素(4,4)に対しても、同じようなフィルタ処理を行う(図33B左下図及び右下図)。このとき、ホコリ画素であった画素(3,4)及び画素(4,3)の画素データは、既にホコリ画素以外の画素データに置換されている。このため、画素(4,4)の近傍範囲には、初めはホコリ画素以外の画素は無かったが、この段階ではホコリ画素以外の画素が2つ存在している。コンピュータ3は、N34及びN43の2個の画素データの平均値を中央値として求め、画素(4,4)の画素データにする。これにより、ホコリ画素であった画素(4,4)の画素データは、ホコリ画素以外の画素の画素データに置換される。画素(4,4)の新しい画素データを「N44」とする(図33B右下図参照)。
【0132】
以上の処理によって、S302の処理が終了する。S302の処理が終了したとき、図33B右下図に示すように、注目画素(3,3)の近傍画素の画素データは、ホコリ画素以外の画素データに置換されている。
【0133】
そこで、コンピュータ3は、注目画素の画素データを、注目画素の近傍範囲の画素データの中央値に置換する(S303)。ここでは、画素(3,3)が注目画素になるので、コンピュータ3は、N22、N23、N24、N32、P33、N34、N42、N43及びN44の9個の画素データのそれぞれの輝度データ(Yデータ)を求め、9個の輝度データの中央値を求め、中央値となる画素の画素データを画素(3,3)の画素データにする(図33C左上図)。
【0134】
注目画素の近傍範囲の9個の画素のうちの8個(注目画素以外の画素)はホコリ画素ではないので、中央値となる画素は、ホコリ画素ではない画素になる可能性が非常に高い。特に、本実施形態では、ホコリ画素の周囲の画素は一様領域の画素なので、近傍範囲のホコリ画素以外の画素の画素データは近似しているため、ホコリ画素の画素データP33はホコリ画素以外の画素データと比べて特異な値になるので、中央値となる画素は、ホコリ画素ではない画素になる可能性が非常に高い。つまり、ホコリ画素であった画素(3,3)の画素データは、ホコリ画素以外の画素の画素データに置換される。画素(3,3)の新しい画素データを「N33」とする(図33C右上図参照)。
【0135】
以上の処理によって、ホコリ画素である画素(3,3)の画素データが置換され、この位置のホコリ画素が除去される。このため、コンピュータ3は、前述のS168において保存された白画素の位置から、画素(3,3)の位置を消去する。これにより、保存されている白画素の位置に対応する範囲は、図33C左中央図の太線で示す通りになる。
【0136】
コンピュータ3は、全てのホコリ画素の処理を終了したか否かを判断し(S304)、未処理のホコリ画素があれば、上記の処理S301〜S304を繰り返す。ここでは、未処理のホコリ画素があるので、S304の判断はNOになる。
【0137】
次に、S301において画素(3,4)がホコリ画素として検出される(図33C右中央図参照)。そして、S302において、画素(2,3)→画素(2,4)→画素(3,3)→画素(2,5)→画素(4,3)→画素(3,5)→画素(4,4)→画素(4,5)の順に、コンピュータ3は近傍画素にフィルタ処理を行う。既に置換された画素データNjiが更に置換される場合、その新しい画素データを「NNji」とする(図33C左下図)。そして、S303において、コンピュータ3は、注目画素である画素(3,4)の画素データを、注目画素の近傍範囲の画素データの中央値に置換する。画素(3,3)の新しい画素データを「NN33」とする(図33C右下図)。
【0138】
コンピュータ3は、このような処理を繰り返し、残りのホコリ画素の画素データを変換する。そして、全てのホコリ画素の処理が終了すれば(S304でYES)、コンピュータは、ホコリ除去処理を終了する。
【0139】
以上の説明の通り、本実施形態では、まず注目画素の近傍画素に対してフィルタ処理を行い(S302)、その後に注目画素に対してメディアンフィルタ処理を行っている。この結果、ホコリ画像の部分での画像の変化が緩やかになり、ホコリ除去後の画像が自然な画質になる。また、注目画素に対してメディアンフィルタ処理を行う際に、中央値になる画素がホコリ画素になる可能性が低くなるため、ホコリ画素の画素データでホコリ画素の画素データを置換する可能性も低くなり、ホコリ画像を除去できる。
【0140】
図28Cは、図28Aのホコリ画像に対して本実施形態のホコリ除去処理を行った結果の画像である。ホコリ除去処理により、ホコリ画像が完全になくなっている。また、図28Bの画像と比較すると、図28Cでは、中央のマストの画像や、左上から斜め下にあるステー(ワイヤロープ)の画像や、右下の建物の窓の画像が破壊されていない。
【0141】
ここで、図34に示すような順序で近傍画素にフィルタ処理を適用した理由について説明する。以下に説明するとおり、図34の順序は、ホコリ画素の検索(S301)に関連している。
【0142】
図35は、S301におけるホコリ画素の検索の様子の説明図である。画素を示す升目内の記号は、画素の位置を示す。ホコリ画素の検索(S301)では、左上の画素から右へ順に検索が行われ、左から右への検索が上から順に行われる。ここでは、斜線のハッチングで示す画素(j,i)がホコリ画素として検索されたものとする。
【0143】
画素(j,i)がホコリ画素として検出されたということは、既に検索対象となった既検索画素(図中の太線で示す画素)は、ホコリ画素ではないことになる。すなわち、画素(j,i)よりも上側(y方向マイナス側)の画素はホコリ画素ではなく、画素(j,i)とy方向の位置が同じであって左側(x方向マイナス側)の画素もホコリ画素ではないことになる。特に、画素(j,i)の左上画素(j−1,i−1)、上画素(j−1,i)、右上画素(j−1,i+1)及び左画素(j,i−1)は、ホコリ画素ではないことになる。
【0144】
一方、未だ検索対象になっていない未検索画素(図中の太線でない画素)は、ホコリ画素か否か未知である。すなわち、画素(j,i)よりも下側(y方向プラス側)の画素はホコリ画素か否か未知であり、画素(j,i)とy方向の位置が同じであって右側(x方向プラス側)の画素もホコリ画素か否か未知である。特に、画素(j,i)の右画素(j,i+1)、左下画素(j+1,i−1)、下画素(j+1,i)及び右下画素(j+1,i+1)は、ホコリ画素か否か未知である。
【0145】
そこで、本実施形態では、既検索画素を未検索画素よりも、S302における近傍画素の処理順序を優先させている。具体的には、図34に示す通り、左上画素、上画素、右上画素及び左画素の順番(1番〜4番)は、右画素、左下画素、下画素及び右下画素の順番(5番〜8番)よりも早くなっている。
【0146】
また、本実施形態では、同じ既検索画素同士であっても、左側(x方向マイナス側)の画素を右側の画素よりも、S302における近傍画素の処理順序を優先させている。具体的には、図34に示す通り、左上画素の順番(1番)は上画素の順番(2番)よりも早く、上画素の順番(2番)は右上画素の順番(4番)よりも早くなっている。これは、左側の画素の方が、当初から近傍範囲に既検索画素を多く含むため、中央値を求める際に多くの画素データを考慮することができるので、フィルタ処理結果が良質になるからである。仮に右側の画素を優先させると、例えば上画素のフィルタ処理結果(良質でない処理結果)が左上画素のフィルタ処理に影響を与え、左上画素のフィルタ処理結果が劣化してしまう。
【0147】
同様に、本実施形態では、同じ既検索画素同士であっても、上側(y方向マイナス側)の画素を下側の画素よりも、S302における近傍画素の処理順序を優先させている。具体的には、図34に示す通り、左上画素の順番(1番)は、左画素の順番(3番)よりも早くなっている。これは、上側の画素の方が、当初から近傍範囲に既検索画素を多く含むため、中央値を求める際に多くの画素データを考慮することができるので、フィルタ処理結果が良質になるからである。仮に下側の画素を優先させると、例えば左画素のフィルタ処理結果(良質でない処理結果)が左上画素のフィルタ処理に影響を与え、左上画素のフィルタ処理結果が劣化してしまう。
【0148】
なお、右上画素と左画素との間では、一方のフィルタ処理結果が他方のフィルタ処理結果に影響を与えない関係なので、図34に示す順序(3番と4番)が逆になっても良い。
【0149】
また、本実施形態では、同じ未検索画素同士であっても、左側(x方向マイナス側)の画素を右側の画素よりも、S302における近傍画素の処理順序を優先させている。具体的には、図34に示す通り、左下画素の順番(5番)は下画素の順番(7番)よりも早く、下画素の順番(7番)は右下画素の順番(8番)よりも早くなっている。これは、左側の画素の方が、当初から近傍範囲に既検索画素を多く含むためである。また、左側(x方向マイナス側)の画素を右側の画素よりも優先させてフィルタ処理を行うことにより、右側の画素のフィルタ処理を行うとき、中央値を求める際に多くの画素データを考慮することができるようになる(例えば、図33B左中央図に示す画素(4,3)のフィルタ処理を行うとき、3つの画素データに基づいて中央値を求めることができる)。仮に右側の画素を優先させると、右側の画素をフィルタ処理する際に、少ない画素データに基づいて中央値を求めることになる。
【0150】
同様に、本実施形態では、同じ未検索画素同士であっても、上側(y方向マイナス側)の画素を下側の画素よりも、S302における近傍画素の処理順序を優先させている。具体的には、図34に示す通り、右画素の順番(6番)は、右下画素の順番(8番)よりも早くなっている。これは、上側の画素の方が、当初から近傍範囲に既検索画素を多く含むためである。また、上側(y方向マイナス側)の画素を下側の画素よりも優先させてフィルタ処理を行うことにより、下側の画素のフィルタ処理を行うとき、中央値を求める際に多くの画素データを考慮することができるようになる(例えば、図33B左下図に示す画素(4,4)のフィルタ処理を行うとき、2つの画素データに基づいて中央値を求めることができる)。仮に下側の画素を優先させると、下側の画素をフィルタ処理する際に、少ない画素データに基づいて中央値を求めることになる。
【0151】
なお、右画素と左下画素との間では、一方のフィルタ処理結果が他方のフィルタ処理結果に影響を与えない関係なので、図34に示す順序(5番と6番)が逆になっても良い。
【0152】
したがって、本実施形態では、図34に示す順序に従ってS302における近傍画素のフィルタ処理を行う結果、S303において注目画素に対してメディアンフィルタを適用する際に、中央値となる画素がホコリ画素になる可能性は極端に低くなる。このため、ホコリ画素の画素データでホコリ画素の画素データを置換するおそれもなくなり、ホコリ画像を完全に除去できる。
【0153】
===その他の実施の形態===
一実施形態としての複合装置等を説明したが、上記の実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれることは言うまでもない。
【0154】
<ホコリ画像について>
前述の実施形態では、欠陥画像としてホコリ画像について説明をしているが、欠陥画像はホコリ画像に限られるものではない。例えば、欠陥画像は、元画像に含まれるノイズであっても良い。そして、前述のホコリ検出方法と同様の方法によれば、元画像に含まれるノイズ等の欠陥画像を検出でき、前述のホコリ除去方法と同様の方法によれば、元画像に含まれるノイズ等の欠陥画像を除去できる。
【0155】
<スキャナドライバ>
前述の実施形態では、スキャナドライバが、コンピュータ3にホコリ検出処理とホコリ除去処理をさせている。しかし、これに限られるものではない。スキャナドライバとは別の画像処理プログラムがコンピュータ3にインストールされ、この画像処理プログラムが、コンピュータ3にホコリ検出処理とホコリ除去処理をさせても良い。また、ホコリ検出処理を行うためのプログラムとホコリ除去処理を行うプログラムを別々にしても良い。
【0156】
また、前述の実施形態では、スキャナ機能時に、ホコリ検出処理とホコリ除去処理が行われている。しかし、これに限られるものではない。例えば、コピー機能時に、ホコリ検出処理やホコリ除去処理が行われても良い。この場合、コントローラ60が、スキャナ部10から取得した画像データに対して、ホコリ検出処理やホコリ除去処理を行うことになる。
【0157】
<S302について>
前述の実施形態では、S302において、コンピュータ3は、注目画素の全ての近傍画素に対してフィルタ処理を行っている。しかし、S302において、コンピュータ3は、注目画素の近傍範囲のうちのホコリ画素に対してのみフィルタ処理を行っても良い。また、S302において、コンピュータ3は、注目画素の近傍範囲のうちの未検索画素に対してのみフィルタ処理を行っても良い。このようにすれば、フィルタ処理の回数を減らすことができ、ホコリ除去処理の処理速度を速くすることができる。
【0158】
===まとめ===
(1)前述の実施形態では、まず、コンピュータ3は、注目画素を決定する(図32のS301)。そして、コンピュータ3は、注目画素を決定した後に、注目画素の近傍画素(注目画素の周囲にある周囲画素)に対してフィルタ処理を行って、近傍画素の画素データ(つまり階調値)を変更する(図32のS302、図33A及び図33B)。そして、コンピュータ3は、フィルタ処理後の近傍画素に基づいて、注目画素の画素データ(つまり階調値)を変更する(図32のS303、図33C左上図及び右上図)。
これにより、注目画素に対してメディアンフィルタ処理を行う際に、ホコリ画素をホコリ画素で置換する可能性を低くできる(図33C左上図及び右上図)。
【0159】
(2)前述の実施形態では、コンピュータ3は、注目画素の画素データ(つまり階調値)を変更する際に、注目画素に対してメディアンフィルタ処理を行っている。ここで、メディアンフィルタ処理とは、近傍範囲の画素データの中央値を注目画素の画素データにする処理である。そして、コンピュータ3は、前述の実施形態では注目画素に対してメディアンフィルタ処理を行う前に近傍画素にフィルタ処理を行うことになる。
このため、前述の実施形態では、注目画素に対してメディアンフィルタ処理を行う際に、ホコリ画素をホコリ画素で置換する可能性を低くできる(図33C左上図及び右上図)。
ところで、注目画素に対するフィルタ処理は、メディアンフィルタ処理に限られず、例えば、近傍範囲の画素データの平均値を注目画素の画素データにしても良い。但し、メディアンフィルタ処理であれば、注目画素の画素データを、ホコリ画素の影響の無い画素データにすることができるので、望ましい。
【0160】
(3)前述の実施形態では、コンピュータ3は、近傍範囲の複数の近傍画素に対してフィルタ処理を行う際に、所定の優先順序に従って、各近傍画素に対してフィルタ処理を行う(図34参照)。
【0161】
(4)そして、この優先順序は、注目画素を決定する際の検索順序に対応して(図35参照)、設定されている。
【0162】
(5)例えば、注目画素の検索順序(S301)が、図35に示すように、左上の画素から右へ順に行われ、左から右への検索が上から順に行われるような場合においては、注目画素を中心として左上画素の順番(1番)が上画素の順番(2番)よりも早くなるように、また、このような検索順序においては、上画素の順番(2番)が右上画素の順番(4番)よりも早くなるように、近傍画素に対するフィルタ処理の優先順序が設定されている(図34参照)。また、このような検索順序においては、注目画素を中心として左上画素の順番(1番)が左画素の順番(3番)よりも早くなるように、近傍画素に対するフィルタ処理の優先順序が設定されている(図34参照)。また、このような検索順序においては、左下画素の順番(5番)が下画素の順番(7番)よりも早くなるように、また、下画素の順番(7番)は右下画素の順番(8番)よりも早くなるように、近傍画素に対するフィルタ処理の優先順序が設定されている(図34参照)。また、このような検索順序においては、右画素の順番(6番)は、右下画素の順番(8番)よりも早くなっている。
これにより、近傍画素に対するフィルタ処理の結果が良質になるので、注目画素に対するメディアンフィルタ処理結果も良質になり、画像処理後の画質が向上する。
【0163】
(6)前述の実施形態では、コンピュータ3は、近傍画素に対するフィルタ処理の際に(図32のS302、図33A及び図33B)、近傍画素の近傍範囲の欠陥画素以外の画素に基づいて、近傍画素の画素データを変更している。これにより、注目画素に対してメディアンフィルタ処理を行う場合であっても、ホコリ画素をホコリ画素で置換する可能性を低くできる(図33C左上図及び右上図)。
【0164】
(7)前述の実施形態では、注目画素を決定する前に、コンピュータ3は、まず、元画像の輝度画像に対してエッジ処理を行ってエッジ画像を取得し(図12のS102、図15A〜図15C、図16参照)、エッジ画像に対して膨張処理(図12のS103、図17参照)を行った後に侵食処理(図12のS104、図18参照)を行って加工画像を取得し(図21参照)、加工画像の中から所定の大きさ以下の白画像(孤立点)を検出し(S163)、検出された白画像に基づいて元画像の中のホコリ画像を検出する。これにより、元画像の一様領域にあるホコリ画像を精度良く検出することができる。なお、この方法では非一様領域にあるホコリ画像は検出し難いが、非一様領域にあるホコリ画像は目立たないので問題はない。また、仮に非一様領域のホコリ画像が検出できても、このようなホコリ画像は除去しにくいので、非一様領域のホコリ画像が検出できなくても問題は少ない。
そして、前述の実施形態では、検出されるホコリ画素の周囲の画素は一様領域の画素なので、近傍範囲のホコリ画素以外の画素の画素データは近似している。このため、ホコリ画素の画素データはホコリ画素以外の画素データと比べて特異な値になる。従って、注目画素に対してメディアンフィルタ処理を行う際に、中央値となる画素は、ホコリ画素ではない画素になる可能性が非常に高くなる。つまり、前述の実施形態によれば、ホコリ画素をホコリ画素で置換する可能性を極めて低くできる。
【0165】
(8)前述の実施形態の全ての構成要素を備えれば、全ての効果が得られるので望ましい。但し、必ずしも前述の実施形態の全ての構成要素を備える必要は無い。例えば、ホコリ検出方法が別の方法であっても、本実施形態のホコリ除去方法の効果を得ることはできる。
【0166】
(9)前述のコンピュータ3は、画像処理プログラムであるスキャナドライバがインストールされているため、画像処理装置となる。スキャナドライバは、このコンピュータ3に、注目画素を決定させる(図32のS301)。そして、スキャナドライバは、コンピュータ3に、注目画素を決定させた後に、注目画素の近傍画素(注目画素の周囲にある周囲画素)に対してフィルタ処理を行わせて、近傍画素の画素データ(つまり階調値)を変更させる(図32のS302、図33A及び図33B)。そして、スキャナドライバは、コンピュータ3に、フィルタ処理後の近傍画素に基づいて、注目画素の画素データ(つまり階調値)を変更させる(図32のS303、図33C左上図及び右上図)。
これにより、注目画素に対してメディアンフィルタ処理を行う際に、ホコリ画素をホコリ画素で置換する可能性を低くできる(図33C左上図及び右上図)。
【0167】
(10)前述のコンピュータ3は、不図示であるが、CPU等の演算処理部と、メモリ等の記憶部とを備えている。そして、コンピュータ3のCPUは、メモリに記憶された元画像(ディジタル画像)から注目画素を決定する(図32のS301)。そして、コンピュータ3のCPUは、注目画素を決定した後に、注目画素の近傍画素(注目画素の周囲にある周囲画素)に対してフィルタ処理を行って、近傍画素の画素データ(つまり階調値)を変更する(図32のS302、図33A及び図33B)。そして、コンピュータ3のCPUは、フィルタ処理後の近傍画素に基づいて、注目画素の画素データ(つまり階調値)を変更する(図32のS303、図33C左上図及び右上図)。
これにより、注目画素に対してメディアンフィルタ処理を行う際に、ホコリ画素をホコリ画素で置換する可能性を低くできる(図33C左上図及び右上図)。これにより、前述のコンピュータ3は、画像処理装置として機能する。
【図面の簡単な説明】
【0168】
【図1】複合装置の全体斜視図である。
【図2】複合装置の構成のブロック図である。
【図3】プリンタ部の説明図である。
【図4】スキャナ部の説明図である。
【図5】パネル部の説明図である。
【図6】フィルムホルダの格納場所の説明図である。
【図7】フィルムを読み取るためにセットする様子の説明図である。
【図8】スキャナドライバのユーザインターフェイスの説明図である。
【図9】M×N画素からなる画像の説明図である。
【図10】元画像データの示す元画像の一例である。
【図11】一様領域と非一様領域の説明図である。
【図12】ホコリ検出処理のフロー図である。
【図13】エッジ処理のフロー図である。
【図14】図14Aは、x方向の勾配の算出に用いられるソーベルフィルタの説明図である。図14Bは、y方向の勾配の算出に用いられるソーベルフィルタの説明図である。
【図15】図15A〜図15Cは、輝度画像と、エッジ画像との関係の説明図である。図中の升目は画素を示している。
【図16】図10の画像のエッジ画像である。
【図17】図17A〜図17Cは、膨張処理前の画像と、膨張処理後の画像との関係の説明図である。
【図18】図18A〜図18Cは、侵食処理前の画像と、侵食処理後の画像との関係の説明図である。
【図19】図19A〜図19Cは、エッジ画像と、侵食処理後の画像との関係の説明図である。
【図20】図20A〜図20Cは、侵食処理後の画像と、輝度画像との関係の説明図である。
【図21】図16のエッジ画像に対して膨張処理し更に侵食処理した結果の加工画像である。
【図22】ラベリング処理の説明図である。
【図23】孤立点の抽出のフロー図である。
【図24】白画素及びこの白画素を囲む矩形領域の説明図である。
【図25】図21の加工画像から孤立点を抽出した画像である。
【図26】S161において抽出される白画像の説明図である。
【図27】本実施形態のホコリ検出処理により検出されたホコリ画像の位置の説明図である。
【図28】図28Aは、図27で示した領域の拡大画像である。図28Bは、図28Aのホコリ画像に対してボカシ処理を行った結果の画像である。図28Cは、図28Aのホコリ画像に対して本実施形態のホコリ除去処理を行った結果の画像である。
【図29】メディアンフィルタ処理を利用したホコリ除去処理のフロー図である。
【図30】メディアンフィルタを利用したホコリ除去処理の様子の説明図である。
【図31】メディアンフィルタを利用したホコリ除去処理の問題点の説明図である。
【図32】本実施形態のホコリ除去処理のフロー図である。
【図33A】本実施形態のホコリ除去処理の様子の第1説明図である。
【図33B】本実施形態のホコリ除去処理の様子の第2説明図である。
【図33C】本実施形態のホコリ除去処理の様子の第3説明図である。
【図34】近傍画素にフィルタ処理を適用する順序の説明図である。
【図35】S301におけるホコリ画素の検索の様子の説明図である。
【符号の説明】
【0169】
1 複合装置、1A 上部収容部、1B 下部収容部、3 コンピュータ、
10 スキャナ部、11 上蓋、
112 原稿マット、114 フィルムホルダ、116 透過原稿用光源、
12 原稿台ガラス、
20 プリンタ部、21 キャリッジ、22 背面給紙口、23 前面給紙口、
24 排紙トレイ、25 インクカートリッジカバー、26 インクカートリッジ、
30 カードリーダ部、
40 パネル部、41 液晶ディスプレイ、42 電源ボタン、43 設定ボタン、
44 ストップボタン、45 モード選択ボタン、46 カーソル操作ボタン群、
47 スタートボタン、47C カラーボタン、47B モノクロボタン、
45 モード選択ボタン、
60 コントローラ、
90 SDRAM

【特許請求の範囲】
【請求項1】
注目画素を決定した後に、前記注目画素の周囲にある周囲画素に対してフィルタ処理を行って、前記周囲画素の階調値を変更し、
前記フィルタ処理後の前記周囲画素に基づいて、前記注目画素の階調値を変更する
ことを特徴とする画像処理方法。
【請求項2】
請求項1に記載の画像処理方法であって、
前記注目画素の階調値を変更する際に、前記注目画素に対してメディアンフィルタ処理を行う
ことを特徴とする画像処理方法。
【請求項3】
請求項1又は2に記載の画像処理方法であって、
複数の前記周囲画素に対して前記フィルタ処理を行う際に、所定の優先順序に従って、各周囲画素に対してフィルタ処理を行う
ことを特徴とする画像処理方法。
【請求項4】
請求項3に記載の画像処理方法であって、
前記優先順序は、前記注目画素を決定する際の検索順序に対応して、設定されている
ことを特徴とする画像処理方法。
【請求項5】
請求項4に記載の画像処理方法であって、
前記注目画素の周囲に第1周囲画素及び第2周囲画素があり、前記第1周囲画素に対して前記フィルタ処理を行う際に前記第2周囲画素が用いられ、前記第2周囲画素に対して前記フィルタ処理を行う際に前記第1周囲画素が用いられる場合であって、前記検索順序が前記第1周囲画素の方が前記第2周囲画素よりも早い場合、
前記第1周囲画素に対してフィルタ処理を行って前記第1周囲画素の階調値を変更した後に、前記第2周囲画素に対してフィルタ処理を行って前記第2周囲画素の階調値を変更し、
フィルタ処理後の前記第1周囲画素及び前記第2周囲画素に基づいて前記注目画素の階調値を変更する
ことを特徴とする画像処理方法。
【請求項6】
請求項1〜5のいずれかに記載の画像処理方法であって、
前記フィルタ処理の際に、前記周囲画素の周囲の欠陥画素以外の画素に基づいて、前記周囲画素の階調値を変更する
ことを特徴とする画像処理方法。
【請求項7】
請求項1〜6のいずれかに記載の画像処理方法であって、
前記注目画素を決定する前に、元画像に対してエッジ処理を行ってエッジ画像を取得し、前記エッジ画像に対して膨張処理を行った後に侵食処理を行った加工画像の中から、所定の大きさ以下の孤立点を検出し、前記孤立点に基づいて前記元画像における欠陥画素の位置を検出し、
前記注目画素を決定する際に、前記欠陥画素の位置に基づいて、前記元画像から前記注目画素を決定する
ことを特徴とする画像処理方法。
【請求項8】
(1)注目画素を決定した後に、前記注目画素の周囲にある周囲画素に対してフィルタ処理を行って、前記周囲画素の階調値を変更し、
前記フィルタ処理後の前記周囲画素に基づいて、前記注目画素の階調値を変更し、
(2)前記注目画素の階調値を変更する際に、前記注目画素に対してメディアンフィルタ処理を行い、
(3)複数の前記周囲画素に対して前記フィルタ処理を行う際に、所定の優先順序に従って、各周囲画素に対してフィルタ処理を行い、
(4)前記優先順序は、前記注目画素を決定する際の検索順序に対応して、設定されており、
(5)前記注目画素の周囲に第1周囲画素及び第2周囲画素があり、前記第1周囲画素に対して前記フィルタ処理を行う際に前記第2周囲画素が用いられ、前記第2周囲画素に対して前記フィルタ処理を行う際に前記第1周囲画素が用いられる場合であって、前記検索順序が前記第1周囲画素の方が前記第2周囲画素よりも早い場合、
前記第1周囲画素に対してフィルタ処理を行って前記第1周囲画素の階調値を変更した後に、前記第2周囲画素に対してフィルタ処理を行って前記第2周囲画素の階調値を変更し、
フィルタ処理後の前記第1周囲画素及び前記第2周囲画素に基づいて前記注目画素の階調値を変更し、
(6)前記フィルタ処理の際に、前記周囲画素の周囲の欠陥画素以外の画素に基づいて、前記周囲画素の階調値を変更し、
(7)前記注目画素を決定する前に、元画像に対してエッジ処理を行ってエッジ画像を取得し、前記エッジ画像に対して膨張処理を行った後に侵食処理を行った加工画像の中から、所定の大きさ以下の孤立点を検出し、前記孤立点に基づいて前記元画像における欠陥画素の位置を検出し、
前記注目画素を決定する際に、前記欠陥画素の位置に基づいて、前記元画像から前記注目画素を決定する
ことを特徴とする画像処理方法。
【請求項9】
画像処理装置に、
注目画素を決定させた後に、前記注目画素の周囲にある周囲画素に対してフィルタ処理を行わせて、前記周囲画素の階調値を変更させ、
前記フィルタ処理後の前記周囲画素に基づいて、前記注目画素の階調値を変更させる
ことを特徴とするプログラム。
【請求項10】
演算処理部と記憶部とを備えた画像処理装置であって、
前記演算処理部は、前記記憶部に記憶されたディジタル画像から注目画素を決定した後に、前記注目画素の周囲にある周囲画素に対してフィルタ処理を行って、前記周囲画素の階調値を変更し、
前記演算処理部は、前記フィルタ処理後の前記周囲画素に基づいて、前記注目画素の階調値を変更する
ことを特徴とする画像処理装置。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図26】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33A】
image rotate

【図33B】
image rotate

【図33C】
image rotate

【図34】
image rotate

【図35】
image rotate

【図10】
image rotate

【図11】
image rotate

【図16】
image rotate

【図21】
image rotate

【図25】
image rotate

【図27】
image rotate

【図28】
image rotate


【公開番号】特開2007−306489(P2007−306489A)
【公開日】平成19年11月22日(2007.11.22)
【国際特許分類】
【出願番号】特願2006−135204(P2006−135204)
【出願日】平成18年5月15日(2006.5.15)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】