Spaces:
Build error
Build error
| from matplotlib import pyplot as plt | |
| import numpy as np | |
| from PIL import Image | |
| import io | |
| import cv2 | |
| def get_img_from_fig(fig, w=256, h=256, dpi=180): | |
| buf = io.BytesIO() | |
| fig.savefig(buf, format="png", dpi=dpi, bbox_inches='tight', pad_inches=0) | |
| buf.seek(0) | |
| img_arr = np.frombuffer(buf.getvalue(), dtype=np.uint8) | |
| buf.close() | |
| img = cv2.resize(cv2.imdecode(img_arr, 1), (w, h)) | |
| img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) | |
| return img | |
| def plot_points(image, pts, pts2): | |
| fig = plt.figure(frameon=False) | |
| #fig.set_size_inches(w,h) | |
| plt.axis('off') | |
| #ax = plt.Axes(fig, [0., 0., 1., 1.]) | |
| #fig.add_axes(ax) | |
| #ax.imshow(your_image, aspect='auto') | |
| plt.imshow(image) | |
| #plt.plot(640, 570, "og", markersize=10) # og:shorthand for green circle | |
| plt.scatter(pts[:, 0], pts[:, 1], marker="o", color="red", s=1) | |
| plt.scatter(pts2[:, 0], pts2[:, 1], marker="o", color="green", s=1) | |
| plt.plot(np.stack([pts[:, 0], pts2[:, 0]], axis=0), np.stack([pts[:, 1], pts2[:, 1]], axis=0), '-b', linewidth=0.2) | |
| #plt.plot() | |
| #plt.show() | |
| fig.canvas.draw() | |
| #data = np.frombuffer(fig.canvas.tostring_rgb(), dtype=np.uint8) | |
| #data = data.reshape(fig.canvas.get_width_height()[::-1] + (3,)) | |
| data = get_img_from_fig(fig) | |
| plt.close(fig) | |
| return data | |
| if __name__ == '__main__': | |
| image = np.ones([1024, 1024, 3], dtype=np.uint8) * 255 | |
| pts = np.array([[330, 620], [950, 620], [692, 450], [587, 450]]) | |
| pts2 = np.array([[330, 620], [950, 620], [692, 450], [587, 450]]) | |
| pts2 = pts2 * 0.75 | |
| data = plot_points(image, pts, pts2) | |
| print(data.shape) | |
| Image.fromarray(data).show() | |