Python AI 画像

OpenCV、matplotlib、NumPyで画像の円検知を行う。

OpenCV、matplotlib、numpyでほとんどの画像処理ができます。 OpenCVは、インテルが開発・公開したオープンソースライブラリで現在はITseezが保守しています。 matplotlibは、Python及びその科学計算用ライブラリNumPyのためのグラフ描画ライブラリです。 conda install -c conda-forge opencv、conda install numpy、でインストールできます。 matplotlibは、anacondaでpythonをインストールすると自動的にインストールされるようです。

In [1]:
# detect circle

import cv2
import numpy as np
import matplotlib.pyplot as plt

円検知を行うテスト画像として、インターネットからOpenCVのロゴ画像もしくは他の画像を事前にダウンロードしておきます。

In [2]:
img = cv2.imread('opencv-logo-white.png', 0)
In [3]:
img = cv2.medianBlur(img, 5)
cimg = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)

circles = cv2.HoughCircles(img, cv2.HOUGH_GRADIENT, 1, 20, param1=50, param2=30, minRadius=0, maxRadius=0)

circles = np.uint16(np.around(circles))
for i in circles[0,:]:
    # draw the outer circle
    cv2.circle(cimg, (i[0],i[1]), i[2], (0,255,0), 2)
    # draw the center of the circle
    cv2.circle(cimg, (i[0],i[1]), 2, (0,0,255), 3)
In [4]:
#cv2.imshow('detected circles', cimg)
#cv2.waitKey(0) # any key on image
#cv2.destroyAllWindows()
plt.imshow(cimg)
plt.show()
In [ ]: