(57)【要約】【課題】  ２値化すべき入力画像に影やムラがあるとき、影成分が２値化閾値よりも暗い場合、入力画像を２値化した結果、影成分が黒に変換されてしまっていた。【解決手段】  原稿画像を撮影することで得られた多値画像に写り込んでいる撮影環境における影成分を示す画像を取得し、多値画像の注目画素の画素値を、影成分を示す画像における注目画素と同一座標にある画素値に基づき２値化することで、白または黒を示す画素値を生成する。【選択図】  図５
2018006981.tif 000002
【特許請求の範囲】
【請求項１】
原稿画像を撮影することで得られた多値画像に写り込んでいる撮影環境における影成分を示す画像を取得する取得手段と、
前記多値画像の注目画素の画素値を、前記影成分を示す画像における前記注目画素と同一座標にある画素値に基づき２値化することで、白または黒を示す画素値を生成する生成手段とを有することを特徴とする画像処理装置。
【請求項２】
前記生成手段は、前記多値画像の注目画素の輝度成分を示す画素値が、前記影成分を示す画像の前記注目画素の輝度成分を示す画素値以上の場合、前記多値画像の注目画素から白を示す画素値を生成することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記生成手段は、前記多値画像の注目画素の輝度成分を示す画素値が、前記影成分を示す画像の前記注目画素の輝度成分を示す画素値よりも小さい場合、前記多値画像の注目画素から黒を示す画素値を生成することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記多値画像の画素値は、撮影環境における影成分を含むことを特徴とする請求項１乃至３のいずれか一項に記載の画像処理装置。
【請求項５】
前記多値画像は、グレースケール画像であることを特徴とする請求項１乃至３のいずれか一項に記載の画像処理装置。
【請求項６】
前記取得手段は、前記多値画像の明るさに関する特徴量を解析することで影成分を示す画像を取得することを特徴とする請求項１乃至５のいずれか一項に記載の画像処理装置。
【請求項７】
前記撮影環境における影成分を示す画像は、前記撮影環境において白紙を撮影することで得られたグレースケール画像であることを特徴とする請求項１乃至５のいずれか一項に記載の画像処理装置。
【請求項８】
前記生成手段は、前記影成分を示す画像の画素値を、前記多値画像の取得方法に関する情報に従って調整した値を用いて、前記多値画像の画素値を２値化することを特徴とする請求項１乃至７のいずれか一項に記載の画像処理装置。
【請求項９】
前記多値画像の取得方法に関する情報は、前記多値画像が取得された機器の種類であることを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
原稿画像を撮影することで得られた多値画像に写り込んでいる撮影環境における影成分を示す画像を取得する取得ステップと、
前記多値画像の注目画素の画素値を、前記影成分を示す画像における前記注目画素と同一座標にある画素値に基づき２値化することで、白または黒を示す画素値を生成する生成ステップとを有することを特徴とする画像処理方法。
【請求項１１】
コンピュータに、請求項１０に記載の画像処理方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理技術に関する。
【背景技術】
【０００２】
入力されたカラーやグレースケールの画像データの画素値が閾値より大きいか小さいかを判定し、白黒の２値画像に変換する２値化処理がある。特許文献１では、画像データの各画素で単一の閾値を用いて２値化処理を行っている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平４−２９０１７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１では、２値化処理において、画像データに写り込んでいる撮影環境における影成分を考慮していないため、画像データに含まれている影成分が閾値よりも暗い場合、２値化した結果、影成分は黒に変換されていた。そのため、影成分が含まれている白紙の原稿を撮影した場合、白紙の領域が黒に変換される。
【課題を解決するための手段】
【０００５】
本発明の画像処理装置は、原稿画像を撮影することで得られた多値画像に写り込んでいる撮影環境における影成分を示す画像を取得する取得手段と、前記多値画像の注目画素の画素値を、前記影成分を示す画像における前記注目画素と同一座標にある画素値に基づき２値化することで、白または黒を示す画素値を生成する手段とを有することを特徴とする。
【発明の効果】
【０００６】
本発明によれば、原稿画像を撮影することで得られた多値画像に影成分が写り込んでいる場合であっても、影成分の影響を抑制した高画質な２値化処理を行うことができる。
【図面の簡単な説明】
【０００７】
【図１】本発明の一実施形態としてのシステム構成図
【図２】携帯端末２００の外観の例
【図３】携帯端末２００の構成図
【図４】デジタル複合機３００の構成図
【図５】実施例１のフローチャート
【図６】実施例１の画像の２値化の例
【図７】実施例１の閾値マップ生成処理のフローチャート
【図８】実施例２のフローチャート
【図９】閾値調整して２値化した画像の例
【発明を実施するための形態】
【０００８】
以下、本発明を実施するための形態について図面を用いて説明する。
【実施例１】
【０００９】
図１は本実施例に好適なシステムの全体構成である。ＬＡＮ１００には、無線ルータ１０２、コンピュータ１０４、デジタル複合機３００が接続されている。携帯端末２００は、無線ルータ１０２およびＬＡＮ１００を介して、デジタル複合機３００、コンピュータ１０４と接続することができる。携帯端末２００およびデジタル複合機３００は、以下の実施例において画像処理装置として機能する。
【００１０】
図２は、本実施例で利用する携帯端末２００の外観である。携帯端末２００は様々な種類が存在するが、図２（ａ）は、携帯端末２００の表面の一例を示している。表面には、タッチパネルディスプレイ２０１、操作ボタン２０２を持つ。タッチパネルディスプレイ２０１は、詳細には操作に必要な情報やボタン、画像などを表示するための表示装置と、人体の指などで触れることにより位置入力をする装置とが組み合わされた装置である。図２（ｂ）は、携帯端末２００の裏面の一例である。裏面には撮影部２０３が配置されている。なお、本実施例では、携帯端末２００は、撮影部２０３を含むカメラ機能を持つ端末装置ならば適用可能である。すわなち、カメラ機能を持ったスマートフォン、携帯電話、タブレット端末、ノートパソコン、通信機能を持ったデジタルカメラなどに適用できるほか、非接触に原稿を撮影可能な書画カメラなどにも適用可能である。
【００１１】
図３は、携帯端末２００の内部の構成を説明する図である。但し、この構成図は、本実施例を実施するための構成の一例である。図３において、ＣＰＵ２１０、ＲＡＭ２１１、ＲＯＭ２１２がデータバス２２０を介してプログラムやデータを送受信する。データバス２２０には、記憶部２１３、データ送受信部２１４、撮像部２１５、表示部２１６、操作部２１７、画像処理部２１８、モーションセンサ２１９が接続される。それらは、ＣＰＵ２１０、ＲＡＭ２１１、ＲＯＭ２１２と併せて、互いにプログラムやデータの送受信を行っている。
【００１２】
記憶部２１３は、フラッシュメモリであり、画像データや各種プログラムを格納する。データ送受信部２１４は、無線ＬＡＮコントローラを有し、無線ルータ１０２を介して、デジタル複合機３００、コンピュータ１０４とのデータの送受信を実現する。撮像部２１５は、前述の撮像部２０３であり、原稿の撮影を行って撮影画像を取得する。取得された撮影画像のデータは、記憶部２１３やＲＡＭ２１１を介して、画像処理部２１８やＣＰＵ２１０で処理される。処理された画像データはその後、ＣＰＵ２１０により、表示部２１６での表示、記憶部２１３への保存、データ送受信部２１４を介した外部への送信等の処理が施される。
【００１３】
表示部２１６は、前述のタッチパネルディスプレイ２０１を構成するディスプレイであり、カメラ機能を用いて原稿を撮影する際のライブビューによる表示のほか、本実施例の画像処理結果の表示、処理過程の通知や操作に必要な情報などを表示する。
【００１４】
操作部２１７は、前述のタッチパネルディスプレイ２０１を構成するタッチパネルや操作ボタン２０２であり、ユーザからの操作を受け付けて各部へ該操作の情報を送信する。
【００１５】
モーションセンサ２１９は、３軸加速度センサ、電子コンパス、３軸角速度センサを搭載しており、公知の技術を利用することにより、携帯端末２００の姿勢や移動を検知することが可能である。
【００１６】
なお、ＣＰＵ２１０がＲＯＭ２１２や記憶部２１３が保持するプログラムを実行することで、これらの携帯端末２００内の構成要素の制御を行う。
【００１７】
図４はデジタル複合機３００の内部の構成を説明する図である。但し、この構成図は本実施例を実施するための構成の一例である。図４において、コントローラユニット３１０は、画像入力装置であるスキャナ３０１や画像出力装置であるプリンタ３０２と接続される。また、コントローラユニット３１０は、ＬＡＮ１００や公衆回線４００と接続し、画像データやデバイス情報の入出力を行いシステム全体の制御を行う。ＣＰＵ３１１は、デジタル複合機３００全般を制御するコントローラとして機能する。操作部Ｉ／Ｆ３１５は、操作部３０３とのインターフェース部であり、操作部３０３上の表示部（不図示）に表示するための画像データを、操作部３０３に対して出力する。また操作部Ｉ／Ｆ３１５は、操作部３０３からユーザが入力した情報を、ＣＰＵ３１１に伝える役割を担う。ネットワークＩ／Ｆ３１３は、ＬＡＮ１００に接続され、データの入出力を行う。モデム３１４は、公衆回線４００に接続され、データ送受信を行うための変調復調処理を行う。記憶部３１２は、画像データや圧縮されたデータを格納し、ＣＰＵ３１１が動作するためのシステムワークメモリ等も含まれる。デバイスＩ／Ｆ３１８は、スキャナ３０１やプリンタ３０２とコントローラユニット３１０とを接続し、画像データの同期系／非同期系の変換を行う。画像処理部３１６はスキャナ３０１またはネットワークＩ／Ｆ等を通じて外部から入力された画像データに対して補正、加工、編集を行う。ＣＰＵ３１１、記憶部３１２、ネットワークＩ／Ｆ３１３、モデム３１４、操作部Ｉ／Ｆ３１５、画像処理部３１６、圧縮／解凍処理部３１７、デバイスＩ／Ｆ３１８は、データバス３２０に接続されている。
【００１８】
スキャナ３０１は、原稿を照射しその反射光をＣＣＤラインセンサ等の受光素子によって読み取り、原稿上の画像を表す電気信号に変換し、デジタル画像データを生成する。プリンタ３０２は、画像データを用紙上の画像として形成し出力する。その際の画像形成方式は、電子写真方式、インクジェット方式等があるが、どの形式でも構わない。
【００１９】
以上のような構成のデジタル複合機３００は、例えば携帯端末２００から無線ルータ１０２およびＬＡＮ１００を介して送信された画像データをプリンタ３０２にて印刷することや、モデム３１４を介してファクシミリ送信することができる。
【００２０】
図５は本実施例における画像の２値化処理を説明するフローチャートである。携帯端末２００が撮影部２０３を含むカメラ機能によって撮影した画像や記憶部２１３に保存されている画像、または外部から受信した画像などを入力画像として取得すると処理が開始される。
【００２１】
ステップＳ５０１で画像処理部２１８は多値画像である入力画像をグレースケール画像へ変換する。なお、入力画像がグレースケール画像である場合、ステップＳ５０１の処理は省略できる。ステップＳ５０１では、入力画像がＲ（レッド）、Ｇ（グリーン）、Ｂ（ブルー）の３チャンネルのカラー画像であった場合、各チャンネルを所定の割合で混合して１チャンネルの画像を生成する。このときの混合比は限定しないが、例えばＮＴＳＣ加重平均によってグレースケール画像を生成する。ここで、入力画像は、原稿画像を撮影することで得られた多値画像に撮影環境における影成分が写り込んでいる画像である。
【００２２】
次にステップＳ５０２で画像処理部２１８が閾値マップを取得する。閾値マップとは、入力画像に写り込んでいる撮影環境における影成分を示す画像である。閾値マップの取得、例えば記憶部２１３に予め保存されている、撮影環境において白紙を撮影することで得られたグレースケール画像を読み出しても良い。または、入力画像（多値画像）の明るさに関する特徴量を解析し、入力画像に写り込んでいる影成分を推定することで取得しても良い。上記入力画像から閾値マップを取得する処理の詳細は図７を用いて後述する。
【００２３】
次にステップＳ５０３で画像処理部２１８がグレースケール画像と閾値マップから２値画像を生成する。ここで、説明のためにグレースケール画像、閾値マップともに各画素８ｂｉｔで表される輝度成分を示す画素値で構成され、画素値０が黒、画素値２５５が白であるとする。また出力される２値画像は各画素１ｂｉｔで表される画素値で構成され、画素値０は白、画素値１は黒とする。座標（ｘ，ｙ）におけるグレースケール画像の画素値をｇ（ｘ，ｙ）、閾値マップの画素値をｔ（ｘ，ｙ）、出力される２値画像の画素値をｂ（ｘ，ｙ）で表す。式（１）に示すように、画像処理部２１８が同座標でのグレースケール画像と閾値マップの画素値ｇ（ｘ，ｙ）とｔ（ｘ，ｙ）の大小を比較することで、２値画像の画素値ｂ（ｘ，ｙ）が０（白）であるか１（黒）であるかを決定して２値画像を生成する。
【００２４】
ｇ（ｘ，ｙ）≧ｔ（ｘ，ｙ）のとき、ｂ（ｘ，ｙ）＝０    
式（１）
ｇ（ｘ，ｙ）＜ｔ（ｘ，ｙ）のとき、ｂ（ｘ，ｙ）＝１
すなわち、グレースケール画像における注目画素の輝度成分を示す画素値が、影成分を示す閾値マップにおける前記注目画素と同一座標にある輝度成分を示す画素値以上の場合、白を示す画素値を生成する。また、グレースケール画像における注目画素の輝度成分を示す画素値が、影成分を示す閾値マップにおける前記注目画素の輝度成分を示す画素値よりも小さい場合、黒を示す画素値を生成する。ステップＳ５０３では、グレースケール画像の全ての画素に対して２値化処理を行うことで、２値画像を生成する。
【００２５】
以上のように、閾値マップを利用することで入力画像の各画素に適した２値化を行う。
【００２６】
図６は本実施例による画像の２値化の例である。図６（ａ）は入力画像であり、文字列の背景が一様ではなく撮影時の影の影響が見られるものである。図６（ｂ）は入力画像に対応した閾値マップであり、撮影時の影の分布が現れている。この閾値マップを利用して入力画像を２値化した結果が図６（ｃ）であり、撮影時の影は再現されず前景である文字列のみが黒に変換された例を表している。
【００２７】
図７は、図５ステップＳ５０２で、画像処理部２１８が入力画像から閾値マップを推定する場合の処理の流れを表すフローチャートである。
【００２８】
ステップＳ７０１で画像処理部２１８が入力画像を複数のブロックに分割する。その際、１ブロックの形状や１ブロックに含まれる入力画素数に制限は無いが、例えば１ブロックは縦横同数の入力画素を含む正方形とし、縦横の分割数をそれぞれ８から６４程度となるよう決定する。分割数は、固定でも入力画像の条件に従って可変としてもよい。
【００２９】
次にステップＳ７０２で画像処理部２１８が分割後の各ブロックの代表画素値を算出する。代表画素値は、ブロックに含まれる複数の入力画素のうち比較的明るい画素を選択し、それらを利用して決定する。代表画素値の算出で最も簡易な方法は、ブロック内で最も明るい画素値を代表画素値とする方法である。別の方法では、ブロック内で最も明るい画素値から順に既定画素数の明るい画素を選択しそれらの画素値の平均値を算出し代表画素値とする。さらにまた別の方法では、ブロック内で最も明るい画素値から既定範囲内の明るさの画素のみを選択してそれらの平均値を代表画素値とする。また、ブロック内の画素値ヒストグラムを利用して代表画素値を算出しても良い。さらにブロック内の画素値をクラスタリングして各々のクラスタ代表値を算出、最も明るいクラスタ代表値を代表画素値とする方法を適用することもできる。このようにして算出された代表画素値は、ブロック内に被写体の下地領域が含まれている場合には下地レベルそのものに撮影時にできた影成分が加算された値にほぼ等しい。ブロック内に下地領域が無い場合には、ブロック内で比較的明るいオブジェクト領域に影成分が加算された値となる。
【００３０】
全ブロックの代表画素値を求めた結果を受けて、ステップＳ７０３で画像処理部２１８が各ブロックの代表値のみで構成される縮小画像を生成する。各ブロックの代表画素値のみで構成される画像は、入力画像を前述の分割数で規定される画素数を持つ画像に縮小したものであり、この後続く影推定処理の起点画像となる。次にステップＳ７０４で画像処理部２１８が前記起点画像である縮小画像から影成分のみを残すための補正処理を実施する。この補正処理は前述の下地領域が無いブロックの代表画素値をその隣接する下地領域が含まれたブロックの代表画素値を利用して補正する。その結果、縮小画像には下地レベルに影成分が加算された値のみが残ることになる。
【００３１】
次にステップＳ７０５で、画像処理部２１８が下地レベルに影成分が加算された値のみで構成される縮小画像を、入力画像と同画素数となるように拡大処理する。拡大方法は限定しないが、拡大後の各画素に対応する拡大前の隣接４画素の値とそれぞれの位置関係に応じた重み係数を利用した補間演算等で拡大後の各画素値を決定する。その結果得られた拡大後画像は入力画像と同サイズの下地レベルに影成分が加算された画像であり、画像内で変化する背景と前景の分離レベルの分布を示す、閾値マップである。このように、入力画像から閾値マップを生成することが可能である。
【００３２】
なお、本実施例における２値化処理は主に携帯端末２００に搭載される画像処理部２１８が実施するとして説明したが、同様の処理はＣＰＵ２１０、ＭＦＰ３００上の画像処理部３１６またはＣＰＵ３１１で実行することも可能である。さらにコンピュータ１０４やネットワーク上の図示しないサーバー等で実行することも可能である。
【００３３】
以上のような処理を行うことにより、入力画像に影やムラなどの影成分が存在する場合であっても、画像内で２値化の閾値を適切に変化させることにより高画質な２値化処理が可能である。
【実施例２】
【００３４】
実施例１では閾値マップを取得するとそのまま各画素の閾値として適用した。しかしながら、入力画像の特性や２値化後の画像の用途によっては最適な２値画像を得られない場合がある。そこで、本実施例では条件に従って、閾値マップから得られる閾値を調整して適用する方法を説明する。なお、実施例１と共通の内容については説明を省略する。
【００３５】
図８は上記のように閾値マップから条件に従って閾値を調整した上で２値化する本実施例の処理の流れを表すフローチャートである。携帯端末２００が撮像部２０３を含むカメラ機能によって撮影した画像や記憶部２１３に保存されている画像、または外部から受信した画像などを入力画像として取得すると処理が開始される。
【００３６】
ステップＳ８０１でＣＰＵ２１０が入力画像の取得方法や２値化後の画像の用途などの情報を取得し、同時に画像処理部２１８が入力画像を解析して特性情報を取得する。ここで取得される情報は、例えば、以下に示す情報のうちの少なくとも１つである。
・入力機器の種類（携帯端末２００のカメラ機能によって撮影した画像／外部から入手したカメラ撮影画像／外部から入手したスキャナ取得画像など）
・２値画像の用途（ＯＣＲ処理／特定パターン検出処理／前景画像分離／ＦＡＸ等の画像データ送信など）
・画素数（入力画像の縦横画素数または全画素数／解像度情報など）
・画像特性（エッジ量／含まれる色の数や複雑さ／映り込んでいる影や下地のムラの程度など）
画像特性の生成処理は公知の技術を適用可能であり、例えばエッジ量は一般的なエッジ抽出によって抽出されたエッジ画素数から定義する。また画像に含まれる色の数や複雑さは画素値の分散値などで簡易的に算出することができる。映り込んでいる影や下地のムラの程度は、閾値マップとして後に定義される画像のコントラスト（画素値の最大値と最小値の差分）や分散値で定義することができる。
【００３７】
ステップＳ８０２でＣＰＵ２１０がステップＳ８０１で取得した特性情報に応じて閾値調整関数を決定する。ここでは例として２値画像の用途情報に従って閾値調整関数を決定する場合を説明する。
【００３８】
２値化した結果の画像がＯＣＲ処理に入力される場合、２値化によって検出すべき文字が消滅しないことが重要である。そこで、たとえノイズが黒に変換されたとしてもかすれた文字や比較的薄い文字を黒に変換するために閾値の調整を行う。ここでの調整は簡単のため各画素の閾値にオフセットを加算する方法をとる。
【００３９】
ｔ’（ｘ，ｙ）＝ｔ（ｘ，ｙ）＋α
ｔ’（ｘ，ｙ）は座標（ｘ，ｙ）における調整後の閾値
ｔ（ｘ，ｙ）は座標（ｘ，ｙ）における閾値マップの画素値
αは正の値のオフセット。
【００４０】
一方、２値化した画像がその後ＬＡＮ１００経由でデジタル複合機３００に送られモデム３１４経由で外部へＦＡＸ送信される場合、それに適した閾値調整は、文字などが消滅しないこととノイズを極力減らすことが重要である。そこで行う閾値調整も、簡単のため各画素の閾値にオフセットを加算する方法をとる。
【００４１】
ｔ”（ｘ，ｙ）＝ｔ（ｘ，ｙ）＋β
ｔ”（ｘ，ｙ）は座標（ｘ，ｙ）における調整後の閾値
ｔ（ｘ，ｙ）は座標（ｘ，ｙ）における閾値マップの画素値
βは負の値のオフセットであり、その絶対値はαよりも小さい。
【００４２】
図９（ａ）は図６（ａ）の入力画像を図６（ｂ）の閾値マップの各画素において上記のような調整を行った閾値ｔ’（ｘ，ｙ）を適用して２値化した結果を示している。この例では左下の高濃度の影が白にならないものの、文字は確実に黒で再現されておりＯＣＲ処理への入力画像としては好ましい画質が保たれている。
【００４３】
図９（ｂ）は図６（ａ）の入力画像を図６（ｂ）の閾値マップ各画素において上記のような調整を行った閾値ｔ”（ｘ，ｙ）を適用して２値化した結果を示している。局所的に高濃度の影が存在していてもその影を確実に白に変換するため、ノイズを抑えたいＦＡＸ送信画像などに適した画質である。一方で上部の文字列が薄くなり、人による判読は可能であるものの、例えばＯＣＲ（光学文字認識）処理には不利な画質である。
【００４４】
図８に戻ると、ステップＳ５０１で画像処理部２１８が入力画像をグレースケール画像に変換し、ステップＳ５０２で閾値マップの作成を行う。これらの処理は実施例１と共通である。
【００４５】
ステップＳ８０５で画像処理部２１８が閾値マップの調整処理を行う。この詳細はステップＳ８０２で決定した閾値調整関数により閾値マップの各画素を変換する処理であり、前述したステップＳ８０２の説明の通りである。
【００４６】
最後にステップＳ５０３で画像処理部２１８が調整済みの閾値マップに従ってグレースケール画像に変換された入力画像を２値化する。この処理は実施例１と共通である。
【００４７】
なお、ステップＳ８０５とステップＳ５０３は、画像処理部２１８が、入力画像の各画素をステップＳ８０２で決定した閾値調整関数を閾値マップに適用しながら２値化する１つのステップとしても良い。
【００４８】
以上のように条件に応じて閾値マップを調整することにより、更に効果的な２値化処理を行うことが可能となる。
【００４９】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2018006981.tif 000003
【図２】
2018006981.tif 000004
【図３】
2018006981.tif 000005
【図４】
2018006981.tif 000006
【図５】
2018006981.tif 000007
【図６】
2018006981.tif 000008
【図７】
2018006981.tif 000009
【図８】
2018006981.tif 000010
【図９】
2018006981.tif 000011