import mahotas import cv2 import imutils # construct the argument parse and parse the arguments ap = argparse.ArgumentParser() ap.add_argument("-m", "--model", required = True, help = "path to where the model will be stored") ap.add_argument("-i", "--image", required = True, help = "path to the image file") args = vars(ap.parse_args()) # load the model model = open(args["model"], "rb").read() model = pickle.loads(model) # initialize the HOG descriptor hog = HOG(orientations = 18, pixelsPerCell = (10, 10), cellsPerBlock = (1, 1), normalize = True, block_norm = "L1") # load the image and convert it to grayscale image = cv2.imread(args["image"]) gray = cv2.cvtColor(image, cv2.COLOR_BGRA2GRAY) # blur the image and find edges and then find the contours along the edged regions blurred = cv2.GaussianBlur(gray, (5, 5), 0) edged = cv2.Canny(blurred, 30, 150) cnts = cv2.findContours(edged.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) cnts = imutils.grab_contours(cnts) # sort the contours by their x-axis position, ensuring # that we read the numbers from left to right cnts = sorted([(c, cv2.boundingRect(c)[0]) for c in cnts], key = lambda x: x[1])
required=True, help="path to the configuration file") ap.add_argument("-i", "--image", required=True, help="path to the image to be classified") args = vars(ap.parse_args()) # load the configuration file conf = Conf(args["conf"]) # load the classifier, then initialize the Histogram of Oriented Gradients descriptor # and the object detector model = cPickle.loads(open(conf["classifier_path"]).read()) hog = HOG(orientations=conf["orientations"], pixelsPerCell=tuple(conf["pixels_per_cell"]), cellsPerBlock=tuple(conf["cells_per_block"]), normalize=conf["normalize"]) od = ObjectDetector(model, hog) # load the image and convert it to grayscale image = cv2.imread(args["image"]) image = imutils.resize(image, width=min(260, image.shape[1])) gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # detect objects in the image (boxes, probs) = od.detect(gray, conf["window_dim"], winStep=conf["window_step"], pyramidScale=conf["pyramid_scale"], minProb=conf["min_probability"])
"--dataset", required=True, help="path to the dataset file") ap.add_argument("-m", "--model", required=True, help="path to where the model will be stored") args = vars(ap.parse_args()) # load the dataset and initialize the data matrix (digits, target) = dataset.load_digits(args["dataset"]) data = [] # initialize the HOG descriptor hog = HOG(orientations=18, pixelsPerCell=(10, 10), cellsPerBlock=(1, 1), normalize=True) # loop over the images for image in digits: # deskew the image, center it image = dataset.deskew(image, 20) image = dataset.center_extent(image, (20, 20)) # describe the image and update the data matrix hist = hog.describe(image) data.append(hist) # train the model model = LinearSVC(random_state=42) model.fit(data, target)
ap.add_argument("-t", "--type", required=True, help="type of annotation file (xml or mat)") ap.add_argument("-l", "--name", required=False, help="label's name. (for xml files)") args = vars(ap.parse_args()) # load the configuration file conf = Conf(args["conf"]) # initialize the HOG descriptor along with the list of data and labels hog = HOG(orientations=conf["orientations"], pixelsPerCell=tuple(conf["pixels_per_cell"]), cellsPerBlock=tuple(conf["cells_per_block"]), normalize=conf["normalize"]) data = [] labels = [] # grab the set of ground-truth images and select a percentage of them for training trnPaths = list(paths.list_images(conf["image_dataset"])) trnPaths = random.sample(trnPaths, int(len(trnPaths) * conf["percent_gt_images"])) print("[INFO] describing training ROIs...") # setup the progress bar widgets = [ "Extracting: ", progressbar.Percentage(), " ", progressbar.Bar(), " ",