(57)【要約】  カラー画像に埋め込んだウォーターマークを検出する確実性を高める。画像処理装置（１０）の画像データ取得手段（１０２）は、画像データを取得する。ヒストグラム生成手段（１０４）は、画像データ取得手段（１０２）により取得された画像データが示す画像の画素値に基づいて、画像内の領域ごとにヒストグラムを生成する。領域選択手段（１０５）は、画像の中から、ヒストグラム生成手段（１０４）により生成されたヒストグラムにおける色分布がまばらな領域を選択する。画像処理手段（１０６）は、領域選択手段（１０５）により選択された領域内にウォーターマークを埋め込む。
2017130334.tif 000002
【特許請求の範囲】
【請求項１】
画像データを取得する画像データ取得手段と、
前記画像データ取得手段により取得された画像データが示す画像の画素値に基づいて、前記画像内の領域ごとにヒストグラムを生成するヒストグラム生成手段と、
前記画像の中から、前記ヒストグラム生成手段により生成されたヒストグラムにおける色分布がまばらな領域を選択する領域選択手段と、
前記領域選択手段により選択された領域内にウォーターマークを埋め込む画像処理手段と、
を含むことを特徴とする画像処理装置。
【請求項２】
前記画像は、複数個の色チャンネルを有するカラー画像であり、
前記ヒストグラム生成手段は、前記画素値に基づいて、前記色チャンネルごとに前記ヒストグラムを生成し、
前記領域選択手段は、前記色チャンネルごとに、前記ヒストグラム生成手段により生成されたヒストグラムにおける色分布がまばらな領域を選択し、
前記画像処理手段は、前記領域選択手段により前記色チャンネルごとに選択された領域内の当該色チャンネルの数値を変化させることによって、当該領域内に前記ウォーターマークを埋め込む、
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記ヒストグラム生成手段は、前記画像内の領域ごとにヒストグラムイコライゼーション処理を実行したうえで前記ヒストグラムを生成する、
ことを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記画像処理装置は、ユーザによる前記画像データの要求を受け付ける要求受付手段を更に含み、
前記ウォーターマークは、前記画像データを要求した前記ユーザを識別するための情報を含み、
前記画像処理装置は、前記要求受付手段により要求を受け付けた前記ユーザに対して、前記画像処理手段により前記ウォーターマークが埋め込まれた前記画像データを提供する画像提供手段を更に含む、
ことを特徴とする請求項１〜３の何れかに記載の画像処理装置。
【請求項５】
前記画像処理装置は、
前記画像データ取得手段により取得された画像データが、静止画データであるか動画データであるかを判定する判定手段と、
前記画像の中からランダムに領域を選択するランダム選択手段と、
を更に含み、
前記画像処理手段は、前記判定手段により静止画データであると判定された場合、前記領域選択手段により選択された領域内に前記ウォーターマークを埋め込み、前記判定手段により動画データであると判定された場合、前記ランダム選択手段によりランダムに選択された領域内に前記ウォーターマークを埋め込む、
ことを特徴とする請求項１〜４の何れかに記載の画像処理装置。
【請求項６】
前記画像処理手段は、前記領域選択手段により複数の領域が選択された場合、当該複数の全ての領域内に前記ウォーターマークを埋め込む、
ことを特徴とする請求項１〜５の何れかに記載の画像処理装置。
【請求項７】
前記画像処理手段は、前記領域選択手段により複数の領域が選択された場合、当該複数の領域のうち、前記ヒストグラム生成手段により生成されたヒストグラムにおける色分布がまばらなものから順番に所定個数の領域を選択して前記ウォーターマークを埋め込む、
ことを特徴とする請求項１〜６の何れかに記載の画像処理装置。
【請求項８】
画像データを取得する画像データ取得ステップと、
前記画像データ取得ステップにより取得された画像データが示す画像の画素値に基づいて、前記画像内の領域ごとにヒストグラムを生成するヒストグラム生成ステップと、
前記画像の中から、前記ヒストグラム生成ステップにより生成されたヒストグラムにおける色分布がまばらな領域を選択する領域選択ステップと、
前記領域選択ステップにより選択された領域内にウォーターマークを埋め込む画像処理ステップと、
を含むことを特徴とする画像処理方法。
【請求項９】
画像データを取得する画像データ取得手段、
前記画像データ取得手段により取得された画像データが示す画像の画素値に基づいて、前記画像内の領域ごとにヒストグラムを生成するヒストグラム生成手段、
前記画像の中から、前記ヒストグラム生成手段により生成されたヒストグラムにおける色分布がまばらな領域を選択する領域選択手段、
前記領域選択手段により選択された領域内にウォーターマークを埋め込む画像処理手段、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、静止画や動画などの画像にウォーターマークを埋め込む技術が知られている。例えば、特許文献１には、不正なウェブサイトに掲載されている画像の出所を特定するために、画像にウォーターマークを埋め込む技術が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許出願公開第２０１３／０２３６０４６号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ウォーターマークが埋め込まれた画像内の領域は、画素値が変化するため、画素値が変化した領域を特定すればウォーターマークを検出することができる。しかし、画像によっては、この領域を特定しにくいことがある。例えば、色がグラデーションしている領域内にウォーターマークが埋め込まれると、ウォーターマークが埋め込まれた画素の画素値が変化して周囲の画素値と同じになってしまうことがある。この場合、画像の画素値を参照しても、画素値が変化した領域を特定できず、ウォーターマークを検出できないことがある。【０００５】
本発明は上記課題に鑑みてなされたものであって、その目的は、画像に埋め込んだウォーターマークを検出する確実性を高めることである。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明に係る画像処理装置は、画像データを取得する画像データ取得手段と、前記画像データ取得手段により取得された画像データが示す画像の画素値に基づいて、前記画像内の領域ごとにヒストグラムを生成するヒストグラム生成手段と、前記画像の中から、前記ヒストグラム生成手段により生成されたヒストグラムにおける色分布がまばらな領域を選択する領域選択手段と、前記領域選択手段により選択された領域内にウォーターマークを埋め込む画像処理手段と、を含むことを特徴とする。【０００７】
本発明に係る画像処理方法は、画像データを取得する画像データ取得ステップと、前記画像データ取得ステップにより取得された画像データが示す画像の画素値に基づいて、前記画像内の領域ごとにヒストグラムを生成するヒストグラム生成ステップと、前記画像の中から、前記ヒストグラム生成ステップにより生成されたヒストグラムにおける色分布がまばらな領域を選択する領域選択ステップと、前記領域選択ステップにより選択された領域内にウォーターマークを埋め込む画像処理ステップと、を含むことを特徴とする。【０００８】
本発明に係るプログラムは、画像データを取得する画像データ取得手段、前記画像データ取得手段により取得された画像データが示す画像の画素値に基づいて、前記画像内の領域ごとにヒストグラムを生成するヒストグラム生成手段、前記画像の中から、前記ヒストグラム生成手段により生成されたヒストグラムにおける色分布がまばらな領域を選択する領域選択手段、前記領域選択手段により選択された領域内にウォーターマークを埋め込む画像処理手段、としてコンピュータを機能させる。【０００９】
また、本発明に係る情報記憶媒体は、上記のプログラムが記憶されたコンピュータ読み取り可能な情報記憶媒体である。【００１０】
また、本発明の一態様では、前記画像は、複数個の色チャンネルを有するカラー画像であり、前記ヒストグラム生成手段は、前記画素値に基づいて、前記色チャンネルごとに前記ヒストグラムを生成し、前記領域選択手段は、前記色チャンネルごとに、前記ヒストグラム生成手段により生成されたヒストグラムにおける色分布がまばらな領域を選択し、前記画像処理手段は、前記領域選択手段により前記色チャンネルごとに選択された領域内の当該色チャンネルの数値を変化させることによって、当該領域内に前記ウォーターマークを埋め込む、ことを特徴とする。【００１１】
また、本発明の一態様では、前記ヒストグラム生成手段は、前記画像内の領域ごとにヒストグラムイコライゼーション処理を実行したうえで前記ヒストグラムを生成する、ことを特徴とする。【００１２】
また、本発明の一態様では、前記画像処理装置は、ユーザによる前記画像データの要求を受け付ける要求受付手段を更に含み、前記ウォーターマークは、前記画像データを要求した前記ユーザを識別するための情報を含み、前記画像処理装置は、前記要求受付手段により要求を受け付けた前記ユーザに対して、前記画像処理手段により前記ウォーターマークが埋め込まれた前記画像データを提供する画像提供手段を更に含む、ことを特徴とする。【００１３】
また、本発明の一態様では、前記画像処理装置は、前記画像データ取得手段により取得された画像データが、静止画データであるか動画データであるかを判定する判定手段と、前記画像の中からランダムに領域を選択するランダム選択手段と、を更に含み、前記画像処理手段は、前記判定手段により静止画データであると判定された場合、前記領域選択手段により選択された領域内に前記ウォーターマークを埋め込み、前記判定手段により動画データであると判定された場合、前記ランダム選択手段によりランダムに選択された領域内に前記ウォーターマークを埋め込む、ことを特徴とする。【００１４】
また、本発明の一態様では、前記画像処理手段は、前記領域選択手段により複数の領域が選択された場合、当該複数の全ての領域内に前記ウォーターマークを埋め込む、ことを特徴とする。【００１５】
また、本発明の一態様では、前記画像処理手段は、前記領域選択手段により複数の領域が選択された場合、当該複数の領域のうち、前記ヒストグラム生成手段により生成されたヒストグラムにおける色分布がまばらなものから順番に所定個数の領域を選択して前記ウォーターマークを埋め込む、ことを特徴とする。
【発明の効果】
【００１６】
本発明によれば、画像に埋め込んだウォーターマークを検出する確実性を高めることが可能になる。
【図面の簡単な説明】
【００１７】
【図１】実施形態に関わる画像処理システムの全体構成を示す図である。
【図２】画像処理システムで実現される機能の一例を示す機能ブロック図である。
【図３】画像データが示す画像の一例を示す図である。
【図４】領域内のヒストグラムを生成する処理の説明図である。
【図５】領域内のヒストグラムを生成する処理の説明図である。
【図６】ウォーターマークが埋め込まれる様子を示す図である。
【図７】ウォーターマーク埋め込み処理の一例を示すフロー図である。
【図８】ウォーターマーク検出処理の一例を示すフロー図である。
【図９】変形例の機能ブロック図である。
【発明を実施するための形態】
【００１８】
［１．画像処理システムのハードウェア構成］
以下、本発明に関わる画像処理装置を含む画像処理システムの実施形態の例を説明する。図１は、実施形態に関わる画像処理システムの全体構成を示す図である。図１に示すように、画像処理システム１は、画像処理サーバ１０（画像処理装置の一例）、ユーザ端末２０、及び管理者端末３０を含む。画像処理サーバ１０、ユーザ端末２０、及び管理者端末３０の各々は、ネットワーク２を介してデータ送受信可能に接続される。なお、ここでは、これらを１台ずつとして説明するが、これらは複数台あってもよい。
【００１９】
画像処理サーバ１０は、サーバコンピュータである。画像処理サーバ１０は、制御部１１、記憶部１２、及び通信部１３を含む。制御部１１は、例えば、一又は複数のマイクロプロセッサを含む。制御部１１は、記憶部１２に記憶されたプログラムやデータに従って処理を実行する。記憶部１２は、主記憶部及び補助記憶部を含む。例えば、主記憶部はＲＡＭであり、補助記憶部は、ハードディスク又はソリッドステートドライブ等である。通信部１３は、ネットワークカードを含む。通信部１３は、ネットワーク２を介してデータ通信を行う。
【００２０】
ユーザ端末２０は、ユーザが操作するコンピュータであり、例えば、パーソナルコンピュータ、携帯電話機（スマートフォンを含む）、又は携帯情報端末（タブレット型コンピュータを含む）等である。ユーザ端末２０は、制御部２１、記憶部２２、通信部２３、操作部２４、及び表示部２５を含む。制御部２１、記憶部２２、及び通信部２３のハードウェア構成は、それぞれ制御部１１、記憶部１２、及び通信部１３と同様であるので説明を省略する。
【００２１】
操作部２４は、ユーザが操作を行うための入力デバイスであり、例えば、マウスやキーボード、タッチパネル等である。操作部２４は、ユーザによる操作内容を制御部２１に伝達する。表示部２５は、例えば、液晶表示部又は有機ＥＬ表示部等である。表示部２５は、制御部２１の指示に従って画面を表示する。
【００２２】
管理者端末３０は、管理者が操作するコンピュータであり、例えば、パーソナルコンピュータ、携帯電話機（スマートフォンを含む）、又は携帯情報端末（タブレット型コンピュータを含む）等である。管理者端末３０の制御部３１、記憶部３２、通信部３３、操作部３４、及び表示部３５のハードウェア構成は、それぞれ制御部２１、記憶部２２、通信部２３、操作部２４、及び表示部２５と同様であるので説明を省略する。
【００２３】
なお、記憶部１２，２２，３２に記憶されるものとして説明するプログラム及びデータは、ネットワーク２を介して記憶部１２，２２，３２に供給されるようにしてもよい。また、画像処理サーバ１０、ユーザ端末２０、及び管理者端末３０のハードウェア構成は、上記の例に限られず、種々のコンピュータのハードウェアを適用可能である。例えば、画像処理サーバ１０、ユーザ端末２０、及び管理者端末３０の各々は、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部（例えば、光ディスクドライブやメモリカードスロット）を含んでもよい。この場合、情報記憶媒体に記憶されたプログラムやデータが読取部を介して記憶部１２，２２，３２に供給されるようにしてもよい。
【００２４】
本実施形態では、画像処理サーバ１０は、ユーザが勤務する会社の秘密情報の画像を管理する。例えば、ユーザが画像を故意に社外に公開した場合に当該ユーザを特定できるように、画像処理サーバ１０は、ユーザが要求した画像にウォーターマークを埋め込むようにしている。その際に、画像処理サーバ１０は、ヒストグラムにおける色分布がまばらな領域にウォーターマークを埋め込むことで、ウォーターマークを検出しやすくしている。以降、当該技術の詳細について説明する。
【００２５】
［２．画像処理システムにおいて実現される機能］
図２は、画像処理システム１で実現される機能の一例を示す機能ブロック図である。本実施形態では、主に、画像処理サーバ１０で実現される機能を説明する。図２に示すように、画像処理サーバ１０では、データ記憶部１００、要求受付部１０１、画像データ取得部１０２、ウォーターマーク生成部１０３、ヒストグラム生成部１０４、領域選択部１０５、画像処理部１０６、及び画像提供部１０７が実現される。
【００２６】
［２−１．データ記憶部］
データ記憶部１００は、記憶部１２を主として実現される。データ記憶部１００は、画像にウォーターマークを埋め込むための各種データを記憶する。例えば、データ記憶部１００は、ユーザデータベース及び画像データベースを記憶する。
【００２７】
ユーザデータベースは、画像処理システム１を利用するユーザに関する情報を格納する。例えば、ユーザデータベースは、ユーザを一意に識別するユーザＩＤ（例えば、社員番号）やユーザの個人情報を格納する。個人情報は、例えば、ユーザ名（例えば、氏名やユーザアカウント）、ユーザの所属（例えば、会社名や所属部署）、及びユーザの連絡先（例えば、電話番号やメールアドレス）などである。
【００２８】
画像データベースは、画像処理サーバ１０が管理する画像データに関する情報を格納する。画像データは、静止画データであってもよいし、動画データであってもよい。また、画像データが示す画像は、グレースケール画像であってもよいし、複数個の色チャンネルを有するカラー画像であってもよい。本実施形態では、画像データがカラー静止画像を示す場合を例に挙げて説明する。
【００２９】
画像データベースには、画像データそのものが格納されていてもよいし、画像データの所在のみが格納されていてもよい。画像データの所在とは、画像データの格納場所であり、例えば、画像データを格納したフォルダ（ディレクトリ）やＵＲＬなどのリンク情報である。画像データは、画像処理サーバ１０に記憶されていてもよいし、画像処理サーバ１０とデータ送受信可能に接続された他のコンピュータに記憶されていてもよい。また、画像データベースには、画像データの形式やデータサイズを格納するようにしてよい。画像データの形式は、例えば、画像データの拡張子や色深度情報などである。
【００３０】
なお、データ記憶部１００が記憶するデータは上記の例に限られない。データ記憶部１００は、種々のデータを記憶してよい。例えば、ウォーターマークに画像データの著作者や管理者の情報を含める場合には、データ記憶部１００は、画像データごとに著作者や管理者の情報を記憶してもよい。
【００３１】
［２−２．要求受付部］
要求受付部１０１は、制御部１１を主として実現される。要求受付部１０１は、ユーザによる画像データの要求を受け付ける。画像データの要求とは、画像データの取得要求又は表示要求である。例えば、要求受付部１０１は、ユーザ端末２０からユーザが指定した画像データを識別する情報（ファイル名やリンク情報など）を受信することによって、画像データの要求を受け付けることになる。
【００３２】
［２−３．画像データ取得部］
画像データ取得部１０２は、制御部１１を主として実現される。画像データ取得部１０２は、画像データを取得する。本実施形態では、ユーザは画像データベースに格納された画像データを要求するので、画像データ取得部１０２は、画像データベースに格納された複数の画像データのうち、ユーザが指定した画像データを取得することになる。
【００３３】
［２−４．ウォーターマーク生成部］
ウォーターマーク生成部１０３は、制御部１１を主として実現される。ウォーターマーク生成部１０３は、ウォーターマークを生成する。ウォーターマークは、デジタルウォーターマークとも呼ばれ、一般的には、データの秘密保持や著作権保護の目的で埋め込まれる画像である。ウォーターマークは、可視的なものと不可視的なものが存在するが、本実施形態では、ウォーターマークが不可視的である場合を説明する。
【００３４】
ウォーターマークは、画像データベースに格納された画像に関する情報を含む。別の言い方をすれば、ウォーターマークは、自身が埋め込まれる画像に関する情報を含む。この情報は、画像の秘密を保持したり著作権を保護したりするための情報であり、例えば、画像を要求したユーザを識別するための情報、画像の著作者を識別するための情報、又は画像の管理者を識別するための情報である。ここでは、ウォーターマークは、画像データを要求したユーザを識別するための情報を含む場合を説明する。ユーザを識別するための情報は、ユーザデータベースに格納された情報であり、例えば、ユーザＩＤ、ユーザ名、所属、及び連絡先などである。
【００３５】
また、ウォーターマークは、画像で表されてもよいし、テキストで表されてもよい。本実施形態では、ウォーターマークが画像として表される場合を説明する。更に、その画像の一例として、所与の規格で定められたコードを用いる場合を説明する。コードは、バーコードであってもよいし、二次元コードであってもよい。ここでは、二次元コードをウォーターマークとして用いる場合を説明し、二次元コードの一例として、ＱＲコード（登録商標）を説明する。
【００３６】
［２−５．ヒストグラム生成部］
ヒストグラム生成部１０４は、制御部１１を主として実現される。ヒストグラム生成部１０４は、画像データ取得部１０２により取得された画像データが示す画像の画素値に基づいて、画像内の領域ごとにヒストグラムを生成する。ヒストグラムは、階調値ごとに頻度（画素数）を表したものである。
【００３７】
図３は、画像データが示す画像の一例を示す図である。図３では、画像４０の左上をスクリーン座標系（Ｘ−Ｙ座標系）の原点Ｏとする。本実施形態では、画像４０はカラー画像なので、画像４０の各画素の画素値は、色チャンネルごとに数値を含んでいる。例えば、ＲＧＢカラー画像であれば、画素値は、赤チャンネルの数値Ｒｘｙ、緑チャンネルの数値Ｇｘｙ、及び青チャンネルの数値Ｂｘｙを含む。なお、これらのｘとｙの文字は画素の座標である。このＲＧＢカラー画像が２４ビットであれば、各色チャンネルの数値は、８ビットで表されるので０〜２５５の何れかの数値となる。
【００３８】
例えば、ヒストグラム生成部１０４は、画素値に基づいて、色チャンネルごとにヒストグラムを生成することになる。ヒストグラムの生成方法自体は公知の種々の手法を適用可能であるが、ヒストグラム生成部１０４は、例えば次のようにしてヒストグラムを生成する。赤チャンネルのヒストグラムの生成方法を例に挙げると、ここでは数値Ｒｘｙが０〜２５５の２５６段階の階調で表現されるので、ヒストグラム生成部１０４は、画像４０の各画素の赤チャンネルの数値Ｒｘｙを参照して、各階調の頻度をカウントすることによって、赤チャンネルのヒストグラムを生成する。ヒストグラム生成部１０４は、緑チャンネル及び青チャンネルについても同様に、数値Ｇｘｙ，Ｂｘｙを参照して、各階調の頻度をカウントすることでヒストグラムを生成することになる。なお、ここではヒストグラム生成部１０４が、赤チャンネル、緑チャンネル、及び青チャンネルのそれぞれについてヒストグラムを生成する場合を説明するが、これら３つの色チャンネルを合わせた１つのヒストグラム（いわゆる輝度ヒストグラム）を生成してもよい。
【００３９】
本実施形態では、ヒストグラム生成部１０４は、画像４０内の領域ごとにヒストグラムイコライゼーション処理を実行したうえでヒストグラムを生成する場合を説明する。ヒストグラムイコライゼーション処理は、ヒストグラムにおける頻度の累積を示すグラフが直線状になるように各画素値を変換する処理である。画像に対してヒストグラムイコライゼーション処理を施すことにより、階調に偏りがある場合に、階調を万遍なく分散させることができる。ヒストグラムイコライゼーション処理自体は、公知の種々の処理を適用可能である。例えば、ヒストグラム生成部１０４は、画像４０内の領域の各階調の頻度を取得し、頻度が基準以上（例えば、１以上）の階調を特定する。ヒストグラム生成部１０４は、当該特定した階調の値とその頻度を所与の数式に代入することによって、ヒストグラムイコライゼーション処理を実行する。この数式は、基準以上の頻度を有する階調値が、階調の範囲（ここでは各数値は８ビットで表されるので、０〜２５５）に分散されるように定められている。例えば、ある領域の数値Ｒｘｙが５０〜１００に集中しており、それ以外の階調の頻度が０である場合、これら５０〜１００の階調値が、８ビットで表現可能な０〜２５５に分散されるように、数値Ｒｘｙが変換されることになる。
【００４０】
図４は、領域４１内のヒストグラムを生成する処理の説明図である。図４に示すように、領域４１は、比較的色の数や変化が少なく、同じ色の画素が多い領域である。即ち、領域４１は、所定の階調値に頻度が集中している領域である。このため、ヒストグラム生成部１０４が領域４１に対してヒストグラムイコライゼーション処理を実行してヒストグラムを生成すると、色分布がまばらなヒストグラムが生成される。図４の例は、ヒストグラム生成部１０４が、領域４１の赤チャンネルに対してヒストグラムイコライゼーション処理を実行した場合を示している。例えば、領域４１内のほぼ全ての画素Ｐｘｙの数値Ｒｘｙが１００と１４０であった場合、１００と１４０に頻度が集中して他の階調の頻度はほぼ０である。このため、ヒストグラム生成部１０４が領域４１にヒストグラムイコライゼーション処理を実行すると、図４のように、色分布がまばらなヒストグラムとなる。
【００４１】
図５は、領域４２内のヒストグラムを生成する処理の説明図である。図４に示すように、領域４２は、比較的色の数や変化が大きく、同じ色の画素が少ない領域である。即ち、領域４２は、所定の階調値に頻度が集中するのではなく、各階調値に万遍なく頻度が分散している領域である。このため、ヒストグラム生成部１０４が領域４２に対してヒストグラムイコライゼーション処理を実行してヒストグラムを生成しても、色分布がまばらなヒストグラムにはならない。図５の例は、ヒストグラム生成部１０４が、領域４２の赤チャンネルに対してヒストグラムイコライゼーション処理を実行した場合を示している。例えば、領域４２内の各画素Ｐｘｙの数値Ｒｘｙが０〜２５５の間で万遍なく存在していた場合、０〜２５５のそれぞれの頻度はほとんど変わらない。このため、ヒストグラム生成部１０４が領域４２にヒストグラムイコライゼーション処理を実行しても、図５に示すように、色分布がまばらにはならない。
【００４２】
［２−６．領域選択部］
領域選択部１０５は、制御部１１を主として実現される。領域選択部１０５は、画像４０の中から、ヒストグラム生成部１０４により生成されたヒストグラムにおける色分布がまばらな領域４１を選択する。本実施形態では、複数個の色チャンネルを有するカラー画像に対して色チャンネルごとにヒストグラムが生成されるので、領域選択部１０５は、色チャンネルごとに、ヒストグラム生成部１０４により生成されたヒストグラムにおける色分布がまばらな領域４１を選択する。
【００４３】
色分布がまばらとは、所定以上の頻度が表れた階調のまばら具合（密度）が基準以上（基準密度以上）であることを意味する。例えば、下記のようにして色分布がまばらであるかが判定される。
【００４４】
例えば、色分布がまばらだと特定の階調に頻度が集中し、グラデーションしていると各階調に頻度が分散するので、領域選択部１０５は、第１の閾値Ｔ１以上の頻度の階調の数が所定数以上であるときは、色分布がまばらと判定するようにしてもよい。例えば、上記所定数を２個とすると、図３に示す領域４１のヒストグラムでは、閾値Ｔ１以上の頻度の階調の数は２個であり所定数以上なので、領域選択部１０５は、領域４１の色分布がまばらだと判定する。一方、領域４２のヒストグラムでは、閾値Ｔ１以上の頻度の階調は０個であり所定数未満なので、領域選択部１０５は、領域４２の色分布はまばらではないと判定する。
【００４５】
また例えば、色分布がまばらだと頻度が０の階調が多数あり、グラデーションしていると頻度が０の階調はほとんどないので、上記とは逆に、領域選択部１０５は、第２の閾値Ｔ２（Ｔ２＜＜Ｔ１）以上の頻度の階調の数が所定数未満であるときは、色分布がまばらと判定するようにしてもよい。例えば、上記所定数を１０個とすると、領域４１のヒストグラムでは、閾値Ｔ２以上の頻度の階調の数は２個であり所定数未満なので、領域選択部１０５は、領域４１の色分布がまばらだと判定する。一方、領域４２のヒストグラムでは、閾値Ｔ２以上の頻度の階調は多数あり所定数以上なので、領域選択部１０５は、領域４１の色分布はまばらではないと判定する。
【００４６】
また例えば、上記のように階調の数に着目するのではなく、ピーク間の距離に着目すると、色分布がまばらだとピーク間の距離が長く、グラデーションしているとピーク間の距離が短いので、領域選択部１０５は、ピーク（例えば、閾値Ｔ２以上の頻度があればピークとする）どうしの距離Ｄが所定距離（例えば、５）以上であるときは、色分布がまばらと判定するようにしてもよい。ここでの距離Ｄは、あるピークの階調値と、そのピークの隣のピークの階調値と、の差の値である。例えば、上記所定距離は、後述する画像処理部１０６による数値Ｒｘｙ，Ｇｘｙ，Ｂｘｙの変化量に基づいて定まるようにしてよい。これは、ウォーターマークを埋め込んで数値Ｒｘｙ，Ｇｘｙ，Ｂｘｙを変化させたときに、隣のピークと同じ値になってしまうと、どの部分にウォーターマークが埋め込まれたのかを特定できなくなる可能性があるので、これを防止するためである。例えば、領域４１のヒストグラムでは、距離Ｄは所定距離以上なので、領域選択部１０５は、領域４１の色分布がまばらだと判定する。一方、領域４２のヒストグラムでは、ピーク間の距離Ｄは「１」又は「２」であり所定距離未満なので、領域選択部１０５は、領域４１の色分布はまばらではないと判定する。
【００４７】
上記のようにして、領域選択部１０５は、画像４０から色分布がまばらな領域を判定し、当該領域を選択する。例えば、領域選択部１０５は、赤チャンネルの色分布がまばらな領域を特定し、赤チャンネルにウォーターマークを埋め込む領域として選択する。また例えば、領域選択部１０５は、緑チャンネルの色分布がまばらな領域を特定し、緑チャンネルにウォーターマークを埋め込む領域として選択する。領域選択部１０５は、青チャンネルの色分布がまばらな領域を特定し、青チャンネルにウォーターマークを埋め込む領域として選択する。なお、色分布がまばらな領域は、グラデーションしていない領域であり、色の違い（ある画素と、周囲の画素と、の色の違い）が大きい領域である。別の言い方をすれば、色分布がまばらな領域は、色の変化の度合いが大きい領域である。このため、領域選択部１０５は、色の違いが基準以上となる領域を選択することになる。
【００４８】
［２−７．画像処理部］
画像処理部１０６は、制御部１１を主として実現される。画像処理部１０６は、領域選択部１０５により選択された領域４１内にウォーターマークを埋め込む。画像処理部１０６は、画素値に含まれる数値Ｒｘｙ，Ｇｘｙ，Ｂｘｙのうちの１つ以上を変化させることによってウォーターマークを埋め込む。本実施形態では、領域選択部１０５により色チャンネルごとに領域が選択されるので、画像処理部１０６は、領域選択部１０５により色チャンネルごとに選択された領域内の当該色チャンネルの数値を変化させることによって、当該領域内にウォーターマークを埋め込むことになる。
【００４９】
図６は、ウォーターマークが埋め込まれる様子を示す図である。ここでは、領域選択部１０４が、全ての色チャンネルに対して領域４１を選択した場合を説明する。即ち、画像処理部１０６が、全ての色チャンネルに対して、領域４１にウォーターマーク５０を埋め込む場合を説明する。
【００５０】
先述したように、本実施形態では、ウォーターマーク５０は二次元コードである。二次元コードの各セルは、０又は１の何れかの値を取る。例えば、「０」に対応するセルは色がなく、「１」に対応するセルは色を有する。なお、ここでの色がないとは背景色と同じ色であることを意味し、色を有するとは背景色と異なる色であることを意味する。即ち、赤チャンネルに埋め込まれるウォーターマーク５０の「０」のセルに対応する領域は赤色がなく、「１」のセルに対応する領域は赤色を有することになる。同様に、緑チャンネル及び青チャンネルに埋め込まれるウォーターマーク５０の「０」のセルに対応する領域は、それぞれ緑色又は青色がなく、「１」のセルに対応する領域は、それぞれ緑色又は青色を有する。このため、図４では、ウォーターマーク５０を黒で示しているが、実際には、各チャンネルに埋め込まれるウォーターマーク５０は、赤色、緑色、青色である。なお、ウォーターマーク５０の二次元コードの１つのセルは、画像としては１画素（１ピクセル）だけで構成されてもよいし、複数の画素から構成されてもよい。例えば、画像圧縮に耐えられるように、十分な大きさのウォーターマーク５０を採用する場合には、１つのセルは複数の画素から構成されるようにすればよい。
【００５１】
例えば、画像処理部１０６は、ウォーターマーク５０の「０」のセルに対応する画素の画素値は変化させず、ウォーターマーク５０の「１」のセルに対応する画素の画素値は変化させる。具体的には、画像処理部１０６は、ウォーターマーク５０の「０」のセルに対応する画素の画素値は（Ｒｘｙ，Ｇｘｙ，Ｂｘｙ）のまま変化させず、ウォーターマーク５０の「１」のセルに対応する画素Ｐｘｙの画素値を（Ｒｘｙ＋１，Ｇｘｙ＋１，Ｂｘｙ＋１）とする。先述したように、ここでは、全ての色チャンネルに対してウォーターマークを埋め込む場合を説明するので、数値Ｒｘｙ，Ｇｘｙ，Ｂｘｙの全てが１ずつ増加している。このように、ウォーターマーク５０が埋め込まれた領域の画素値はわずかしか変化しないので、図４に示すように、ウォーターマーク５０は人の目では気づきにくい状態（不可視的な状態）となる。
【００５２】
なお、画像処理部１０６が各色チャンネルの数値Ｒｘｙ，Ｇｘｙ，Ｂｘｙを１だけ増加させる場合を説明したが、２以上の変化をさせてもよい。ただし、数値Ｒｘｙ，Ｇｘｙ，Ｂｘｙの変化が大きすぎると、不可視性を維持できない可能性があるので、変化量は閾値（例えば、４）未満となるようにしてもよい。また、画像処理部１０６は、各色チャンネルの数値Ｒｘｙ，Ｇｘｙ，Ｂｘｙを増加させるのではなく減少させてもよい。この場合、画像処理部１０６は、ウォーターマーク５０の「０」のセルに対応する画素の画素値を減少させ、ウォーターマーク５０の「１」に対応する画素の画素値は変化さないようにしてもよい。また、各色チャンネルの数値Ｒｘｙ，Ｇｘｙ，Ｂｘｙの変化量は、固定値であってもよいし、可変値であってもよい。
【００５３】
また、１つの領域内に埋め込まれるウォーターマーク５０の数は、１つではなく、複数であってもよい。１つの領域に埋め込まれるウォーターマーク５０の数は、画像データベースに格納された全ての画像データで同じであってもよいし、画像データごとに異なっていてもよい。更に、ウォーターマーク５０の数は、固定値であってもよいし、可変値であってもよい。可変値である場合には、ウォーターマーク５０の数は、ユーザや画像データなどの所定条件のもとで定まってもよいし、ランダムに定まってもよい。
【００５４】
また、上記の例では、領域４１において３つの色チャンネルの全ての色分布がまばらである場合の処理を説明したが、一部の色チャンネルの色分布のみがまばらであった場合には、画像処理部１０６は、当該一部の色チャンネルの数値のみを変化させる。例えば、領域４１において赤チャンネルの色分布のみがまばらであった場合、画像処理部１０６は、赤チャンネルの数値Ｒｘｙのみを変化させることになる。なお、一部の色チャンネルの色分布のみがまばらであった場合でも、全ての色チャンネルにウォーターマークを埋め込んでもよい。更に、３つの色チャンネルの全ての色分布がまばらであったとしても、画像処理部１０６は、必ずしもこれら全てにウォーターマークを埋め込む必要はなく、何れか１つ又は２つにウォーターマークを埋め込んでもよい。この場合、ウォーターマークを埋め込む色チャンネルは、固定であってもよいし、所与の条件のもとで可変であってもよい。
【００５５】
［２−８．画像提供部］
画像提供部１０７は、制御部１１を主として実現される。画像提供部１０７は、要求受付部１０１により要求を受け付けたユーザに対して、画像処理部１０６によりウォーターマークが埋め込まれた画像データ（即ち、画素値を変化させた画像データ）を提供する。例えば、画像提供部１０７は、ウォーターマークを埋め込んだ画像データ自体をユーザ端末に送信してもよいし、画像データ自体は送信せずにウォーターマークが埋め込まれた画像を表示部２５に表示させるためのデータ（画面の表示データ）のみをユーザ端末に送信してもよい。
【００５６】
［３．画像処理システムにおいて実行される処理］
次に、画像処理システム１において実行される処理の一例として、画像にウォーターマークを埋め込むためのウォーターマーク埋め込み処理と、画像に埋め込まれたウォーターマークを検出するためのウォーターマーク検出処理と、を説明する。下記に説明する処理は、図２に示す機能ブロックが実行する処理の一例である。
【００５７】
図７は、ウォーターマーク埋め込み処理の一例を示すフロー図である。図７に示す処理は、制御部１１が、記憶部１２に記憶されたプログラムに従って動作し、制御部２１が、記憶部２２に記憶されたプログラムに従って動作することによって実行される。
【００５８】
図７に示すように、まず、ユーザ端末２０において、ユーザが操作部２４から所定の操作を行うと、制御部２１は、画像処理サーバ１０に対して画像データを要求する（Ｓ１）。画像データの要求は、所定の形式で行われるようにすればよく、例えば、要求する画像データを識別するための情報（ファイル名やリンク情報など）を含む。なお、ユーザ端末２０から画像処理サーバ１０に対して要求が送信される場合にはユーザＩＤやＩＰアドレスが送信されており、画像処理サーバ１０は、どのユーザがアクセスしているかを特定可能になっているものとする。
【００５９】
画像処理サーバ１０においては、画像データの要求を受信すると、制御部１１は、ユーザデータベースを参照し、画像データを要求したユーザＩＤなどの情報を取得する（Ｓ２）。Ｓ２においては、制御部１１は、画像データの要求に基づいて、ウォーターマークとして埋め込む情報を取得することになる。なお、この情報は、ユーザが画像データを要求した日時やユーザに画像データを提供する日時が含まれていてもよい。
【００６０】
制御部１１は、Ｓ２で取得した情報に基づいて、ウォーターマークを生成する（Ｓ３）。ウォーターマークを生成するプログラムは記憶部１２に記憶されているものとする。本実施形態では、二次元コードをウォーターマークとして用いるので、公知の二次元コードビルダを利用してよい。Ｓ３においては、制御部１１は、Ｓ２で取得した情報を二次元コードビルダに入力することによってウォーターマークを生成する。
【００６１】
制御部１１は、画像データベースを参照し、ユーザが要求した画像データを取得する（Ｓ４）。制御部１１は、画像データが示す画像内の領域を選択する（Ｓ５）。Ｓ５においては、制御部１１は、ウォーターマークを埋め込む領域の候補を選択することになる。例えば、制御部１１は、画像内の所定位置から順番に領域を選択してもよいし、乱数を用いてランダムに領域を選択してもよい。
【００６２】
制御部１１は、Ｓ５で選択した領域に対してヒストグラムイコライゼーション処理を実行してヒストグラムを生成する（Ｓ６）。Ｓ６では、制御部１１は、色チャンネルごとにヒストグラムイコライゼーション処理を実行するので、赤チャンネル、緑チャンネル、及び青チャンネルの３つのヒストグラムを生成することになる。
【００６３】
制御部１１は、Ｓ６で生成したヒストグラムに基づいて、Ｓ５で選択した領域の色分布が十分にまばらであるかを判定する（Ｓ７）。Ｓ７においては、制御部１１は、先述したように、閾値Ｔ１，Ｔ２を利用して判定処理を実行したり、ピーク間の距離Ｄを利用して判定処理を実行したりする。Ｓ７における判定は、色チャンネルごとに実行される。１つ以上の色チャンネルについて色分布がまばらであると判定された場合、Ｓ７においては、色分布が十分にまばらであると判定される。
【００６４】
色分布が十分にまばらであると判定された場合（Ｓ７；Ｙ）、制御部１１は、Ｓ５で選択した領域をウォーターマークが埋め込まれる領域として選択し、Ｓ３で生成したウォーターマークを埋め込む（Ｓ８）。Ｓ８においては、制御部１１は、図６を参照して説明した方法に基づいて、ウォーターマークを埋め込む領域の数値Ｒｘｙ，Ｇｘｙ，Ｂｘｙのうち、まばらであると判定された色チャンネルの数値を変化させることになる。
【００６５】
制御部１１は、ウォーターマークの埋め込みを終了するかを判定する（Ｓ９）。Ｓ９の判定処理は、所定の条件のもとで実行されるようにすればよい。例えば、所定数だけウォーターマークを埋め込むことが条件となってもよいし、選択する領域がなくなったことを条件としてもよい。
【００６６】
終了すると判定された場合（Ｓ９；Ｙ）、制御部１１は、Ｓ８でウォーターマークを埋め込んだ画像データをユーザ端末２０に送信する（Ｓ１０）。なお、色分布がまばらな領域が見つからなかった場合は、制御部１１は、ウォーターマークを埋め込まずに画像データを送信してもよいし、予め定められた位置やランダムに選択した位置にウォーターマークを埋め込んだうえで画像データを送信してもよい。ユーザ端末２０においては、画像データを受信すると、制御部２１は、受信した画像データを表示部２５に表示させる（Ｓ１１）。
【００６７】
以上説明したウォーターマーク埋め込み処理が実行されると、ユーザは、受信した画像データや表示部２５のスクリーンショットなどをネットワーク２上のコンピュータにアップロードできる状態となる。以降説明するウォーターマーク検出処理は、ネットワーク２上のコンピュータにアップロードされたカラー画像に埋め込まれたウォーターマークを管理者端末３０で検出するための処理である。
【００６８】
図８は、ウォーターマーク検出処理の一例を示すフロー図である。図８に示す処理は、制御部３１が、記憶部３２に記憶されたプログラムに従って動作することによって実行される。図８に示すように、まず、制御部３１は、ネットワーク２上のコンピュータに公開された画像データを取得する（Ｓ２１）。Ｓ２１においては、制御部３１は、ネットワーク２上のコンピュータから画像データを受信してもよいし、予め記憶部３２にダウンロードしておいた画像データを読み出してもよい。
【００６９】
制御部３１は、Ｓ２１で取得した画像データが示すカラー画像内の領域を選択する（Ｓ２２）。Ｓ２２においては、制御部３１は、予め定められた方法に基づいてカラー画像内の領域を選択すればよく、所定の大きさの領域を画像内の所定位置から順番に選択してもよいし、ランダムに領域を選択してもよい。なお、Ｓ２２以降の処理は、色チャンネルごとに実行される。即ち、制御部３１は、赤チャンネルに対してＳ２２以降の処理を実行し、緑チャンネルに対してＳ２２以降の処理を実行し、青チャンネルに対してＳ２２以降の処理を実行する。
【００７０】
制御部３１は、Ｓ２２で選択した領域に対して、色チャンネルごとにヒストグラムイコライゼーション処理を実行する（Ｓ２３）。Ｓ２３では、制御部３１は、色チャンネルごとにヒストグラムイコライゼーション処理を実行するので、赤チャンネル、緑チャンネル、及び青チャンネルの３つのヒストグラムを生成することになる。なお、画像全体に対してヒストグラムイコライゼーション処理を施してもよいが、一部の領域に対してヒストグラムイコライゼーション処理を施すことにより、各階調のピーク間の距離をより広げることができるので、ウォーターマークが浮かび上がりやすくなり、その結果、ウォーターマークを検出しやすくなる。
【００７１】
制御部３１は、Ｓ２３で生成したヒストグラムを参照して、特定の階調（又はピーク）を選択する（Ｓ２４）。Ｓ２４においては、制御部３１は、ヒストグラムに表れた頻度を閾値と比較し、基準以上の頻度が現れた階調を選択する。この閾値は、記憶部３２に記憶されているものとする。
【００７２】
制御部３１は、何れかの色チャンネルにおいて、Ｓ２４で選択した特定の階調でウォーターマークの一部又は全部を検出可能であるかを判定する（Ｓ２５）。Ｓ２５においては、制御部３１は、ウォーターマークに含まれる所定パターンを検出したかを判定することになる。本実施形態のように二次元コードをウォーターマークとして用いるのであれば、制御部３１は、二次元コードのコーナーに配置された３つのファインダパターンを探索する。例えば、制御部３１は、１つ又は２つのファインダパターンを検出した場合にウォーターマークの一部を検出したと判定し、３つのファインダパターンを検出した場合にウォーターマークの全部を検出したと判定する。
【００７３】
一部又は全部を検出可能であると判定された場合（Ｓ２５；Ｙ）、制御部３１は、当該検出したウォーターマークが完全であるかを判定する（Ｓ２６）。なお、Ｓ２５において複数の色チャンネルにおいてウォーターマークが検出された場合には、Ｓ２６の処理は、これら複数の色チャンネルごとに実行されることになる。また、本実施形態のように二次元コードをウォーターマークとして用いるのであれば、Ｓ２６においては、制御部３１は、公知の二次元コードリーダーでウォーターマークの読み取りが可能かを判定すればよい。他にも例えば、制御部３１は、ウォーターマークに含まれる所定パターンを検出したかを判定してもよい。このパターンは、Ｓ２５の判定で用いるパターンと同じであってもよいし、異なっていてもよい。Ｓ２６においては、制御部３１は、パターンマッチングを利用して、二次元コードのアライメントパターン、タイミングパターン、又はフォーマット情報を検出したかを判定してもよい。
【００７４】
ウォーターマークが完全であると判定された場合（Ｓ２６；Ｙ）、制御部３１は、ウォーターマークに含まれるメッセージを読み出して表示部３５に表示させ（Ｓ２７）、本処理は終了する。Ｓ２７においては、制御部３１は、ウォーターマークに含まれるユーザＩＤなどの情報を表示部３５に表示させることになる。
【００７５】
一方、ウォーターマークが完全でないと判定された場合（Ｓ２６；Ｎ）、制御部３１は、記憶部３２を参照し、既に検出したウォーターマークの一部があるかを判定する（Ｓ２８）。過去にＳ２５で検出されたウォーターマークの一部は、記憶部３２に記憶されているものとする。
【００７６】
ウォーターマークの一部があると判定された場合（Ｓ２８；Ｙ）、制御部３１は、Ｓ２５で検出したウォーターマークの一部と、既に検出したウォーターマークの一部と、を合成する（Ｓ２９）。Ｓ２９においては、制御部３１は、各ウォーターマーク部分に含まれる所定パターンを所定位置に配置することによって合成する。例えば、本実施形態のように二次元コードをウォーターマークとして用いるのであれば、ファインダパターンは３つのコーナーに配置されるので、各ウォーターマーク部分に含まれるファインダパターンがコーナーに配置されるようにする。なお、Ｓ２９においては、制御部３１は、ある色チャンネルで検出されたウォーターマークの一部と、他の色チャンネルで検出されたウォーターマークの一部と、を合成してもよい。
【００７７】
制御部３１は、Ｓ２９で合成したウォーターマークが完全であるかを判定する（Ｓ３０）。Ｓ３０の処理は、Ｓ２６と同様である。ウォーターマークが完全であると判定された場合（Ｓ３０；Ｙ）、Ｓ２７においてメッセージが読み出され、本処理は終了する。一方、ウォーターマークが完全でないと判定された場合（Ｓ３０；Ｎ）、後述するＳ３２に移行する。
【００７８】
Ｓ２５において、一部又は全部を検出可能でないと判定された場合（Ｓ２５；Ｎ）、制御部３１は、Ｓ２４における階調の選択を終了するかを判定する（Ｓ３１）。Ｓ３１においては、制御部３１は、まだ選択していない階調が存在するかを判定することになる。階調の選択を終了しないと判定された場合（Ｓ３１；Ｎ）、Ｓ２４の処理に戻り、次の階調についてウォーターマークの検出処理が実行される。
【００７９】
一方、階調の選択を終了すると判定された場合（Ｓ３１；Ｙ）、制御部３１は、Ｓ２２において全ての領域を選択し終わったかを判定する（Ｓ３２）。選択していない領域があると判定されない場合（Ｓ３２；Ｎ）、Ｓ２２の処理に戻り、次の領域についてウォーターマークの検出処理が実行される。
【００８０】
一方、領域の選択を終了すると判定された場合（Ｓ３２；Ｙ）、制御部３１は、ウォーターマークを検出できなかった旨を示すエラーメッセージを表示部３５に表示させ（Ｓ３３）、本処理は終了する。
【００８１】
以上説明した画像処理システム１によれば、色分布がまばらであり、ウォーターマークを検出しやすい領域にウォーターマークが埋め込まれるので、ウォーターマークを検出する確実性を向上させることができる。例えば、図３の画像４０のように、グラデーションしている領域４２ではなく、色の違いが大きい領域４１にウォーターマークを埋め込むことで、ウォーターマークを検出する確実性が高まる。
【００８２】
また、画像処理サーバ１０は、色チャンネルごとに色分布がまばらな領域を選択してウォーターマークを埋め込むので、より多くのウォーターマークを埋め込むことが可能になり、ウォーターマークの不可視性も高めることができる。例えば、赤チャンネルは色分布がまばらなのに、緑チャンネル及び青チャンネルは色分布がまばらでない領域は、全体として見れば色分布がまばらではないと判定されてウォーターマークが埋め込まれない可能性があるが、色チャンネルごとに領域を選択することで、このような領域もウォーターマークを埋め込む対象として選択されることになるので、より多くのウォーターマークを埋め込むことができる。更に、全ての色チャンネルにウォーターマークを埋め込む場合には、画素値の総変化量が大きくなってしまうが、色分布がまばらな色チャンネルに対してだけウォーターマークを埋め込むことで、画素値の総変化量を抑えることができ、ウォーターマークの不可視性を高めることができる。例えば、赤チャンネルは色分布がまばらなのに、緑チャンネル及び青チャンネルは色分布がまばらでない領域に対して、全色チャンネルにウォーターマークを埋め込むと、合計３の画素値が変化するが、赤チャンネルだけに埋め込めば１の変化で済むので、不可視性を高めることができる。
【００８３】
また、領域ごとにヒストグラムイコライゼーション処理を施したうえでヒストグラムを生成することで、色分布がまばらかどうかの判定を正確に行うことができる。その結果、より検出しやすい領域にウォーターマークを埋め込むことができるので、ウォーターマークを検出する確率を高めることができる。
【００８４】
また、画像処理サーバ１０に対して画像データを要求したユーザを識別する情報をウォーターマークに含めるので、例えば、社内の秘密情報である画像をユーザが社外に漏えいした場合であっても、ウォーターマークから当該ユーザを特定することができる。その結果、画像の漏洩を未然に防止することができる。
【００８５】
［４．変形例］
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
【００８６】
図９は、変形例の機能ブロック図である。図９に示すように、下記に説明する変形例では、実施形態の機能に加えて、判定部１０８及びランダム選択部１０９が実現される。
【００８７】
（１）例えば、上記説明した画像データには動画データも含まれているが、動画は複数の静止画像が連続再生されるものであり、各静止画像に対してウォーターマーク埋め込み処理を実行すると処理が複雑化する。このため、ユーザが動画データを要求した場合にはランダムに定まる位置にウォーターマークを埋め込み、ユーザが静止画データを要求した場合にのみ実施形態で説明したウォーターマーク埋め込み処理を実行するようにしてもよい。
【００８８】
変形例（１）の画像処理システム１は、判定部１０８及びランダム選択部１０９が実現される。判定部１０８は、制御部１１を主として実現される。判定部１０８は、画像データ取得部１０２により取得された画像データが、静止画データであるか動画データであるかを判定する。判定部１０８は、画像データのデータ形式を参照することで判定を行う。例えば、判定部１０８は、画像データの拡張子を参照してもよいし、画像データのプロパティを参照してもよい。ここでは、画像データベースにデータ形式が格納されているので、判定部１０８は、画像データベースを参照することで判定を行う。
【００８９】
ランダム選択部１０９は、制御部１１を主として実現される。ランダム選択部１０９は、画像４０の中からランダムに領域を選択する。領域の大きさは、固定であってもよいし、ランダムに決定されてもよい。例えば、ランダム選択部１０９は、乱数発生アルゴリズムに基づいて乱数を発生させ、当該乱数に基づいて定まる位置を含む領域を選択する。この位置は、乱数を所定の数式に代入することで得られるスクリーン座標であってよい。
【００９０】
画像処理部１０６は、判定部１０８により静止画データであると判定された場合に、領域選択部１０５により選択された領域内にウォーターマークを埋め込む。画像処理部１０６は、判定部１０８により動画データであると判定された場合に、ランダム選択部１０９によりランダムに選択された領域内にウォーターマークを埋め込む。ウォーターマークを埋め込む処理自体は、実施形態で説明した方法と同様である。
【００９１】
変形例（１）によれば、動画データは多数の画像を含むため、何れかの画像のウォーターマークは検出できる確率が高いので、ランダムに選択した領域にウォーターマークを埋め込んで画像処理サーバ１０の処理負荷を軽減することができる。
【００９２】
（２）また例えば、画像処理部１０６は、領域選択部１０５により複数の領域が選択された場合、当該複数の全ての領域内にウォーターマークを埋め込んでもよい。この場合、領域選択部１０５は、画像内で選択可能な領域が無くなるまで領域を選択してもよいし、所定数の領域を選択するまで領域を選択してもよい。各領域にウォーターマークを埋め込む処理自体は、実施形態で説明した方法と同様である。
【００９３】
変形例（２）によれば、画像内により多くのウォーターマークを埋め込むことができる。
【００９４】
（３）また例えば、実施形態では、色分布がまばらな領域が複数ある場合、その全てにウォーターマークを埋め込む場合を説明したが、全てに対して埋め込むのではなく、色分布がよりまばらなものから順番に埋め込むようにしてもよい。
【００９５】
画像処理部１０６は、領域選択部１０５により複数の領域が選択された場合、当該複数の領域のうち、ヒストグラム生成部１０４により生成されたヒストグラムにおける色分布がまばらなものから順番に所定個数の領域を選択してウォーターマークを埋め込む。画像処理部１０６は、色分布のまばら具合を、ヒストグラムに基づいて判定する。例えば、画像処理部１０６は、閾値Ｔ１以上の階調数が多いものから順番に所定個数の領域を選択する。また例えば、画像処理部１０６は、閾値Ｔ２以上の階調数が少ないものから順番に所定個数の領域を選択してもよい。また例えば、画像処理部１０６は、距離Ｄが長いものから順番に所定個数の領域を選択するようにしてもよい。
【００９６】
変形例（３）によれば、色分布がよりまばらな領域に対して優先的にウォーターマークが埋め込まれるので、ウォーターマークを検出する確率を高めることができる。
【００９７】
（４）また例えば、変形例（１）と（２）又は変形例（１）と（３）を組み合わせるようにしてもよい。
【００９８】
また例えば、実施形態では、色チャンネルごとにウォーターマーク検出処理を実行する場合を説明したが、例えば、各色チャンネルでウォーターマークの一部しか検出できなかった場合は、各色チャンネルで検出したウォーターマーク同士を合成してもよい。例えば、赤チャンネルで検出したウォーターマークの一部と、緑チャンネルで検出したウォーターマークの一部と、青チャンネルで検出したウォーターマークの一部と、を合成して１つのウォーターマークとして検出を試みてもよい。また例えば、複数の色チャンネルでウォーターマークを検出できた場合には、色チャンネルに優先順位を付けておき、優先順位の高い色チャンネルのウォーターマークを信頼するようにしてもよい。例えば、赤チャンネルのウォーターマークは、緑チャンネルのウォーターマークよりも優先順位を高くして、赤チャンネルと緑チャンネルの両方でウォーターマークを検出できたときは、赤チャンネルのウォーターマークに基づいてメッセージが出力されてもよい。
【００９９】
また例えば、画像処理部１０６は、互いに異なる向きのウォーターマークを画像に埋め込むようにしてもよい。また例えば、画像処理部１０６は、互いに異なるサイズのウォーターマークを画像に埋め込むようにしてもよい。また例えば、ある色チャンネルに埋め込むウォーターマークと、別の色チャンネルに埋め込むウォーターマークと、が重なるようにしてもよい。また、領域選択部１０５が、ある色チャンネルで選択した領域と、別の色チャンネルで選択した領域と、が同じである場合を説明したが、これらは、互いに一部が重なっていてもよいし、全く重なっていなくてもよい。即ち、領域選択部１０５は、ある色チャンネルと、別の色チャンネルと、で互いに異なる領域を選択してもよい。
【０１００】
また例えば、静止画像データにウォーターマークを埋め込む場合を説明したが、動画データにウォーターマークを埋め込んでもよい。他にも例えば、カラー画像ではなく、グレースケール画像にウォーターマークを埋め込んでもよい。更に、二次元コード以外のコードをウォーターマークとして利用してもよいし、コード以外の画像やテキストをウォーターマークとして利用してもよい。また例えば、ウォーターマークには任意の情報が含まれていてよく、画像データを要求したユーザ以外の情報が含まれていてもよい。
【０１０１】
また例えば、画像処理サーバ１０で実現されるものとして説明した機能が他のコンピュータ（例えば、ユーザ端末２０や管理者端末３０など）で実現されるようにしてもよい。この場合、上記説明した各機能が実現されるコンピュータが本発明に係る画像処理装置に相当することになる。また、上記説明した機能のうち、画像データ取得部１０２、ヒストグラム生成部１０４、領域選択部１０５、及び画像処理部１０６以外の機能は省略してもよい。
【図１】
2017130334.tif 000003
【図２】
2017130334.tif 000004
【図３】
2017130334.tif 000005
【図４】
2017130334.tif 000006
【図５】
2017130334.tif 000007
【図６】
2017130334.tif 000008
【図７】
2017130334.tif 000009
【図８】
2017130334.tif 000010
【図９】
2017130334.tif 000011
【手続補正書】
【提出日】平成29年2月13日(2017.2.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
画像データを取得する画像データ取得手段と、
前記画像データ取得手段により取得された画像データが示す画像の画素値に基づいて、前記画像内の領域ごとにヒストグラムを生成するヒストグラム生成手段と、
前記ヒストグラム生成手段により前記領域ごとに生成されたヒストグラムに基づいて、当該領域がグラデーションしているかを判定し、前記画像の中からグラデーションしていない領域を選択する領域選択手段と、
前記領域選択手段により選択された領域内にウォーターマークを埋め込む画像処理手段と、
を含むことを特徴とする画像処理装置。
【請求項２】
前記領域選択手段は、前記ヒストグラム生成手段により前記領域ごとに生成されたヒストグラムにおいて、閾値以上の頻度の階調の数が所定数未満である場合に、当該領域がグラデーションしていると判定し、前記閾値以上の頻度の階調の数が前記所定数以上である場合に、当該領域がグラデーションしていないと判定する、
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記領域選択手段は、前記ヒストグラム生成手段により前記領域ごとに生成されたヒストグラムにおいて、閾値以上の頻度の階調の数が所定数以上である場合に、当該領域がグラデーションしていると判定し、前記閾値以上の頻度の階調の数が前記所定数未満である場合に、当該領域がグラデーションしていないと判定する、
ことを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記領域選択手段は、前記ヒストグラム生成手段により前記領域ごとに生成されたヒストグラムにおいて、閾値以上の頻度の階調間の距離が所定距離未満である場合に、当該領域がグラデーションしていると判定し、閾値以上の頻度の階調間の距離が所定距離以上である場合に、当該領域がグラデーションしていないと判定する、
ことを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記画像は、複数個の色チャンネルを有するカラー画像であり、
前記ヒストグラム生成手段は、前記画素値に基づいて、前記色チャンネルごとに前記ヒストグラムを生成し、
前記領域選択手段は、前記色チャンネルごとに、前記画像の中からグラデーションしていない領域を選択し、
前記画像処理手段は、前記領域選択手段により前記色チャンネルごとに選択された領域内の当該色チャンネルの数値を変化させることによって、当該領域内に前記ウォーターマークを埋め込む、
ことを特徴とする請求項１〜４の何れかに記載の画像処理装置。
【請求項６】
前記ヒストグラム生成手段は、前記画像内の領域ごとにヒストグラムイコライゼーション処理を実行したうえで前記ヒストグラムを生成する、
ことを特徴とする請求項１〜５の何れかに記載の画像処理装置。
【請求項７】
前記画像処理装置は、ユーザによる前記画像データの要求を受け付ける要求受付手段を更に含み、
前記ウォーターマークは、前記画像データを要求した前記ユーザを識別するための情報を含み、
前記画像処理装置は、前記要求受付手段により要求を受け付けた前記ユーザに対して、前記画像処理手段により前記ウォーターマークが埋め込まれた前記画像データを提供する画像提供手段を更に含む、
ことを特徴とする請求項１〜６の何れかに記載の画像処理装置。
【請求項８】
画像データを取得する画像データ取得手段と、
前記画像データ取得手段により取得された画像データが示す画像の画素値に基づいて、前記画像内の領域ごとにヒストグラムを生成するヒストグラム生成手段と、
前記画像の中から、前記ヒストグラム生成手段により生成されたヒストグラムにおける色分布がまばらな領域を選択する領域選択手段と、
前記画像データ取得手段により取得された画像データが、静止画データであるか動画データであるかを判定する判定手段と、
前記画像の中からランダムに領域を選択するランダム選択手段と、
前記判定手段により静止画データであると判定された場合、前記領域選択手段により選択された領域内にウォーターマークを埋め込み、前記判定手段により動画データであると判定された場合、前記ランダム選択手段によりランダムに選択された領域内に前記ウォーターマークを埋め込む画像処理手段と、
を含むことを特徴とする画像処理装置。
【請求項９】
前記画像処理手段は、前記領域選択手段により複数の領域が選択された場合、当該複数の全ての領域内に前記ウォーターマークを埋め込む、
ことを特徴とする請求項１〜８の何れかに記載の画像処理装置。
【請求項１０】
画像データを取得する画像データ取得手段と、
前記画像データ取得手段により取得された画像データが示す画像の画素値に基づいて、前記画像内の領域ごとにヒストグラムを生成するヒストグラム生成手段と、
前記画像の中から、前記ヒストグラム生成手段により生成されたヒストグラムにおける色分布がまばらな領域を選択する領域選択手段と、
前記領域選択手段により複数の領域が選択された場合、当該複数の領域のうち、前記ヒストグラム生成手段により生成されたヒストグラムにおける色分布がまばらなものから順番に所定個数の領域を選択してウォーターマークを埋め込む画像処理手段と、
を含むことを特徴とする画像処理装置。
【請求項１１】
画像データを取得する画像データ取得ステップと、
前記画像データ取得ステップにより取得された画像データが示す画像の画素値に基づいて、前記画像内の領域ごとにヒストグラムを生成するヒストグラム生成ステップと、
前記ヒストグラム生成ステップにより前記領域ごとに生成されたヒストグラムに基づいて、当該領域がグラデーションしているかを判定し、前記画像の中からグラデーションしていない領域を選択する領域選択ステップと、
前記領域選択ステップにより選択された領域内にウォーターマークを埋め込む画像処理ステップと、
を含むことを特徴とする画像処理方法。
【請求項１２】
画像データを取得する画像データ取得ステップと、
前記画像データ取得ステップにより取得された画像データが示す画像の画素値に基づいて、前記画像内の領域ごとにヒストグラムを生成するヒストグラム生成ステップと、
前記画像の中から、前記ヒストグラム生成ステップにより生成されたヒストグラムにおける色分布がまばらな領域を選択する領域選択ステップと、
前記画像データ取得ステップにより取得された画像データが、静止画データであるか動画データであるかを判定する判定ステップと、
前記画像の中からランダムに領域を選択するランダム選択ステップと、
前記判定ステップにより静止画データであると判定された場合、前記領域選択ステップにより選択された領域内にウォーターマークを埋め込み、前記判定ステップにより動画データであると判定された場合、前記ランダム選択ステップによりランダムに選択された領域内に前記ウォーターマークを埋め込む画像処理ステップと、
を含むことを特徴とする画像処理方法。
【請求項１３】
画像データを取得する画像データ取得ステップと、
前記画像データ取得ステップにより取得された画像データが示す画像の画素値に基づいて、前記画像内の領域ごとにヒストグラムを生成するヒストグラム生成ステップと、
前記画像の中から、前記ヒストグラム生成ステップにより生成されたヒストグラムにおける色分布がまばらな領域を選択する領域選択ステップと、
前記領域選択ステップにより複数の領域が選択された場合、当該複数の領域のうち、前記ヒストグラム生成ステップにより生成されたヒストグラムにおける色分布がまばらなものから順番に所定個数の領域を選択してウォーターマークを埋め込む画像処理ステップと、
を含むことを特徴とする画像処理方法。
【請求項１４】
画像データを取得する画像データ取得手段、
前記画像データ取得手段により取得された画像データが示す画像の画素値に基づいて、前記画像内の領域ごとにヒストグラムを生成するヒストグラム生成手段、
前記ヒストグラム生成手段により前記領域ごとに生成されたヒストグラムに基づいて、当該領域がグラデーションしているかを判定し、前記画像の中からグラデーションしていない領域を選択する領域選択手段、
前記領域選択手段により選択された領域内にウォーターマークを埋め込む画像処理手段、
としてコンピュータを機能させるためのプログラム。
【請求項１５】
画像データを取得する画像データ取得手段、
前記画像データ取得手段により取得された画像データが示す画像の画素値に基づいて、前記画像内の領域ごとにヒストグラムを生成するヒストグラム生成手段、
前記画像の中から、前記ヒストグラム生成手段により生成されたヒストグラムにおける色分布がまばらな領域を選択する領域選択手段、
前記画像データ取得手段により取得された画像データが、静止画データであるか動画データであるかを判定する判定手段、
前記画像の中からランダムに領域を選択するランダム選択手段、
前記判定手段により静止画データであると判定された場合、前記領域選択手段により選択された領域内にウォーターマークを埋め込み、前記判定手段により動画データであると判定された場合、前記ランダム選択手段によりランダムに選択された領域内に前記ウォーターマークを埋め込む画像処理手段、
としてコンピュータを機能させるためのプログラム。
【請求項１６】
画像データを取得する画像データ取得手段、
前記画像データ取得手段により取得された画像データが示す画像の画素値に基づいて、前記画像内の領域ごとにヒストグラムを生成するヒストグラム生成手段、
前記画像の中から、前記ヒストグラム生成手段により生成されたヒストグラムにおける色分布がまばらな領域を選択する領域選択手段、
前記領域選択手段により複数の領域が選択された場合、当該複数の領域のうち、前記ヒストグラム生成手段により生成されたヒストグラムにおける色分布がまばらなものから順番に所定個数の領域を選択してウォーターマークを埋め込む画像処理手段、
としてコンピュータを機能させるためのプログラム。
【国際調査報告】
2017130334.tif 000012
2017130334.tif 000013
2017130334.tif 000014
2017130334.tif 000015