簡體   English   中英

圖像和Voronoi圖在同一圖上

[英]Image and Voronoi diagram on the same figure

我需要使用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)

我的最初形象

然后我想在上面添加一個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()

我明白了: 嘗試將圖形覆蓋在圖像上失敗

當我僅繪制圖形時,這就是我得到的: 單獨的Voronoi鑲嵌

因此,我想使用相同的軸( ax )將它們彼此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()

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM