[英]Save contour as image
我正在尝试转换一个文件夹以显示每个图像的轮廓。 当我绘制图像时,代码将显示图像,但不会将其保存到图像。 如何将其保存到图像?
当前错误信息:
ValueError: 'arr' does not have a suitable array shape for any mode.
import matplotlib.pyplot as plt
import os
from PIL import Image
i=0
directory_in_str='C:\\directory'
directory_output='C:\\output_directory'
for file in os.listdir(directory_in_str):
print(file)
# read image to array
im = array(Image.open(join(directory_in_str,file)).convert('L'))
# show contours with origin upper left corner
im = plt.contour(im, levels=[100], colors='black', origin='image')
scipy.misc.imsave(directory_output +'image' + str(i) + '.jpg', im)
i+=1
print('done')
谢谢 !
imsave
函数旨在与numpy数组一起使用。
举个例子:
import matplotlib.pyplot as plt
import numpy as np
arr = np.random.rand(10,10)
plt.imsave("test.png", arr)
在这里您要保存matplotlib图。 如@lelouchkato的回答所述,这将使用plt.savefig
函数完成。
请注意,您需要保存到现有目录,因此您可能需要在路径中添加一个退格\\\\
plt.savefig(directory_output +'\\image' + str(i) + '.jpg')
尝试下面的plt.savefig
函数。
https://matplotlib.org/api/_as_gen/matplotlib.pyplot.savefig.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.