我有一个包含多个对象的图像。我想找到图像中每个对象的中心(像素位置),以便可以对靠近中心和对象内部的所有像素进行采样。
有人可以告诉我如何找到每个物体的中心吗?
>>> import cv2
>>> a=cv2.imread('test_image.png')
>>> a.shape
(366, 500, 3)
>>> import numpy as np
>>> np.unique(a[a!=0])
array([128, 192, 224], dtype=uint8)
>>> np.array(list(zip(*np.where(a == 128))))
这将返回图像中对象的像素值。
编辑:我尝试使用opencv查找质心。它为每个对象返回五个不同的值作为质心。
contours, hierarchy = cv2.findContours(morph,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
for c in contours:
M = cv2.moments(c)
if M["m00"] != 0:
cX = int(M["m10"] / M["m00"])
cY = int(M["m01"] / M["m00"])
print(cX,',',cY)