我有一张包含约 400 个点的图像。我一直在使用 Simpleblob 检测器来查找关键点。然后我 for 遍历所有关键点以找到每个关键点的中心(下面的代码)。这很好用,但我也对时刻信息感兴趣,因为我想 .pt 只是平均与关键点相关的所有像素的位置。
import cv2
import numpy as np
import csv
im = cv2.imread("8f3secshim.bmp", cv2.IMREAD_GRAYSCALE)
detector = cv2.SimpleBlobDetector_create()
keypoints = detector.detect(im)
im_with_keypoints = cv2.drawKeypoints(im, keypoints, np.array([]),
(0,0,255), cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
cv2.imshow("Keypoints", im_with_keypoints)
x = np.empty([len(keypoints), 2])
for i in range(len(keypoints)):
x[i] = keypoints[i].pt
我想做一些类似的事情:
M = np.empty([lens(keypoints), 1])
for j in range(len(keypoints)):
M[j] = cv2.moments(keypoints[j])
但它失败了。
我已经尝试放弃 Simpledetector 并使用此处列出的处理方法http://docs.opencv.org/trunk/dd/d49/tutorial_py_contour_features.html ,但这也失败了。
如果有人有任何建议,他们将不胜感激。