Beachten Sie, dass ich gelernt habe, dass es eine Möglichkeit gibt, kreisförmige Objekte zu erkennen und auszuschneiden.
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`.
Ich hatte nicht das richtige Bild, also habe ich das ImageJ-Beispiel heruntergeladen und verwendet.
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))
Nicht schlecht. Abhängig von der Einstellung von "param1" und "param2" scheinen die Zellen richtig gezählt zu werden.
Recommended Posts