33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
"""
|
|
This module implements all the functions to communicate with other Python
|
|
modules (PIL, matplotlib, mayavi, etc.)
|
|
"""
|
|
|
|
import numpy as np
|
|
|
|
|
|
def PIL_to_npimage(im):
|
|
""" Transforms a PIL/Pillow image into a numpy RGB(A) image.
|
|
Actually all this do is returning numpy.array(im)."""
|
|
return np.array(im)
|
|
#w,h = im.size
|
|
#d = (4 if im.mode=="RGBA" else 3)
|
|
#return +np.frombuffer(im.tobytes(), dtype='uint8').reshape((h,w,d))
|
|
|
|
|
|
def mplfig_to_npimage(fig):
|
|
""" Converts a matplotlib figure to a RGB frame after updating the canvas"""
|
|
# only the Agg backend now supports the tostring_rgb function
|
|
from matplotlib.backends.backend_agg import FigureCanvasAgg
|
|
canvas = FigureCanvasAgg(fig)
|
|
canvas.draw() # update/draw the elements
|
|
|
|
# get the width and the height to resize the matrix
|
|
l,b,w,h = canvas.figure.bbox.bounds
|
|
w, h = int(w), int(h)
|
|
|
|
# exports the canvas to a string buffer and then to a numpy nd.array
|
|
buf = canvas.tostring_rgb()
|
|
image= np.frombuffer(buf, dtype=np.uint8)
|
|
return image.reshape(h,w,3)
|