(57)【要約】【課題】  積分画像のデータサイズの増加を抑制しつつ、所定の矩形領域の画素値の合計を算出する。【解決手段】  画像処理装置は、第１画像の積分画像である第１積分画像と第１画像を縮小した第２画像の積分画像に対応する第２積分画像とを、第１画像のデータ幅で表される最大値と第１画像の画素数との積を表すのに必要なデータ幅より小さいデータ幅で生成する積分画像生成部と、第１画像内の所定領域の画素値の合計のうち、第１積分画像のデータ幅で表される下位桁の値を、第１積分画像を用いて算出し、下位桁より大きい上位桁の値を、第２積分画像を用いて算出する算出部とを有している。【選択図】  図１
2014078189.tif 000002
【特許請求の範囲】
【請求項１】
第１画像の積分画像である第１積分画像と前記第１画像を縮小した第２画像の積分画像に対応する第２積分画像とを、前記第１画像のデータ幅で表される最大値と前記第１画像の画素数との積を表すのに必要なデータ幅より小さいデータ幅で生成する積分画像生成部と、
前記第１画像内の所定領域の画素値の合計のうち、前記第１積分画像のデータ幅で表される下位桁の値を、前記第１積分画像を用いて算出し、前記下位桁より大きい上位桁の値を、前記第２積分画像を用いて算出する算出部と
を備えていることを特徴とする画像処理装置。
【請求項２】
前記積分画像生成部は、前記第２画像を生成せずに、前記第２積分画像を前記第１積分画像を用いて生成すること
を特徴とする請求項１記載の画像処理装置。
【請求項３】
前記算出部は、前記所定領域を前記所定領域以外の画素を含んで前記第２画像の１画素に換算される第１領域と前記第１領域を除いた第２領域とに分け、前記第１領域の画素数が前記第１積分画像のデータ幅から前記第１画像のデータ幅を引いた値をｋとしたときに２のｋ乗で表される所定数以下のとき、前記第１積分画像に基づいて算出した前記所定領域の画素値の合計の前記下位桁の値である第１評価値と前記第２積分画像を用いて算出した前記第２領域の画素値の合計の前記下位桁の値である第２評価値とを比較し、前記第１評価値が前記第２評価値以上のとき、前記第２領域の画素値の合計の前記上位桁の値を前記所定領域の画素値の合計の前記上位桁の値として算出し、前記第１評価値が前記第２評価値より小さいとき、前記第２領域の画素値の合計の前記上位桁の値に１を加算した値を前記所定領域の画素値の合計の前記上位桁の値として算出すること
を特徴とする請求項１または請求項２に記載の画像処理装置。
【請求項４】
前記算出部は、前記第１領域の画素数が前記所定数より多いとき、前記所定領域を複数の処理領域に分け、前記処理領域の画素値の合計の前記下位桁の値を、前記第１積分画像を用いて算出し、前記処理領域の画素値の合計の前記上位桁の値を、前記第２積分画像を用いて算出し、前記処理領域の画素値の合計の総和を、前記所定領域の画素値の合計として算出し、
前記各処理領域は、前記各処理領域以外の画素を含んで前記第２画像の１画素に換算される第１処理領域の画素数が前記所定数以下であること
を特徴とする請求項３記載の画像処理装置。
【請求項５】
前記算出部は、１つの前記第２積分画像を用いて前記第２領域の画素値の合計を算出する場合で、前記第２領域を前記第２画像に反映した領域の画素数が前記所定数より多いとき、前記所定領域を複数の前記処理領域に分け、前記処理領域の画素値の合計の前記下位桁の値を、前記第１積分画像を用いて算出し、前記処理領域の画素値の合計の前記上位桁の値を、前記第２積分画像を用いて算出し、前記処理領域の画素値の合計の総和を、前記所定領域の画素値の合計として算出し、
前記各処理領域のうちの前記第１処理領域を除く領域を前記第２画像に反映した領域の画素数は、前記所定数以下であること
を特徴とする請求項４記載の画像処理装置。
【請求項６】
前記算出部は、互いに異なる縮小率の前記第２画像にそれぞれ対応する複数の前記第２積分画像を用いて前記第２領域の画素値の合計を算出する場合で、前記第１領域と前記第２領域とを分ける際の基準の前記第２画像に前記第２領域を反映した領域の画素数が前記所定数より多いとき、前記第２領域の画素値の合計の前記下位桁の値を、前記基準の前記第２画像に対応する前記第２積分画像を用いて算出し、前記第２領域の画素値の合計の前記上位桁の値を、前記基準の前記第２画像の縮小率より大きい縮小率の前記第２画像に対応する前記第２積分画像を用いて算出すること
を特徴とする請求項４記載の画像処理装置。
【請求項７】
第１画像内の所定領域の画素値の合計を、積分画像を用いて算出する画像処理方法であって、
前記第１画像の積分画像である第１積分画像と前記第１画像を縮小した第２画像の積分画像に対応する第２積分画像とを、前記第１画像のデータ幅で表される最大値と前記第１画像の画素数との積を表すのに必要なデータ幅より小さいデータ幅で生成し、
前記所定領域の画素値の合計のうち、前記第１積分画像のデータ幅で表される下位桁の値を、前記第１積分画像を用いて算出し、前記下位桁より大きい上位桁の値を、前記第２積分画像を用いて算出すること
を特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および画像処理方法に関する。
【背景技術】
【０００２】
画像処理装置は、顔認識等の画像認識処理を実行する。画像認識処理では、例えば、画面内の特徴量を抽出し、抽出した特徴量とデータベースとの比較結果に基づいて画像を認識する（例えば、特許文献１参照。）。例えば、Haar-like特徴量を画面内の特徴量として利用する顔検出処理が提案されている（例えば、非特許文献１参照。）。
【０００３】
Haar-like特徴では、例えば、互いに隣接する矩形領域の平均輝度の差分を特徴量とする。例えば、Haar-like特徴量は、第１矩形領域の画素値（例えば、輝度を示す値）の合計と第１矩形領域に隣接する第２矩形領域の画素値の合計との差分を算出することにより抽出される。
【０００４】
各矩形領域の画素値の合計は、積分画像を用いることにより、簡易に計算される。積分画像内の各点の値は、例えば、積分画像の元になる画像（以下、元画像とも称する）内の左上隅から各点までの画素値を積算した値である。このため、積分画像内の各点の値は、右下にいくほど大きくなる。したがって、積分画像内の右下隅の値が最大である。
【０００５】
例えば、積分画像の各点のビット数は、積分画像内の右下隅の最大値を表すのに必要なビット数に設定される。積分画像内の右下隅の最大値を表すのに必要なビット数を確保した構成では、積分画像のデータサイズが大きくなり、積分画像を記憶するメモリのサイズが増加する。また、積分画像のビット数が演算器のビット数（データ幅）より大きい場合、計算の効率が悪くなる。
【０００６】
近年、積分画像の各点のデータ幅を小さくして、顔検出を実行する技術が提案されている（例えば、非特許文献２参照。）。この種の方法では、元画像内の左上隅から各点までの画素値を積算した値の上位桁あるいは下位桁が切り落とされる。例えば、元画像内の左上隅から各点までの画素値を積算した値の上位桁のみが、積分画像の各点の値としてメモリ等に記憶される。切り捨てられた下位桁の情報（値）は、例えば、周囲の画素に分配される。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−１０２７９２号公報
【非特許文献】
【０００８】
【非特許文献１】Paul Viola and Michael J. Jones, “Rapid Object Detection using a Boosted Cascade of Simple Features,” IEEE CVPR, 2001.
【非特許文献２】H.J.W. Belt, “Word length reduction for the integral image,” IEEE International Conference on Image Processing (ICIP) 2008, pp.805-808, 2008.
【発明の概要】
【発明が解決しようとする課題】
【０００９】
元画像内の左上隅から各点までの画素値を積算した値の下位桁を切り捨てる方法では、各矩形領域の画素値の合計の算出結果に誤差が含まれるおそれがある。また、例えば、元画像内の左上隅から各点までの画素値を積算した値の上位桁を切り捨てる方法では、特徴量を抽出する際の矩形領域の大きさが制限される。
【００１０】
１つの側面では、本発明の目的は、積分画像のデータサイズの増加を抑制しつつ、所定の矩形領域の画素値の合計を算出することである。
【課題を解決するための手段】
【００１１】
本発明の一形態では、画像処理装置は、第１画像の積分画像である第１積分画像と第１画像を縮小した第２画像の積分画像に対応する第２積分画像とを、第１画像のデータ幅で表される最大値と第１画像の画素数との積を表すのに必要なデータ幅より小さいデータ幅で生成する積分画像生成部と、第１画像内の所定領域の画素値の合計のうち、第１積分画像のデータ幅で表される下位桁の値を、第１積分画像を用いて算出し、下位桁より大きい上位桁の値を、第２積分画像を用いて算出する算出部とを有している。
【発明の効果】
【００１２】
積分画像のデータサイズの増加を抑制しつつ、所定の矩形領域の画素値の合計を算出できる。
【図面の簡単な説明】
【００１３】
【図１】一実施形態における画像処理装置の例を示している。
【図２】入力画像と積分画像との関係の一例を示している。
【図３】入力画像と縮小積分画像との関係の一例を示している。
【図４】矩形領域の画素合計値を積分画像に基づいて算出する方法の概要を示している。
【図５】各領域の画素合計値の計算結果の一例を示している。
【図６】画素合計値の算出対象の領域と積分画像との関係の一例を示している。
【図７】縮小積分画像を用いて画素合計値が計算される領域と周辺領域との関係の一例を示している。
【図８】図７に示した各領域の条件の一例を示している。
【図９】図７に示した各領域の画素合計値の関係の一例を示している。
【図１０】図１に示した画像処理装置の動作の一例を示している。
【図１１】図１０に示した分割処理の一例を示している。
【図１２】縮小積分画像を用いて画素合計値が計算される領域と周辺領域との関係の別の例を示している。
【図１３】図１２に示した各領域と縮小積分画像との関係の一例を示している。
【図１４】図１２および図１３に示した各領域の画素合計値の関係の一例を示している。
【図１５】図１２に示した各領域の画素合計値の関係の一例を示している。
【発明を実施するための形態】
【００１４】
以下、実施形態を図面を用いて説明する。
【００１５】
図１は、一実施形態における画像処理装置１０の例を示している。画像処理装置１０は、例えば、メモリＭＥＭに接続され、顔認識等の画像認識処理を実行する。例えば、画像処理装置１０は、積分画像ＩＩＭＧ（ＩＩＭＧＯ、ＩＩＭＧＲ）を用いて、入力画像ＯＩＭＧ内の特徴量を算出する。そして、画像処理装置１０は、算出した特徴量に基づいて、画像認識処理を実行する。
【００１６】
入力画像ＯＩＭＧは、例えば、輝度等を示す画素値を画素毎に有している。積分画像ＩＩＭＧは、積分画像ＩＩＭＧの元になる画像（例えば、入力画像ＯＩＭＧ）内の左上隅から各画素までの画素値を積算した値を、有している。積分画像ＩＩＭＧの各要素の位置は、例えば、積分画像ＩＩＭＧの元になる画像（例えば、入力画像ＯＩＭＧ）の各画素の位置に対応している。以下、積分画像（積分画像ＩＩＭＧＯ、ＩＩＭＧＲ等）の各要素の値を要素値とも称する。
【００１７】
画像処理装置１０は、例えば、積分画像生成部２０および算出部３０を有している。積分画像生成部２０は、例えば、入力画像ＯＩＭＧの積分画像である第１積分画像ＩＩＭＧＯと、入力画像ＯＩＭＧを縮小した縮小画像の積分画像に対応する縮小積分画像ＩＩＭＧＲとを生成する。例えば、積分画像生成部２０は、メモリＭＥＭを介して、入力画像ＯＩＭＧを受ける。また、例えば、積分画像生成部２０は、第１積分画像ＩＩＭＧＯおよび縮小積分画像ＩＩＭＧＲをメモリＭＥＭに記憶する。
【００１８】
なお、第１積分画像ＩＩＭＧＯおよび縮小積分画像ＩＩＭＧＲのデータ幅（各要素値のビット数）は、入力画像ＯＩＭＧのデータ幅（各画素値のビット数）で表される最大値と入力画像ＯＩＭＧの画素数との積を表すのに必要なデータ幅（ビット数）より小さい。すなわち、積分画像生成部２０は、第１積分画像ＩＩＭＧＯおよび縮小積分画像ＩＩＭＧＲを、入力画像ＯＩＭＧのデータ幅で表される最大値と入力画像ＯＩＭＧの画素数との積を表すのに必要なデータ幅より小さいデータ幅で生成する。
【００１９】
例えば、積分画像生成部２０は、第１積分画像ＩＩＭＧＯおよび縮小積分画像ＩＩＭＧＲを生成する際に発生する桁あふれを無視する。これにより、この実施形態では、桁あふれが発生しないように積分画像のデータ幅を確保する構成に比べて、積分画像のデータサイズを低減できる。すなわち、この実施形態では、積分画像のデータサイズの増加を抑制できる。
【００２０】
算出部３０は、入力画像ＯＩＭＧ内の所定領域の画素値の合計を、第１積分画像ＩＩＭＧＯおよび縮小積分画像ＩＩＭＧＲに基づいて算出する。例えば、算出部３０は、入力画像ＯＩＭＧ内の所定領域の画素値の合計のうち、第１積分画像ＩＩＭＧＯのデータ幅で表される下位桁の値を、第１積分画像ＩＩＭＧＯを用いて算出し、下位桁より大きい上位桁の値を、縮小積分画像ＩＩＭＧＲを用いて算出する。例えば、所定領域の画素値の合計は、所定領域内の全ての画素の画素値の総和である。以下、領域の画素値の合計を領域の画素合計値とも称する。なお、所定領域は、例えば、特徴量の算出対象の領域（以下、対象領域とも称する）を分割した領域である。
【００２１】
例えば、画像処理装置１０は、特徴量の算出対象の領域を分割した各領域の画素合計値に基づいて、対象領域のHaar-like特徴量を抽出する。Haar-like特徴では、例えば、互いに隣接する矩形領域の平均輝度の差分を特徴量とする。例えば、Haar-like特徴量は、第１矩形領域の画素合計値と第１矩形領域に隣接する第２矩形領域の画素合計値との差分を算出することにより抽出される。なお、画像処理装置１０は、例えば、様々な形状およびサイズのHaar-like特徴量を抽出する。
【００２２】
また、画像処理装置１０は、抽出したHaar-like特徴量に基づいて、顔認識等の画像認識処理を実行する。例えば、画像処理装置１０は、抽出したHaar-like特徴量とメモリＭＥＭ等に記憶されているデータベースＤＢとの比較結果に基づいて画像を認識する。画像認識処理の結果ＪＲＥＳ（以下、判定結果ＪＲＥＳとも称する）は、例えば、メモリＭＥＭに記憶される。
【００２３】
なお、画像処理装置１０の構成は、この例に限定されない。例えば、画像処理装置１０は、メモリＭＥＭを有してもよい。また、例えば、画像処理装置１０は、入力画像ＯＩＭＧの縮小画像を生成する縮小画像生成部を有してもよい。
【００２４】
図２は、入力画像ＯＩＭＧと積分画像ＩＩＭＧＯとの関係の一例を示している。なお、図２では、各要素値のビット数（各位置のデータ幅）に制限がある積分画像ＩＩＭＧＯの比較例として、各要素値のビット数に制限がない積分画像ＩＩＭＧｃｅｘを括弧内に示している。積分画像ＩＩＭＧＯの各要素値のビット数は、例えば、入力画像ＯＩＭＧの各画素値のビット数より多く、入力画像ＯＩＭＧの各画素値のビット数で表される最大値と入力画像ＯＩＭＧの画素数との積を表すのに必要なビット数より少ない。図２の例では、入力画像ＯＩＭＧの各画素値のビット数は５ビットであり、積分画像ＩＩＭＧＯの各要素値のビット数は８ビットである。すなわち、入力画像ＯＩＭＧの各画素値は、０以上３１以下であり、積分画像ＩＩＭＧＯの各要素値は、０以上２５５以下である。なお、比較例の積分画像ＩＩＭＧｃｅｘでは、各要素値の上限は設定されていない。
【００２５】
図２の入力画像ＯＩＭＧの各画素の括弧内の数字は、画素値の一例を示している。同様に、積分画像ＩＩＭＧＯ、ＩＩＭＧｃｅｘの各要素の括弧内の数字は、入力画像ＯＩＭＧ内の左上隅の画素から各要素に対応する位置の画素までの画素値を積算した値を示している。なお、図の白および黒の星印は、積算結果が２５６以上になる要素を示している。そして、黒い星印の要素の括弧内の数字は、桁あふれを無視した積算結果を示している。
【００２６】
また、図２では、画像ＯＩＭＧ、ＩＩＭＧＯ、ＩＩＭＧｃｅｘ内の各位置を、Ｘ方向およびＹ方向の位置を示す座標を用いて表現する。例えば、入力画像ＯＩＭＧ内の左上隅の画素を座標（１，１）の画素とも称し、積分画像ＩＩＭＧＯ内の左上隅の要素を座標（１，１）の要素とも称する。積分画像ＩＩＭＧＯ、ＩＩＭＧｃｅｘの各要素の位置は、入力画像ＯＩＭＧの各画素の位置に対応している。以下、積分画像（例えば、積分画像ＩＩＭＧＯ）内の領域に、積分画像の元の画像（例えば、入力画像ＯＩＭＧ）内の対応する領域と同じ符号を使用するときもある。
【００２７】
積分画像ＩＩＭＧＯ、ＩＩＭＧｃｅｘの各要素値は、入力画像ＯＩＭＧ内の座標（１，１）の画素から各画素までの画素値を積算した値である。例えば、積分画像ＩＩＭＧＯ、ＩＩＭＧｃｅｘの座標（３，２）の要素値は、入力画像ＯＩＭＧの座標（１，１）、（２，１）、（３，１）、（１，２）、（２，２）、（３，２）の画素値を積算した値（＝９１＝８＋１３＋２８＋６＋１０＋２６）である。すなわち、積分画像ＩＩＭＧＯ、ＩＩＭＧｃｅｘの座標（ｍ，ｎ）の要素値Ｉ（ｍ，ｎ）は、座標（ｘ，ｙ）の画素値Ｄ（ｘ，ｙ）を用いて、式（１）で表される。
【００２８】
【数１】
2014078189.tif 000003
【００２９】
あるいは、積分画像ＩＩＭＧＯ、ＩＩＭＧｃｅｘの座標（ｍ，ｎ）の要素値Ｉ（ｍ，ｎ）は、画素値Ｄ（ｍ，ｎ）を用いて、式（２）で表される。
【００３０】
【数２】
2014078189.tif 000004
【００３１】
なお、この実施形態では、積分画像生成部２０は、積分画像ＩＩＭＧＯを生成する際に、桁あふれを考慮しない。このため、図２の例では、積分画像ＩＩＭＧＯの各要素値は、式（１）等の演算結果の下位８ビットの値である。例えば、各要素値のビット数に制限がない積分画像ＩＩＭＧｃｅｘでは、座標（５，３）の要素値は、２６５である。これに対し、各要素値のビット数が８ビットに制限される積分画像ＩＩＭＧＯでは、座標（５，３）の要素値は、９（＝２６５−２５６）である。
【００３２】
このように、第１積積分画像ＩＩＭＧＯでは、各位置（各要素）の値のビット数は、入力画像ＯＩＭＧの各画素値のビット数で表される最大値と入力画像ＯＩＭＧの画素数との積を表すのに必要なビット数より少ない。例えば、入力画像ＯＩＭＧの各画素値のビット数が５ビットで、入力画像ＯＩＭＧのサイズが６４０×４８０のＶＧＡサイズの場合、積分画像ＩＩＭＧｃｅｘの最大値は、９５２３２００（＝３１×６４０×４８０）である。すなわち、積分画像ＩＩＭＧｃｅｘの各画素値のビット数は、２４ビット（“ｌｏｇ２（６４０×４８０）＋５”ビット以上）必要である。また、例えば、入力画像ＯＩＭＧの各画素値のビット数が８ビットの場合、積分画像ＩＩＭＧｃｅｘの各画素値のビット数は、２７ビット（“ｌｏｇ２（６４０×４８０）＋８”ビット以上）必要である。
【００３３】
専用回路以外では、１７ビット以上のビット数のデータは、３２ビットデータとして扱われることが多い。すなわち、桁あふれを発生させないようにした積分画像（例えば、積分画像ＩＩＭＧｃｅｘ）では、データサイズは、増加する。例えば、入力画像ＯＩＭＧの各画素値のビット数が８ビットの場合、積分画像ＩＩＭＧｃｅｘのデータサイズは、入力画像ＯＩＭＧのデータサイズの約４倍である。したがって、積分画像ＩＩＭＧｃｅｘ等を記憶するメモリの容量は、入力画像ＯＩＭＧのデータサイズの約４倍必要である。また、例えば、ＤＳＰ（Digital Signal Processor）の演算器が１６ビットの場合、３２ビットデータの積分画像を用いる計算の効率は、１６ビットデータの積分画像を用いる計算の効率に比べて、低下する。
【００３４】
これに対し、この実施形態では、積分画像ＩＩＭＧＯの各要素値のビット数を所定のビット数に制限できるため、積分画像ＩＩＭＧＯのデータサイズが増加することを抑制できる。例えば、この実施形態では、積分画像ＩＩＭＧＯの各要素値のビット数を１６ビットに制限できる。入力画像ＯＩＭＧの各画素値のビット数が８ビットの場合、例えば、各要素値のビット数を１６ビットに制限した積分画像ＩＩＭＧＯのデータサイズは、入力画像ＯＩＭＧのデータサイズの約２倍であり、積分画像ＩＩＭＧｃｅｘのデータサイズの約１／２倍である。したがって、積分画像ＩＩＭＧＯ等を記憶するメモリの容量は、積分画像ＩＩＭＧｃｅｘを記憶するのに必要な容量の約１／２倍である。
【００３５】
また、この実施形態では、積分画像ＩＩＭＧＯの各要素値のビット数をＤＳＰ等のビット数に応じたビット数に制限できるため、ＤＳＰ等による計算の効率が低下することを抑制できる。
【００３６】
図３は、入力画像ＯＩＭＧと縮小積分画像ＩＩＭＧＲとの関係の一例を示している。なお、図３では、入力画像ＯＩＭＧを１／４（Ｘ、Ｙ方向にそれぞれ１／２倍）に縮小した縮小画像ＲＩＭＧを括弧内に示している。図３の縮小積分画像ＩＩＭＧＲは、入力画像ＯＩＭＧを１／４に縮小した縮小画像ＲＩＭＧの積分画像に対応している。縮小積分画像ＩＩＭＧＲの各要素値のビット数は、例えば、入力画像ＯＩＭＧの各画素値のビット数より多く、入力画像ＯＩＭＧの各画素値のビット数で表される最大値と入力画像ＯＩＭＧの画素数との積を表すのに必要なビット数より少ない。図３の例では、入力画像ＯＩＭＧの各画素値のビット数は５ビットであり、縮小積分画像ＩＩＭＧＲの各要素値のビット数は８ビットである。また、図の画像ＯＩＭＧ、ＲＩＭＧ、ＩＩＭＧＲの括弧内の数字の意味は、図２と同様である。
【００３７】
縮小積分画像ＩＩＭＧＲの各要素値は、縮小画像ＲＩＭＧ内の座標（１、１）の画素から各画素までの画素値を積算した値に対応している。例えば、縮小積分画像ＩＩＭＧＲの座標（３，２）の要素値は、縮小画像ＲＩＭＧの座標（１，１）、（２，１）、（３，１）、（１，２）、（２，２）、（３，２）の画素値を積算した値（＝１２０＝９＋２８＋２０＋１２＋３０＋２１）である。
【００３８】
すなわち、縮小積分画像ＩＩＭＧＲの座標（ｍ，ｎ）の要素値Ｉ（ｍ，ｎ）は、縮小画像ＲＩＭＧの座標（ｍ，ｎ）の画素値Ｄ（ｍ，ｎ）を用いて、上述した式（１）、（２）で表される。例えば、画像処理装置１０は、縮小画像ＲＩＭＧを生成し、生成した縮小画像ＲＩＭＧをメモリＭＥＭ等に記憶する。そして、画像処理装置１０は、メモリＭＥＭ等に記憶した縮小画像ＲＩＭＧに基づいて縮小積分画像ＩＩＭＧＲを生成する。例えば、縮小画像ＲＩＭＧの各画素値のビット数は、入力画像ＯＩＭＧの各画素値のビット数と同じである。なお、縮小画像ＲＩＭＧの各画素値のビット数は、入力画像ＯＩＭＧの各画素値のビット数と異なっていてもよい。
【００３９】
また、画像処理装置１０は、縮小画像ＲＩＭＧを生成せずに、縮小積分画像ＩＩＭＧＲを生成してもよい。この場合、縮小画像ＲＩＭＧをメモリＭＥＭ等に記憶する場合に比べて、メモリＭＥＭ等の容量を低減できる。例えば、積分画像生成部２０は、縮小積分画像ＩＩＭＧＲの座標（ｍ，ｎ）の要素値Ｉ（ｍ，ｎ）を計算する際に、縮小画像ＲＩＭＧの座標（ｍ，ｎ）に対応する画素値Ｄ（ｍ，ｎ）を、入力画像ＯＩＭＧ（元の画像）に基づいて算出する。例えば、入力画像ＯＩＭＧをＸ、Ｙ方向にそれぞれ１／２倍した画像ＲＩＭＧの座標（ｍ，ｎ）に対応する画素値Ｄ（ｍ，ｎ）は、入力画像ＯＩＭＧ（元の画像）の座標（ｘ，ｙ）の画素値Ｄｏ（ｘ，ｙ）を用いて、式（３）で表される。
【００４０】
【数３】
2014078189.tif 000005
【００４１】
あるいは、積分画像生成部２０は、縮小画像ＲＩＭＧの座標（ｍ，ｎ）に対応する画素値Ｄ（ｍ，ｎ）を、第１積分画像ＩＩＭＧＯ（元の画像ＯＩＭＧの積分画像）の要素値に基づいて算出してもよい。例えば、入力画像ＯＩＭＧをＸ、Ｙ方向にそれぞれ１／２倍した画像ＲＩＭＧの座標（ｍ，ｎ）に対応する画素値Ｄ（ｍ，ｎ）は、第１積分画像ＩＩＭＧＯの座標（ｘ，ｙ）の要素値Ｉｏ（ｘ，ｙ）を用いて、式（４）で表される。
【００４２】
【数４】
2014078189.tif 000006
【００４３】
式（３）、式（４）等を用いた場合、４で割った分の誤差（切り捨した分の誤差）が、画像右下にいくほど蓄積されるおそれがある。したがって、積分画像生成部２０は、誤差分散法を用いてもよい。これにより、式（３）、式（４）等を用いた場合にも、縮小積分画像ＩＩＭＧＲ全体の誤差を小さくできる。
【００４４】
図４は、矩形領域の画素合計値を積分画像に基づいて算出する方法の概要を示している。なお、図４は、矩形領域ＡＲ１０の画素合計値Ｓを積分画像ＩＩＭＧｃｅｘを用いて算出する方法の一例（図４の（ａ））と、矩形領域ＡＲ１０の画素合計値Ｓを積分画像ＩＩＭＧＯを用いて算出する方法の一例（図４の（ｂ））とを示している。入力画像ＯＩＭＧ内の任意のサイズの矩形領域の画素合計値は、積分画像（例えば、積分画像ＩＩＭＧｃｅｘ）の４点のデータ（要素値）の加減算を実行することにより算出される。
【００４５】
図の備考欄には、矩形領域ＡＲ１０の画素合計値Ｓの算出に使用される各要素値ＩＡ、ＩＢ、ＩＣ、ＩＤと入力画像ＯＩＭＧ内の各領域ＡＲＡ、ＡＲＢ、ＡＲＣ、ＡＲＤとの対応を示している。要素値ＩＡは、矩形領域ＡＲ１０の左上隅（座標（２，３））の左上の位置（座標（１，２））の要素値であり、領域ＡＲＡの画素値の合計である。要素値ＩＢは、矩形領域ＡＲ１０の右上隅（座標（５，３））の上の位置（座標（５，２））の要素値であり、領域ＡＲＢの画素値の合計である。要素値ＩＣは、矩形領域ＡＲ１０の左下隅（座標（２，４））の左の位置（座標（１，４））の要素値であり、領域ＡＲＣの画素値の合計である。要素値ＩＤは、矩形領域ＡＲ１０の右下隅（座標（５，４））の要素値であり、領域ＡＲＤの画素値の合計である。なお、領域ＡＲＡは、領域ＡＲＢと領域ＡＲＣとの重複部分である。
【００４６】
例えば、矩形領域ＡＲ１０の画素合計値Ｓは、積分画像ＩＩＭＧｃｅｘの要素値ＩＡ、ＩＢ、ＩＣ、ＩＤを用いて、式（５）で表される。
【００４７】
【数５】
2014078189.tif 000007
【００４８】
なお、各要素値のビット数がｂｔビットに制限された積分画像ＩＩＭＧＯの要素値ＩＡ、ＩＢ、ＩＣ、ＩＤを用いた場合、矩形領域ＡＲ１０の画素合計値Ｓは、式（６）で表される。
【００４９】
【数６】
2014078189.tif 000008
【００５０】
式（６）のｍｏｄは剰余演算子であり、＾はべき乗演算子である。また、式（６）のＳｍは、最下位ビットを０ビット目とした場合、画素合計値Ｓのｂｔビット目以上の桁（上位桁）の値である。すなわち、値Ｓｍは、画素合計値Ｓをｂｔビット右にシフトさせた値である。画素合計値Ｓのうちの上位桁の値Ｓｍは、積分画像ＩＩＭＧＯおよび縮小積分画像ＩＩＭＧＲを用いて算出される。なお、画素合計値Ｓのうちの下位桁（“ｂｔ−１”ビット目まで）の値は、式（６）の右辺第１項により算出される。以下、他の式等においても、剰余演算子として“ｍｏｄ”を用い、べき乗演算子として“＾”を用いる。
【００５１】
桁あふれを考慮したときの画素合計値Ｓ（例えば、式（５）の計算結果）が２＾ｂｔより小さい場合、画素合計値Ｓのうちの上位桁の値Ｓｍは、０である。したがって、桁あふれを考慮したときの画素合計値Ｓが２＾ｂｔより小さい領域では、画素合計値Ｓは、積分画像ＩＩＭＧＯに基づいて正確に算出される。
【００５２】
例えば、画素合計値Ｓが２＾ｂｔより小さいとき、式（７）が成立する。
【００５３】
【数７】
2014078189.tif 000009
【００５４】
式（５）より、式（７）は、例えば、積分画像ＩＩＭＧｃｅｘの要素値ＩＡ、ＩＢ、ＩＣ、ＩＤを用いて、式（８）で表される。
【００５５】
【数８】
2014078189.tif 000010
【００５６】
また、式（８）は、ビットごとの論理積を示すビット演算子＆を用いて、式（９）で表される。以下、他の式等においても、ビットごとの論理積を示すビット演算子として“＆”を用いる。
【００５７】
【数９】
2014078189.tif 000011
【００５８】
式（８）および式（９）は、ｂｔビット目以上の上位桁が考慮されないことを示している。したがって、ｂｔビットに制限された要素値ＩＡ、ＩＢ、ＩＣ、ＩＤを用いた式（９）の計算結果は、ビット数の制限がない要素値ＩＡ、ＩＢ、ＩＣ、ＩＤを用いた式（９）の計算結果と同じである。すなわち、画素合計値Ｓが２＾ｂｔより小さいときには、積分画像ＩＩＭＧＯの要素値ＩＡ、ＩＢ、ＩＣ、ＩＤを用いても、式（８）および式（９）が成立する。例えば、式（８）は、画素合計値Ｓのｂｔビット目以上の上位桁の値Ｓｍが０のときの式（６）に対応している。
【００５９】
したがって、画素合計値Ｓが２＾ｂｔより小さいときには、画素合計値Ｓは、積分画像ＩＩＭＧＯの要素値ＩＡ、ＩＢ、ＩＣ、ＩＤを用いて、式（８）および式（９）で表される。なお、画素合計値Ｓが２＾ｂｔ以上のときには、式（８）および式（９）の計算結果は、画素合計値Ｓのうちの下位桁（“ｂｔ−１”ビット目まで）の値に対応している。
【００６０】
このように、画素合計値Ｓが２＾ｂｔより小さいときには、縮小積分画像ＩＩＭＧＲを用いなくても、画素合計値Ｓは、積分画像ＩＩＭＧＯに基づいて正確に算出される。例えば、積分画像ＩＩＭＧＯの各要素値のビット数ｂｔが１６ビットの場合、式（９）は、式（１０）で表される。なお、式（１０）の０ｘは、１６進数を示している。
【００６１】
【数１０】
2014078189.tif 000012
【００６２】
さらに、式（１０）は、式（１１）に変形される。
【００６３】
【数１１】
2014078189.tif 000013
【００６４】
式（１１）は、１６ビットの要素値ＩＡ、ＩＢ、ＩＣ、ＩＤを用いて、画素合計値Ｓが算出されることを示している。したがって、例えば、積分画像ＩＩＭＧＯの各要素値のビット数ｂｔが１６ビットの場合、画素合計値Ｓが２＾１６より小さいときには、縮小積分画像ＩＩＭＧＲを用いなくても、画素合計値Ｓは、積分画像ＩＩＭＧＯに基づいて正確に算出される。
【００６５】
図５は、各領域ＡＲ１０、ＡＲ２０の画素合計値の計算結果の一例を示している。なお、図５では、各要素値のビット数に制限がない積分画像ＩＩＭＧｃｅｘを用いたときの計算結果を比較例として示している。図５の例では、積分画像ＩＩＭＧＯの各要素値のビット数ｂｔは８ビットである。積分画像ＩＩＭＧＯ、ＩＩＭＧｃｅｘの各要素の括弧内の数字は、要素値を示している。また、図の星印の意味は、図２の星印の意味と同じである。
【００６６】
桁あふれを考慮したときの画素合計値Ｓが２＾８より小さい領域ＡＲ１０では、画素合計値Ｓは、積分画像ＩＩＭＧＯに基づいて正確に算出される。例えば、領域ＡＲ１０の画素合計値Ｓは、積分画像ＩＩＭＧＯの要素値Ｉ（１，２）、Ｉ（５，２）、Ｉ（１，４）、Ｉ（５，４）を式（８）の要素値ＩＡ、ＩＢ、ＩＣ、ＩＤに代入することにより算出される。例えば、積分画像ＩＩＭＧＯを用いた場合、式（８）の要素値ＩＡ、ＩＢ、ＩＣ、ＩＤに、１４、１７２、３３、１０９がそれぞれ代入される。式（８）より、領域ＡＲ１０の画素合計値Ｓは、１７４である。
【００６７】
また、各要素値のビット数に制限がない積分画像ＩＩＭＧｃｅｘを用いた場合、積分画像ＩＩＭＧｃｅｘの要素値Ｉ（１，２）、Ｉ（５，２）、Ｉ（１，４）、Ｉ（５，４）である１４、１７２、３３、３６５が、式（５）の要素値ＩＡ、ＩＢ、ＩＣ、ＩＤにそれぞれ代入される。式（５）より、領域ＡＲ１０の画素合計値Ｓは、１７４である。このように、領域ＡＲ１０では、積分画像ＩＩＭＧＯを用いた計算結果（画素合計値Ｓ）は、積分画像ＩＩＭＧｃｅｘを用いた結果（画素合計値Ｓ）と同じである。
【００６８】
なお、桁あふれを考慮したときの画素合計値Ｓが２＾８以上の領域ＡＲ２０では、画素合計値Ｓの下位８ビットの値（Ｓ［７：０］）が積分画像ＩＩＭＧＯに基づいて算出される。例えば、領域ＡＲ２０の画素合計値Ｓの下位８ビットの値は、積分画像ＩＩＭＧＯの要素値Ｉ（１，１）、Ｉ（６，１）、Ｉ（１，４）、Ｉ（６，４）を式（８）の要素値ＩＡ、ＩＢ、ＩＣ、ＩＤに代入することにより算出される。例えば、積分画像ＩＩＭＧＯを用いた場合、式（８）の要素値ＩＡ、ＩＢ、ＩＣ、ＩＤに、８、１２０、３３、２２５がそれぞれ代入される。式（８）より、領域ＡＲ２０の画素合計値Ｓの下位８ビットの値は、８０である。
【００６９】
一方、積分画像ＩＩＭＧｃｅｘを用いた場合、８ビット目以上の上位桁も含む画素合計値Ｓが算出される。例えば、積分画像ＩＩＭＧｃｅｘの要素値Ｉ（１，１）、Ｉ（６，１）、Ｉ（１，４）、Ｉ（６，４）である８、１２０、３３、４８１が、式（５）の要素値ＩＡ、ＩＢ、ＩＣ、ＩＤにそれぞれ代入される。式（５）より、領域ＡＲ２０の画素合計値Ｓは、３３６である。なお、３３６を２進数で表したときの下位８ビットの値は、８０であり、積分画像ＩＩＭＧＯを用いて算出した画素合計値Ｓの下位８ビットの値と同じである。
【００７０】
このように、画素合計値Ｓが２＾８以上の領域ＡＲ２０では、積分画像ＩＩＭＧＯ要素値ＩＡ、ＩＢ、ＩＣ、ＩＤを式（８）の要素値ＩＡ、ＩＢ、ＩＣ、ＩＤに代入しても、画素合計値Ｓは、算出されない。本発明の検討過程で考えられた方法の１つでは、領域ＡＲ２０を、画素合計値Ｓが２＾８より小さくなる領域に分割する。この方法では、分割領域（領域ＡＲ２０を分割した領域）毎に画素合計値を計算した後に、分割領域の画素合計値の総和を計算する。なお、画素合計値Ｓの算出対象の領域を単に分割するだけでは、画素合計値Ｓの算出対象の領域が大きい場合、分割領域の数が増加する。この場合、画素合計値Ｓを算出するための処理等が煩雑になるおそれがある。このため、この実施形態では、画素合計値Ｓのうちの上位桁の値を、積分画像ＩＩＭＧＯおよび縮小積分画像ＩＩＭＧＲを用いて算出する。
【００７１】
図６は、画素合計値の算出対象の領域と積分画像との関係の一例を示している。画素合計値の算出対象の領域ＡＲ３０のサイズは、４０×４０画素である。また、領域ＡＲ３０の左上隅は、座標（２，２）である。第１積分画像ＩＩＭＧＯの各要素の位置は、入力画像ＯＩＭＧの各画素の位置に対応している。このため、第１積分画像ＩＩＭＧＯの領域ＡＲ３０内の各要素は、入力画像ＯＩＭＧの領域ＡＲ３０の各画素に対応している。
【００７２】
縮小積分画像ＩＩＭＧＲは、入力画像ＯＩＭＧを１／４（Ｘ、Ｙ方向にそれぞれ１／２倍）に縮小した縮小画像の積分画像である。例えば、縮小積分画像ＩＩＭＧＲは、入力画像ＯＩＭＧの４画素（２×２画素）を１単位にした積分画像（粒度の粗い積分画像）として考えることができる。縮小積分画像ＩＩＭＧＲの各要素の位置は、入力画像ＯＩＭＧを１／４に縮小した縮小画像の各画素の位置に対応している。
【００７３】
縮小積分画像ＩＩＭＧＲに示した範囲ＡＲ３０ｒは、第１積分画像ＩＩＭＧＯの領域ＡＲ３０に対応する範囲である。範囲ＡＲ３０ｒのサイズは、縮小画像換算で２０×２０画素である。また、例えば、入力画像ＯＩＭＧの領域ＡＲ３０の左上隅の画素（座標（２，２）の画素）は、領域ＡＲ３０以外の画素（座標（１，１）、（１，２）、（１，３）の画素）を含んで縮小画像の１画素に換算される。このため、範囲ＡＲ３０ｒの境界は、縮小積分画像ＩＩＭＧＲの要素の境界と一致していない。
【００７４】
以下、着目する領域（例えば、画素合計値の算出対象の領域）のうち、着目する領域以外の画素を含んで縮小画像の１画素に換算される領域を、周辺領域とも称する。また、着目する領域（例えば、画素合計値の算出対象の領域）のうち、周辺領域を除いた領域をベース領域とも称する。すなわち、ベース領域は、着目する領域のうち、着目する領域以外の画素を含まずに、縮小画像の１画素に換算される領域である。
【００７５】
図７は、縮小積分画像ＩＩＭＧＲを用いて画素合計値が計算される領域と周辺領域との関係の一例を示している。第１積分画像ＩＩＭＧＯ、縮小積分画像ＩＩＭＧＲ、領域ＡＲ３０等は、図６に示した第１積分画像ＩＩＭＧＯ、縮小積分画像ＩＩＭＧＲ、領域ＡＲ３０等と同様である。図７では、要素の境界に一致していない範囲ＡＲ３０ｒの境界を破線で示している。領域ＡＲ３０は、例えば、画素合計値の算出対象の領域であり、第１積分画像ＩＩＭＧＯや入力画像ＯＩＭＧ内の領域である。範囲ＡＲ３０ｒは、縮小積分画像ＩＩＭＧＲや縮小画像内の範囲であり、領域ＡＲ３０に対応する範囲である。
【００７６】
領域ＡＲ３０は、周辺領域ＡＲ３１（相対的に薄い網掛け部分）およびベース領域ＡＲ３２（相対的に濃い網掛け部分）を有している。周辺領域ＡＲ３１は、領域ＡＲ３０からベース領域ＡＲ３２を除いた領域である。例えば、周辺領域ＡＲ３１は、領域ＡＲ３０のうち、縮小積分画像ＩＩＭＧＲに対応する縮小画像の１画素に、領域ＡＲ３０以外の画素を含んで換算される領域である。
【００７７】
領域ＡＲ３２は、領域ＡＲ３０のうち、縮小積分画像ＩＩＭＧＲに対応する縮小画像の１画素に、領域ＡＲ３０以外の画素を含まずに換算される領域である。すなわち、領域ＡＲ３２は、縮小積分画像ＩＩＭＧＲを用いて画素合計値が計算される領域ＡＲ３２ｒに対応している。例えば、領域ＡＲ３２のサイズは、領域ＡＲ３２ｒの４倍（Ｘ、Ｙ方向にそれぞれ２倍）であり、領域ＡＲ３２の４隅の座標は、座標（３，３）、（４０，３）、（３，４０）、（４０，４０）である。図７の例では、領域ＡＲ３２の画素合計値は、領域ＡＲ３２ｒの画素合計値の約４倍である。
【００７８】
また、領域ＡＲ３０が領域ＡＲ３１と領域ＡＲ３２とを合わせた領域であるため、領域ＡＲ３０の画素合計値は、領域ＡＲ３１の画素合計値と領域ＡＲ３２の画素合計値とを加算することにより算出される。なお、領域ＡＲ３０の画素合計値のうちの下位桁（例えば、“ｂｔ−１”ビット目まで）の値は、要素値ＩＡ、ＩＢ、ＩＣ、ＩＤを、式（８）のＩＡ、ＩＢ、ＩＣ、ＩＤに代入して計算することにより算出される。要素値ＩＡは、領域ＡＲ３０の左上隅（座標（２，２））の左上の位置（座標（１，１））の要素値である。要素値ＩＢは、領域ＡＲ３０の右上隅（座標（４１，２））の上の位置（座標（４１，１））の要素値である。要素値ＩＣは、領域ＡＲ３０の左下隅（座標（２，４１））の左の位置（座標（１，４１））の要素値である。要素値ＩＤは、領域ＡＲ３０の右下隅（座標（４１，４１））の要素値である。
【００７９】
範囲ＡＲ３０ｒは、範囲ＡＲ３１ｒ（相対的に薄い網掛け部分）および領域ＡＲ３２ｒ（相対的に濃い網掛け部分）を有している。なお、範囲ＡＲ３０ｒ、範囲ＡＲ３１ｒおよび領域ＡＲ３２ｒは、領域ＡＲ３０、領域ＡＲ３１および領域ＡＲ３２を縮小した領域にそれぞれ対応している。例えば、範囲ＡＲ３１ｒは、範囲ＡＲ３０ｒから領域ＡＲ３２ｒを除いた範囲である。
【００８０】
領域ＡＲ３２ｒは、ベース領域ＡＲ３２を縮小画像に反映した領域である。例えば、領域ＡＲ３２ｒは、範囲ＡＲ３０ｒ内で要素の境界に一致する境界を有する最大の領域である。すなわち、領域ＡＲ３２ｒは、縮小積分画像ＩＩＭＧＲを用いて画素合計値が計算される領域である。例えば、領域ＡＲ３２ｒの画素合計値は、要素値ＩＥ、ＩＦ、ＩＧ、ＩＨを、式（８）のＩＡ、ＩＢ、ＩＣ、ＩＤに代入して計算することにより算出される。
【００８１】
要素値ＩＥは、領域ＡＲ３２ｒの左上隅（座標（２，２））の左上の位置（座標（１，１））の要素値である。要素値ＩＦは、領域ＡＲ３２ｒの右上隅（座標（２０，２））の上の位置（座標（２０，１））の要素値である。要素値ＩＧは、領域ＡＲ３２ｒの左下隅（座標（２，２０））の左の位置（座標（１，２０））の要素値である。要素値ＩＨは、領域ＡＲ３２ｒの右下隅（座標（２０，２０））の要素値である。
【００８２】
なお、縮小積分画像ＩＩＭＧＲに対応する縮小画像の縮小率は、１／４に限定されない。例えば、縮小率は、入力画像ＯＩＭＧ（元の画像）の辺が縮小画像の画素の境界に一致しないような縮小率でもよい。この場合でも、例えば、着目する領域（画素合計値の算出対象の領域）を周辺領域とベース領域とに分けることができるため、着目する領域の画素合計値を算出できる。例えば、縮小積分画像ＩＩＭＧＲを用いて画素合計値が計算される領域（ベース領域に対応する領域）は、着目する範囲（領域）内で縮小積分画像ＩＩＭＧＲの要素の境界に一致する境界を有する最大の領域である。
【００８３】
図８は、図７に示した各領域ＡＲ３１、ＡＲ３２ｒの条件の一例を示している。なお、図８は、図７に示した要素値ＩＡ、ＩＢ、ＩＣ、ＩＤ、ＩＥ、ＩＦ、ＩＧ、ＩＨを用いて領域ＡＲ３０の画素合計値を算出するための条件の一例を示している。
【００８４】
条件１は、周辺領域ＡＲ３１の条件である。例えば、条件１では、積分画像ＩＩＭＧＯ、ＩＩＭＧＲの各要素値のビット数ｂｔおよび入力画像ＯＩＭＧの各画素値のビット数ｂｉを用いたとき、領域ＡＲ３１の画素数Ｎ１は、２＾（ｂｔ−ｂｉ）以下である。すなわち、条件１では、領域ＡＲ３１の画素数Ｎ１は、積分画像ＩＩＭＧＯのデータ幅ｂｔから入力画像ＯＩＭＧのデータ幅ｂｉを引いた値“ｂｔ−ｂｉ”を用いたときに２の“ｂｔ−ｂｉ”乗で表される所定数以下である。例えば、入力画像ＯＩＭＧの各画素値のビット数ｂｉが８ビットで、積分画像ＩＩＭＧＯ、ＩＩＭＧＲの各要素値のビット数ｂｔが１６ビットの場合、画素数Ｎ１は、２５６（＝２＾８）以下である。
【００８５】
条件１を満たすことにより、領域ＡＲ３１の画素合計値を２＾ｂｔより小さくできる。例えば、領域ＡＲ３１内の画素値の最大値は、２＾ｂｉより小さい。したがって、領域ＡＲ３１の画素合計値は、２＾ｂｉ＊Ｎ１より小さい。また、画素数Ｎ１の最大値は２＾（ｂｔ−ｂｉ）である。したがって、領域ＡＲ３１の画素合計値は、２＾ｂｔより小さい。
【００８６】
条件２は、ベース領域ＡＲ３２に対応する領域ＡＲ３２ｒの条件である。例えば、条件２では、領域ＡＲ３２ｒの画素数Ｎ２（縮小画像に換算した画素数）は、２＾（ｂｔ−ｂｉ）以下である。すなわち、ベース領域ＡＲ３２を縮小画像に反映した領域ＡＲ３２ｒの画素数は、２＾（ｂｔ−ｂｉ）以下である。例えば、入力画像ＯＩＭＧの各画素値のビット数ｂｉが８ビットで、積分画像ＩＩＭＧＯ、ＩＩＭＧＲの各要素値のビット数ｂｔが１６ビットの場合、画素数Ｎ２は、２５６（＝２＾８）以下である。なお、条件２では、縮小積分画像ＩＩＭＧＲに着目した場合、領域ＡＲ３２ｒの要素数は、２＾（ｂｔ−ｂｉ）以下である。
【００８７】
条件２を満たすことにより、縮小画像換算で、領域ＡＲ３２ｒの画素合計値を２＾ｂｔより小さくできる。例えば、領域ＡＲ３２ｒ内の画素値の最大値（縮小画像換算）は、２＾ｂｉより小さい。したがって、領域ＡＲ３２ｒの画素合計値は、２＾ｂｉ＊Ｎ２より小さい。また、縮小画像換算の画素数Ｎ２の最大値は２＾（ｂｔ−ｂｉ）である。
【００８８】
したがって、領域ＡＲ３２ｒの画素合計値（縮小画像換算）は、２＾ｂｔより小さい。すなわち、条件２を満たす領域ＡＲ３２ｒは、桁あふれを考慮したときの画素合計値が２＾ｂｔより小さい領域である。このため、領域ＡＲ３２ｒの画素合計値は、例えば、縮小積分画像ＩＩＭＧＲの要素値ＩＥ、ＩＦ、ＩＧ、ＩＨを、式（８）のＩＡ、ＩＢ、ＩＣ、ＩＤに代入して計算することにより算出される。
【００８９】
図９は、図７に示した各領域の画素合計値の関係の一例を示している。なお、図９は、領域ＡＲ３１、ＡＲ３２ｒが図７に示した条件を満たしているときの各領域の画素合計値の関係の一例を示している。図９の画素合計値Ｓ０（Ｓ０ａ、Ｓ０ｂ）は、領域ＡＲ３０の画素合計値を示し、画素合計値Ｓ１（Ｓ１ａ、Ｓ１ｂ）は、周辺領域ＡＲ３１の画素合計値を示している。そして、画素合計値Ｓ２は、ベース領域ＡＲ３２の画素合計値を示し、画素合計値ＳＲは、領域ＡＲ３２ｒの画素合計値（縮小画像換算）を示している。
【００９０】
なお、画素合計値Ｓ０ａ、Ｓ１ａは、ケースａのときの画素合計値Ｓ０、Ｓ１をそれぞれ示し、画素合計値Ｓ０ｂ、Ｓ１ｂは、ケースｂのときの画素合計値Ｓ０、Ｓ１をそれぞれ示している。例えば、ケースａは、領域ＡＲ３０の画素合計値Ｓ０ａの下位桁の値Ｓ０ａ［ｂｔ−１：０］が画素合計値Ｓ２の下位桁の値Ｓ２［ｂｔ−１：０］以上のときの画素合計値Ｓ０ａ、Ｓ１ａ、Ｓ２の関係を示している。また、例えば、ケースｂは、領域ＡＲ３０の画素合計値Ｓ０ｂの下位桁の値Ｓ０ｂ［ｂｔ−１：０］が画素合計値Ｓ２の下位桁の値Ｓ２［ｂｔ−１：０］より小さいときの画素合計値Ｓ０ｂ、Ｓ１ｂ、Ｓ２の関係を示している。
【００９１】
領域ＡＲ３０の画素合計値Ｓ０は、領域ＡＲ３１の画素合計値Ｓ１および領域ＡＲ３２の画素合計値Ｓ２を用いて、式（１２）で表される。
【００９２】
【数１２】
2014078189.tif 000014
【００９３】
領域ＡＲ３０の画素数は、２＾（ｂｔ−ｂｉ）以下とは限らない。このため、積分画像ＩＩＭＧＯの要素値ＩＡ、ＩＢ、ＩＣ、ＩＤを、式（８）のＩＡ、ＩＢ、ＩＣ、ＩＤに代入して得られる計算結果は、領域ＡＲ３０の画素合計値Ｓ０とは限らない。なお、領域ＡＲ３０の画素合計値Ｓ０のうちの下位桁の値Ｓ０［ｂｔ−１：０］は、積分画像ＩＩＭＧＯの要素値ＩＡ、ＩＢ、ＩＣ、ＩＤを、式（８）のＩＡ、ＩＢ、ＩＣ、ＩＤに代入して計算することにより算出される。
【００９４】
したがって、例えば、算出部３０は、画素合計値Ｓ０のｂｔビット目以上の桁（上位桁）の値Ｓ０ｍと下位桁の値Ｓ０［ｂｔ−１：０］とを算出し、上位桁の値Ｓ０ｍと下位桁の値Ｓ０［ｂｔ−１：０］とを連結して画素合計値Ｓ０を算出する。画素合計値Ｓ０の上位桁の値Ｓ０ｍは、画素合計値Ｓ０の下位桁の値Ｓ０［ｂｔ−１：０］と画素合計値Ｓ２の下位桁の値Ｓ２［ｂｔ−１：０］とを比較することにより、算出される。
【００９５】
例えば、画素合計値Ｓ１は、条件１より、０以上で２＾ｂｔより小さい値である。したがって、式（１２）より、画素合計値Ｓ０は、画素合計値Ｓ２以上で、画素合計値Ｓ２に２＾ｂｔを加算した値より小さい値である（Ｓ２≦Ｓ０＜Ｓ２＋（２＾ｂｔ））。すなわち、画素合計値Ｓ０の上位桁の値Ｓ０ｍは、画素合計値Ｓ２のｂｔビット目以上の桁（上位桁）の値Ｓ２ｍと同じ値、または、値Ｓ２ｍに１を加算した値のいずれかである。
【００９６】
例えば、画素合計値Ｓ０は、式（６）より、画素合計値Ｓ０の上位桁の値Ｓ０ｍを用いて、式（１３）で表される。
【００９７】
【数１３】
2014078189.tif 000015
【００９８】
また、画素合計値Ｓ２は、画素合計値Ｓ２の上位桁の値Ｓ２ｍを用いて、式（１４）で表される。なお、式（１４）の値Ｓ２［ｂｔ−１：０］は、画素合計値Ｓ２の下位桁の値を示している。
【００９９】
【数１４】
2014078189.tif 000016
【０１００】
式（１２）、式（１３）および式（１４）より、画素合計値Ｓ１は、式（１５）で表される。
【０１０１】
【数１５】
2014078189.tif 000017
【０１０２】
条件１より、画素合計値Ｓ１は、０以上で２＾ｂｔより小さい値である。したがって、式（１５）の右辺第１項が０以上のとき、画素合計値Ｓ０の上位桁の値Ｓ０ｍは、画素合計値Ｓ２の上位桁の値Ｓ２ｍと同じである（Ｓ０ｍ＝Ｓ２ｍ）。すなわち、画素合計値Ｓ０の下位桁の値Ｓ０［ｂｔ−１：０］が画素合計値Ｓ２の下位桁の値Ｓ２［ｂｔ−１：０］以上のとき、画素合計値Ｓ０の上位桁の値Ｓ０ｍは、画素合計値Ｓ２の上位桁の値Ｓ２ｍと同じである（図９のケースａ）。図９の例では、画素合計値Ｓ２の上位桁の値Ｓ２ｍは、“ｎ”である。したがって、図９のケースａでは、画素合計値Ｓ０（Ｓ０ａ）の上位桁の値Ｓ０ｍは、“ｎ”である。
【０１０３】
また、式（１５）の右辺第１項が０より小さいとき、画素合計値Ｓ０の上位桁の値Ｓ０ｍは、画素合計値Ｓ２の上位桁の値Ｓ２ｍに１を加算した値である（Ｓ０ｍ＝Ｓ２ｍ＋１）。すなわち、画素合計値Ｓ０の下位桁の値Ｓ０［ｂｔ−１：０］が画素合計値Ｓ２の下位桁の値Ｓ２［ｂｔ−１：０］より小さいとき、画素合計値Ｓ０の上位桁の値Ｓ０ｍは、画素合計値Ｓ２の上位桁の値Ｓ２ｍに１を加算した値である（図９のケースｂ）。例えば、図９のケースｂでは、画素合計値Ｓ０（Ｓ０ｂ）の上位桁の値Ｓ０ｍは、“ｎ＋１”である。
【０１０４】
このように、この実施形態では、画素合計値Ｓ０の下位桁の値Ｓ０［ｂｔ−１：０］と画素合計値Ｓ２の下位桁の値Ｓ２［ｂｔ−１：０］とを比較することにより、画素合計値Ｓ０の上位桁の値Ｓ０ｍを算出できる。例えば、算出部３０は、画素合計値Ｓ０の下位桁の値Ｓ０［ｂｔ−１：０］と画素合計値Ｓ２の下位桁の値Ｓ２［ｂｔ−１：０］とを比較する。そして、算出部３０は、比較結果に基づいて、画素合計値Ｓ０の上位桁の値Ｓ０ｍを算出する。なお、この実施形態では、画素合計値Ｓ２の下位桁の値Ｓ２［ｂｔ−１：０］は、領域ＡＲ３２ｒの画素合計値ＳＲに基づいて算出できる。
【０１０５】
例えば、縮小積分画像ＩＩＭＧＲに対応する縮小画像が入力画像ＯＩＭＧ（元の画像）の１／Ｒ倍のとき、領域ＡＲ３２の画素合計値Ｓ２は、領域ＡＲ３２ｒの画素合計値ＳＲのＲ倍である。したがって、画素合計値Ｓ２の下位桁の値Ｓ２［ｂｔ−１：０］は、値Ｒを用いて、式（１６）で表される。
【０１０６】
【数１６】
2014078189.tif 000018
【０１０７】
なお、画素合計値Ｓ２のｂｔビット目以上の桁（上位桁）の値Ｓ２ｍは、領域ＡＲ３２ｒの画素合計値ＳＲをＲ倍した値を、ｂｔビット右にシフトさせた値である。例えば、領域ＡＲ３２ｒの画素合計値ＳＲは、条件２より、縮小積分画像ＩＩＭＧＲの要素値ＩＥ、ＩＦ、ＩＧ、ＩＨを、式（８）のＩＡ、ＩＢ、ＩＣ、ＩＤに代入して計算することにより算出される。図７の例では、領域ＡＲ３２ｒは、領域ＡＲ３２を１／４倍した領域である。すなわち、領域ＡＲ３２の画素合計値Ｓ２は、領域ＡＲ３２ｒの画素合計値ＳＲの４倍である。
【０１０８】
したがって、例えば、積分画像ＩＩＭＧＯ、ＩＩＭＧＲの各要素値のビット数ｂｔが１６ビットの場合、式（１６）のｂｔ、Ｒに１６、４をそれぞれ代入することにより、画素合計値Ｓ２の下位桁の値Ｓ２［１５：０］は、式（１７）で表される。
【０１０９】
【数１７】
2014078189.tif 000019
【０１１０】
式（１７）より、例えば、画素合計値Ｓ２の下位桁の値Ｓ２［１５：０］は、画素合計値ＳＲの値ＳＲ［１３：０］を２ビット左にシフトし、シフトによって空いたビットに０を入れることにより算出される。また、画素合計値Ｓ２の上位桁の値Ｓ２［１７：１６］は、画素合計値ＳＲの値ＳＲ［１５：１４］である。
【０１１１】
したがって、画素合計値Ｓ０の下位桁の値Ｓ０［１５：０］が式（１７）の右辺第１項の値以上のとき、画素合計値Ｓ０の上位桁の値Ｓ０ｍ（例えば、Ｓ０［１７：１６］）は、画素合計値ＳＲの値ＳＲ［１５：１４］と同じ値である。そして、画素合計値Ｓ０の下位桁の値Ｓ０［１５：０］が式（１７）の右辺第１項の値より小さいとき、画素合計値Ｓ０の上位桁の値Ｓ０ｍ（例えば、Ｓ０［１８：１６］）は、画素合計値ＳＲの値ＳＲ［１５：１４］に１を加算した値である。
【０１１２】
領域ＡＲ３０の画素合計値Ｓ０の下位桁の値Ｓ０［１５：０］は、積分画像ＩＩＭＧＯの要素値ＩＡ、ＩＢ、ＩＣ、ＩＤを、式（８）のＩＡ、ＩＢ、ＩＣ、ＩＤに代入して計算することにより算出される。画素合計値Ｓ０の上位桁の値Ｓ０ｍ（例えば、Ｓ０［１７：１６］あるいはＳ０［１８：１６］）と下位桁の値Ｓ０［１５：０］とが算出されるため、画素合計値Ｓ０が算出される。
【０１１３】
なお、式（１７）により算出される値Ｓ２［１５：０］には、縮小処理により生じる誤差が含まれている。領域ＡＲ３１の画素数は２＾（ｂｔ−ｂｉ）以下であり、画素値は０から“２＾ｂｉ−１”の範囲である。このため、値Ｓ１は、最大でも“２＾ｂｔ−２＾（ｂｔ−ｂｉ）”である。したがって、例えば、算出部３０は、値Ｓ０［１５：０］が値Ｓ２［１５：０］より小さい場合でも、“Ｓ２［１５：０］−Ｓ０［１５：０］＜２＾（ｂｔ−ｂｉ）”である場合、値Ｓ０［１５：０］が値Ｓ２［１５：０］より大きいと判定してもよい。
【０１１４】
このように、この実施形態では、領域ＡＲ３０の画素合計値Ｓ０が２＾ｂｔ以上のときにも、領域ＡＲ３０の画素値の合計を正確に算出できる。
【０１１５】
図１０は、図１に示した画像処理装置１０の動作の一例を示している。なお、図１０は、画素合計値の算出に関する画像処理装置１０の動作の一例を示している。また、図１０の動作では、処理Ｐ１００が実行される前に、縮小積分画像ＩＩＭＧＲの数および縮小積分画像ＩＩＭＧＲに対応する縮小画像の縮小率が決定されている。例えば、縮小積分画像ＩＩＭＧＲの数は、１つである。積分画像ＩＩＭＧＯ、ＩＩＭＧＲの各要素値のビット数ｂｔは、例えば、入力画像ＯＩＭＧの各画素値のビット数ｂｉより多く、ビット数ｂｉで表される最大値と入力画像ＯＩＭＧの画素数との積を表すのに必要なビット数より少ない。例えば、入力画像ＯＩＭＧのサイズ（画素数）がＮＸ×ＮＹの場合、積分画像ＩＩＭＧＯ、ＩＩＭＧＲの各要素値のビット数ｂｔは、“ｌｏｇ２（ＮＸ×ＮＹ）＋ｂｉ”ビットより少ない。
【０１１６】
なお、図１０の動作は、ハードウエアのみで実現されてもよく、ハードウエアをソフトウエアにより制御することにより実現されてもよい。例えば、画像処理プログラム等のソフトウエアは、コンピュータに図１０の動作を実行させてもよい。すなわち、画像処理装置１０は、ハードウエアのみで実現されてもよく、ハードウエアをソフトウエアにより制御することにより実現されてもよい。
【０１１７】
処理Ｐ１００では、積分画像生成部２０は、第１積分画像ＩＩＭＧＯを入力画像ＯＩＭＧに基づいて生成する。そして、積分画像生成部２０は、第１積分画像ＩＩＭＧＯをメモリＭＥＭ等に記憶する。
【０１１８】
処理Ｐ１２０では、積分画像生成部２０は、入力画像ＯＩＭＧを縮小した縮小画像に対応する縮小積分画像ＩＩＭＧＲを生成する。例えば、積分画像生成部２０は、入力画像ＯＩＭＧの縮小画像を生成し、生成した縮小画像に基づいて縮小積分画像ＩＩＭＧＲを生成する。あるいは、積分画像生成部２０は、入力画像ＯＩＭＧの縮小画像を生成せずに、式（３）等を用いて縮小積分画像ＩＩＭＧＲを生成する。そして、積分画像生成部２０は、縮小積分画像ＩＩＭＧＲをメモリＭＥＭ等に記憶する。
【０１１９】
処理Ｐ１４０では、算出部３０は、メモリＭＥＭ等から矩形情報を取得する。矩形情報は、例えば、画素合計値の算出対象の領域である矩形領域（例えば、図７の領域ＡＲ３０）のサイズや位置（座標）等を示す情報である。
【０１２０】
処理Ｐ２００では、算出部３０は、矩形領域の画素数が２＾（ｂｔ−ｂｉ）以下か否かを判定する。すなわち、算出部３０は、矩形領域の画素合計値が２＾ｂｔ以上になる可能性があるか否かを判定する。矩形領域の画素数が２＾（ｂｔ−ｂｉ）以下のとき（処理Ｐ２００のＹｅｓ）、算出部３０の動作は、処理Ｐ３００に移る。一方、矩形領域の画素数が２＾（ｂｔ−ｂｉ）より多いとき（処理Ｐ２００のＮｏ）、算出部３０の動作は、処理Ｐ４００に移る。
【０１２１】
処理Ｐ３００では、算出部３０は、第１積分画像ＩＩＭＧＯを用いて、矩形領域の画素合計値を算出する。矩形領域の画素数が２＾（ｂｔ−ｂｉ）以下であるため、矩形領域の画素合計値は、２＾ｂｔより小さい。したがって、矩形領域の画素合計値は、式（８）を用いて算出される。例えば、算出部３０は、第１積分画像ＩＩＭＧＯの矩形領域に基づく４点の要素値（例えば、図７の第１積分画像ＩＩＭＧＯの要素値ＩＡ、ＩＢ、ＩＣ、ＩＤ）を用いて、矩形領域の画素合計値を算出する。
【０１２２】
処理Ｐ４００では、算出部３０は、周辺領域（例えば、図７の領域ＡＲ３１）の画素数Ｎ１が２＾（ｂｔ−ｂｉ）以下か否かを判定する。すなわち、算出部３０は、図８に示した条件１を満たすか否かを判定する。周辺領域の画素数Ｎ１が２＾（ｂｔ−ｂｉ）以下のとき（処理Ｐ４００のＹｅｓ）、算出部３０の動作は、処理Ｐ４２０に移る。一方、周辺領域の画素数Ｎ１が２＾（ｂｔ−ｂｉ）より多いとき（処理Ｐ４００のＮｏ）、算出部３０の動作は、処理Ｐ５００に移る。
【０１２３】
処理Ｐ４２０では、算出部３０は、ベース領域（例えば、図７の領域ＡＲ３２）を縮小画像に反映した領域（例えば、図７の領域ＡＲ３２ｒ）の画素数Ｎ２が２＾（ｂｔ−ｂｉ）以下か否かを判定する。すなわち、算出部３０は、図８に示した条件２を満たすか否かを判定する。ベース領域を縮小画像に反映した領域の画素数Ｎ２が２＾（ｂｔ−ｂｉ）以下のとき（処理Ｐ４２０のＹｅｓ）、算出部３０の動作は、処理Ｐ４４０に移る。一方、ベース領域を縮小画像に反映した領域の画素数Ｎ２が２＾（ｂｔ−ｂｉ）より多いとき（処理Ｐ４２０のＮｏ）、算出部３０の動作は、処理Ｐ５００に移る。
【０１２４】
処理Ｐ４４０では、算出部３０は、第１積分画像ＩＩＭＧＯを用いて、矩形領域の画素合計値の下位桁（ｂｔビットより下位の桁）の値を算出する。矩形領域の画素合計値の下位桁（ｂｔビットより下位の桁）の値は、式（８）を用いて算出される。例えば、算出部３０は、第１積分画像ＩＩＭＧＯの矩形領域に基づく４点の要素値（例えば、図７の第１積分画像ＩＩＭＧＯの要素値ＩＡ、ＩＢ、ＩＣ、ＩＤ）を用いて、矩形領域の画素合計値の下位桁（ｂｔビットより下位の桁）の値を算出する。
【０１２５】
処理Ｐ４６０では、算出部３０は、第１積分画像ＩＩＭＧＯおよび縮小積分画像ＩＩＭＧＲを用いて、矩形領域の画素合計値の上位桁（ｂｔビット目以上の桁）の値を算出する。図８に示した条件１および条件２を満たしているため、矩形領域の画素合計値の上位桁（ｂｔビット目以上の桁）の値は、例えば、矩形領域の画素合計値の下位桁（ｂｔビットより下位の桁）の値とベース領域の画素合計値の下位桁（ｂｔビットより下位の桁）の値とを比較することにより、算出される。
【０１２６】
矩形領域の画素合計値の下位桁（ｂｔビットより下位の桁）の値は、処理Ｐ４４０で算出される。また、ベース領域の画素合計値の下位桁（ｂｔビットより下位の桁）の値は、例えば、式（１６）を用いて算出される。式（１６）の画素合計値ＳＲは、ベース領域を縮小画像に反映した領域（例えば、図７の領域ＡＲ３２ｒ）の画素合計値であり、縮小積分画像ＩＩＭＧＲに基づいて算出される。例えば、算出部３０は、ベース領域を縮小画像に反映した領域に基づく４点の要素値（例えば、図７の縮小積分画像ＩＩＭＧＲの要素値ＩＥ、ＩＦ、ＩＧ、ＩＨ）を用いて、ベース領域の画素合計値の下位桁（ｂｔビットより下位の桁）の値を算出する。
【０１２７】
そして、算出部３０は、矩形領域の画素合計値の下位桁（ｂｔビットより下位の桁）の値とベース領域の画素合計値の下位桁（ｂｔビットより下位の桁）の値との比較結果に基づいて、矩形領域の画素合計値の上位桁（ｂｔビット目以上の桁）の値を算出する。さらに、算出部３０は、例えば、矩形領域の画素合計値の上位桁（ｂｔビット目以上の桁）の値と矩形領域の画素合計値の下位桁（ｂｔビットより下位の桁）の値とを連結して矩形領域の画素合計値を算出する。
【０１２８】
処理Ｐ５００では、算出部３０は、分割処理を実行する。例えば、算出部３０は、図８に示した条件１および条件２を満たすように、矩形領域を複数の処理領域に分割する。そして、算出部３０は、処理領域（矩形領域を分割した領域）毎に画素合計値を算出して、矩形領域の画素合計値を算出する。例えば、矩形領域の画素合計値は、処理領域の画素合計値の総和である。このように、この実施形態では、矩形領域の画素数が２＾（ｂｔ−ｂｉ）より多いときにも、各要素値のビット数ｂｔに制限がある積分画像ＩＩＭＧＯ、ＩＩＭＧＲを用いて、矩形領域の画素合計値を算出できる。
【０１２９】
処理Ｐ６００では、画像処理装置１０は、全ての矩形領域の処理が終了したか否かを判定する。例えば、画像処理装置１０は、様々な形状およびサイズのHaar-like特徴量を抽出する。この場合、画素合計値の算出対象の矩形領域が複数存在する。したがって、画像処理装置１０は、例えば、画素合計値の算出対象の複数の矩形領域のうち、画素合計値が算出されていない矩形領域が存在するか否かを判定する。
【０１３０】
画素合計値が算出されていない矩形領域が存在するとき（処理Ｐ６００のＮｏ）、画像処理装置１０の動作は、処理Ｐ１４０に戻る。一方、全ての矩形領域の処理が終了しているとき（処理Ｐ６００のＹｅｓ）、画素合計値の算出に関する画像処理装置１０の動作は、終了する。
【０１３１】
このように、処理Ｐ３００は、画素合計値の算出対象の矩形領域の画素数が２＾（ｂｔ−ｂｉ）以下のとき、実行される。また、処理Ｐ４４０、Ｐ４６０は、画素合計値の算出対象の矩形領域の画素数が２＾（ｂｔ−ｂｉ）より多く、かつ、図８に示した条件１および条件２を満たすとき、実行される。そして、処理Ｐ５００は、画素合計値の算出対象の矩形領域の画素数が２＾（ｂｔ−ｂｉ）より多く、かつ、図８に示した条件１および条件２の少なくとも一方を満たさないとき、実行される。
【０１３２】
図１１は、図１０に示した分割処理（処理Ｐ５００）の一例を示している。図１１の処理Ｐ５２０、Ｐ５３０、Ｐ５４０、Ｐ５４２、Ｐ５４４、Ｐ５４６は、図１０の処理Ｐ２００、Ｐ３００、Ｐ４００、Ｐ４２０、Ｐ４４０、Ｐ４６０と同様の処理である。これらの処理は、図１０で説明した矩形領域を図１１の処理領域に読み替えることにより、ほぼ説明される。例えば、図１１の説明では、周辺領域およびベース領域は、処理Ｐ５１２で選択した処理領域を着目する領域としたときの周辺領域およびベース領域である。なお、図１０で説明した処理と同様の処理については、詳細な説明を省略する。
【０１３３】
処理Ｐ５１０では、算出部３０は、分割対象の領域（例えば、図７の領域ＡＲ３０）を複数の処理領域に分割する。処理Ｐ５１２では、処理対象の処理領域を、処理Ｐ５１０で分割した領域から選択する。
【０１３４】
処理Ｐ５２０では、処理Ｐ５１２で選択した処理領域の画素数が２＾（ｂｔ−ｂｉ）以下か否かを判定する。処理領域の画素数が２＾（ｂｔ−ｂｉ）以下のとき（処理Ｐ５２０のＹｅｓ）、算出部３０の動作は、処理Ｐ５３０に移る。一方、処理領域の画素数が２＾（ｂｔ−ｂｉ）より多いとき（処理Ｐ５２０のＮｏ）、算出部３０の動作は、処理Ｐ５４０に移る。
【０１３５】
処理Ｐ５３０では、算出部３０は、第１積分画像ＩＩＭＧＯを用いて、処理領域の画素合計値を算出する。例えば、算出部３０は、処理領域に基づく４点の要素値を（式（８）の要素値ＩＡ、ＩＢ、ＩＣ、ＩＤに対応する要素値）を第１積分画像ＩＩＭＧＯから取得する。そして、算出部３０は、例えば、式（８）を用いて、処理領域の画素合計値を算出する。
【０１３６】
処理Ｐ５４０では、算出部３０は、周辺領域の画素数Ｎ１が２＾（ｂｔ−ｂｉ）以下か否かを判定する。すなわち、算出部３０は、図８に示した条件１を満たすか否かを判定する。なお、処理Ｐ５４０での周辺領域は、処理Ｐ５１２で選択した処理領域のうち、処理Ｐ５１２で選択した処理領域以外の画素を含んで縮小画像の１画素に換算される領域である。
【０１３７】
周辺領域の画素数Ｎ１が２＾（ｂｔ−ｂｉ）以下のとき（処理Ｐ５４０のＹｅｓ）、算出部３０の動作は、処理Ｐ５４２に移る。一方、周辺領域の画素数Ｎ１が２＾（ｂｔ−ｂｉ）より多いとき（処理Ｐ５４０のＮｏ）、算出部３０の動作は、処理Ｐ５１０に戻る。
【０１３８】
処理Ｐ５４２では、算出部３０は、ベース領域を縮小画像に反映した領域の画素数Ｎ２が２＾（ｂｔ−ｂｉ）以下か否かを判定する。すなわち、算出部３０は、図８に示した条件２を満たすか否かを判定する。なお、処理Ｐ５４２でのベース領域は、処理Ｐ５１２で選択した処理領域のうち、処理Ｐ５４０で説明した周辺領域を除いた領域である。すなわち、処理Ｐ５４２でのベース領域は、処理Ｐ５１２で選択した処理領域のうち、処理Ｐ５１２で選択した処理領域以外の画素を含まずに、縮小画像の１画素に換算される領域である。
【０１３９】
ベース領域を縮小画像に反映した領域の画素数Ｎ２が２＾（ｂｔ−ｂｉ）以下のとき（処理Ｐ５４２のＹｅｓ）、算出部３０の動作は、処理Ｐ５４４に移る。一方、ベース領域を縮小画像に反映した領域の画素数Ｎ２が２＾（ｂｔ−ｂｉ）より多いとき（処理Ｐ５４２のＮｏ）、算出部３０の動作は、処理Ｐ５１０に戻る。すなわち、算出部３０は、図８に示した条件１および条件２の少なくとも一方を満たさないとき、処理Ｐ５１０において、処理領域をさらに分割する。
【０１４０】
処理Ｐ５４４では、算出部３０は、第１積分画像ＩＩＭＧＯを用いて、処理領域の画素合計値の下位桁（ｂｔビットより下位の桁）の値を算出する。例えば、算出部３０は、処理領域に基づく４点の要素値を（式（８）の要素値ＩＡ、ＩＢ、ＩＣ、ＩＤに対応する要素値）を第１積分画像ＩＩＭＧＯから取得する。そして、算出部３０は、例えば、式（８）を用いて、処理領域の画素合計値の下位桁（ｂｔビットより下位の桁）の値を算出する。
【０１４１】
処理Ｐ５４６では、算出部３０は、第１積分画像ＩＩＭＧＯおよび縮小積分画像ＩＩＭＧＲを用いて、処理領域の画素合計値の上位桁（ｂｔビット目以上の桁）の値を算出する。例えば、算出部３０は、処理領域の画素合計値の下位桁（ｂｔビットより下位の桁）の値とベース領域の画素合計値の下位桁（ｂｔビットより下位の桁）の値との比較結果に基づいて、処理領域の画素合計値の上位桁（ｂｔビット目以上の桁）の値を算出する。
【０１４２】
処理領域の画素合計値の下位桁（ｂｔビットより下位の桁）の値は、処理Ｐ５４４で算出される。また、ベース領域の画素合計値の下位桁（ｂｔビットより下位の桁）の値は、例えば、式（１６）を用いて算出される。例えば、算出部３０は、ベース領域を縮小画像に反映した領域に基づく４点の要素値を（式（１６）の要素値ＩＥ、ＩＦ、ＩＧ、ＩＨに対応する要素値）を縮小積分画像ＩＩＭＧＲから取得する。
【０１４３】
そして、算出部３０は、例えば、式（１６）を用いて、ベース領域の画素合計値の下位桁（ｂｔビットより下位の桁）の値を算出する。さらに、算出部３０は、例えば、処理領域の画素合計値の上位桁（ｂｔビット目以上の桁）の値と処理領域の画素合計値の下位桁（ｂｔビットより下位の桁）の値とを連結して処理領域の画素合計値を算出する。
【０１４４】
処理Ｐ５５０では、算出部３０は、全ての処理領域の処理が終了したか否かを判定する。処理が終了していない処理領域が存在するとき（処理Ｐ５５０のＮｏ）、算出部３０の動作は、処理Ｐ５１２に戻る。一方、全ての処理領域の処理が終了しているとき（処理Ｐ５５０のＹｅｓ）、算出部３０の動作は、処理Ｐ５６０に移る。
【０１４５】
処理Ｐ５６０では、算出部３０は、処理領域の画素合計値に基づいて、矩形領域の画素合計値を算出する。例えば、算出部３０は、矩形領域を分割した領域（処理領域）の画素合計値の総和を、矩形領域の画素合計値として算出する。これにより、分割処理は終了する。
【０１４６】
なお、分割処理の動作は、この例に限定されない。例えば、算出部３０は、算出した処理領域の画素合計値を、処理Ｐ５５０を実行する前に順次積算してもよい。この場合、全ての処理領域の処理が終了した時点で（処理Ｐ５５０のＹｅｓ）、矩形領域の画素合計値は算出されている。
【０１４７】
さらに、画像処理装置１０の動作は、図１０および図１１に示した例に限定されない。例えば、周辺領域が存在しない場合、算出部３０は、矩形領域の画素合計値を縮小積分画像ＩＩＭＧＲに基づいて算出してもよい。例えば、算出部３０は、ベース領域を縮小画像に反映した領域の画素合計値を縮小積分画像ＩＩＭＧＲに基づいて算出する。そして、算出部３０は、例えば、ベース領域を縮小画像に反映した領域の画素合計値と縮小率の逆数との積を、矩形領域の画素合計値として算出する。
【０１４８】
また、画像処理装置１０は、例えば、図１２、図１３等に示すように、互いに異なる縮小率の画像にそれぞれ対応する複数の縮小積分画像ＩＩＭＧＲを用いて、矩形領域の画素合計値を算出してもよい。
【０１４９】
図１２は、縮小積分画像を用いて画素合計値が計算される領域と周辺領域との関係の別の例を示している。第１積分画像ＩＩＭＧＯ、縮小積分画像ＩＩＭＧＲ、領域ＡＲ３０等は、図７に示した第１積分画像ＩＩＭＧＯ、縮小積分画像ＩＩＭＧＲ、領域ＡＲ３０等と同様である。図１２では、要素の境界に一致していない範囲ＡＲ３０ｒの境界を破線で示している。領域ＡＲ３０は、例えば、画素合計値の算出対象の領域であり、第１積分画像ＩＩＭＧＯや入力画像ＯＩＭＧ内の領域である。範囲ＡＲ３０ｒは、縮小積分画像ＩＩＭＧＲや縮小画像内の範囲であり、領域ＡＲ３０に対応する範囲である。図７で説明した領域等については、詳細な説明を省略する。
【０１５０】
領域ＡＲ３０は、周辺領域ＡＲ３１（最も薄い網掛け部分）およびベース領域ＡＲ３２（最も濃い網掛け部分と中間の濃さの網掛け部分）を有している。周辺領域ＡＲ３１は、領域ＡＲ３０からベース領域ＡＲ３２を除いた領域である。例えば、周辺領域ＡＲ３１は、領域ＡＲ３０のうち、縮小積分画像ＩＩＭＧＲに対応する縮小画像の１画素に、領域ＡＲ３０以外の画素を含んで換算される領域である。
【０１５１】
領域ＡＲ３２は、領域ＡＲ３０のうち、縮小積分画像ＩＩＭＧＲに対応する縮小画像の１画素に、領域ＡＲ３０以外の画素を含まずに換算される領域である。すなわち、領域ＡＲ３２は、縮小積分画像ＩＩＭＧＲを用いて画素合計値が計算される領域ＡＲ３２ｒに対応している。なお、図１２の例では、領域ＡＲ３２ｒの画素合計値は、縮小積分画像ＩＩＭＧＲおよび図１３に示す縮小積分画像ＩＩＭＧＲ２を用いて算出される。
【０１５２】
例えば、領域ＡＲ３２は、領域ＡＲ３３（中間の濃さの網掛け部分）および領域ＡＲ３４（最も濃い網掛け部分）を有している。領域ＡＲ３３は、領域ＡＲ３２から領域ＡＲ３４を除いた領域である。例えば、領域ＡＲ３３は、領域ＡＲ３２のうち、縮小積分画像ＩＩＭＧＲ２に対応する縮小画像の１画素に、領域ＡＲ３２以外の画素を含んで換算される領域である。領域ＡＲ３４は、領域ＡＲ３２のうち、縮小積分画像ＩＩＭＧＲ２に対応する縮小画像の１画素に、領域ＡＲ３２以外の画素を含まずに換算される領域である。
【０１５３】
このように、領域ＡＲ３０は、領域ＡＲ３１、ＡＲ３３、ＡＲ３４に分けられる。したがって、領域ＡＲ３０の画素合計値は、例えば、領域ＡＲ３１の画素合計値と領域ＡＲ３３の画素合計値と領域ＡＲ３４の画素合計値とを加算することにより算出される。なお、領域ＡＲ３３の画素合計値と領域ＡＲ３４の画素合計値とを加算した画素合計値は、領域ＡＲ３２の画素合計値である。
【０１５４】
範囲ＡＲ３０ｒは、範囲ＡＲ３１ｒ（最も薄い網掛け部分）および領域ＡＲ３２ｒ（最も濃い網掛け部分と中間の濃さの網掛け部分）を有している。なお、範囲ＡＲ３０ｒ、範囲ＡＲ３１ｒおよび領域ＡＲ３２ｒは、領域ＡＲ３０、領域ＡＲ３１および領域ＡＲ３２を縮小した領域にそれぞれ対応している。例えば、範囲ＡＲ３１ｒは、範囲ＡＲ３０ｒから領域ＡＲ３２ｒを除いた範囲である。
【０１５５】
領域ＡＲ３２ｒは、ベース領域ＡＲ３２を縮小画像に反映した領域である。例えば、領域ＡＲ３２ｒは、範囲ＡＲ３０ｒ内で要素の境界に一致する境界を有する最大の領域である。また、領域ＡＲ３２ｒは、例えば、領域ＡＲ３３ｒ（中間の濃さの網掛け部分）および領域ＡＲ３４ｒ（最も濃い網掛け部分）を有している。
【０１５６】
領域ＡＲ３３ｒは、領域ＡＲ３２ｒから領域ＡＲ３４ｒを除いた領域である。例えば、領域ＡＲ３３ｒは、領域ＡＲ３２ｒのうち、縮小積分画像ＩＩＭＧＲ２に対応する縮小画像の１画素に、領域ＡＲ３２ｒ以外の画素を含んで換算される領域である。すなわち、領域ＡＲ３３ｒは、領域ＡＲ３２ｒを着目する領域としたときの周辺領域である。
【０１５７】
領域ＡＲ３４ｒは、領域ＡＲ３２ｒのうち、縮小積分画像ＩＩＭＧＲ２に対応する縮小画像の１画素に、領域ＡＲ３２ｒ以外の画素を含まずに換算される領域である。すなわち、領域ＡＲ３４ｒは、領域ＡＲ３２ｒを着目する領域としたときのベース領域である。したがって、領域ＡＲ３４ｒは、縮小積分画像ＩＩＭＧＲ２を用いて画素合計値が計算される領域である。図１２の例では、領域ＡＲ３４ｒの画素合計値は、図１３に示す領域ＡＲ３４ｒｒの画素合計値の約４倍である。
【０１５８】
また、領域ＡＲ３２ｒの画素合計値は、領域ＡＲ３２ｒが領域ＡＲ３３ｒと領域ＡＲ３４ｒとを合わせた領域であるため、領域ＡＲ３３ｒの画素合計値と領域ＡＲ３４ｒの画素合計値とを加算することにより算出される。なお、図８に示した条件２（領域ＡＲ３０を着目する領域としたときの領域ＡＲ３２ｒの条件）を満たしている場合、領域ＡＲ３２ｒの画素合計値は、図９等で説明したように、縮小積分画像ＩＩＭＧＲを用いて算出される。したがって、図８に示した条件２を満たしている場合、例えば、算出部３０は、領域ＡＲ３２ｒを領域ＡＲ３３ｒと領域ＡＲ３４ｒとに分ける処理を省いてもよい。
【０１５９】
図１２の例では、領域ＡＲ３２ｒの画素数Ｎ２は、３６１（＝１９×１９）画素である。例えば、入力画像ＯＩＭＧの各画素値のビット数が７ビットで、積分画像ＩＩＭＧＯ、ＩＩＭＧＲの各要素値のビット数が１６ビットの場合、Ｎ２＝３６１≦２＾９であるため、図８に示した条件２を満たしている。この場合、領域ＡＲ３２ｒの画素合計値は、例えば、要素値ＩＥ、ＩＦ、ＩＧ、ＩＨを、式（８）のＩＡ、ＩＢ、ＩＣ、ＩＤに代入して計算することにより算出される。
【０１６０】
また、例えば、入力画像ＯＩＭＧの各画素値のビット数が８ビットで、積分画像ＩＩＭＧＯ、ＩＩＭＧＲの各要素値のビット数が１６ビットの場合、Ｎ２＝３６１＞２＾８であるため、図８に示した条件２を満たしていない。この場合、領域ＡＲ３２ｒの画素合計値は、領域ＡＲ３３ｒの画素合計値と領域ＡＲ３４ｒの画素合計値とを加算することにより算出される。なお、領域ＡＲ３２ｒの画素合計値のうちの下位桁（例えば、“ｂｔ−１”ビット目まで）の値は、要素値ＩＥ、ＩＦ、ＩＧ、ＩＨを、式（８）のＩＡ、ＩＢ、ＩＣ、ＩＤに代入して計算することにより算出される。
【０１６１】
図１３は、図１２に示した各領域と縮小積分画像ＩＩＭＧＲ２との関係の一例を示している。縮小積分画像ＩＩＭＧＲ２は、入力画像ＯＩＭＧを１／１６（Ｘ、Ｙ方向にそれぞれ１／４倍）に縮小した縮小画像の積分画像である。例えば、縮小積分画像ＩＩＭＧＲ２は、入力画像ＯＩＭＧの１６画素（４×４画素）を１単位にした積分画像（粒度の粗い積分画像）として考えることができる。縮小積分画像ＩＩＭＧＲ２の各要素の位置は、入力画像ＯＩＭＧを１／１６に縮小した縮小画像の各画素の位置に対応している。なお、縮小積分画像ＩＩＭＧＲ２に対応する縮小画像の縮小率は、１／１６に限定されない。
【０１６２】
範囲ＡＲ３０ｒｒ、ＡＲ３１ｒｒ、ＡＲ３２ｒｒ、ＡＲ３３ｒｒおよび領域ＡＲ３４ｒｒは、領域ＡＲ３０、ＡＲ３１、ＡＲ３２、ＡＲ３３、ＡＲ３４にそれぞれ対応している。例えば、範囲ＡＲ３０ｒｒは、縮小積分画像ＩＩＭＧＲ２や縮小画像（入力画像ＯＩＭＧを１／１６に縮小した縮小画像）内の範囲であり、領域ＡＲ３０に対応する範囲である。図１３では、要素の境界に一致していない範囲ＡＲ３０ｒｒ、ＡＲ３２ｒｒの境界を破線で示している。
【０１６３】
範囲ＡＲ３０ｒｒは、範囲ＡＲ３１ｒｒ（最も薄い網掛け部分）および範囲ＡＲ３２ｒｒ（最も濃い網掛け部分と中間の濃さの網掛け部分）を有している。例えば、範囲ＡＲ３０ｒｒ、範囲ＡＲ３１ｒｒおよび範囲ＡＲ３２ｒｒは、範囲ＡＲ３０ｒ、範囲ＡＲ３１ｒおよび領域ＡＲ３２を１／４に縮小した領域にそれぞれ対応している。例えば、範囲ＡＲ３１ｒｒは、範囲ＡＲ３０ｒｒから範囲ＡＲ３２ｒｒを除いた範囲である。
【０１６４】
範囲ＡＲ３２ｒｒは、ベース領域ＡＲ３２を縮小画像（入力画像ＯＩＭＧを１／１６に縮小した縮小画像）に反映した領域である。例えば、範囲ＡＲ３２ｒｒは、範囲ＡＲ３３ｒｒ（中間の濃さの網掛け部分）および領域ＡＲ３４ｒｒ（最も濃い網掛け部分）を有している。範囲ＡＲ３３ｒｒは、範囲ＡＲ３２ｒｒから領域ＡＲ３４ｒｒを除いた範囲である。
【０１６５】
領域ＡＲ３４ｒｒは、範囲ＡＲ３２ｒ内で要素の境界に一致する境界を有する最大の領域である。すなわち、領域ＡＲ３４ｒｒは、縮小積分画像ＩＩＭＧＲ２を用いて画素合計値が計算される領域である。例えば、領域ＡＲ３４ｒｒの画素合計値は、要素値ＩＩ、ＩＪ、ＩＫ、ＩＬを、式（８）のＩＡ、ＩＢ、ＩＣ、ＩＤに代入して計算することにより算出される。
【０１６６】
要素値ＩＩは、領域ＡＲ３４ｒｒの左上隅（座標（２，２））の左上の位置（座標（１，１））の要素値である。要素値ＩＪは、領域ＡＲ３４ｒｒの右上隅（座標（１０，２））の上の位置（座標（１０，１））の要素値である。要素値ＩＫは、領域ＡＲ３４ｒｒの左下隅（座標（２，１０））の左の位置（座標（１，１０））の要素値である。要素値ＩＬは、領域ＡＲ３４ｒｒの右下隅（座標（１０，１０））の要素値である。
【０１６７】
図１２および図１３で説明したように、縮小積分画像ＩＩＭＧＲ２は、領域ＡＲ３２ｒの画素数Ｎ２が２＾（ｂｔ−ｂｉ）より多いとき（例えば、図１０に示した処理Ｐ４２０のＮｏ）、領域ＡＲ３２ｒの画素合計値の算出に使用される。したがって、縮小積分画像ＩＩＭＧＲ２を用いる画像処理装置１０では、例えば、図１０に示した処理Ｐ４２０のＮｏと処理Ｐ５００（分割処理）との間に、各領域ＡＲ３３ｒ、ＡＲ３４ｒｒの画素数が２＾（ｂｔ−ｂｉ）以下か否かを判定する処理が実行される。そして、画像処理装置１０は、判定結果に基づいて、処理Ｐ５００（分割処理）を実行するか否かを決定する。例えば、各領域ＡＲ３３ｒ、ＡＲ３４ｒｒの画素数が２＾（ｂｔ−ｂｉ）以下の場合、画像処理装置１０は、分割処理を実行することなく、領域ＡＲ３０の画素合計値を算出できる。
【０１６８】
図１４は、図１２および図１３に示した各領域の画素合計値の関係の一例を示している。なお、図１４は、図７に示した条件と同様の条件を領域ＡＲ３３ｒ、ＡＲ３４ｒｒが満たしているときの領域ＡＲ３２ｒ、ＡＲ３３ｒ、ＡＲ３４ｒの画素合計値の関係の一例を示している。例えば、領域ＡＲ３２ｒの画素合計値Ｓ０ｒ（Ｓ０ｒａ、Ｓ０ｒｂ）は、領域ＡＲ３０の画素合計値Ｓ０を２段階に分けて算出するときの１段階目の算出対象の画素合計値である。
【０１６９】
したがって、図１４では、領域ＡＲ３２ｒの画素合計値Ｓ０ｒは、図９で説明した算出対象の画素合計値に対応する。このため、図１４では、図７に示した条件と同様の条件は、図７の領域ＡＲ３１、ＡＲ３２ｒを領域ＡＲ３３ｒ、ＡＲ３４ｒｒに読み替えることで説明される。例えば、条件１は、領域ＡＲ３３ｒの条件である。したがって、領域ＡＲ３３ｒの画素数Ｎ１は、２＾（ｂｔ−ｂｉ）以下である。また、例えば、条件２は、領域ＡＲ３４ｒｒの条件である。したがって、領域ＡＲ３４ｒｒの画素数Ｎ２（縮小積分画像ＩＩＭＧＲ２に対応する縮小画像に換算した画素数）は、２＾（ｂｔ−ｂｉ）以下である。
【０１７０】
また、図１４は、図９の符号ＡＲ３０、ＡＲ３１、ＡＲ３２、ＡＲ３２ｒ、Ｓ０ａ、Ｓ０ｂ、Ｓ１ａ、Ｓ１ｂ、Ｓ２、ＳＲ、ＩＥ、ＩＦ、ＩＧ、ＩＨを、符号ＡＲ３２ｒ、ＡＲ３３ｒ、ＡＲ３４ｒ、ＡＲ３４ｒｒ、Ｓ０ｒａ、Ｓ０ｒｂ、Ｓ１ｒａ、Ｓ１ｒｂ、Ｓ２ｒ、ＳＲｒ、ＩＩ、ＩＪ、ＩＫ、ＩＬに読み替えることで説明される。
【０１７１】
図１４の画素合計値Ｓ０ｒ（Ｓ０ｒａ、Ｓ０ｒｂ）は、領域ＡＲ３２ｒの画素合計値を示し、画素合計値Ｓ１ｒ（Ｓ１ｒａ、Ｓ１ｒｂ）は、領域ＡＲ３３ｒの画素合計値を示している。そして、画素合計値Ｓ２ｒは、領域ＡＲ３４ｒの画素合計値を示し、画素合計値ＳＲｒは、領域ＡＲ３４ｒｒの画素合計値（縮小画像換算）を示している。例えば、画素合計値Ｓ０ｒは、画素合計値Ｓ１ｒと画素合計値Ｓ２ｒとの和で表される。
【０１７２】
なお、画素合計値Ｓ０ｒａ、Ｓ１ｒａは、ケースａのときの画素合計値Ｓ０ｒ、Ｓ１ｒをそれぞれ示し、画素合計値Ｓ０ｒｂ、Ｓ１ｒｂは、ケースｂのときの画素合計値Ｓ０ｒ、Ｓ１ｒをそれぞれ示している。例えば、ケースａは、領域ＡＲ３２ｒの画素合計値Ｓ０ｒａの下位桁の値Ｓ０ｒａ［ｂｔ−１：０］が画素合計値Ｓ２ｒの下位桁の値Ｓ２ｒ［ｂｔ−１：０］以上のときの画素合計値Ｓ０ｒａ、Ｓ１ｒａ、Ｓ２ｒの関係を示している。また、例えば、ケースｂは、領域ＡＲ３２ｒの画素合計値Ｓ０ｒｂの下位桁の値Ｓ０ｒｂ［ｂｔ−１：０］が画素合計値Ｓ２ｒの下位桁の値Ｓ２ｒ［ｂｔ−１：０］より小さいときの画素合計値Ｓ０ｒｂ、Ｓ１ｒｂ、Ｓ２ｒの関係を示している。
【０１７３】
ケースａでは、画素合計値Ｓ０ｒａの下位桁の値Ｓ０ｒａ［ｂｔ−１：０］は、画素合計値Ｓ２ｒの下位桁の値Ｓ２ｒ［ｂｔ−１：０］以上である。このため、画素合計値Ｓ０ｒａの上位桁の値（例えば、Ｓ０ｒａ［ｂｔ＋１：ｂｔ］）は、画素合計値Ｓ２ｒの上位桁の値（例えば、Ｓ２ｒ［ｂｔ＋１：ｂｔ］）と同じである。図１４の例では、画素合計値Ｓ２ｒの上位桁の値は、“ｎ”である。したがって、ケースａでは、画素合計値Ｓ０ｒａの上位桁の値は、“ｎ”である。
【０１７４】
なお、画素合計値Ｓ２ｒは、例えば、領域ＡＲ３４ｒに対する領域ＡＲ３４ｒｒの縮小率の逆数と領域ＡＲ３４ｒｒの画素合計値ＳＲｒとの積で表される。図１４の例では、画素合計値Ｓ２ｒは、画素合計値ＳＲｒを４倍することにより算出される。したがって、図１４のケースａでは、画素合計値Ｓ０ｒａの上位桁の値（例えば、Ｓ０ｒａ［ｂｔ＋１：ｂｔ］）は、画素合計値ＳＲｒの上位桁の値（例えば、ＳＲｒ［ｂｔ−１：ｂｔ−２］）と同じである。
【０１７５】
画素合計値ＳＲｒは、縮小積分画像ＩＩＭＧＲ２に基づいて算出される。例えば、画素合計値ＳＲｒの画素合計値は、図１３に示した要素値ＩＩ、ＩＪ、ＩＫ、ＩＬを、式（８）のＩＡ、ＩＢ、ＩＣ、ＩＤに代入して計算することにより算出される。なお、画素合計値Ｓ０ｒａの下位桁の値Ｓ０ｒａ［ｂｔ−１：０］は、図１２に示した要素値ＩＥ、ＩＦ、ＩＧ、ＩＨを、式（８）のＩＡ、ＩＢ、ＩＣ、ＩＤに代入して計算することにより算出される。
【０１７６】
ケースｂでは、例えば、領域ＡＲ３２ｒの画素合計値Ｓ０ｒｂの下位桁の値Ｓ０ｒｂ［ｂｔ−１：０］は、画素合計値Ｓ２ｒの下位桁の値Ｓ２ｒ［ｂｔ−１：０］より小さい。このため、画素合計値Ｓ０ｒｂの上位桁の値（例えば、Ｓ０ｒｂ［ｂｔ＋２：ｂｔ］）は、画素合計値Ｓ２ｒの上位桁の値（例えば、Ｓ２ｒ［ｂｔ＋１：ｂｔ］）に１を加算した値である。例えば、図１４のケースｂでは、画素合計値Ｓ０ｒｂの上位桁の値は、“ｎ＋１”である。
【０１７７】
なお、画素合計値Ｓ２ｒが画素合計値ＳＲｒの４倍の場合、画素合計値Ｓ０ｒｂの上位桁の値（例えば、Ｓ０ｒｂ［ｂｔ＋２：ｂｔ］）は、画素合計値ＳＲｒの上位桁の値（例えば、ＳＲｒ［ｂｔ−１：ｂｔ−２］）に１を加算した値である。
【０１７８】
このように、この実施形態では、領域ＡＲ３３ｒの画素数Ｎ１が２＾（ｂｔ−ｂｉ）以下で、かつ、領域ＡＲ３４ｒｒの画素数Ｎ２が２＾（ｂｔ−ｂｉ）以下である場合、領域ＡＲ３２ｒの画素合計値Ｓ０ｒを、積分画像ＩＩＭＧＲ、ＩＩＭＧＲ２を用いて、ｂｔビット目以上の桁（上位桁）の値も含めて算出できる。
【０１７９】
図１５は、図１２に示した各領域の画素合計値の関係の一例を示している。図１５に示した各領域の画素合計値の関係は、図９に示した各領域の画素合計値の関係と同様である。なお、図１５では、領域ＡＲ３１は、図７に示した条件１を満たし、領域ＡＲ３２ｒは、図７に示した条件２を満たしていない。すなわち、領域ＡＲ３２ｒの画素数Ｎ２（縮小積分画像ＩＩＭＧＲに対応する縮小画像に換算した画素数）は、２＾（ｂｔ−ｂｉ）より多い。したがって、図１５は、領域ＡＲ３２ｒの画素合計値ＳＲの算出方法を除いて、図９で説明される。領域ＡＲ３２ｒの画素合計値ＳＲ（図１４では、画素合計値Ｓ０ｒ）は、図１４で説明したように、積分画像ＩＩＭＧＲ、ＩＩＭＧＲ２に基づいて、ｂｔビット目以上の桁（上位桁）の値も含めて算出される。なお、図１５に示した“ｎ”は、図１４に示した“ｎ”と同じ値とは限らない。
【０１８０】
ケースａでは、例えば、領域ＡＲ３０の画素合計値Ｓ０ａの下位桁の値Ｓ０ａ［ｂｔ−１：０］は、画素合計値Ｓ２の下位桁の値Ｓ２［ｂｔ−１：０］以上である。このため、画素合計値Ｓ０ａの上位桁の値（例えば、Ｓ０ａ［ｂｔ＋４：ｂｔ］）は、画素合計値Ｓ２の上位桁の値（例えば、Ｓ２［ｂｔ＋４：ｂｔ］）と同じである。図１５の例では、画素合計値Ｓ２の上位桁の値は、“ｎ”である。したがって、ケースａでは、画素合計値Ｓ０ａの上位桁の値は、“ｎ”である。なお、画素合計値Ｓ２が画素合計値ＳＲの４倍の場合、画素合計値Ｓ０ａの上位桁の値（例えば、Ｓ０ａ［ｂｔ＋４：ｂｔ］）は、画素合計値ＳＲの上位桁の値（例えば、ＳＲ［ｂｔ＋２：ｂｔ−２］）と同じである。
【０１８１】
ケースｂでは、例えば、領域ＡＲ３０の画素合計値Ｓ０ｂの下位桁の値Ｓ０ｂ［ｂｔ−１：０］は、画素合計値Ｓ２の下位桁の値Ｓ２［ｂｔ−１：０］より小さい。このため、画素合計値Ｓ０ｂの上位桁の値（例えば、Ｓ０ｂ［ｂｔ＋４：ｂｔ］）は、画素合計値Ｓ２の上位桁の値（例えば、Ｓ２［ｂｔ＋４：ｂｔ］）に１を加算した値である。例えば、図１５のケースｂでは、画素合計値Ｓ０ｂの上位桁の値は、“ｎ＋１”である。なお、画素合計値Ｓ２が画素合計値ＳＲの４倍の場合、画素合計値Ｓ０ｂの上位桁の値（例えば、Ｓ０ｂ［ｂｔ＋４：ｂｔ］）は、画素合計値ＳＲの上位桁の値（例えば、ＳＲｒ［ｂｔ＋２：ｂｔ−２］）に１を加算した値である。
【０１８２】
このように、この実施形態では、各領域ＡＲ３１、ＡＲ３３ｒ、ＡＲ３４ｒｒの画素数が２＾（ｂｔ−ｂｉ）以下である場合、領域ＡＲ３０の画素合計値Ｓ０を、積分画像ＩＩＭＧＯ、ＩＩＭＧＲ、ＩＩＭＧＲ２を用いて、正確に算出できる。なお、領域ＡＲ３３ｒの画素数は、縮小積分画像ＩＩＭＧＲに対応する縮小画像での画素数であり、領域ＡＲ３４ｒｒの画素数は、縮小積分画像ＩＩＭＧＲ２に対応する縮小画像での画素数である。
【０１８３】
以上、この実施形態では、画像処理装置１０は、積分画像ＩＩＭＧＯ、ＩＩＭＧＲ等を生成する積分画像生成部２０と、算出部３０とを有している。積分画像ＩＩＭＧＯは、入力画像ＯＩＭＧの積分画像であり、積分画像ＩＩＭＧＲ（ＩＩＭＧＲ２）は、入力画像ＯＩＭＧを縮小した縮小画像の積分画像に対応している。また、算出部３０は、矩形領域の画素値の合計を積分画像ＩＩＭＧＯ、ＩＩＭＧＲ等に基づいて算出する。
【０１８４】
積分画像ＩＩＭＧＯ、ＩＩＭＧＲ等のデータ幅（各要素値のビット数）は、入力画像ＯＩＭＧのデータ幅（各画素値のビット数）で表される最大値と入力画像ＯＩＭＧの画素数との積を表すのに必要なデータ幅（ビット数）より小さい。すなわち、この実施形態では、各要素値のビット数を所定のビット数に制限した積分画像ＩＩＭＧＯ、ＩＩＭＧＲ等を用いて、矩形領域の画素値の合計を算出する。これにより、この実施形態では、各要素値のビット数を制限しない積分画像ＩＩＭＧｃｅｘを用いる構成に比べて、積分画像ＩＩＭＧＯ、ＩＩＭＧＲ等のデータサイズの増加を抑制できる。
【０１８５】
また、この実施形態では、矩形領域ＡＲ３０の画素数が２＾（ｂｔ−ｂｉ）より多いときにも、積分画像ＩＩＭＧＯ、ＩＩＭＧＲ等を用いて、矩形領域ＡＲ３０の画素合計値を、ｂｔビット目以上の桁（上位桁）の値も含めて算出できる。したがって、この実施形態では、所定の矩形領域の画素値の合計を正確に算出できる。
【０１８６】
すなわち、この実施形態では、積分画像のデータサイズの増加を抑制しつつ、所定の矩形領域の画素値の合計を正確に算出できる。
【０１８７】
以上の実施形態において説明した発明を整理して、付記として開示する。
（付記１）
第１画像の積分画像である第１積分画像と前記第１画像を縮小した第２画像の積分画像に対応する第２積分画像とを、前記第１画像のデータ幅で表される最大値と前記第１画像の画素数との積を表すのに必要なデータ幅より小さいデータ幅で生成する積分画像生成部と、
前記第１画像内の所定領域の画素値の合計のうち、前記第１積分画像のデータ幅で表される下位桁の値を、前記第１積分画像を用いて算出し、前記下位桁より大きい上位桁の値を、前記第２積分画像を用いて算出する算出部と
を備えていることを特徴とする画像処理装置。
（付記２）
前記積分画像生成部は、前記第２画像を生成せずに、前記第２積分画像を前記第１積分画像を用いて生成すること
を特徴とする付記１記載の画像処理装置。
（付記３）
前記算出部は、前記所定領域を前記所定領域以外の画素を含んで前記第２画像の１画素に換算される第１領域と前記第１領域を除いた第２領域とに分け、前記第１領域の画素数が前記第１積分画像のデータ幅から前記第１画像のデータ幅を引いた値をｋとしたときに２のｋ乗で表される所定数以下のとき、前記第１積分画像に基づいて算出した前記所定領域の画素値の合計の前記下位桁の値である第１評価値と前記第２積分画像を用いて算出した前記第２領域の画素値の合計の前記下位桁の値である第２評価値とを比較し、前記第１評価値が前記第２評価値以上のとき、前記第２領域の画素値の合計の前記上位桁の値を前記所定領域の画素値の合計の前記上位桁の値として算出し、前記第１評価値が前記第２評価値より小さいとき、前記第２領域の画素値の合計の前記上位桁の値に１を加算した値を前記所定領域の画素値の合計の前記上位桁の値として算出すること
を特徴とする付記１または付記２に記載の画像処理装置。
（付記４）
前記算出部は、前記第１領域の画素数が前記所定数より多いとき、前記所定領域を複数の処理領域に分け、前記処理領域の画素値の合計の前記下位桁の値を、前記第１積分画像を用いて算出し、前記処理領域の画素値の合計の前記上位桁の値を、前記第２積分画像を用いて算出し、前記処理領域の画素値の合計の総和を、前記所定領域の画素値の合計として算出し、
前記各処理領域は、前記各処理領域以外の画素を含んで前記第２画像の１画素に換算される第１処理領域の画素数が前記所定数以下であること
を特徴とする付記３記載の画像処理装置。
（付記５）
前記算出部は、１つの前記第２積分画像を用いて前記第２領域の画素値の合計を算出する場合で、前記第２領域を前記第２画像に反映した領域の画素数が前記所定数より多いとき、前記所定領域を複数の前記処理領域に分け、前記処理領域の画素値の合計の前記下位桁の値を、前記第１積分画像を用いて算出し、前記処理領域の画素値の合計の前記上位桁の値を、前記第２積分画像を用いて算出し、前記処理領域の画素値の合計の総和を、前記所定領域の画素値の合計として算出し、
前記各処理領域のうちの前記第１処理領域を除く領域を前記第２画像に反映した領域の画素数は、前記所定数以下であること
を特徴とする付記４記載の画像処理装置。
（付記６）
前記算出部は、互いに異なる縮小率の前記第２画像にそれぞれ対応する複数の前記第２積分画像を用いて前記第２領域の画素値の合計を算出する場合で、前記第１領域と前記第２領域とを分ける際の基準の前記第２画像に前記第２領域を反映した領域の画素数が前記所定数より多いとき、前記第２領域の画素値の合計の前記下位桁の値を、前記基準の前記第２画像に対応する前記第２積分画像を用いて算出し、前記第２領域の画素値の合計の前記上位桁の値を、前記基準の前記第２画像の縮小率より大きい縮小率の前記第２画像に対応する前記第２積分画像を用いて算出すること
を特徴とする付記４記載の画像処理装置。
（付記７）
第１画像内の所定領域の画素値の合計を、積分画像を用いて算出する画像処理方法であって、
前記第１画像の積分画像である第１積分画像と前記第１画像を縮小した第２画像の積分画像に対応する第２積分画像とを、前記第１画像のデータ幅で表される最大値と前記第１画像の画素数との積を表すのに必要なデータ幅より小さいデータ幅で生成し、
前記所定領域の画素値の合計のうち、前記第１積分画像のデータ幅で表される下位桁の値を、前記第１積分画像を用いて算出し、前記下位桁より大きい上位桁の値を、前記第２積分画像を用いて算出すること
を特徴とする画像処理方法。
（付記８）
前記第２画像を生成せずに、前記第２積分画像を前記第１積分画像を用いて生成すること
を特徴とする付記７記載の画像処理方法。
（付記９）
前記所定領域を前記所定領域以外の画素を含んで前記第２画像の１画素に換算される第１領域と前記第１領域を除いた第２領域とに分け、
前記第１領域の画素数が前記第１積分画像のデータ幅から前記第１画像のデータ幅を引いた値をｋとしたときに２のｋ乗で表される所定数以下のとき、前記第１積分画像に基づいて算出した前記所定領域の画素値の合計の前記下位桁の値である第１評価値と前記第２積分画像を用いて算出した前記第２領域の画素値の合計の前記下位桁の値である第２評価値とを比較し、前記第１評価値が前記第２評価値以上のとき、前記第２領域の画素値の合計の前記上位桁の値を前記所定領域の画素値の合計の前記上位桁の値として算出し、前記第１評価値が前記第２評価値より小さいとき、前記第２領域の画素値の合計の前記上位桁の値に１を加算した値を前記所定領域の画素値の合計の前記上位桁の値として算出すること
を特徴とする付記７または付記８に記載の画像処理方法。
（付記１０）
前記第１領域の画素数が前記所定数より多いとき、
前記所定領域を複数の処理領域に分け、
前記処理領域の画素値の合計の前記下位桁の値を、前記第１積分画像を用いて算出し、
前記処理領域の画素値の合計の前記上位桁の値を、前記第２積分画像を用いて算出し、
前記処理領域の画素値の合計の総和を、前記所定領域の画素値の合計として算出し、
前記各処理領域は、前記各処理領域以外の画素を含んで前記第２画像の１画素に換算される第１処理領域の画素数が前記所定数以下であること
を特徴とする付記９記載の画像処理方法。
（付記１１）
１つの前記第２積分画像を用いて前記第２領域の画素値の合計を算出する場合で、前記第２領域を前記第２画像に反映した領域の画素数が前記所定数より多いとき、
前記所定領域を複数の前記処理領域に分け、
前記処理領域の画素値の合計の前記下位桁の値を、前記第１積分画像を用いて算出し、
前記処理領域の画素値の合計の前記上位桁の値を、前記第２積分画像を用いて算出し、
前記処理領域の画素値の合計の総和を、前記所定領域の画素値の合計として算出し、
前記各処理領域のうちの前記第１処理領域を除く領域を前記第２画像に反映した領域の画素数は、前記所定数以下であること
を特徴とする付記１０記載の画像処理方法。
（付記１２）
互いに異なる縮小率の前記第２画像にそれぞれ対応する複数の前記第２積分画像を用いて前記第２領域の画素値の合計を算出する場合で、前記第１領域と前記第２領域とを分ける際の基準の前記第２画像に前記第２領域を反映した領域の画素数が前記所定数より多いとき、
前記第２領域の画素値の合計の前記下位桁の値を、前記基準の前記第２画像に対応する前記第２積分画像を用いて算出し、
前記第２領域の画素値の合計の前記上位桁の値を、前記基準の前記第２画像の縮小率より大きい縮小率の前記第２画像に対応する前記第２積分画像を用いて算出すること
を特徴とする付記１０記載の画像処理方法。
【０１８８】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずであり、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０１８９】
１０‥画像処理装置；２０‥積分画像生成部；３０‥算出部；ＯＩＭＧ‥入力画像；ＩＩＭＧＯ‥積分画像；ＩＩＭＧＲ、ＩＩＭＧＲ２‥縮小積分画像
【図１】
2014078189.tif 000020
【図２】
2014078189.tif 000021
【図３】
2014078189.tif 000022
【図４】
2014078189.tif 000023
【図５】
2014078189.tif 000024
【図６】
2014078189.tif 000025
【図７】
2014078189.tif 000026
【図８】
2014078189.tif 000027
【図９】
2014078189.tif 000028
【図１０】
2014078189.tif 000029
【図１１】
2014078189.tif 000030
【図１２】
2014078189.tif 000031
【図１３】
2014078189.tif 000032
【図１４】
2014078189.tif 000033
【図１５】
2014078189.tif 000034