【OpenCV】ツムを判別する方法1

アプリ開発

ツムツムを自動化するために、スクリーンショットの中からツムを拾い出す処理を書いていきます。

と言っても OpenCVのハフ変換を使って、円検出をちょっとやっただけなんですけどね。

たまに、対象外になっちゃうツムが出てくるけどどうしようかな。悩ましい。

処理

import cv2
import numpy as np

img = cv2.imread('IMG_0941.png')
cimg = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

circles = cv2.HoughCircles(cimg, cv2.HOUGH_GRADIENT, 1.2, 30,
                           param1=100, param2=40, minRadius=20, maxRadius=54)

circles = np.uint16(np.around(circles))
for i in circles[0, :]:
    cv2.circle(img, (i[0], i[1]), i[2], (0, 255, 0), 2)
    cv2.circle(img, (i[0], i[1]), 2, (0, 0, 255), 3)

cv2.imshow('detected circles', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

終わりに

あとは、繋げてタッチイベントを送ればいいと思います。

参考

ハフ変換による円検出 — OpenCV-Python Tutorials 1 documentation

タイトルとURLをコピーしました