I need to rapidly plot jpg frames that result as the output of a tracking algorithm. Companion with the jpg frames are text files containing simple (x,y) data locating the image targets that are being tracked. I would like to use matplotlib to plot the jpg images, then overlay a scatter plot of the (x,y) data which gets read from the text file and stored into a Pythonic list. Below is code that will plot the jpg image, but in all of the scouring I have done of matplotlib, scipy, and PIL manuals and help pages, I cannot find anything that explains how to maintain this plot window and simply overlay a scatter plot of simple markers at various (x,y) locations in the image. Any help is greatly appreciated.
import matplotlib.pyplot as plt; im = plt.imread(image_name); implot = plt.imshow(im); plt.show()
pyplot.scatter() function was tailor made for this reason:
import matplotlib.pyplot as plt im = plt.imread(image_name) implot = plt.imshow(im) # put a blue dot at (10, 20) plt.scatter(, ) # put a red dot, size 40, at 2 locations: plt.scatter(x=[30, 40], y=[50, 60], c='r', s=40) plt.show()
See the documentation for more info.
this should work:
import matplotlib.pyplot as plt im = plt.imread('test.png') implot = plt.imshow(im) plt.plot([100,200,300],[200,150,200],'o') plt.show()
keep in mind that each pixel in the image is one unit on the x,y axes. The
'o' is a shorthand way of getting the
plot function to use circles instead of lines.