Tôi đã làm theo một ví dụ phát hiện blob (sử dụng cv2.SimpleBlobDetector
) và phát hiện thành công các đốm màu trong hình ảnh nhị phân của tôi. Nhưng sau đó tôi không biết làm thế nào để trích xuất các tọa độ và diện tích của các điểm chính. Dưới đây là mã cho các phát hiện blob:OpenCV trả về tọa độ điểm chính và khu vực từ phát hiện blob, Python
# I skipped the parameter setting part.
blobParams = cv2.SimpleBlobDetector_Params()
blobVer = (cv2.__version__).split('.')
if int(blobVer[0]) < 3:
detector = cv2.SimpleBlobDetector(blobParams)
else:
detector = cv2.SimpleBlobDetector_create(blobParams)
# Detect Blobs
keypoints_black = detector.detect(255-black_blob)
trans_blobs = cv2.drawKeypoints(gray_video_crop, \
keypoints_white, np.array([]), (0,0,255), cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
Vì vậy, biến keypoints_black
chứa thông tin của (các) đốm màu. Khi tôi in biến nó trông giống như thế này (2 đốm màu được tìm thấy):
KeyPoint 0x10b10b870, KeyPoint 0x10b1301b0
Vậy làm thế nào để tôi nhận được tọa độ của trung tâm của khối lượng của keypoint và khu vực của họ để tôi có thể gửi cho họ như OSC tin nhắn cho tương tác.
Thử in 'dir (keypoint)' trong đó 'keypoint rõ ràng là một điểm chính :) Điều đó sẽ cung cấp cho bạn một danh sách các phương thức. Ngoài ra, bạn có thể thử 'tuple (keypoint)' để xem nó có chuyển đổi hay không. – deets
Tôi đã thử tuple (keypoint) nó nó trả về giống nhau, chỉ trong tuple chứ không phải là mảng. –
Và dir (keypoint) đã trả lại một Buch của phương pháp: [ '__delattr__', '__delitem__', \t \t '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', \t \t # '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', \t \t # '__ init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__ ', '__ne__', \t \t # '__ new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', \t \t # '__ setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', \t \t # 'chắp thêm', 'đếm', 'mở rộng', 'chỉ mục', 'chèn', 'pop', 'xóa', 'đảo ngược',]. Nhưng không biết những gì tiếp theo –