Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

NameError: name 'args' is not defined?

Tags:

python

args

I am trying out the code given in https://www.pyimagesearch.com/2018/02/26/face-detection-with-opencv-and-deep-learning/?__s=zxeickrdq5xagzqfnz7z

import numpy as np
import argparse
import cv2

ap = argparse.ArgumentParser()
ap.add_argument("-i", "-C:/datasets/FACE/IMG_0375", required=True,help="path to input image")
ap.add_argument("-p", "-C:/datasets/FACE/deploy.prototxt", required=True,help="path to Caffe 'deploy' prototxt file")
ap.add_argument("-m", "-C:/datasets/FACE/res10_300x300_ssd_iter_140000", required=True,help="path to Caffe pre-trained model")

# load our serialized model from disk
print("[INFO] loading model...")
net = cv2.dnn.readNetFromCaffe(args["-p"], args["-m"])

# load the input image and construct an input blob for the image
# by resizing to a fixed 300x300 pixels and then normalizing it
image = cv2.imread(args["-i"])
(h, w) = image.shape[:2]
blob = cv2.dnn.blobFromImage(cv2.resize(image, (300, 300)), 1.0, (300,    300), (104.0, 177.0, 123.0))

# load our serialized model from disk
print("[INFO] loading model...")
net = cv2.dnn.readNetFromCaffe(args["-p"], args["-m"])

# load the input image and construct an input blob for the image
# by resizing to a fixed 300x300 pixels and then normalizing it
image = cv2.imread(args["-i"])
(h, w) = image.shape[:2]
blob = cv2.dnn.blobFromImage(cv2.resize(image, (300, 300)), 1.0,
(300, 300), (104.0, 177.0, 123.0))

The following is the error message displayed:

[INFO] loading model...

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-9-f999c8fd8971> in <module>
  1 # load our serialized model from disk
  2 print("[INFO] loading model...")
----> 3 net = cv2.dnn.readNetFromCaffe(args["-p"], args["-m"])
  4 
  5 # load the input image and construct an input blob for the image

NameError: name 'args' is not defined

As I expect ap = argparse.ArgumentParser() to allow me to use args, why am I getting this error?

like image 742
Extech Avatar asked Sep 06 '25 10:09

Extech


1 Answers

Remember you have to return parser. You already get the value but you have to return object which contains those:

ap = argparse.ArgumentParser()
ap.add_argument("-i", "-C:/datasets/FACE/IMG_0375", required=True,help="path to input image")
ap.add_argument("-p", "-C:/datasets/FACE/deploy.prototxt", required=True,help="path to Caffe 'deploy' prototxt file")
ap.add_argument("-m", "-C:/datasets/FACE/res10_300x300_ssd_iter_140000", required=True,help="path to Caffe pre-trained model")

#This line here :)
args = ap.parse_args()
like image 75
Rob Ert Avatar answered Sep 08 '25 09:09

Rob Ert