相关疑难解决方法(0)

1726
推荐指数
22
解决办法
224万
查看次数

如何用Image Magick将SVG转换为PNG?

我有一个SVG文件,其定义大小为16x16.当我使用Image Magick的转换程序将其转换为PNG时,我得到一个16x16像素的PNG,这太小了:

convert test.svg test.png
Run Code Online (Sandbox Code Playgroud)

我需要指定输出PNG的像素大小.-size参数似乎被忽略,-scale参数在转换为PNG 缩放PNG.到目前为止,我通过使用-density参数得到了最好的结果:

convert -density 1200 test.svg test.png
Run Code Online (Sandbox Code Playgroud)

但是我不满意,因为我想要以像素为单位指定输出大小而不用数学来计算密度值.所以我想做这样的事情:

convert -setTheOutputSizeOfThePng 1024x1024 test.svg test.png
Run Code Online (Sandbox Code Playgroud)

那么我在这里使用的神奇参数是什么?

svg png imagemagick

358
推荐指数
15
解决办法
18万
查看次数

将Numpy数组保存为图像

我有一个Numpy数组类型的矩阵.我如何将其作为图像写入磁盘?任何格式都有效(png,jpeg,bmp ......).一个重要的限制是PIL不存在.

python numpy image

228
推荐指数
15
解决办法
45万
查看次数

在matplotlib中删除已保存图像周围的空白区域

我需要拍摄一张图像并在一些过程后保存.当我显示它时,图形看起来很好,但是当我保存图形时,我在保存的图像周围有一些空白区域.我试过方法的'tight'选项savefig,也没用.代码:

  import matplotlib.image as mpimg
  import matplotlib.pyplot as plt

  fig = plt.figure(1)
  img = mpimg.imread(path)
  plt.imshow(img)
  ax=fig.add_subplot(1,1,1)

  extent = ax.get_window_extent().transformed(fig.dpi_scale_trans.inverted())
  plt.savefig('1.png', bbox_inches=extent)

  plt.axis('off') 
  plt.show()
Run Code Online (Sandbox Code Playgroud)

我试图通过在图上使用NetworkX绘制基本图并保存它.我意识到没有图形它可以工作,但是当添加图形时,我会在保存的图像周围获得空白区域;

import matplotlib.image as mpimg
import matplotlib.pyplot as plt
import networkx as nx

G = nx.Graph()
G.add_node(1)
G.add_node(2)
G.add_node(3)
G.add_edge(1,3)
G.add_edge(1,2)
pos = {1:[100,120], 2:[200,300], 3:[50,75]}

fig = plt.figure(1)
img = mpimg.imread("C:\\images\\1.jpg")
plt.imshow(img)
ax=fig.add_subplot(1,1,1)

nx.draw(G, pos=pos)

extent = ax.get_window_extent().transformed(fig.dpi_scale_trans.inverted())
plt.savefig('1.png', bbox_inches = extent)

plt.axis('off') 
plt.show()
Run Code Online (Sandbox Code Playgroud)

python matplotlib

138
推荐指数
10
解决办法
11万
查看次数

matplotlib中的精确图形大小,带有标题,轴标签

之前已经提出过类似的问题,但我的所有搜索结果都没有解决我的问题.请参考以下示例代码:

from matplotlib.pyplot import *
fig = figure(1, figsize=(3.25, 3))
plot([0,1,5,2,9])
title('title')
xlabel('xAxis')
ylabel('yAxis')
fig.savefig('test.png',dpi=600)
Run Code Online (Sandbox Code Playgroud)

得到的数字是2040x1890像素,或3.4"x3.15",并且x标签被切断.在图像编辑器中查看PNG文件,轴和刻度标签似乎符合所需的大小.我已经尝试从输出大小和请求的大小中取出差异并将其反馈到(3.25 - (3.4-3.25)= 3.10,但是matplotlib似乎添加了一个任意缓冲区并且它仍然没有达到所需的大小.如何制作出所需尺寸的整体数字?

python matplotlib

18
推荐指数
2
解决办法
4万
查看次数

如何将 Librosa 光谱图保存为特定大小的图像?

所以我想将频谱图图像提供给卷积神经网络,以尝试对各种声音进行分类。我希望每个图像都是 384x128 像素。但是,当我实际保存图像时,它只有 297x98。这是我的代码:

def save_spectrogram(num):
  dpi = 128
  x_pixels = 384
  y_pixels = 128
  samples, sr = load_wave(num)
  stft = np.absolute(librosa.stft(samples))
  db = librosa.amplitude_to_db(stft, ref=np.max)
  fig = plt.figure(figsize=(x_pixels//dpi, y_pixels//dpi), dpi=dpi, frameon=False)
  ax = fig.add_subplot(111)
  ax.axes.get_xaxis().set_visible(False)
  ax.axes.get_yaxis().set_visible(False)
  ax.set_frame_on(False)
  librosa.display.specshow(db, y_axis='linear')
  plt.savefig(TRAIN_IMG+str(num)+'.jpg', bbox_inches='tight', pad_inches=0, dpi=dpi)
Run Code Online (Sandbox Code Playgroud)

有没有人对我如何解决这个问题有任何指示?我也试过在没有子图的情况下这样做,但是当我这样做时,它仍然保存为错误的大小并且有空白/背景。

python audio matplotlib librosa

13
推荐指数
1
解决办法
9572
查看次数

Python 保存具有精确像素大小的 matplotlib 图

我想以像素为单位保存一个精确大小的 matplotlib 图。在下面的代码中,这个确切的大小是 500x500 像素。虽然保存的图像是 500x500 像素,但它包括我的形状和绘图区域周围的填充。我希望圆圈紧靠边界。相反,我的圈子周围有空白。是否可以只保存绘图区域?请注意,虽然下面的代码是可重现的,但 my_dpi 取决于您的显示器 DPI。220 是我的显示器的 DPI。

import matplotlib.pyplot as plt
import matplotlib.image as mpimage
import numpy as np

H       = 500
W       = 500
radius  = H/2
my_dpi  = 220


a = np.deg2rad(0)
b = np.deg2rad(360);

t = np.linspace(a,b,100)
x = radius*np.cos(t)
y = radius*np.sin(t)
x = np.append(x,[0,x[0]])
y = np.append(y,[0,y[0]])

myFig   = plt.figure()
DPI     = my_dpi #myFig.get_dpi()
myFig.set_size_inches(float(H)/float(DPI),float(W)/float(DPI))

plt.fill(y,x,color='none',facecolor='red')
plt.axis((-W/2,W/2,-H/2,H/2))
plt.axis('off')
#plt.show()
plt.savefig('my_fig.png',dpi=DPI)

print 'Figure Size: ', myFig.get_size_inches()

Im = mpimage.imread('my_fig.png')
print 'Im …
Run Code Online (Sandbox Code Playgroud)

python pixel matplotlib save

6
推荐指数
1
解决办法
2015
查看次数

matplotlib:figimage 未显示在 Jupyter 笔记本中

我正在尝试以其真实尺寸渲染图像(未缩放或拉伸),并且使用 matplotlib 执行此操作的最简单方法似乎是figimage.

但是,当我尝试在 Jupyter 笔记本中使用它时,该图没有显示。其他图显示良好,这似乎只影响figimage

图未显示

正如您所看到的,第一个图显示得很好,但第二个图则不然。我究竟做错了什么?

当我在 IPython shell 中运行以下代码时,该图按预期显示,所以可能是我的 Jupyter 设置有问题?

import matplotlib
from matplotlib import pyplot as plt
import numpy as np

x = np.linspace(0, 2*np.pi, 500)
plt.plot(x, np.sin(x))
plt.show()

data = np.random.random((500,500))
plt.figimage(data)
plt.show()
Run Code Online (Sandbox Code Playgroud)

python matplotlib jupyter

6
推荐指数
1
解决办法
8478
查看次数

标签 统计

python ×7

matplotlib ×6

audio ×1

graph ×1

image ×1

imagemagick ×1

jupyter ×1

librosa ×1

numpy ×1

pixel ×1

plot ×1

png ×1

save ×1

svg ×1

visualization ×1