Pythonは、機械学習や画像処理など、多岐にわたる分野で使用されています。今回は、Pythonを用いて、キリンの画像から斑点を自動検出する方法について説明します。

必要なライブラリのインストール

まずは、必要なライブラリをインストールします。以下のコマンドを実行して、OpenCVをインストールします。

pip install opencv-python

また、Pythonの画像処理に欠かせないNumPyライブラリもインストールします。

pip install numpy

画像の読み込みと前処理

次に、対象となるキリンの画像を読み込みます。以下のコードを実行すると、画像を読み込んで、グレースケールに変換し、ノイズを除去します。

import cv2
import numpy as np

img = cv2.imread('giraffe.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray = cv2.GaussianBlur(gray, (5, 5), 0)

斑点の検出

ここからが本番です。以下のコードを実行すると、キリンの斑点を自動検出します。

edges = cv2.Canny(gray, 100, 200)
contours, hierarchy = cv2.findContours(edges, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

for c in contours:
    area = cv2.contourArea(c)
    if area > 100:
        cv2.drawContours(img, [c], -1, (0, 255, 0), 2)

このコードでは、Cannyアルゴリズムを用いて輪郭を検出し、検出された輪郭のうち、面積が100以上のものを斑点として描画しています。

結果の表示

最後に、検出結果を表示します。以下のコードを実行すると、元画像に斑点が描かれた画像が表示されます。

cv2.imshow('Result', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

以上で、Pythonを用いたキリンの斑点の自動検出が完了しました。