[PYTHON] Kreisförmige Objekterkennung mittels Huff-Transformation

Beachten Sie, dass ich gelernt habe, dass es eine Möglichkeit gibt, kreisförmige Objekte zu erkennen und auszuschneiden.

Vorbereitung

Vorbereitung für OpenCV

Stellen Sie OpenCV zunächst in Python zur Verfügung.

In der aktuellen Anaconda-Umgebung ist Python 3.6 installiert, aber das OpenCV3-Conda-Paket für die osx-64-Umgebung, das auf Python 3.6 installiert werden kann, wurde nicht veröffentlicht. Bereiten Sie daher die Python 3.5-Umgebung vor.

Vorerst habe ich eine virtuelle Umgebung mit conda erstellt.

conda create -n py35 python=3.5 anaconda

Dann, nach source ~ / .pyenv / version / anaconda3-4.4.0 / bin / enable py35, installiere 'conda --channel https://conda.anaconda.org/menpo opencv3`.

Vorbereitung des Beispielbildes

Ich hatte nicht das richtige Bild, also habe ich das ImageJ-Beispiel heruntergeladen und verwendet.

embryos_mini.jpg

Implementieren

Versuchen Sie, es zu implementieren, während Sie auf http://docs.opencv.org/3.1.0/da/d53/tutorial_py_houghcircles.html verweisen.

houghcircles_sample.py


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

img = cv2.imread('img/embryos.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
blur = cv2.medianBlur(gray, 5)

circles = cv2.HoughCircles(blur, cv2.HOUGH_GRADIENT,
								dp=1, minDist=20, param1=50, param2=30,
								minRadius=10, maxRadius=100)
circles = np.uint16(np.around(circles))
for (x, y, r) in circles[0]:
	cv2.circle(img, (x, y), r, (0, 255, 0), 2)
	cv2.circle(img, (x, y), 2, (0, 0, 255), 3)

plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))

Ausführungsergebnis

result.png

Nicht schlecht. Abhängig von der Einstellung von "param1" und "param2" scheinen die Zellen richtig gezählt zu werden.


Der heutige Code

Recommended Posts

Kreisförmige Objekterkennung mittels Huff-Transformation
Versuchen Sie die Objekterkennung in Echtzeit mit YOLOv2 (TensorFlow).
Alterserkennung mit Peppers API
Ich habe versucht, das Gesicht mit Face ++ zu erkennen
Diskrete Kosinusumwandlung mit chainer.links.Linear
Führen Sie die handschriftliche Zeichenerkennung mit Pylearn 2 durch
Objekt-Co-Lokalisierung zur Gesichtserkennung