जवाबों:
आप Rectangle
matplotlib Axes में एक पैच जोड़ सकते हैं ।
उदाहरण के लिए ( यहाँ ट्यूटोरियल से छवि का उपयोग करके ):
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()
fill=False
झंडाRectangle
patches.Rectangle
कहता है कि पहले दो नंबर हैं The bottom and left rectangle coordinates
। मैं यहां देखता हूं कि पहले दो नंबर, (50,100), आयत के शीर्ष और बाएं समन्वय के अनुरूप हैं। मैं उलझन में हूं।
आपको पैच का उपयोग करने की आवश्यकता है।
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')
सबप्लॉट्स की कोई आवश्यकता नहीं है, और पाइलोट पीआईएल छवियों को प्रदर्शित कर सकते हैं, इसलिए इसे और सरल बनाया जा सकता है:
import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle
from PIL import Image
im = Image.open('stinkbug.png')
# Display the image
plt.imshow(im)
# Get the current reference
ax = plt.gca()
# Create a Rectangle patch
rect = Rectangle((50,100),40,30,linewidth=1,edgecolor='r',facecolor='none')
# Add the patch to the Axes
ax.add_patch(rect)
या, लघु संस्करण:
import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle
from PIL import Image
# Display the image
plt.imshow(Image.open('stinkbug.png'))
# Add the patch to the Axes
plt.gca().add_patch(Rectangle((50,100),40,30,linewidth=1,edgecolor='r',facecolor='none'))
मेरी समझ से matplotlib एक प्लॉटिंग लाइब्रेरी है।
आप छवि डेटा (जैसे एक छवि पर एक आयत बनाएं) बदलना चाहते हैं, तो आप इस्तेमाल कर सकते हैं जनहित याचिका के ImageDraw , OpenCV , या ऐसा ही कुछ।
यहाँ एक आयत बनाने के लिए PIL का ImageDraw तरीका है ।
यहाँ आयत बनाने के लिए OpenCV की विधियों में से एक है ।
आपका प्रश्न माटप्लोटलिब के बारे में पूछा गया था, लेकिन शायद एक छवि पर एक आयत बनाने के बारे में पूछा जाना चाहिए।
यहां एक और प्रश्न है जो मुझे लगता है कि आप क्या जानना चाहते हैं, इसका पता लगाएं : एक आयत और उसमें एक पाठ पीआईएल का उपयोग करें