将imshow对象直接转换为图像进行边缘检测?

问题描述:

有没有办法将imshow对象直接转换为python 2.7代码中的图像?我试图获取wav文件的光谱图,并使用图像来检测它的边缘。 我有代码来获取谱图,我有代码来检测边缘。现在,我手动保存光谱图,然后检测图像中的边缘。有没有办法直接与python中的imshow对象?将imshow对象直接转换为图像进行边缘检测?

+0

请问您可以添加您使用的代码吗? – lolopop

使用PIL,你可以使用:

import PIL 
from matplotlib import pyplot as plt 
plt.plot(range(5), range(5)) 
canvas = plt.get_current_fig_manager().canvas 
plt.draw() 
PIL_image = PIL.Image.frombuffer('RGBA', canvas.get_width_height(), canvas.buffer_rgba()) 

试戴jupyter,但它是如何工作可能依赖于特定的后端,所以尽量为自己(对我来说也反映了图像,但是这很容易以后再解决,我想)。

此外,您将不得不只绘制没有刻度的图像,请参阅scipy: savefig without frames, axes, only content