この記事では、PythonとOpenCVを使用して画像から四角形を検出する方法について説明します。
まず、必要なライブラリをインポートします。
import cv2
import numpy as np
import math
次に、画像を読み込み、グレースケールに変換し、二値化します。
image = cv2.imread('your_image.png', cv2.IMREAD_COLOR)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
_, bw = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)
輪郭を取得します。
contours, _ = cv2.findContours(bw, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
各輪郭に対して、近似処理を行い、四角形を検出します。
for cnt in contours:
arclen = cv2.arcLength(cnt, True)
approx = cv2.approxPolyDP(cnt, arclen*0.02, True)
if len(approx) == 4:
cv2.polylines(image, [approx], True, (0, 255, 0), 2)
最後に、検出した四角形が描画された画像を表示します。
cv2.imshow('Detected Rectangles', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
以上がPythonとOpenCVを使用して四角形を検出する基本的な手順です。 このコードは、画像内の明確な四角形を検出することができます。四角形の検出精度を向上させるためには、画像の前処理やパラメータの調整が必要となる場合があります。
この記事がPythonとOpenCVを使用した四角形の検出に興味を持つ方々の参考になれば幸いです。.