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