python图像分割代码_在python中如何将图像分割成n个不同的多边形

我是python新手,正在尝试使用python将一个图像分割成“n”个不同的多边形我的目标是将一个图像转换成n个随机多边形图像。我试过voronoi算法,但有点混乱。我非常感谢你的帮助。任何其他分割方法等。

我以前的代码:

import random

import matplotlib.pyplot as plt

import numpy as np

from scipy.spatial import Voronoi, voronoi_plot_2d

img = plt.imread("abc.jpg")

fig, ax = plt.subplots()

ax.imshow(img)

def points(radius,rangeX,rangeY,qty):

deltas = set()

for x in range(-radius, radius+1):

for y in range(-radius, radius+1):

if x*x + y*y <= radius*radius:

deltas.add((x,y))

randPoints = []

excluded = set()

i = 0

while i

x = random.randrange(*rangeX)

y = random.randrange(*rangeY)

if (x,y) in excluded: continue

randPoints.append((x,y))

i += 1

excluded.update((x+dx, y+dy) for (dx,dy) in deltas)

return randPoints

def plot1(randPoints,fig):

points = np.array(randPoints)

vor = Voronoi(points)

print vor.vertices

voronoi_plot_2d(vor,ax = fig.gca())

#plt.savefig('abc.png')

plt.show()

radius = 20

rangeX = (0, 960)

rangeY = (0, 480)

qty = 9

points = points(radius, rangeX, rangeY, qty)

plot1(points,fig)

我的输入:

我的输出:

这是n=9,我希望能得到任何帮助。

你可能感兴趣的:(python图像分割代码)