画像処理装置、画像処理方法および画像処理プログラム
【課題】入力画像に生じた輝度のムラを抑制する。
【解決手段】画像処理装置10において、ブロック分割部11は、入力画像20における少なくとも一部の領域を複数のブロックに分割する。ブロック分類部12は、白画素のみを含む白ブロックにおける輝度値の分散と、白画素と黒画素のうち少なくとも黒画素を含む黒ブロックにおける輝度値の分散とに基づいて、入力画像20の各ブロックを白ブロックと黒ブロックとに分類する。輝度補正部13は、入力画像20の黒ブロック内の各画素の輝度値を、この黒ブロックの近傍に位置する1つ以上の白ブロック内の各画素の平均輝度値に基づいて補正する。
【解決手段】画像処理装置10において、ブロック分割部11は、入力画像20における少なくとも一部の領域を複数のブロックに分割する。ブロック分類部12は、白画素のみを含む白ブロックにおける輝度値の分散と、白画素と黒画素のうち少なくとも黒画素を含む黒ブロックにおける輝度値の分散とに基づいて、入力画像20の各ブロックを白ブロックと黒ブロックとに分類する。輝度補正部13は、入力画像20の黒ブロック内の各画素の輝度値を、この黒ブロックの近傍に位置する1つ以上の白ブロック内の各画素の平均輝度値に基づいて補正する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法および画像処理プログラムに関する。
【背景技術】
【0002】
近年、紙媒体などの印刷物に印刷された秘密情報の漏洩を防止することが望まれている。そして、印刷された秘密情報の漏洩を防止する技術として、秘密情報を視覚的に暗号化した状態で印刷物に印刷することが考えられている。例えば、入力画像に対して、画像内の一部を暗号化するとともに、暗号化された領域の四隅などにマーカを付加する処理を行う暗号化装置がある。画像の暗号化は、例えば、入力画像の暗号化対象領域内の画素の位置を、それぞれ複数画素からなるブロックを単位として並べ替えることで行われる。
【0003】
暗号化装置によって処理された画像は、例えば紙媒体に印刷される。印刷された画像は、カメラなどの読み取り装置によって読み取られてデジタル画像に変換され、復号装置に供給される。復号装置は、入力されたデジタル画像内のマーカの位置を基に、暗号化された領域を特定する。復号装置は、特定された領域の画像を復号して原画像を復元する。
【0004】
一方、カメラによって撮像された画像の画質を補正する技術として、ホワイトバランス調整が知られている。ホワイトバランス調整機能を有するカメラの例としては、撮像された画像をある大きさのブロックに分割するとともに、同じ画像をより小さいブロックにも分割し、それぞれの大きさのブロックを用いて2種類のホワイトバランス補正値を算出し、各ホワイトバランス調整値を感度に応じて加重加算するものがあった。また、他の例としては、撮像された画像を複数のブロックに分割し、白色領域と判定されたブロック数が多くなれば、ホワイトバランス調整が収束したか否かを判定する各色信号間の収束判定幅を小さくするものがあった。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−301044号公報
【特許文献2】特開2007−300320号公報
【特許文献3】特開2001−169307号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、印刷物に印刷された画像を読み取り装置によって読み取る際には、読み取り装置と印刷物との角度や照明の当たり具合などの環境条件によっては、読み取り後のデジタル画像上に輝度ムラが発生する場合があるという問題があった。特に、読み取り装置としてカメラを用いて印刷物を撮像した場合には、カメラと印刷物とが離れていることから、環境条件が一定になりにくい。このため、カメラによって撮像された画像には、輝度ムラが発生しやすい。
【0007】
さらに、白黒画像、特に2値画像を暗号化して印刷物に印刷した場合には、印刷物から暗号化された画像を読み取る際に上記の輝度ムラが発生すると、暗号化された画像を復号した際の画質が劣化するという問題がある。暗号化された画像を読み取って得られたデジタル画像においては、環境条件によって輝度が高くなった領域と輝度が低くなった領域は、それぞれ別の範囲にある程度集中する。しかし、暗号化された領域内のブロックは、復号時に並べ替えられる。このため、暗号化された領域に輝度ムラがある場合には、環境条件によって輝度が高くなった画素と輝度が低くなった画素とが、暗号化された領域内でそれぞれ拡散される。
【0008】
従って、復号化された画像においては、例えば、本来は一様な明るさの白である領域が、明るさが極端に異なる画素が散在する状態、すなわちノイズが発生した状態となる。輝度ムラに起因して発生したノイズは白黒画像上で目立ちやすいことから、復号化された画像の画質を劣化させる大きな原因になる。
【0009】
本発明はこのような点に鑑みてなされたものであり、撮像画像に生じた輝度のムラを抑制することが可能な画像処理装置、画像処理方法および画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するために、画像処理装置が提供される。この画像処理装置は、入力画像における少なくとも一部の領域を複数のブロックに分割するブロック分割部と、白画素のみを含む白ブロックにおける輝度値の分散と、白画素と黒画素のうち少なくとも黒画素を含む黒ブロックにおける輝度値の分散とに基づいて、前記入力画像の各ブロックを白ブロックと黒ブロックとに分類するブロック分類部と、前記入力画像の黒ブロック内の各画素の輝度値を、当該黒ブロックの近傍に位置する1つ以上の白ブロック内の各画素の平均輝度値に基づいて補正する輝度補正部と、を有する。
【0011】
また、上記目的を達成するために、上記の画像処理装置と同様の処理を行う画像処理方法、および、上記と同様の処理をコンピュータに実行させる画像処理プログラムが提供される。
【発明の効果】
【0012】
上記の画像処理装置、画像処理方法および画像処理プログラムによれば、入力画像に生じた輝度のムラを抑制することができる。
【図面の簡単な説明】
【0013】
【図1】第1の実施の形態に係る画像処理装置の構成例を示す図である。
【図2】暗号化画像の印刷および読み取りを行うシステムの構成例を示す図である。
【図3】画像処理装置における暗号化画像の生成手順を説明する図である。
【図4】携帯電話機における暗号化画像の復号手順を説明する図である。
【図5】復号後の画像における画質劣化について説明する図である。
【図6】携帯電話機のハードウェア構成例を示す図である。
【図7】携帯電話機が備える処理機能を示すブロック図である。
【図8】ラベリングについて説明する図である。
【図9】暗号化画像の統計的性質を示す図である。
【図10】撮像された暗号化画像におけるブロックの例を示す図である。
【図11】携帯電話機で実行される暗号化画像の表示処理の全体の処理手順を示すフローチャートである。
【図12】ブロック分類処理の第1の処理例を示すフローチャートである。
【図13】ブロック分類処理の第2の処理例を示すフローチャートである。
【図14】画質補正処理の手順を示すフローチャートである。
【図15】ラベリング処理の第1の処理例を示すフローチャートである。
【図16】ラベリング処理の第2の処理例を示すフローチャートである。
【図17】第3の実施の形態に係るコンピュータのハードウェア構成例を示す図である。
【発明を実施するための形態】
【0014】
以下、実施の形態を図面を参照して詳細に説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る画像処理装置の構成例を示す図である。
【0015】
図1に示す画像処理装置10に入力される画像(入力画像20)は、カメラやスキャナなどの読み取り装置によって印刷物から読み取られた画像である。この入力画像20には、読み取りの際の環境条件によって輝度のムラが発生する場合がある。特に、カメラによる撮像では、カメラと印刷物とが離間するため、印刷物への光の当たり具合が一様になりにくく、撮像画像に輝度ムラが発生しやすい。画像処理装置10は、このような環境条件によって入力画像20に生じた輝度ムラを抑制し、入力画像20の画質を向上させる処理を行う。
【0016】
この画像処理装置10は、ブロック分割部11、ブロック分類部12および輝度補正部13を備えている。ブロック分割部11は、入力画像20における少なくとも一部の領域を、複数のブロックに分割する。ここで、ブロックは、互いに隣接する複数の画素からなる。ブロックに分割される領域は、例えば、入力画像20の領域のうち、暗号化画像21が配置された領域とされる。暗号化画像21は、原画像を暗号鍵を用いて視覚的に暗号化することで得られた画像である。特に、暗号化画像21としては、原画像をブロックに分割した後、ブロックを復号鍵に基づいて並べ替えることで得られたものであってよい。ただし、並べ替えの単位とされたブロックと、ブロック分割部11によって分割されるブロックとは、必ずしも同じものでなくてもよい。
【0017】
ブロック分類部12は、ブロック分割部11によって分割された各ブロックを、白画素のみを含む白ブロックと、それ以外のブロックである黒ブロックとに分類する。図1において、ブロックW1〜W6は、白ブロックに分類されたブロック(以下、単に白ブロックと呼ぶ)であり、ブロックB1〜B3は、黒ブロックに分類されたブロック(以下、単に黒ブロックと呼ぶ)である。
【0018】
ブロック分類部12は、白ブロックにおける輝度値の統計的性質と黒ブロックにおける輝度値の統計的性質とに基づいて、分割された各ブロックを白ブロックと黒ブロックとに分類する。具体的には、ブロック分類部12は、白ブロックにおける輝度値の分散と、黒ブロックにおける輝度値の分散とに基づいて、各ブロックを分類する。
【0019】
読み取り装置によって読み取られた入力画像20においては、ボケが発生した場合や、撮像素子の解像度が低い場合には、黒画素のにじみが発生しやすい。これに対して、ボケが発生した場合でも、白画素は白のままである。このため、黒画素を含むブロックでは、黒画素を含まないブロックと比較して、輝度値の分散が大きくなる傾向がある。さらに、黒画素と白画素の両方を含むブロックでは、黒画素を含まないブロックと比較して、輝度値の分散は明らかに大きくなる。
【0020】
ブロック分類部12は、黒ブロックにおける輝度値の分散と白ブロックにおける輝度値の分散との間の違いを利用することで、ブロックを白ブロックと黒ブロックのどちらかに精度よく分類できる。ブロック分類部12は、例えば、入力画像20のブロック内の画素の輝度値の分散を計算し、算出された分散を所定のしきい値と比較する。ブロック分類部12は、算出された分散がしきい値より大きい場合には、このブロックを黒ブロックに分類し、算出された分散がしきい値以下である場合には、このブロックを白ブロックに分類する。
【0021】
あるいは、ブロック分類部12は、入力画像20のブロックが白ブロックである確率、または、このブロックが黒ブロックである確率の少なくとも一方を計算し、算出された確率に基づいてブロックを分類してもよい。ブロック分類部12は、このような確率の計算の際に、白ブロックにおける輝度値の分散としてあらかじめ決められた第1のブロック内分散値と、黒ブロックにおける輝度値の分散としてあらかじめ決められた、第1のブロック内分散値より大きい第2のブロック内分散値とを用いる。これにより、前述した統計的性質の違いが確率の計算に反映されるようになり、ブロックを高精度に分類できる。
【0022】
輝度補正部13は、入力画像20の領域のうちブロック分割を行った領域について、輝度ムラが抑制されるように各画素の輝度値を補正する。ここで、白ブロックは白画素のみを含むことから、白ブロック内の各画素の平均輝度値は、黒ブロック内の各画素の平均輝度値と比較して、読み取り装置による読み取りの際に明るさが減少した度合いを正確に表すと考えられる。そこで、輝度補正部13は、補正対象の黒ブロック内の各画素の輝度値を、この黒ブロックの近傍に位置する1つ以上の白ブロック内の各画素の平均輝度値に基づいて補正する。これにより、黒ブロック内の各画素の輝度値を、輝度ムラが抑制されるように精度よく補正できるようになる。
【0023】
黒ブロック内の各画素の輝度値を補正する際には、黒ブロックにできるだけ近い白ブロックを選択して、選択した白ブロック内の各画素の平均輝度値を求めることが望ましい。図1の例では、黒ブロックB2に対して、白ブロックW1〜W6が隣接している。そこで、輝度補正部13は、黒ブロックB2内の各画素の輝度値を、白ブロックW1〜W6における各画素の平均輝度値に基づいて補正する。
【0024】
輝度補正部13は、例えば、補正対象の黒ブロックの各画素が白画素である確率、または、この黒ブロックの各画素が黒画素である確率の少なくとも一方を計算し、算出された確率に基づいて、この黒ブロック内の各画素の輝度値を補正する。この確率の計算の際、輝度補正部13は、白画素の輝度値の分散としてあらかじめ決められた第1の分散値と、黒画素の輝度値の分散としてあらかじめ決められた、第1の分散値より大きい第2の分散値とを用いるとともに、補正対象の黒ブロックの近傍に位置する1つ以上の白ブロック内の各画素の平均輝度値を、この黒ブロック内の白画素の平均輝度値として設定する。これにより、白画素と黒画素のそれぞれの統計的性質の違いと、近傍の白ブロック内の輝度値に基づく正確な明るさ減少度合いとが、確率の計算に反映されるようになる。従って、黒ブロック内の各画素の輝度値を、輝度ムラが抑制されるように精度よく補正できるようになる。
【0025】
なお、輝度補正部13によって輝度値が補正された暗号化画像21は、例えば、復号鍵を用いてブロックが並べ替えられることで復号される。この場合には、復号後の画像において、輝度ムラに起因するノイズの発生が抑制され、復号後の画像の画質が向上する。
【0026】
次に、上記の画像処理装置10の処理機能を備えた装置の例として、撮像装置を挙げる。以下の第2の実施の形態では、撮像装置の例として、撮像部が搭載された携帯電話機について説明する。
【0027】
〔第2の実施の形態〕
図2は、暗号化画像の印刷および読み取りを行うシステムの構成例を示す図である。
図2に示す画像暗号化装置100は、印刷物200に印刷する画像のデータを生成する。印刷物200は、例えば、紙媒体である。画像暗号化装置100にはプリンタ110が接続されており、プリンタ110は、画像暗号化装置100から受信した画像データに基づいて、印刷物200に対して画像を印刷する。
【0028】
画像暗号化装置100は、印刷物200に印刷する画像の少なくとも一部の領域を、暗号化した状態に変化させることができる。以下、印刷物200に印刷された画像のうち、暗号化された状態の画像を、暗号化画像210と呼ぶ。
【0029】
印刷物200に印刷された暗号化画像210は、読み取り装置によって読み取られ、デジタル画像に変換される。本実施の形態では、読み取り装置の例として、撮像機能付きの携帯電話機300が用いられる。なお、読み取り装置としては、例えば、携帯電話機に限らない各種の撮像装置や、スキャナなどが用いられてもよい。
【0030】
携帯電話機300は、暗号化画像210を撮像してデジタル画像を生成し、デジタル画像内の暗号化画像210の領域を復号して、原画像を復元する。復元された原画像は、例えば、携帯電話機300のモニタに表示される。
【0031】
以下の説明では、まず、暗号化画像210の生成手順とその復号手順について説明した後、復号された画像の画質劣化という問題点について説明する。さらに、携帯電話機300において実行される、復号された画像の画質劣化を抑制する処理について説明する。
【0032】
まず、図3は、画像処理装置における暗号化画像の生成手順を説明する図である。
画像暗号化装置100は、まず、入力画像220内に暗号化の対象とする領域(暗号化対象領域221)を指定する(ステップS11)。ここで、入力画像220は、各画素が輝度データのみを有する白黒画像である。ただし、入力画像220の各画素が採りうる値は、最低値に近い値と最高値に近い値の2値であることが好ましい。なぜなら、暗号化対象領域221に含まれる文字、図形、絵などの画像は、その背景に対するコントラストが大きい方が、復号化されたときに人間が識別しやすいからである。なお、暗号化対象領域221は、画像暗号化装置100を操作するオペレータの入力操作に応じて設定されてもよい。
【0033】
次に、画像暗号化装置100は、暗号化対象領域221を、それぞれ同じ数の画素からなるブロックに分割する(ステップS12)。ブロックは、例えば、8画素×8画素の矩形領域とされる。
【0034】
次に、画像暗号化装置100は、暗号鍵に基づいて決定される規則に従って、暗号化対象領域221内のブロックを並べ替えることで、暗号化対象領域221の画像を暗号化画像210に変換する(ステップS13)。例えば、暗号化対象領域221に文字が含まれていた場合には、ブロックが並べ替えられることで、暗号化対象領域221内の文字を人間が読み取ることができなくなる。なお、暗号鍵を用いたブロックの並べ替えの方法としては種々考えられるが、例えば、暗号鍵に基づいて決定される位置のブロックを、暗号鍵に基づいて決定される別の位置のブロックと入れ替える方法を適用できる。
【0035】
また、画像暗号化装置100は、暗号化対象領域221内のブロックを並べ替えた後に、復号の際に暗号化対象領域221あるいはブロックの位置の目印になる情報を入力画像220に付加してもよい。本実施の形態では、例として、画像暗号化装置100は、暗号化対象領域221の四隅に領域識別マーカ222を付加する。領域識別マーカ222は、復号化時に暗号化対象領域221を特定する際に使用される情報である。なお、領域識別マーカ222が付加される位置やその形状は、復号側装置が暗号化対象領域221を認識できるようなものであれば、特に限定されるものではない。
【0036】
さらに、画像暗号化装置100は、並べ替え後の各ブロックの所定位置に、ブロック識別マーカ223を付加する。ブロック識別マーカ223は、復号化時に各ブロックの位置を特定する際に使用される情報である。図3の例では、ブロック識別マーカ223は、各ブロック224の左上の複数画素を、輝度値0に変換することで付加される。また、ブロック識別マーカ223は、必ずしもすべてのブロックに対して付加されなくてもよい。例えば、ブロック識別マーカ223は、少なくとも、黒画素を1つも含まないブロックに対して付加されればよい。なお、ブロック識別マーカ223が付加される位置やその形状は、復号側装置が認識できるようなものであれば、特に限定されるものではない。
【0037】
画像暗号化装置100は、入力画像220に対してその内部の暗号化対象領域221を暗号化して得られた画像220aのデータを、プリンタ110に送信し、画像220aを印刷物200に印刷させる(ステップS14)。これにより、印刷物200に暗号化画像210が印刷される。
【0038】
図4は、携帯電話機における暗号化画像の復号手順を説明する図である。
携帯電話機300の撮像部は、印刷物200に印刷された画像を撮像し、撮像画像230を得る(ステップS21)。この撮像画像230には、暗号化画像210が含まれる。
【0039】
携帯電話機300は、撮像画像230に対して画像処理を行い、暗号化画像210の四隅に付加された領域識別マーカ222を検出する(ステップS22)。携帯電話機300は、領域識別マーカ222の位置に基づいて、暗号化画像210の領域(前述の暗号化対象領域221)を特定する。このとき、携帯電話機300は、特定した暗号化対象領域221の歪みを補正する処理を行ってもよい。
【0040】
さらに、携帯電話機300は、特定した暗号化対象領域221の内部から、ブロック識別マーカ223を検出し、ブロック識別マーカ223の位置に基づいて、暗号化対象領域221をブロックに分割する(ステップS23)。なお、ブロック識別マーカ223は、暗号化対象領域221の歪み補正処理に利用されてもよい。
【0041】
携帯電話機300は、復号鍵に基づいて決定される規則に従ってブロックを並べ替えることで、暗号化対象領域221の画像を復号し、原画像に戻す(ステップS24)。携帯電話機300は、撮像画像230に対してその内部の暗号化対象領域221を復号して得られた復号画像231を、例えば、自装置のモニタに表示させる。また、携帯電話機300は、復号画像231のデータを、記録媒体に記録したり、あるいは、他の装置に送信してもよい。
【0042】
次に、復号後の画像に生じる問題点について説明する。図5は、復号後の画像における画質劣化について説明する図である。
以下の説明では、例として、暗号化対象領域内の原画像には、輝度が最高値である白色の背景上に、輝度が最低値である黒色の文字が描かれているものとする。このような原画像が暗号化されて印刷物に印刷された状態でも、印刷物の表面の色が白ければ、印刷された暗号化画像も白または黒の画素から構成されることに変わりはない。
【0043】
ところが、印刷物に印刷された画像を撮像装置によって撮像する際には、撮像装置と印刷物との角度や照明の当たり具合などの環境条件によっては、撮像によって得られた撮像画像230上に輝度ムラが発生する場合がある。特に、カメラによって印刷物が撮像される場合には、通常、カメラと印刷物との間が離間していることから、環境条件が一定になりにくく、輝度ムラが発生しやすいと言える。
【0044】
環境条件によって輝度ムラが生じた場合には、通常、撮像画像上の一部に比較的明るい領域が集中し、それとは別の領域に比較的暗い領域が集中する。図5の左側に示す撮像画像230の例では、撮像画像230の右下の領域が明るく、左上の領域が暗い。ここで、撮像画像230の暗号化対象領域221に含まれる画素のうち、暗号化される前の原画像では背景であった画素(以下、背景画素と呼ぶ)の輝度値は、本来は最高値であるはずである。しかしながら、輝度ムラが生じた場合、一部の背景画素の輝度値は低下する。特に、暗号化対象領域221の最も明るい領域(図5の左図では右下の領域)に配置された背景画素の輝度値はほぼ最高値となるが、最も暗い領域(図5の左図では左上の領域)に配置された背景画素の輝度値は、最高値から大きく低下した値となる。
【0045】
このような状態から、撮像画像230の暗号化対象領域221が復号されると、暗号化対象領域221内のブロックが復号鍵に応じて入れ替えられる。このとき、図5の右側に示す復号画像231のように、輝度値にそれぞれ差が生じた背景画素は、暗号化対象領域221の全体に拡散する。このため、暗号化対象領域221が復号された復号画像231では、文字領域を除く背景領域において、輝度値の異なる画素が散在する状態となり、復号画像231の画質が低下してしまう。特に、背景領域において、輝度値が低下した領域の中に極端に明るい画素が点在する場合には、極端に明るい画素が目立つようになり、復号画像231を視認した視認者が画質劣化を感じやすくなる。
【0046】
そこで、本実施の形態の携帯電話機300は、暗号化対象領域221内のブロックを入れ替える前に、画質補正処理を行う。画質補正処理により、撮像画像の輝度ムラを抑制し、復号化後の画像においてノイズが目立たなくなるようにする。また、画質補正の際には、各ブロックにおける輝度値の分散に基づいて、暗号化対象領域221内の画像から黒画素を含まない白ブロックを抽出し、白ブロック以外のブロックである黒ブロックの輝度値を、黒ブロックの周囲の白ブロックの輝度値を基に補正する。
【0047】
図6は、携帯電話機のハードウェア構成例を示す図である。
携帯電話機300は、制御部301、RAM(Random Access Memory)302、フラッシュメモリ303、メモリインタフェース(I/F)304、無線通信インタフェース(I/F)305、音声処理部306、マイクロフォン306a、スピーカ306b、表示処理部307、モニタ307a、入力部308およびカメラモジュール309を備えている。
【0048】
制御部301は、携帯電話機300内の各ブロックを統括的に制御する。この制御部301は、例えば、CPU(Central Processing Unit)を備え、フラッシュメモリ303などに記憶されたプログラムをCPUが実行することで各種の処理を実行する。制御部301は、例えば、無線通信インタフェース305を通じた通話処理や、カメラモジュール309から得られた撮像画像を利用した暗号化画像の復号処理、復号対象とする画像の画質補正処理などを実行する。なお、制御部301では、このような処理機能が複数のハードウェアとして実装されていてもよい。
【0049】
RAM302には、制御部301に実行させるプログラムの少なくとも一部が一時的に格納される。また、RAM302には、制御部301による処理に必要な各種データが格納される。
【0050】
フラッシュメモリ303には、制御部301が実行するプログラムや、制御部301の処理に必要なデータが記憶される。なお、このフラッシュメモリ303と同様の機能を果たす記憶媒体として、他の種類の不揮発性記憶媒体が用いられてもよい。
【0051】
メモリインタフェース304には、可搬型メモリ304aが挿抜可能に接続される。可搬型メモリ304aは、例えば、フラッシュメモリである。メモリインタフェース304は、可搬型メモリ304aと制御部301との間でデータを送受信する。
【0052】
無線通信インタフェース305は、図示しない無線ネットワークに対して無線接続するインタフェース回路である。この無線通信インタフェース305には、例えば、RF(Radio Frequency)回路や、送受信信号の変復調回路などが設けられている。
【0053】
音声処理部306は、マイクロフォン306aからの音声信号をデジタル信号に変換し、所定のフォーマットにエンコードして制御部301に出力する。また、制御部301からの音声信号をデコードしてアナログ信号に変換し、スピーカ306bに出力して再生させる。
【0054】
表示処理部307は、制御部301から出力された表示情報を基に映像信号を生成し、モニタ307aに出力して表示させる。モニタ307aは、例えば、LCD(Liquid Crystal Display)である。
【0055】
入力部308は、入力キーなどを具備して、ユーザの操作入力に応じた制御信号を制御部301に出力する。
カメラモジュール309は、カメラとしての機能を実現するハードウェアであり、制御部301の制御の下で動作する。カメラモジュール309は、印刷物200などの被写体からの光を受け付けるレンズなどの光学機構、レンズを通じて入射された光を受光する撮像素子、および、撮像素子から出力されたアナログ画像信号をデジタル化するデジタル化回路を備える。さらに、カメラモジュール309は、デジタル化回路から出力されたデジタル画像信号に基づくAF(Auto Focus)、AE(Auto Exposure)制御処理、デジタル画像信号に対する圧縮符号化処理や各種のフォーマット変換処理などを実行する処理回路を備える。
【0056】
図7は、携帯電話機が備える処理機能を示すブロック図である。
図7に示すように、携帯電話機300は、撮像制御部321、ブロック分割部322、画質補正部323、画像復号部324および画像出力制御部325を備えている。また、画質補正部323は、ブロック分類部331、劣化パラメータ算出部332およびラベリング部333を備えている。また、携帯電話機300のRAM302には、撮像画像データ240、補正画像データ250およびブロック情報260が一時的に記憶される。
【0057】
図7に示した各処理機能の処理は、例えば、制御部301が所定のアプリケーションプログラムを実行することで実現される。例えば、入力部308に対するユーザの入力操作により携帯電話機300が「画像復号モード」に設定されると、画像復号アプリケーションプログラムが制御部301によって実行され、これによって図7に示す各処理機能が起動する。なお、図7に示す処理機能が実行する処理の少なくとも一部は、例えば、専用の処理回路によって実現されてもよい。
【0058】
撮像制御部321は、入力部308に対するユーザによる操作入力に応じて、カメラモジュール309に撮像動作を実行させ、カメラモジュール309から撮像画像データ240を取得してRAM302に格納する。撮像制御部321は、例えば、カメラモジュール309に1枚の静止画像を撮像させてもよいが、本実施の形態では、カメラモジュール309に動画像を撮像させ、得られた複数枚のフレームからブレの少ないフレームを抽出する。
【0059】
撮像制御部321は、例えば、カメラモジュール309に動画像を撮像させ、順次得られるフレームのデータからコントラストを算出する。そして、撮像制御部321は、コントラストの値があらかじめ決められた一定値以上であるときに、対応するフレームのデータを撮像画像データ240としてRAM302に格納する。あるいは、撮像制御部321は、カメラモジュール309に一定時間だけ動画像を撮像させ、得られた複数枚のフレームのデータのうち、コントラストが最も高いフレームのデータを、撮像画像データ240としてRAM302に格納してもよい。
【0060】
ここで、RAM302に格納された撮像画像データ240に基づいて生成される画像を、“撮像画像”と呼ぶ。ここで言う撮像画像は、図4,図5に示した撮像画像230に対応する。
【0061】
ブロック分割部322は、得られた撮像画像をブロックに分割する。本実施の形態では、ブロック分割部322は、図4のステップS22,S23で説明したように、撮像画像に付与された領域識別マーカ222およびブロック識別マーカ223を検出し、検出した各マーカに基づいてブロック分割を行う。この処理によれば、ブロック分割部322は、撮像画像から、暗号化の際に位置の入れ替えが行われたブロックを認識する。
【0062】
また、RAM302には、分割された各ブロックについての情報を含むブロック情報260が格納される。ブロック情報260には、例えば、ブロックの座標範囲を示す座標情報261、ブロックが後述する白ブロックか黒ブロックかを識別するブロック種別262、ブロックの明るさが撮像時にどれだけ劣化したかを示す劣化パラメータ263などの情報が、ブロックごとに格納される。なお、後述するように、劣化パラメータ263は、ブロック種別262が白ブロックを表す場合にのみ格納されてもよい。
【0063】
ブロック分割部322は、分割した各ブロックについての座標情報261をブロック情報260に登録する。座標情報261は、例えば、対応するブロック内の画素の輝度値を撮像画像データ240および補正画像データ250から読み出す際に、それぞれ画質補正部323および画像復号部324によって参照される。また、座標情報261は、例えば、対応するブロック内の画素の輝度値を補正画像データ250に書き込む際に、画質補正部323および画像復号部324によって参照される。
【0064】
また、ブロック分割部322は、撮像画像をブロックに分割した後、各ブロックの左上に付与されたブロック識別マーカ223を消去する。ブロック分割部322は、例えば、撮像画像上の画素のうち、ブロック識別マーカ223の周囲に位置する画素の輝度値を基に補間演算を行い、ブロック識別マーカ223の各画素の輝度値を、補間演算により算出された輝度値で置換する。このような輝度値の置換によって、撮像画像データ240が更新される。
【0065】
なお、ブロック識別マーカ223を消去する処理は、例えば、画像復号部324に入力される補正画像データ250に対して行われてもよい。この場合、画質補正部323は、各ブロックの画素のうちブロック識別マーカ223に含まれる画素の輝度値を、処理から除外する。
【0066】
画質補正部323は、撮像時の環境条件によって撮像画像に生じた輝度ムラを抑制する画質補正処理を行う。画質補正部323は、最終的に、輝度ムラが抑制されるように輝度値が補正された補正画像データ250を生成する。なお、以下の説明では、画質補正部323によって輝度値が補正された、補正画像データ250に基づく画像を、“補正画像”と呼ぶ。
【0067】
本実施の形態では、画質補正部323内の少なくともラベリング部333での処理に先立って、補正画像データ250の記憶領域がRAM302にあらかじめ用意される。補正画像データ250の記憶領域には、撮像画像の各画素に対応する記憶領域が設けられている。画質補正部323は、補正画像データ250の記憶領域に対して、各画素についての補正後の輝度値を書き込む。補正画像データ250の記憶領域に対して各画素の輝度値を書き込む処理を、“ラベリング”と呼ぶ。
【0068】
ここで、図8は、ラベリングについて説明する図である。
RAM302に記憶された撮像画像データ240は、撮像画像の各画素の輝度値を含む。本実施の形態では、撮像画像の各画素の輝度値は、0〜255の値をとる。一方、RAM302に生成された補正画像データ250は、撮像画像の各画素に対応する記憶領域を有する。画質補正部323は、補正画像データ250内の各画素の記憶領域に対して、補正後の輝度値として0〜255のいずれかの数値(ラベル)を書き込む。このようにラベルを書き込む処理を、ラベリングと呼ぶ。画質補正部323は、補正画像データ250内の全画素の記憶領域に対して輝度値を書き込むことで、画質補正処理を終了する。
【0069】
また、画質補正部323は、補正画像データ250内の各画素に書き込む数値の演算の際に、撮像画像データ240内の輝度値を参照する。ここで、撮像画像データ240と補正画像データ250とがそれぞれ個別に領域に記憶されることで、画質補正部323は、撮像画像データ240に含まれる補正前の輝度値を参照しながら、補正画像データ250に対して補正後の輝度値を書き込んでいくことが可能になる。
【0070】
以下、図7に戻って説明する。画質補正部323において、ブロック分類部331は、ブロック分割部322によって分割された各ブロックが白ブロック、黒ブロックのどちらであるかを判定し、判定結果をブロック種別262としてブロック情報260に登録する。白ブロックとは、ブロック内に、原画像に記述された文字の領域に対応する黒の画素を全く含まないブロックであり、黒ブロックとは、白ブロック以外のブロックである。ブロック分類部331は、後述するように、ブロック内の各画素の輝度値の分散を基に、ブロックが白ブロックか黒ブロックかを判別する。
【0071】
劣化パラメータ算出部332は、撮像画像の各ブロックについての劣化パラメータを算出する。劣化パラメータとは、各ブロックについて、撮像時に明るさがどれだけ減少したかを表すパラメータであり、補正後の輝度値の算出時に利用されるものである。後述するように、黒ブロックの劣化パラメータは、その周囲に存在する白ブロックの輝度値に基づいて算出される。このような処理により、黒ブロック内の画素の輝度値は、周囲の白ブロックの明るさに応じて補正されるようになる。なお、劣化パラメータ算出部332は、白ブロックの劣化パラメータを、ブロック情報260に劣化パラメータ263として登録する。
【0072】
ラベリング部333は、劣化パラメータ算出部332によって算出された劣化パラメータに基づいて、補正画像の各画素の輝度値を算出し、算出した輝度値を補正画像データ250の記憶領域にラベリングする。ラベリング部333は、例えば、劣化パラメータを基に、黒ブロック内の各画素が、原画像において文字領域に含まれない白画素である確率と、文字領域に含まれる黒画素である確率とを計算する。そして、ラベリング部333は、各確率の計算結果を基に、黒ブロック内の各画素についての補正後の輝度値を算出する。
【0073】
画像復号部324は、図4のステップS24で説明したように、補正画像のブロックを復号鍵に基づいて並べ替えることで、補正画像に含まれる暗号化画像210を復号し、原画像を復元する。
【0074】
画像出力制御部325は、画像復号部324によって原画像が復元された画像のデータを表示処理部307に伝送し、原画像が復元された画像をモニタ307aに表示させる。なお、画像出力制御部325は、例えば、原画像が復元された画像のデータを、フラッシュメモリ303または可搬型メモリ304aに記録してもよい。あるいは、画像出力制御部325は、原画像が復元された画像のデータを、無線通信インタフェース305を通じてネットワーク上の他の装置に送信してもよい。
【0075】
次に、画質補正部323によって実行される画質補正処理について、詳しく説明する。まず、ブロック分類部331におけるブロック分類処理について説明する。
<ブロック分類処理>
図9は、暗号化画像の統計的性質を示す図である。
【0076】
図9に示すグラフ401,402,402a,402bは、それぞれ暗号化画像210の輝度値のヒストグラムの例を示す。グラフ401は、画像暗号化装置100において暗号化処理が行われた直後における、暗号化画像210の輝度値のヒストグラムである。グラフ401に示すように、画像暗号化装置100によって生成される暗号化画像210は、文字領域に含まれる輝度値“0”の黒画素と、背景領域に含まれる輝度値“255”の白画素とからなる。
【0077】
次に、グラフ402は、携帯電話機300によって撮像された撮像画像上の暗号化画像210の輝度値のヒストグラムである。ただし、ここでは、撮像時において暗号化画像210の全体に一様な明るさの照明が照射されているものと仮定する。
【0078】
グラフ402に示すように、撮像画像上の暗号化画像210では、白画素の輝度値の分散はあまり変化しないものの、黒画素の輝度値の分散は大きくなる傾向にある。例えば、静止していない状態やフォーカスが合っていない状態で撮像が行われた場合、撮像画像にはボケが生じる。ボケが生じた場合でも、白画素は白いままであるので、白画素の輝度値の分散は、グラフ401の場合とほとんど変わらず、小さい。
【0079】
これに対して、ボケが生じた場合、黒画素の領域、すなわち暗号化画像210の文字領域は、にじんだ状態となる。特に、文字領域と背景領域とのエッジでは、輝度値が大きく低下する黒画素もある。さらに、撮像素子の解像度が低い場合にも、文字領域はにじみやすくなる。このようなにじみが発生することで、黒画素の輝度値の分散は、白画素の輝度値の分散より大きくなる。
【0080】
次に、暗号化画像210が明るく撮像された場合(例えば露出オーバーの場合)と暗く撮像された場合(例えば露出アンダーの場合)とを比較する。ただし、グラフ402の場合と同様に、撮像時において暗号化画像210の全体に一様な明るさの照明が照射されているものと仮定する。
【0081】
暗号化画像210が明るく撮像された場合には、白画素については、いわゆる白飛びの状態になる。このため、グラフ402aに示すように、ほぼすべての白画素の輝度値は255となり、白画素の輝度値の分散はグラフ401,402の場合と同様に小さい。一方、黒画素の輝度値は、グラフ402の場合と比較して平均的に高くなるものの、黒画素の輝度値の分散は、グラフ402の場合と同様に白画素の輝度値の分散より大きくなる。
【0082】
また、暗号化画像210が暗く撮像された場合には、グラフ402bに示すように、白画素の輝度値は低くなるが、それぞれの白画素の輝度値は一様に低下するため、白画素の輝度値の分散は大きくなりにくい。一方、黒画素の輝度値は、グラフ402の場合と比較して平均的に低くなる。しかしながら、黒画素の輝度値の分散は、白画素の輝度値の分散より大きくなる。
【0083】
次に、上記のグラフ401,402,402a,402bを参考にして、暗号化画像210内の各ブロックの統計的性質について考える。文字領域の黒画素を含まない白ブロックにおける各画素の輝度値の統計的性質は、グラフ402,402a,402bに示した、白画素の輝度値の統計的性質と同じであると考えることができる。
【0084】
一方、黒ブロックには、黒画素のみを含むブロックと、黒画素と白画素とが混在するブロックの2種類がある。黒画素のみを含む黒ブロックにおける各画素の輝度値の統計的性質は、グラフ402,402a,402bに示した、黒画素の輝度値の統計的性質と同じであると考えることができる。従って、黒ブロックにおける輝度値の分散は、白ブロックにおける輝度値の分散より大きい。また、黒画素と白画素とが混在する黒ブロックでは、白画素のみを含む白ブロックの場合と比較して輝度値の分散が大きくなることは明らかである。
【0085】
このように、白ブロックにおける輝度値の分散より黒ブロックにおける輝度値の分散の方が大きくなるという性質は、撮像時の環境条件によって暗号化画像210に輝度ムラが生じている場合でも同様に現れる。なぜなら、輝度ムラは、白画素の明るさに対しても黒画素の明るさに対しても同じように影響するので、輝度ムラが発生した場合には、白画素の輝度値の分散も、黒画素の輝度値の分散も、同じように大きくなるからである。
【0086】
そこで、ブロック分類部331は、白ブロックおよび黒ブロックのそれぞれにおける輝度値の分散の違いに基づいて、ブロック分割部322によって分割されたブロックが白ブロックか黒ブロックかを判定する。以下、ブロック分類部331によるブロック分類処理の例を2種類挙げる。
【0087】
[ブロック分類処理の第1の処理例]
ブロック分類処理の第1の処理例では、ブロック分類部331は、分割されたブロックごとに輝度値の分散σb2を算出し、算出された分散σb2を、あらかじめ決められたしきい値γと比較する。ブロック分類部331は、着目ブロックにおける輝度値の分散σb2がしきい値γより大きい場合、着目ブロックは黒ブロックであると判定する。一方、ブロック分類部331は、着目ブロックにおける輝度値の分散σb2がしきい値γ以下である場合、着目ブロックは白ブロックであると判定する。このような処理により、白ブロック、黒ブロックのそれぞれについての統計的性質の違いに基づいて、着目ブロックが白ブロックと黒ブロックのどちらであるかを高精度に判定できる。
【0088】
[ブロック分類処理の第2の処理例]
ブロック分類処理の第2の処理例では、ブロック分類部331は、前述した輝度値の分散の違いを利用して、着目ブロックが白ブロックである確率を算出し、算出された確率の値に応じて、着目ブロックが白ブロックであるか黒ブロックであるかを判定する。ブロック分類部331は、例えば、白ブロックおよび黒ブロックのそれぞれに含まれる各画素の輝度値が正規分布に従って分布すると定義した統計モデルを用いて、着目ブロックが白ブロックである確率、黒ブロックである確率をそれぞれ求める。この統計モデルにおいて、黒ブロックにおける輝度値の分散を白ブロックにおける輝度値の分散より大きく設定することで、着目ブロックが白ブロック、黒ブロックのどちらかであるかの判定精度を高める。
【0089】
まず、着目ブロックbが白ブロック(k=w_block)または黒ブロック(k=b_block)から生起される確率(p|k)は、例えば、次の式(1)のように定義される。式(1)は、白ブロックおよび黒ブロックのそれぞれに含まれる各画素の輝度値が正規分布に従って分布すると定義した統計モデルによって、確率(p|k)を表したものである。
【0090】
【数1】
【0091】
式(1)において、xiは、ブロックbに含まれる画素のうち座標iの画素の輝度値であり、μbは、ブロックbに含まれる各画素の輝度値の平均値である。また、σ12(k)は、白ブロック内または黒ブロック内の輝度値の分散であり、事前に設定される値である。黒ブロックについての確率(p|k=b_block)を算出する際に設定される分散σ12(k=b_block)は、白ブロックについての確率(p|k=w_block)を算出する際に設定される分散σ12(k=w_block)より、大きな値とされる。
【0092】
また、白ブロックの発生頻度と黒ブロックの発生頻度はそれぞれ1/2であると仮定して、白ブロックまたは黒ブロックの発生確率p(k)を、次の式(2)のように定義する。
p(k)=1/2 ・・・(2)
式(1)と式(2)とを基にして、着目ブロックbが白ブロックまたは黒ブロックである確率p(k|b)は、ベイズ(Bayes)の定理を用いて次の式(3)によって求められる。なお、式(3)のZは、式(4)のように定義される。
【0093】
【数2】
【0094】
ブロック分類部331は、各ブロックについて、式(3)に従って白ブロックである確率p(k=w_block|b)を計算する。式(3)の計算の際、ブロック分類部331は、前述したように、分散σ12(k=b_block)として、分散σ12(k=w_block)より大きな値を設定する。
【0095】
ブロック分類部331は、算出した確率p(k=w_block|b)が所定のしきい値(例えば“0.7”)を超えた場合に、着目ブロックを白ブロックと判定する。一方、ブロック分類部331は、算出された確率p(k=w_block|b)がしきい値以下である場合に、着目ブロックを黒ブロックと判定する。
【0096】
なお、ブロック分類部331は、例えば、式(3)に従って、各ブロックが黒ブロックである確率p(k=b_block|b)を計算してもよい。この場合、ブロック分類部331は、算出された確率p(k=b_block|b)が所定のしきい値(例えば“0.3”)以下の場合に、着目ブロックを白ブロックと判定する。一方、ブロック分類部331は、算出された確率p(k=b_block|b)がしきい値を超えた場合に、着目ブロックを黒ブロックと判定する。
【0097】
以上の処理により、白ブロック、黒ブロックのそれぞれについての統計的性質の違いに基づいて、着目画素が白ブロックと黒ブロックのどちらであるかを高精度に判定できる。
別の例として、ブロック分類部331は、各ブロックについて式(3)に従って黒ブロックである確率p(k=b_block|b)を計算し、算出された値をしきい値と比較することで、着目ブロックが白ブロックか黒ブロックかを判定してもよい。
【0098】
ブロック分類部331は、着目ブロックが白ブロックか黒ブロックかを示す判定結果を、ブロック種別262としてRAM302に記録する。
<劣化パラメータ算出処理>
ブロックの分類処理が終了した後、ラベリング部333は、劣化パラメータ算出部332によって算出された劣化パラメータに基づいて、補正画像の各画素の輝度値を算出し、算出した輝度値を補正画像データ250の記憶領域にラベリングする。劣化パラメータとは、各ブロックについて、撮像時に明るさがどれだけ減少したかを表すパラメータである。劣化パラメータ算出部332は、以下に示す手順に従って劣化パラメータを算出する。
【0099】
まず、白ブロックの劣化パラメータμb’(k=w_block)は、次の式(5)によって求められる。劣化パラメータ算出部332は、式(5)に従って算出した劣化パラメータμb’(k=w_block)を、ブロック情報260における対応するブロックのエントリに、劣化パラメータ263として登録する。
μb’(k=w_block)=μb ・・・(5)
ここで、図10は、撮像された暗号化画像におけるブロックの例を示す図である。この図10を用いて、黒ブロックの劣化パラメータの算出方法について説明する。なお、図10では、ブロックの位置がわかりやすくなるように、ブロック識別マーカ223が残った状態の暗号化画像210を示している。
【0100】
図10において、実線で囲んだブロックが黒ブロックであり、点線で囲んだブロックが白ブロックである。前述のように、白ブロックは、白画素のみを含むブロックである。このため、撮像された暗号化画像210における白ブロックの輝度平均値(すなわち、白ブロックの劣化パラメータ)は、黒画素と白画素とが混在し得る黒ブロックの輝度平均値と比較して、撮像時に明るさがどれだけ減少したかをより正確に表す指標となる。
【0101】
そこで、劣化パラメータ算出部332は、黒ブロックの近傍に存在する白ブロックの輝度値を用いて、黒ブロックの劣化パラメータμb’(k=b_block)を求める。具体的には、劣化パラメータ算出部332は、黒ブロックの近傍の1つ以上の白ブロックにおける平均輝度値を、黒ブロックの劣化パラメータμb’(k=b_block)とする。
【0102】
このような黒ブロックの劣化パラメータμb’(k=b_block)は、あらかじめ算出された白ブロックの劣化パラメータμb’(k=w_block)(すなわち、ブロック情報260に登録された劣化パラメータ263)を用いて、次の式(6)によって求めることもできる。
【0103】
【数3】
【0104】
なお、式(6)において、nは、劣化パラメータの算出時に利用する、黒ブロックの近傍に存在する白ブロックを示し、mは、劣化パラメータの算出時に利用する白ブロックの数を示す。
【0105】
劣化パラメータ算出部332は、例えば、ブロック情報260を参照して、黒ブロックを1つずつ選択するとともに、選択した黒ブロックの近傍に存在する白ブロックを選択する。劣化パラメータ算出部332は、選択した白ブロックの劣化パラメータμb’(k=w_block)をブロック情報260から読み込み、式(6)に従って黒ブロックの劣化パラメータμb’(k=b_block)を算出する。
【0106】
劣化パラメータ算出部332は、黒ブロックの劣化パラメータμb’(k=b_block)を算出する際には、黒ブロックにできるだけ近い位置に存在する白ブロックを選択することが望ましい。さらに、このとき、複数の白ブロックが選択されることが望ましい。例えば、劣化パラメータ算出部332は、黒ブロックの周囲に隣接する8個のブロックから、白ブロックを選択する。このとき、劣化パラメータ算出部332は、黒ブロックの上下左右に隣接する白ブロックを優先的に選択してもよい。図10の例では、処理対象の黒ブロック212aの右側に隣接するブロックは黒ブロックである。このため、劣化パラメータ算出部332は、黒ブロック212aの右側の隣接ブロックの代わりに、黒ブロック212aの右上および右下にそれぞれ隣接する白ブロック212b,212cを選択する。
【0107】
また、例えば、黒ブロックの劣化パラメータμb’(k=b_block)を算出する際に選択される白ブロックの最低数が、あらかじめ決められていてもよい。黒ブロックに隣接する8個のブロックから最低数の白ブロックが選択できない場合には、黒ブロックに隣接するブロックのさらに周囲から白ブロックが選択されてもよい。
【0108】
<ラベリング処理>
ラベリング部333は、劣化パラメータ算出部332によって算出された劣化パラメータに基づいて、補正画像の各画素の輝度値を算出し、算出した輝度値を補正画像データ250の記憶領域にラベリングする。ラベリング部333は、補正画像の画素のうち、白ブロックに含まれる画素については、すべて輝度値“255”を設定する。一方、ラベリング部333は、補正画像の画素のうち、黒ブロックに含まれる画素については、前述の劣化パラメータμb’(k=b_block)に応じて、補正後の輝度値を決定する。以下、ラベリング部333による、黒ブロックに含まれる画素についてのラベリング処理の例を2種類挙げる。
【0109】
[ラベリング処理の第1の処理例]
ラベリング処理の第1の処理例では、ラベリング部333は、黒ブロック内の各画素の白らしさおよび黒らしさをそれぞれ確率として計算する。より具体的には、ラベリング部333は、黒ブロック内の各画素が、白画素(すなわち、印刷前の暗号化画像において背景領域に含まれていた画素)である確率と、黒画素(すなわち、印刷前の暗号化画像において文字領域に含まれていた画素)である確率とをそれぞれ求める。ラベリング部333は、これらの各確率を、黒ブロック内の白画素の輝度値が正規分布に従うと定義した統計モデルと、黒ブロック内の黒画素の輝度値が正規分布に従うと定義した統計モデルとの少なくとも一方を用いて計算する。
【0110】
ラベリング部333は、劣化パラメータ算出部332によって算出された、黒ブロックの劣化パラメータμb’(k=b_block)の値に応じて、次の2通りの方法によって確率を求める。
【0111】
[1]劣化パラメータμb’(k=b_block)が“255”以上である場合
ラベリング部333は、確率計算の際に、近傍の白ブロックにおける平均輝度値(すなわち、劣化パラメータμb’(k=b_block))を基に、黒ブロック内の白画素、黒画素それぞれの平均輝度値を推定し、確率計算に用いる正規分布の統計モデルに対して設定する。ところが、劣化パラメータμb’(k=b_block)が“255”以上である場合には、黒ブロックの近傍に対して比較的強い光が照射され、いわゆる白飛びが発生している可能性がある。この場合、黒ブロックの近傍の白ブロック内の各画素の輝度値は飽和した状態であることがあり得るため、ラベリング部333は、黒ブロックの明るさが撮像前の元の画像よりどれだけ強いかを、劣化パラメータμb’(k=b_block)から正確に知ることはできない。従って、ラベリング部333は、劣化パラメータμb’(k=b_block)を基に黒ブロック内の黒画素の平均輝度値を推定することができない。ただし、黒ブロック内の白画素の平均輝度値は、“255”であると推定できる。
【0112】
そこで、劣化パラメータμb’(k=b_block)が255以上である場合、ラベリング部333は、着目画素が白画素である確率p(k=w_pixel|xi)を、白画素が正規分布に従うと定義した統計モデルを用いて算出する。確率p(k=w_pixel|xi)は、例えば下記の式(7)のように定義できる。この式(7)によれば、白画素の平均輝度値および分散は設定されるものの、黒画素の平均輝度値および分散が設定されずに(すなわち、黒画素が正規分布に従うと定義した統計モデルが使用されずに)、確率が計算される。さらに、ラベリング部333は、下記の式(8)に従い、着目画素が黒画素である確率p(k=b_pixel|xi)を、“1”から確率p(k=w_pixel|xi)を減算することによって算出する。
【0113】
【数4】
【0114】
式(7)において、α,βは、それぞれ経験的に得られた値であればよく、例えばα=0.1、β=1とされる。また、黒ブロックにおける白画素の輝度値の分散σ22(k=w_pixel)は、式(1)を用いて白ブロックについての確率(p|k=w_block)を算出する際に設定される分散σ12(k=w_block)と同じ値であってよい。
【0115】
ラベリング部333は、式(7)および式(8)の計算結果を基に、着目画素についての補正後の輝度値を決定して、補正画像データ250内の対応する記憶領域にラベリングする。ラベリング部333は、例えば、着目画素が白画素である確率よりも黒画素である確率の方が高い場合には、着目画素の輝度値を“0”とし、着目画素が黒画素である確率よりも白画素である確率の方が高い場合には、着目画素の輝度値を“255”とする。
【0116】
ここで、上記式(7)および式(8)を用いた確率の計算例を示す。下記の例では、黒ブロック内において互いに隣接する画素A1および画素A2について、それぞれ白画素か黒画素かを判定する。この例では、黒ブロック内の白画素の分散σ22(k=w_pixel)を“100”と設定する。
【0117】
まず、画素A1の輝度値が“250”であるものとすると、画素A1が白画素である確率および黒画素である確率は、それぞれ次の式(9)、式(10)のように求められる。
【0118】
【数5】
【0119】
ラベリング部333は、式(9)、式(10)の計算結果から、画素A1は白画素であると判定し、補正画像データ250内の画素A1に対応する記憶領域に対して、輝度値“255”をラベリングする。
【0120】
一方、画素A1に隣接する画素A2の輝度値が“30”であるものとすると、画素A2が白画素である確率および黒画素である確率は、それぞれ次の式(11)、式(12)のように求められる。
【0121】
【数6】
【0122】
ラベリング部333は、式(11)、式(12)の計算結果から、画素A2は黒画素であると判定し、補正画像データ250内の画素A2に対応する記憶領域に対して、輝度値“0”をラベリングする。
【0123】
[2]劣化パラメータμb’(k=b_block)が“255”未満である場合
劣化パラメータμb’(k=b_block)が“255”未満である場合には、撮像時に黒ブロック内の明るさが減少したと考えられる。この場合、劣化パラメータμb’(k=b_block)は、黒ブロック内の白画素の平均輝度値と一致すると推定できる。一方、黒ブロック内の黒画素の平均輝度値は、“0”であると推定できる。
【0124】
ラベリング部333は、上記のように推定した白画素、黒画素の各平均輝度値を、正規分布の統計モデルに設定することで、着目画素が白画素である確率p(k=w_pixel|xi)と、着目画素が黒画素である確率p(k=b_pixel|xi)とをそれぞれ算出する。着目画素が白画素または黒画素である確率p(k|xi)は、例えば、ベイズの定理を用いて式(13)のように定義される。なお、式(13)におけるZは、式(14)のように定義される。
【0125】
【数7】
【0126】
また、式(13)、式(14)における確率p(xi|k)は、次の式(15)によって求められる。式(15)は、着目画素が白画素(k=w_block)または黒画素(k=b_block)から生起される確率p(xi|k)を、白画素および黒画素の各輝度値が正規分布に従って分布すると定義した統計モデルによって表したものである。
【0127】
【数8】
【0128】
ラベリング部333は、式(15)の計算時において、黒ブロック内の白画素の平均輝度値μ(k=w_pixel)を、劣化パラメータμb’(k=b_block)の値とし、黒ブロック内の黒画素の平均輝度値μ(k=b_pixel)を“0”とする。これにより、近傍の白ブロックの明るさに応じて、確率p(k|xi)が算出されるようになる。
【0129】
また、ラベリング部333は、式(15)の計算時において、黒ブロック内の白画素の分散σ22(k=w_pixel)より、黒ブロック内の黒画素の分散σ22(k=b_pixel)の値を大きく設定する。これにより、確率p(k=w_pixel|xi)および確率p(k=b_pixel|xi)が、図9において説明した、白画素と黒画素との統計的性質の違いに応じて計算されるようになり、各確率の算出精度が向上する。
【0130】
白画素の分散σ22(k=w_pixel)は、例えば、式(1)を用いて白ブロックについての確率(p|k=w_block)を算出する際に設定される分散σ12(k=w_block)と同じ値であってよい。同様に、黒画素の分散σ22(k=b_pixel)は、例えば、式(1)を用いて黒ブロックについての確率(p|k=b_block)を算出する際に設定される分散σ12(k=b_block)と同じ値であってよい。
【0131】
なお、式(13)におけるp(k)は、例えば、式(2)と同様に“1/2”とされればよい。また、式(15)におけるβは、経験的に得られた値であればよく、例えば“1”とされる。
【0132】
ラベリング部333は、式(13)を用いた確率p(k=w_pixel|xi)および確率p(k=b_pixel|xi)の各計算結果から、着目画素についての補正後の輝度値を決定して、補正画像データ250内の対応する記憶領域にラベリングする。劣化パラメータμb’(k=b_block)が“255”以上である場合と同様に、ラベリング部333は、例えば、着目画素が白画素である確率よりも黒画素である確率の方が高い場合には、着目画素の輝度値を“0”とし、着目画素が黒画素である確率よりも白画素である確率の方が高い場合には、着目画素の輝度値を“255”とする。
【0133】
以上の式(13)〜式(15)を用いたラベリング処理によれば、黒ブロック内の各画素についての輝度補正値が、黒ブロックの近傍の白ブロックにおける平均輝度値に応じて計算されるとともに、白画素と黒画素のそれぞれの統計的性質の違いに応じて計算される。従って、黒ブロックに生じた輝度ムラの影響が抑制されるように、黒ブロックの各画素の輝度値が補正される。
【0134】
ここで、上記式(13)〜式(15)を用いた確率の計算例を示す。下記の例では、黒ブロック内に存在する画素Bについて白画素か黒画素かを判定する。この例では、黒ブロック内の白画素の分散σ22(k=w_pixel)を“25”と設定し、黒ブロック内の黒画素の分散σ22(k=b_pixel)を、白画素の分散σ22(k=w_pixel)より大きい“100”と設定する。また、黒ブロック内の白画素の平均輝度値μ(k=w_pixel)(すなわち、劣化パラメータμb’(k=b_block))が“200”であるものとする。
【0135】
画素Bの輝度値が“197”であるものとすると、画素Bが白画素である確率は、式(16)のように求められる。
【0136】
【数9】
【0137】
また、画素Bが黒画素である確率は、式(17)のように求められる。
【0138】
【数10】
【0139】
ここで、式(16)、式(17)におけるZは、次の式(18)のように求められる。
Z=exp(−3.58)+exp(−392.00)=0.0278 ・・・(18)
従って、画素Bが白画素である確率は“1”、画素Bが黒画素である確率は“0”と算出される。ラベリング部333は、式(16)〜式(18)の計算結果から、画素Bは白画素であると判定し、補正画像データ250内の画素Bに対応する記憶領域に対して、輝度値“255”をラベリングする。
【0140】
なお、以上説明したラベリング処理の第1の処理例において、ラベリング部333は、例えば、式(7)および式(8)の計算結果、または、式(13)の計算結果から、期待値を計算することで、黒ブロック内の着目画素のついての補正後の輝度値を決定してもよい。具体的には、ラベリング部333は、補正後の輝度値xi’を、次の式(19)に従って算出する。なお、式(19)は、劣化パラメータμb’(k=b_block)がどのような値であっても利用可能である。また、ラベリング部333は、式(19)を用いて補正後の輝度値を計算する場合には、式(8)または式(13)を用いた、着目画素が黒画素である確率p(k=b_pixel|xi)の計算を行わなくてもよい。
xi’=255×p(k=w_pixel|xi)+0×p(k=b_pixel|xi)
・・・(19)
式(19)を用いて輝度値が計算された場合、黒ブロック内の文字領域のエッジ付近の輝度値が、“0”と“255”との間の中間値を採り得るようになる。この場合、文字領域のエッジが滑らかにつながっているように見えるという効果が得られる。
【0141】
[ラベリング処理の第2の処理例]
ラベリング処理の第2の処理例では、ラベリング部333は、劣化パラメータμb’(k=b_block)が“255”未満である場合に、黒ブロック内の各画素の輝度値を、劣化パラメータμb’(k=b_block)を基に補正する。具体的には、ラベリング部333は、黒ブロック内の各画素の補正後の輝度値xi’を、次の式(20)に従って算出する。ただし、ラベリング部333は、式(20)の計算によって輝度値が255を超えた場合には、補正後の輝度値を“255”に制限する。
xi’=xi×255/μb’(k=b_block) ・・・(20)
式(20)によれば、黒ブロック内の各画素の輝度値は、撮像時に明るさが劣化した度合いに応じて、輝度値が本来の値に戻るように増加する。換言すると、各画素の輝度値は、撮像時における明るさの減少量を補うように補正される。明るさの劣化度合いは、黒ブロックの近傍の白ブロックにおける画素の平均輝度値を基に高精度に計算されることから、式(20)により、黒ブロック内の各画素の輝度値は、撮像前の本来の輝度値に精度よく近づくように補正される。これにより、黒ブロックに生じた輝度ムラの影響が抑制される。また、式(20)を用いて輝度値が計算された場合には、上記の式(19)を用いた場合と同様に、文字領域のエッジが滑らかにつながっているように見えるという効果が得られる。
【0142】
なお、ラベリング処理の第2の処理例においては、ラベリング部333は、劣化パラメータμb’(k=b_block)が“255”以上である場合には、前述のラベリング処理の第1の処理例と同様の手順で、ラベリングを行う。
【0143】
次に、上記の携帯電話機300における処理を、フローチャートを用いて説明する。まず、図11は、携帯電話機で実行される暗号化画像の表示処理の全体の処理手順を示すフローチャートである。
【0144】
[ステップS101]撮像制御部321は、カメラモジュール309に画像を撮像させ、カメラモジュール309から撮像画像データ240を取得して、RAM302に記憶する。
【0145】
撮像制御部321は、例えば、カメラモジュール309に動画像を撮像させ、フレームのデータを順次取得する。撮像制御部321は、フレームのデータを取得する度にそのデータからコントラストを算出し、コントラストの値があらかじめ決められた一定値以上であるときに、フレームのデータを撮像画像データ240としてRAM302に格納する。あるいは、撮像制御部321は、カメラモジュール309に一定時間だけ動画像を撮像させ、得られた複数枚のフレームのデータのうち、コントラストが最も高いフレームのデータを、撮像画像データ240としてRAM302に格納してもよい。
【0146】
[ステップS102]ブロック分割部322は、撮像画像のうち暗号化画像210の領域(暗号化対象領域221に対応)を、ブロックに分割する。ブロック分割処理については、図4のステップS22,S23において説明した通りである。ブロック分割部322は、分割した各ブロックについての座標情報261をブロック情報260に登録する。
【0147】
また、ブロック分割部322は、撮像画像をブロックに分割した後、各ブロックの左上に付与されたブロック識別マーカ223を補間演算によって消去し、撮像画像データ240を、ブロック識別マーカ223が消去されたデータによって更新する。さらに、ブロック分割部322は、撮像画像データ240から、暗号化画像210の領域に含まれない画素の輝度値を読み出し、RAM302上の補正画像データ250における対応する画素の記憶領域にラベリングする。なお、暗号化画像210の領域に含まれない画素のラベリング処理は、後述するステップS108の実行前であればどの時点で実行されてもよく、また、このラベリング処理は、ラベリング部333または画像復号部324によって実行されてもよい。
【0148】
[ステップS103]ブロック分類部331は、ブロック情報260を参照して、未処理のブロックを1つ選択する。
[ステップS104]ブロック分類部331は、選択したブロックが白ブロックか黒ブロックかを判定するブロック分類処理を実行する。ブロック分類処理の詳細については、後の図12、図13において説明する。
【0149】
[ステップS105]ブロック分類部331は、撮像画像における全ブロックについてブロック分類処理を行ったか否かを判定する。ブロック分類部331は、未処理のブロックがある場合にはステップS103を実行する。一方、ブロック分類部331は、全ブロックを処理済みである場合には、その旨をラベリング部333に通知する。これにより、ステップS106の処理が実行される。
【0150】
[ステップS106]ラベリング部333および劣化パラメータ算出部332による画質補正処理が実行される。画質補正処理により、撮像時に環境条件によって生じた、暗号化画像210における輝度ムラが抑制される。この画質補正処理の詳細については、後の図14において説明する。ステップS106の処理が終了したとき、補正画像データ250における全画素の記憶領域に輝度値がラベリングされた状態となる。
【0151】
[ステップS107]画像復号部324は、ブロック情報260の座標情報261を参照して、補正画像データ250から暗号化画像210の輝度値をブロックごとに読み出す。画像復号部324は、図4のステップS24で説明したように、暗号化画像210内のブロックを、復号鍵に基づいて決定される規則に従って並べ替える。これによって、暗号化画像210が復号されて、原画像が復元される。画像復号部324は、補正画像データ250における暗号化画像210の領域の輝度値を、復号された画像の輝度値に書き替える。
【0152】
[ステップS108]画像出力制御部325は、暗号化画像210の領域の輝度値が書き替えられた補正画像データ250を読み出して表示処理部307に供給する。これにより、原画像が復元された画像がモニタ307aに表示される。
【0153】
なお、以上の図11の処理では、ステップS102において分割されたブロックは、画質補正部323によって白ブロックまたは黒ブロックと判別する単位として使用されるとともに、画像復号部324によって並べ替えを行う単位としても使用される。しかしながら、画質補正部323によって白ブロックまたは黒ブロックと判別するブロック(第1のブロックと呼ぶ)と、画像復号部324によって並べ替えを行うブロック(第2のブロックと呼ぶ)とは、それぞれ別の方法で分割されたものであってもよい。
【0154】
例えば、第1のブロックの画素数は、第2のブロックの画素数より大きく設定されても、あるいは小さく設定されてもよい。また、例えば、第1のブロックは、第2のブロックのうち、互いに接する複数の第2のブロックであってもよい。
【0155】
撮像画像から第1のブロックを分割する方法と、補正画像から第2のブロックを分割する方法との間に、互いに関連性がない場合には、画像復号部324は、ステップS107において第2のブロックの並べ替えを行う前に、補正画像を第2のブロックに分割する処理を行う。この場合、ブロック分割部322によって撮像画像が第1のブロックに分割された後、撮像画像データ240は、ブロック識別マーカ223に対応するデータが残った状態のままとされる。そして、ブロック識別マーカ223は、画像復号部324によって、第2のブロックの分割が行われる前に撮像画像データ240から検出されて、歪み補正および第2のブロックの分割の各処理に用いられる。
【0156】
図12は、ブロック分類処理の第1の処理例を示すフローチャートである。この図12の処理は、図11のステップS104において実行されるものである。
[ステップS121]ブロック分類部331は、図11のステップS103で選択したブロック内の各画素の輝度値を撮像画像データ240から読み出し、輝度値の分散σb2を算出する。
【0157】
[ステップS122]ブロック分類部331は、ステップS121で算出した分散σb2を、あらかじめ決められたしきい値γと比較する。ブロック分類部331は、輝度値の分散σb2がしきい値γより大きい場合には、ステップS123の処理を実行し、輝度値の分散σb2がしきい値γ以下である場合には、ステップS124の処理を実行する。
【0158】
[ステップS123]ブロック分類部331は、ステップS103で選択したブロックは黒ブロックであると判定し、ブロック情報260の対応するブロックのエントリに、黒ブロックであることを示すブロック種別262を登録する。この後、図11のステップS105の処理に戻る。
【0159】
[ステップS124]ブロック分類部331は、ステップS103で選択したブロックは白ブロックであると判定し、ブロック情報260の対応するブロックのエントリに、白ブロックであることを示すブロック種別262を登録する。この後、図11のステップS105の処理に戻る。
【0160】
図13は、ブロック分類処理の第2の処理例を示すフローチャートである。この図13の処理は、図11のステップS104において実行されるものである。
[ステップS131]ブロック分類部331は、図11のステップS103で選択したブロック内の各画素の輝度値を撮像画像データ240から読み出し、式(3)に従って、選択したブロックが白ブロックである確率p(k=w_block|b)を計算する。式(3)の計算の際、ブロック分類部331は、黒ブロックの分散σ12(k=b_block)として、白ブロックの分散σ12(k=w_block)より大きな値を設定する。なお、これらの分散σ12(k=b_block)および分散σ12(k=w_block)としては、あらかじめ決められた値が用いられる。
【0161】
[ステップS132]ブロック分類部331は、ステップS131で算出した確率p(k=w_block|b)を所定のしきい値(例えば“0.7”)と比較する。ブロック分類部331は、確率p(k=w_block|b)がしきい値を超えている場合、ステップS133の処理を実行し、確率p(k=w_block|b)がしきい値以下である場合、ステップS134の処理を実行する。
【0162】
[ステップS133]ブロック分類部331は、ステップS103で選択したブロックは白ブロックであると判定し、ブロック情報260の対応するブロックのエントリに、白ブロックであることを示すブロック種別262を登録する。この後、図11のステップS105の処理に戻る。
【0163】
[ステップS134]ブロック分類部331は、ステップS103で選択したブロックは黒ブロックであると判定し、ブロック情報260の対応するブロックのエントリに、黒ブロックであることを示すブロック種別262を登録する。この後、図11のステップS105の処理に戻る。
【0164】
図14は、画質補正処理の手順を示すフローチャートである。この図14の処理は、図11のステップS106において実行されるものである。
[ステップS141]ラベリング部333は、ブロック情報260のブロック種別262を基に、未選択の白ブロックを1つ選択する。
【0165】
[ステップS142]ラベリング部333は、補正画像データ250内の各画素の記憶領域のうち、ステップS141で選択した白ブロック内の各画素の記憶領域に対して、輝度値255をラベリングする。
【0166】
[ステップS143]劣化パラメータ算出部332は、ステップS141で選択された白ブロック内の各画素の輝度値を撮像画像データ240から読み出し、式(5)に従って、白ブロックの劣化パラメータμb’(k=w_block)を算出する。劣化パラメータ算出部332は、算出した劣化パラメータμb’(k=w_block)を、ブロック情報260における対応するブロックのエントリに、劣化パラメータ263として登録する。
【0167】
[ステップS144]ラベリング部333は、撮像画像におけるすべての白ブロックについてステップS141〜S143の処理を行ったか否かを判定する。ラベリング部333は、未処理の白ブロックがある場合には、ステップS141の処理を実行する。一方、ラベリング部333は、全白ブロックを処理済みである場合には、ステップS145の処理を実行する。
【0168】
[ステップS145]ラベリング部333は、ブロック情報260のブロック種別262を基に、未選択の黒ブロックを1つ選択する。
[ステップS146]劣化パラメータ算出部332は、ブロック情報260の座標情報261およびブロック種別262を基に、ステップS144で選択された黒ブロックの近傍に存在する1つ以上の白ブロックを選択する。劣化パラメータ算出部332は、選択した1つ以上の白ブロックの劣化パラメータμb’(k=w_block)をブロック情報260から読み出し、式(6)に従って、黒ブロックの劣化パラメータμb’(k=b_block)を算出する。
【0169】
なお、劣化パラメータ算出部332は、選択した1つ以上の白ブロック内の各画素の輝度値を撮像画像データ240から読み出し、読み出した輝度値の平均値を計算することで、黒ブロックの劣化パラメータμb’(k=b_block)を算出してもよい。
【0170】
[ステップS147]ラベリング部333は、ステップS145で選択した黒ブロック内の画素を1つ選択する。
[ステップS148]ラベリング部333は、ステップS146で算出した劣化パラメータμb’(k=b_block)を基に、ステップS147で選択した画素についての補正後の輝度値を算出し、補正画像データ250における対応する画素の記憶領域にラベリングする。このステップS148の処理の詳細については、後の図15、図16において説明する。
【0171】
[ステップS149]ラベリング部333は、ステップS145で選択した黒ブロック内のすべての画素についてラベリング処理を行ったか否かを判定する。ラベリング部333は、未処理の画素がある場合には、ステップS147の処理を実行し、全画素を処理済みである場合には、ステップS150の処理を実行する。
【0172】
[ステップS150]ラベリング部333は、撮像画像におけるすべての黒ブロックについてステップS145〜S149の処理を行ったか否かを判定する。ラベリング部333は、未処理の黒ブロックがある場合には、ステップS145の処理を実行する。一方、ラベリング部333は、全黒ブロックを処理済みである場合には、その旨を画像復号部324に通知する。これにより、図11のステップS107の処理が実行される。
【0173】
図15は、ラベリング処理の第1の処理例を示すフローチャートである。この図15の処理は、図14のステップS148の処理に対応する。
[ステップS161]ラベリング部333は、図14のステップS146で算出した劣化パラメータμb’(k=b_block)が、“255”以上であるか否かを判定する。ラベリング部333は、劣化パラメータμb’(k=b_block)が“255”以上である場合には、ステップS162の処理を実行し、劣化パラメータμb’(k=b_block)が“255”より小さい場合には、ステップS163の処理を実行する。
【0174】
[ステップS162]ラベリング部333は、図14のステップS147で選択した画素の輝度値を撮像画像データ240から読み込む。ラベリング部333は、読み込んだ輝度値を基に、選択した画素が白画素である確率p(k=w_pixel|xi)および黒画素である確率p(k=b_pixel|xi)を、それぞれ式(7)、式(8)に従って計算する。この計算では、ラベリング部333は、ステップS145で選択した黒ブロックにおける黒画素の平均輝度値を“255”と設定する。
【0175】
[ステップS163]ラベリング部333は、図14のステップS147で選択した画素の輝度値を撮像画像データ240から読み込む。ラベリング部333は、読み込んだ輝度値を基に、選択した画素が白画素である確率p(k=w_pixel|xi)および黒画素である確率p(k=b_pixel|xi)を、式(13)〜式(15)を用いて計算する。
【0176】
この計算において、ラベリング部333は、ステップS145で選択した黒ブロックにおける白画素の平均輝度値を、ステップS146で算出した劣化パラメータμb’(k=b_block)の値とし、黒画素の平均輝度値を“0”と設定する。また、ラベリング部333は、黒ブロック内の黒画素の分散σ22(k=b_pixel)として、黒ブロック内の白画素の分散σ22(k=w_pixel)より大きな値を設定する。
【0177】
[ステップS164]ラベリング部333は、ステップS162またはステップS163において算出した確率を基に、式(19)に従って期待値を計算する。なお、実際には、ラベリング部333は、ステップS162およびステップS163のそれぞれにおいて、選択した画素が白画素である確率p(k=w_pixel|xi)のみを算出することで、式(19)に従って期待値を計算することが可能である。
【0178】
[ステップS165]ラベリング部333は、ステップS164で算出した期待値を、図14のステップS147で選択した画素の輝度値として、補正画像データ250の対応する画素の記憶領域にラベリングする。この後、ラベリング部333は、図14のステップS149の処理を実行する。
【0179】
なお、ラベリング部333は、ステップS164,S165の代わりに、ステップS162またはステップS163において算出した確率を基に次のようにして画素の輝度値を決定してもよい。ラベリング部333は、選択した画素が白画素である確率p(k=w_pixel|xi)が、黒画素である確率p(k=b_pixel|xi)以上である場合には、画素の輝度値を“255”と決定して、補正画像データの対応する画素の記憶領域にラベリングする。一方、ラベリング部333は、選択した画素が白画素である確率p(k=w_pixel|xi)が、黒画素である確率p(k=b_pixel|xi)未満である場合には、画素の輝度値を“0”と決定して、補正画像データの対応する画素の記憶領域にラベリングする。
【0180】
図16は、ラベリング処理の第2の処理例を示すフローチャートである。この図16の処理は、図14のステップS148の処理に対応する。
[ステップS171]ラベリング部333は、図14のステップS146で算出した劣化パラメータμb’(k=b_block)が、“255”以上であるか否かを判定する。ラベリング部333は、劣化パラメータμb’(k=b_block)が“255”以上である場合には、ステップS172の処理を実行し、劣化パラメータμb’(k=b_block)が“255”より小さい場合には、ステップS175の処理を実行する。
【0181】
[ステップS172]ラベリング部333は、図15のステップS162と同様の手順で、図14のステップS147で選択した画素が白画素である確率p(k=w_pixel|xi)および黒画素である確率p(k=b_pixel|xi)を、それぞれ式(7)、式(8)に従って計算する。
【0182】
[ステップS173]ラベリング部333は、ステップS172で算出した確率を基に、式(19)に従って期待値を計算する。なお、実際には、ラベリング部333は、ステップS172において、選択した画素が白画素である確率p(k=w_pixel|xi)のみを算出することで、式(19)に従って期待値を計算することが可能である。
【0183】
[ステップS174]ラベリング部333は、ステップS173で算出した期待値を、図14のステップS147で選択した画素の輝度値として、補正画像データ250の対応する画素の記憶領域にラベリングする。この後、ラベリング部333は、図14のステップS149の処理を実行する。
【0184】
なお、ラベリング部333は、ステップS173,S174の代わりに、ステップS172において算出した確率を基に次のようにして画素の輝度値を決定してもよい。ラベリング部333は、選択した画素が白画素である確率p(k=w_pixel|xi)が、黒画素である確率p(k=b_pixel|xi)以上である場合には、画素の輝度値を“255”と決定して、補正画像データの対応する画素の記憶領域にラベリングする。一方、ラベリング部333は、選択した画素が白画素である確率p(k=w_pixel|xi)が、黒画素である確率p(k=b_pixel|xi)未満である場合には、画素の輝度値を“0”と決定して、補正画像データの対応する画素の記憶領域にラベリングする。
【0185】
[ステップS175]ラベリング部333は、図14のステップS147で選択した画素の輝度値を撮像画像データ240から読み込む。ラベリング部333は、読み込んだ輝度値と、ステップS146で算出した劣化パラメータμb’(k=b_block)とを基に、式(20)に従って補正後の輝度値を計算する。
【0186】
[ステップS176]ラベリング部333は、ステップS175で算出した輝度値を、補正画像データの対応する画素の記憶領域にラベリングする。この後、ラベリング部333は、図14のステップS149の処理を実行する。
【0187】
以上の図11〜図16で説明した処理によれば、携帯電話機300のブロック分類部331は、ステップS104において、白ブロックにおける輝度値の分散より黒ブロックにおける輝度値の分散の方が大きいという統計的性質を利用して、ブロックが白ブロックか黒ブロックかを判定する。これにより、白ブロックおよび黒ブロックを高精度に判定できる。
【0188】
また、携帯電話機300のラベリング部333は、白ブロックの各画素の輝度値を“255”に補正する。一方、ラベリング部333は、黒ブロックの各画素の輝度値を、黒ブロックの近傍の白ブロック内の画素の平均輝度値を基に補正する。
【0189】
白ブロックは白画素のみを含むブロックであることから、白ブロック内の画素の平均輝度値は、この平均輝度値が輝度値の最高値(上記の例では“255”)より小さい場合には、撮像時における明るさの劣化度合いを正確に表すと考えられる。このことから、ラベリング部333は、黒ブロックの近傍の白ブロックにおける画素の平均輝度値を基に、黒ブロックの各画素の輝度値を撮像時に劣化した分だけ増加させる。このような輝度値の補正により、輝度ムラの影響が抑制されるように、黒ブロックの明るさが補正される。
【0190】
以上のようなブロック分類処理および画質補正処理により、画像復号部324によって復号された画像において、輝度ムラに起因するノイズが目立たなくなり、復号後の画像の画質が向上する。
【0191】
〔第3の実施の形態〕
図17は、第3の実施の形態に係るコンピュータのハードウェア構成例を示す図である。
【0192】
第2の実施の形態で示した携帯電話機300の処理機能は、例えば、図17に示すようなコンピュータ500によって実現することもできる。図17に示すコンピュータ500は、CPU501によって装置全体が制御されている。CPU501には、バス410を介して、RAM502と複数の周辺機器が接続されている。
【0193】
RAM502は、コンピュータ500の主記憶装置として使用される。RAM502には、CPU501に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM502には、CPU101による処理に必要な各種データが格納される。
【0194】
バス410に接続されている周辺機器としては、ハードディスクドライブ(HDD:Hard Disk Drive)503、グラフィック処理装置504、入力インタフェース505、光学ドライブ装置506、ネットワークインタフェース507および通信インタフェース508がある。
【0195】
HDD503は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD503は、コンピュータ500の二次記憶装置として使用される。HDD503には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【0196】
グラフィック処理装置504には、モニタ504aが接続されている。グラフィック処理装置504は、CPU501からの命令に従って、画像をモニタ504aの画面に表示させる。モニタ504aとしては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
【0197】
入力インタフェース505には、例えば、キーボード505aとマウス505bとが接続されている。入力インタフェース505は、キーボード505aやマウス505bから送られてくる信号をCPU501に送信する。なお、マウス505bは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0198】
光学ドライブ装置506は、レーザ光などを利用して、光ディスク506aに記録されたデータの読み取りを行う。光ディスク506aは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク506aには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
【0199】
ネットワークインタフェース507は、ネットワーク520に接続されている。ネットワークインタフェース507は、ネットワーク520を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【0200】
通信インタフェース508は、通信ケーブルを介してカメラ508aと接続されている。カメラ508aは、撮像素子によって画像を撮像する装置であり、例えば、図6に示したカメラモジュール309と同様の機構や回路を備える。通信インタフェース508は、カメラ508aによって撮像された撮像画像のデータをCPU501に送信する。なお、通信インタフェース508としては、例えば、USB(Universal Serial Bus)インタフェースなどがある。
【0201】
以上のハードウェア構成によって、図7に示した撮像制御部321、ブロック分割部322、画質補正部323、画像復号部324および画像出力制御部325の処理を実現することができる。この場合、各処理ブロックの処理は、CPU501が所定のプログラムを実行することで実現される。また、撮像制御部321は、カメラ508aによって撮像された撮像画像のデータを取得する。また、画像出力制御部325は、暗号化画像の領域が復号化された画像を、モニタ504aに表示させる。
【0202】
なお、コンピュータ500は、例えば、ブロック分割部322が処理する撮像画像データを、ネットワーク520上の他の装置から受信してもよい。あるいは、コンピュータ500は、例えば、ブロック分割部322が処理する撮像画像データを、光ディスク506aなどの可搬型記録媒体から読み込んでもよい。これらのどちらの場合でも、コンピュータ500は、図7の撮像制御部321の処理機能を有していなくてもよい。
【0203】
さらに、コンピュータ500は、例えば、暗号化画像の領域が復号化された画像のデータを、ネットワーク520上の他の装置へ送信してもよい。あるいは、コンピュータ500は、例えば、暗号化画像の領域が復号化された画像のデータを、光ディスク506aなどの可般型記憶媒体に書き込んでもよい。
【0204】
なお、コンピュータ500が備える上記処理機能の処理内容を記述したプログラムは、コンピュータ500で読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、HDD503などの磁気記憶装置、光ディスク506a、光磁気記録媒体、半導体メモリなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
【0205】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータからコンピュータ500にそのプログラムを転送することもできる。
【0206】
プログラムを実行するコンピュータ500は、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、HDD503などの自己の記憶装置に格納する。そして、コンピュータ500は、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータ500は、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータ500は、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【0207】
また、上記の処理機能の少なくとも一部を、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現することもできる。
【0208】
以上の各実施の形態に関し、さらに以下の付記を開示する。
(付記1) 入力画像における少なくとも一部の領域を複数のブロックに分割するブロック分割部と、
白画素のみを含む白ブロックにおける輝度値の分散と、白画素と黒画素のうち少なくとも黒画素を含む黒ブロックにおける輝度値の分散とに基づいて、前記入力画像の各ブロックを白ブロックと黒ブロックとに分類するブロック分類部と、
前記入力画像の黒ブロック内の各画素の輝度値を、当該黒ブロックの近傍に位置する1つ以上の白ブロック内の各画素の平均輝度値に基づいて補正する輝度補正部と、
を有することを特徴とする画像処理装置。
【0209】
(付記2) 前記ブロック分類部は、前記入力画像のブロックにおける輝度値の分散が所定の分類しきい値より大きい場合には、当該ブロックを黒ブロックに分類し、当該ブロックにおける輝度値の分散が前記分類しきい値以下である場合には、当該ブロックを白ブロックに分類することを特徴とする付記1記載の画像処理装置。
【0210】
(付記3) 前記ブロック分類部は、白ブロックにおける輝度値の分散としてあらかじめ決められた第1のブロック内分散値と、黒ブロックにおける輝度値の分散としてあらかじめ決められた、前記第1のブロック内分散値より大きい第2のブロック内分散値とを用いて、前記入力画像のブロックが白ブロックである確率、または、当該ブロックが黒ブロックである確率の少なくとも一方を計算し、算出された確率に基づいて、当該ブロックを白ブロックまたは黒ブロックのどちらかに分類することを特徴とする付記1記載の画像処理装置。
【0211】
(付記4) 前記ブロック分類部は、白ブロック内の画素の輝度値が正規分布に従うことを定義した統計モデルと、黒ブロック内の画素の輝度値が正規分布に従うことを定義した統計モデルとを用いて、前記入力画像のブロックが白ブロックである確率、または、当該ブロックが黒ブロックである確率の少なくとも一方を算出することを特徴とする付記3記載の画像処理装置。
【0212】
(付記5) 前記輝度補正部は、白画素の輝度値の分散としてあらかじめ決められた第1の分散値と、黒画素の輝度値の分散としてあらかじめ決められた、前記第1の分散値より大きい第2の分散値とを用いるとともに、補正対象の黒ブロックの近傍に位置する1つ以上の白ブロック内の各画素の平均輝度値を当該黒ブロック内の白画素の平均輝度値として設定することで、前記入力画像の黒ブロックの各画素が白画素である確率、または、当該黒ブロックの各画素が黒画素である確率の少なくとも一方を計算し、算出された確率に基づいて、当該黒ブロック内の各画素の輝度値を補正することを特徴とする付記1〜4のいずれか1つに記載の画像処理装置。
【0213】
(付記6) 前記輝度補正部は、白画素の輝度値が正規分布に従うことを定義した統計モデルと、黒画素の輝度値が正規分布に従うことを定義した統計モデルとを用いて、前記入力画像の黒ブロックの各画素が白画素である確率、または、当該黒ブロックの各画素が黒画素である確率の少なくとも一方を計算することを特徴とする付記5記載の画像処理装置。
【0214】
(付記7) 前記輝度補正部は、前記入力画像の黒ブロック内の各画素の輝度値を、当該黒ブロックの各画素が白画素である確率に基づく期待値に補正することを特徴とする付記5または6記載の画像処理装置。
【0215】
(付記8) 前記輝度補正部は、前記入力画像の黒ブロック内の各画素の輝度値を、当該黒ブロックの近傍に位置する1つ以上の白ブロック内の各画素の平均輝度値に基づく明るさの減少量を補うように補正することを特徴とする付記1〜4のいずれか1つに記載の画像処理装置。
【0216】
(付記9) 前記輝度補正部は、前記入力画像の白ブロック内の全画素の輝度値を階調上の最高値に補正することを特徴とする付記1〜8のいずれか1つに記載の画像処理装置。
【0217】
(付記10) 前記ブロック分割部は、前記入力画像のうち原画像が暗号化された暗号化画像の領域をブロックに分割することを特徴とする付記1〜9のいずれか1つに記載の画像処理装置。
【0218】
(付記11) 前記輝度補正部によって輝度値が補正された各ブロックを、復号鍵に基づいて並べ替えることで、前記暗号化画像を復号する復号処理部をさらに有することを特徴とする付記10記載の画像処理装置。
【0219】
(付記12) 画像処理装置が、
入力画像における少なくとも一部の領域を複数のブロックに分割し、
白画素のみを含む白ブロックにおける輝度値の分散と、白画素と黒画素のうち少なくとも黒画素を含む黒ブロックにおける輝度値の分散とに基づいて、前記入力画像の各ブロックを白ブロックと黒ブロックとに分類し、
前記入力画像の黒ブロック内の各画素の輝度値を、当該黒ブロックの近傍に位置する1つ以上の白ブロック内の各画素の平均輝度値に基づいて補正する、
ことを特徴とする画像処理方法。
【0220】
(付記13) コンピュータに、
入力画像における少なくとも一部の領域を複数のブロックに分割し、
白画素のみを含む白ブロックにおける輝度値の分散と、白画素と黒画素のうち少なくとも黒画素を含む黒ブロックにおける輝度値の分散とに基づいて、前記入力画像の各ブロックを白ブロックと黒ブロックとに分類し、
前記入力画像の黒ブロック内の各画素の輝度値を、当該黒ブロックの近傍に位置する1つ以上の白ブロック内の各画素の平均輝度値に基づいて補正する、
処理を実行させることを特徴とする画像処理プログラム。
【符号の説明】
【0221】
10 画像処理装置
11 ブロック分割部
12 ブロック分類部
13 輝度補正部
20 入力画像
21 暗号化画像
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法および画像処理プログラムに関する。
【背景技術】
【0002】
近年、紙媒体などの印刷物に印刷された秘密情報の漏洩を防止することが望まれている。そして、印刷された秘密情報の漏洩を防止する技術として、秘密情報を視覚的に暗号化した状態で印刷物に印刷することが考えられている。例えば、入力画像に対して、画像内の一部を暗号化するとともに、暗号化された領域の四隅などにマーカを付加する処理を行う暗号化装置がある。画像の暗号化は、例えば、入力画像の暗号化対象領域内の画素の位置を、それぞれ複数画素からなるブロックを単位として並べ替えることで行われる。
【0003】
暗号化装置によって処理された画像は、例えば紙媒体に印刷される。印刷された画像は、カメラなどの読み取り装置によって読み取られてデジタル画像に変換され、復号装置に供給される。復号装置は、入力されたデジタル画像内のマーカの位置を基に、暗号化された領域を特定する。復号装置は、特定された領域の画像を復号して原画像を復元する。
【0004】
一方、カメラによって撮像された画像の画質を補正する技術として、ホワイトバランス調整が知られている。ホワイトバランス調整機能を有するカメラの例としては、撮像された画像をある大きさのブロックに分割するとともに、同じ画像をより小さいブロックにも分割し、それぞれの大きさのブロックを用いて2種類のホワイトバランス補正値を算出し、各ホワイトバランス調整値を感度に応じて加重加算するものがあった。また、他の例としては、撮像された画像を複数のブロックに分割し、白色領域と判定されたブロック数が多くなれば、ホワイトバランス調整が収束したか否かを判定する各色信号間の収束判定幅を小さくするものがあった。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−301044号公報
【特許文献2】特開2007−300320号公報
【特許文献3】特開2001−169307号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、印刷物に印刷された画像を読み取り装置によって読み取る際には、読み取り装置と印刷物との角度や照明の当たり具合などの環境条件によっては、読み取り後のデジタル画像上に輝度ムラが発生する場合があるという問題があった。特に、読み取り装置としてカメラを用いて印刷物を撮像した場合には、カメラと印刷物とが離れていることから、環境条件が一定になりにくい。このため、カメラによって撮像された画像には、輝度ムラが発生しやすい。
【0007】
さらに、白黒画像、特に2値画像を暗号化して印刷物に印刷した場合には、印刷物から暗号化された画像を読み取る際に上記の輝度ムラが発生すると、暗号化された画像を復号した際の画質が劣化するという問題がある。暗号化された画像を読み取って得られたデジタル画像においては、環境条件によって輝度が高くなった領域と輝度が低くなった領域は、それぞれ別の範囲にある程度集中する。しかし、暗号化された領域内のブロックは、復号時に並べ替えられる。このため、暗号化された領域に輝度ムラがある場合には、環境条件によって輝度が高くなった画素と輝度が低くなった画素とが、暗号化された領域内でそれぞれ拡散される。
【0008】
従って、復号化された画像においては、例えば、本来は一様な明るさの白である領域が、明るさが極端に異なる画素が散在する状態、すなわちノイズが発生した状態となる。輝度ムラに起因して発生したノイズは白黒画像上で目立ちやすいことから、復号化された画像の画質を劣化させる大きな原因になる。
【0009】
本発明はこのような点に鑑みてなされたものであり、撮像画像に生じた輝度のムラを抑制することが可能な画像処理装置、画像処理方法および画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するために、画像処理装置が提供される。この画像処理装置は、入力画像における少なくとも一部の領域を複数のブロックに分割するブロック分割部と、白画素のみを含む白ブロックにおける輝度値の分散と、白画素と黒画素のうち少なくとも黒画素を含む黒ブロックにおける輝度値の分散とに基づいて、前記入力画像の各ブロックを白ブロックと黒ブロックとに分類するブロック分類部と、前記入力画像の黒ブロック内の各画素の輝度値を、当該黒ブロックの近傍に位置する1つ以上の白ブロック内の各画素の平均輝度値に基づいて補正する輝度補正部と、を有する。
【0011】
また、上記目的を達成するために、上記の画像処理装置と同様の処理を行う画像処理方法、および、上記と同様の処理をコンピュータに実行させる画像処理プログラムが提供される。
【発明の効果】
【0012】
上記の画像処理装置、画像処理方法および画像処理プログラムによれば、入力画像に生じた輝度のムラを抑制することができる。
【図面の簡単な説明】
【0013】
【図1】第1の実施の形態に係る画像処理装置の構成例を示す図である。
【図2】暗号化画像の印刷および読み取りを行うシステムの構成例を示す図である。
【図3】画像処理装置における暗号化画像の生成手順を説明する図である。
【図4】携帯電話機における暗号化画像の復号手順を説明する図である。
【図5】復号後の画像における画質劣化について説明する図である。
【図6】携帯電話機のハードウェア構成例を示す図である。
【図7】携帯電話機が備える処理機能を示すブロック図である。
【図8】ラベリングについて説明する図である。
【図9】暗号化画像の統計的性質を示す図である。
【図10】撮像された暗号化画像におけるブロックの例を示す図である。
【図11】携帯電話機で実行される暗号化画像の表示処理の全体の処理手順を示すフローチャートである。
【図12】ブロック分類処理の第1の処理例を示すフローチャートである。
【図13】ブロック分類処理の第2の処理例を示すフローチャートである。
【図14】画質補正処理の手順を示すフローチャートである。
【図15】ラベリング処理の第1の処理例を示すフローチャートである。
【図16】ラベリング処理の第2の処理例を示すフローチャートである。
【図17】第3の実施の形態に係るコンピュータのハードウェア構成例を示す図である。
【発明を実施するための形態】
【0014】
以下、実施の形態を図面を参照して詳細に説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る画像処理装置の構成例を示す図である。
【0015】
図1に示す画像処理装置10に入力される画像(入力画像20)は、カメラやスキャナなどの読み取り装置によって印刷物から読み取られた画像である。この入力画像20には、読み取りの際の環境条件によって輝度のムラが発生する場合がある。特に、カメラによる撮像では、カメラと印刷物とが離間するため、印刷物への光の当たり具合が一様になりにくく、撮像画像に輝度ムラが発生しやすい。画像処理装置10は、このような環境条件によって入力画像20に生じた輝度ムラを抑制し、入力画像20の画質を向上させる処理を行う。
【0016】
この画像処理装置10は、ブロック分割部11、ブロック分類部12および輝度補正部13を備えている。ブロック分割部11は、入力画像20における少なくとも一部の領域を、複数のブロックに分割する。ここで、ブロックは、互いに隣接する複数の画素からなる。ブロックに分割される領域は、例えば、入力画像20の領域のうち、暗号化画像21が配置された領域とされる。暗号化画像21は、原画像を暗号鍵を用いて視覚的に暗号化することで得られた画像である。特に、暗号化画像21としては、原画像をブロックに分割した後、ブロックを復号鍵に基づいて並べ替えることで得られたものであってよい。ただし、並べ替えの単位とされたブロックと、ブロック分割部11によって分割されるブロックとは、必ずしも同じものでなくてもよい。
【0017】
ブロック分類部12は、ブロック分割部11によって分割された各ブロックを、白画素のみを含む白ブロックと、それ以外のブロックである黒ブロックとに分類する。図1において、ブロックW1〜W6は、白ブロックに分類されたブロック(以下、単に白ブロックと呼ぶ)であり、ブロックB1〜B3は、黒ブロックに分類されたブロック(以下、単に黒ブロックと呼ぶ)である。
【0018】
ブロック分類部12は、白ブロックにおける輝度値の統計的性質と黒ブロックにおける輝度値の統計的性質とに基づいて、分割された各ブロックを白ブロックと黒ブロックとに分類する。具体的には、ブロック分類部12は、白ブロックにおける輝度値の分散と、黒ブロックにおける輝度値の分散とに基づいて、各ブロックを分類する。
【0019】
読み取り装置によって読み取られた入力画像20においては、ボケが発生した場合や、撮像素子の解像度が低い場合には、黒画素のにじみが発生しやすい。これに対して、ボケが発生した場合でも、白画素は白のままである。このため、黒画素を含むブロックでは、黒画素を含まないブロックと比較して、輝度値の分散が大きくなる傾向がある。さらに、黒画素と白画素の両方を含むブロックでは、黒画素を含まないブロックと比較して、輝度値の分散は明らかに大きくなる。
【0020】
ブロック分類部12は、黒ブロックにおける輝度値の分散と白ブロックにおける輝度値の分散との間の違いを利用することで、ブロックを白ブロックと黒ブロックのどちらかに精度よく分類できる。ブロック分類部12は、例えば、入力画像20のブロック内の画素の輝度値の分散を計算し、算出された分散を所定のしきい値と比較する。ブロック分類部12は、算出された分散がしきい値より大きい場合には、このブロックを黒ブロックに分類し、算出された分散がしきい値以下である場合には、このブロックを白ブロックに分類する。
【0021】
あるいは、ブロック分類部12は、入力画像20のブロックが白ブロックである確率、または、このブロックが黒ブロックである確率の少なくとも一方を計算し、算出された確率に基づいてブロックを分類してもよい。ブロック分類部12は、このような確率の計算の際に、白ブロックにおける輝度値の分散としてあらかじめ決められた第1のブロック内分散値と、黒ブロックにおける輝度値の分散としてあらかじめ決められた、第1のブロック内分散値より大きい第2のブロック内分散値とを用いる。これにより、前述した統計的性質の違いが確率の計算に反映されるようになり、ブロックを高精度に分類できる。
【0022】
輝度補正部13は、入力画像20の領域のうちブロック分割を行った領域について、輝度ムラが抑制されるように各画素の輝度値を補正する。ここで、白ブロックは白画素のみを含むことから、白ブロック内の各画素の平均輝度値は、黒ブロック内の各画素の平均輝度値と比較して、読み取り装置による読み取りの際に明るさが減少した度合いを正確に表すと考えられる。そこで、輝度補正部13は、補正対象の黒ブロック内の各画素の輝度値を、この黒ブロックの近傍に位置する1つ以上の白ブロック内の各画素の平均輝度値に基づいて補正する。これにより、黒ブロック内の各画素の輝度値を、輝度ムラが抑制されるように精度よく補正できるようになる。
【0023】
黒ブロック内の各画素の輝度値を補正する際には、黒ブロックにできるだけ近い白ブロックを選択して、選択した白ブロック内の各画素の平均輝度値を求めることが望ましい。図1の例では、黒ブロックB2に対して、白ブロックW1〜W6が隣接している。そこで、輝度補正部13は、黒ブロックB2内の各画素の輝度値を、白ブロックW1〜W6における各画素の平均輝度値に基づいて補正する。
【0024】
輝度補正部13は、例えば、補正対象の黒ブロックの各画素が白画素である確率、または、この黒ブロックの各画素が黒画素である確率の少なくとも一方を計算し、算出された確率に基づいて、この黒ブロック内の各画素の輝度値を補正する。この確率の計算の際、輝度補正部13は、白画素の輝度値の分散としてあらかじめ決められた第1の分散値と、黒画素の輝度値の分散としてあらかじめ決められた、第1の分散値より大きい第2の分散値とを用いるとともに、補正対象の黒ブロックの近傍に位置する1つ以上の白ブロック内の各画素の平均輝度値を、この黒ブロック内の白画素の平均輝度値として設定する。これにより、白画素と黒画素のそれぞれの統計的性質の違いと、近傍の白ブロック内の輝度値に基づく正確な明るさ減少度合いとが、確率の計算に反映されるようになる。従って、黒ブロック内の各画素の輝度値を、輝度ムラが抑制されるように精度よく補正できるようになる。
【0025】
なお、輝度補正部13によって輝度値が補正された暗号化画像21は、例えば、復号鍵を用いてブロックが並べ替えられることで復号される。この場合には、復号後の画像において、輝度ムラに起因するノイズの発生が抑制され、復号後の画像の画質が向上する。
【0026】
次に、上記の画像処理装置10の処理機能を備えた装置の例として、撮像装置を挙げる。以下の第2の実施の形態では、撮像装置の例として、撮像部が搭載された携帯電話機について説明する。
【0027】
〔第2の実施の形態〕
図2は、暗号化画像の印刷および読み取りを行うシステムの構成例を示す図である。
図2に示す画像暗号化装置100は、印刷物200に印刷する画像のデータを生成する。印刷物200は、例えば、紙媒体である。画像暗号化装置100にはプリンタ110が接続されており、プリンタ110は、画像暗号化装置100から受信した画像データに基づいて、印刷物200に対して画像を印刷する。
【0028】
画像暗号化装置100は、印刷物200に印刷する画像の少なくとも一部の領域を、暗号化した状態に変化させることができる。以下、印刷物200に印刷された画像のうち、暗号化された状態の画像を、暗号化画像210と呼ぶ。
【0029】
印刷物200に印刷された暗号化画像210は、読み取り装置によって読み取られ、デジタル画像に変換される。本実施の形態では、読み取り装置の例として、撮像機能付きの携帯電話機300が用いられる。なお、読み取り装置としては、例えば、携帯電話機に限らない各種の撮像装置や、スキャナなどが用いられてもよい。
【0030】
携帯電話機300は、暗号化画像210を撮像してデジタル画像を生成し、デジタル画像内の暗号化画像210の領域を復号して、原画像を復元する。復元された原画像は、例えば、携帯電話機300のモニタに表示される。
【0031】
以下の説明では、まず、暗号化画像210の生成手順とその復号手順について説明した後、復号された画像の画質劣化という問題点について説明する。さらに、携帯電話機300において実行される、復号された画像の画質劣化を抑制する処理について説明する。
【0032】
まず、図3は、画像処理装置における暗号化画像の生成手順を説明する図である。
画像暗号化装置100は、まず、入力画像220内に暗号化の対象とする領域(暗号化対象領域221)を指定する(ステップS11)。ここで、入力画像220は、各画素が輝度データのみを有する白黒画像である。ただし、入力画像220の各画素が採りうる値は、最低値に近い値と最高値に近い値の2値であることが好ましい。なぜなら、暗号化対象領域221に含まれる文字、図形、絵などの画像は、その背景に対するコントラストが大きい方が、復号化されたときに人間が識別しやすいからである。なお、暗号化対象領域221は、画像暗号化装置100を操作するオペレータの入力操作に応じて設定されてもよい。
【0033】
次に、画像暗号化装置100は、暗号化対象領域221を、それぞれ同じ数の画素からなるブロックに分割する(ステップS12)。ブロックは、例えば、8画素×8画素の矩形領域とされる。
【0034】
次に、画像暗号化装置100は、暗号鍵に基づいて決定される規則に従って、暗号化対象領域221内のブロックを並べ替えることで、暗号化対象領域221の画像を暗号化画像210に変換する(ステップS13)。例えば、暗号化対象領域221に文字が含まれていた場合には、ブロックが並べ替えられることで、暗号化対象領域221内の文字を人間が読み取ることができなくなる。なお、暗号鍵を用いたブロックの並べ替えの方法としては種々考えられるが、例えば、暗号鍵に基づいて決定される位置のブロックを、暗号鍵に基づいて決定される別の位置のブロックと入れ替える方法を適用できる。
【0035】
また、画像暗号化装置100は、暗号化対象領域221内のブロックを並べ替えた後に、復号の際に暗号化対象領域221あるいはブロックの位置の目印になる情報を入力画像220に付加してもよい。本実施の形態では、例として、画像暗号化装置100は、暗号化対象領域221の四隅に領域識別マーカ222を付加する。領域識別マーカ222は、復号化時に暗号化対象領域221を特定する際に使用される情報である。なお、領域識別マーカ222が付加される位置やその形状は、復号側装置が暗号化対象領域221を認識できるようなものであれば、特に限定されるものではない。
【0036】
さらに、画像暗号化装置100は、並べ替え後の各ブロックの所定位置に、ブロック識別マーカ223を付加する。ブロック識別マーカ223は、復号化時に各ブロックの位置を特定する際に使用される情報である。図3の例では、ブロック識別マーカ223は、各ブロック224の左上の複数画素を、輝度値0に変換することで付加される。また、ブロック識別マーカ223は、必ずしもすべてのブロックに対して付加されなくてもよい。例えば、ブロック識別マーカ223は、少なくとも、黒画素を1つも含まないブロックに対して付加されればよい。なお、ブロック識別マーカ223が付加される位置やその形状は、復号側装置が認識できるようなものであれば、特に限定されるものではない。
【0037】
画像暗号化装置100は、入力画像220に対してその内部の暗号化対象領域221を暗号化して得られた画像220aのデータを、プリンタ110に送信し、画像220aを印刷物200に印刷させる(ステップS14)。これにより、印刷物200に暗号化画像210が印刷される。
【0038】
図4は、携帯電話機における暗号化画像の復号手順を説明する図である。
携帯電話機300の撮像部は、印刷物200に印刷された画像を撮像し、撮像画像230を得る(ステップS21)。この撮像画像230には、暗号化画像210が含まれる。
【0039】
携帯電話機300は、撮像画像230に対して画像処理を行い、暗号化画像210の四隅に付加された領域識別マーカ222を検出する(ステップS22)。携帯電話機300は、領域識別マーカ222の位置に基づいて、暗号化画像210の領域(前述の暗号化対象領域221)を特定する。このとき、携帯電話機300は、特定した暗号化対象領域221の歪みを補正する処理を行ってもよい。
【0040】
さらに、携帯電話機300は、特定した暗号化対象領域221の内部から、ブロック識別マーカ223を検出し、ブロック識別マーカ223の位置に基づいて、暗号化対象領域221をブロックに分割する(ステップS23)。なお、ブロック識別マーカ223は、暗号化対象領域221の歪み補正処理に利用されてもよい。
【0041】
携帯電話機300は、復号鍵に基づいて決定される規則に従ってブロックを並べ替えることで、暗号化対象領域221の画像を復号し、原画像に戻す(ステップS24)。携帯電話機300は、撮像画像230に対してその内部の暗号化対象領域221を復号して得られた復号画像231を、例えば、自装置のモニタに表示させる。また、携帯電話機300は、復号画像231のデータを、記録媒体に記録したり、あるいは、他の装置に送信してもよい。
【0042】
次に、復号後の画像に生じる問題点について説明する。図5は、復号後の画像における画質劣化について説明する図である。
以下の説明では、例として、暗号化対象領域内の原画像には、輝度が最高値である白色の背景上に、輝度が最低値である黒色の文字が描かれているものとする。このような原画像が暗号化されて印刷物に印刷された状態でも、印刷物の表面の色が白ければ、印刷された暗号化画像も白または黒の画素から構成されることに変わりはない。
【0043】
ところが、印刷物に印刷された画像を撮像装置によって撮像する際には、撮像装置と印刷物との角度や照明の当たり具合などの環境条件によっては、撮像によって得られた撮像画像230上に輝度ムラが発生する場合がある。特に、カメラによって印刷物が撮像される場合には、通常、カメラと印刷物との間が離間していることから、環境条件が一定になりにくく、輝度ムラが発生しやすいと言える。
【0044】
環境条件によって輝度ムラが生じた場合には、通常、撮像画像上の一部に比較的明るい領域が集中し、それとは別の領域に比較的暗い領域が集中する。図5の左側に示す撮像画像230の例では、撮像画像230の右下の領域が明るく、左上の領域が暗い。ここで、撮像画像230の暗号化対象領域221に含まれる画素のうち、暗号化される前の原画像では背景であった画素(以下、背景画素と呼ぶ)の輝度値は、本来は最高値であるはずである。しかしながら、輝度ムラが生じた場合、一部の背景画素の輝度値は低下する。特に、暗号化対象領域221の最も明るい領域(図5の左図では右下の領域)に配置された背景画素の輝度値はほぼ最高値となるが、最も暗い領域(図5の左図では左上の領域)に配置された背景画素の輝度値は、最高値から大きく低下した値となる。
【0045】
このような状態から、撮像画像230の暗号化対象領域221が復号されると、暗号化対象領域221内のブロックが復号鍵に応じて入れ替えられる。このとき、図5の右側に示す復号画像231のように、輝度値にそれぞれ差が生じた背景画素は、暗号化対象領域221の全体に拡散する。このため、暗号化対象領域221が復号された復号画像231では、文字領域を除く背景領域において、輝度値の異なる画素が散在する状態となり、復号画像231の画質が低下してしまう。特に、背景領域において、輝度値が低下した領域の中に極端に明るい画素が点在する場合には、極端に明るい画素が目立つようになり、復号画像231を視認した視認者が画質劣化を感じやすくなる。
【0046】
そこで、本実施の形態の携帯電話機300は、暗号化対象領域221内のブロックを入れ替える前に、画質補正処理を行う。画質補正処理により、撮像画像の輝度ムラを抑制し、復号化後の画像においてノイズが目立たなくなるようにする。また、画質補正の際には、各ブロックにおける輝度値の分散に基づいて、暗号化対象領域221内の画像から黒画素を含まない白ブロックを抽出し、白ブロック以外のブロックである黒ブロックの輝度値を、黒ブロックの周囲の白ブロックの輝度値を基に補正する。
【0047】
図6は、携帯電話機のハードウェア構成例を示す図である。
携帯電話機300は、制御部301、RAM(Random Access Memory)302、フラッシュメモリ303、メモリインタフェース(I/F)304、無線通信インタフェース(I/F)305、音声処理部306、マイクロフォン306a、スピーカ306b、表示処理部307、モニタ307a、入力部308およびカメラモジュール309を備えている。
【0048】
制御部301は、携帯電話機300内の各ブロックを統括的に制御する。この制御部301は、例えば、CPU(Central Processing Unit)を備え、フラッシュメモリ303などに記憶されたプログラムをCPUが実行することで各種の処理を実行する。制御部301は、例えば、無線通信インタフェース305を通じた通話処理や、カメラモジュール309から得られた撮像画像を利用した暗号化画像の復号処理、復号対象とする画像の画質補正処理などを実行する。なお、制御部301では、このような処理機能が複数のハードウェアとして実装されていてもよい。
【0049】
RAM302には、制御部301に実行させるプログラムの少なくとも一部が一時的に格納される。また、RAM302には、制御部301による処理に必要な各種データが格納される。
【0050】
フラッシュメモリ303には、制御部301が実行するプログラムや、制御部301の処理に必要なデータが記憶される。なお、このフラッシュメモリ303と同様の機能を果たす記憶媒体として、他の種類の不揮発性記憶媒体が用いられてもよい。
【0051】
メモリインタフェース304には、可搬型メモリ304aが挿抜可能に接続される。可搬型メモリ304aは、例えば、フラッシュメモリである。メモリインタフェース304は、可搬型メモリ304aと制御部301との間でデータを送受信する。
【0052】
無線通信インタフェース305は、図示しない無線ネットワークに対して無線接続するインタフェース回路である。この無線通信インタフェース305には、例えば、RF(Radio Frequency)回路や、送受信信号の変復調回路などが設けられている。
【0053】
音声処理部306は、マイクロフォン306aからの音声信号をデジタル信号に変換し、所定のフォーマットにエンコードして制御部301に出力する。また、制御部301からの音声信号をデコードしてアナログ信号に変換し、スピーカ306bに出力して再生させる。
【0054】
表示処理部307は、制御部301から出力された表示情報を基に映像信号を生成し、モニタ307aに出力して表示させる。モニタ307aは、例えば、LCD(Liquid Crystal Display)である。
【0055】
入力部308は、入力キーなどを具備して、ユーザの操作入力に応じた制御信号を制御部301に出力する。
カメラモジュール309は、カメラとしての機能を実現するハードウェアであり、制御部301の制御の下で動作する。カメラモジュール309は、印刷物200などの被写体からの光を受け付けるレンズなどの光学機構、レンズを通じて入射された光を受光する撮像素子、および、撮像素子から出力されたアナログ画像信号をデジタル化するデジタル化回路を備える。さらに、カメラモジュール309は、デジタル化回路から出力されたデジタル画像信号に基づくAF(Auto Focus)、AE(Auto Exposure)制御処理、デジタル画像信号に対する圧縮符号化処理や各種のフォーマット変換処理などを実行する処理回路を備える。
【0056】
図7は、携帯電話機が備える処理機能を示すブロック図である。
図7に示すように、携帯電話機300は、撮像制御部321、ブロック分割部322、画質補正部323、画像復号部324および画像出力制御部325を備えている。また、画質補正部323は、ブロック分類部331、劣化パラメータ算出部332およびラベリング部333を備えている。また、携帯電話機300のRAM302には、撮像画像データ240、補正画像データ250およびブロック情報260が一時的に記憶される。
【0057】
図7に示した各処理機能の処理は、例えば、制御部301が所定のアプリケーションプログラムを実行することで実現される。例えば、入力部308に対するユーザの入力操作により携帯電話機300が「画像復号モード」に設定されると、画像復号アプリケーションプログラムが制御部301によって実行され、これによって図7に示す各処理機能が起動する。なお、図7に示す処理機能が実行する処理の少なくとも一部は、例えば、専用の処理回路によって実現されてもよい。
【0058】
撮像制御部321は、入力部308に対するユーザによる操作入力に応じて、カメラモジュール309に撮像動作を実行させ、カメラモジュール309から撮像画像データ240を取得してRAM302に格納する。撮像制御部321は、例えば、カメラモジュール309に1枚の静止画像を撮像させてもよいが、本実施の形態では、カメラモジュール309に動画像を撮像させ、得られた複数枚のフレームからブレの少ないフレームを抽出する。
【0059】
撮像制御部321は、例えば、カメラモジュール309に動画像を撮像させ、順次得られるフレームのデータからコントラストを算出する。そして、撮像制御部321は、コントラストの値があらかじめ決められた一定値以上であるときに、対応するフレームのデータを撮像画像データ240としてRAM302に格納する。あるいは、撮像制御部321は、カメラモジュール309に一定時間だけ動画像を撮像させ、得られた複数枚のフレームのデータのうち、コントラストが最も高いフレームのデータを、撮像画像データ240としてRAM302に格納してもよい。
【0060】
ここで、RAM302に格納された撮像画像データ240に基づいて生成される画像を、“撮像画像”と呼ぶ。ここで言う撮像画像は、図4,図5に示した撮像画像230に対応する。
【0061】
ブロック分割部322は、得られた撮像画像をブロックに分割する。本実施の形態では、ブロック分割部322は、図4のステップS22,S23で説明したように、撮像画像に付与された領域識別マーカ222およびブロック識別マーカ223を検出し、検出した各マーカに基づいてブロック分割を行う。この処理によれば、ブロック分割部322は、撮像画像から、暗号化の際に位置の入れ替えが行われたブロックを認識する。
【0062】
また、RAM302には、分割された各ブロックについての情報を含むブロック情報260が格納される。ブロック情報260には、例えば、ブロックの座標範囲を示す座標情報261、ブロックが後述する白ブロックか黒ブロックかを識別するブロック種別262、ブロックの明るさが撮像時にどれだけ劣化したかを示す劣化パラメータ263などの情報が、ブロックごとに格納される。なお、後述するように、劣化パラメータ263は、ブロック種別262が白ブロックを表す場合にのみ格納されてもよい。
【0063】
ブロック分割部322は、分割した各ブロックについての座標情報261をブロック情報260に登録する。座標情報261は、例えば、対応するブロック内の画素の輝度値を撮像画像データ240および補正画像データ250から読み出す際に、それぞれ画質補正部323および画像復号部324によって参照される。また、座標情報261は、例えば、対応するブロック内の画素の輝度値を補正画像データ250に書き込む際に、画質補正部323および画像復号部324によって参照される。
【0064】
また、ブロック分割部322は、撮像画像をブロックに分割した後、各ブロックの左上に付与されたブロック識別マーカ223を消去する。ブロック分割部322は、例えば、撮像画像上の画素のうち、ブロック識別マーカ223の周囲に位置する画素の輝度値を基に補間演算を行い、ブロック識別マーカ223の各画素の輝度値を、補間演算により算出された輝度値で置換する。このような輝度値の置換によって、撮像画像データ240が更新される。
【0065】
なお、ブロック識別マーカ223を消去する処理は、例えば、画像復号部324に入力される補正画像データ250に対して行われてもよい。この場合、画質補正部323は、各ブロックの画素のうちブロック識別マーカ223に含まれる画素の輝度値を、処理から除外する。
【0066】
画質補正部323は、撮像時の環境条件によって撮像画像に生じた輝度ムラを抑制する画質補正処理を行う。画質補正部323は、最終的に、輝度ムラが抑制されるように輝度値が補正された補正画像データ250を生成する。なお、以下の説明では、画質補正部323によって輝度値が補正された、補正画像データ250に基づく画像を、“補正画像”と呼ぶ。
【0067】
本実施の形態では、画質補正部323内の少なくともラベリング部333での処理に先立って、補正画像データ250の記憶領域がRAM302にあらかじめ用意される。補正画像データ250の記憶領域には、撮像画像の各画素に対応する記憶領域が設けられている。画質補正部323は、補正画像データ250の記憶領域に対して、各画素についての補正後の輝度値を書き込む。補正画像データ250の記憶領域に対して各画素の輝度値を書き込む処理を、“ラベリング”と呼ぶ。
【0068】
ここで、図8は、ラベリングについて説明する図である。
RAM302に記憶された撮像画像データ240は、撮像画像の各画素の輝度値を含む。本実施の形態では、撮像画像の各画素の輝度値は、0〜255の値をとる。一方、RAM302に生成された補正画像データ250は、撮像画像の各画素に対応する記憶領域を有する。画質補正部323は、補正画像データ250内の各画素の記憶領域に対して、補正後の輝度値として0〜255のいずれかの数値(ラベル)を書き込む。このようにラベルを書き込む処理を、ラベリングと呼ぶ。画質補正部323は、補正画像データ250内の全画素の記憶領域に対して輝度値を書き込むことで、画質補正処理を終了する。
【0069】
また、画質補正部323は、補正画像データ250内の各画素に書き込む数値の演算の際に、撮像画像データ240内の輝度値を参照する。ここで、撮像画像データ240と補正画像データ250とがそれぞれ個別に領域に記憶されることで、画質補正部323は、撮像画像データ240に含まれる補正前の輝度値を参照しながら、補正画像データ250に対して補正後の輝度値を書き込んでいくことが可能になる。
【0070】
以下、図7に戻って説明する。画質補正部323において、ブロック分類部331は、ブロック分割部322によって分割された各ブロックが白ブロック、黒ブロックのどちらであるかを判定し、判定結果をブロック種別262としてブロック情報260に登録する。白ブロックとは、ブロック内に、原画像に記述された文字の領域に対応する黒の画素を全く含まないブロックであり、黒ブロックとは、白ブロック以外のブロックである。ブロック分類部331は、後述するように、ブロック内の各画素の輝度値の分散を基に、ブロックが白ブロックか黒ブロックかを判別する。
【0071】
劣化パラメータ算出部332は、撮像画像の各ブロックについての劣化パラメータを算出する。劣化パラメータとは、各ブロックについて、撮像時に明るさがどれだけ減少したかを表すパラメータであり、補正後の輝度値の算出時に利用されるものである。後述するように、黒ブロックの劣化パラメータは、その周囲に存在する白ブロックの輝度値に基づいて算出される。このような処理により、黒ブロック内の画素の輝度値は、周囲の白ブロックの明るさに応じて補正されるようになる。なお、劣化パラメータ算出部332は、白ブロックの劣化パラメータを、ブロック情報260に劣化パラメータ263として登録する。
【0072】
ラベリング部333は、劣化パラメータ算出部332によって算出された劣化パラメータに基づいて、補正画像の各画素の輝度値を算出し、算出した輝度値を補正画像データ250の記憶領域にラベリングする。ラベリング部333は、例えば、劣化パラメータを基に、黒ブロック内の各画素が、原画像において文字領域に含まれない白画素である確率と、文字領域に含まれる黒画素である確率とを計算する。そして、ラベリング部333は、各確率の計算結果を基に、黒ブロック内の各画素についての補正後の輝度値を算出する。
【0073】
画像復号部324は、図4のステップS24で説明したように、補正画像のブロックを復号鍵に基づいて並べ替えることで、補正画像に含まれる暗号化画像210を復号し、原画像を復元する。
【0074】
画像出力制御部325は、画像復号部324によって原画像が復元された画像のデータを表示処理部307に伝送し、原画像が復元された画像をモニタ307aに表示させる。なお、画像出力制御部325は、例えば、原画像が復元された画像のデータを、フラッシュメモリ303または可搬型メモリ304aに記録してもよい。あるいは、画像出力制御部325は、原画像が復元された画像のデータを、無線通信インタフェース305を通じてネットワーク上の他の装置に送信してもよい。
【0075】
次に、画質補正部323によって実行される画質補正処理について、詳しく説明する。まず、ブロック分類部331におけるブロック分類処理について説明する。
<ブロック分類処理>
図9は、暗号化画像の統計的性質を示す図である。
【0076】
図9に示すグラフ401,402,402a,402bは、それぞれ暗号化画像210の輝度値のヒストグラムの例を示す。グラフ401は、画像暗号化装置100において暗号化処理が行われた直後における、暗号化画像210の輝度値のヒストグラムである。グラフ401に示すように、画像暗号化装置100によって生成される暗号化画像210は、文字領域に含まれる輝度値“0”の黒画素と、背景領域に含まれる輝度値“255”の白画素とからなる。
【0077】
次に、グラフ402は、携帯電話機300によって撮像された撮像画像上の暗号化画像210の輝度値のヒストグラムである。ただし、ここでは、撮像時において暗号化画像210の全体に一様な明るさの照明が照射されているものと仮定する。
【0078】
グラフ402に示すように、撮像画像上の暗号化画像210では、白画素の輝度値の分散はあまり変化しないものの、黒画素の輝度値の分散は大きくなる傾向にある。例えば、静止していない状態やフォーカスが合っていない状態で撮像が行われた場合、撮像画像にはボケが生じる。ボケが生じた場合でも、白画素は白いままであるので、白画素の輝度値の分散は、グラフ401の場合とほとんど変わらず、小さい。
【0079】
これに対して、ボケが生じた場合、黒画素の領域、すなわち暗号化画像210の文字領域は、にじんだ状態となる。特に、文字領域と背景領域とのエッジでは、輝度値が大きく低下する黒画素もある。さらに、撮像素子の解像度が低い場合にも、文字領域はにじみやすくなる。このようなにじみが発生することで、黒画素の輝度値の分散は、白画素の輝度値の分散より大きくなる。
【0080】
次に、暗号化画像210が明るく撮像された場合(例えば露出オーバーの場合)と暗く撮像された場合(例えば露出アンダーの場合)とを比較する。ただし、グラフ402の場合と同様に、撮像時において暗号化画像210の全体に一様な明るさの照明が照射されているものと仮定する。
【0081】
暗号化画像210が明るく撮像された場合には、白画素については、いわゆる白飛びの状態になる。このため、グラフ402aに示すように、ほぼすべての白画素の輝度値は255となり、白画素の輝度値の分散はグラフ401,402の場合と同様に小さい。一方、黒画素の輝度値は、グラフ402の場合と比較して平均的に高くなるものの、黒画素の輝度値の分散は、グラフ402の場合と同様に白画素の輝度値の分散より大きくなる。
【0082】
また、暗号化画像210が暗く撮像された場合には、グラフ402bに示すように、白画素の輝度値は低くなるが、それぞれの白画素の輝度値は一様に低下するため、白画素の輝度値の分散は大きくなりにくい。一方、黒画素の輝度値は、グラフ402の場合と比較して平均的に低くなる。しかしながら、黒画素の輝度値の分散は、白画素の輝度値の分散より大きくなる。
【0083】
次に、上記のグラフ401,402,402a,402bを参考にして、暗号化画像210内の各ブロックの統計的性質について考える。文字領域の黒画素を含まない白ブロックにおける各画素の輝度値の統計的性質は、グラフ402,402a,402bに示した、白画素の輝度値の統計的性質と同じであると考えることができる。
【0084】
一方、黒ブロックには、黒画素のみを含むブロックと、黒画素と白画素とが混在するブロックの2種類がある。黒画素のみを含む黒ブロックにおける各画素の輝度値の統計的性質は、グラフ402,402a,402bに示した、黒画素の輝度値の統計的性質と同じであると考えることができる。従って、黒ブロックにおける輝度値の分散は、白ブロックにおける輝度値の分散より大きい。また、黒画素と白画素とが混在する黒ブロックでは、白画素のみを含む白ブロックの場合と比較して輝度値の分散が大きくなることは明らかである。
【0085】
このように、白ブロックにおける輝度値の分散より黒ブロックにおける輝度値の分散の方が大きくなるという性質は、撮像時の環境条件によって暗号化画像210に輝度ムラが生じている場合でも同様に現れる。なぜなら、輝度ムラは、白画素の明るさに対しても黒画素の明るさに対しても同じように影響するので、輝度ムラが発生した場合には、白画素の輝度値の分散も、黒画素の輝度値の分散も、同じように大きくなるからである。
【0086】
そこで、ブロック分類部331は、白ブロックおよび黒ブロックのそれぞれにおける輝度値の分散の違いに基づいて、ブロック分割部322によって分割されたブロックが白ブロックか黒ブロックかを判定する。以下、ブロック分類部331によるブロック分類処理の例を2種類挙げる。
【0087】
[ブロック分類処理の第1の処理例]
ブロック分類処理の第1の処理例では、ブロック分類部331は、分割されたブロックごとに輝度値の分散σb2を算出し、算出された分散σb2を、あらかじめ決められたしきい値γと比較する。ブロック分類部331は、着目ブロックにおける輝度値の分散σb2がしきい値γより大きい場合、着目ブロックは黒ブロックであると判定する。一方、ブロック分類部331は、着目ブロックにおける輝度値の分散σb2がしきい値γ以下である場合、着目ブロックは白ブロックであると判定する。このような処理により、白ブロック、黒ブロックのそれぞれについての統計的性質の違いに基づいて、着目ブロックが白ブロックと黒ブロックのどちらであるかを高精度に判定できる。
【0088】
[ブロック分類処理の第2の処理例]
ブロック分類処理の第2の処理例では、ブロック分類部331は、前述した輝度値の分散の違いを利用して、着目ブロックが白ブロックである確率を算出し、算出された確率の値に応じて、着目ブロックが白ブロックであるか黒ブロックであるかを判定する。ブロック分類部331は、例えば、白ブロックおよび黒ブロックのそれぞれに含まれる各画素の輝度値が正規分布に従って分布すると定義した統計モデルを用いて、着目ブロックが白ブロックである確率、黒ブロックである確率をそれぞれ求める。この統計モデルにおいて、黒ブロックにおける輝度値の分散を白ブロックにおける輝度値の分散より大きく設定することで、着目ブロックが白ブロック、黒ブロックのどちらかであるかの判定精度を高める。
【0089】
まず、着目ブロックbが白ブロック(k=w_block)または黒ブロック(k=b_block)から生起される確率(p|k)は、例えば、次の式(1)のように定義される。式(1)は、白ブロックおよび黒ブロックのそれぞれに含まれる各画素の輝度値が正規分布に従って分布すると定義した統計モデルによって、確率(p|k)を表したものである。
【0090】
【数1】
【0091】
式(1)において、xiは、ブロックbに含まれる画素のうち座標iの画素の輝度値であり、μbは、ブロックbに含まれる各画素の輝度値の平均値である。また、σ12(k)は、白ブロック内または黒ブロック内の輝度値の分散であり、事前に設定される値である。黒ブロックについての確率(p|k=b_block)を算出する際に設定される分散σ12(k=b_block)は、白ブロックについての確率(p|k=w_block)を算出する際に設定される分散σ12(k=w_block)より、大きな値とされる。
【0092】
また、白ブロックの発生頻度と黒ブロックの発生頻度はそれぞれ1/2であると仮定して、白ブロックまたは黒ブロックの発生確率p(k)を、次の式(2)のように定義する。
p(k)=1/2 ・・・(2)
式(1)と式(2)とを基にして、着目ブロックbが白ブロックまたは黒ブロックである確率p(k|b)は、ベイズ(Bayes)の定理を用いて次の式(3)によって求められる。なお、式(3)のZは、式(4)のように定義される。
【0093】
【数2】
【0094】
ブロック分類部331は、各ブロックについて、式(3)に従って白ブロックである確率p(k=w_block|b)を計算する。式(3)の計算の際、ブロック分類部331は、前述したように、分散σ12(k=b_block)として、分散σ12(k=w_block)より大きな値を設定する。
【0095】
ブロック分類部331は、算出した確率p(k=w_block|b)が所定のしきい値(例えば“0.7”)を超えた場合に、着目ブロックを白ブロックと判定する。一方、ブロック分類部331は、算出された確率p(k=w_block|b)がしきい値以下である場合に、着目ブロックを黒ブロックと判定する。
【0096】
なお、ブロック分類部331は、例えば、式(3)に従って、各ブロックが黒ブロックである確率p(k=b_block|b)を計算してもよい。この場合、ブロック分類部331は、算出された確率p(k=b_block|b)が所定のしきい値(例えば“0.3”)以下の場合に、着目ブロックを白ブロックと判定する。一方、ブロック分類部331は、算出された確率p(k=b_block|b)がしきい値を超えた場合に、着目ブロックを黒ブロックと判定する。
【0097】
以上の処理により、白ブロック、黒ブロックのそれぞれについての統計的性質の違いに基づいて、着目画素が白ブロックと黒ブロックのどちらであるかを高精度に判定できる。
別の例として、ブロック分類部331は、各ブロックについて式(3)に従って黒ブロックである確率p(k=b_block|b)を計算し、算出された値をしきい値と比較することで、着目ブロックが白ブロックか黒ブロックかを判定してもよい。
【0098】
ブロック分類部331は、着目ブロックが白ブロックか黒ブロックかを示す判定結果を、ブロック種別262としてRAM302に記録する。
<劣化パラメータ算出処理>
ブロックの分類処理が終了した後、ラベリング部333は、劣化パラメータ算出部332によって算出された劣化パラメータに基づいて、補正画像の各画素の輝度値を算出し、算出した輝度値を補正画像データ250の記憶領域にラベリングする。劣化パラメータとは、各ブロックについて、撮像時に明るさがどれだけ減少したかを表すパラメータである。劣化パラメータ算出部332は、以下に示す手順に従って劣化パラメータを算出する。
【0099】
まず、白ブロックの劣化パラメータμb’(k=w_block)は、次の式(5)によって求められる。劣化パラメータ算出部332は、式(5)に従って算出した劣化パラメータμb’(k=w_block)を、ブロック情報260における対応するブロックのエントリに、劣化パラメータ263として登録する。
μb’(k=w_block)=μb ・・・(5)
ここで、図10は、撮像された暗号化画像におけるブロックの例を示す図である。この図10を用いて、黒ブロックの劣化パラメータの算出方法について説明する。なお、図10では、ブロックの位置がわかりやすくなるように、ブロック識別マーカ223が残った状態の暗号化画像210を示している。
【0100】
図10において、実線で囲んだブロックが黒ブロックであり、点線で囲んだブロックが白ブロックである。前述のように、白ブロックは、白画素のみを含むブロックである。このため、撮像された暗号化画像210における白ブロックの輝度平均値(すなわち、白ブロックの劣化パラメータ)は、黒画素と白画素とが混在し得る黒ブロックの輝度平均値と比較して、撮像時に明るさがどれだけ減少したかをより正確に表す指標となる。
【0101】
そこで、劣化パラメータ算出部332は、黒ブロックの近傍に存在する白ブロックの輝度値を用いて、黒ブロックの劣化パラメータμb’(k=b_block)を求める。具体的には、劣化パラメータ算出部332は、黒ブロックの近傍の1つ以上の白ブロックにおける平均輝度値を、黒ブロックの劣化パラメータμb’(k=b_block)とする。
【0102】
このような黒ブロックの劣化パラメータμb’(k=b_block)は、あらかじめ算出された白ブロックの劣化パラメータμb’(k=w_block)(すなわち、ブロック情報260に登録された劣化パラメータ263)を用いて、次の式(6)によって求めることもできる。
【0103】
【数3】
【0104】
なお、式(6)において、nは、劣化パラメータの算出時に利用する、黒ブロックの近傍に存在する白ブロックを示し、mは、劣化パラメータの算出時に利用する白ブロックの数を示す。
【0105】
劣化パラメータ算出部332は、例えば、ブロック情報260を参照して、黒ブロックを1つずつ選択するとともに、選択した黒ブロックの近傍に存在する白ブロックを選択する。劣化パラメータ算出部332は、選択した白ブロックの劣化パラメータμb’(k=w_block)をブロック情報260から読み込み、式(6)に従って黒ブロックの劣化パラメータμb’(k=b_block)を算出する。
【0106】
劣化パラメータ算出部332は、黒ブロックの劣化パラメータμb’(k=b_block)を算出する際には、黒ブロックにできるだけ近い位置に存在する白ブロックを選択することが望ましい。さらに、このとき、複数の白ブロックが選択されることが望ましい。例えば、劣化パラメータ算出部332は、黒ブロックの周囲に隣接する8個のブロックから、白ブロックを選択する。このとき、劣化パラメータ算出部332は、黒ブロックの上下左右に隣接する白ブロックを優先的に選択してもよい。図10の例では、処理対象の黒ブロック212aの右側に隣接するブロックは黒ブロックである。このため、劣化パラメータ算出部332は、黒ブロック212aの右側の隣接ブロックの代わりに、黒ブロック212aの右上および右下にそれぞれ隣接する白ブロック212b,212cを選択する。
【0107】
また、例えば、黒ブロックの劣化パラメータμb’(k=b_block)を算出する際に選択される白ブロックの最低数が、あらかじめ決められていてもよい。黒ブロックに隣接する8個のブロックから最低数の白ブロックが選択できない場合には、黒ブロックに隣接するブロックのさらに周囲から白ブロックが選択されてもよい。
【0108】
<ラベリング処理>
ラベリング部333は、劣化パラメータ算出部332によって算出された劣化パラメータに基づいて、補正画像の各画素の輝度値を算出し、算出した輝度値を補正画像データ250の記憶領域にラベリングする。ラベリング部333は、補正画像の画素のうち、白ブロックに含まれる画素については、すべて輝度値“255”を設定する。一方、ラベリング部333は、補正画像の画素のうち、黒ブロックに含まれる画素については、前述の劣化パラメータμb’(k=b_block)に応じて、補正後の輝度値を決定する。以下、ラベリング部333による、黒ブロックに含まれる画素についてのラベリング処理の例を2種類挙げる。
【0109】
[ラベリング処理の第1の処理例]
ラベリング処理の第1の処理例では、ラベリング部333は、黒ブロック内の各画素の白らしさおよび黒らしさをそれぞれ確率として計算する。より具体的には、ラベリング部333は、黒ブロック内の各画素が、白画素(すなわち、印刷前の暗号化画像において背景領域に含まれていた画素)である確率と、黒画素(すなわち、印刷前の暗号化画像において文字領域に含まれていた画素)である確率とをそれぞれ求める。ラベリング部333は、これらの各確率を、黒ブロック内の白画素の輝度値が正規分布に従うと定義した統計モデルと、黒ブロック内の黒画素の輝度値が正規分布に従うと定義した統計モデルとの少なくとも一方を用いて計算する。
【0110】
ラベリング部333は、劣化パラメータ算出部332によって算出された、黒ブロックの劣化パラメータμb’(k=b_block)の値に応じて、次の2通りの方法によって確率を求める。
【0111】
[1]劣化パラメータμb’(k=b_block)が“255”以上である場合
ラベリング部333は、確率計算の際に、近傍の白ブロックにおける平均輝度値(すなわち、劣化パラメータμb’(k=b_block))を基に、黒ブロック内の白画素、黒画素それぞれの平均輝度値を推定し、確率計算に用いる正規分布の統計モデルに対して設定する。ところが、劣化パラメータμb’(k=b_block)が“255”以上である場合には、黒ブロックの近傍に対して比較的強い光が照射され、いわゆる白飛びが発生している可能性がある。この場合、黒ブロックの近傍の白ブロック内の各画素の輝度値は飽和した状態であることがあり得るため、ラベリング部333は、黒ブロックの明るさが撮像前の元の画像よりどれだけ強いかを、劣化パラメータμb’(k=b_block)から正確に知ることはできない。従って、ラベリング部333は、劣化パラメータμb’(k=b_block)を基に黒ブロック内の黒画素の平均輝度値を推定することができない。ただし、黒ブロック内の白画素の平均輝度値は、“255”であると推定できる。
【0112】
そこで、劣化パラメータμb’(k=b_block)が255以上である場合、ラベリング部333は、着目画素が白画素である確率p(k=w_pixel|xi)を、白画素が正規分布に従うと定義した統計モデルを用いて算出する。確率p(k=w_pixel|xi)は、例えば下記の式(7)のように定義できる。この式(7)によれば、白画素の平均輝度値および分散は設定されるものの、黒画素の平均輝度値および分散が設定されずに(すなわち、黒画素が正規分布に従うと定義した統計モデルが使用されずに)、確率が計算される。さらに、ラベリング部333は、下記の式(8)に従い、着目画素が黒画素である確率p(k=b_pixel|xi)を、“1”から確率p(k=w_pixel|xi)を減算することによって算出する。
【0113】
【数4】
【0114】
式(7)において、α,βは、それぞれ経験的に得られた値であればよく、例えばα=0.1、β=1とされる。また、黒ブロックにおける白画素の輝度値の分散σ22(k=w_pixel)は、式(1)を用いて白ブロックについての確率(p|k=w_block)を算出する際に設定される分散σ12(k=w_block)と同じ値であってよい。
【0115】
ラベリング部333は、式(7)および式(8)の計算結果を基に、着目画素についての補正後の輝度値を決定して、補正画像データ250内の対応する記憶領域にラベリングする。ラベリング部333は、例えば、着目画素が白画素である確率よりも黒画素である確率の方が高い場合には、着目画素の輝度値を“0”とし、着目画素が黒画素である確率よりも白画素である確率の方が高い場合には、着目画素の輝度値を“255”とする。
【0116】
ここで、上記式(7)および式(8)を用いた確率の計算例を示す。下記の例では、黒ブロック内において互いに隣接する画素A1および画素A2について、それぞれ白画素か黒画素かを判定する。この例では、黒ブロック内の白画素の分散σ22(k=w_pixel)を“100”と設定する。
【0117】
まず、画素A1の輝度値が“250”であるものとすると、画素A1が白画素である確率および黒画素である確率は、それぞれ次の式(9)、式(10)のように求められる。
【0118】
【数5】
【0119】
ラベリング部333は、式(9)、式(10)の計算結果から、画素A1は白画素であると判定し、補正画像データ250内の画素A1に対応する記憶領域に対して、輝度値“255”をラベリングする。
【0120】
一方、画素A1に隣接する画素A2の輝度値が“30”であるものとすると、画素A2が白画素である確率および黒画素である確率は、それぞれ次の式(11)、式(12)のように求められる。
【0121】
【数6】
【0122】
ラベリング部333は、式(11)、式(12)の計算結果から、画素A2は黒画素であると判定し、補正画像データ250内の画素A2に対応する記憶領域に対して、輝度値“0”をラベリングする。
【0123】
[2]劣化パラメータμb’(k=b_block)が“255”未満である場合
劣化パラメータμb’(k=b_block)が“255”未満である場合には、撮像時に黒ブロック内の明るさが減少したと考えられる。この場合、劣化パラメータμb’(k=b_block)は、黒ブロック内の白画素の平均輝度値と一致すると推定できる。一方、黒ブロック内の黒画素の平均輝度値は、“0”であると推定できる。
【0124】
ラベリング部333は、上記のように推定した白画素、黒画素の各平均輝度値を、正規分布の統計モデルに設定することで、着目画素が白画素である確率p(k=w_pixel|xi)と、着目画素が黒画素である確率p(k=b_pixel|xi)とをそれぞれ算出する。着目画素が白画素または黒画素である確率p(k|xi)は、例えば、ベイズの定理を用いて式(13)のように定義される。なお、式(13)におけるZは、式(14)のように定義される。
【0125】
【数7】
【0126】
また、式(13)、式(14)における確率p(xi|k)は、次の式(15)によって求められる。式(15)は、着目画素が白画素(k=w_block)または黒画素(k=b_block)から生起される確率p(xi|k)を、白画素および黒画素の各輝度値が正規分布に従って分布すると定義した統計モデルによって表したものである。
【0127】
【数8】
【0128】
ラベリング部333は、式(15)の計算時において、黒ブロック内の白画素の平均輝度値μ(k=w_pixel)を、劣化パラメータμb’(k=b_block)の値とし、黒ブロック内の黒画素の平均輝度値μ(k=b_pixel)を“0”とする。これにより、近傍の白ブロックの明るさに応じて、確率p(k|xi)が算出されるようになる。
【0129】
また、ラベリング部333は、式(15)の計算時において、黒ブロック内の白画素の分散σ22(k=w_pixel)より、黒ブロック内の黒画素の分散σ22(k=b_pixel)の値を大きく設定する。これにより、確率p(k=w_pixel|xi)および確率p(k=b_pixel|xi)が、図9において説明した、白画素と黒画素との統計的性質の違いに応じて計算されるようになり、各確率の算出精度が向上する。
【0130】
白画素の分散σ22(k=w_pixel)は、例えば、式(1)を用いて白ブロックについての確率(p|k=w_block)を算出する際に設定される分散σ12(k=w_block)と同じ値であってよい。同様に、黒画素の分散σ22(k=b_pixel)は、例えば、式(1)を用いて黒ブロックについての確率(p|k=b_block)を算出する際に設定される分散σ12(k=b_block)と同じ値であってよい。
【0131】
なお、式(13)におけるp(k)は、例えば、式(2)と同様に“1/2”とされればよい。また、式(15)におけるβは、経験的に得られた値であればよく、例えば“1”とされる。
【0132】
ラベリング部333は、式(13)を用いた確率p(k=w_pixel|xi)および確率p(k=b_pixel|xi)の各計算結果から、着目画素についての補正後の輝度値を決定して、補正画像データ250内の対応する記憶領域にラベリングする。劣化パラメータμb’(k=b_block)が“255”以上である場合と同様に、ラベリング部333は、例えば、着目画素が白画素である確率よりも黒画素である確率の方が高い場合には、着目画素の輝度値を“0”とし、着目画素が黒画素である確率よりも白画素である確率の方が高い場合には、着目画素の輝度値を“255”とする。
【0133】
以上の式(13)〜式(15)を用いたラベリング処理によれば、黒ブロック内の各画素についての輝度補正値が、黒ブロックの近傍の白ブロックにおける平均輝度値に応じて計算されるとともに、白画素と黒画素のそれぞれの統計的性質の違いに応じて計算される。従って、黒ブロックに生じた輝度ムラの影響が抑制されるように、黒ブロックの各画素の輝度値が補正される。
【0134】
ここで、上記式(13)〜式(15)を用いた確率の計算例を示す。下記の例では、黒ブロック内に存在する画素Bについて白画素か黒画素かを判定する。この例では、黒ブロック内の白画素の分散σ22(k=w_pixel)を“25”と設定し、黒ブロック内の黒画素の分散σ22(k=b_pixel)を、白画素の分散σ22(k=w_pixel)より大きい“100”と設定する。また、黒ブロック内の白画素の平均輝度値μ(k=w_pixel)(すなわち、劣化パラメータμb’(k=b_block))が“200”であるものとする。
【0135】
画素Bの輝度値が“197”であるものとすると、画素Bが白画素である確率は、式(16)のように求められる。
【0136】
【数9】
【0137】
また、画素Bが黒画素である確率は、式(17)のように求められる。
【0138】
【数10】
【0139】
ここで、式(16)、式(17)におけるZは、次の式(18)のように求められる。
Z=exp(−3.58)+exp(−392.00)=0.0278 ・・・(18)
従って、画素Bが白画素である確率は“1”、画素Bが黒画素である確率は“0”と算出される。ラベリング部333は、式(16)〜式(18)の計算結果から、画素Bは白画素であると判定し、補正画像データ250内の画素Bに対応する記憶領域に対して、輝度値“255”をラベリングする。
【0140】
なお、以上説明したラベリング処理の第1の処理例において、ラベリング部333は、例えば、式(7)および式(8)の計算結果、または、式(13)の計算結果から、期待値を計算することで、黒ブロック内の着目画素のついての補正後の輝度値を決定してもよい。具体的には、ラベリング部333は、補正後の輝度値xi’を、次の式(19)に従って算出する。なお、式(19)は、劣化パラメータμb’(k=b_block)がどのような値であっても利用可能である。また、ラベリング部333は、式(19)を用いて補正後の輝度値を計算する場合には、式(8)または式(13)を用いた、着目画素が黒画素である確率p(k=b_pixel|xi)の計算を行わなくてもよい。
xi’=255×p(k=w_pixel|xi)+0×p(k=b_pixel|xi)
・・・(19)
式(19)を用いて輝度値が計算された場合、黒ブロック内の文字領域のエッジ付近の輝度値が、“0”と“255”との間の中間値を採り得るようになる。この場合、文字領域のエッジが滑らかにつながっているように見えるという効果が得られる。
【0141】
[ラベリング処理の第2の処理例]
ラベリング処理の第2の処理例では、ラベリング部333は、劣化パラメータμb’(k=b_block)が“255”未満である場合に、黒ブロック内の各画素の輝度値を、劣化パラメータμb’(k=b_block)を基に補正する。具体的には、ラベリング部333は、黒ブロック内の各画素の補正後の輝度値xi’を、次の式(20)に従って算出する。ただし、ラベリング部333は、式(20)の計算によって輝度値が255を超えた場合には、補正後の輝度値を“255”に制限する。
xi’=xi×255/μb’(k=b_block) ・・・(20)
式(20)によれば、黒ブロック内の各画素の輝度値は、撮像時に明るさが劣化した度合いに応じて、輝度値が本来の値に戻るように増加する。換言すると、各画素の輝度値は、撮像時における明るさの減少量を補うように補正される。明るさの劣化度合いは、黒ブロックの近傍の白ブロックにおける画素の平均輝度値を基に高精度に計算されることから、式(20)により、黒ブロック内の各画素の輝度値は、撮像前の本来の輝度値に精度よく近づくように補正される。これにより、黒ブロックに生じた輝度ムラの影響が抑制される。また、式(20)を用いて輝度値が計算された場合には、上記の式(19)を用いた場合と同様に、文字領域のエッジが滑らかにつながっているように見えるという効果が得られる。
【0142】
なお、ラベリング処理の第2の処理例においては、ラベリング部333は、劣化パラメータμb’(k=b_block)が“255”以上である場合には、前述のラベリング処理の第1の処理例と同様の手順で、ラベリングを行う。
【0143】
次に、上記の携帯電話機300における処理を、フローチャートを用いて説明する。まず、図11は、携帯電話機で実行される暗号化画像の表示処理の全体の処理手順を示すフローチャートである。
【0144】
[ステップS101]撮像制御部321は、カメラモジュール309に画像を撮像させ、カメラモジュール309から撮像画像データ240を取得して、RAM302に記憶する。
【0145】
撮像制御部321は、例えば、カメラモジュール309に動画像を撮像させ、フレームのデータを順次取得する。撮像制御部321は、フレームのデータを取得する度にそのデータからコントラストを算出し、コントラストの値があらかじめ決められた一定値以上であるときに、フレームのデータを撮像画像データ240としてRAM302に格納する。あるいは、撮像制御部321は、カメラモジュール309に一定時間だけ動画像を撮像させ、得られた複数枚のフレームのデータのうち、コントラストが最も高いフレームのデータを、撮像画像データ240としてRAM302に格納してもよい。
【0146】
[ステップS102]ブロック分割部322は、撮像画像のうち暗号化画像210の領域(暗号化対象領域221に対応)を、ブロックに分割する。ブロック分割処理については、図4のステップS22,S23において説明した通りである。ブロック分割部322は、分割した各ブロックについての座標情報261をブロック情報260に登録する。
【0147】
また、ブロック分割部322は、撮像画像をブロックに分割した後、各ブロックの左上に付与されたブロック識別マーカ223を補間演算によって消去し、撮像画像データ240を、ブロック識別マーカ223が消去されたデータによって更新する。さらに、ブロック分割部322は、撮像画像データ240から、暗号化画像210の領域に含まれない画素の輝度値を読み出し、RAM302上の補正画像データ250における対応する画素の記憶領域にラベリングする。なお、暗号化画像210の領域に含まれない画素のラベリング処理は、後述するステップS108の実行前であればどの時点で実行されてもよく、また、このラベリング処理は、ラベリング部333または画像復号部324によって実行されてもよい。
【0148】
[ステップS103]ブロック分類部331は、ブロック情報260を参照して、未処理のブロックを1つ選択する。
[ステップS104]ブロック分類部331は、選択したブロックが白ブロックか黒ブロックかを判定するブロック分類処理を実行する。ブロック分類処理の詳細については、後の図12、図13において説明する。
【0149】
[ステップS105]ブロック分類部331は、撮像画像における全ブロックについてブロック分類処理を行ったか否かを判定する。ブロック分類部331は、未処理のブロックがある場合にはステップS103を実行する。一方、ブロック分類部331は、全ブロックを処理済みである場合には、その旨をラベリング部333に通知する。これにより、ステップS106の処理が実行される。
【0150】
[ステップS106]ラベリング部333および劣化パラメータ算出部332による画質補正処理が実行される。画質補正処理により、撮像時に環境条件によって生じた、暗号化画像210における輝度ムラが抑制される。この画質補正処理の詳細については、後の図14において説明する。ステップS106の処理が終了したとき、補正画像データ250における全画素の記憶領域に輝度値がラベリングされた状態となる。
【0151】
[ステップS107]画像復号部324は、ブロック情報260の座標情報261を参照して、補正画像データ250から暗号化画像210の輝度値をブロックごとに読み出す。画像復号部324は、図4のステップS24で説明したように、暗号化画像210内のブロックを、復号鍵に基づいて決定される規則に従って並べ替える。これによって、暗号化画像210が復号されて、原画像が復元される。画像復号部324は、補正画像データ250における暗号化画像210の領域の輝度値を、復号された画像の輝度値に書き替える。
【0152】
[ステップS108]画像出力制御部325は、暗号化画像210の領域の輝度値が書き替えられた補正画像データ250を読み出して表示処理部307に供給する。これにより、原画像が復元された画像がモニタ307aに表示される。
【0153】
なお、以上の図11の処理では、ステップS102において分割されたブロックは、画質補正部323によって白ブロックまたは黒ブロックと判別する単位として使用されるとともに、画像復号部324によって並べ替えを行う単位としても使用される。しかしながら、画質補正部323によって白ブロックまたは黒ブロックと判別するブロック(第1のブロックと呼ぶ)と、画像復号部324によって並べ替えを行うブロック(第2のブロックと呼ぶ)とは、それぞれ別の方法で分割されたものであってもよい。
【0154】
例えば、第1のブロックの画素数は、第2のブロックの画素数より大きく設定されても、あるいは小さく設定されてもよい。また、例えば、第1のブロックは、第2のブロックのうち、互いに接する複数の第2のブロックであってもよい。
【0155】
撮像画像から第1のブロックを分割する方法と、補正画像から第2のブロックを分割する方法との間に、互いに関連性がない場合には、画像復号部324は、ステップS107において第2のブロックの並べ替えを行う前に、補正画像を第2のブロックに分割する処理を行う。この場合、ブロック分割部322によって撮像画像が第1のブロックに分割された後、撮像画像データ240は、ブロック識別マーカ223に対応するデータが残った状態のままとされる。そして、ブロック識別マーカ223は、画像復号部324によって、第2のブロックの分割が行われる前に撮像画像データ240から検出されて、歪み補正および第2のブロックの分割の各処理に用いられる。
【0156】
図12は、ブロック分類処理の第1の処理例を示すフローチャートである。この図12の処理は、図11のステップS104において実行されるものである。
[ステップS121]ブロック分類部331は、図11のステップS103で選択したブロック内の各画素の輝度値を撮像画像データ240から読み出し、輝度値の分散σb2を算出する。
【0157】
[ステップS122]ブロック分類部331は、ステップS121で算出した分散σb2を、あらかじめ決められたしきい値γと比較する。ブロック分類部331は、輝度値の分散σb2がしきい値γより大きい場合には、ステップS123の処理を実行し、輝度値の分散σb2がしきい値γ以下である場合には、ステップS124の処理を実行する。
【0158】
[ステップS123]ブロック分類部331は、ステップS103で選択したブロックは黒ブロックであると判定し、ブロック情報260の対応するブロックのエントリに、黒ブロックであることを示すブロック種別262を登録する。この後、図11のステップS105の処理に戻る。
【0159】
[ステップS124]ブロック分類部331は、ステップS103で選択したブロックは白ブロックであると判定し、ブロック情報260の対応するブロックのエントリに、白ブロックであることを示すブロック種別262を登録する。この後、図11のステップS105の処理に戻る。
【0160】
図13は、ブロック分類処理の第2の処理例を示すフローチャートである。この図13の処理は、図11のステップS104において実行されるものである。
[ステップS131]ブロック分類部331は、図11のステップS103で選択したブロック内の各画素の輝度値を撮像画像データ240から読み出し、式(3)に従って、選択したブロックが白ブロックである確率p(k=w_block|b)を計算する。式(3)の計算の際、ブロック分類部331は、黒ブロックの分散σ12(k=b_block)として、白ブロックの分散σ12(k=w_block)より大きな値を設定する。なお、これらの分散σ12(k=b_block)および分散σ12(k=w_block)としては、あらかじめ決められた値が用いられる。
【0161】
[ステップS132]ブロック分類部331は、ステップS131で算出した確率p(k=w_block|b)を所定のしきい値(例えば“0.7”)と比較する。ブロック分類部331は、確率p(k=w_block|b)がしきい値を超えている場合、ステップS133の処理を実行し、確率p(k=w_block|b)がしきい値以下である場合、ステップS134の処理を実行する。
【0162】
[ステップS133]ブロック分類部331は、ステップS103で選択したブロックは白ブロックであると判定し、ブロック情報260の対応するブロックのエントリに、白ブロックであることを示すブロック種別262を登録する。この後、図11のステップS105の処理に戻る。
【0163】
[ステップS134]ブロック分類部331は、ステップS103で選択したブロックは黒ブロックであると判定し、ブロック情報260の対応するブロックのエントリに、黒ブロックであることを示すブロック種別262を登録する。この後、図11のステップS105の処理に戻る。
【0164】
図14は、画質補正処理の手順を示すフローチャートである。この図14の処理は、図11のステップS106において実行されるものである。
[ステップS141]ラベリング部333は、ブロック情報260のブロック種別262を基に、未選択の白ブロックを1つ選択する。
【0165】
[ステップS142]ラベリング部333は、補正画像データ250内の各画素の記憶領域のうち、ステップS141で選択した白ブロック内の各画素の記憶領域に対して、輝度値255をラベリングする。
【0166】
[ステップS143]劣化パラメータ算出部332は、ステップS141で選択された白ブロック内の各画素の輝度値を撮像画像データ240から読み出し、式(5)に従って、白ブロックの劣化パラメータμb’(k=w_block)を算出する。劣化パラメータ算出部332は、算出した劣化パラメータμb’(k=w_block)を、ブロック情報260における対応するブロックのエントリに、劣化パラメータ263として登録する。
【0167】
[ステップS144]ラベリング部333は、撮像画像におけるすべての白ブロックについてステップS141〜S143の処理を行ったか否かを判定する。ラベリング部333は、未処理の白ブロックがある場合には、ステップS141の処理を実行する。一方、ラベリング部333は、全白ブロックを処理済みである場合には、ステップS145の処理を実行する。
【0168】
[ステップS145]ラベリング部333は、ブロック情報260のブロック種別262を基に、未選択の黒ブロックを1つ選択する。
[ステップS146]劣化パラメータ算出部332は、ブロック情報260の座標情報261およびブロック種別262を基に、ステップS144で選択された黒ブロックの近傍に存在する1つ以上の白ブロックを選択する。劣化パラメータ算出部332は、選択した1つ以上の白ブロックの劣化パラメータμb’(k=w_block)をブロック情報260から読み出し、式(6)に従って、黒ブロックの劣化パラメータμb’(k=b_block)を算出する。
【0169】
なお、劣化パラメータ算出部332は、選択した1つ以上の白ブロック内の各画素の輝度値を撮像画像データ240から読み出し、読み出した輝度値の平均値を計算することで、黒ブロックの劣化パラメータμb’(k=b_block)を算出してもよい。
【0170】
[ステップS147]ラベリング部333は、ステップS145で選択した黒ブロック内の画素を1つ選択する。
[ステップS148]ラベリング部333は、ステップS146で算出した劣化パラメータμb’(k=b_block)を基に、ステップS147で選択した画素についての補正後の輝度値を算出し、補正画像データ250における対応する画素の記憶領域にラベリングする。このステップS148の処理の詳細については、後の図15、図16において説明する。
【0171】
[ステップS149]ラベリング部333は、ステップS145で選択した黒ブロック内のすべての画素についてラベリング処理を行ったか否かを判定する。ラベリング部333は、未処理の画素がある場合には、ステップS147の処理を実行し、全画素を処理済みである場合には、ステップS150の処理を実行する。
【0172】
[ステップS150]ラベリング部333は、撮像画像におけるすべての黒ブロックについてステップS145〜S149の処理を行ったか否かを判定する。ラベリング部333は、未処理の黒ブロックがある場合には、ステップS145の処理を実行する。一方、ラベリング部333は、全黒ブロックを処理済みである場合には、その旨を画像復号部324に通知する。これにより、図11のステップS107の処理が実行される。
【0173】
図15は、ラベリング処理の第1の処理例を示すフローチャートである。この図15の処理は、図14のステップS148の処理に対応する。
[ステップS161]ラベリング部333は、図14のステップS146で算出した劣化パラメータμb’(k=b_block)が、“255”以上であるか否かを判定する。ラベリング部333は、劣化パラメータμb’(k=b_block)が“255”以上である場合には、ステップS162の処理を実行し、劣化パラメータμb’(k=b_block)が“255”より小さい場合には、ステップS163の処理を実行する。
【0174】
[ステップS162]ラベリング部333は、図14のステップS147で選択した画素の輝度値を撮像画像データ240から読み込む。ラベリング部333は、読み込んだ輝度値を基に、選択した画素が白画素である確率p(k=w_pixel|xi)および黒画素である確率p(k=b_pixel|xi)を、それぞれ式(7)、式(8)に従って計算する。この計算では、ラベリング部333は、ステップS145で選択した黒ブロックにおける黒画素の平均輝度値を“255”と設定する。
【0175】
[ステップS163]ラベリング部333は、図14のステップS147で選択した画素の輝度値を撮像画像データ240から読み込む。ラベリング部333は、読み込んだ輝度値を基に、選択した画素が白画素である確率p(k=w_pixel|xi)および黒画素である確率p(k=b_pixel|xi)を、式(13)〜式(15)を用いて計算する。
【0176】
この計算において、ラベリング部333は、ステップS145で選択した黒ブロックにおける白画素の平均輝度値を、ステップS146で算出した劣化パラメータμb’(k=b_block)の値とし、黒画素の平均輝度値を“0”と設定する。また、ラベリング部333は、黒ブロック内の黒画素の分散σ22(k=b_pixel)として、黒ブロック内の白画素の分散σ22(k=w_pixel)より大きな値を設定する。
【0177】
[ステップS164]ラベリング部333は、ステップS162またはステップS163において算出した確率を基に、式(19)に従って期待値を計算する。なお、実際には、ラベリング部333は、ステップS162およびステップS163のそれぞれにおいて、選択した画素が白画素である確率p(k=w_pixel|xi)のみを算出することで、式(19)に従って期待値を計算することが可能である。
【0178】
[ステップS165]ラベリング部333は、ステップS164で算出した期待値を、図14のステップS147で選択した画素の輝度値として、補正画像データ250の対応する画素の記憶領域にラベリングする。この後、ラベリング部333は、図14のステップS149の処理を実行する。
【0179】
なお、ラベリング部333は、ステップS164,S165の代わりに、ステップS162またはステップS163において算出した確率を基に次のようにして画素の輝度値を決定してもよい。ラベリング部333は、選択した画素が白画素である確率p(k=w_pixel|xi)が、黒画素である確率p(k=b_pixel|xi)以上である場合には、画素の輝度値を“255”と決定して、補正画像データの対応する画素の記憶領域にラベリングする。一方、ラベリング部333は、選択した画素が白画素である確率p(k=w_pixel|xi)が、黒画素である確率p(k=b_pixel|xi)未満である場合には、画素の輝度値を“0”と決定して、補正画像データの対応する画素の記憶領域にラベリングする。
【0180】
図16は、ラベリング処理の第2の処理例を示すフローチャートである。この図16の処理は、図14のステップS148の処理に対応する。
[ステップS171]ラベリング部333は、図14のステップS146で算出した劣化パラメータμb’(k=b_block)が、“255”以上であるか否かを判定する。ラベリング部333は、劣化パラメータμb’(k=b_block)が“255”以上である場合には、ステップS172の処理を実行し、劣化パラメータμb’(k=b_block)が“255”より小さい場合には、ステップS175の処理を実行する。
【0181】
[ステップS172]ラベリング部333は、図15のステップS162と同様の手順で、図14のステップS147で選択した画素が白画素である確率p(k=w_pixel|xi)および黒画素である確率p(k=b_pixel|xi)を、それぞれ式(7)、式(8)に従って計算する。
【0182】
[ステップS173]ラベリング部333は、ステップS172で算出した確率を基に、式(19)に従って期待値を計算する。なお、実際には、ラベリング部333は、ステップS172において、選択した画素が白画素である確率p(k=w_pixel|xi)のみを算出することで、式(19)に従って期待値を計算することが可能である。
【0183】
[ステップS174]ラベリング部333は、ステップS173で算出した期待値を、図14のステップS147で選択した画素の輝度値として、補正画像データ250の対応する画素の記憶領域にラベリングする。この後、ラベリング部333は、図14のステップS149の処理を実行する。
【0184】
なお、ラベリング部333は、ステップS173,S174の代わりに、ステップS172において算出した確率を基に次のようにして画素の輝度値を決定してもよい。ラベリング部333は、選択した画素が白画素である確率p(k=w_pixel|xi)が、黒画素である確率p(k=b_pixel|xi)以上である場合には、画素の輝度値を“255”と決定して、補正画像データの対応する画素の記憶領域にラベリングする。一方、ラベリング部333は、選択した画素が白画素である確率p(k=w_pixel|xi)が、黒画素である確率p(k=b_pixel|xi)未満である場合には、画素の輝度値を“0”と決定して、補正画像データの対応する画素の記憶領域にラベリングする。
【0185】
[ステップS175]ラベリング部333は、図14のステップS147で選択した画素の輝度値を撮像画像データ240から読み込む。ラベリング部333は、読み込んだ輝度値と、ステップS146で算出した劣化パラメータμb’(k=b_block)とを基に、式(20)に従って補正後の輝度値を計算する。
【0186】
[ステップS176]ラベリング部333は、ステップS175で算出した輝度値を、補正画像データの対応する画素の記憶領域にラベリングする。この後、ラベリング部333は、図14のステップS149の処理を実行する。
【0187】
以上の図11〜図16で説明した処理によれば、携帯電話機300のブロック分類部331は、ステップS104において、白ブロックにおける輝度値の分散より黒ブロックにおける輝度値の分散の方が大きいという統計的性質を利用して、ブロックが白ブロックか黒ブロックかを判定する。これにより、白ブロックおよび黒ブロックを高精度に判定できる。
【0188】
また、携帯電話機300のラベリング部333は、白ブロックの各画素の輝度値を“255”に補正する。一方、ラベリング部333は、黒ブロックの各画素の輝度値を、黒ブロックの近傍の白ブロック内の画素の平均輝度値を基に補正する。
【0189】
白ブロックは白画素のみを含むブロックであることから、白ブロック内の画素の平均輝度値は、この平均輝度値が輝度値の最高値(上記の例では“255”)より小さい場合には、撮像時における明るさの劣化度合いを正確に表すと考えられる。このことから、ラベリング部333は、黒ブロックの近傍の白ブロックにおける画素の平均輝度値を基に、黒ブロックの各画素の輝度値を撮像時に劣化した分だけ増加させる。このような輝度値の補正により、輝度ムラの影響が抑制されるように、黒ブロックの明るさが補正される。
【0190】
以上のようなブロック分類処理および画質補正処理により、画像復号部324によって復号された画像において、輝度ムラに起因するノイズが目立たなくなり、復号後の画像の画質が向上する。
【0191】
〔第3の実施の形態〕
図17は、第3の実施の形態に係るコンピュータのハードウェア構成例を示す図である。
【0192】
第2の実施の形態で示した携帯電話機300の処理機能は、例えば、図17に示すようなコンピュータ500によって実現することもできる。図17に示すコンピュータ500は、CPU501によって装置全体が制御されている。CPU501には、バス410を介して、RAM502と複数の周辺機器が接続されている。
【0193】
RAM502は、コンピュータ500の主記憶装置として使用される。RAM502には、CPU501に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM502には、CPU101による処理に必要な各種データが格納される。
【0194】
バス410に接続されている周辺機器としては、ハードディスクドライブ(HDD:Hard Disk Drive)503、グラフィック処理装置504、入力インタフェース505、光学ドライブ装置506、ネットワークインタフェース507および通信インタフェース508がある。
【0195】
HDD503は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD503は、コンピュータ500の二次記憶装置として使用される。HDD503には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【0196】
グラフィック処理装置504には、モニタ504aが接続されている。グラフィック処理装置504は、CPU501からの命令に従って、画像をモニタ504aの画面に表示させる。モニタ504aとしては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
【0197】
入力インタフェース505には、例えば、キーボード505aとマウス505bとが接続されている。入力インタフェース505は、キーボード505aやマウス505bから送られてくる信号をCPU501に送信する。なお、マウス505bは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0198】
光学ドライブ装置506は、レーザ光などを利用して、光ディスク506aに記録されたデータの読み取りを行う。光ディスク506aは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク506aには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
【0199】
ネットワークインタフェース507は、ネットワーク520に接続されている。ネットワークインタフェース507は、ネットワーク520を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【0200】
通信インタフェース508は、通信ケーブルを介してカメラ508aと接続されている。カメラ508aは、撮像素子によって画像を撮像する装置であり、例えば、図6に示したカメラモジュール309と同様の機構や回路を備える。通信インタフェース508は、カメラ508aによって撮像された撮像画像のデータをCPU501に送信する。なお、通信インタフェース508としては、例えば、USB(Universal Serial Bus)インタフェースなどがある。
【0201】
以上のハードウェア構成によって、図7に示した撮像制御部321、ブロック分割部322、画質補正部323、画像復号部324および画像出力制御部325の処理を実現することができる。この場合、各処理ブロックの処理は、CPU501が所定のプログラムを実行することで実現される。また、撮像制御部321は、カメラ508aによって撮像された撮像画像のデータを取得する。また、画像出力制御部325は、暗号化画像の領域が復号化された画像を、モニタ504aに表示させる。
【0202】
なお、コンピュータ500は、例えば、ブロック分割部322が処理する撮像画像データを、ネットワーク520上の他の装置から受信してもよい。あるいは、コンピュータ500は、例えば、ブロック分割部322が処理する撮像画像データを、光ディスク506aなどの可搬型記録媒体から読み込んでもよい。これらのどちらの場合でも、コンピュータ500は、図7の撮像制御部321の処理機能を有していなくてもよい。
【0203】
さらに、コンピュータ500は、例えば、暗号化画像の領域が復号化された画像のデータを、ネットワーク520上の他の装置へ送信してもよい。あるいは、コンピュータ500は、例えば、暗号化画像の領域が復号化された画像のデータを、光ディスク506aなどの可般型記憶媒体に書き込んでもよい。
【0204】
なお、コンピュータ500が備える上記処理機能の処理内容を記述したプログラムは、コンピュータ500で読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、HDD503などの磁気記憶装置、光ディスク506a、光磁気記録媒体、半導体メモリなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
【0205】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータからコンピュータ500にそのプログラムを転送することもできる。
【0206】
プログラムを実行するコンピュータ500は、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、HDD503などの自己の記憶装置に格納する。そして、コンピュータ500は、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータ500は、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータ500は、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【0207】
また、上記の処理機能の少なくとも一部を、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現することもできる。
【0208】
以上の各実施の形態に関し、さらに以下の付記を開示する。
(付記1) 入力画像における少なくとも一部の領域を複数のブロックに分割するブロック分割部と、
白画素のみを含む白ブロックにおける輝度値の分散と、白画素と黒画素のうち少なくとも黒画素を含む黒ブロックにおける輝度値の分散とに基づいて、前記入力画像の各ブロックを白ブロックと黒ブロックとに分類するブロック分類部と、
前記入力画像の黒ブロック内の各画素の輝度値を、当該黒ブロックの近傍に位置する1つ以上の白ブロック内の各画素の平均輝度値に基づいて補正する輝度補正部と、
を有することを特徴とする画像処理装置。
【0209】
(付記2) 前記ブロック分類部は、前記入力画像のブロックにおける輝度値の分散が所定の分類しきい値より大きい場合には、当該ブロックを黒ブロックに分類し、当該ブロックにおける輝度値の分散が前記分類しきい値以下である場合には、当該ブロックを白ブロックに分類することを特徴とする付記1記載の画像処理装置。
【0210】
(付記3) 前記ブロック分類部は、白ブロックにおける輝度値の分散としてあらかじめ決められた第1のブロック内分散値と、黒ブロックにおける輝度値の分散としてあらかじめ決められた、前記第1のブロック内分散値より大きい第2のブロック内分散値とを用いて、前記入力画像のブロックが白ブロックである確率、または、当該ブロックが黒ブロックである確率の少なくとも一方を計算し、算出された確率に基づいて、当該ブロックを白ブロックまたは黒ブロックのどちらかに分類することを特徴とする付記1記載の画像処理装置。
【0211】
(付記4) 前記ブロック分類部は、白ブロック内の画素の輝度値が正規分布に従うことを定義した統計モデルと、黒ブロック内の画素の輝度値が正規分布に従うことを定義した統計モデルとを用いて、前記入力画像のブロックが白ブロックである確率、または、当該ブロックが黒ブロックである確率の少なくとも一方を算出することを特徴とする付記3記載の画像処理装置。
【0212】
(付記5) 前記輝度補正部は、白画素の輝度値の分散としてあらかじめ決められた第1の分散値と、黒画素の輝度値の分散としてあらかじめ決められた、前記第1の分散値より大きい第2の分散値とを用いるとともに、補正対象の黒ブロックの近傍に位置する1つ以上の白ブロック内の各画素の平均輝度値を当該黒ブロック内の白画素の平均輝度値として設定することで、前記入力画像の黒ブロックの各画素が白画素である確率、または、当該黒ブロックの各画素が黒画素である確率の少なくとも一方を計算し、算出された確率に基づいて、当該黒ブロック内の各画素の輝度値を補正することを特徴とする付記1〜4のいずれか1つに記載の画像処理装置。
【0213】
(付記6) 前記輝度補正部は、白画素の輝度値が正規分布に従うことを定義した統計モデルと、黒画素の輝度値が正規分布に従うことを定義した統計モデルとを用いて、前記入力画像の黒ブロックの各画素が白画素である確率、または、当該黒ブロックの各画素が黒画素である確率の少なくとも一方を計算することを特徴とする付記5記載の画像処理装置。
【0214】
(付記7) 前記輝度補正部は、前記入力画像の黒ブロック内の各画素の輝度値を、当該黒ブロックの各画素が白画素である確率に基づく期待値に補正することを特徴とする付記5または6記載の画像処理装置。
【0215】
(付記8) 前記輝度補正部は、前記入力画像の黒ブロック内の各画素の輝度値を、当該黒ブロックの近傍に位置する1つ以上の白ブロック内の各画素の平均輝度値に基づく明るさの減少量を補うように補正することを特徴とする付記1〜4のいずれか1つに記載の画像処理装置。
【0216】
(付記9) 前記輝度補正部は、前記入力画像の白ブロック内の全画素の輝度値を階調上の最高値に補正することを特徴とする付記1〜8のいずれか1つに記載の画像処理装置。
【0217】
(付記10) 前記ブロック分割部は、前記入力画像のうち原画像が暗号化された暗号化画像の領域をブロックに分割することを特徴とする付記1〜9のいずれか1つに記載の画像処理装置。
【0218】
(付記11) 前記輝度補正部によって輝度値が補正された各ブロックを、復号鍵に基づいて並べ替えることで、前記暗号化画像を復号する復号処理部をさらに有することを特徴とする付記10記載の画像処理装置。
【0219】
(付記12) 画像処理装置が、
入力画像における少なくとも一部の領域を複数のブロックに分割し、
白画素のみを含む白ブロックにおける輝度値の分散と、白画素と黒画素のうち少なくとも黒画素を含む黒ブロックにおける輝度値の分散とに基づいて、前記入力画像の各ブロックを白ブロックと黒ブロックとに分類し、
前記入力画像の黒ブロック内の各画素の輝度値を、当該黒ブロックの近傍に位置する1つ以上の白ブロック内の各画素の平均輝度値に基づいて補正する、
ことを特徴とする画像処理方法。
【0220】
(付記13) コンピュータに、
入力画像における少なくとも一部の領域を複数のブロックに分割し、
白画素のみを含む白ブロックにおける輝度値の分散と、白画素と黒画素のうち少なくとも黒画素を含む黒ブロックにおける輝度値の分散とに基づいて、前記入力画像の各ブロックを白ブロックと黒ブロックとに分類し、
前記入力画像の黒ブロック内の各画素の輝度値を、当該黒ブロックの近傍に位置する1つ以上の白ブロック内の各画素の平均輝度値に基づいて補正する、
処理を実行させることを特徴とする画像処理プログラム。
【符号の説明】
【0221】
10 画像処理装置
11 ブロック分割部
12 ブロック分類部
13 輝度補正部
20 入力画像
21 暗号化画像
【特許請求の範囲】
【請求項1】
入力画像における少なくとも一部の領域を複数のブロックに分割するブロック分割部と、
白画素のみを含む白ブロックにおける輝度値の分散と、白画素と黒画素のうち少なくとも黒画素を含む黒ブロックにおける輝度値の分散とに基づいて、前記入力画像の各ブロックを白ブロックと黒ブロックとに分類するブロック分類部と、
前記入力画像の黒ブロック内の各画素の輝度値を、当該黒ブロックの近傍に位置する1つ以上の白ブロック内の各画素の平均輝度値に基づいて補正する輝度補正部と、
を有することを特徴とする画像処理装置。
【請求項2】
前記ブロック分類部は、前記入力画像のブロックにおける輝度値の分散が所定の分類しきい値より大きい場合には、当該ブロックを黒ブロックに分類し、当該ブロックにおける輝度値の分散が前記分類しきい値以下である場合には、当該ブロックを白ブロックに分類することを特徴とする請求項1記載の画像処理装置。
【請求項3】
前記ブロック分類部は、白ブロックにおける輝度値の分散としてあらかじめ決められた第1のブロック内分散値と、黒ブロックにおける輝度値の分散としてあらかじめ決められた、前記第1のブロック内分散値より大きい第2のブロック内分散値とを用いて、前記入力画像のブロックが白ブロックである確率、または、当該ブロックが黒ブロックである確率の少なくとも一方を計算し、算出された確率に基づいて、当該ブロックを白ブロックまたは黒ブロックのどちらかに分類することを特徴とする請求項1記載の画像処理装置。
【請求項4】
前記輝度補正部は、白画素の輝度値の分散としてあらかじめ決められた第1の分散値と、黒画素の輝度値の分散としてあらかじめ決められた、前記第1の分散値より大きい第2の分散値とを用いるとともに、補正対象の黒ブロックの近傍に位置する1つ以上の白ブロック内の各画素の平均輝度値を当該黒ブロック内の白画素の平均輝度値として設定することで、前記入力画像の黒ブロックの各画素が白画素である確率、または、当該黒ブロックの各画素が黒画素である確率の少なくとも一方を計算し、算出された確率に基づいて、当該黒ブロック内の各画素の輝度値を補正することを特徴とする請求項1〜3のいずれか1項に記載の画像処理装置。
【請求項5】
前記輝度補正部は、前記入力画像の白ブロック内の全画素の輝度値を階調上の最高値に補正することを特徴とする請求項1〜4のいずれか1項に記載の画像処理装置。
【請求項6】
画像処理装置が、
入力画像における少なくとも一部の領域を複数のブロックに分割し、
白画素のみを含む白ブロックにおける輝度値の分散と、白画素と黒画素のうち少なくとも黒画素を含む黒ブロックにおける輝度値の分散とに基づいて、前記入力画像の各ブロックを白ブロックと黒ブロックとに分類し、
前記入力画像の黒ブロック内の各画素の輝度値を、当該黒ブロックの近傍に位置する1つ以上の白ブロック内の各画素の平均輝度値に基づいて補正する、
ことを特徴とする画像処理方法。
【請求項7】
コンピュータに、
入力画像における少なくとも一部の領域を複数のブロックに分割し、
白画素のみを含む白ブロックにおける輝度値の分散と、白画素と黒画素のうち少なくとも黒画素を含む黒ブロックにおける輝度値の分散とに基づいて、前記入力画像の各ブロックを白ブロックと黒ブロックとに分類し、
前記入力画像の黒ブロック内の各画素の輝度値を、当該黒ブロックの近傍に位置する1つ以上の白ブロック内の各画素の平均輝度値に基づいて補正する、
処理を実行させることを特徴とする画像処理プログラム。
【請求項1】
入力画像における少なくとも一部の領域を複数のブロックに分割するブロック分割部と、
白画素のみを含む白ブロックにおける輝度値の分散と、白画素と黒画素のうち少なくとも黒画素を含む黒ブロックにおける輝度値の分散とに基づいて、前記入力画像の各ブロックを白ブロックと黒ブロックとに分類するブロック分類部と、
前記入力画像の黒ブロック内の各画素の輝度値を、当該黒ブロックの近傍に位置する1つ以上の白ブロック内の各画素の平均輝度値に基づいて補正する輝度補正部と、
を有することを特徴とする画像処理装置。
【請求項2】
前記ブロック分類部は、前記入力画像のブロックにおける輝度値の分散が所定の分類しきい値より大きい場合には、当該ブロックを黒ブロックに分類し、当該ブロックにおける輝度値の分散が前記分類しきい値以下である場合には、当該ブロックを白ブロックに分類することを特徴とする請求項1記載の画像処理装置。
【請求項3】
前記ブロック分類部は、白ブロックにおける輝度値の分散としてあらかじめ決められた第1のブロック内分散値と、黒ブロックにおける輝度値の分散としてあらかじめ決められた、前記第1のブロック内分散値より大きい第2のブロック内分散値とを用いて、前記入力画像のブロックが白ブロックである確率、または、当該ブロックが黒ブロックである確率の少なくとも一方を計算し、算出された確率に基づいて、当該ブロックを白ブロックまたは黒ブロックのどちらかに分類することを特徴とする請求項1記載の画像処理装置。
【請求項4】
前記輝度補正部は、白画素の輝度値の分散としてあらかじめ決められた第1の分散値と、黒画素の輝度値の分散としてあらかじめ決められた、前記第1の分散値より大きい第2の分散値とを用いるとともに、補正対象の黒ブロックの近傍に位置する1つ以上の白ブロック内の各画素の平均輝度値を当該黒ブロック内の白画素の平均輝度値として設定することで、前記入力画像の黒ブロックの各画素が白画素である確率、または、当該黒ブロックの各画素が黒画素である確率の少なくとも一方を計算し、算出された確率に基づいて、当該黒ブロック内の各画素の輝度値を補正することを特徴とする請求項1〜3のいずれか1項に記載の画像処理装置。
【請求項5】
前記輝度補正部は、前記入力画像の白ブロック内の全画素の輝度値を階調上の最高値に補正することを特徴とする請求項1〜4のいずれか1項に記載の画像処理装置。
【請求項6】
画像処理装置が、
入力画像における少なくとも一部の領域を複数のブロックに分割し、
白画素のみを含む白ブロックにおける輝度値の分散と、白画素と黒画素のうち少なくとも黒画素を含む黒ブロックにおける輝度値の分散とに基づいて、前記入力画像の各ブロックを白ブロックと黒ブロックとに分類し、
前記入力画像の黒ブロック内の各画素の輝度値を、当該黒ブロックの近傍に位置する1つ以上の白ブロック内の各画素の平均輝度値に基づいて補正する、
ことを特徴とする画像処理方法。
【請求項7】
コンピュータに、
入力画像における少なくとも一部の領域を複数のブロックに分割し、
白画素のみを含む白ブロックにおける輝度値の分散と、白画素と黒画素のうち少なくとも黒画素を含む黒ブロックにおける輝度値の分散とに基づいて、前記入力画像の各ブロックを白ブロックと黒ブロックとに分類し、
前記入力画像の黒ブロック内の各画素の輝度値を、当該黒ブロックの近傍に位置する1つ以上の白ブロック内の各画素の平均輝度値に基づいて補正する、
処理を実行させることを特徴とする画像処理プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【公開番号】特開2012−10142(P2012−10142A)
【公開日】平成24年1月12日(2012.1.12)
【国際特許分類】
【出願番号】特願2010−144862(P2010−144862)
【出願日】平成22年6月25日(2010.6.25)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成24年1月12日(2012.1.12)
【国際特許分類】
【出願日】平成22年6月25日(2010.6.25)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]