问题
I have some code that I am trying to run in a Python shell (IDLE) but there seems to be a problem with the way I am parsing arguments in the Python shell.
Here is the code:
# import the necessary packages
from skimage.segmentation import slic
from skimage.segmentation import mark_boundaries
from skimage.util import img_as_float
from skimage import io
import matplotlib.pyplot as plt
import argparse
# construct the argument parser and parse the arguments
ap = argparse.ArgumentParser()
ap.add_argument("-i", "--image", required = True, help = "Path to the image")
args = vars(ap.parse_args())
# load the image and convert it to a floating point data type
image = img_as_float(io.imread(args["image"]))
# loop over the number of segments
for numSegments in (100, 200, 300):
# apply SLIC and extract (approximately) the supplied number
# of segments
segments = slic(image, n_segments = numSegments, sigma = 5)
# show the output of SLIC
fig = plt.figure("Superpixels -- %d segments" % (numSegments))
ax = fig.add_subplot(1, 1, 1)
ax.imshow(mark_boundaries(image, segments))
plt.axis("off")
# show the plots
plt.show()
When I try to run the program with the line Slic.py --image 0021.jpg
I get SyntaxError: invalid syntax
. Not sure what I am doing wrong, probably really obvious to some but any help is greatly appreciated.
The code was found at the link below under the SLIC example at the bottom of the page, he even shows how to run the code but it doesn't work for me:
www.pyimagesearch.com/2014/07/28/a-slic-superpixel-tutorial-using-python
回答1:
Just a thought - this may be a clash with IDLE. Try running from the shell (as you probably have guessed, python Slic.py --image 0021.jpg
). Of course, since this is a 5 month old question, I assume that you've resolved it by now :)
来源:https://stackoverflow.com/questions/29214617/syntax-error-when-trying-to-parse-arguments-python-shell