2016-01-20 9 views
7

मेरे पास फ्लोट x/y arrays सर्कल केंद्र हैं।matplotlib और numpy के साथ छवि पर ड्राइंग सर्कल

import matplotlib.pylab as plt 
import numpy as np 
npX = np.asarray(X) 
npY = np.asarray(Y) 
plt.imshow(img) 
// TO-DO 
plt.show() 

मैं इस केंद्र का उपयोग कर अपनी छवि पर मंडलियों को दिखाना चाहता हूं। इसे कैसे प्राप्त किया जा सकता है?

+2

की संभावित डुप्लिकेट [pyplot साथ एक चक्र साजिश] (है http://stackoverflow.com/questions/9215658/साजिश-ए-सर्कल-साथ-पिपलॉट) – kazemakase

+0

क्या आप निश्चित हैं? .. – orkan

+0

बहुत कुछ। उस प्रश्न के उत्तर बताते हैं कि सर्कल कैसे आकर्षित करें, जो आपने बिल्कुल पूछा है :) – kazemakase

उत्तर

10

आप इसे matplotlib.patches.Circle पैच के साथ कर सकते हैं।

आपके उदाहरण के लिए, हमें एक्स और वाई सरणी के माध्यम से लूप करने की आवश्यकता है, और फिर प्रत्येक समन्वय के लिए एक सर्कल पैच बनाएं।

यहाँ (matplotlib.cbook से) एक छवि के शीर्ष पर हलकों रखकर एक उदाहरण

import matplotlib.pyplot as plt 
import numpy as np 
from matplotlib.patches import Circle 

# Get an example image 
import matplotlib.cbook as cbook 
image_file = cbook.get_sample_data('grace_hopper.png') 
img = plt.imread(image_file) 

# Make some example data 
x = np.random.rand(5)*img.shape[1] 
y = np.random.rand(5)*img.shape[0] 

# Create a figure. Equal aspect so circles look circular 
fig,ax = plt.subplots(1) 
ax.set_aspect('equal') 

# Show the image 
ax.imshow(img) 

# Now, loop through coord arrays, and create a circle at each x,y pair 
for xx,yy in zip(x,y): 
    circ = Circle((xx,yy),50) 
    ax.add_patch(circ) 

# Show the image 
plt.show() 

enter image description here

+0

आपको धन्यवाद उदाहरण – orkan

+0

यह साजिश में मंडल है, छवि पर नहीं। img नहीं बदला जाएगा –

+0

@andrewmatuk: आपका क्या मतलब है? यदि आप 'savefig' का उपयोग कर छवि को सहेजते हैं तो मंडल भी सहेजे जाएंगे – tom

संबंधित मुद्दे