LoginSignup
0
0

More than 3 years have passed since last update.

pyplotとpillowの画像を重ねて表示する

Posted at

何かの濃度分布と粒子の分布を重ねて表示したい場合、粒子をpillow, 濃度分布をpyplotで描画させて、最後に重ねて表示させる。

from PIL import Image, ImageDraw
import numpy as np
import matplotlib.pyplot as plt

まず、濃度分布をnumpyの二次元配列で生成する

u = np.random.rand(10,10)
plt.imshow(u)

image.png

次に、粒子の分布を生成する

r = np.random.rand(100,2)*200

im = Image.new("RGB", (200, 200), (128, 128, 128))
draw = ImageDraw.Draw(im)

for i in range(100):
  [x,y] = r[i]
  draw.ellipse((x-3,y-3,x+3,y+3), fill=(0, 0, 255))
from IPython.display import display
display(im)

image.png

スケールを合わせるため濃度分布をリサイズし、粒子と重ねて表示する。

imU = Image.fromarray(u)
imU = imU.resize((200,200))

plt.imshow(np.array(imU), alpha = 0.5)
plt.imshow(np.array(im), alpha = 0.5)
plt.show()

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0