Last active
October 22, 2022 10:16
-
-
Save bikz05/d75d8f1d9a5f53e16875 to your computer and use it in GitHub Desktop.
Basic Image Processing operations using OpenCV and Python
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import cv2 | |
import argparse | |
# Download the image used for this tutorial from here. | |
# http://goo.gl/jsYXl8 | |
# Read the image | |
ap = argparse.ArgumentParser(); | |
ap.add_argument("-i", "--image", required = True, help = "path to the image file"); | |
args = vars(ap.parse_args()); | |
# Read the image | |
image = cv2.imread(args["image"]); | |
# Convert the image into grayscale | |
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY); | |
# Get the size of the image | |
# Output is in the form of tuple | |
# (height of image , width of image, no of channels) | |
print image.shape; # OUPTUT = (476, 640, 3) | |
# Accessing single pixel value | |
# image[y co-ordinate, x co-ordinate] | |
# Output is in the form of [B,G,R] | |
print image[379, 383]; # OUPTUT = [207 151 143] | |
# To get value of only one channel, use | |
# image[y co-ordinate, x co-ordinate, channel index] | |
# Channel are indexed as - | |
# 0 for Blue, 1 for Green and 2 for Red | |
# In the example below we print the Blue Channel Value | |
print image[379, 383, 1]; # OUPTUT = 151 | |
# Clone the image | |
image_copy = image.copy(); | |
# Display the image | |
cv2.imshow("Image", image); | |
cv2.waitKey(); # The program will wait till eternity, | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-- coding: utf-8 --
"""
Created on Wed Jun 10 16:30:20 2020
@author: siddh
"""
import cv2
import argparse
import numpy as np
ap = argparse.ArgumentParser()
ap.add_argument('-i', '--image', required=True,
help = 'path to input image')
ap.add_argument('-c', '--config', required=True,
help = 'path to yolo config file')
ap.add_argument('-w', '--weights', required=True,
help = 'path to yolo pre-trained weights')
ap.add_argument('-cl', '--classes', required=True,
help = 'path to text file containing class names')
args = ap.parse_args()
def get_output(model):
layer_names = model.getLayerNames()
output_layers = [layer_names[i[0]-1]for i in model.getUnconnectedOutLayers()]
return output_layers
def draw_preds(img, class_id, confidence, x, y, x_plus_w, y_plus_h):
image = cv2.imread(args.image)
Width = image.shape[0]
Height = image.shape[1]
scale_factor = 0.00392
classes = None
with open(args.classes, 'r') as f:
classes = [line.strip() for line in f.readlines()]
COLORS = np.random.uniform(0, 255, size=(len(classes), 3))
model = cv2.dnn.readNet(args.weights, args.config)
blob = cv2.dnn.blobFromImage(image, scale_factor, (416,416), (0,0,0), True, crop=False)
model.setInput(blob)
outputs = model.forward(get_output(model))
class_ids = []
confidences = []
bounding_boxes = []
conf_threshold = 0.5
nms_threshold = 0.4
for output in outputs:
for detection in output:
scores = detection[5:]
class_id = np.argmax(scores)
confidence = scores[class_id]
if confidence > 0.5:
center_x = int(detection[0]*Width)
center_y = int(detection[1]*Height)
w = int(detection[2] * Width)
h = int(detection[3] * Height)
x = center_x - w / 2
y = center_y - h / 2
class_ids.append(class_id)
confidences.append(float(confidence))
bounding_boxes.append([x,y,w,h])
indices = cv2.dnn.NMSBoxes(bounding_boxes,confidences,conf_threshold,nms_threshold)
for i in indices:
i = i[0]
box = bounding_boxes[i]
x,y,w,h = box[0],box[1],box[2],box[3]
draw_preds(image,class_ids[i],confidences[i],round(x),round(y),round(x+w),round(y+h))
cv2.imshow("license plate detection",image)
cv2.waitKey()
cv2.imwrite("plate-detection.jpg",image)
cv2.destroyAllWindows()
Below Error: //kindly help anyone. what is the wrong with this code
D:\pythonall\ANPR-master>python test.py -i /path/to/image -c /path/to/config_file -w /path/to/weights/ -cl /path/to/obj.names
[ WARN:0@0.020] global D:\a\opencv-python\opencv-python\opencv\modules\imgcodecs\src\loadsave.cpp (239) cv::findDecoder imread_('/path/to/image'): can't open/read file: check file path/integrity
Traceback (most recent call last):
File "D:\pythonall\ANPR-master\test.py", line 43, in
Width = image.shape[0]
AttributeError: 'NoneType' object has no attribute 'shape'