Повышение точности подсчета блобов с использованием opencv
Я пытаюсь обнаружить капли, используя opencv, однако моя точность не превышает 80%.
Вот изображения обнаруженных капель:
Найденные капли n = 350
Найденные капли n = 550
import cv2
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_classification
plt.figure(figsize=(10,5))
n_samples = 250
x, _ = make_classification(n_samples = n_samples)
plt.scatter(x[:, 0], x[:, 1], marker='o', s=14 )
plt.axis('off')
plt.savefig('sampleblobs.jpg')
plt.show()
img = cv2.imread('sampleblobs.jpg',0)
params = cv2.SimpleBlobDetector_Params()
params.filterByArea = False
params.minDistBetweenBlobs = 1
params.thresholdStep = 10;
params.minRepeatability = 2;
params.minDistBetweenBlobs = 0;
detector = cv2.SimpleBlobDetector_create(params)
keypoints = detector.detect(img)
print('Found: {}, Original: {}'.format(len(keypoints), n_samples))
# Draw detected blobs as red circles.
# cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS ensures the size of the circle corresponds to the size of blob
im_with_keypoints = cv2.drawKeypoints(img, keypoints, np.array([]), (0,0,100), cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
# Show keypoints
cv2.imshow("Found blobs", im_with_keypoints)
cv2.imwrite("Found_blobs.jpg", im_with_keypoints)
cv2.waitKey()
cv2.destroyAllWindows()
Есть ли способ повысить точность в этом случае? Заранее спасибо!