gpt4 book ai didi

python - 同一图上的图像和 Voronoi 图

转载 作者:行者123 更新时间:2023-12-01 09:04:26 25 4
gpt4 key购买 nike

我需要使用 scipy.spatial.Voronoi 在现有图像之上绘制 Voronoi 曲面分割。我使用 matplotlib.pyplot 将图像导入为 numpy 数组:

img_file = 'my_image.png'
img = plt.imread(os.path.join(data_dir, img_file))
fig = plt.figure()
ax = fig.add_subplot(111)

当我显示图像时,它工作正常:

ax.imshow(img)

my initial image

然后我想在上面添加一个 Voronoi 图(对于我任意选择的某些点),所以我这样做:

points = np.array([[0, 0], [0, 1], [0, 2], [1, 0], [1, 1], [1, 2], [2, 0], [2, 1], [2, 2]])

vor = Voronoi(points)
voronoi_plot_2d(vor, ax=ax)
plt.show()

我得到了这个: Failed attempt to overlay the graph on the image

当我只绘制图表时,我得到的是: Voronoi tessellation separately

所以,我想使用相同的轴 (ax) 将它们绘制在彼此之上,但这最终导致在 Voronoi 区域着色。任何有关如何将图像放在背景上并将 Voronoi 放在顶部的帮助将不胜感激!

最佳答案

它确实有效,我想需要正确选择 voronoi 点:

import matplotlib.pylab as plt
import numpy as np
from scipy.spatial import Voronoi, voronoi_plot_2d
import scipy.ndimage as ndimage

img_file = 'bear.png'
img = plt.imread(img_file)

points = []
for i in range(100):
points.append([np.random.uniform(0, img.shape[0]),np.random.uniform(0, img.shape[1])])
points = np.array(points)

vor = Voronoi(points)

fig = plt.figure(figsize=(20,20))
ax = fig.add_subplot(111)
ax.imshow(ndimage.rotate(img, 90))
voronoi_plot_2d(vor, point_size=10, ax=ax)
plt.show()

enter image description here

关于python - 同一图上的图像和 Voronoi 图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52184271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com