【Python/OpenCV】積分画像を求めてみる

スポンサーリンク

この記事では、Python版OpenCVで積分画像を求める方法をソースコード付きで解説します。

スポンサーリンク

積分画像

積分画像(Integral Image)は、注目画素とその左と上にある全ての画素値の和を求めた物です。
【詳細】積分画像の原理・計算式・高速化

今回は、Python言語とOpenCVの「cv2.integral」を用いて積分画像を求めてみました。

書式

dst = cv2.integral(gray)
パラメータ名 説明
src 入力画像(グレースケール)
kernel フィルタのカーネルサイズ(3なら8近傍)
dst 積分画像(入力画像より幅・高さが1px大きい)

ソースコード(Python3+OpenCV3)

サンプルプログラムのソースコードです。

※動作には、OpenCVとNumPyライブラリが必要です。
ライブラリの導入方法:【Python3】OpenCV3+NumPyをインストール

実行結果

サンプルプログラムの実行結果です。

■入力画像

■出力結果

gray=
 [[  0   0   0   0   0   0   0   0   0   0]
 [  0   0   0   0   0   0   0   0   0   0]
 [  0   0   0   0   0   0   0   0   0   0]
 [  0   0   0 255 255 255 255 255   0   0]
 [  0   0   0 255 255 255 255 255   0   0]
 [  0   0   0 255 255 255 255 255   0   0]
 [  0   0   0 255 255 255 255 255   0   0]
 [  0   0   0   0   0   0   0   0   0   0]
 [  0   0   0   0   0   0   0   0   0   0]
 [  0   0   0   0   0   0   0   0   0   0]]

integral=
 [[   0    0    0    0    0    0    0    0    0    0    0]
 [   0    0    0    0    0    0    0    0    0    0    0]
 [   0    0    0    0    0    0    0    0    0    0    0]
 [   0    0    0    0    0    0    0    0    0    0    0]
 [   0    0    0    0  255  510  765 1020 1275 1275 1275]
 [   0    0    0    0  510 1020 1530 2040 2550 2550 2550]
 [   0    0    0    0  765 1530 2295 3060 3825 3825 3825]
 [   0    0    0    0 1020 2040 3060 4080 5100 5100 5100]
 [   0    0    0    0 1020 2040 3060 4080 5100 5100 5100]
 [   0    0    0    0 1020 2040 3060 4080 5100 5100 5100]
 [   0    0    0    0 1020 2040 3060 4080 5100 5100 5100]]

【おすすめ記事】
PythonでOpenCV入門 サンプル集
【Python】画像処理プログラミング入門
【画像処理入門】アルゴリズム&プログラミング

スポンサーリンク

シェア&フォローお願いします!