【Python/OpenCV】積分画像を用いた処理の高速化

Python版OpenCVで積分画像を作成する方法をソースコード付きで解説します。

積分画像とは

積分画像(Integral Image)は、注目画素とその左と上にある全ての画素値の和を求めた物です。

積分画像の原理・計算式・高速化
この記事では、積分画像の基本原理や計算式・特徴・例題についてまとめました。

Python言語版OpenCVでは、「cv2.integral」を用いて簡単に積分画像を求めることができます。

サンプルコード


【Python/OpenCV】積分画像を用いた処理の高速化
Python版OpenCVで積分画像を作成する方法をソースコード付きで解説します。

コード解説

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

メディアンフィルタの高速化

積分画像を用いると、例えば2重forループでメディアンフィルタの処理を書いた場合に高速化できます。メディアンフィルタの原理は以下ページで別途解説しています。

【Python/OpenCV】メディアンフィルタ(cv2.medianBlur)で画像のぼかし・ノイズ除去
Python+OpenCVでメディアンフィルタを「NumPy」「cv2.medianBlur」で実装し、画像をぼかし・平滑化・ノイズ除去する方法をソースコード付きで解説します。

サンプルコード①積分画像を用いない場合

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


■入力画像(左)と出力画像(右)

サンプルコード②積分画像を用いた場合

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


サンプルコード③cv2.medianBlurを用いた場合

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


関連ページ

【PythonとOpenCVで画像処理超入門】使い方とサンプルコードを解説
Python版OpenCVで画像処理プログラミングを行う方法を入門者向けにソースコード付きで解説するページです。
この記事を書いた人
西住技研

Python使用歴10年以上。研究、仕事、趣味でデータ分析や作業自動化などに活用してきたノウハウを情報発信しています。
詳しいプロフィールやお問合せはこちらのページまで。
YoutubeX(旧Twitter)でも情報発信中です!

西住技研をフォローする
OpenCV

コメント