【Python/OpenCV】「cv2.connectedComponentsWithStats」で2値画像のラベリングとブロブ解析

Python版OpenCVの「cv2.connectedComponentsWithStats」で2値画像ラベリングを行い、ブロブを解析する方法をソースコード付きで解説します。

二値画像のラベリングとブロブ解析

本ページの内容は以下動画で解説しています。

二値画像をラベリング処理し、ラベル付けされた領域の特徴を解析することをブロブ解析といいます。
Python版OpenCVでは、「cv2.connectedComponentsWithStats」を使うことでより詳しいラベルの情報(各ラベルの外接矩形の座標, 大きさ, ラベルの面積・重心)を得ることができます。
今回はこれを使ってブロブ解析を行います。

サンプルコード

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


サンプルプログラムの実行結果です。
■入力画像

■実行結果

ブロブの個数: 3
各ブロブの外接矩形の左上x座標 [ 18 188 201]
各ブロブの外接矩形の左上y座標 [ 17  39 133]
各ブロブの外接矩形の幅 [157  99  86]
各ブロブの外接矩形の高さ [195  69  72]
各ブロブの面積 [24025  6831  4959]
各ブロブの中心座標:
 [[ 96.03862643 114.05739854]
 [237.          73.        ]
 [239.72554951 174.98648921]]

関連ページ

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

コメント