【问题标题】:Converting numpy array svg image转换 numpy 数组 svg 图像
【发布时间】:2015-06-20 19:11:25
【问题描述】:

我有一张图片,我想以 svg 格式保存。 图像采用 numpy 数组的形式。 虽然有很多方法可以将数组保存为不同的图像格式,但我找不到说可以在 svg 中完成的方法。

任何指针或 python 脚本都会很棒!

谢谢

【问题讨论】:

  • 数组如何表示可缩放的矢量图形?
  • 你可以使用matplotlib,:pl.imshow(array); pl.savefig("test.svg");,但它不会将图像转换为矢量图,
  • @KSFT,就像我们将图像转换为 svg 或在 svg 中嵌入图像!
  • 您所要求的没有多大意义。如果图像已经包含一个像素值数组,那么它基本上位于raster format 中。您可以在 SVG 容器中嵌入光栅图像,但没有神奇的方法可以将光栅图像转换为 vector representation

标签: python image numpy svg


【解决方案1】:

由于您的图像是光栅格式,您可以做的最好的事情是使用potrace 之类的程序将其转换为矢量图形。它有 python 绑定pypotrace

示例代码:

import numpy as np
import potrace

# Make a numpy array with a rectangle in the middle
data = np.zeros((32, 32), np.uint32)
data[8:32-8, 8:32-8] = 1

# Create a bitmap from the array
bmp = potrace.Bitmap(data)

# Trace the bitmap to a path
path = bmp.trace()

# Iterate over path curves
for curve in path:
    print "start_point =", curve.start_point
    for segment in curve:
        print segment
        end_point_x, end_point_y = segment.end_point
        if segment.is_corner:
            c_x, c_y = segment.c
        else:
            c1_x, c1_y = segment.c1
            c2_x, c2_y = segment.c2

【讨论】:

    猜你喜欢
    • 2017-12-15
    • 2019-06-19
    • 1970-01-01
    • 2018-08-22
    • 2017-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-21
    相关资源
    最近更新 更多