PythonでOpenCVを使わずに画像処理を行う方法を紹介します。今回は、ラベリング処理に焦点を当てます。
ラベリングとは
ラベリングとは、二値化処理された画像において、白の部分(または黒の部分)が連続した画素に同じ番号を割り振る処理を指します。基本的には「各ピクセルがどのグループに属しているのか」の分類を行います。
ラベリングの目的
ラベリングの目的は、画像内の物体を検出して、画像内における物体の位置や面積などの特徴量を取得するためです。
ラベリングの仕組み
ラベリングには、縦と横方向に連続している部分のみを同じラベルにする4近傍と、全方向に連続しているすべてのピクセルを同じラベルにする8近傍の2種類があります。
# ラベルテーブル作成
self.label_table = np.zeros_like(self.bin_img)
# ルックアップテーブル作成
self.lookup_table = [0]
上記のコードは、ラベルテーブルとルックアップテーブルを作成する部分です。ラベルテーブルは画像と同じ大きさで、すべてのピクセルに0のラベルを割り当てます。ルックアップテーブルは、ラベルの衝突を解決するのに必要なもので、各ラベル番号を表し、elementは本来あるべきラベル番号を表しています。
以上がPythonでOpenCVを使わずにラベリング処理を行う方法の一部です。詳細なコードや説明については、参考リンクをご覧ください。.