def renderStarGauss(image, cov, mu, first, scale = 5):
num_circles = 3
num_points = 64
cov = sqrtm(cov)
num = num_circles * num_points
pos = np.ones((num, 2))
for c in range(num_circles):
r = c + 1
for p in range(num_points):
angle = p / num_points * 2 * np.pi
index = c * num_points + p
x = r * np.cos(angle)
y = r * np.sin(angle)
pos[index, 0] = x * cov[0, 0] + y * cov[0, 1] + mu[0]
pos[index, 1] = x * cov[1, 0] + y * cov[1, 1] + mu[1]
#image = image.copy()
#image = cv2.cvtColor(image, cv2.COLOR_GRAY2BGR)
if first:
image = cv2.resize(image, (0, 0), None, scale, scale, cv2.INTER_NEAREST)
for c in range(num_circles):
pts = np.array(pos[c * num_points:(c + 1) * num_points, :] * scale + scale / 2, np.int32)
pts = pts.reshape((-1,1,2))
cv2.polylines(image, [pts], True, (255, 0, 0))
return image
评论列表
文章目录