2016-05-25 32 views

答えて

53

あなたはmatplotlibの軸にRectangleパッチを追加することができます。例えば

(チュートリアルhereから画像を使用して):あなたの答えのための

import matplotlib.pyplot as plt 
import matplotlib.patches as patches 
from PIL import Image 
import numpy as np 

im = np.array(Image.open('stinkbug.png'), dtype=np.uint8) 

# Create figure and axes 
fig,ax = plt.subplots(1) 

# Display the image 
ax.imshow(im) 

# Create a Rectangle patch 
rect = patches.Rectangle((50,100),40,30,linewidth=1,edgecolor='r',facecolor='none') 

# Add the patch to the Axes 
ax.add_patch(rect) 

plt.show() 

enter image description here

+0

ありがとう!それは動作しますが、矩形は画像そのものではなく軸上に描かれているようです。イメージをファイルに保存しようとすると、四角形は保存されません。矩形がイメージ上のピクセル値を置き換える方法はありますか?再度、感謝します! –

+0

気にしないでください。私はこのリンクを見つけました(http://docs.opencv.org/3.1.0/dc/da5/tutorial_py_drawing_functions.html)、それは動作しているようです:) –

+0

まだ塗りつぶされている四角形がある場合は、 'fill = False'フラグを「Rectangle」に設定する –

4

使用パッチが必要です。

import matplotlib.pyplot as plt 
import matplotlib.patches as patches 

fig2 = plt.figure() 
ax2 = fig2.add_subplot(111, aspect='equal') 

ax2.add_patch(
    patches.Rectangle(
     (0.1, 0.1), 
     0.5, 
     0.5, 
     fill=False  # remove background 
    )) fig2.savefig('rect2.png', dpi=90, bbox_inches='tight') 

より多くの例は、ここで見つけることがあります。http://matthiaseisen.com/pp/patterns/p0203/

関連する問題